@tocca-systems/twp-cli 0.52.0 → 0.53.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 (323) hide show
  1. package/CHANGELOG.public.md +10 -0
  2. package/README.md +18 -1
  3. package/command-model/account-lock.json +3 -103
  4. package/command-model/address.json +1 -35
  5. package/command-model/agent-loop.json +31 -1116
  6. package/command-model/agent.json +18 -833
  7. package/command-model/ai-chat-history.json +7 -234
  8. package/command-model/ai-rag.json +2 -113
  9. package/command-model/ai-task-copilot.json +6 -230
  10. package/command-model/ai-token-usage.json +9 -416
  11. package/command-model/analysis-page-access-rule.json +6 -245
  12. package/command-model/analysis.json +2 -148
  13. package/command-model/announcement.json +7 -203
  14. package/command-model/api-key.json +7 -250
  15. package/command-model/api-usage.json +3 -118
  16. package/command-model/attendance-report-category.json +6 -258
  17. package/command-model/attendance-report-reason-detail.json +6 -286
  18. package/command-model/attendance-report-reason.json +6 -274
  19. package/command-model/attendance-report.json +7 -379
  20. package/command-model/attendance-timesheet.json +3 -87
  21. package/command-model/attendance.json +1 -29
  22. package/command-model/audit-log.json +3 -141
  23. package/command-model/auth.json +10 -263
  24. package/command-model/authorize.json +2 -55
  25. package/command-model/auto-charge.json +4 -144
  26. package/command-model/badge.json +4 -111
  27. package/command-model/billing.json +8 -292
  28. package/command-model/budget.json +12 -500
  29. package/command-model/business-card.json +1 -42
  30. package/command-model/business-place.json +5 -318
  31. package/command-model/capacity.json +5 -166
  32. package/command-model/catalog.json +7 -229
  33. package/command-model/chat-channel.json +17 -561
  34. package/command-model/chat-mention-group.json +4 -130
  35. package/command-model/chat-message.json +7 -291
  36. package/command-model/chat-tenant-connection.json +7 -168
  37. package/command-model/cli-auth.json +6 -207
  38. package/command-model/cms-tag.json +8 -318
  39. package/command-model/commuting-expense.json +12 -417
  40. package/command-model/company-case-document.json +1 -36
  41. package/command-model/company-contract-document.json +9 -345
  42. package/command-model/company.json +5 -595
  43. package/command-model/config.json +2 -58
  44. package/command-model/contract.json +5 -541
  45. package/command-model/credit.json +20 -624
  46. package/command-model/cross-project-report.json +1 -35
  47. package/command-model/customer-campaign.json +5 -176
  48. package/command-model/customer-contact.json +8 -533
  49. package/command-model/customer-interaction.json +10 -709
  50. package/command-model/customer-people.json +3 -124
  51. package/command-model/customer.json +3 -124
  52. package/command-model/cycle-time-analysis.json +1 -54
  53. package/command-model/dashboard-calendar.json +1 -35
  54. package/command-model/department.json +8 -379
  55. package/command-model/deposit-plan.json +2 -64
  56. package/command-model/deposit.json +10 -493
  57. package/command-model/desktop-release.json +2 -58
  58. package/command-model/domain-knowledge-doc.json +6 -282
  59. package/command-model/domain-knowledge.json +5 -241
  60. package/command-model/dynamo-attachment.json +7 -248
  61. package/command-model/dynamo-cms.json +25 -1317
  62. package/command-model/dynamo-inquiry.json +11 -453
  63. package/command-model/dynamo-support.json +9 -292
  64. package/command-model/email-change.json +2 -54
  65. package/command-model/equipment-category.json +4 -124
  66. package/command-model/equipment.json +12 -614
  67. package/command-model/estimate-case-document.json +9 -344
  68. package/command-model/estimate-format.json +5 -460
  69. package/command-model/estimate-no-rule.json +5 -231
  70. package/command-model/estimate.json +11 -1020
  71. package/command-model/evaluation-pdf.json +2 -63
  72. package/command-model/evaluation-period.json +8 -471
  73. package/command-model/evaluation.json +18 -781
  74. package/command-model/expense-settings.json +2 -55
  75. package/command-model/external-integration-proxy.json +30 -1256
  76. package/command-model/faq-notion-import.json +7 -241
  77. package/command-model/faq.json +7 -405
  78. package/command-model/favorite.json +5 -174
  79. package/command-model/feedback.json +14 -539
  80. package/command-model/fiscal-year-setting.json +5 -162
  81. package/command-model/floor-map.json +5 -170
  82. package/command-model/follow-up-message-template.json +6 -192
  83. package/command-model/git-hub-pr-status.json +1 -36
  84. package/command-model/goal-sheet.json +12 -345
  85. package/command-model/google-auth.json +2 -95
  86. package/command-model/hearing-auth.json +11 -324
  87. package/command-model/hearing-invitation.json +5 -247
  88. package/command-model/hearing-session.json +5 -189
  89. package/command-model/hearing.json +22 -924
  90. package/command-model/holiday.json +10 -357
  91. package/command-model/hr-checklist-template.json +5 -256
  92. package/command-model/hr-checklist.json +6 -180
  93. package/command-model/hr-qualification.json +2 -103
  94. package/command-model/html-editor.json +2 -50
  95. package/command-model/index.json +298 -1490
  96. package/command-model/inquiry-response-generator.json +1 -38
  97. package/command-model/inquiry-routing.json +12 -359
  98. package/command-model/invoice-auto-template.json +7 -240
  99. package/command-model/invoice-no-rule.json +5 -231
  100. package/command-model/invoice.json +13 -914
  101. package/command-model/job-title.json +9 -416
  102. package/command-model/knowledge-qa.json +2 -57
  103. package/command-model/knowledge-recommendation-feedback.json +2 -97
  104. package/command-model/knowledge-recommendation.json +1 -51
  105. package/command-model/legacy-migration.json +2 -71
  106. package/command-model/license-assignment.json +7 -291
  107. package/command-model/license-type.json +7 -283
  108. package/command-model/license.json +15 -520
  109. package/command-model/login-history.json +2 -94
  110. package/command-model/man-hour.json +2 -102
  111. package/command-model/master-announcement.json +8 -515
  112. package/command-model/master-billing.json +3 -112
  113. package/command-model/master-pricing.json +7 -241
  114. package/command-model/master-product.json +12 -518
  115. package/command-model/master-support-ai.json +1 -34
  116. package/command-model/master-support.json +10 -445
  117. package/command-model/master-tenant.json +22 -1904
  118. package/command-model/media-file-comment.json +4 -137
  119. package/command-model/media-file-hls.json +2 -42
  120. package/command-model/media-file-version.json +5 -183
  121. package/command-model/media-file.json +44 -1707
  122. package/command-model/media-folder.json +11 -393
  123. package/command-model/meeting-category.json +5 -190
  124. package/command-model/meeting-minutes.json +1 -63
  125. package/command-model/meeting-pdf.json +1 -36
  126. package/command-model/meeting-template.json +5 -222
  127. package/command-model/meeting.json +13 -1045
  128. package/command-model/member.json +2 -127
  129. package/command-model/microsoft-auth.json +2 -92
  130. package/command-model/milli-credit.json +8 -268
  131. package/command-model/ms365-calendar-o-auth.json +4 -110
  132. package/command-model/music-generation.json +6 -227
  133. package/command-model/my-task.json +5 -163
  134. package/command-model/my-training.json +4 -153
  135. package/command-model/news-perspective.json +7 -210
  136. package/command-model/note-category.json +4 -144
  137. package/command-model/note-comment.json +5 -220
  138. package/command-model/note-favorite.json +2 -42
  139. package/command-model/note-reaction.json +2 -57
  140. package/command-model/note-subscription.json +4 -105
  141. package/command-model/note.json +10 -599
  142. package/command-model/notification-recipient-rule.json +5 -226
  143. package/command-model/notification.json +10 -366
  144. package/command-model/notion-import.json +6 -260
  145. package/command-model/o-auth-client.json +6 -329
  146. package/command-model/onboarding-template.json +17 -701
  147. package/command-model/operating-hours.json +1 -95
  148. package/command-model/order-form-scan.json +1 -28
  149. package/command-model/org-chart.json +1 -35
  150. package/command-model/organization-announcement-category.json +4 -130
  151. package/command-model/organization-announcement.json +10 -600
  152. package/command-model/password-reset.json +3 -95
  153. package/command-model/payee.json +5 -218
  154. package/command-model/pc-situation.json +1 -124
  155. package/command-model/phone-change.json +2 -60
  156. package/command-model/policy-employee.json +3 -94
  157. package/command-model/policy.json +12 -501
  158. package/command-model/position.json +6 -300
  159. package/command-model/private-agent-loop.json +29 -845
  160. package/command-model/private-task.json +7 -446
  161. package/command-model/process.json +6 -232
  162. package/command-model/profit-analysis.json +3 -178
  163. package/command-model/profit-summary.json +1 -65
  164. package/command-model/project-assignment.json +1 -50
  165. package/command-model/project-cost.json +5 -250
  166. package/command-model/project-custom-field.json +6 -374
  167. package/command-model/project-digest.json +3 -111
  168. package/command-model/project-evaluation.json +8 -308
  169. package/command-model/project-health.json +3 -153
  170. package/command-model/project-member.json +9 -464
  171. package/command-model/project-process.json +7 -305
  172. package/command-model/project-profit-analysis.json +1 -54
  173. package/command-model/project-quality-check-corrective-task.json +3 -121
  174. package/command-model/project-quality-check-record.json +3 -126
  175. package/command-model/project-quality-check-scope.json +2 -82
  176. package/command-model/project-quality-check-status.json +2 -58
  177. package/command-model/project-repository.json +5 -175
  178. package/command-model/project-revenue.json +6 -287
  179. package/command-model/project-task-analytics.json +1 -36
  180. package/command-model/project-task-category.json +5 -198
  181. package/command-model/project-task-comment.json +7 -425
  182. package/command-model/project-task-form-options.json +1 -36
  183. package/command-model/project-task-label.json +5 -198
  184. package/command-model/project-task-link.json +4 -164
  185. package/command-model/project-task-milestone.json +5 -210
  186. package/command-model/project-task-rule.json +7 -371
  187. package/command-model/project-task-status.json +5 -216
  188. package/command-model/project-task-template.json +5 -259
  189. package/command-model/project-task-type.json +5 -235
  190. package/command-model/project-task-version.json +5 -210
  191. package/command-model/project-task-watcher.json +3 -96
  192. package/command-model/project-task.json +22 -1620
  193. package/command-model/project-template.json +7 -438
  194. package/command-model/project.json +10 -1063
  195. package/command-model/prospect-activity.json +5 -288
  196. package/command-model/prospect-promotion.json +2 -81
  197. package/command-model/prospect.json +9 -811
  198. package/command-model/public-search.json +1 -63
  199. package/command-model/purchase-ai-field-mapping.json +6 -288
  200. package/command-model/purchase-document.json +9 -344
  201. package/command-model/purchase-estimate-scan.json +1 -37
  202. package/command-model/purchase-no-rule.json +5 -237
  203. package/command-model/purchase.json +7 -603
  204. package/command-model/push-subscription.json +3 -103
  205. package/command-model/qualification-import.json +4 -86
  206. package/command-model/qualification.json +7 -247
  207. package/command-model/quality-check-item.json +5 -251
  208. package/command-model/rag.json +2 -71
  209. package/command-model/rating-criteria.json +2 -71
  210. package/command-model/receivable-closing.json +4 -100
  211. package/command-model/receivable.json +2 -58
  212. package/command-model/received-invoice.json +4 -146
  213. package/command-model/refresh-token.json +1 -26
  214. package/command-model/report-format-order.json +2 -43
  215. package/command-model/report-saved-tab.json +5 -149
  216. package/command-model/report.json +51 -2439
  217. package/command-model/retrospective.json +15 -586
  218. package/command-model/revoke.json +1 -29
  219. package/command-model/risk-analysis.json +1 -36
  220. package/command-model/role-template.json +4 -193
  221. package/command-model/sales-ai-review-knowledge-draft.json +1 -32
  222. package/command-model/sales-ai-review-knowledge-pr.json +1 -44
  223. package/command-model/sales-ai-review-reason-list.json +1 -65
  224. package/command-model/sales-pdf.json +8 -288
  225. package/command-model/sales-rounding-setting.json +2 -61
  226. package/command-model/sales.json +12 -420
  227. package/command-model/saved-tab.json +5 -145
  228. package/command-model/saved-task-filter.json +4 -149
  229. package/command-model/seal-impression.json +5 -190
  230. package/command-model/segment.json +6 -232
  231. package/command-model/sidebar-badge-setting.json +2 -55
  232. package/command-model/skill-analytics.json +4 -158
  233. package/command-model/skill-category.json +5 -230
  234. package/command-model/skill-evaluation-export.json +1 -44
  235. package/command-model/skill-evaluation-record.json +2 -135
  236. package/command-model/skill-micro-feedback.json +3 -127
  237. package/command-model/skill-role-assignment.json +3 -112
  238. package/command-model/skill.json +7 -322
  239. package/command-model/staff-kpi-setting.json +4 -181
  240. package/command-model/staff-kpi.json +2 -82
  241. package/command-model/staffing-plan.json +8 -464
  242. package/command-model/storage.json +9 -249
  243. package/command-model/subscription.json +6 -159
  244. package/command-model/supplier-payment-schedule.json +5 -232
  245. package/command-model/supplier-payment.json +6 -339
  246. package/command-model/survey-tracker.json +6 -393
  247. package/command-model/survey.json +36 -1763
  248. package/command-model/task-analysis.json +1 -29
  249. package/command-model/task-branch.json +7 -302
  250. package/command-model/task-recurrence.json +5 -256
  251. package/command-model/task-wiki-link.json +4 -150
  252. package/command-model/tenant-ai-key.json +10 -334
  253. package/command-model/tenant-egress-policy.json +7 -283
  254. package/command-model/tenant-email-settings.json +5 -138
  255. package/command-model/tenant-git-hub-settings.json +13 -356
  256. package/command-model/tenant-master-email-change.json +2 -54
  257. package/command-model/tenant-rag-settings.json +9 -377
  258. package/command-model/tenant-registration.json +3 -123
  259. package/command-model/tenant-search.json +1 -35
  260. package/command-model/tenant-settings.json +24 -1223
  261. package/command-model/terms.json +3 -85
  262. package/command-model/test-execution.json +10 -362
  263. package/command-model/test-scenario.json +9 -379
  264. package/command-model/token.json +1 -26
  265. package/command-model/training-attendance.json +12 -504
  266. package/command-model/training-master.json +6 -309
  267. package/command-model/training-session.json +11 -599
  268. package/command-model/unified-search.json +2 -122
  269. package/command-model/update-record.json +2 -85
  270. package/command-model/user-api-key.json +7 -352
  271. package/command-model/user-assignment-calendar.json +1 -42
  272. package/command-model/user-assignment.json +15 -658
  273. package/command-model/user-contract-type.json +6 -448
  274. package/command-model/user-contract.json +7 -754
  275. package/command-model/user-group.json +7 -142
  276. package/command-model/user-info.json +1 -29
  277. package/command-model/user-invitation.json +7 -1040
  278. package/command-model/user-management.json +12 -1523
  279. package/command-model/user-qualification.json +4 -162
  280. package/command-model/user-seal-generate.json +1 -44
  281. package/command-model/user-shortcut-setting.json +3 -103
  282. package/command-model/user-skill-profile.json +11 -535
  283. package/command-model/user.json +30 -979
  284. package/command-model/video-generation.json +8 -451
  285. package/command-model/web-search.json +1 -62
  286. package/command-model/well-known.json +2 -58
  287. package/command-model/whisper.json +2 -83
  288. package/command-model/wiki-collection.json +13 -452
  289. package/command-model/wiki-notion-import.json +5 -167
  290. package/command-model/wiki-template.json +5 -182
  291. package/command-model/wiki.json +11 -468
  292. package/command-model/worker-agent-run.json +5 -180
  293. package/command-model/worker-agent.json +10 -519
  294. package/command-model/workflow-ai-review.json +3 -103
  295. package/command-model/workflow-analysis.json +1 -54
  296. package/command-model/workflow-approval-delegation.json +4 -130
  297. package/command-model/workflow-approval.json +8 -252
  298. package/command-model/workflow-instance.json +7 -273
  299. package/command-model/workflow-tracker.json +8 -476
  300. package/command-model/workflow.json +9 -548
  301. package/command-model/workload-alert.json +3 -100
  302. package/dist/{agent-loop-QP6UHX4R.js → agent-loop-D35USHWR.js} +1 -1
  303. package/dist/{ai-dispatch-VDNMECKK.js → ai-dispatch-3JJ4ICJF.js} +2 -2
  304. package/dist/{api-command-5LQFOG24.js → api-command-NZ4GJ7BW.js} +1 -1
  305. package/dist/{app-G524XCIA.js → app-67TGWKPM.js} +1 -1
  306. package/dist/{budget-AM7JJ5YP.js → budget-YQHHSX7Q.js} +1 -1
  307. package/dist/{chunk-QVPU4HHG.js → chunk-52HYPBSW.js} +13 -13
  308. package/dist/chunk-E7TZU54Y.js +17 -0
  309. package/dist/{chunk-K7OIECPN.js → chunk-JY4VWR5O.js} +4 -4
  310. package/dist/{chunk-E34FX2DF.js → chunk-NQJV2X2R.js} +1 -1
  311. package/dist/cli.js +19 -8
  312. package/dist/{commands-TYUK7MV4.js → commands-5VM6LUB5.js} +1 -1
  313. package/dist/{commands-BXU44JWS.js → commands-CVSXWYGR.js} +14 -14
  314. package/dist/{logout-guard-BIF2B7JE.js → logout-guard-ZQV2OPIO.js} +1 -1
  315. package/dist/{media-TIRJJUNN.js → media-ZIAI4GEB.js} +1 -1
  316. package/dist/{registry-3PWIZP2X.js → registry-4QVXMTGW.js} +1 -1
  317. package/dist/{run-XZZR3OKX.js → run-KXZBNXJF.js} +1 -1
  318. package/dist/server-settings-WYHQZV2N.js +3 -0
  319. package/dist/{setup-JGGFVRUW.js → setup-G24BYLQV.js} +1 -1
  320. package/dist/{teams-GPXJPXNC.js → teams-5EXL65HN.js} +53 -25
  321. package/package.json +1 -1
  322. package/dist/chunk-SA7A5WF2.js +0 -15
  323. package/dist/server-settings-TUBJ4P57.js +0 -3
@@ -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-K7OIECPN.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
3
+ import{loadDomain}from"./chunk-JY4VWR5O.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-E34FX2DF.js";import"./chunk-K7OIECPN.js";import"./chunk-GFLGXGWE.js";import"./chunk-MXKAEPXA.js";import"./chunk-AUAZP2G7.js";import"./chunk-Q3B65OFC.js";import"./chunk-RX5HWI4L.js";import"./chunk-MI6HVYR2.js";import"./chunk-FEJDU42E.js";import"./chunk-GMBJTG6A.js";import"./chunk-JA5A6UJ2.js";
3
+ import{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-NQJV2X2R.js";import"./chunk-JY4VWR5O.js";import"./chunk-GFLGXGWE.js";import"./chunk-MXKAEPXA.js";import"./chunk-AUAZP2G7.js";import"./chunk-Q3B65OFC.js";import"./chunk-RX5HWI4L.js";import"./chunk-MI6HVYR2.js";import"./chunk-FEJDU42E.js";import"./chunk-GMBJTG6A.js";import"./chunk-JA5A6UJ2.js";
4
4
  import"./chunk-QBGEYQ2I.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-YLM54X35.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-6A2JSS76.js";import"./chunk-QQRJLH6B.js";import"./chunk-K2ONOH3L.js";import"./chunk-WVS4W5FY.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain};
@@ -0,0 +1,3 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget}from"./chunk-E7TZU54Y.js";import"./chunk-52HYPBSW.js";import"./chunk-AEJHDFXB.js";import"./chunk-N2UVRM3Z.js";import"./chunk-JTJWDV5U.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";import"./chunk-VSJBJXZO.js";export{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{detectAiClis,formatDetection,isDetectableAi,isSelectable}from"./chunk-T4QZO6RQ.js";import{PromptAbortedError,promptText}from"./chunk-L37NS5L2.js";import{localConfigPath,parseClaudeLauncher}from"./chunk-QVPU4HHG.js";import"./chunk-N2UVRM3Z.js";import{AiConfig}from"./chunk-AEJHDFXB.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";
3
+ import{detectAiClis,formatDetection,isDetectableAi,isSelectable}from"./chunk-T4QZO6RQ.js";import{PromptAbortedError,promptText}from"./chunk-L37NS5L2.js";import{localConfigPath,parseClaudeLauncher}from"./chunk-52HYPBSW.js";import{AiConfig}from"./chunk-AEJHDFXB.js";import"./chunk-N2UVRM3Z.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";
4
4
  import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var RECOMMENDED_ROTATION={complex:["claude"],verify:["claude"],security:["claude"],support:["claude"],triage:["claude"],search:["claude"],simple:["claude"]};var RECOMMENDED_CHAINS={complex:["claude","codex"],verify:["claude","codex","copilot"],security:["claude","codex","copilot"],support:["claude","codex","copilot"],triage:["codex","gemini","copilot","claude"],search:["codex","gemini","copilot","claude"],simple:["codex","gemini","copilot","claude"]};var PREFERENCE=["claude","codex","gemini","co\
5
5
  pilot"];function buildAiAssignment(selected){if(selected.length===0)throw new Error("\u9078\u629E\u3055\u308C\u305FAI\u304C\u7A7A\u3067\u3059");const fallbackOrder=PREFERENCE.filter(ai=>selected.includes(ai));for(const ai of selected)if(!fallbackOrder.includes(ai))fallbackOrder.push(ai);const chains={};const rotation={};for(const category of Object.keys(RECOMMENDED_CHAINS)){const filtered=(RECOMMENDED_CHAINS[category]??[]).filter(ai=>selected.includes(ai));const chain=filtered.length>0?filtered:
6
6
  [...fallbackOrder];chains[category]=chain;const rot=(RECOMMENDED_ROTATION[category]??[]).filter(ai=>selected.includes(ai));const head=chain[0];rotation[category]=rot.length>0?rot:head===void 0?[...fallbackOrder]:[head]}return{primary_rotation:rotation,fallback_chains:chains}}var SETUP_EXIT_NO_CLI=3;var SETUP_EXIT_ABORTED=130;async function runSetup(opts){const env=opts.env??process.env;const rawOut=opts.out??(t=>void process.stdout.write(t));const rawErr=opts.err??(t=>void process.stderr.write(t));
@@ -1,8 +1,33 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
3
  import{textToHtml}from"./chunk-SDNASQZL.js";import"./chunk-Q3B65OFC.js";import{cursorFlag,graphData,graphListFlags,graphPaging,graphPagingHelp,graphPagingNotes,graphValue,ms365Forbidden,plainText,str,teamsFromText,topFlag}from"./chunk-XWJVDNYE.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{assertMs365PathSegment,ms365Path,ms365Segment}from"./chunk-QBGEYQ2I.js";
4
- import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var BODY_MAX_CHARS=1e5;var BODY_HEAD_CHARS=40;var USER_ID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var INVISIBLE=/[\p{Cc}\p{Cf}]/u;var TEAM_FLAG={name:"--team",summary:"\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"};var CHANNEL_FLAG={name:"--channel",summary:"\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"};var BODY_FILE_FLAG={name:"--body-file",summary:"\u672C\u6587\u3092\u30D5\
5
- \u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9|->"};var BODY_FLAG={name:"--body",summary:"\u672C\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E00\u884C\u5411\u3051\u3002--body-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var HTML_FLAG={name:"--html",summary:"\u672C\u6587\u3092 HTML \u3068\u3057\u3066\u9001\u308B\uFF08\u65E2\u5B9A\u306F\u30C6\u30AD\u30B9\u30C8\uFF09",
4
+ import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var KINDS=["channel","chat"];var TEAM_ID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var DESCRIPTION_MAX=2e3;var NAME_MAX=255;var FAVORITE_COLUMNS=["kind","display_name","description","sort_order","team_id","id"];var KIND_FLAG={name:"--kind",summary:"\u7A2E\u5225\u3067\u7D5E\u308B\uFF08channel | chat\uFF09",takesValue:true,placeholder:"<\u7A2E\u5225>"};var TEAM_FLAG={name:"--team",summary:"\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D\
5
+ |ID>"};var CHANNEL_FLAG={name:"--channel",summary:"\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"};var CHAT_FLAG={name:"--chat",summary:"\u30C1\u30E3\u30C3\u30C8ID\uFF08twp teams chat list \u306E id\uFF09",takesValue:true,placeholder:"<ID>"};var DESCRIPTION_FLAG={name:"--description",summary:`\u7528\u9014\u306E\u8AAC\u660E\uFF08${DESCRIPTION_MAX}\u6587\u5B57\u307E\u3067\u3002"" \u3067\u7A7A\u306B\u3059\u308B\uFF09`,takesValue:true,placeholder:"\
6
+ <\u6587>"};var NAME_FLAG={name:"--name",summary:"\u8868\u793A\u540D\uFF08\u30C1\u30E3\u30CD\u30EB\u306F\u7701\u304F\u3068\u30C1\u30E3\u30CD\u30EB\u540D\u3002\u30C1\u30E3\u30C3\u30C8\u306F\u540D\u524D\u3092\u6301\u305F\u306A\u3044\u306E\u3067\u898B\u5206\u3051\u3084\u3059\u3044\u540D\u524D\u3092\u4ED8\u3051\u308B\uFF09",takesValue:true,placeholder:"<\u540D\u524D>"};var FAVORITES_PATH="/teams/favorites";function parseKind(raw,usage){if(raw===void 0)return void 0;const kind=raw.trim();if(!KINDS.includes(
7
+ kind)){throw new UsageError(`\u7A2E\u5225\u306B\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F channel / chat \u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,usage)}return kind}function parseKey(raw,usage){const slash=raw.indexOf("/");if(slash<0){throw new UsageError(`\u304A\u6C17\u306B\u5165\u308A\u306F <\u7A2E\u5225>/<ID> \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,usage)}const kind=parseKind(raw.slice(
8
+ 0,slash),usage);const id=assertMs365PathSegment(raw.slice(slash+1).trim(),kind==="channel"?"\u30C1\u30E3\u30CD\u30EBID":"\u30C1\u30E3\u30C3\u30C8ID");return{kind,id}}function descriptionFlag(input){const value=input.flags.get("--description");if(value===void 0)return void 0;if([...value].length>DESCRIPTION_MAX){throw new UsageError(`--description \u306F ${DESCRIPTION_MAX} \u6587\u5B57\u307E\u3067\u3067\u3059\uFF08${[...value].length} \u6587\u5B57\uFF09`)}return value}function nameFlag(input){const name=nonEmpty(
9
+ input.flags,"--name")?.trim();if(name!==void 0&&[...name].length>NAME_MAX){throw new UsageError(`--name \u306F ${NAME_MAX} \u6587\u5B57\u307E\u3067\u3067\u3059\uFF08${[...name].length} \u6587\u5B57\uFF09`)}return name}async function resolveTeamId(input,ctx,usage){const ref=input.flags.get("--team")?.trim();if(ref===void 0||ref==="")throw new UsageError("--team \u3067\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(TEAM_ID.test(ref))
10
+ return ref.toLowerCase();return(await ctx.resolver.ms365Team(ref)).id}function favoriteData(body,label){const data=isRecord(body)?body["data"]:void 0;if(!isRecord(data))throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B data \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data}function favoriteValue(body,label){const value=favoriteData(body,label)["value"];if(!Array.isArray(value))throw new ApiResponseError(
11
+ `${label}\u306E\u5FDC\u7B54\u306B value \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return value.filter(isRecord)}var favoriteRow=row=>pick(row,FAVORITE_COLUMNS);function upsertBody(input){const kind=requireResolved(input,"kind");const body={kind};if(kind==="channel"){body["team_id"]=requireResolved(input,"teamId");body["channel_id"]=requireResolved(input,"id")}else{body["chat_id"]=requireResolved(input,"i\
12
+ d")}const name=input.resolved?.["displayName"];if(name!==void 0)body["display_name"]=name;const description=descriptionFlag(input);if(description!==void 0)body["description"]=description;return body}var upsertSummary=body=>favoriteRow(favoriteData(body,"\u304A\u6C17\u306B\u5165\u308A"));var favoriteResource={name:"favorite",summary:"\u304A\u6C17\u306B\u5165\u308A\u306E\u30C1\u30E3\u30CD\u30EB\u30FB\u30C1\u30E3\u30C3\u30C8\uFF08\u7528\u9014\u306E\u8AAC\u660E\u3064\u304D\u30FB\u81EA\u5206\u3060\u3051\uFF09",
13
+ operations:[{name:"list",summary:"\u304A\u6C17\u306B\u5165\u308A\u306E\u30C1\u30E3\u30CD\u30EB\u30FB\u30C1\u30E3\u30C3\u30C8\u3092\u4E26\u3073\u9806\u306B\u4E00\u89A7\u3059\u308B\uFF08\u5B9B\u5148\u306B\u8FF7\u3063\u305F\u3089\u6700\u521D\u306B\u898B\u308B\uFF09",usage:"twp teams favorite list [--kind channel|chat]",description:"\u81EA\u5206\u304C\u767B\u9332\u3057\u305F\u304A\u6C17\u306B\u5165\u308A\u3092\u3001\u7A2E\u5225\u3054\u3068\u306B\u4E26\u3073\u9806\uFF08sort_order\uFF09\u3067\u8FD4\u3057\u307E\u3059\u3002\u4ED6\u306E\u30E6\u30FC\u30B6\u30FC\u304B\u3089\u306F\u898B\u3048\u307E\u305B\u3093\u3002\n\u30C1\u30E3\u30CD\u30EB\u306F team_id \u3068 id \u3092 --team / --channel \u306B\u3001\u30C1\u30E3\u30C3\u30C8\u306F id \u3092 --chat \u306B\u305D\u306E\u307E\u307E\u6E21\u305B\u307E\u3059\u3002\n\nTeams \u3078\u6295\u7A3F\u3059\u308B\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8AAD\u3080\u3068\u304D\u306B\u5B9B\u5148\u306B\u8FF7\u3063\u305F\u3089\u3001\u307E\u305A\u3053\u306E\u4E00\u89A7\u306E\u8AAC\u660E\uFF08\
14
+ description\uFF09\u3092\u898B\u3066\u304F\u3060\u3055\u3044\u3002\nchannel list / chat list \u306B\u3082\u304A\u6C17\u306B\u5165\u308A\u306E\u5370\u306F\u51FA\u307E\u3059\u304C\u3001\u4E26\u3079\u66FF\u3048\u306F\u53D6\u5F97\u3067\u304D\u305F\u30DA\u30FC\u30B8\u5185\u3060\u3051\u3067\u3059\u3002",flags:[KIND_FLAG],forbidden:ms365Forbidden,plan(input){return{method:"GET",path:ms365Path(FAVORITES_PATH),query:{kind:parseKind(nonEmpty(input.flags,"--kind"),"twp teams favorite list help")}}},summarize:body=>favoriteValue(
15
+ body,"\u304A\u6C17\u306B\u5165\u308A\u4E00\u89A7").map(favoriteRow),raw:body=>favoriteValue(body,"\u304A\u6C17\u306B\u5165\u308A\u4E00\u89A7")},{name:"add",summary:"\u30C1\u30E3\u30CD\u30EB\u304B\u30C1\u30E3\u30C3\u30C8\u3092\u304A\u6C17\u306B\u5165\u308A\u306B\u767B\u9332\u3059\u308B\uFF08\u767B\u9332\u6E08\u307F\u306A\u3089\u4E0A\u66F8\u304D\uFF09",usage:"twp teams favorite add (--team <\u540D\u524D|ID> --channel <\u540D\u524D|ID> | --chat <ID>) [--description <\u6587>] [--name <\u540D\u524D>]",
16
+ description:'--team \u3068 --channel\uFF08\u30C1\u30E3\u30CD\u30EB\uFF09\u304B --chat\uFF08\u30C1\u30E3\u30C3\u30C8\uFF09\u306E\u3069\u3061\u3089\u304B\u4E00\u65B9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n\u30C1\u30E3\u30CD\u30EB\u306F\u540D\u524D\u3067\u3082 ID \u3067\u3082\u6307\u5B9A\u3067\u304D\u3001\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30E3\u30CD\u30EB\u306E\u4E00\u89A7\u3067\u5F15\u3044\u3066\u8868\u793A\u540D\u3092\u4E00\u7DD2\u306B\u4FDD\u5B58\u3057\u307E\u3059\n\uFF08\u767B\u9332\u6E08\u307F\u306E\u30C1\u30E3\u30CD\u30EB\u306B add \u3057\u76F4\u3059\u3068\u3001\u8868\u793A\u540D\u306F --name \u304B\u3044\u307E\u306E\u30C1\u30E3\u30CD\u30EB\u540D\u3067\u4E0A\u66F8\u304D\u3055\u308C\u307E\u3059\u3002\u8AAC\u660E\u306F\u7701\u3051\u3070\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002\n\u30C1\u30E3\u30C3\u30C8\u306F\u540D\u524D\u3092\u6301\u305F\u306A\u3044\u306E\u3067\u3001--name \u3067\u898B\u5206\u3051\u3084\u3059\u3044\u540D\u524D\u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF08ID \u306F twp teams chat list \u306E id\uFF09\u3002\n\n\u65B0\u3057\u304F\u767B\u9332\u3057\u305F\u304A\u6C17\u306B\u5165\u308A\u306F\u540C\u3058\u7A2E\u5225\u306E\u672B\u5C3E\u306B\u4E26\u3073\u307E\u3059\u3002\u4E26\u3073\u306F twp teams favorite order \u3067\u5909\u3048\u307E\u3059\u3002\n\n\u4F8B: twp teams favorite add --team \u958B\u767A --channel General --description "\u30EA\u30EA\u30FC\u30B9\u9023\u7D61\u306F\u3053\u3053"',
17
+ flags:[TEAM_FLAG,CHANNEL_FLAG,CHAT_FLAG,DESCRIPTION_FLAG,NAME_FLAG],forbidden:ms365Forbidden,async prepare(input,ctx){const usage="twp teams favorite add help";if(input.args.length>0)throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usage);descriptionFlag(input);const name=nameFlag(input);const chat=input.flags.get("--chat");const hasChannel=input.flags.has("--team")||input.flags.has("--channel");if(chat!==void 0&&hasChannel){
18
+ throw new UsageError("--chat \u3068 --team / --channel \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usage)}if(chat!==void 0){const id=assertMs365PathSegment(chat.trim(),"\u30C1\u30E3\u30C3\u30C8ID");return withResolved(input,{kind:"chat",id,...name!==void 0?{displayName:name}:{}})}if(!hasChannel)throw new UsageError("--team \u3068 --channel \u304B\u3001--chat \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const channelRef=input.flags.get("--channel")?.trim();
19
+ if(channelRef===void 0||channelRef===""){throw new UsageError("--channel \u3067\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage)}const teamId=await resolveTeamId(input,ctx,usage);const channel=await ctx.resolver.ms365Channel(teamId,channelRef);return withResolved(input,{kind:"channel",teamId,id:channel.id,displayName:name??channel.name})},plan(input){return{method:"PUT",path:ms365Path(FAVORITES_PATH),body:upsertBody(input)}},summarize:upsertSummary,
20
+ raw:body=>favoriteData(body,"\u304A\u6C17\u306B\u5165\u308A")},{name:"update",summary:"\u304A\u6C17\u306B\u5165\u308A\u306E\u8AAC\u660E\u30FB\u8868\u793A\u540D\u3092\u5909\u3048\u308B",usage:"twp teams favorite update <\u7A2E\u5225>/<ID> [--team <\u540D\u524D|ID>] [--description <\u6587>] [--name <\u540D\u524D>]",description:'<\u7A2E\u5225>/<ID> \u306F twp teams favorite list \u306E kind \u3068 id \u3067\u3059\uFF08\u4F8B: chat/19:abc@unq.gbl.spaces\uFF09\u3002\n\u30C1\u30E3\u30CD\u30EB\uFF08channel/<ID>\uFF09\u306F --team \u3082\u5FC5\u8981\u3067\u3059\uFF08list \u306E team_id \u3092\u305D\u306E\u307E\u307E\u6E21\u305B\u307E\u3059\uFF09\u3002\n\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\u3002--descriptio\
21
+ n "" \u3067\u8AAC\u660E\u3092\u7A7A\u306B\u3057\u307E\u3059\u3002\n\n\u26A0 \u307E\u3060\u767B\u9332\u3057\u3066\u3044\u306A\u3044 ID \u3092\u6307\u5B9A\u3059\u308B\u3068\u3001\u65B0\u3057\u3044\u304A\u6C17\u306B\u5165\u308A\u3068\u3057\u3066\u767B\u9332\u3055\u308C\u307E\u3059\uFF08list \u3067\u78BA\u304B\u3081\u3066\u304B\u3089\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\uFF09\u3002',flags:[TEAM_FLAG,DESCRIPTION_FLAG,NAME_FLAG],forbidden:ms365Forbidden,async prepare(input,ctx){const usage="twp t\
22
+ eams favorite update help";const{kind,id}=parseKey(singleRef(input,{flag:"--favorite",label:"\u304A\u6C17\u306B\u5165\u308A",usage}),usage);descriptionFlag(input);const name=nameFlag(input);if(input.flags.get("--description")===void 0&&name===void 0){throw new UsageError("\u5909\u3048\u308B\u9805\u76EE\uFF08--description \u304B --name\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage)}const values={kind,id,...name!==void 0?{displayName:name}:{}};if(kind==="channel")values["teamI\
23
+ d"]=await resolveTeamId(input,ctx,usage);else if(input.flags.has("--team"))throw new UsageError("\u30C1\u30E3\u30C3\u30C8\u306E\u304A\u6C17\u306B\u5165\u308A\u306B --team \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usage);return withResolved(input,values)},plan(input){return{method:"PUT",path:ms365Path(FAVORITES_PATH),body:upsertBody(input)}},summarize:upsertSummary,raw:body=>favoriteData(body,"\u304A\u6C17\u306B\u5165\u308A")},{name:"order",summary:"\u304A\u6C17\u306B\u5165\u308A\u306E\u4E26\u3073\u9806\u3092\u5909\u3048\u308B\uFF08\u6307\u5B9A\u3057\u305F\u9806\u306B\u5148\u982D\u304B\u3089\u4E26\u3079\u308B\uFF09",
24
+ usage:"twp teams favorite order <\u7A2E\u5225> <ID> [<ID> ...]",description:"\u6307\u5B9A\u3057\u305F ID \u306E\u9806\u306B\u5148\u982D\u304B\u3089\u4E26\u3079\u307E\u3059\u3002\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u304A\u6C17\u306B\u5165\u308A\u306F\u305D\u306E\u5F8C\u308D\u306B\u5143\u306E\u9806\u3067\u7D9A\u304D\u307E\u3059\u3002\n\u4E26\u3073\u9806\u306F\u7A2E\u5225\uFF08channel / chat\uFF09\u3054\u3068\u3067\u3059\u3002\u767B\u9332\u3057\u3066\u3044\u306A\u3044 ID \u306F\u7121\u8996\u3055\u308C\u307E\u3059\u3002\n\n\u4F8B: twp teams favorite order channel 19:aaa@thread.tacv2 19:bbb@thread.tacv2",
25
+ flags:[],forbidden:ms365Forbidden,plan(input){const usage="twp teams favorite order help";const[rawKind,...ids]=input.args;const kind=parseKind(rawKind,usage);if(kind===void 0||ids.length===0){throw new UsageError("\u7A2E\u5225\u3068\u3001\u4E26\u3079\u305F\u3044\u9806\u306E ID \u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage)}return{method:"PUT",path:ms365Path(`${FAVORITES_PATH}/order`),body:{kind,ids:ids.map(id=>assertMs365PathSegment(id.trim(),"ID"))}}},summarize:body=>favoriteValue(
26
+ body,"\u304A\u6C17\u306B\u5165\u308A\u4E00\u89A7").map(favoriteRow),raw:body=>favoriteValue(body,"\u304A\u6C17\u306B\u5165\u308A\u4E00\u89A7")},{name:"remove",summary:"\u304A\u6C17\u306B\u5165\u308A\u304B\u3089\u5916\u3059",usage:"twp teams favorite remove <\u7A2E\u5225>/<ID> --yes",description:"<\u7A2E\u5225>/<ID> \u306F twp teams favorite list \u306E kind \u3068 id \u3067\u3059\u3002\u5916\u3059\u306E\u306F\u304A\u6C17\u306B\u5165\u308A\u306E\u767B\u9332\u3060\u3051\u3067\u3001\n\u30C1\u30E3\u30CD\u30EB\u30FB\u30C1\u30E3\u30C3\u30C8\u305D\u306E\u3082\u306E\u306B\u306F\u89E6\u308C\u307E\u305B\u3093\u3002\u767B\u9332\u3057\u305F\u8AAC\u660E\u306F\u6D88\u3048\u307E\u3059\uFF08--yes \u304C\u5FC5\u8981\u3067\u3059\uFF09\u3002",
27
+ flags:[],destructive:true,confirmation:"Teams \u306E\u304A\u6C17\u306B\u5165\u308A\u3092\u5916\u3059\u64CD\u4F5C\uFF08\u767B\u9332\u3057\u305F\u8AAC\u660E\u3082\u6D88\u3048\u307E\u3059\uFF09",forbidden:ms365Forbidden,plan(input){const usage="twp teams favorite remove help";const{kind,id}=parseKey(singleRef(input,{flag:"--favorite",label:"\u304A\u6C17\u306B\u5165\u308A",usage}),usage);return{method:"DELETE",path:ms365Path(`${FAVORITES_PATH}/${kind}/${ms365Segment(id,kind==="channel"?"\u30C1\u30E3\u30CD\u30EBID":
28
+ "\u30C1\u30E3\u30C3\u30C8ID")}`)}},summarize:body=>favoriteData(body,"\u304A\u6C17\u306B\u5165\u308A\u306E\u524A\u9664"),raw:body=>favoriteData(body,"\u304A\u6C17\u306B\u5165\u308A\u306E\u524A\u9664")}]};function favoriteColumns(row){const fav=isRecord(row)&&isRecord(row["twp_favorite"])?row["twp_favorite"]:null;if(fav===null)return{favorite:null,favorite_description:null};return{favorite:"\u2605",favorite_description:str(fav["description"])}}function favoriteTeamColumn(row){const count=isRecord(
29
+ row)?row["twp_favorite_channel_count"]:void 0;return{favorite:typeof count==="number"&&count>0?`\u2605${count}`:null}}var BODY_MAX_CHARS=1e5;var BODY_HEAD_CHARS=40;var USER_ID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var INVISIBLE=/[\p{Cc}\p{Cf}]/u;var TEAM_FLAG2={name:"--team",summary:"\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"};var CHANNEL_FLAG2={name:"--channel",summary:"\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"};var BODY_FILE_FLAG={name:"--body-file",summary:"\u672C\u6587\
30
+ \u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9|->"};var BODY_FLAG={name:"--body",summary:"\u672C\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E00\u884C\u5411\u3051\u3002--body-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var HTML_FLAG={name:"--html",summary:"\u672C\u6587\u3092 HTML \u3068\u3057\u3066\u9001\u308B\uFF08\u65E2\u5B9A\u306F\u30C6\u30AD\u30B9\u30C8\uFF09",
6
31
  takesValue:false};var MENTION_FLAG={name:"--mention",summary:"\u30E1\u30F3\u30B7\u30E7\u30F3\u3059\u308B\u30E6\u30FC\u30B6\u30FC\uFF08<\u30E6\u30FC\u30B6\u30FCID>=<\u8868\u793A\u540D>\u3002\u672C\u6587\u306E @<\u8868\u793A\u540D> \u304C\u30E1\u30F3\u30B7\u30E7\u30F3\u306B\u306A\u308B\u30FB\u7E70\u308A\u8FD4\u3057\u53EF\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FCID>=<\u8868\u793A\u540D>",repeatable:true};var EXTERNAL_POST_HELP="\u26A0 \u5916\u90E8\u3078\u51FA\u308B\u64CD\u4F5C\u3067\u3059\u3002\u5B9F\u884C\u3057\u305F\u77AC\u9593\u306B\u30E1\u30F3\u30D0\u30FC\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059\uFF08CLI \u304B\u3089\u306F\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09\u3002\n \
7
32
  --yes \u304C\u7121\u3051\u308C\u3070\u5B9F\u884C\u3057\u307E\u305B\u3093\u3002--dry-run \u3067\u9001\u4FE1\u5148\uFF08\u30C1\u30FC\u30E0\u30FB\u30C1\u30E3\u30CD\u30EB\u30FB\u30C1\u30E3\u30C3\u30C8\u306E\u8868\u793A\u540D\u3068 ID\uFF09\u3068\u672C\u6587\u3092\u78BA\u304B\u3081\u3066\u304B\u3089\n --yes \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF08--dry-run \u306F --yes \u3092\u8981\u308A\u307E\u305B\u3093\uFF09\u3002\n\u26A0 \u7D42\u4E86\u30B3\u30FC\u30C9 4\uFF08\u901A\u4FE1\u306E\u5931\u6557\u30FB\u30B5\u30FC\u30D0\u306E\u4E00\u6642\u30A8\u30E9\u30FC\uFF09\u3067\u3082\u3001Teams \u5074\u3067\u306F\u6295\u7A3F\u6E08\u307F\u306E\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\n \u6253\u3061\u76F4\u3059\u524D\u306B twp teams message list\uFF08\u8FD4\u4FE1\u306F twp teams reply list\uFF09\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
8
33
  var BODY_HELP="\u672C\u6587\u306F --body-file <\u30D1\u30B9>\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u304B --body <\u6587\u5B57\u5217> \u3067\u6E21\u3057\u307E\u3059\u3002\u6539\u884C\u3084\u8A18\u53F7\u3092\u542B\u3080\u672C\u6587\u306F\n--body-file \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\uFF08\u30B7\u30A7\u30EB\u306E\u5F15\u6570\u306B\u8F09\u305B\u308B\u3068\u58CA\u308C\u307E\u3059\uFF09\u3002\n\u672C\u6587\u306F\u65E2\u5B9A\u3067\u30C6\u30AD\u30B9\u30C8\u3068\u3057\u3066\u6271\u3044\u3001\u6539\u884C\u3068\u8A18\u53F7\u304C\u898B\u305F\u3068\u304A\u308A\u306B\u8868\u793A\u3055\u308C\u308B\u3088\u3046 HTML \u306B\u76F4\u3057\u3066\u9001\u308A\u307E\u3059\n\uFF08--dry-run \u306E body \u306B\u5909\u63DB\u5F8C\u306E\u5024\u304C\u51FA\u307E\u3059\uFF09\u3002--html \u3092\u4ED8\u3051\u308B\u3068 HTML \u3068\u3057\u3066\u305D\u306E\u307E\u307E\u9001\u308A\u307E\u3059\u3002";
@@ -22,13 +47,15 @@ body,label);return{sent:true,id:data["id"],createdDateTime:data["createdDateTime
22
47
  description:`${EXTERNAL_POST_HELP}
23
48
 
24
49
  --chat\uFF08\u30C1\u30E3\u30C3\u30C8\uFF09\u304B\u3001--team \u3068 --channel\uFF08\u30C1\u30E3\u30CD\u30EB\u3078\u306E\u65B0\u3057\u3044\u6295\u7A3F\uFF09\u306E\u3069\u3061\u3089\u304B\u4E00\u65B9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002
50
+ \u6295\u7A3F\u5148\u306B\u8FF7\u3063\u305F\u3089\u3001\u307E\u305A twp teams favorite list \u3067\u7528\u9014\u306E\u8AAC\u660E\u3064\u304D\u306E\u304A\u6C17\u306B\u5165\u308A\u3092\u898B\u3066\u304F\u3060\u3055\u3044
51
+ \uFF08channel list / chat list \u3067\u3082\u304A\u6C17\u306B\u5165\u308A\u306F\u5148\u982D\u306B\u4E26\u3073\u307E\u3059\u304C\u3001\u53D6\u5F97\u3057\u305F\u30DA\u30FC\u30B8\u5185\u3060\u3051\u3067\u3059\uFF09\u3002
25
52
  \u30C1\u30E3\u30C3\u30C8\u306F ID \u3060\u3051\u3067\u6307\u5B9A\u3057\u307E\u3059\uFF08twp teams chat list \u306E id\uFF09\u3002\u30C1\u30FC\u30E0\u30FB\u30C1\u30E3\u30CD\u30EB\u306F\u540D\u524D\u3067\u3082 ID \u3067\u3082\u6307\u5B9A\u3067\u304D\u3001
26
53
  \u3069\u3061\u3089\u306E\u5834\u5408\u3082\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30FC\u30E0\u30FB\u30C1\u30E3\u30CD\u30EB\u306E\u4E00\u89A7\u3067\u5F15\u304D\u76F4\u3057\u3066\u8868\u793A\u540D\u3092\u9001\u308B\u524D\u306B\u8868\u793A\u3057\u307E\u3059\u3002
27
54
  \u30C1\u30E3\u30CD\u30EB\u306E\u30B9\u30EC\u30C3\u30C9\u3078\u8FD4\u4FE1\u3059\u308B\u3068\u304D\u306F twp teams reply send \u3092\u4F7F\u3044\u307E\u3059\u3002
28
55
 
29
56
  ${BODY_HELP}
30
57
 
31
- `+MENTION_HELP,destructive:true,confirmation:"\u5916\u90E8\u3078 Teams \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u6295\u7A3F\u3059\u308B\u64CD\u4F5C\uFF08\u30E1\u30F3\u30D0\u30FC\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059\uFF09",flags:[{name:"--chat",summary:"\u30C1\u30E3\u30C3\u30C8ID\uFF08twp teams chat list \u306E id\uFF09",takesValue:true,placeholder:"<ID>"},TEAM_FLAG,CHANNEL_FLAG,BODY_FILE_FLAG,BODY_FLAG,HTML_FLAG,MENTION_FLAG],forbidden:ms365Forbidden,async prepare(input,ctx){const usage="\
58
+ `+MENTION_HELP,destructive:true,confirmation:"\u5916\u90E8\u3078 Teams \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u6295\u7A3F\u3059\u308B\u64CD\u4F5C\uFF08\u30E1\u30F3\u30D0\u30FC\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059\uFF09",flags:[{name:"--chat",summary:"\u30C1\u30E3\u30C3\u30C8ID\uFF08twp teams chat list \u306E id\uFF09",takesValue:true,placeholder:"<ID>"},TEAM_FLAG2,CHANNEL_FLAG2,BODY_FILE_FLAG,BODY_FLAG,HTML_FLAG,MENTION_FLAG],forbidden:ms365Forbidden,async prepare(input,ctx){const usage="\
32
59
  twp teams message send help";if(input.args.length>0)throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093: ${input.args.join(" ")}`,usage);const chat=input.flags.get("--chat");const hasChannel=input.flags.has("--team")||input.flags.has("--channel");if(chat!==void 0&&hasChannel)throw new UsageError("--chat \u3068 --team / --channel \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usage);if(chat===void 0&&!hasChannel)throw new UsageError(
33
60
  "--chat \u304B\u3001--team \u3068 --channel \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const chatId=chat===void 0?void 0:assertMs365PathSegment(chat.trim(),"\u30C1\u30E3\u30C3\u30C8ID");const content=await readContent(input,usage,"\u30E1\u30C3\u30BB\u30FC\u30B8\u306E\u672C\u6587");if(chatId!==void 0)return withResolved(input,{...content,chatId});return withResolved(input,{...content,...await resolveChannelTarget(input,ctx,usage)})},plan(input){const chatId=input.resolved?.["c\
34
61
  hatId"];const path=chatId!==void 0?`/teams/chats/${ms365Segment(chatId,"\u30C1\u30E3\u30C3\u30C8ID")}/messages`:`${channelPath(input)}/messages`;return{method:"POST",path:ms365Path(path),body:requestBody(input)}},plannedNotes(input){const chatId=input.resolved?.["chatId"];const where=chatId!==void 0?`\u30C1\u30E3\u30C3\u30C8\uFF08${chatId}\u30FB\u540D\u524D\u306F\u8868\u793A\u3067\u304D\u307E\u305B\u3093\u3002twp teams chat list \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\uFF09`:channelText(
@@ -41,26 +68,27 @@ twp teams reply send <\u6295\u7A3FID> --team <\u540D\u524D|ID> --channel <\u540D
41
68
 
42
69
  ${BODY_HELP}
43
70
 
44
- `+MENTION_HELP,destructive:true,confirmation:"\u5916\u90E8\u3078 Teams \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u6295\u7A3F\u3059\u308B\u64CD\u4F5C\uFF08\u30E1\u30F3\u30D0\u30FC\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059\uFF09",flags:[{name:"--message",summary:"\u6295\u7A3FID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"},TEAM_FLAG,CHANNEL_FLAG,BODY_FILE_FLAG,BODY_FLAG,HTML_FLAG,MENTION_FLAG],forbidden:ms365Forbidden,async prepare(input,ctx){
71
+ `+MENTION_HELP,destructive:true,confirmation:"\u5916\u90E8\u3078 Teams \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u6295\u7A3F\u3059\u308B\u64CD\u4F5C\uFF08\u30E1\u30F3\u30D0\u30FC\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059\uFF09",flags:[{name:"--message",summary:"\u6295\u7A3FID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"},TEAM_FLAG2,CHANNEL_FLAG2,BODY_FILE_FLAG,BODY_FLAG,HTML_FLAG,MENTION_FLAG],forbidden:ms365Forbidden,async prepare(input,ctx){
45
72
  const usage="twp teams reply send help";const message=singleRef(input,{flag:"--message",label:"\u6295\u7A3FID",usage});const messageId=assertMs365PathSegment(message,"\u6295\u7A3FID");const content=await readContent(input,usage,"\u8FD4\u4FE1\u306E\u672C\u6587");return withResolved(input,{...content,messageId,...await resolveChannelTarget(input,ctx,usage)})},plan(input){const message=ms365Segment(requireResolved(input,"messageId"),"\u6295\u7A3FID");return{method:"POST",path:ms365Path(`${channelPath(
46
73
  input)}/messages/${message}/replies`),body:requestBody(input)}},plannedNotes:input=>[`\u8FD4\u4FE1\u5148: ${channelText(input)} / \u6295\u7A3F ${requireResolved(input,"messageId")} / ${contentNotes(input)}`],summarize:body=>postedSummary(body,"\u8FD4\u4FE1"),raw:body=>posted(body,"\u8FD4\u4FE1"),notes:()=>["\u8FD4\u4FE1\u3057\u307E\u3057\u305F\u3002twp teams reply list <\u6295\u7A3FID> --team \u2026 --channel \u2026 \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002"]};var messageSendOperation=messageSend;
47
- var replySendOperation=replySend;var MESSAGE_TOP_MAX=50;var CHAT_TOP_MAX=50;var MENTION_LIMIT_MAX=200;var TEAM_ID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var CHANNEL_ID=/^19:[^\s]+@thread\.[A-Za-z0-9]+$/;var TEAM_COLUMNS=["id","displayName","description","visibility","isArchived"];var MEMBER_COLUMNS=["id","displayName","email","roles","userId"];var CHANNEL_COLUMNS=["id","displayName","membershipType","description","isArchived"];var CHAT_COLUMNS=["id","chatType","topic","members","lastUpdatedDateTime"];
48
- var MESSAGE_COLUMNS=["id","createdDateTime","from","subject","text","replyToId"];var MENTION_COLUMNS=["created_at","scope","where","from","preview","is_unread","mention_type","message_id"];var FOLDER_COLUMNS=["driveId","id","name","webUrl"];var TEAM_FLAG2={name:"--team",summary:"\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"};var CHANNEL_FLAG2={name:"--channel",summary:"\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,
49
- placeholder:"<\u540D\u524D|ID>"};function messageRow(row){const source=isRecord(row)?row:{};return pick({...source,from:teamsFromText(source["from"]),text:plainText(source["body"])},MESSAGE_COLUMNS)}function chatRow(row){const source=isRecord(row)?row:{};const members=Array.isArray(source["members"])?source["members"].map(m=>isRecord(m)?str(m["displayName"]):null).filter(v=>v!==null):[];return pick({...source,members:members.length>0?members.join("\u3001"):null},CHAT_COLUMNS)}async function resolveTeam(input,ctx,usage){
50
- const ref=input.flags.get("--team")?.trim();if(ref===void 0||ref==="")throw new UsageError("--team \u3067\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(TEAM_ID.test(ref))return ref.toLowerCase();return(await ctx.resolver.ms365Team(ref)).id}async function resolveChannel(input,ctx,teamId,usage){const ref=input.flags.get("--channel")?.trim();if(ref===void 0||ref==="")throw new UsageError("--channel \u3067\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
74
+ var replySendOperation=replySend;var MESSAGE_TOP_MAX=50;var CHAT_TOP_MAX=50;var MENTION_LIMIT_MAX=200;var TEAM_ID2=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var FAVORITE_HELP="\u304A\u6C17\u306B\u5165\u308A\uFF08twp teams favorite add \u3067\u767B\u9332\uFF09\u306F favorite \u5217\u306B \u2605\u3001favorite_description \u5217\u306B\u7528\u9014\u306E\u8AAC\u660E\u304C\u51FA\u3066\u3001\n\u5148\u982D\u306B\u4E26\u3073\u307E\u3059\u3002\u305F\u3060\u3057\u4E26\u3079\u66FF\u3048\u306F\u53D6\u5F97\u3057\u305F\u30DA\u30FC\u30B8\u5185\u3060\u3051\u3067\u3059\u3002\u5168\u4EF6\u306F twp teams favorite list \u3067\u898B\u3066\u304F\u3060\u3055\u3044\u3002\n";
75
+ var CHANNEL_ID=/^19:[^\s]+@thread\.[A-Za-z0-9]+$/;var TEAM_COLUMNS=["id","displayName","description","visibility","isArchived","favorite"];var MEMBER_COLUMNS=["id","displayName","email","roles","userId"];var CHANNEL_COLUMNS=["id","displayName","membershipType","description","isArchived","favorite","favorite_description"];var CHAT_COLUMNS=["id","chatType","topic","members","lastUpdatedDateTime","favorite","favorite_description"];var MESSAGE_COLUMNS=["id","createdDateTime","from","subject","text",
76
+ "replyToId"];var MENTION_COLUMNS=["created_at","scope","where","from","preview","is_unread","mention_type","message_id"];var FOLDER_COLUMNS=["driveId","id","name","webUrl"];var TEAM_FLAG3={name:"--team",summary:"\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"};var CHANNEL_FLAG3={name:"--channel",summary:"\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"};function messageRow(row){const source=isRecord(
77
+ row)?row:{};return pick({...source,from:teamsFromText(source["from"]),text:plainText(source["body"])},MESSAGE_COLUMNS)}function chatRow(row){const source=isRecord(row)?row:{};const members=Array.isArray(source["members"])?source["members"].map(m=>isRecord(m)?str(m["displayName"]):null).filter(v=>v!==null):[];return pick({...source,...favoriteColumns(source),members:members.length>0?members.join("\u3001"):null},CHAT_COLUMNS)}async function resolveTeam(input,ctx,usage){const ref=input.flags.get("-\
78
+ -team")?.trim();if(ref===void 0||ref==="")throw new UsageError("--team \u3067\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(TEAM_ID2.test(ref))return ref.toLowerCase();return(await ctx.resolver.ms365Team(ref)).id}async function resolveChannel(input,ctx,teamId,usage){const ref=input.flags.get("--channel")?.trim();if(ref===void 0||ref==="")throw new UsageError("--channel \u3067\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
51
79
  usage);if(CHANNEL_ID.test(ref))return ref;return(await ctx.resolver.ms365Channel(teamId,ref)).id}function channelPath2(input){const team=ms365Segment(requireResolved(input,"teamId"),"\u30C1\u30FC\u30E0 ID");const channel=ms365Segment(requireResolved(input,"channelId"),"\u30C1\u30E3\u30CD\u30EB ID");return`/teams/teams/${team}/channels/${channel}`}function unreachableNextNotes(body,label){const next=graphData(body,label)["@odata.nextLink"];return next===void 0||next===null?[]:[`${label}\u306B\u306F\u7D9A\u304D\u304C\u3042\u308A\u307E\u3059\u304C\
52
80
  \u3001\u3053\u306E\u4E00\u89A7\u306F\u7D9A\u304D\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08\u8868\u793A\u3057\u305F\u306E\u306F\u6700\u521D\u306E\u30DA\u30FC\u30B8\u3060\u3051\u3067\u3001\u5168\u4EF6\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002`]}var teamResource={name:"team",summary:"\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30FC\u30E0",operations:[{name:"list",summary:"\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30FC\u30E0\u3092\u4E00\u89A7\u3059\u308B",usage:"twp teams t\
53
- eam list [--all]",description:"\u3053\u3053\u306B\u51FA\u308B id \u3068 displayName \u306F --team \u306B\u305D\u306E\u307E\u307E\u6E21\u305B\u307E\u3059\uFF08\u540D\u524D\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF09\u3002\n\u3053\u306E\u4E00\u89A7\u306F\u4EF6\u6570\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08Microsoft 365 \u5074\u304C\u53D7\u3051\u4ED8\u3051\u306A\u3044\u305F\u3081 --limit \u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\n"+graphPagingHelp(null),flags:graphListFlags(
54
- {limit:false}),forbidden:ms365Forbidden,paging:graphPaging({label:"\u30C1\u30FC\u30E0\u4E00\u89A7",kind:"skiptoken"}),plan(input){return{method:"GET",path:ms365Path("/teams/teams"),query:{skiptoken:cursorFlag(input,"skiptoken")}}},summarize:body=>graphValue(body,"\u30C1\u30FC\u30E0\u4E00\u89A7").map(row=>pick(row,TEAM_COLUMNS)),raw:body=>graphValue(body,"\u30C1\u30FC\u30E0\u4E00\u89A7"),notes:body=>graphPagingNotes(body,"\u30C1\u30FC\u30E0\u4E00\u89A7")}]};var memberResource={name:"member",summary:"\
55
- \u30C1\u30FC\u30E0\u306E\u30E1\u30F3\u30D0\u30FC",operations:[{name:"list",summary:"\u30C1\u30FC\u30E0\u306E\u30E1\u30F3\u30D0\u30FC\u3092\u4E00\u89A7\u3059\u308B",usage:"twp teams member list --team <\u540D\u524D|ID>",description:"roles \u304C owner \u306E\u30E1\u30F3\u30D0\u30FC\u306F\u30C1\u30FC\u30E0\u306E\u6240\u6709\u8005\u3067\u3059\u3002\u3053\u306E\u4E00\u89A7\u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u3061\u307E\u305B\u3093\u3002",flags:[TEAM_FLAG2],forbidden:ms365Forbidden,async prepare(input,ctx){
56
- return withResolved(input,{teamId:await resolveTeam(input,ctx,"twp teams member list help")})},plan(input){return{method:"GET",path:ms365Path(`/teams/teams/${ms365Segment(requireResolved(input,"teamId"),"\u30C1\u30FC\u30E0 ID")}/members`)}},summarize:body=>graphValue(body,"\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7").map(row=>pick(row,MEMBER_COLUMNS)),raw:body=>graphValue(body,"\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7"),notes:body=>unreachableNextNotes(body,"\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7")}]};var channelResource={
57
- name:"channel",summary:"\u30C1\u30FC\u30E0\u306E\u30C1\u30E3\u30CD\u30EB\uFF08\u4E00\u89A7\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u7F6E\u304D\u5834\u6240\uFF09",operations:[{name:"list",summary:"\u30C1\u30FC\u30E0\u306E\u30C1\u30E3\u30CD\u30EB\u3092\u4E00\u89A7\u3059\u308B",usage:"twp teams channel list --team <\u540D\u524D|ID> [--all]",description:"\u3053\u3053\u306B\u51FA\u308B id \u3068 displayName \u306F --channel \u306B\u305D\u306E\u307E\u307E\u6E21\u305B\u307E\u3059\uFF08\u540D\u524D\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF09\u3002\n\u3053\u306E\u4E00\u89A7\u306F\u4EF6\u6570\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08\u4E2D\u7D99\u304C\u53D7\u3051\u4ED8\u3051\u306A\u3044\u305F\u3081 --limit \u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\n"+
58
- graphPagingHelp(null),flags:[TEAM_FLAG2,...graphListFlags({limit:false})],forbidden:ms365Forbidden,paging:graphPaging({label:"\u30C1\u30E3\u30CD\u30EB\u4E00\u89A7",kind:"skiptoken"}),async prepare(input,ctx){return withResolved(input,{teamId:await resolveTeam(input,ctx,"twp teams channel list help")})},plan(input){return{method:"GET",path:ms365Path(`/teams/teams/${ms365Segment(requireResolved(input,"teamId"),"\u30C1\u30FC\u30E0 ID")}/channels`),query:{skiptoken:cursorFlag(input,"skiptoken")}}},summarize:body=>graphValue(
59
- body,"\u30C1\u30E3\u30CD\u30EB\u4E00\u89A7").map(row=>pick(row,CHANNEL_COLUMNS)),raw:body=>graphValue(body,"\u30C1\u30E3\u30CD\u30EB\u4E00\u89A7"),notes:body=>graphPagingNotes(body,"\u30C1\u30E3\u30CD\u30EB\u4E00\u89A7")},{name:"folder",summary:"\u30C1\u30E3\u30CD\u30EB\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u7F6E\u304D\u5834\u6240\uFF08\u30C9\u30E9\u30A4\u30D6ID\u30FB\u30D5\u30A9\u30EB\u30C0ID\uFF09\u3092\u8868\u793A\u3059\u308B",usage:"twp teams channel folder --team <\u540D\u524D|ID> --channel <\u540D\u524D|ID>",
60
- description:"\u30C1\u30E3\u30CD\u30EB\u306E\u300C\u30D5\u30A1\u30A4\u30EB\u300D\u30BF\u30D6\u306E\u5B9F\u4F53\uFF08SharePoint \u306E\u30D5\u30A9\u30EB\u30C0\uFF09\u3092\u8FD4\u3057\u307E\u3059\u3002\n\u51FA\u529B\u306E driveId \u3068 id \u3092\u4F7F\u3046\u3068\u3001\u4E2D\u8EAB\u3092 twp onedrive item list <id> --drive <driveId> \u3067\u4E00\u89A7\u3067\u304D\u307E\u3059\u3002",flags:[TEAM_FLAG2,CHANNEL_FLAG2],forbidden:ms365Forbidden,async prepare(input,ctx){const usage="twp teams channel fold\
61
- er help";const teamId=await resolveTeam(input,ctx,usage);return withResolved(input,{teamId,channelId:await resolveChannel(input,ctx,teamId,usage)})},plan(input){return{method:"GET",path:ms365Path(`${channelPath2(input)}/filesFolder`)}},summarize(body){const data=graphData(body,"\u30C1\u30E3\u30CD\u30EB\u306E\u30D5\u30A9\u30EB\u30C0");const parent=isRecord(data["parentReference"])?data["parentReference"]:{};return pick({...data,driveId:parent["driveId"]??null},FOLDER_COLUMNS)},raw:body=>graphData(
62
- body,"\u30C1\u30E3\u30CD\u30EB\u306E\u30D5\u30A9\u30EB\u30C0")}]};var chatResource={name:"chat",summary:"\u81EA\u5206\u304C\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30E3\u30C3\u30C8",operations:[{name:"list",summary:"\u81EA\u5206\u304C\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30E3\u30C3\u30C8\u3092\u4E00\u89A7\u3059\u308B\uFF08\u53C2\u52A0\u8005\u306E\u540D\u524D\u3064\u304D\uFF09",usage:"twp teams chat list [--limit <\u4EF6\u6570>] [--all]",description:`chatType \u306F oneOnOne\uFF081\u5BFE1\uFF09/ group\uFF08\u30B0\u30EB\u30FC\u30D7\uFF09\
63
- / meeting\uFF08\u4F1A\u8B70\u306E\u30C1\u30E3\u30C3\u30C8\uFF09\u3067\u3059\u3002
81
+ eam list [--all]",description:"\u3053\u3053\u306B\u51FA\u308B id \u3068 displayName \u306F --team \u306B\u305D\u306E\u307E\u307E\u6E21\u305B\u307E\u3059\uFF08\u540D\u524D\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF09\u3002\n\u3053\u306E\u4E00\u89A7\u306F\u4EF6\u6570\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08Microsoft 365 \u5074\u304C\u53D7\u3051\u4ED8\u3051\u306A\u3044\u305F\u3081 --limit \u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\nfavorite \u5217\u306E \u2605<\u6570> \u306F\u3001\u304A\u6C17\u306B\u5165\u308A\u306E\u30C1\u30E3\u30CD\u30EB\u3092\u542B\u3080\u30C1\u30FC\u30E0\u3067\u3059\uFF08\u53D6\u5F97\u3057\u305F\u30DA\u30FC\u30B8\u5185\u3067\u5148\u982D\u306B\u4E26\u3073\u307E\u3059\uFF09\u3002\n\n"+
82
+ graphPagingHelp(null),flags:graphListFlags({limit:false}),forbidden:ms365Forbidden,paging:graphPaging({label:"\u30C1\u30FC\u30E0\u4E00\u89A7",kind:"skiptoken"}),plan(input){return{method:"GET",path:ms365Path("/teams/teams"),query:{skiptoken:cursorFlag(input,"skiptoken")}}},summarize:body=>graphValue(body,"\u30C1\u30FC\u30E0\u4E00\u89A7").map(row=>pick({...isRecord(row)?row:{},...favoriteTeamColumn(row)},TEAM_COLUMNS)),raw:body=>graphValue(body,"\u30C1\u30FC\u30E0\u4E00\u89A7"),notes:body=>graphPagingNotes(
83
+ body,"\u30C1\u30FC\u30E0\u4E00\u89A7")}]};var memberResource={name:"member",summary:"\u30C1\u30FC\u30E0\u306E\u30E1\u30F3\u30D0\u30FC",operations:[{name:"list",summary:"\u30C1\u30FC\u30E0\u306E\u30E1\u30F3\u30D0\u30FC\u3092\u4E00\u89A7\u3059\u308B",usage:"twp teams member list --team <\u540D\u524D|ID>",description:"roles \u304C owner \u306E\u30E1\u30F3\u30D0\u30FC\u306F\u30C1\u30FC\u30E0\u306E\u6240\u6709\u8005\u3067\u3059\u3002\u3053\u306E\u4E00\u89A7\u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u3061\u307E\u305B\u3093\u3002",
84
+ flags:[TEAM_FLAG3],forbidden:ms365Forbidden,async prepare(input,ctx){return withResolved(input,{teamId:await resolveTeam(input,ctx,"twp teams member list help")})},plan(input){return{method:"GET",path:ms365Path(`/teams/teams/${ms365Segment(requireResolved(input,"teamId"),"\u30C1\u30FC\u30E0 ID")}/members`)}},summarize:body=>graphValue(body,"\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7").map(row=>pick(row,MEMBER_COLUMNS)),raw:body=>graphValue(body,"\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7"),notes:body=>unreachableNextNotes(
85
+ body,"\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7")}]};var channelResource={name:"channel",summary:"\u30C1\u30FC\u30E0\u306E\u30C1\u30E3\u30CD\u30EB\uFF08\u4E00\u89A7\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u7F6E\u304D\u5834\u6240\uFF09",operations:[{name:"list",summary:"\u30C1\u30FC\u30E0\u306E\u30C1\u30E3\u30CD\u30EB\u3092\u4E00\u89A7\u3059\u308B",usage:"twp teams channel list --team <\u540D\u524D|ID> [--all]",description:"\u3053\u3053\u306B\u51FA\u308B id \u3068 displayName \u306F --channel \u306B\u305D\u306E\u307E\u307E\u6E21\u305B\u307E\u3059\uFF08\u540D\u524D\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF09\u3002\n\u3053\u306E\u4E00\u89A7\u306F\u4EF6\u6570\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08\u4E2D\u7D99\u304C\u53D7\u3051\u4ED8\u3051\u306A\
86
+ \u3044\u305F\u3081 --limit \u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\n"+FAVORITE_HELP+"\n"+graphPagingHelp(null),flags:[TEAM_FLAG3,...graphListFlags({limit:false})],forbidden:ms365Forbidden,paging:graphPaging({label:"\u30C1\u30E3\u30CD\u30EB\u4E00\u89A7",kind:"skiptoken"}),async prepare(input,ctx){return withResolved(input,{teamId:await resolveTeam(input,ctx,"twp teams channel list help")})},plan(input){return{method:"GET",path:ms365Path(`/teams/teams/${ms365Segment(requireResolved(input,
87
+ "teamId"),"\u30C1\u30FC\u30E0 ID")}/channels`),query:{skiptoken:cursorFlag(input,"skiptoken")}}},summarize:body=>graphValue(body,"\u30C1\u30E3\u30CD\u30EB\u4E00\u89A7").map(row=>pick({...isRecord(row)?row:{},...favoriteColumns(row)},CHANNEL_COLUMNS)),raw:body=>graphValue(body,"\u30C1\u30E3\u30CD\u30EB\u4E00\u89A7"),notes:body=>graphPagingNotes(body,"\u30C1\u30E3\u30CD\u30EB\u4E00\u89A7")},{name:"folder",summary:"\u30C1\u30E3\u30CD\u30EB\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u7F6E\u304D\u5834\u6240\uFF08\u30C9\u30E9\u30A4\u30D6ID\u30FB\u30D5\u30A9\u30EB\u30C0ID\uFF09\u3092\u8868\u793A\u3059\u308B",
88
+ usage:"twp teams channel folder --team <\u540D\u524D|ID> --channel <\u540D\u524D|ID>",description:"\u30C1\u30E3\u30CD\u30EB\u306E\u300C\u30D5\u30A1\u30A4\u30EB\u300D\u30BF\u30D6\u306E\u5B9F\u4F53\uFF08SharePoint \u306E\u30D5\u30A9\u30EB\u30C0\uFF09\u3092\u8FD4\u3057\u307E\u3059\u3002\n\u51FA\u529B\u306E driveId \u3068 id \u3092\u4F7F\u3046\u3068\u3001\u4E2D\u8EAB\u3092 twp onedrive item list <id> --drive <driveId> \u3067\u4E00\u89A7\u3067\u304D\u307E\u3059\u3002",flags:[TEAM_FLAG3,CHANNEL_FLAG3],
89
+ forbidden:ms365Forbidden,async prepare(input,ctx){const usage="twp teams channel folder help";const teamId=await resolveTeam(input,ctx,usage);return withResolved(input,{teamId,channelId:await resolveChannel(input,ctx,teamId,usage)})},plan(input){return{method:"GET",path:ms365Path(`${channelPath2(input)}/filesFolder`)}},summarize(body){const data=graphData(body,"\u30C1\u30E3\u30CD\u30EB\u306E\u30D5\u30A9\u30EB\u30C0");const parent=isRecord(data["parentReference"])?data["parentReference"]:{};return pick(
90
+ {...data,driveId:parent["driveId"]??null},FOLDER_COLUMNS)},raw:body=>graphData(body,"\u30C1\u30E3\u30CD\u30EB\u306E\u30D5\u30A9\u30EB\u30C0")}]};var chatResource={name:"chat",summary:"\u81EA\u5206\u304C\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30E3\u30C3\u30C8",operations:[{name:"list",summary:"\u81EA\u5206\u304C\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30E3\u30C3\u30C8\u3092\u4E00\u89A7\u3059\u308B\uFF08\u53C2\u52A0\u8005\u306E\u540D\u524D\u3064\u304D\uFF09",usage:"twp teams chat list [--li\
91
+ mit <\u4EF6\u6570>] [--all]",description:`chatType \u306F oneOnOne\uFF081\u5BFE1\uFF09/ group\uFF08\u30B0\u30EB\u30FC\u30D7\uFF09/ meeting\uFF08\u4F1A\u8B70\u306E\u30C1\u30E3\u30C3\u30C8\uFF09\u3067\u3059\u3002
64
92
  members \u306B\u306F\u53C2\u52A0\u8005\u306E\u8868\u793A\u540D\u304C\u5165\u308A\u307E\u3059\uFF081\u5BFE1\u306E\u30C1\u30E3\u30C3\u30C8\u306F\u76F8\u624B\u3068\u81EA\u5206\u306E2\u4EBA\uFF09\u3002
65
93
 
66
94
  \u30C1\u30E3\u30C3\u30C8\u306F\u540D\u524D\u3067\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08--chat \u306B\u306F id \u3092\u6E21\u3057\u307E\u3059\uFF09\u3002\u63A2\u3059\u3068\u304D\u306F --all \u3068 --query \u3092\u4F7F\u3044\u307E\u3059:
@@ -70,15 +98,15 @@ members \u306B\u306F\u53C2\u52A0\u8005\u306E\u8868\u793A\u540D\u304C\u5165\u308A
70
98
 
71
99
  \u26A0 \u30C1\u30E3\u30C3\u30C8\u304C\u591A\u3044\u4EBA\u306F --all \u306B\u6642\u9593\u304C\u304B\u304B\u308A\u307E\u3059\uFF081\u30DA\u30FC\u30B8\u6700\u592725\u4EF6\u30021,500\u4EF6\u3067\u7D0470\u79D2\uFF09\u3002
72
100
 
73
- `+graphPagingHelp(CHAT_TOP_MAX),flags:graphListFlags({limit:true}),forbidden:ms365Forbidden,paging:graphPaging({label:"\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7",kind:"skiptoken"}),plan(input){return{method:"GET",path:ms365Path("/teams/chats"),query:{top:topFlag(input,CHAT_TOP_MAX),expand:"members",skiptoken:cursorFlag(input,"skiptoken")}}},summarize:body=>graphValue(body,"\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7").map(chatRow),raw:body=>graphValue(body,"\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7"),notes:body=>graphPagingNotes(
74
- body,"\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7")}]};var messageResource={name:"message",summary:"\u30C1\u30E3\u30C3\u30C8\u30FB\u30C1\u30E3\u30CD\u30EB\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\uFF08\u4E00\u89A7\u30FB\u9001\u4FE1\uFF09",operations:[{name:"list",summary:"\u30C1\u30E3\u30C3\u30C8\u304B\u30C1\u30E3\u30CD\u30EB\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u4E00\u89A7\u3059\u308B",usage:"twp teams message list (--chat <ID> | --team <\u540D\u524D|ID> --channel <\u540D\u524D|ID>) [--limit <\u4EF6\u6570>] [--all]",
75
- description:"--chat\uFF08\u30C1\u30E3\u30C3\u30C8\uFF09\u304B --team \u3068 --channel\uFF08\u30C1\u30E3\u30CD\u30EB\uFF09\u306E\u3069\u3061\u3089\u304B\u4E00\u65B9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n\n\u26A0 \u30C1\u30E3\u30CD\u30EB\u3067\u8FD4\u308B\u306E\u306F\u30B9\u30EC\u30C3\u30C9\u306E\u6700\u521D\u306E\u6295\u7A3F\u3060\u3051\u3067\u3059\u3002\u8FD4\u4FE1\u306F twp teams reply list <\u6295\u7A3F\u306Eid> \u3067\u8AAD\u307F\u307E\u3059\n \uFF08\u8981\u7D04\u5217\u306E replyToId \u304C\u7A7A\u306E\u884C\u304C\u6700\u521D\u306E\u6295\u7A3F\u3067\u3059\uFF09\u3002\n\n\u8981\u7D04\u5217\u306E text \u306F\u672C\u6587\u3092\u30D7\u30EC\u30FC\u30F3\u30C6\u30AD\u30B9\u30C8\u306B\u76F4\u3057\u305F\u3082\u306E\u3067\u3059\u3002\u5143\u306E HTML\u30FB\u30E1\u30F3\u30B7\u30E7\u30F3\u30FB\u30EA\u30A2\u30AF\u30B7\u30E7\u30F3\u306F\n--output json \u3067\u8AAD\u3081\u307E\u3059\u3002\n\n"+
76
- graphPagingHelp(MESSAGE_TOP_MAX),flags:[{name:"--chat",summary:"\u30C1\u30E3\u30C3\u30C8ID\uFF08twp teams chat list \u306E id\uFF09",takesValue:true,placeholder:"<ID>"},TEAM_FLAG2,CHANNEL_FLAG2,...graphListFlags({limit:true})],forbidden:ms365Forbidden,paging:graphPaging({label:"\u30E1\u30C3\u30BB\u30FC\u30B8\u4E00\u89A7",kind:"skiptoken"}),async prepare(input,ctx){const usage="twp teams message list help";const chat=input.flags.get("--chat");const hasChannel=input.flags.has("--team")||input.flags.
101
+ `+FAVORITE_HELP+"\n"+graphPagingHelp(CHAT_TOP_MAX),flags:graphListFlags({limit:true}),forbidden:ms365Forbidden,paging:graphPaging({label:"\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7",kind:"skiptoken"}),plan(input){return{method:"GET",path:ms365Path("/teams/chats"),query:{top:topFlag(input,CHAT_TOP_MAX),expand:"members",skiptoken:cursorFlag(input,"skiptoken")}}},summarize:body=>graphValue(body,"\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7").map(chatRow),raw:body=>graphValue(body,"\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7"),
102
+ notes:body=>graphPagingNotes(body,"\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7")}]};var messageResource={name:"message",summary:"\u30C1\u30E3\u30C3\u30C8\u30FB\u30C1\u30E3\u30CD\u30EB\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\uFF08\u4E00\u89A7\u30FB\u9001\u4FE1\uFF09",operations:[{name:"list",summary:"\u30C1\u30E3\u30C3\u30C8\u304B\u30C1\u30E3\u30CD\u30EB\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u4E00\u89A7\u3059\u308B",usage:"twp teams message list (--chat <ID> | --team <\u540D\u524D|ID> --channel <\u540D\u524D|ID>) [--limit \
103
+ <\u4EF6\u6570>] [--all]",description:"--chat\uFF08\u30C1\u30E3\u30C3\u30C8\uFF09\u304B --team \u3068 --channel\uFF08\u30C1\u30E3\u30CD\u30EB\uFF09\u306E\u3069\u3061\u3089\u304B\u4E00\u65B9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n\n\u26A0 \u30C1\u30E3\u30CD\u30EB\u3067\u8FD4\u308B\u306E\u306F\u30B9\u30EC\u30C3\u30C9\u306E\u6700\u521D\u306E\u6295\u7A3F\u3060\u3051\u3067\u3059\u3002\u8FD4\u4FE1\u306F twp teams reply list <\u6295\u7A3F\u306Eid> \u3067\u8AAD\u307F\u307E\u3059\n \uFF08\u8981\u7D04\u5217\u306E replyToId \u304C\u7A7A\u306E\u884C\u304C\u6700\u521D\u306E\u6295\u7A3F\u3067\u3059\uFF09\u3002\n\n\u8981\u7D04\u5217\u306E text \u306F\u672C\u6587\u3092\u30D7\u30EC\u30FC\u30F3\u30C6\u30AD\u30B9\u30C8\u306B\u76F4\u3057\u305F\u3082\u306E\u3067\u3059\u3002\u5143\u306E HTML\u30FB\u30E1\u30F3\u30B7\u30E7\u30F3\u30FB\u30EA\u30A2\u30AF\u30B7\u30E7\u30F3\u306F\n--output json \u3067\u8AAD\u3081\u307E\u3059\u3002\n\n"+
104
+ graphPagingHelp(MESSAGE_TOP_MAX),flags:[{name:"--chat",summary:"\u30C1\u30E3\u30C3\u30C8ID\uFF08twp teams chat list \u306E id\uFF09",takesValue:true,placeholder:"<ID>"},TEAM_FLAG3,CHANNEL_FLAG3,...graphListFlags({limit:true})],forbidden:ms365Forbidden,paging:graphPaging({label:"\u30E1\u30C3\u30BB\u30FC\u30B8\u4E00\u89A7",kind:"skiptoken"}),async prepare(input,ctx){const usage="twp teams message list help";const chat=input.flags.get("--chat");const hasChannel=input.flags.has("--team")||input.flags.
77
105
  has("--channel");if(chat!==void 0&&hasChannel){throw new UsageError("--chat \u3068 --team / --channel \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usage)}if(chat!==void 0){return withResolved(input,{chatId:assertMs365PathSegment(chat.trim(),"\u30C1\u30E3\u30C3\u30C8ID")})}if(!hasChannel)throw new UsageError("--chat \u304B\u3001--team \u3068 --channel \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const teamId=await resolveTeam(input,ctx,usage);return withResolved(
78
106
  input,{teamId,channelId:await resolveChannel(input,ctx,teamId,usage)})},plan(input){const chatId=input.resolved?.["chatId"];const path=chatId!==void 0?`/teams/chats/${ms365Segment(chatId,"\u30C1\u30E3\u30C3\u30C8ID")}/messages`:`${channelPath2(input)}/messages`;return{method:"GET",path:ms365Path(path),query:{top:topFlag(input,MESSAGE_TOP_MAX),skiptoken:cursorFlag(input,"skiptoken")}}},summarize:body=>graphValue(body,"\u30E1\u30C3\u30BB\u30FC\u30B8\u4E00\u89A7").map(messageRow),raw:body=>graphValue(
79
107
  body,"\u30E1\u30C3\u30BB\u30FC\u30B8\u4E00\u89A7"),notes:body=>graphPagingNotes(body,"\u30E1\u30C3\u30BB\u30FC\u30B8\u4E00\u89A7")},messageSendOperation]};var replyResource={name:"reply",summary:"\u30C1\u30E3\u30CD\u30EB\u6295\u7A3F\u306E\u30B9\u30EC\u30C3\u30C9\u8FD4\u4FE1\uFF08\u4E00\u89A7\u30FB\u8FD4\u4FE1\uFF09",operations:[{name:"list",summary:"\u30C1\u30E3\u30CD\u30EB\u6295\u7A3F\u306E\u30B9\u30EC\u30C3\u30C9\u8FD4\u4FE1\u3092\u4E00\u89A7\u3059\u308B",usage:"twp teams reply list <\u6295\u7A3FID> --t\
80
108
  eam <\u540D\u524D|ID> --channel <\u540D\u524D|ID> [--limit <\u4EF6\u6570>] [--all]",description:"\u6295\u7A3FID \u306F twp teams message list --team \u2026 --channel \u2026 \u306E id\uFF08replyToId \u304C\u7A7A\u306E\u884C\uFF09\u3067\u3059\u3002\n\u8FD4\u4FE1\u306E\u672C\u6587\u30FB\u30E1\u30F3\u30B7\u30E7\u30F3\u30FB\u30EA\u30A2\u30AF\u30B7\u30E7\u30F3\u306F\u3053\u306E\u4E00\u89A7\u3067\u3057\u304B\u8AAD\u3081\u307E\u305B\u3093\uFF08--output json \u306B\u5168\u9805\u76EE\u304C\u51FA\u307E\u3059\uFF09\u3002\n\n"+
81
- graphPagingHelp(MESSAGE_TOP_MAX),flags:[{name:"--message",summary:"\u6295\u7A3FID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"},TEAM_FLAG2,CHANNEL_FLAG2,...graphListFlags({limit:true})],forbidden:ms365Forbidden,paging:graphPaging({label:"\u8FD4\u4FE1\u4E00\u89A7",kind:"skiptoken"}),async prepare(input,ctx){const usage="twp teams reply list help";const message=singleRef(input,{flag:"--message",label:"\u6295\u7A3FID",usage});const messageId=assertMs365PathSegment(
109
+ graphPagingHelp(MESSAGE_TOP_MAX),flags:[{name:"--message",summary:"\u6295\u7A3FID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"},TEAM_FLAG3,CHANNEL_FLAG3,...graphListFlags({limit:true})],forbidden:ms365Forbidden,paging:graphPaging({label:"\u8FD4\u4FE1\u4E00\u89A7",kind:"skiptoken"}),async prepare(input,ctx){const usage="twp teams reply list help";const message=singleRef(input,{flag:"--message",label:"\u6295\u7A3FID",usage});const messageId=assertMs365PathSegment(
82
110
  message,"\u6295\u7A3FID");const teamId=await resolveTeam(input,ctx,usage);return withResolved(input,{messageId,teamId,channelId:await resolveChannel(input,ctx,teamId,usage)})},plan(input){const message=ms365Segment(requireResolved(input,"messageId"),"\u6295\u7A3FID");return{method:"GET",path:ms365Path(`${channelPath2(input)}/messages/${message}/replies`),query:{top:topFlag(input,MESSAGE_TOP_MAX),skiptoken:cursorFlag(input,"skiptoken")}}},summarize:body=>graphValue(body,"\u8FD4\u4FE1\u4E00\u89A7").
83
111
  map(messageRow),raw:body=>graphValue(body,"\u8FD4\u4FE1\u4E00\u89A7"),notes:body=>graphPagingNotes(body,"\u8FD4\u4FE1\u4E00\u89A7")},replySendOperation]};function mentionResult(body){const data=graphData(body,"\u30E1\u30F3\u30B7\u30E7\u30F3\u4E00\u89A7");if(!Array.isArray(data["mentions"])){throw new ApiResponseError("\u30E1\u30F3\u30B7\u30E7\u30F3\u4E00\u89A7\u306E\u5FDC\u7B54\u306B mentions \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
84
112
  return data}function mentionRow(row){const source=isRecord(row)?row:{};const from=isRecord(source["from"])?str(source["from"]["display_name"]):null;const where=source["scope"]==="chat"?str(source["chat_topic"])??"\u30C1\u30E3\u30C3\u30C8":"\u30C1\u30E3\u30CD\u30EB";return pick({...source,from,where},MENTION_COLUMNS)}var mentionResource={name:"mention",summary:"\u81EA\u5206\u5B9B\u3066\u306E\u30E1\u30F3\u30B7\u30E7\u30F3\uFF08\u30C1\u30E3\u30C3\u30C8\u30FB\u30C1\u30E3\u30CD\u30EB\u6A2A\u65AD\uFF09",
@@ -90,4 +118,4 @@ void 0?NaN:Date.parse(/^\d{4}-\d{2}-\d{2}$/.test(raw.trim())?`${raw.trim()}T00:0
90
118
  `--scope \u306B\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F chats / channels / all \u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${scope}\uFF09`)}return{method:"GET",path:ms365Path("/teams/mentions"),query:{since,until,unread_only:input.flags.has("--unread")?"true":void 0,scope,limit:topFlag(input,MENTION_LIMIT_MAX),mention_types:nonEmpty(input.flags,"--type")}}},summarize:body=>mentionResult(body)["mentions"].map(mentionRow),raw:mentionResult,notes(body){const data=mentionResult(body);const out=[];
91
119
  if(data["truncated"]===true){out.push(`\u4E00\u81F4\u3057\u305F ${String(data["matched_count"])} \u4EF6\u306E\u3046\u3061 ${String(data["returned_count"])} \u4EF6\u3060\u3051\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\uFF08--limit \u3067\u5897\u3084\u305B\u307E\u3059\u3002\u4E0A\u9650 ${MENTION_LIMIT_MAX}\uFF09\u3002`)}const exhausted=Array.isArray(data["budget_exhausted"])?data["budget_exhausted"].map(String):[];if(exhausted.length>0){out.push(`\u8D70\u67FB\u304C\u4E0A\u9650\u306B\u9054\u3057\u305F\u305F\u3081\u3001\u53D6\u308A\u3053\u307C\u3057\u304C\u3042\u308A\u3048\u307E\u3059\uFF08${exhausted.
92
120
  join("\u3001")}\uFF09\u3002\u671F\u9593\u3092\u77ED\u304F\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const errors=Array.isArray(data["errors"])?data["errors"]:[];if(errors.length>0){out.push(`${errors.length} \u4EF6\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u305F\u305F\u3081\u3001\u305D\u306E\u5206\u306E\u30E1\u30F3\u30B7\u30E7\u30F3\u306F\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\uFF08--output json \u306E errors \u306B\u8A73\u7D30\u304C\u3042\u308A\u307E\u3059\uFF09\u3002`)}for(const note of Array.
93
- isArray(data["notes"])?data["notes"]:[]){if(typeof note==="string"&&note!=="")out.push(note)}return out}}]};var teamsDomain={name:"teams",summary:"Microsoft Teams\uFF08\u30C1\u30FC\u30E0\u30FB\u30C1\u30E3\u30CD\u30EB\u30FB\u30C1\u30E3\u30C3\u30C8\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u30FB\u30E1\u30F3\u30B7\u30E7\u30F3\uFF09",operations:[],subresources:[teamResource,memberResource,channelResource,chatResource,messageResource,replyResource,mentionResource]};export{teamsDomain};
121
+ isArray(data["notes"])?data["notes"]:[]){if(typeof note==="string"&&note!=="")out.push(note)}return out}}]};var teamsDomain={name:"teams",summary:"Microsoft Teams\uFF08\u30C1\u30FC\u30E0\u30FB\u30C1\u30E3\u30CD\u30EB\u30FB\u30C1\u30E3\u30C3\u30C8\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u30FB\u30E1\u30F3\u30B7\u30E7\u30F3\u30FB\u304A\u6C17\u306B\u5165\u308A\uFF09",operations:[],subresources:[favoriteResource,teamResource,memberResource,channelResource,chatResource,messageResource,replyResource,mentionResource]};export{teamsDomain};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tocca-systems/twp-cli",
3
- "version": "0.52.0",
3
+ "version": "0.53.0",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,15 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{CHAIN_KEYS,reloadAiConfig}from"./chunk-AEJHDFXB.js";import{describeError}from"./chunk-JTJWDV5U.js";import{isPrivateProjectId}from"./chunk-GY7KI5E5.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";var PROMPT_KEYS=["charter","charter_prefix","charter_suffix","plan_preamble","step_budget","non_interactive_note","safe_mode_note"];function parseServerSettings(res){const json=res.json;if(json===null||typeof json!=="object"||Array.isArray(json))return null;const top=json;const data=top["data"];const b=data!==null&&typeof data==="object"&&!Array.isArray(data)&&"revision"in data?data:top;const revision=b["revision"];if(typeof revision!=="number"||!Number.isInteger(revision)||revision<0)return null;
4
- const rawAi=b["ai"];const ai=rawAi!==null&&typeof rawAi==="object"&&!Array.isArray(rawAi)?Object.fromEntries(Object.entries(rawAi).filter(([,v])=>v!==null&&v!==void 0)):{};const prompts={};const rawPrompts=b["prompts"];if(rawPrompts!==null&&typeof rawPrompts==="object"&&!Array.isArray(rawPrompts)){for(const key of PROMPT_KEYS){const v=rawPrompts[key];if(typeof v==="string")prompts[key]=v}}return{revision,ai,prompts}}function formatConfigHash(aiHash,revision,ai,charter){return`${aiHash};r=${revision}\
5
- ;ai=${ai};charter=${charter}`}function renderStepBudget(template,vars){return template.replaceAll("{timeout_min}",String(vars.timeoutMin)).replaceAll("{soft_min}",String(vars.softMin)).replaceAll("{wrap_up_min}",String(vars.wrapUpMin))}var LoopSettingsApplier=class{constructor(deps){this.deps=deps}deps;last=null;lastWarning="";lastAiWarning="";lastSummary="";serverAiApplied=false;lastSafeWarning="";async apply(){const{config,log}=this.deps;const outcome=await this.fetch();const warning=outcome.warning??
6
- "";if(warning!==""&&warning!==this.lastWarning)log(` \u26A0\uFE0F ${warning}`);else if(warning===""&&this.lastWarning!=="")log("\u30EB\u30FC\u30D7\u8A2D\u5B9A\u3092\u30B5\u30FC\u30D0\u304B\u3089\u518D\u3073\u53D6\u5F97\u3067\u304D\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3057\u305F");this.lastWarning=warning;const settings=outcome.settings;config.serverPrompts=settings?.prompts??{};const safeNote=config.serverPrompts.safe_mode_note;const safeWarning=config.safeMode&&safeNote!==void 0?safeNote===
7
- ""?"\u5B89\u5168\u30E2\u30FC\u30C9\u3067\u8D77\u52D5\u3057\u3066\u3044\u307E\u3059\u304C\u3001\u30B5\u30FC\u30D0\u306E\u30EB\u30FC\u30D7\u8A2D\u5B9A\u304C\u5B89\u5168\u30E2\u30FC\u30C9\u306E\u6CE8\u8A18\u3092\u7A7A\u306B\u3057\u3066\u3044\u307E\u3059\uFF08\u672C\u756A\u30EA\u30EA\u30FC\u30B9\u7981\u6B62\u306E\u6307\u793A\u304C\u30D7\u30ED\u30F3\u30D7\u30C8\u306B\u8F09\u308A\u307E\u305B\u3093\uFF09":"\u5B89\u5168\u30E2\u30FC\u30C9\u3067\u8D77\u52D5\u3057\u3066\u3044\u307E\u3059\u3002\u5B89\u5168\u30E2\u30FC\u30C9\u306E\u6CE8\u8A18\u306F\u30B5\u30FC\u30D0\u306E\u30EB\u30FC\u30D7\u8A2D\u5B9A\u306E\u6587\u9762\u306B\u5DEE\u3057\u66FF\u308F\u3063\u3066\u3044\u307E\u3059":
8
- "";if(safeWarning!==""&&safeWarning!==this.lastSafeWarning)log(` \u26A0\uFE0F ${safeWarning}`);this.lastSafeWarning=safeWarning;const serverAi=settings!==null&&Object.keys(settings.ai).length>0?settings.ai:null;const layer=serverAi??(this.serverAiApplied?{}:null);const r=reloadAiConfig(config.ai,config.aiSource.inline,config.aiSource.file,config.workspace,layer);if(r.status!=="kept"||layer!==null)this.serverAiApplied=serverAi!==null;const aiWarning=r.warnings.join("\n");if(aiWarning!==""&&aiWarning!==
9
- this.lastAiWarning){for(const w of r.warnings)log(` \u26A0\uFE0F ${w}`)}else if(aiWarning===""&&this.lastAiWarning!==""&&r.status!=="skipped"){log("AI \u5272\u5F53\u30D5\u30A1\u30A4\u30EB\u3092\u518D\u3073\u8AAD\u3081\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3057\u305F")}this.lastAiWarning=aiWarning;if(r.status==="updated"){log(r.hashBefore===r.hashAfter?`AI \u5272\u5F53\u306E\u5909\u66F4\u3092\u53CD\u6620\u3057\u307E\u3057\u305F\uFF08AI\u5272\u5F53\u30CF\u30C3\u30B7\u30E5 ${r.hashAfter} \u306F\u4E0D\u5909\
10
- \uFF1D\u9396\u304B\u30B3\u30E1\u30F3\u30C8\u3060\u3051\u306E\u5909\u66F4\uFF09`:`AI \u5272\u5F53\u306E\u5909\u66F4\u3092\u53CD\u6620\u3057\u307E\u3057\u305F\uFF08AI\u5272\u5F53\u30CF\u30C3\u30B7\u30E5 ${r.hashBefore} \u2192 ${r.hashAfter}\uFF09`)}const fromServer=outcome.source==="cached"?"cached":"server";const inline=config.aiSource.inline;const effectiveServerKeys=serverAi===null?[]:Object.keys(serverAi).filter(k=>!(CHAIN_KEYS.includes(k)&&inline!==void 0&&k in inline));const aiOrigin=effectiveServerKeys.
11
- length>0?fromServer:inline!==void 0&&Object.keys(inline).length>0||config.ai.fileLayer!==null?"local":"builtin";const charterOrigin=this.charterOrigin(settings,fromServer);const revision=settings?.revision??0;config.configHash=formatConfigHash(config.ai.hash(),revision,aiOrigin,charterOrigin);const serverPromptKeys=Object.keys(config.serverPrompts);const summary=`\u30EB\u30FC\u30D7\u8A2D\u5B9A: ${settings===null?"\u30B5\u30FC\u30D0\u5024\u306A\u3057":`${outcome.source==="cached"?"\u76F4\u524D\u306B\u53D6\u5F97\u3057\u305F\u30B5\u30FC\u30D0\u5024":
12
- "\u30B5\u30FC\u30D0"} revision ${revision}`}\uFF08AI\u5272\u5F53=${aiOrigin}${effectiveServerKeys.length>0?`\u30FB\u30B5\u30FC\u30D0 ${effectiveServerKeys.length}\u30AD\u30FC`:""} \uFF0F \u61B2\u7AE0=${charterOrigin} \uFF0F \u30B5\u30FC\u30D0\u306E\u6587\u9762=${serverPromptKeys.length>0?serverPromptKeys.join(","):"\u306A\u3057"}\uFF09`;if(summary!==this.lastSummary)log(summary);this.lastSummary=summary}charterOrigin(settings,fromServer){const{config}=this.deps;if(!config.charterEnabled)return"o\
13
- ff";if(settings!==null&&settings.prompts.charter!==void 0)return fromServer;const file=config.charterFile;if(file===null||file.trim()==="")return"builtin";const resolved=path.isAbsolute(file)?file:path.resolve(config.workspace,file);try{fs.accessSync(resolved,fs.constants.R_OK);return fs.statSync(resolved).isFile()?"local":"builtin"}catch{return"builtin"}}async fetch(){if(isPrivateProjectId(this.deps.config.projectId??""))return{settings:null,source:"none",warning:null};const res=await this.deps.
14
- api.request("GET","/settings");const parsed=res.ok?parseServerSettings(res):null;if(parsed!==null){this.last=parsed;return{settings:parsed,source:"server",warning:null}}const transient=res.status===null||res.status>=500||res.ok;const reason=stripTerminalControls(res.ok?`\u5FDC\u7B54\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08\u5148\u982D: ${res.raw.slice(0,120)}\uFF09`:describeError(res));if(transient&&this.last!==null){return{settings:this.last,source:"cached",warning:`\u30EB\u30FC\u30D7\u8A2D\u5B9A\u3092\u30B5\u30FC\u30D0\u304B\u3089\u53D6\u5F97\u3067\u304D\
15
- \u307E\u305B\u3093\uFF08${reason}\uFF09\u3002\u76F4\u524D\u306B\u53D6\u5F97\u3057\u305F revision ${this.last.revision} \u3067\u8D70\u308A\u307E\u3059`}}return{settings:null,source:"none",warning:`\u30EB\u30FC\u30D7\u8A2D\u5B9A\u3092\u30B5\u30FC\u30D0\u304B\u3089\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08${reason}\uFF09\u3002\u30ED\u30FC\u30AB\u30EB\u8A2D\u5B9A\uFF08ai_config_file / charter_file\uFF09\u3068\u7D44\u307F\u8FBC\u307F\u65E2\u5B9A\u3067\u8D70\u308A\u307E\u3059`}}};export{PROMPT_KEYS,parseServerSettings,formatConfigHash,renderStepBudget,LoopSettingsApplier};
@@ -1,3 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget}from"./chunk-SA7A5WF2.js";import"./chunk-AEJHDFXB.js";import"./chunk-JTJWDV5U.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-5WGOHFAS.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget};