@tocca-systems/twp-cli 0.98.0 → 0.99.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 (351) hide show
  1. package/CHANGELOG.public.md +6 -0
  2. package/README.md +3 -3
  3. package/command-model/_routes.json +1 -1
  4. package/command-model/account-lock.json +1 -1
  5. package/command-model/accounting-master.json +4 -4
  6. package/command-model/address.json +1 -1
  7. package/command-model/agent-loop.json +26 -26
  8. package/command-model/agent.json +11 -11
  9. package/command-model/ai-chat-history.json +3 -3
  10. package/command-model/ai-task-copilot.json +1 -1
  11. package/command-model/ai-token-usage.json +8 -8
  12. package/command-model/ai-training-admin.json +4 -4
  13. package/command-model/ai-training-attempt-admin.json +2 -2
  14. package/command-model/ai-training-attempt.json +1 -1
  15. package/command-model/ai-training-program.json +2 -2
  16. package/command-model/analysis-alert-threshold.json +1 -1
  17. package/command-model/analysis-page-access-rule.json +3 -3
  18. package/command-model/analysis.json +3 -3
  19. package/command-model/announcement.json +6 -6
  20. package/command-model/api-key.json +3 -3
  21. package/command-model/api-usage.json +3 -3
  22. package/command-model/attendance-report-category.json +3 -3
  23. package/command-model/attendance-report-reason-detail.json +3 -3
  24. package/command-model/attendance-report-reason.json +3 -3
  25. package/command-model/attendance-report.json +3 -3
  26. package/command-model/attendance-timesheet.json +3 -3
  27. package/command-model/attendance.json +1 -1
  28. package/command-model/audit-log.json +3 -3
  29. package/command-model/auth.json +3 -3
  30. package/command-model/authorize.json +1 -1
  31. package/command-model/auto-charge.json +3 -3
  32. package/command-model/badge.json +4 -4
  33. package/command-model/billing.json +5 -5
  34. package/command-model/budget.json +8 -8
  35. package/command-model/business-place.json +2 -2
  36. package/command-model/capacity.json +4 -4
  37. package/command-model/cash-flow.json +1 -1
  38. package/command-model/catalog.json +7 -7
  39. package/command-model/chat-channel.json +7 -7
  40. package/command-model/chat-mention-group.json +1 -1
  41. package/command-model/chat-message.json +8 -8
  42. package/command-model/chat-presence.json +3 -3
  43. package/command-model/chat-scheduled-message.json +1 -1
  44. package/command-model/chat-tenant-connection.json +2 -2
  45. package/command-model/chat.json +1 -1
  46. package/command-model/cli-auth.json +1 -1
  47. package/command-model/cli-tool-catalog.json +1 -1
  48. package/command-model/cms-tag.json +5 -5
  49. package/command-model/commuting-expense.json +7 -7
  50. package/command-model/company-case-document.json +1 -1
  51. package/command-model/company-contract-document.json +4 -4
  52. package/command-model/company.json +2 -2
  53. package/command-model/config.json +2 -2
  54. package/command-model/container-agent-schedule.json +3 -3
  55. package/command-model/contract.json +2 -2
  56. package/command-model/credit.json +16 -16
  57. package/command-model/cross-project-report.json +1 -1
  58. package/command-model/customer-campaign.json +2 -2
  59. package/command-model/customer-contact.json +2 -2
  60. package/command-model/customer-interaction.json +4 -4
  61. package/command-model/customer-people.json +3 -3
  62. package/command-model/customer.json +3 -3
  63. package/command-model/cycle-time-analysis.json +1 -1
  64. package/command-model/dashboard-calendar.json +1 -1
  65. package/command-model/department.json +5 -5
  66. package/command-model/deposit-plan.json +1 -1
  67. package/command-model/deposit.json +3 -3
  68. package/command-model/desktop-release.json +2 -2
  69. package/command-model/domain-knowledge-doc.json +2 -2
  70. package/command-model/domain-knowledge.json +3 -3
  71. package/command-model/dynamo-attachment.json +5 -5
  72. package/command-model/dynamo-cms.json +9 -9
  73. package/command-model/dynamo-inquiry.json +7 -7
  74. package/command-model/dynamo-support.json +3 -3
  75. package/command-model/equipment-category.json +1 -1
  76. package/command-model/equipment.json +6 -6
  77. package/command-model/estimate-case-document.json +5 -5
  78. package/command-model/estimate-format.json +2 -2
  79. package/command-model/estimate-no-rule.json +2 -2
  80. package/command-model/estimate.json +6 -6
  81. package/command-model/evaluation-pdf.json +1 -1
  82. package/command-model/evaluation-period.json +3 -3
  83. package/command-model/evaluation.json +6 -6
  84. package/command-model/expense-report.json +8 -8
  85. package/command-model/expense-settings.json +1 -1
  86. package/command-model/external-integration-proxy.json +28 -28
  87. package/command-model/faq-notion-import.json +4 -4
  88. package/command-model/faq.json +4 -4
  89. package/command-model/favorite.json +1 -1
  90. package/command-model/feedback.json +5 -5
  91. package/command-model/fiscal-year-setting.json +2 -2
  92. package/command-model/floor-map.json +2 -2
  93. package/command-model/follow-up-message-template.json +2 -2
  94. package/command-model/goal-sheet.json +4 -4
  95. package/command-model/google-auth.json +1 -1
  96. package/command-model/hearing-auth.json +2 -2
  97. package/command-model/hearing-invitation.json +1 -1
  98. package/command-model/hearing-session.json +4 -4
  99. package/command-model/hearing.json +9 -9
  100. package/command-model/holiday.json +6 -6
  101. package/command-model/hr-checklist-template.json +2 -2
  102. package/command-model/hr-checklist.json +2 -2
  103. package/command-model/hr-qualification.json +2 -2
  104. package/command-model/html-editor.json +1 -1
  105. package/command-model/index.json +1 -1
  106. package/command-model/inquiry-routing.json +5 -5
  107. package/command-model/invoice-auto-template.json +4 -4
  108. package/command-model/invoice-no-rule.json +2 -2
  109. package/command-model/invoice.json +4 -4
  110. package/command-model/job-title.json +5 -5
  111. package/command-model/knowledge-qa.json +1 -1
  112. package/command-model/knowledge-recommendation-feedback.json +1 -1
  113. package/command-model/knowledge-recommendation.json +1 -1
  114. package/command-model/license-assignment.json +4 -4
  115. package/command-model/license-type.json +3 -3
  116. package/command-model/license.json +5 -5
  117. package/command-model/login-history.json +2 -2
  118. package/command-model/man-hour.json +2 -2
  119. package/command-model/master-announcement.json +2 -2
  120. package/command-model/master-billing.json +3 -3
  121. package/command-model/master-pricing.json +4 -4
  122. package/command-model/master-product.json +3 -3
  123. package/command-model/master-support.json +4 -4
  124. package/command-model/master-tenant.json +7 -7
  125. package/command-model/media-file-comment.json +1 -1
  126. package/command-model/media-file-version.json +4 -4
  127. package/command-model/media-file.json +13 -13
  128. package/command-model/media-folder.json +5 -5
  129. package/command-model/media-published-file.json +1 -1
  130. package/command-model/media-sharing-settings.json +1 -1
  131. package/command-model/meeting-category.json +2 -2
  132. package/command-model/meeting-pdf.json +1 -1
  133. package/command-model/meeting-template.json +2 -2
  134. package/command-model/meeting.json +7 -7
  135. package/command-model/member.json +1 -1
  136. package/command-model/microsoft-auth.json +1 -1
  137. package/command-model/microsoft-graph-proxy-v2.json +21 -21
  138. package/command-model/milli-credit.json +7 -7
  139. package/command-model/ms365-calendar-o-auth.json +2 -2
  140. package/command-model/music-generation.json +4 -4
  141. package/command-model/my-ai-training.json +2 -2
  142. package/command-model/my-task.json +4 -4
  143. package/command-model/my-training.json +4 -4
  144. package/command-model/news-perspective.json +2 -2
  145. package/command-model/note-category.json +1 -1
  146. package/command-model/note-comment.json +1 -1
  147. package/command-model/note-reaction.json +1 -1
  148. package/command-model/note-subscription.json +2 -2
  149. package/command-model/note.json +5 -5
  150. package/command-model/notification-recipient-rule.json +2 -2
  151. package/command-model/notification.json +5 -5
  152. package/command-model/notion-import.json +4 -4
  153. package/command-model/o-auth-client.json +2 -2
  154. package/command-model/ojt-approval-inbox.json +1 -1
  155. package/command-model/ojt-assignment.json +7 -7
  156. package/command-model/ojt-checklist.json +4 -4
  157. package/command-model/ojt-permission.json +2 -2
  158. package/command-model/ojt-plan.json +3 -3
  159. package/command-model/ojt-progress.json +1 -1
  160. package/command-model/ojt-report.json +2 -2
  161. package/command-model/ojt-role-dashboard.json +2 -2
  162. package/command-model/ojt-structure-change.json +2 -2
  163. package/command-model/onboarding-template.json +8 -8
  164. package/command-model/operating-hours.json +1 -1
  165. package/command-model/org-chart.json +1 -1
  166. package/command-model/organization-announcement-category.json +1 -1
  167. package/command-model/organization-announcement.json +5 -5
  168. package/command-model/payee.json +2 -2
  169. package/command-model/policy-employee.json +3 -3
  170. package/command-model/policy.json +5 -5
  171. package/command-model/position.json +3 -3
  172. package/command-model/private-agent-loop.json +16 -16
  173. package/command-model/private-task.json +6 -6
  174. package/command-model/process.json +3 -3
  175. package/command-model/profit-analysis.json +2 -2
  176. package/command-model/profit-summary.json +1 -1
  177. package/command-model/project-assignment.json +1 -1
  178. package/command-model/project-auto-assign-settings.json +1 -1
  179. package/command-model/project-cost.json +2 -2
  180. package/command-model/project-custom-field.json +2 -2
  181. package/command-model/project-digest.json +2 -2
  182. package/command-model/project-evaluation.json +5 -5
  183. package/command-model/project-health.json +3 -3
  184. package/command-model/project-inventory-continuation.json +1 -1
  185. package/command-model/project-inventory-overview.json +1 -1
  186. package/command-model/project-inventory-request.json +1 -1
  187. package/command-model/project-inventory-settings.json +1 -1
  188. package/command-model/project-member.json +3 -3
  189. package/command-model/project-overview.json +2 -2
  190. package/command-model/project-process.json +3 -3
  191. package/command-model/project-profit-analysis.json +1 -1
  192. package/command-model/project-quality-check-corrective-task.json +1 -1
  193. package/command-model/project-quality-check-record.json +1 -1
  194. package/command-model/project-quality-check-scope.json +1 -1
  195. package/command-model/project-quality-check-status.json +2 -2
  196. package/command-model/project-repository.json +2 -2
  197. package/command-model/project-revenue.json +3 -3
  198. package/command-model/project-status-report-project.json +1 -1
  199. package/command-model/project-status-report-settings.json +1 -1
  200. package/command-model/project-task-analytics.json +1 -1
  201. package/command-model/project-task-category.json +2 -2
  202. package/command-model/project-task-comment.json +1 -1
  203. package/command-model/project-task-form-options.json +1 -1
  204. package/command-model/project-task-group.json +2 -2
  205. package/command-model/project-task-label.json +2 -2
  206. package/command-model/project-task-link.json +2 -2
  207. package/command-model/project-task-milestone.json +2 -2
  208. package/command-model/project-task-rule.json +4 -4
  209. package/command-model/project-task-status.json +2 -2
  210. package/command-model/project-task-template.json +2 -2
  211. package/command-model/project-task-type.json +2 -2
  212. package/command-model/project-task-version.json +2 -2
  213. package/command-model/project-task-watcher.json +1 -1
  214. package/command-model/project-task.json +12 -12
  215. package/command-model/project-team-chat.json +1 -1
  216. package/command-model/project-template.json +2 -2
  217. package/command-model/project.json +5 -5
  218. package/command-model/prospect-promotion.json +1 -1
  219. package/command-model/prospect.json +5 -5
  220. package/command-model/public-pricing.json +1 -1
  221. package/command-model/purchase-ai-field-mapping.json +3 -3
  222. package/command-model/purchase-document.json +5 -5
  223. package/command-model/purchase-no-rule.json +2 -2
  224. package/command-model/purchase.json +2 -2
  225. package/command-model/push-subscription.json +1 -1
  226. package/command-model/qualification-import.json +2 -2
  227. package/command-model/qualification.json +3 -3
  228. package/command-model/quality-check-item.json +2 -2
  229. package/command-model/rag.json +1 -1
  230. package/command-model/rating-criteria.json +1 -1
  231. package/command-model/receivable-closing.json +2 -2
  232. package/command-model/receivable.json +2 -2
  233. package/command-model/received-invoice.json +3 -3
  234. package/command-model/recreation-club.json +2 -2
  235. package/command-model/report-format-order.json +1 -1
  236. package/command-model/report-saved-tab.json +1 -1
  237. package/command-model/report.json +20 -20
  238. package/command-model/retrospective.json +7 -7
  239. package/command-model/risk-analysis.json +1 -1
  240. package/command-model/role-template.json +1 -1
  241. package/command-model/sales-ai-review-reason-list.json +1 -1
  242. package/command-model/sales-default-recipient-set.json +2 -2
  243. package/command-model/sales-pdf.json +9 -9
  244. package/command-model/sales-recent-recipient.json +1 -1
  245. package/command-model/sales-rounding-setting.json +1 -1
  246. package/command-model/sales-setting.json +4 -4
  247. package/command-model/sales.json +3 -3
  248. package/command-model/saved-tab.json +1 -1
  249. package/command-model/saved-task-filter.json +1 -1
  250. package/command-model/seal-impression.json +2 -2
  251. package/command-model/segment.json +3 -3
  252. package/command-model/sidebar-badge-setting.json +1 -1
  253. package/command-model/skill-analytics.json +4 -4
  254. package/command-model/skill-category.json +2 -2
  255. package/command-model/skill-evaluation-export.json +1 -1
  256. package/command-model/skill-evaluation-record.json +1 -1
  257. package/command-model/skill-micro-feedback.json +2 -2
  258. package/command-model/skill-role-assignment.json +1 -1
  259. package/command-model/skill.json +3 -3
  260. package/command-model/sns-connection.json +2 -2
  261. package/command-model/sns-media.json +1 -1
  262. package/command-model/sns-post.json +3 -3
  263. package/command-model/staff-kpi-setting.json +2 -2
  264. package/command-model/staff-kpi.json +3 -3
  265. package/command-model/staffing-board-cell.json +1 -1
  266. package/command-model/staffing-board-note.json +1 -1
  267. package/command-model/staffing-board-snapshot.json +3 -3
  268. package/command-model/staffing-board-tentative-assignment.json +2 -2
  269. package/command-model/staffing-board-tentative-import.json +1 -1
  270. package/command-model/staffing-plan.json +5 -5
  271. package/command-model/statutory-rate-set.json +4 -4
  272. package/command-model/storage.json +5 -5
  273. package/command-model/subscription.json +2 -2
  274. package/command-model/supplier-payment-schedule.json +2 -2
  275. package/command-model/supplier-payment.json +2 -2
  276. package/command-model/survey-tracker.json +3 -3
  277. package/command-model/survey.json +14 -14
  278. package/command-model/task-analysis.json +1 -1
  279. package/command-model/task-branch.json +4 -4
  280. package/command-model/task-recurrence.json +2 -2
  281. package/command-model/task-wiki-link.json +2 -2
  282. package/command-model/teams-link.json +1 -1
  283. package/command-model/tenant-ai-key.json +6 -6
  284. package/command-model/tenant-egress-policy.json +3 -3
  285. package/command-model/tenant-email-settings.json +1 -1
  286. package/command-model/tenant-git-hub-settings.json +3 -3
  287. package/command-model/tenant-rag-settings.json +4 -4
  288. package/command-model/tenant-rate-override.json +1 -1
  289. package/command-model/tenant-registration.json +1 -1
  290. package/command-model/tenant-search.json +1 -1
  291. package/command-model/tenant-settings.json +11 -11
  292. package/command-model/terms.json +2 -2
  293. package/command-model/test-execution.json +3 -3
  294. package/command-model/test-scenario.json +3 -3
  295. package/command-model/training-attendance.json +5 -5
  296. package/command-model/training-master.json +3 -3
  297. package/command-model/training-session.json +5 -5
  298. package/command-model/unified-search.json +1 -1
  299. package/command-model/update-record.json +2 -2
  300. package/command-model/user-api-key.json +3 -3
  301. package/command-model/user-assignment-calendar.json +1 -1
  302. package/command-model/user-assignment.json +11 -11
  303. package/command-model/user-contract-type.json +3 -3
  304. package/command-model/user-contract.json +2 -2
  305. package/command-model/user-group.json +3 -3
  306. package/command-model/user-info.json +1 -1
  307. package/command-model/user-invitation.json +2 -2
  308. package/command-model/user-list-display-setting.json +1 -1
  309. package/command-model/user-list-item-order.json +1 -1
  310. package/command-model/user-management.json +6 -6
  311. package/command-model/user-qualification.json +1 -1
  312. package/command-model/user-recent-work.json +1 -1
  313. package/command-model/user-shortcut-setting.json +1 -1
  314. package/command-model/user-skill-profile.json +3 -3
  315. package/command-model/user.json +10 -10
  316. package/command-model/video-generation.json +4 -4
  317. package/command-model/well-known.json +2 -2
  318. package/command-model/whisper.json +1 -1
  319. package/command-model/wiki-collection.json +4 -4
  320. package/command-model/wiki-notion-import.json +3 -3
  321. package/command-model/wiki-template.json +2 -2
  322. package/command-model/wiki.json +7 -7
  323. package/command-model/worker-agent-run.json +4 -4
  324. package/command-model/worker-agent.json +5 -5
  325. package/command-model/workflow-ai-review.json +1 -1
  326. package/command-model/workflow-analysis.json +1 -1
  327. package/command-model/workflow-approval-delegation.json +3 -3
  328. package/command-model/workflow-approval.json +4 -4
  329. package/command-model/workflow-attachment-pdf-preview.json +1 -1
  330. package/command-model/workflow-comment-attachment.json +3 -3
  331. package/command-model/workflow-estimate-input.json +4 -4
  332. package/command-model/workflow-instance.json +3 -3
  333. package/command-model/workflow-tracker.json +5 -5
  334. package/command-model/workflow.json +5 -5
  335. package/command-model/workload-alert.json +2 -2
  336. package/dist/{api-command-JDZTCUKN.js → api-command-VDEHGVMH.js} +1 -1
  337. package/dist/{app-XWGXP57Z.js → app-3RAQDCXW.js} +2 -2
  338. package/dist/{chunk-3PN4LMBO.js → chunk-C6AOVOVD.js} +12 -11
  339. package/dist/{chunk-NZ7WI4RZ.js → chunk-CDAU3M7F.js} +4 -4
  340. package/dist/{chunk-6HBZRMDD.js → chunk-FZ55A6NN.js} +8 -8
  341. package/dist/{chunk-X2PIYCOO.js → chunk-HOCPACZF.js} +1 -1
  342. package/dist/{chunk-QH34G7BK.js → chunk-SLZ3KVFA.js} +3 -3
  343. package/dist/cli.js +6 -6
  344. package/dist/{media-45BXJUZE.js → media-J475DUVM.js} +1 -1
  345. package/dist/{oneshot-JAA46MUA.js → oneshot-ZG65R6KG.js} +1 -1
  346. package/dist/{project-WJKYY4K2.js → project-XOQNM7DP.js} +1 -1
  347. package/dist/{registry-OHYKSJ2B.js → registry-5ACTRYN2.js} +1 -1
  348. package/dist/{run-Q54CFQ3H.js → run-CX7LUVBB.js} +1 -1
  349. package/dist/{staffing-board-5K35Z4O5.js → staffing-board-S6VXUPEX.js} +32 -29
  350. package/dist/{user-WACZPXIQ.js → user-6IYB3OJE.js} +1 -1
  351. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{loadDomain}from"./chunk-QH34G7BK.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderDocument,renderOutput}from"./chunk-U6REFY7T.js";import{NO_REDACT_NOTICE,withCommonFlags}from"./chunk-W4NLJ2YK.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-BD7O73GK.js";import{parseOperationArgs}from"./chunk-VGT2EGH6.js";import{Resolver,requireDefaultProject}from"./chunk-4DOPQ74T.js";
3
+ import{loadDomain}from"./chunk-SLZ3KVFA.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderDocument,renderOutput}from"./chunk-U6REFY7T.js";import{NO_REDACT_NOTICE,withCommonFlags}from"./chunk-W4NLJ2YK.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-BD7O73GK.js";import{parseOperationArgs}from"./chunk-VGT2EGH6.js";import{Resolver,requireDefaultProject}from"./chunk-4DOPQ74T.js";
4
4
  import{ResolveError}from"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH,EXIT_FAILURE,EXIT_OK,EXIT_USAGE,EXIT_WAIT_TIMEOUT,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";
5
5
  import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredBacklogSpace,resolveConfiguredOutput,resolveProfile}from"./chunk-EDF4U5BT.js";import{HELP_TOKEN}from"./chunk-6FI4ZMZ7.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-74BPZOKU.js";import{stringWidth}from"./chunk-UREA4ZIG.js";
6
6
  import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";function alignedList(entries,indent=" "){const width=entries.reduce((max,[left])=>Math.max(max,stringWidth(left)),0);return entries.map(([left,right])=>`${indent}${left}${" ".repeat(Math.max(0,width-stringWidth(left)))} ${right}`).join("\n")}function subresourcesOf(resource){return resource.subresources??[]}function renderResourceHelp(resource,path2){const subresources=subresourcesOf(resource);const operationSection=resource.operations.length===0?"":`
@@ -4,10 +4,10 @@ var LOADERS={agent:async()=>(await import("./agent-MFCLZCFG.js")).agentDomain,"a
4
4
  attendanceDomainWithRecords,"audit-log":async()=>(await import("./audit-log-ZGK7IVLD.js")).auditLogDomain,backlog:async()=>(await import("./backlog-73FLZLQW.js")).backlogDomain,budget:async()=>(await import("./budget-QIFM3KZ3.js")).budgetDomain,"business-hours":async()=>(await import("./business-hours-37MRL53C.js")).businessHoursDomain,"business-place":async()=>(await import("./sales-master-G3PPJOV7.js")).businessPlaceDomain,company:async()=>(await import("./company-IOQQLLSX.js")).companyDomain,
5
5
  contract:async()=>(await import("./contract-V6O2IGF4.js")).contractDomain,customer:async()=>(await import("./company-IOQQLLSX.js")).customerDomain,department:async()=>(await import("./department-5V4W37PU.js")).departmentDomain,deposit:async()=>(await import("./deposit-CQ7GTE2G.js")).depositDomain,estimate:async()=>(await import("./estimate-KTNJQVEX.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-5INGXWOV.js")).evaluationDomain,expense:async()=>(await import("./expense-Y64AELQA.js")).
6
6
  expenseDomain,faq:async()=>(await import("./faq-W5MZAWGB.js")).faqDomain,"fiscal-year":async()=>(await import("./fiscal-year-CVYFYGRR.js")).fiscalYearDomain,holiday:async()=>(await import("./holiday-P6BSJPAX.js")).holidayDomain,"goal-sheet":async()=>(await import("./evaluation-5INGXWOV.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-HNUCPZTJ.js")).inquiryDomain,invoice:async()=>(await import("./invoice-HSX6BWOM.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-LEHO7TBW.js")).
7
- jobTitleDomain,knowledge:async()=>(await import("./domain-knowledge-YZCNJPFF.js")).knowledgeDomain,leave:async()=>(await import("./leave-KJ45TLXB.js")).leaveDomain,license:async()=>(await import("./license-S35KLEJW.js")).licenseDomain,"login-history":async()=>(await import("./login-history-RCUHEEYE.js")).loginHistoryDomain,media:async()=>(await import("./media-45BXJUZE.js")).mediaDomain,meeting:async()=>(await import("./knowledge-E6Y4NB6R.js")).meetingDomain,note:async()=>(await import("./knowledge-E6Y4NB6R.js")).
8
- noteDomain,notification:async()=>(await import("./notification-BE6KRW5R.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-Z43D26SJ.js")).onedriveDomain,outlook:async()=>(await import("./outlook-DLEA27PZ.js")).outlookDomain,payee:async()=>(await import("./sales-master-G3PPJOV7.js")).payeeDomain,position:async()=>(await import("./position-YAC32O37.js")).positionDomain,project:async()=>(await import("./project-WJKYY4K2.js")).projectDomain,prospect:async()=>(await import("./prospect-4YJNVVFV.js")).
7
+ jobTitleDomain,knowledge:async()=>(await import("./domain-knowledge-YZCNJPFF.js")).knowledgeDomain,leave:async()=>(await import("./leave-KJ45TLXB.js")).leaveDomain,license:async()=>(await import("./license-S35KLEJW.js")).licenseDomain,"login-history":async()=>(await import("./login-history-RCUHEEYE.js")).loginHistoryDomain,media:async()=>(await import("./media-J475DUVM.js")).mediaDomain,meeting:async()=>(await import("./knowledge-E6Y4NB6R.js")).meetingDomain,note:async()=>(await import("./knowledge-E6Y4NB6R.js")).
8
+ noteDomain,notification:async()=>(await import("./notification-BE6KRW5R.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-Z43D26SJ.js")).onedriveDomain,outlook:async()=>(await import("./outlook-DLEA27PZ.js")).outlookDomain,payee:async()=>(await import("./sales-master-G3PPJOV7.js")).payeeDomain,position:async()=>(await import("./position-YAC32O37.js")).positionDomain,project:async()=>(await import("./project-XOQNM7DP.js")).projectDomain,prospect:async()=>(await import("./prospect-4YJNVVFV.js")).
9
9
  prospectDomain,purchase:async()=>(await import("./purchase-F5BTLU5F.js")).purchaseDomain,qualification:async()=>(await import("./skill-T3K5DD7P.js")).qualificationDomain,receivable:async()=>(await import("./receivable-Q4GDHNWE.js")).receivableDomain,redmine:async()=>(await import("./redmine-THH5YMND.js")).redmineDomain,report:async()=>(await import("./report-6RE4IZQW.js")).reportDomain,"role-template":async()=>(await import("./evaluation-5INGXWOV.js")).roleTemplateDomain,"rou\
10
10
  nding-setting":async()=>(await import("./sales-numbering-VTK6WTHT.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-G3PPJOV7.js")).sealImpressionDomain,search:async()=>(await import("./search-IJEAEZ42.js")).searchDomain,secret:async()=>(await import("./secret-P42JCOI4.js")).secretDomain,segment:async()=>(await import("./segment-PTTW7IJM.js")).segmentDomain,shift:async()=>(await import("./attendance-lists-5U63THUW.js")).shiftDomain,skill:async()=>(await import("./skill-T3K5DD7P.js")).
11
- skillDomain,"staffing-board":async()=>(await import("./staffing-board-5K35Z4O5.js")).staffingBoardDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-ZQNQIJQ6.js")).supplierPaymentDomain,support:async()=>(await import("./support-W7HQFZMG.js")).supportDomain,task:async()=>(await import("./task-L5FDVVIT.js")).taskDomain,teams:async()=>(await import("./teams-3ZI6ZY3F.js")).teamsDomain,user:async()=>(await import("./user-WACZPXIQ.js")).
11
+ skillDomain,"staffing-board":async()=>(await import("./staffing-board-S6VXUPEX.js")).staffingBoardDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-ZQNQIJQ6.js")).supplierPaymentDomain,support:async()=>(await import("./support-W7HQFZMG.js")).supportDomain,task:async()=>(await import("./task-L5FDVVIT.js")).taskDomain,teams:async()=>(await import("./teams-3ZI6ZY3F.js")).teamsDomain,user:async()=>(await import("./user-6IYB3OJE.js")).
12
12
  userDomain,"user-contract-type":async()=>(await import("./user-contract-type-XM4G3TX5.js")).userContractTypeDomain,"user-group":async()=>(await import("./user-group-YKFYJ5C2.js")).userGroupDomain,wiki:async()=>(await import("./knowledge-E6Y4NB6R.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-5U63THUW.js")).workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-PFN36I6X.js")).workerAgentDomain,workflow:async()=>(await import("./workflow-PP3APD56.js")).workflowDomain};
13
13
  async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __twpCreateRequire } from 'node:module';
3
3
  const require = __twpCreateRequire(import.meta.url);
4
- import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chunk-RFXIPNKG.js";import"./chunk-2LOT54OO.js";import"./chunk-NJL3H2BB.js";import"./chunk-6FI4ZMZ7.js";import"./chunk-B2D2NO5H.js";import{formatUnknownArgs}from"./chunk-OKATZ4SN.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.98.0":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
4
+ import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chunk-RFXIPNKG.js";import"./chunk-2LOT54OO.js";import"./chunk-NJL3H2BB.js";import"./chunk-6FI4ZMZ7.js";import"./chunk-B2D2NO5H.js";import{formatUnknownArgs}from"./chunk-OKATZ4SN.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.99.0":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
5
5
 
6
6
  \u4F7F\u3044\u65B9:
7
7
  twp \u5BFE\u8A71 TUI \u3092\u8D77\u52D5
@@ -1571,16 +1571,16 @@ TUI \u5185:
1571
1571
  \u4F1A\u8A71\u30FB\u30ED\u30FC\u30AB\u30EB\u30C4\u30FC\u30EB\uFF08\u30D5\u30A1\u30A4\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u30FBgit\uFF09\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u30AF\u30EC\u30B8\u30C3\u30C8\u3067\u5B9F\u969B\u306B\u52D5\u304D\u307E\u3059\u3002
1572
1572
  `;function ignoreEpipe(stream){stream.on("error",err=>{if(err.code==="EPIPE")process.exit(0);throw err})}async function main(){const nodeMajor=Number(process.versions.node.split(".")[0]);if(nodeMajor<22){process.stderr.write(`twp-cli \u306B\u306F Node.js 22 \u4EE5\u4E0A\u304C\u5FC5\u8981\u3067\u3059\uFF08\u73FE\u5728: ${process.versions.node}\uFF09
1573
1573
  `);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-3GV3BK5P.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-2JMIYGIB.js");if(first==="completion"){process.exitCode=completion.runCompletion(rest,process.stdout,process.stderr);return}
1574
- const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-OHYKSJ2B.js"),import("./config-XYWRBIC6.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-FXXQHBV5.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-XPULH6FO.js");process.exitCode=
1574
+ const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-5ACTRYN2.js"),import("./config-XYWRBIC6.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-FXXQHBV5.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-XPULH6FO.js");process.exitCode=
1575
1575
  await runConfigure(rest);return}const args=parseArgv(process.argv.slice(2));if(args.command==="version"){process.stdout.write(`${VERSION}
1576
1576
  `);return}if(args.command==="help"){process.stdout.write(HELP);return}if(args.movedCommand!==void 0){const{MOVED_QUEUE_COMMAND_MESSAGE}=await import("./dispatch-3TVY2VVM.js");process.stderr.write(MOVED_QUEUE_COMMAND_MESSAGE);process.exitCode=2;return}if(args.unknown.length>0){process.stderr.write(`\u4E0D\u660E\u306A\u5F15\u6570: ${formatUnknownArgs(args.unknown)}
1577
1577
 
1578
- ${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-FXXQHBV5.js");autoUpdate.registerRunning();if(args.command==="task-loop"&&args.taskLoopAction!=="capacity"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-Q54CFQ3H.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:
1579
- {},argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-JDZTCUKN.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.
1578
+ ${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-FXXQHBV5.js");autoUpdate.registerRunning();if(args.command==="task-loop"&&args.taskLoopAction!=="capacity"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-CX7LUVBB.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:
1579
+ {},argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-VDEHGVMH.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.
1580
1580
  profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes},version:VERSION});return}if(args.command==="update"){const{runUpdate}=await import("./update-2N3V64AA.js");process.exitCode=await runUpdate({...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}if(args.command==="login"||args.command==="logout"||args.command==="whoami"){const{runLogin,runLogout,runWhoami}=await import("./commands-CARE564N.js");
1581
1581
  const options={profile:args.profile,method:args.loginMethod,tenant:args.tenant,noBrowser:args.loginNoBrowser,cliVersion:VERSION,force:args.logoutForce,...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{}};const runner=args.command==="login"?runLogin:args.command==="logout"?runLogout:runWhoami;process.exitCode=await runner(options);return}if(args.command==="task-loop"){const{runTaskLoop}=await import("./commands-AJQKYINQ.js");process.exitCode=await runTaskLoop(
1582
1582
  {action:args.taskLoopAction??"run",project:args.project,profile:args.profile,safe:args.safe,daemon:args.daemon,interval:args.interval,maxCycles:args.maxCycles,forceRunner:args.forceRunner,force:args.stopForce,drain:args.stopDrain,engine:args.engine,version:VERSION,verbose:args.verbose,scheduleNow:args.scheduleNow,scheduleCounts:args.scheduleCounts,scheduleGate:args.scheduleGate,scheduleOp:args.scheduleOp,scheduleConfigOp:args.scheduleConfigOp,scheduleId:args.scheduleId,charterOp:args.charterOp,charterInput:args.
1583
1583
  charterFile,charterOutput:args.charterOut,charterRevision:args.charterRevision,settingsOp:args.settingsOp,orientationOp:args.orientationOp,orientationArgs:args.orientationArgs,skillOp:args.skillOp,skillName:args.skillName,skillAll:args.skillAll,skillDir:args.skillDir,skillConfig:args.skillConfig,output:args.output,query:args.query,revisionFrom:args.revisionFrom,revisionTo:args.revisionTo,planOp:args.planOp,capacityOp:args.capacityOp,includeStopped:args.includeStopped,runnerOp:args.runnerOp,runnerId:args.
1584
- runnerTargetId,triggerOp:args.triggerOp,triggerId:args.triggerId,triggerKey:args.triggerKey,triggerLimit:args.triggerLimit,planEmpty:args.planEmpty,planCheck:args.planCheck,yes:args.yes,ais:args.ais,workspace:args.workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-JAA46MUA.js");process.exitCode=await runOneShot({prompt:args.prompt??"",fromStdin:args.promptFromStdin,mode:args.mode??"dev",...args.
1585
- permissionMode!==void 0?{permissionMode:args.permissionMode}:{},allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-XWGXP57Z.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,model:args.model,profile:args.profile,noTui:args.noTui||
1584
+ runnerTargetId,triggerOp:args.triggerOp,triggerId:args.triggerId,triggerKey:args.triggerKey,triggerLimit:args.triggerLimit,planEmpty:args.planEmpty,planCheck:args.planCheck,yes:args.yes,ais:args.ais,workspace:args.workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-ZG65R6KG.js");process.exitCode=await runOneShot({prompt:args.prompt??"",fromStdin:args.promptFromStdin,mode:args.mode??"dev",...args.
1585
+ permissionMode!==void 0?{permissionMode:args.permissionMode}:{},allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-3RAQDCXW.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,model:args.model,profile:args.profile,noTui:args.noTui||
1586
1586
  !process.stdout.isTTY,doctor:args.doctor,version:VERSION})}await main();
@@ -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-X2PIYCOO.js";import"./chunk-QH34G7BK.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-U6REFY7T.js";import{contentTypeFor,inspectLocalFile}from"./chunk-JULG6KDV.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import"./chunk-RMFLTSOV.js";import{readBody}from"./chunk-HEH3PUW2.js";import"./chunk-W4NLJ2YK.js";
3
+ import{checkOutTarget}from"./chunk-HOCPACZF.js";import"./chunk-SLZ3KVFA.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-U6REFY7T.js";import{contentTypeFor,inspectLocalFile}from"./chunk-JULG6KDV.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import"./chunk-RMFLTSOV.js";import{readBody}from"./chunk-HEH3PUW2.js";import"./chunk-W4NLJ2YK.js";
4
4
  import"./chunk-BD7O73GK.js";import{repeatedValues}from"./chunk-VGT2EGH6.js";import"./chunk-4DOPQ74T.js";import{collapsesInUrlPath,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-II5RVJQN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger,readEnvelopeCursor,shellQuote}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";
5
5
  import{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-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-6FI4ZMZ7.js";import"./chunk-OKATZ4SN.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,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{activateModeFiles,activatePermissionSettings,buildResidentSet,buildSystemPrompt,createAuditLogger,createTwpToolkit,currentBranch,displayCwd,residentInputs,runTurn}from"./chunk-6HBZRMDD.js";import"./chunk-NZ7WI4RZ.js";import"./chunk-N2UVRM3Z.js";import"./chunk-BD7O73GK.js";import"./chunk-4DOPQ74T.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-II5RVJQN.js";import"./chunk-VFPY2A23.js";
3
+ import{activateModeFiles,activatePermissionSettings,buildResidentSet,buildSystemPrompt,createAuditLogger,createTwpToolkit,currentBranch,displayCwd,residentInputs,runTurn}from"./chunk-FZ55A6NN.js";import"./chunk-CDAU3M7F.js";import"./chunk-N2UVRM3Z.js";import"./chunk-BD7O73GK.js";import"./chunk-4DOPQ74T.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-II5RVJQN.js";import"./chunk-VFPY2A23.js";
4
4
  import{RelayError,createRuntime,pickModel,specFor}from"./chunk-PJ7IKTZI.js";import"./chunk-D233KKXW.js";import"./chunk-PMOUHEJQ.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import{checkMinSupportedVersion,enforceMinSupportedVersion,floorNeedsRefresh}from"./chunk-DXXFUNYN.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import{getMode}from"./chunk-2LOT54OO.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";
5
5
  import"./chunk-VSJBJXZO.js";async function runOneShot(opts,deps={}){const out=deps.out??(text=>void process.stdout.write(stripTerminalControls(text)));const err=deps.err??(text=>void process.stderr.write(stripTerminalControls(text)));activateModeFiles(err);const permissionLayers=activatePermissionSettings(err,{...opts.allowedTools?{allowedTools:opts.allowedTools}:{},...opts.disallowedTools?{disallowedTools:opts.disallowedTools}:{}});const prompt=opts.fromStdin?await(deps.readStdin??readStdin)():opts.prompt;if(prompt.trim()===
6
6
  ""){err('\u30D7\u30ED\u30F3\u30D7\u30C8\u304C\u7A7A\u3067\u3059\u3002`twp -p "\u8CEA\u554F"`\uFF08`-p -` \u3067\u6A19\u6E96\u5165\u529B\uFF09\n');return 2}const runtime=deps.runtime??createRuntime({...opts.profile!==void 0?{profile:opts.profile}:{},...opts.model!==void 0?{model:opts.model}:{},cliVersion:opts.version});const cachedFloor=runtime.loadCachedFloor();if(await checkMinSupportedVersion({current:opts.version,cachedFloor:cachedFloor.minSupportedVersion,refresh:async()=>(await runtime.loadCatalog()).
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems,projectDomain}from"./chunk-3PN4LMBO.js";import"./chunk-Q3B65OFC.js";import"./chunk-FBTOIECJ.js";import"./chunk-TQ7TNMW5.js";import"./chunk-7KU2EXEE.js";import"./chunk-UVCJXHWN.js";import"./chunk-45WIRMGL.js";import"./chunk-EXT4AIDF.js";import"./chunk-JJSBBWJ5.js";import"./chunk-HEH3PUW2.js";import"./chunk-W4NLJ2YK.js";import"./chunk-BD7O73GK.js";import"./chunk-VGT2EGH6.js";
3
+ import{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems,projectDomain}from"./chunk-C6AOVOVD.js";import"./chunk-Q3B65OFC.js";import"./chunk-FBTOIECJ.js";import"./chunk-TQ7TNMW5.js";import"./chunk-7KU2EXEE.js";import"./chunk-UVCJXHWN.js";import"./chunk-45WIRMGL.js";import"./chunk-EXT4AIDF.js";import"./chunk-JJSBBWJ5.js";import"./chunk-HEH3PUW2.js";import"./chunk-W4NLJ2YK.js";import"./chunk-BD7O73GK.js";import"./chunk-VGT2EGH6.js";
4
4
  import"./chunk-4DOPQ74T.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-II5RVJQN.js";import"./chunk-MI6HVYR2.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-OKATZ4SN.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems,projectDomain};
@@ -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-QH34G7BK.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
3
+ import{loadDomain}from"./chunk-SLZ3KVFA.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
@@ -1,5 +1,5 @@
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-X2PIYCOO.js";import"./chunk-QH34G7BK.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-U6REFY7T.js";import"./chunk-W4NLJ2YK.js";import"./chunk-BD7O73GK.js";import"./chunk-VGT2EGH6.js";import"./chunk-4DOPQ74T.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-HOCPACZF.js";import"./chunk-SLZ3KVFA.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-U6REFY7T.js";import"./chunk-W4NLJ2YK.js";import"./chunk-BD7O73GK.js";import"./chunk-VGT2EGH6.js";import"./chunk-4DOPQ74T.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";
4
4
  import"./chunk-MMVXE2CJ.js";import"./chunk-II5RVJQN.js";import"./chunk-MI6HVYR2.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-6FI4ZMZ7.js";import"./chunk-OKATZ4SN.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";
5
5
  import"./chunk-VSJBJXZO.js";export{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain};
@@ -10,41 +10,44 @@ const current=`${String(now.getFullYear())}-${String(now.getMonth()+1).padStart(
10
10
  usage);range={from:month,to:month,defaulted:false}}else if(from===void 0&&to===void 0){range=defaultBoardRange(now)}else if(from===void 0||to===void 0){throw new UsageError("--from \u3068 --to \u306F\u4E21\u65B9\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF081\u304B\u6708\u3060\u3051\u306A\u3089 --month\uFF09",usage)}else{range={from,to,defaulted:false}}if(range.from>range.to)throw new UsageError(`--from\uFF08${range.from}\uFF09\u304C --to\uFF08${range.to}\uFF09\u3088\u308A\u5F8C\u306B\u306A\u3063\u3066\u3044\u307E\u3059`,
11
11
  usage);if(monthsBetween(range.from,range.to).length>MAX_MONTHS){throw new UsageError(`\u671F\u9593\u306F${String(MAX_MONTHS)}\u304B\u6708\u307E\u3067\u3067\u3059\uFF08${range.from} \u301C ${range.to}\uFF09`,usage)}return range}function boardRangeNotes(range){return range.defaulted?[`\u671F\u9593\u306E\u6307\u5B9A\u304C\u7121\u3044\u306E\u3067\u753B\u9762\u306E\u521D\u671F\u8868\u793A\u3068\u540C\u3058\u7FCC\u6708\u304B\u3089${String(DEFAULT_MONTHS)}\u304B\u6708\uFF08${range.from} \u301C ${range.
12
12
  to}\u30FB\u3053\u306E\u7AEF\u672B\u306E\u6642\u8A08\uFF09\u306B\u3057\u307E\u3059\u3002`]:[]}var UNIT_FLAG={name:"--unit",summary:"\u8868\u793A\u5358\u4F4D\uFF08hours\uFF1D\u6642\u9593\u30FB\u65E2\u5B9A / fte\uFF1D\u4EBA\u6708 / percent\uFF1D\u5272\u5408\uFF09\u3002table / text / tsv \u3060\u3051\u306B\u52B9\u304F",takesValue:true,placeholder:"<hours|fte|percent>"};var BY_PROJECT_FLAG={name:"--by-project",summary:"\u30E1\u30F3\u30D0\u30FC\xD7\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u884C\u3067\u51FA\u3059\uFF08\u753B\u9762\u3067\u884C\u3092\u958B\u3044\u305F\u5185\u8A33\uFF09",
13
- takesValue:false};var INCLUDE_TENTATIVE_FLAG={name:"--include-tentative",summary:"\u4EEE\u30A2\u30B5\u30A4\u30F3\u3092\u5408\u8A08\u306B\u8DB3\u3059\uFF08\u753B\u9762\u306E\u300C\u4EEE\u30A2\u30B5\u30A4\u30F3\u3092\u542B\u3081\u308B\u300D\u5207\u66FF\uFF09",takesValue:false};var SHOW_USAGE="twp staffing-board show [--month <YYYY-MM> | --from <YYYY-MM> --to <YYYY-MM>] [--unit hours|fte|percent] [--by-project] [--include-tentative] [--user <\u30E6\u30FC\u30B6\u30FC>] [--department <\u90E8\u7F72>]";
14
- function unitOf(input){const raw=input.flags.get(UNIT_FLAG.name)?.trim()??"hours";if(raw!=="hours"&&raw!=="fte"&&raw!=="percent"){throw new UsageError(`--unit \u306F hours / fte / percent \u306E\u3044\u305A\u308C\u304B\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,SHOW_USAGE)}return raw}function formatBoardValue(hours,standardHours,unit){const standard=typeof standardHours==="number"?standardHours:0;switch(unit){case"fte":return standard>0?(hours/standard).toFixed(2):"-";case"\
15
- percent":return standard>0?`${(hours/standard*100).toFixed(0)}%`:"-";default:return`${hours.toFixed(1)}h`}}function num(value){return typeof value==="number"&&Number.isFinite(value)?value:0}function monthIndex(entries){const out=new Map;if(!Array.isArray(entries))return out;for(const entry of entries){if(isRecord(entry)&&typeof entry["year_month"]==="string")out.set(entry["year_month"],entry)}return out}var VIEW_KEY="__twp_staffing_board_view";function viewOf(body){const view=recordOf(isRecord(body)?
16
- body[VIEW_KEY]:void 0);return{unit:view["unit"]??"hours",byProject:view["byProject"]===true,excludedProjectIds:Array.isArray(view["excludedProjectIds"])?view["excludedProjectIds"]:[],tentatives:Array.isArray(view["tentatives"])?view["tentatives"]:null}}function boardMonthHours(user,ym,view){const excluded=new Set(view.excludedProjectIds);const assigned=num(monthIndex(user["by_month"]).get(ym)?.["assigned_hours"]);let excludedHours=0;const projects=Array.isArray(user["projects"])?user["projects"].
17
- map(recordOf):[];for(const project of projects){const id=project["project_id"];if(project["is_unassigned"]===true||typeof id!=="string"||!excluded.has(id))continue;const cell=monthIndex(project["by_month"]).get(ym);if(cell!==void 0&&cell["is_estimated"]!==true)excludedHours+=num(cell["hours"])}const base=Math.max(0,assigned-excludedHours);if(view.tentatives===null)return base;const tentative=view.tentatives.filter(t=>t["user_id"]===user["user_id"]&&!(typeof t["project_id"]==="string"&&excluded.has(
18
- t["project_id"]))).reduce((sum,t)=>sum+num(recordOf(t["monthly_hours"])[ym]),0);return base+tentative}function boardRows(body){const view=viewOf(body);const months=responseMonths(body);return listIn(body,"users","\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9").map(user=>{const byMonth=monthIndex(user["by_month"]);const cells={};let total=0;for(const ym of months){const m=byMonth.get(ym);if(m===void 0){cells[ym]=null;continue}const hours=boardMonthHours(user,ym,view);total+=hours;const estimated=num(
19
- m["estimated_hours"]);const showEstimated=estimated>0&&(view.unit==="hours"||num(m["standard_hours"])>0);cells[ym]=`${formatBoardValue(hours,m["standard_hours"],view.unit)}${showEstimated?` (+\u63A8\u5B9A ${formatBoardValue(estimated,m["standard_hours"],view.unit)})`:""}`}return{department_name:user["department_name"]??null,user_name:user["user_name"]??null,...cells,total_hours:Math.round(total*10)/10,user_id:user["user_id"]??null}})}function boardProjectRows(body){const view=viewOf(body);const excluded=new Set(
20
- view.excludedProjectIds);const months=responseMonths(body);const rows=[];for(const user of listIn(body,"users","\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9")){const standards=monthIndex(user["by_month"]);const projects=Array.isArray(user["projects"])?user["projects"].map(recordOf):[];for(const project of projects){const byMonth=monthIndex(project["by_month"]);const cells={};for(const ym of months){const m=byMonth.get(ym);const hours=num(m?.["hours"]);cells[ym]=m===void 0||hours<=0?null:`${formatBoardValue(
21
- hours,standards.get(ym)?.["standard_hours"],view.unit)}${m["is_estimated"]===true?" (\u63A8\u5B9A)":""}`}const id=project["project_id"];rows.push({user_name:user["user_name"]??null,project_name:project["project_name"]??null,...cells,excluded:typeof id==="string"&&excluded.has(id),unassigned:project["is_unassigned"]===true,user_id:user["user_id"]??null,project_id:id??null})}}return rows}function shownTentatives(body,tentatives){const users=new Set(listIn(body,"users","\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9").
22
- map(u=>u["user_id"]));return tentatives.filter(t=>users.has(t["user_id"])).length}function showPlan(input){noArgs(input,SHOW_USAGE);const range=boardRange(input,SHOW_USAGE);unitOf(input);return{method:"GET",path:BOARD_PATH,query:{start_ym:range.from,end_ym:range.to,user_id:resolvedOrUndefined(input,"userId"),department_id:resolvedOrUndefined(input,"departmentId")}}}var showOperation={name:"show",summary:"\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9\u306E\u8868\uFF08\u30E1\u30F3\u30D0\u30FC\xD7\u6708\u306E\u30A2\u30B5\u30A4\u30F3\u5DE5\u6570\uFF09\u3092\u8868\u793A\u3059\u308B",
13
+ takesValue:false};var INCLUDE_TENTATIVE_FLAG={name:"--include-tentative",summary:"\u4EEE\u30A2\u30B5\u30A4\u30F3\u3092\u5408\u8A08\u306B\u8DB3\u3059\uFF08\u753B\u9762\u306E\u300C\u4EEE\u30A2\u30B5\u30A4\u30F3\u3092\u542B\u3081\u308B\u300D\u5207\u66FF\uFF09",takesValue:false};var INCLUDE_HIDDEN_FLAG={name:"--include-hidden",summary:"\u30DC\u30FC\u30C9\u3067\u975E\u8868\u793A\u306E\u30E1\u30F3\u30D0\u30FC\uFF08\u65E2\u5B9A\u306F\u6B63\u793E\u54E1\u4EE5\u5916\u30FB\u624B\u52D5\u3067\u975E\u8868\u793A\u306B\u3057\u305F\u4EBA\uFF09\u3082\u542B\u3081\u308B\uFF08\u753B\u9762\u306E\u300C\u975E\u8868\u793A\u306E\u30E1\u30F3\u30D0\u30FC\u3082\u8868\u793A\u3059\u308B\u300D\uFF09",
14
+ takesValue:false};var SHOW_USAGE="twp staffing-board show [--month <YYYY-MM> | --from <YYYY-MM> --to <YYYY-MM>] [--unit hours|fte|percent] [--by-project] [--include-tentative] [--include-hidden] [--user <\u30E6\u30FC\u30B6\u30FC>] [--department <\u90E8\u7F72>]";function unitOf(input){const raw=input.flags.get(UNIT_FLAG.name)?.trim()??"hours";if(raw!=="hours"&&raw!=="fte"&&raw!=="percent"){throw new UsageError(`--unit \u306F hours / fte / percent \u306E\u3044\u305A\u308C\u304B\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\
15
+ \uFF09`,SHOW_USAGE)}return raw}function formatBoardValue(hours,standardHours,unit){const standard=typeof standardHours==="number"?standardHours:0;switch(unit){case"fte":return standard>0?(hours/standard).toFixed(2):"-";case"percent":return standard>0?`${(hours/standard*100).toFixed(0)}%`:"-";default:return`${hours.toFixed(1)}h`}}function num(value){return typeof value==="number"&&Number.isFinite(value)?value:0}function monthIndex(entries){const out=new Map;if(!Array.isArray(entries))return out;for(const entry of entries){
16
+ if(isRecord(entry)&&typeof entry["year_month"]==="string")out.set(entry["year_month"],entry)}return out}var VIEW_KEY="__twp_staffing_board_view";function viewOf(body){const view=recordOf(isRecord(body)?body[VIEW_KEY]:void 0);return{unit:view["unit"]??"hours",byProject:view["byProject"]===true,excludedProjectIds:Array.isArray(view["excludedProjectIds"])?view["excludedProjectIds"]:[],tentatives:Array.isArray(view["tentatives"])?view["tentatives"]:null,includeHidden:view["includeHidden"]===true}}function boardUsers(body){
17
+ const users=listIn(body,"users","\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9");return viewOf(body).includeHidden?users:users.filter(u=>u["is_board_visible"]!==false)}function hiddenCount(body){return listIn(body,"users","\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9").filter(u=>u["is_board_visible"]===false).length}function boardMonthHours(user,ym,view){const excluded=new Set(view.excludedProjectIds);const assigned=num(monthIndex(user["by_month"]).get(ym)?.["assigned_hours"]);let excludedHours=0;const projects=Array.
18
+ isArray(user["projects"])?user["projects"].map(recordOf):[];for(const project of projects){const id=project["project_id"];if(project["is_unassigned"]===true||typeof id!=="string"||!excluded.has(id))continue;const cell=monthIndex(project["by_month"]).get(ym);if(cell!==void 0&&cell["is_estimated"]!==true)excludedHours+=num(cell["hours"])}const base=Math.max(0,assigned-excludedHours);if(view.tentatives===null)return base;const tentative=view.tentatives.filter(t=>t["user_id"]===user["user_id"]&&!(typeof t["\
19
+ project_id"]==="string"&&excluded.has(t["project_id"]))).reduce((sum,t)=>sum+num(recordOf(t["monthly_hours"])[ym]),0);return base+tentative}function boardRows(body){const view=viewOf(body);const months=responseMonths(body);return boardUsers(body).map(user=>{const byMonth=monthIndex(user["by_month"]);const cells={};let total=0;for(const ym of months){const m=byMonth.get(ym);if(m===void 0){cells[ym]=null;continue}const hours=boardMonthHours(user,ym,view);total+=hours;const estimated=num(m["estimat\
20
+ ed_hours"]);const showEstimated=estimated>0&&(view.unit==="hours"||num(m["standard_hours"])>0);cells[ym]=`${formatBoardValue(hours,m["standard_hours"],view.unit)}${showEstimated?` (+\u63A8\u5B9A ${formatBoardValue(estimated,m["standard_hours"],view.unit)})`:""}`}return{department_name:user["department_name"]??null,user_name:user["user_name"]??null,...cells,total_hours:Math.round(total*10)/10,user_id:user["user_id"]??null}})}function boardProjectRows(body){const view=viewOf(body);const excluded=new Set(
21
+ view.excludedProjectIds);const months=responseMonths(body);const rows=[];for(const user of boardUsers(body)){const standards=monthIndex(user["by_month"]);const projects=Array.isArray(user["projects"])?user["projects"].map(recordOf):[];for(const project of projects){const byMonth=monthIndex(project["by_month"]);const cells={};for(const ym of months){const m=byMonth.get(ym);const hours=num(m?.["hours"]);cells[ym]=m===void 0||hours<=0?null:`${formatBoardValue(hours,standards.get(ym)?.["standard_hou\
22
+ rs"],view.unit)}${m["is_estimated"]===true?" (\u63A8\u5B9A)":""}`}const id=project["project_id"];rows.push({user_name:user["user_name"]??null,project_name:project["project_name"]??null,...cells,excluded:typeof id==="string"&&excluded.has(id),unassigned:project["is_unassigned"]===true,user_id:user["user_id"]??null,project_id:id??null})}}return rows}function shownTentatives(body,tentatives){const users=new Set(boardUsers(body).map(u=>u["user_id"]));return tentatives.filter(t=>users.has(t["user_id"])).
23
+ length}function showPlan(input){noArgs(input,SHOW_USAGE);const range=boardRange(input,SHOW_USAGE);unitOf(input);return{method:"GET",path:BOARD_PATH,query:{start_ym:range.from,end_ym:range.to,user_id:resolvedOrUndefined(input,"userId"),department_id:resolvedOrUndefined(input,"departmentId")}}}var showOperation={name:"show",summary:"\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9\u306E\u8868\uFF08\u30E1\u30F3\u30D0\u30FC\xD7\u6708\u306E\u30A2\u30B5\u30A4\u30F3\u5DE5\u6570\uFF09\u3092\u8868\u793A\u3059\u308B",
23
24
  usage:SHOW_USAGE,description:`\u753B\u9762\u300C\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9\u300D\u306E\u8868\u3068\u540C\u3058\u5024\u3092\u51FA\u3057\u307E\u3059\uFF08GET /api/v2/analysis/staffing-board \uFF0B \u96C6\u8A08\u5BFE\u8C61\u5916\u306E\u8A2D\u5B9A\uFF09\u3002
24
25
  \u671F\u9593\u3092\u7701\u304F\u3068\u753B\u9762\u306E\u521D\u671F\u8868\u793A\u3068\u540C\u3058\u7FCC\u6708\u304B\u3089${String(DEFAULT_MONTHS)}\u304B\u6708\uFF08\u3053\u306E\u7AEF\u672B\u306E\u6642\u8A08\uFF09\u3067\u3059\u3002\u671F\u9593\u306F${String(MAX_MONTHS)}\u304B\u6708\u307E\u3067\u3067\u3059\u3002
25
26
  \u5404\u6708\u306F\u300C\u6B63\u5F0F\u30A2\u30B5\u30A4\u30F3\u306E\u5408\u8A08 \u2212 \u96C6\u8A08\u5BFE\u8C61\u5916\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u300D\u3067\u3001--include-tentative \u3067\u4EEE\u30A2\u30B5\u30A4\u30F3\u3092\u8DB3\u3057\u307E\u3059\uFF08\u753B\u9762\u306E\u5207\u66FF\u3068\u540C\u3058\uFF09\u3002
26
27
  \u63A8\u5B9A\u6642\u9593\uFF08\u30A2\u30B5\u30A4\u30F3\u671F\u9593\u304C\u672A\u5165\u529B\u3067\u6848\u4EF6\u306E\u65E2\u5B9A\u304B\u3089\u51FA\u3057\u305F\u5024\uFF09\u306F\u5408\u8A08\u306B\u542B\u3081\u305A\u3001(+\u63A8\u5B9A \u2026) \u3068\u6DFB\u3048\u307E\u3059\u3002
27
28
  --unit \u3067\u6642\u9593 / \u4EBA\u6708\uFF08FTE\uFF09/ \u5272\u5408\u306B\u63DB\u7B97\u3057\u307E\u3059\uFF08\u5206\u6BCD\u306F\u305D\u306E\u30E1\u30F3\u30D0\u30FC\u30FB\u305D\u306E\u6708\u306E\u6A19\u6E96\u6642\u9593\u3002\u753B\u9762\u3068\u540C\u3058\u5F0F\uFF09\u3002
28
29
  --by-project \u3067\u30E1\u30F3\u30D0\u30FC\xD7\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u884C\u306B\u3057\u307E\u3059\u3002
30
+ \u753B\u9762\u3068\u540C\u3058\u304F\u3001\u30DC\u30FC\u30C9\u3067\u975E\u8868\u793A\u306E\u30E1\u30F3\u30D0\u30FC\uFF08\u65E2\u5B9A\u306F\u6B63\u793E\u54E1\u4EE5\u5916\u30FB\u624B\u52D5\u3067\u975E\u8868\u793A\u306B\u3057\u305F\u4EBA\uFF09\u306F\u9664\u304D\u307E\u3059\u3002--include-hidden \u3067\u542B\u3081\u307E\u3059\u3002
29
31
  \u30BB\u30EB\u5DE5\u6570\u306E\u66F4\u65B0\u306F twp staffing-board cell set \u3067\u3059\uFF08\u753B\u9762\u3068\u540C\u30581\u304B\u6708\u5358\u4F4D\u30FB\u30DC\u30FC\u30C9\u306E\u7DE8\u96C6\u53EF\u304C\u8981\u308A\u307E\u3059\uFF09\u3002
30
- --output json \u306F\u30B5\u30FC\u30D0\u306E\u5FDC\u7B54\u306B excluded_project_ids\uFF08\u3068 --include-tentative \u306A\u3089 tentative_assignments\uFF09\u3092\u8DB3\u3057\u305F\u3082\u306E\u3067\u3001\u63DB\u7B97\u524D\u306E\u5024\u3067\u3059\u3002`,flags:[MONTH_FLAG,FROM_FLAG,TO_FLAG,UNIT_FLAG,BY_PROJECT_FLAG,INCLUDE_TENTATIVE_FLAG,USER_FLAG,DEPARTMENT_FLAG],forbidden:FORBIDDEN,async prepare(input,ctx){noArgs(input,SHOW_USAGE);boardRange(input,SHOW_USAGE);unitOf(input);return resolveFilters(
31
- input,ctx)},plan:showPlan,plannedNotes:input=>[...boardRangeNotes(boardRange(input,SHOW_USAGE)),`\u3053\u306E\u3042\u3068\u96C6\u8A08\u5BFE\u8C61\u5916\u306E\u8A2D\u5B9A\uFF08GET ${BOARD_PATH}/settings\uFF09${input.flags.has(INCLUDE_TENTATIVE_FLAG.name)?"\u3068\u4EEE\u30A2\u30B5\u30A4\u30F3\uFF08GET \u2026/tentative-assignments\uFF09":""}\u3082\u8AAD\u307F\u307E\u3059\u3002`],async execute(input,ctx){const plan=showPlan(input);const board=await ctx.send(plan);const settings=recordOf(dataOf(await ctx.
32
- send({method:"GET",path:`${BOARD_PATH}/settings`}),"\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9\u306E\u8A2D\u5B9A"));const excluded=Array.isArray(settings["excluded_project_ids"])?settings["excluded_project_ids"].filter(v=>typeof v==="string"):[];let tentatives=null;if(input.flags.has(INCLUDE_TENTATIVE_FLAG.name)){tentatives=listIn(await ctx.send({method:"GET",path:TENTATIVE_PATH,query:{start_ym:plan.query?.["start_ym"],end_ym:plan.query?.["end_ym"]}}),"items","\u4EEE\u30A2\u30B5\u30A4\u30F3")}if(!isRecord(
33
- board))return board;const view={unit:unitOf(input),byProject:input.flags.has(BY_PROJECT_FLAG.name),excludedProjectIds:excluded,tentatives};return{...board,[VIEW_KEY]:view}},summarize:body=>viewOf(body).byProject?boardProjectRows(body):boardRows(body),raw:body=>{listIn(body,"users","\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9");if(!isRecord(body))return body;const view=viewOf(body);const rest={...body,excluded_project_ids:view.excludedProjectIds};if(view.tentatives!==null)rest["tentative_assignmen\
34
- ts"]=view.tentatives;delete rest[VIEW_KEY];return rest},notes:body=>{const view=viewOf(body);return[...periodNote(body),...view.excludedProjectIds.length>0?[`\u96C6\u8A08\u5BFE\u8C61\u5916\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ${String(view.excludedProjectIds.length)} \u4EF6\u3092\u5408\u8A08\u304B\u3089\u9664\u3044\u3066\u3044\u307E\u3059\u3002`]:[],view.tentatives===null?"\u4EEE\u30A2\u30B5\u30A4\u30F3\u306F\u542B\u307F\u307E\u305B\u3093\uFF08--include-tentative \u3067\u8DB3\u3057\u307E\u3059\uFF09\u3002":
35
- view.byProject?"--by-project \u306E\u884C\u306F\u6B63\u5F0F\u30A2\u30B5\u30A4\u30F3\u3060\u3051\u3067\u3001\u4EEE\u30A2\u30B5\u30A4\u30F3\u306F\u542B\u307F\u307E\u305B\u3093\u3002":`\u8868\u793A\u3057\u305F\u30E1\u30F3\u30D0\u30FC\u306E\u4EEE\u30A2\u30B5\u30A4\u30F3 ${String(shownTentatives(body,view.tentatives))} \u4EF6\u3092\u5408\u8A08\u306B\u542B\u3081\u3066\u3044\u307E\u3059\u3002`]}};var PROBABILITIES=["confirmed","likely","pre","on_hold"];var PROBABILITY_LABELS={confirmed:"\u78BA\u5B9A",likely:"\
36
- \u307B\u307C\u78BA\u5B9A",pre:"\u30D7\u30EC",on_hold:"\u4FDD\u7559"};var TENTATIVE_USER_FLAG={name:"--user",summary:"\u30E1\u30F3\u30D0\u30FC\uFF08\u6C0F\u540D\u30FB\u30E1\u30FC\u30EB\u30FBID\u30FBme\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};var TENTATIVE_PROJECT_FLAG={name:"--project",summary:"\u65E2\u5B58\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var PROJECT_NAME_FLAG={name:"--project\
37
- -name",summary:"TWP \u672A\u767B\u9332\u306E\u898B\u8FBC\u307F\u6848\u4EF6\u540D\uFF08200\u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6848\u4EF6\u540D>"};var PROBABILITY_FLAG={name:"--probability",summary:"\u78BA\u5EA6\uFF08confirmed\uFF1D\u78BA\u5B9A / likely\uFF1D\u307B\u307C\u78BA\u5B9A / pre\uFF1D\u30D7\u30EC / on_hold\uFF1D\u4FDD\u7559\uFF09",takesValue:true,placeholder:"<\u78BA\u5EA6>"};var HOURS_FLAG={name:"--hours",summary:"\u6708\u306E\u6642\u9593\uFF08YYYY-MM=\u6642\u9593\uFF09\u3002\u7E70\u308A\u8FD4\u3057\u6307\u5B9A\u3067\u304D\u308B\u3002update \u3067\u306F\u6307\u5B9A\u3057\u305F\u6708\u306E\u96C6\u5408\u3067\
38
- \u7F6E\u304D\u63DB\u308F\u308B",takesValue:true,placeholder:"<YYYY-MM=\u6642\u9593>",repeatable:true};var NO_HOURS_FLAG={name:"--no-hours",summary:"\u6708\u306E\u6642\u9593\u3092\u7A7A\u306B\u3059\u308B\uFF08\u6642\u671F\u672A\u5B9A\u306E\u898B\u8FBC\u307F\uFF09",takesValue:false};var MEMO_FLAG={name:"--memo",summary:"\u30E1\u30E2\uFF082,000\u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var ROLE_FLAG={name:"--role",summary:"\u6607\u683C\u6642\u306E\u5F79\u5272\uFF08\u65E2\u5B9A member\u3002\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3059\u308B\uFF09",
39
- takesValue:true,placeholder:"<\u5F79\u5272>"};var TENTATIVE_LIST_USAGE="twp staffing-board tentative list [--from <YYYY-MM> --to <YYYY-MM>] [--user <\u30E6\u30FC\u30B6\u30FC>]";var TENTATIVE_CREATE_USAGE="twp staffing-board tentative create --user <\u30E6\u30FC\u30B6\u30FC> (--project <\u30B3\u30FC\u30C9> | --project-name <\u6848\u4EF6\u540D>) --probability <\u78BA\u5EA6> (--hours <YYYY-MM=\u6642\u9593> ... | --no-hours) [--memo <\u6587\u5B57\u5217>]";var TENTATIVE_UPDATE_USAGE="twp staffing-boa\
40
- rd tentative update <ID> [--user <\u30E6\u30FC\u30B6\u30FC>] [--project <\u30B3\u30FC\u30C9>] [--project-name <\u6848\u4EF6\u540D>] [--probability <\u78BA\u5EA6>] [--hours <YYYY-MM=\u6642\u9593> ... | --no-hours] [--memo <\u6587\u5B57\u5217>]";var TENTATIVE_DELETE_USAGE="twp staffing-board tentative delete <ID> --yes";var TENTATIVE_PROMOTE_USAGE="twp staffing-board tentative promote <ID> [--project <\u30B3\u30FC\u30C9>] [--role <\u5F79\u5272>] --yes";function parseMonthlyHours(values,usage){const out={};
41
- for(const raw of values){const match=/^\s*(\d{4}-(?:0[1-9]|1[0-2]))\s*=\s*([0-9]+(?:\.[0-9]+)?)\s*$/.exec(raw);if(match===null)throw new UsageError(`--hours \u306F YYYY-MM=\u6642\u9593 \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,usage);const[,ym,hours]=match;if(ym in out)throw new UsageError(`--hours \u306B\u540C\u3058\u6708\uFF08${ym}\uFF09\u304C2\u56DE\u3042\u308A\u307E\u3059`,usage);out[ym]=Number(hours)}return out}
42
- function probabilityOf(input,usage){const raw=input.flags.get(PROBABILITY_FLAG.name)?.trim();if(raw===void 0)return void 0;if(!PROBABILITIES.includes(raw)){throw new UsageError(`--probability \u306F ${PROBABILITIES.join(" / ")} \u306E\u3044\u305A\u308C\u304B\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,usage)}return raw}function tentativeBody(input,usage,creating){const body={};const userId=input.resolved?.["userId"];const projectId=input.resolved?.["projectId"];const projectName=input.
43
- flags.get(PROJECT_NAME_FLAG.name);const probability=probabilityOf(input,usage);const hours=repeatedValues(input,HOURS_FLAG.name);const noHours=input.flags.has(NO_HOURS_FLAG.name);const memo=input.flags.get(MEMO_FLAG.name);if(hours.length>0&&noHours)throw new UsageError("--hours \u3068 --no-hours \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",usage);if(creating){if(userId===void 0)throw new UsageError("--user \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(projectId===void 0&&
44
- (projectName===void 0||projectName.trim()==="")){throw new UsageError("--project \u304B --project-name \u306E\u3069\u3061\u3089\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage)}if(probability===void 0)throw new UsageError("--probability \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(hours.length===0&&!noHours){throw new UsageError("--hours \u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6642\u671F\u672A\u5B9A\u306A\u3089 --no-hours\uFF09",
45
- usage)}}if(userId!==void 0)body["user_id"]=userId;if(projectId!==void 0)body["project_id"]=projectId;if(projectName!==void 0)body["project_name"]=projectName.trim()===""?null:projectName.trim();if(probability!==void 0)body["probability"]=probability;if(hours.length>0)body["monthly_hours"]=parseMonthlyHours(hours,usage);if(noHours)body["monthly_hours"]={};if(memo!==void 0)body["memo"]=memo===""?null:memo;if(!creating&&Object.keys(body).length===0)throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
46
- usage);return body}async function resolveTentativeRefs(input,ctx){const resolved={};const user=input.flags.get(TENTATIVE_USER_FLAG.name);const project=input.flags.get(TENTATIVE_PROJECT_FLAG.name);if(user!==void 0)resolved["userId"]=(await ctx.resolver.user(user,TENTATIVE_USER_FLAG.name)).id;if(project!==void 0)resolved["projectId"]=(await ctx.resolver.project(project)).id;return withResolved(input,resolved)}var TENTATIVE_COLUMNS=["user_id","project_name","probability","hours","memo","project_id",
47
- "id","updated_at"];function tentativeRow(item){const monthly=recordOf(item["monthly_hours"]);const hours=Object.keys(monthly).sort().map(ym=>`${ym}=${String(monthly[ym])}`).join(" ");const probability=typeof item["probability"]==="string"?item["probability"]:null;return pick({...item,probability:probability===null?null:`${PROBABILITY_LABELS[probability]??probability}\uFF08${probability}\uFF09`,hours},TENTATIVE_COLUMNS)}function tentativeOne(body){const data=dataOf(body,"\u4EEE\u30A2\u30B5\u30A4\u30F3");
32
+ --output json \u306F\u30B5\u30FC\u30D0\u306E\u5FDC\u7B54\u306B excluded_project_ids\uFF08\u3068 --include-tentative \u306A\u3089 tentative_assignments\uFF09\u3092\u8DB3\u3057\u305F\u3082\u306E\u3067\u3001\u63DB\u7B97\u524D\u306E\u5024\u3067\u3059\uFF08\u975E\u8868\u793A\u306E\u30E1\u30F3\u30D0\u30FC\u3082 is_board_visible: false \u3067\u542B\u307F\u307E\u3059\uFF09\u3002`,flags:[MONTH_FLAG,FROM_FLAG,TO_FLAG,UNIT_FLAG,BY_PROJECT_FLAG,INCLUDE_TENTATIVE_FLAG,INCLUDE_HIDDEN_FLAG,USER_FLAG,DEPARTMENT_FLAG],
33
+ forbidden:FORBIDDEN,async prepare(input,ctx){noArgs(input,SHOW_USAGE);boardRange(input,SHOW_USAGE);unitOf(input);return resolveFilters(input,ctx)},plan:showPlan,plannedNotes:input=>[...boardRangeNotes(boardRange(input,SHOW_USAGE)),`\u3053\u306E\u3042\u3068\u96C6\u8A08\u5BFE\u8C61\u5916\u306E\u8A2D\u5B9A\uFF08GET ${BOARD_PATH}/settings\uFF09${input.flags.has(INCLUDE_TENTATIVE_FLAG.name)?"\u3068\u4EEE\u30A2\u30B5\u30A4\u30F3\uFF08GET \u2026/tentative-assignments\uFF09":""}\u3082\u8AAD\u307F\u307E\u3059\u3002`],
34
+ async execute(input,ctx){const plan=showPlan(input);const board=await ctx.send(plan);const settings=recordOf(dataOf(await ctx.send({method:"GET",path:`${BOARD_PATH}/settings`}),"\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9\u306E\u8A2D\u5B9A"));const excluded=Array.isArray(settings["excluded_project_ids"])?settings["excluded_project_ids"].filter(v=>typeof v==="string"):[];let tentatives=null;if(input.flags.has(INCLUDE_TENTATIVE_FLAG.name)){tentatives=listIn(await ctx.send({method:"GET",path:TENTATIVE_PATH,
35
+ query:{start_ym:plan.query?.["start_ym"],end_ym:plan.query?.["end_ym"]}}),"items","\u4EEE\u30A2\u30B5\u30A4\u30F3")}if(!isRecord(board))return board;const view={unit:unitOf(input),byProject:input.flags.has(BY_PROJECT_FLAG.name),excludedProjectIds:excluded,tentatives,includeHidden:input.flags.has(INCLUDE_HIDDEN_FLAG.name)};return{...board,[VIEW_KEY]:view}},summarize:body=>viewOf(body).byProject?boardProjectRows(body):boardRows(body),raw:body=>{listIn(body,"users","\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9");
36
+ if(!isRecord(body))return body;const view=viewOf(body);const rest={...body,excluded_project_ids:view.excludedProjectIds};if(view.tentatives!==null)rest["tentative_assignments"]=view.tentatives;delete rest[VIEW_KEY];return rest},notes:body=>{const view=viewOf(body);const hidden=hiddenCount(body);return[...periodNote(body),...hidden>0?[view.includeHidden?`\u30DC\u30FC\u30C9\u3067\u975E\u8868\u793A\u306E\u30E1\u30F3\u30D0\u30FC ${String(hidden)} \u540D\u3082\u542B\u3081\u3066\u3044\u307E\u3059\u3002`:
37
+ `\u30DC\u30FC\u30C9\u3067\u975E\u8868\u793A\u306E\u30E1\u30F3\u30D0\u30FC ${String(hidden)} \u540D\u3092\u9664\u3044\u3066\u3044\u307E\u3059\uFF08--include-hidden \u3067\u542B\u3081\u307E\u3059\uFF09\u3002`]:[],...view.excludedProjectIds.length>0?[`\u96C6\u8A08\u5BFE\u8C61\u5916\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ${String(view.excludedProjectIds.length)} \u4EF6\u3092\u5408\u8A08\u304B\u3089\u9664\u3044\u3066\u3044\u307E\u3059\u3002`]:[],view.tentatives===null?"\u4EEE\u30A2\u30B5\u30A4\u30F3\u306F\u542B\u307F\u307E\u305B\u3093\uFF08--include-tentat\
38
+ ive \u3067\u8DB3\u3057\u307E\u3059\uFF09\u3002":view.byProject?"--by-project \u306E\u884C\u306F\u6B63\u5F0F\u30A2\u30B5\u30A4\u30F3\u3060\u3051\u3067\u3001\u4EEE\u30A2\u30B5\u30A4\u30F3\u306F\u542B\u307F\u307E\u305B\u3093\u3002":`\u8868\u793A\u3057\u305F\u30E1\u30F3\u30D0\u30FC\u306E\u4EEE\u30A2\u30B5\u30A4\u30F3 ${String(shownTentatives(body,view.tentatives))} \u4EF6\u3092\u5408\u8A08\u306B\u542B\u3081\u3066\u3044\u307E\u3059\u3002`]}};var PROBABILITIES=["confirmed","likely","pre","on_hold"];var PROBABILITY_LABELS={
39
+ confirmed:"\u78BA\u5B9A",likely:"\u307B\u307C\u78BA\u5B9A",pre:"\u30D7\u30EC",on_hold:"\u4FDD\u7559"};var TENTATIVE_USER_FLAG={name:"--user",summary:"\u30E1\u30F3\u30D0\u30FC\uFF08\u6C0F\u540D\u30FB\u30E1\u30FC\u30EB\u30FBID\u30FBme\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};var TENTATIVE_PROJECT_FLAG={name:"--project",summary:"\u65E2\u5B58\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var PROJECT_NAME_FLAG={
40
+ name:"--project-name",summary:"TWP \u672A\u767B\u9332\u306E\u898B\u8FBC\u307F\u6848\u4EF6\u540D\uFF08200\u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6848\u4EF6\u540D>"};var PROBABILITY_FLAG={name:"--probability",summary:"\u78BA\u5EA6\uFF08confirmed\uFF1D\u78BA\u5B9A / likely\uFF1D\u307B\u307C\u78BA\u5B9A / pre\uFF1D\u30D7\u30EC / on_hold\uFF1D\u4FDD\u7559\uFF09",takesValue:true,placeholder:"<\u78BA\u5EA6>"};var HOURS_FLAG={name:"--hours",summary:"\u6708\u306E\u6642\u9593\uFF08YYYY-MM=\u6642\u9593\uFF09\u3002\u7E70\u308A\u8FD4\u3057\u6307\u5B9A\u3067\u304D\u308B\u3002upd\
41
+ ate \u3067\u306F\u6307\u5B9A\u3057\u305F\u6708\u306E\u96C6\u5408\u3067\u7F6E\u304D\u63DB\u308F\u308B",takesValue:true,placeholder:"<YYYY-MM=\u6642\u9593>",repeatable:true};var NO_HOURS_FLAG={name:"--no-hours",summary:"\u6708\u306E\u6642\u9593\u3092\u7A7A\u306B\u3059\u308B\uFF08\u6642\u671F\u672A\u5B9A\u306E\u898B\u8FBC\u307F\uFF09",takesValue:false};var MEMO_FLAG={name:"--memo",summary:"\u30E1\u30E2\uFF082,000\u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var ROLE_FLAG={
42
+ name:"--role",summary:"\u6607\u683C\u6642\u306E\u5F79\u5272\uFF08\u65E2\u5B9A member\u3002\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3059\u308B\uFF09",takesValue:true,placeholder:"<\u5F79\u5272>"};var TENTATIVE_LIST_USAGE="twp staffing-board tentative list [--from <YYYY-MM> --to <YYYY-MM>] [--user <\u30E6\u30FC\u30B6\u30FC>]";var TENTATIVE_CREATE_USAGE="twp staffing-board tentative create --user <\u30E6\u30FC\u30B6\u30FC> (--project <\u30B3\u30FC\u30C9> | --project-name <\u6848\u4EF6\u540D>) --probability <\u78BA\u5EA6> (--hours <YYYY-MM=\u6642\u9593> ... |\
43
+ --no-hours) [--memo <\u6587\u5B57\u5217>]";var TENTATIVE_UPDATE_USAGE="twp staffing-board tentative update <ID> [--user <\u30E6\u30FC\u30B6\u30FC>] [--project <\u30B3\u30FC\u30C9>] [--project-name <\u6848\u4EF6\u540D>] [--probability <\u78BA\u5EA6>] [--hours <YYYY-MM=\u6642\u9593> ... | --no-hours] [--memo <\u6587\u5B57\u5217>]";var TENTATIVE_DELETE_USAGE="twp staffing-board tentative delete <ID> --yes";var TENTATIVE_PROMOTE_USAGE="twp staffing-board tentative promote <ID> [--project <\u30B3\u30FC\u30C9>] [--\
44
+ role <\u5F79\u5272>] --yes";function parseMonthlyHours(values,usage){const out={};for(const raw of values){const match=/^\s*(\d{4}-(?:0[1-9]|1[0-2]))\s*=\s*([0-9]+(?:\.[0-9]+)?)\s*$/.exec(raw);if(match===null)throw new UsageError(`--hours \u306F YYYY-MM=\u6642\u9593 \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,usage);const[,ym,hours]=match;if(ym in out)throw new UsageError(`--hours \u306B\u540C\u3058\u6708\uFF08${ym}\uFF09\
45
+ \u304C2\u56DE\u3042\u308A\u307E\u3059`,usage);out[ym]=Number(hours)}return out}function probabilityOf(input,usage){const raw=input.flags.get(PROBABILITY_FLAG.name)?.trim();if(raw===void 0)return void 0;if(!PROBABILITIES.includes(raw)){throw new UsageError(`--probability \u306F ${PROBABILITIES.join(" / ")} \u306E\u3044\u305A\u308C\u304B\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,usage)}return raw}function tentativeBody(input,usage,creating){const body={};const userId=input.
46
+ resolved?.["userId"];const projectId=input.resolved?.["projectId"];const projectName=input.flags.get(PROJECT_NAME_FLAG.name);const probability=probabilityOf(input,usage);const hours=repeatedValues(input,HOURS_FLAG.name);const noHours=input.flags.has(NO_HOURS_FLAG.name);const memo=input.flags.get(MEMO_FLAG.name);if(hours.length>0&&noHours)throw new UsageError("--hours \u3068 --no-hours \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",usage);if(creating){if(userId===void 0)throw new UsageError("-\
47
+ -user \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(projectId===void 0&&(projectName===void 0||projectName.trim()==="")){throw new UsageError("--project \u304B --project-name \u306E\u3069\u3061\u3089\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage)}if(probability===void 0)throw new UsageError("--probability \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(hours.length===0&&!noHours){throw new UsageError("--hours \u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6642\u671F\u672A\u5B9A\u306A\u3089 --no-ho\
48
+ urs\uFF09",usage)}}if(userId!==void 0)body["user_id"]=userId;if(projectId!==void 0)body["project_id"]=projectId;if(projectName!==void 0)body["project_name"]=projectName.trim()===""?null:projectName.trim();if(probability!==void 0)body["probability"]=probability;if(hours.length>0)body["monthly_hours"]=parseMonthlyHours(hours,usage);if(noHours)body["monthly_hours"]={};if(memo!==void 0)body["memo"]=memo===""?null:memo;if(!creating&&Object.keys(body).length===0)throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\
49
+ \u3055\u3044",usage);return body}async function resolveTentativeRefs(input,ctx){const resolved={};const user=input.flags.get(TENTATIVE_USER_FLAG.name);const project=input.flags.get(TENTATIVE_PROJECT_FLAG.name);if(user!==void 0)resolved["userId"]=(await ctx.resolver.user(user,TENTATIVE_USER_FLAG.name)).id;if(project!==void 0)resolved["projectId"]=(await ctx.resolver.project(project)).id;return withResolved(input,resolved)}var TENTATIVE_COLUMNS=["user_id","project_name","probability","hours","memo",
50
+ "project_id","id","updated_at"];function tentativeRow(item){const monthly=recordOf(item["monthly_hours"]);const hours=Object.keys(monthly).sort().map(ym=>`${ym}=${String(monthly[ym])}`).join(" ");const probability=typeof item["probability"]==="string"?item["probability"]:null;return pick({...item,probability:probability===null?null:`${PROBABILITY_LABELS[probability]??probability}\uFF08${probability}\uFF09`,hours},TENTATIVE_COLUMNS)}function tentativeOne(body){const data=dataOf(body,"\u4EEE\u30A2\u30B5\u30A4\u30F3");
48
51
  if(!isRecord(data))throw new ApiResponseError("\u4EEE\u30A2\u30B5\u30A4\u30F3\u306E\u5FDC\u7B54\u306E data \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return data}function tentativeWrite(name){const creating=name==="create";const usage=creating?TENTATIVE_CREATE_USAGE:TENTATIVE_UPDATE_USAGE;return{name,summary:creating?"\u4EEE\u30A2\u30B5\u30A4\u30F3\uFF08\u672A\u767B\u9332\u306E\u898B\u8FBC\u307F\u6848\u4EF6\u3092\u542B\u3080\uFF09\u3092\u767B\u9332\u3059\u308B":
49
52
  "\u4EEE\u30A2\u30B5\u30A4\u30F3\u3092\u5909\u66F4\u3059\u308B",usage,description:(creating?"POST /api/v2/analysis/staffing-board/tentative-assignments \u3067\u3059\u3002\u6B63\u30C7\u30FC\u30BF\uFF08ProjectMember\uFF09\u306B\u306F\u5165\u3089\u305A\u3001\u30DC\u30FC\u30C9\u306E\u5225\u8868\u793A\u306B\u3060\u3051\u8F09\u308A\u307E\u3059\u3002\n":"PUT /api/v2/analysis/staffing-board/tentative-assignments/{id} \u3067\u3059\u3002\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308A\u307E\u3059\u3002\n--hours \u306F\u6708\u306E\u96C6\u5408\u3092\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u3048\u307E\u3059\uFF08\u8DB3\u3059\u306E\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u6B8B\u3057\u305F\u3044\u6708\u3082\u4E26\u3079\u3066\u304F\u3060\u3055\u3044\uFF09\u3002\n")+
50
53
  "\u78BA\u5EA6\u306F confirmed\uFF08\u78BA\u5B9A\uFF09/ likely\uFF08\u307B\u307C\u78BA\u5B9A\uFF09/ pre\uFF08\u30D7\u30EC\uFF09/ on_hold\uFF08\u4FDD\u7559\uFF09\u3067\u3059\u3002\u7DE8\u96C6\u53EF\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002",flags:[TENTATIVE_USER_FLAG,TENTATIVE_PROJECT_FLAG,PROJECT_NAME_FLAG,PROBABILITY_FLAG,HOURS_FLAG,NO_HOURS_FLAG,MEMO_FLAG],forbidden:writeForbidden,async prepare(input,ctx){if(creating)noArgs(input,usage);else idArg(input,"\u4EEE\u30A2\u30B5\u30A4\u30F3",
@@ -107,4 +110,4 @@ void 0)throw new UsageError("--month \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\
107
110
  \uFF08\u65B0\u3057\u3044\u9806\uFF09",usage:CELL_HISTORY_USAGE,description:"GET /api/v2/analysis/staffing-board/cells/history \u3067\u3059\uFF08\u753B\u9762\u306E\u30BB\u30EB\u306E\u4FEE\u6B63\u5C65\u6B74\u3068\u540C\u3058\uFF09\u3002\n\n"+LIST_PAGING_HELP,flags:[CELL_PROJECT_FLAG,CELL_USER_FLAG,...LIST_FLAGS],paging:envelopePaging({label:"\u30BB\u30EB\u5DE5\u6570\u306E\u4FEE\u6B63\u5C65\u6B74"}),forbidden:FORBIDDEN,prepare:(input,ctx)=>resolveCellRefs(input,ctx,CELL_HISTORY_USAGE),plan:input=>({
108
111
  method:"GET",path:`${CELL_PATH}/history`,query:{project_id:requireResolved(input,"projectId"),user_id:requireResolved(input,"userId"),limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor")}}),summarize:body=>listIn(body,"items","\u30BB\u30EB\u5DE5\u6570\u306E\u4FEE\u6B63\u5C65\u6B74").map(row=>({created_at:row["created_at"]??null,created_by_name:row["created_by_name"]??null,action:row["action"]??null,comment:row["comment"]??null,changes:Array.isArray(row["changes"])?
109
112
  JSON.stringify(row["changes"]):null,id:row["id"]??null})),raw:body=>listIn(body,"items","\u30BB\u30EB\u5DE5\u6570\u306E\u4FEE\u6B63\u5C65\u6B74")}]};var staffingBoardDomain={name:"staffing-board",summary:"\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9\uFF08\u30E1\u30F3\u30D0\u30FC\xD7\u6708\u306E\u5DE5\u6570\u8868\u30FB\u30BB\u30EB\u5DE5\u6570\u30FB\u4EEE\u30A2\u30B5\u30A4\u30F3\u30FB\u30E1\u30E2\u30FB\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\uFF09",operations:[showOperation],subresources:[cellResource,
110
- tentativeResource,noteResource,snapshotResource]};export{boardMonthHours,boardProjectRows,boardRange,boardRows,cellHours,defaultBoardRange,diffRows,formatBoardValue,noteTarget,parseMonthlyHours,snapshotRows,staffingBoardDomain,tentativeBody,tentativeRow};
113
+ tentativeResource,noteResource,snapshotResource]};export{boardMonthHours,boardProjectRows,boardRange,boardRows,boardUsers,cellHours,defaultBoardRange,diffRows,formatBoardValue,noteTarget,parseMonthlyHours,snapshotRows,staffingBoardDomain,tentativeBody,tentativeRow};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems}from"./chunk-3PN4LMBO.js";import{FISCAL_YEAR_FLAG,fiscalYear,skillNames}from"./chunk-37ZCPHYE.js";import{LICENSE_FEATURE_NAMES,levelHoldsSeat,permissionMovesSeat,readLicenses}from"./chunk-2J5A4Q7U.js";import"./chunk-Q3B65OFC.js";import{CONCURRENCY,exportOperation,mapPool,pacedSender}from"./chunk-ZFSQJAYZ.js";import"./chunk-FBTOIECJ.js";import{inspectLocalFile,isCommitted,issued}from"./chunk-JULG6KDV.js";
3
+ import{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems}from"./chunk-C6AOVOVD.js";import{FISCAL_YEAR_FLAG,fiscalYear,skillNames}from"./chunk-37ZCPHYE.js";import{LICENSE_FEATURE_NAMES,levelHoldsSeat,permissionMovesSeat,readLicenses}from"./chunk-2J5A4Q7U.js";import"./chunk-Q3B65OFC.js";import{CONCURRENCY,exportOperation,mapPool,pacedSender}from"./chunk-ZFSQJAYZ.js";import"./chunk-FBTOIECJ.js";import{inspectLocalFile,isCommitted,issued}from"./chunk-JULG6KDV.js";
4
4
  import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import"./chunk-RMFLTSOV.js";import"./chunk-TQ7TNMW5.js";import"./chunk-7KU2EXEE.js";import{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-UVCJXHWN.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-45WIRMGL.js";import"./chunk-EXT4AIDF.js";import{booleanText,boundedText,isoDate,isoDateValue}from"./chunk-JJSBBWJ5.js";
5
5
  import"./chunk-HEH3PUW2.js";import"./chunk-W4NLJ2YK.js";import"./chunk-BD7O73GK.js";import{repeatedValues}from"./chunk-VGT2EGH6.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-4DOPQ74T.js";import{ResolveError,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-II5RVJQN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger,
6
6
  shellQuote}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-OKATZ4SN.js";import"./chunk-NHYMHCAT.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tocca-systems/twp-cli",
3
- "version": "0.98.0",
3
+ "version": "0.99.0",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {