@tocca-systems/twp-cli 0.97.1 → 0.98.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.public.md +10 -0
- package/README.md +15 -0
- package/command-model/_routes.json +112 -0
- package/command-model/agent-loop.json +2 -2
- package/command-model/ai-training-admin.json +15 -0
- package/command-model/ai-training-attempt-admin.json +7 -0
- package/command-model/api-key.json +2 -2
- package/command-model/attendance-report-category.json +2 -2
- package/command-model/attendance-report-reason-detail.json +2 -2
- package/command-model/attendance-report-reason.json +2 -2
- package/command-model/chat-channel.json +2 -2
- package/command-model/chat-mention-group.json +2 -2
- package/command-model/company.json +2 -2
- package/command-model/contract.json +2 -2
- package/command-model/credit.json +1 -0
- package/command-model/customer-campaign.json +2 -2
- package/command-model/department.json +2 -2
- package/command-model/deposit-plan.json +1 -1
- package/command-model/domain-knowledge-doc.json +1 -0
- package/command-model/domain-knowledge.json +4 -2
- package/command-model/dynamo-cms.json +3 -3
- package/command-model/dynamo-inquiry.json +2 -2
- package/command-model/equipment.json +2 -2
- package/command-model/estimate-format.json +2 -2
- package/command-model/estimate.json +2 -2
- package/command-model/evaluation-period.json +2 -2
- package/command-model/evaluation.json +1 -1
- package/command-model/expense-report.json +2 -2
- package/command-model/external-integration-proxy.json +2 -2
- package/command-model/feedback.json +2 -2
- package/command-model/fiscal-year-setting.json +2 -2
- package/command-model/hearing.json +2 -2
- package/command-model/hr-checklist-template.json +2 -2
- package/command-model/index.json +26 -6
- package/command-model/invoice.json +2 -2
- package/command-model/job-title.json +2 -2
- package/command-model/license-type.json +2 -2
- package/command-model/master-product.json +2 -2
- package/command-model/master-support.json +2 -2
- package/command-model/master-tenant.json +2 -2
- package/command-model/media-file.json +4 -3
- package/command-model/media-published-file.json +7 -0
- package/command-model/media-sharing-settings.json +7 -0
- package/command-model/meeting-category.json +2 -2
- package/command-model/meeting-template.json +2 -2
- package/command-model/meeting.json +2 -2
- package/command-model/microsoft-graph-proxy-v2.json +1 -1
- package/command-model/milli-credit.json +1 -1
- package/command-model/music-generation.json +1 -1
- package/command-model/note-category.json +2 -2
- package/command-model/notification.json +1 -1
- package/command-model/o-auth-client.json +2 -2
- package/command-model/ojt-approval-inbox.json +6 -0
- package/command-model/ojt-assignment.json +29 -0
- package/command-model/ojt-checklist.json +18 -0
- package/command-model/ojt-permission.json +9 -0
- package/command-model/ojt-plan.json +15 -0
- package/command-model/ojt-progress.json +6 -0
- package/command-model/ojt-report.json +12 -0
- package/command-model/ojt-role-dashboard.json +7 -0
- package/command-model/ojt-structure-change.json +14 -0
- package/command-model/onboarding-template.json +4 -4
- package/command-model/organization-announcement-category.json +2 -2
- package/command-model/policy.json +2 -2
- package/command-model/position.json +2 -2
- package/command-model/private-agent-loop.json +2 -2
- package/command-model/private-task.json +2 -2
- package/command-model/process.json +2 -2
- package/command-model/project-auto-assign-settings.json +7 -0
- package/command-model/project-cost.json +2 -2
- package/command-model/project-custom-field.json +2 -2
- package/command-model/project-overview.json +8 -0
- package/command-model/project-process.json +2 -2
- package/command-model/project-revenue.json +2 -2
- package/command-model/project-task-comment.json +1 -1
- package/command-model/project-task-group.json +1 -1
- package/command-model/project-task-milestone.json +2 -2
- package/command-model/project-task-rule.json +2 -2
- package/command-model/project-task-template.json +2 -2
- package/command-model/project-task-version.json +2 -2
- package/command-model/project-task.json +3 -3
- package/command-model/project-team-chat.json +1 -1
- package/command-model/project-template.json +3 -3
- package/command-model/project.json +3 -3
- package/command-model/prospect.json +2 -2
- package/command-model/public-pricing.json +6 -0
- package/command-model/purchase.json +2 -2
- package/command-model/qualification.json +1 -1
- package/command-model/quality-check-item.json +2 -2
- package/command-model/rating-criteria.json +1 -1
- package/command-model/recreation-club.json +2 -2
- package/command-model/report-format-order.json +1 -1
- package/command-model/report-saved-tab.json +2 -2
- package/command-model/report.json +5 -5
- package/command-model/role-template.json +2 -2
- package/command-model/saved-tab.json +2 -2
- package/command-model/segment.json +2 -2
- package/command-model/skill-category.json +2 -2
- package/command-model/skill.json +2 -2
- package/command-model/sns-draft.json +6 -0
- package/command-model/sns-media.json +8 -0
- package/command-model/sns-post.json +14 -0
- package/command-model/staffing-board-tentative-assignment.json +1 -1
- package/command-model/statutory-rate-set.json +1 -1
- package/command-model/survey.json +4 -4
- package/command-model/teams-sso.json +6 -0
- package/command-model/tenant-egress-policy.json +2 -2
- package/command-model/tenant-settings.json +2 -2
- package/command-model/test-scenario.json +2 -2
- package/command-model/unified-search.json +1 -1
- package/command-model/update-record.json +1 -1
- package/command-model/user-api-key.json +2 -2
- package/command-model/user-contract-type.json +2 -2
- package/command-model/user-invitation.json +2 -2
- package/command-model/user-management.json +3 -3
- package/command-model/user.json +1 -1
- package/command-model/video-generation.json +3 -3
- package/command-model/whisper.json +1 -1
- package/command-model/wiki-template.json +2 -2
- package/command-model/wiki.json +2 -2
- package/command-model/worker-agent.json +2 -2
- package/command-model/workflow-instance.json +3 -3
- package/command-model/workflow.json +2 -2
- package/dist/THIRD-PARTY-NOTICES.md +1 -1
- package/dist/{api-command-STY4LFJG.js → api-command-JDZTCUKN.js} +1 -1
- package/dist/{app-WICUAA5V.js → app-XWGXP57Z.js} +2 -2
- package/dist/{chunk-QKTEMDDP.js → chunk-3PN4LMBO.js} +36 -8
- package/dist/{chunk-BEUPNDJE.js → chunk-QH34G7BK.js} +3 -3
- package/dist/{chunk-J6A575H2.js → chunk-QQFCSSFF.js} +12 -11
- package/dist/{chunk-T6ARS4Y3.js → chunk-X2PIYCOO.js} +1 -1
- package/dist/cli.js +10 -6
- package/dist/{commands-BUGGH4TY.js → commands-AJQKYINQ.js} +2 -2
- package/dist/{media-GXTZJ5L4.js → media-45BXJUZE.js} +1 -1
- package/dist/{plan-submit-4LAFJQP4.js → plan-submit-Y3KO33P7.js} +1 -1
- package/dist/project-WJKYY4K2.js +4 -0
- package/dist/{registry-E4TNSUNA.js → registry-OHYKSJ2B.js} +1 -1
- package/dist/{run-7Q3XLJFT.js → run-Q54CFQ3H.js} +1 -1
- package/dist/{user-ECG5E32W.js → user-WACZPXIQ.js} +5 -4
- package/package.json +1 -1
- package/dist/project-2MWLBXAB.js +0 -4
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"domain": "wiki-template",
|
|
3
3
|
"operations": [
|
|
4
|
-
{"name":"create","domain":"wiki-template","operationId":"wikiTemplate.store","method":"POST","path":"/v2/wiki-templates","summary":"","pathParams":[],"queryParams":[],"body":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"title":{"type":"string","maxLength":255},"content":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string","maxLength":50},"maxItems":10}},"required":["project_id","title"]}},"resultPath":null,"risk":"write","aliases":[]},
|
|
4
|
+
{"name":"create","domain":"wiki-template","operationId":"wikiTemplate.store","method":"POST","path":"/v2/wiki-templates","summary":"","pathParams":[],"queryParams":[],"body":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"title":{"type":"string","maxLength":255},"description":{"type":["string","null"],"maxLength":1000},"content":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string","maxLength":50},"maxItems":10}},"required":["project_id","title"]}},"resultPath":null,"risk":"write","aliases":[]},
|
|
5
5
|
{"name":"delete","domain":"wiki-template","operationId":"wikiTemplate.destroy","method":"DELETE","path":"/v2/wiki-templates/{id}","summary":"","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":null,"resultPath":null,"risk":"destructive","aliases":[]},
|
|
6
6
|
{"name":"get","domain":"wiki-template","operationId":"wikiTemplate.show","method":"GET","path":"/v2/wiki-templates/{id}","summary":"","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"}],"body":null,"resultPath":null,"risk":"read","aliases":[]},
|
|
7
7
|
{"name":"list","domain":"wiki-template","operationId":"wikiTemplate.index","method":"GET","path":"/v2/wiki-templates","summary":"","pathParams":[],"queryParams":[{"name":"keyword","type":"string","required":false,"source":"spec"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"},{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"}],"body":null,"resultPath":null,"risk":"read","aliases":[]},
|
|
8
|
-
{"name":"update","domain":"wiki-template","operationId":"wikiTemplate.update","method":"PUT","path":"/v2/wiki-templates/{id}","summary":"","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":255},"content":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string","maxLength":50},"maxItems":10}}}},"resultPath":null,"risk":"write","aliases":[]}
|
|
8
|
+
{"name":"update","domain":"wiki-template","operationId":"wikiTemplate.update","method":"PUT","path":"/v2/wiki-templates/{id}","summary":"","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":255},"description":{"type":["string","null"],"maxLength":1000},"content":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string","maxLength":50},"maxItems":10}}}},"resultPath":null,"risk":"write","aliases":[]}
|
|
9
9
|
]
|
|
10
10
|
}
|
package/command-model/wiki.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"operations": [
|
|
4
4
|
{"name":"append","domain":"wiki","operationId":"wiki.append","method":"POST","path":"/v2/wiki/{id}/append","summary":"本文の末尾へ追記する。全文を送り直さずに1行足せるようにする","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"content":{"type":"string"},"expected_version":{"type":"integer","minimum":1}},"required":["content"],"title":"AppendWikiPageContentRequest"}},"resultPath":null,"risk":"write","aliases":[]},
|
|
5
5
|
{"name":"backlinks","domain":"wiki","operationId":"wiki.backlinks","method":"GET","path":"/v2/wiki/{id}/backlinks","summary":"Get pages that link to this page","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"}],"body":null,"resultPath":"backlinks","risk":"read","aliases":[]},
|
|
6
|
-
{"name":"create","domain":"wiki","operationId":"wiki.store","method":"POST","path":"/v2/wiki","summary":"Create a wiki page","pathParams":[],"queryParams":[],"body":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"title":{"type":"string","maxLength":255},"content":{"type":"string"},"content_format":{"type":"string","enum":["html","markdown"]},"status":{"type":"string","enum":["draft","published"]},"parent_page_id":{"type":["string","null"]},"slug":{"type":["string","null"],"maxLength":255},"sort_order":{"type":"integer","minimum":0},"tags":{"type":"array","items":{"type":"string","maxLength":50}}},"required":["project_id","title","content"]}},"resultPath":null,"risk":"write","aliases":[]},
|
|
6
|
+
{"name":"create","domain":"wiki","operationId":"wiki.store","method":"POST","path":"/v2/wiki","summary":"Create a wiki page","pathParams":[],"queryParams":[],"body":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"title":{"type":"string","maxLength":255},"content":{"type":"string"},"content_format":{"type":"string","enum":["html","markdown"]},"status":{"type":"string","enum":["draft","published"]},"parent_page_id":{"type":["string","null"]},"slug":{"type":["string","null"],"maxLength":255},"sort_order":{"type":"integer","minimum":0},"tags":{"type":"array","items":{"type":"string","maxLength":50}},"verified_at":{"type":["string","null"],"format":"date"},"evidence_task_keys":{"type":["array","null"],"items":{"type":"string","maxLength":50}},"knowledge_kind":{"type":["string","null"],"maxLength":50}},"required":["project_id","title","content"]}},"resultPath":null,"risk":"write","aliases":[]},
|
|
7
7
|
{"name":"delete","domain":"wiki","operationId":"wiki.destroy","method":"DELETE","path":"/v2/wiki/{id}","summary":"Delete a wiki page","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":null,"resultPath":null,"risk":"destructive","aliases":[]},
|
|
8
8
|
{"name":"get","domain":"wiki","operationId":"wiki.show","method":"GET","path":"/v2/wiki/{id}","summary":"Get a wiki page","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"}],"body":null,"resultPath":null,"risk":"read","aliases":[]},
|
|
9
9
|
{"name":"list","domain":"wiki","operationId":"wiki.index","method":"GET","path":"/v2/wiki","summary":"List wiki pages for a project (paginated)","pathParams":[],"queryParams":[{"name":"stale_days","type":"integer","required":false,"source":"spec"},{"name":"status","type":"string","required":false,"description":"ページの状態で絞り込む","source":"spec"},{"name":"tag","type":"string","required":false,"description":"タグで絞り込む","source":"spec"},{"name":"keyword","type":"string","required":false,"description":"キーワードで絞り込む","source":"spec"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"},{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"project_id","type":"string","required":true,"description":"対象プロジェクトのID","source":"curation"}],"body":null,"resultPath":"items","risk":"read","aliases":[]},
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
{"name":"show-version","domain":"wiki","operationId":"wiki.showVersion","method":"GET","path":"/v2/wiki/{id}/versions/{version}","summary":"Get a specific version of a wiki page","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"},{"name":"version","type":"integer","required":true,"source":"spec"}],"queryParams":[{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"}],"body":null,"resultPath":null,"risk":"read","aliases":[]},
|
|
12
12
|
{"name":"tags","domain":"wiki","operationId":"wiki.tags","method":"GET","path":"/v2/wiki/tags","summary":"List tags for a project's wiki","pathParams":[],"queryParams":[{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"},{"name":"project_id","type":"string","required":true,"description":"対象プロジェクトのID","source":"curation"}],"body":null,"resultPath":"tags","risk":"read","aliases":[]},
|
|
13
13
|
{"name":"tree","domain":"wiki","operationId":"wiki.tree","method":"GET","path":"/v2/wiki/tree","summary":"Get wiki page tree for a project","pathParams":[],"queryParams":[{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"},{"name":"project_id","type":"string","required":true,"description":"対象プロジェクトのID","source":"curation"}],"body":null,"resultPath":"tree","risk":"read","aliases":[]},
|
|
14
|
-
{"name":"update","domain":"wiki","operationId":"wiki.update","method":"PUT","path":"/v2/wiki/{id}","summary":"Update a wiki page","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":255},"content":{"type":"string"},"content_format":{"type":"string","enum":["html","markdown"]},"status":{"type":"string","enum":["draft","published"]},"parent_page_id":{"type":["string","null"]},"slug":{"type":["string","null"],"maxLength":255},"sort_order":{"type":"integer","minimum":0},"tags":{"type":"array","items":{"type":"string","maxLength":50}}}}},"resultPath":null,"risk":"write","aliases":[]},
|
|
14
|
+
{"name":"update","domain":"wiki","operationId":"wiki.update","method":"PUT","path":"/v2/wiki/{id}","summary":"Update a wiki page","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":255},"content":{"type":"string"},"content_format":{"type":"string","enum":["html","markdown"]},"status":{"type":"string","enum":["draft","published"]},"parent_page_id":{"type":["string","null"]},"slug":{"type":["string","null"],"maxLength":255},"sort_order":{"type":"integer","minimum":0},"tags":{"type":"array","items":{"type":"string","maxLength":50}},"expected_version":{"type":"integer","minimum":1},"verified_at":{"type":["string","null"],"format":"date"},"evidence_task_keys":{"type":["array","null"],"items":{"type":"string","maxLength":50}},"knowledge_kind":{"type":["string","null"],"maxLength":50}}}},"resultPath":null,"risk":"write","aliases":[]},
|
|
15
15
|
{"name":"update-section","domain":"wiki","operationId":"wiki.updateSection","method":"PUT","path":"/v2/wiki/{id}/section","summary":"見出し heading の節の本文だけを差し替える。見出し行は残す","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"heading":{"type":"string","maxLength":255},"content":{"type":["string","null"]},"expected_version":{"type":"integer","minimum":1}},"required":["heading","content"],"title":"UpdateWikiPageSectionRequest"}},"resultPath":null,"risk":"write","aliases":[]},
|
|
16
16
|
{"name":"versions","domain":"wiki","operationId":"wiki.versions","method":"GET","path":"/v2/wiki/{id}/versions","summary":"List version history for a wiki page","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"}],"body":null,"resultPath":"versions","risk":"read","aliases":[]}
|
|
17
17
|
]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"domain": "worker-agent",
|
|
3
3
|
"operations": [
|
|
4
|
-
{"name":"create","domain":"worker-agent","operationId":"workerAgent.store","method":"POST","path":"/v2/worker-agents","summary":"作成","pathParams":[],"queryParams":[],"body":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"instruction":{"type":"string","maxLength":20000},"allowed_tools":{"type":"array","items":{"type":"string","maxLength":100},"
|
|
4
|
+
{"name":"create","domain":"worker-agent","operationId":"workerAgent.store","method":"POST","path":"/v2/worker-agents","summary":"作成","pathParams":[],"queryParams":[],"body":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"description":{"type":["string","null"],"maxLength":1000},"instruction":{"type":"string","maxLength":20000},"allowed_tools":{"type":"array","items":{"type":"string","maxLength":100},"maxItems":64},"write_enabled":{"type":["boolean","null"]},"ai_provider":{"type":["string","null"],"enum":["anthropic",null]},"ai_model":{"type":["string","null"],"maxLength":100},"is_enabled":{"type":["boolean","null"]},"allowed_tool_categories":{"type":"array","items":{"type":"string","enum":["attendance","backlog","ms365","note","notification","organization","private_task","task"]},"uniqueItems":true},"schedule":{"type":"object","properties":{"type":{"type":"string","enum":["interval","daily","weekly","monthly"]},"interval_minutes":{"type":["integer","null"],"minimum":15,"maximum":1440},"time_of_day":{"type":["string","null"]},"days_of_week":{"type":["array","null"],"items":{"type":"integer","minimum":1,"maximum":7}},"days_of_month":{"type":["array","null"],"items":{"type":"integer","minimum":1,"maximum":31}},"last_day_of_month":{"type":["boolean","null"]},"timezone":{"type":["string","null"],"enum":["Asia/Tokyo",null]}},"required":["type"]}},"required":["name","instruction","schedule"],"title":"StoreWorkerAgentRequest"}},"resultPath":null,"risk":"write","aliases":[]},
|
|
5
5
|
{"name":"delete","domain":"worker-agent","operationId":"workerAgent.destroy","method":"DELETE","path":"/v2/worker-agents/{agentId}","summary":"削除(★オーナーのみ)","pathParams":[{"name":"agentId","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":null,"resultPath":"","risk":"destructive","aliases":[]},
|
|
6
6
|
{"name":"disable","domain":"worker-agent","operationId":"workerAgent.disable","method":"POST","path":"/v2/worker-agents/{agentId}/disable","summary":"無効化(オーナー または `agent` admin)","pathParams":[{"name":"agentId","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":null,"resultPath":"","risk":"write","aliases":[]},
|
|
7
7
|
{"name":"enable","domain":"worker-agent","operationId":"workerAgent.enable","method":"POST","path":"/v2/worker-agents/{agentId}/enable","summary":"有効化(★オーナーのみ)","pathParams":[{"name":"agentId","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":null,"resultPath":null,"risk":"write","aliases":[]},
|
|
@@ -10,6 +10,6 @@
|
|
|
10
10
|
{"name":"list","domain":"worker-agent","operationId":"workerAgent.index","method":"GET","path":"/v2/worker-agents","summary":"一覧","pathParams":[],"queryParams":[{"name":"owner_user_id","type":"string","required":false,"source":"spec"},{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"}],"body":null,"resultPath":"","risk":"read","aliases":[]},
|
|
11
11
|
{"name":"show-tool","domain":"worker-agent","operationId":"workerAgent.showTool","method":"GET","path":"/v2/worker-agents/tools/{name}","summary":"ツール詳細(入力スキーマ含む)","pathParams":[{"name":"name","type":"string","required":true,"source":"spec"}],"queryParams":[{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"}],"body":null,"resultPath":"","risk":"read","aliases":[]},
|
|
12
12
|
{"name":"tools","domain":"worker-agent","operationId":"workerAgent.tools","method":"GET","path":"/v2/worker-agents/tools","summary":"ツールカタログ","pathParams":[],"queryParams":[{"name":"category","type":"string","required":false,"source":"spec"},{"name":"keyword","type":"string","required":false,"source":"spec"},{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"}],"body":null,"resultPath":"","risk":"read","aliases":[]},
|
|
13
|
-
{"name":"update","domain":"worker-agent","operationId":"workerAgent.update","method":"PATCH","path":"/v2/worker-agents/{agentId}","summary":"更新(★オーナーのみ)","pathParams":[{"name":"agentId","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"instruction":{"type":"string","maxLength":20000},"allowed_tools":{"type":"array","items":{"type":"string","maxLength":100},"
|
|
13
|
+
{"name":"update","domain":"worker-agent","operationId":"workerAgent.update","method":"PATCH","path":"/v2/worker-agents/{agentId}","summary":"更新(★オーナーのみ)","pathParams":[{"name":"agentId","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"description":{"type":["string","null"],"maxLength":1000},"instruction":{"type":"string","maxLength":20000},"allowed_tools":{"type":"array","items":{"type":"string","maxLength":100},"maxItems":64},"write_enabled":{"type":"boolean"},"ai_provider":{"type":["string","null"],"enum":["anthropic",null]},"ai_model":{"type":["string","null"],"maxLength":100},"allowed_tool_categories":{"type":"array","items":{"type":"string","enum":["attendance","backlog","ms365","note","notification","organization","private_task","task"]},"uniqueItems":true},"schedule":{"type":"object","properties":{"type":{"type":"string","enum":["interval","daily","weekly","monthly"]},"interval_minutes":{"type":["integer","null"],"minimum":15,"maximum":1440},"time_of_day":{"type":["string","null"]},"days_of_week":{"type":["array","null"],"items":{"type":"integer","minimum":1,"maximum":7}},"days_of_month":{"type":["array","null"],"items":{"type":"integer","minimum":1,"maximum":31}},"last_day_of_month":{"type":["boolean","null"]},"timezone":{"type":["string","null"],"enum":["Asia/Tokyo",null]}}}},"title":"UpdateWorkerAgentRequest"}},"resultPath":null,"risk":"write","aliases":[]}
|
|
14
14
|
]
|
|
15
15
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"domain": "workflow-instance",
|
|
3
3
|
"operations": [
|
|
4
|
-
{"name":"apply","domain":"workflow-instance","operationId":"workflowInstance.apply","method":"POST","path":"/v2/workflows/instances/{id}/apply","summary":"申請を実行","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":255},"form_data":{"type":"array","items":{"type":"string"}},"comment":{"type":["string","null"],"maxLength":2000},"extra_approvers":{"type":["array","null"],"items":{"type":"object","properties":{"user_id":{"type":"string"},"anchor_step_no":{"type":"integer","minimum":1},"placement":{"type":"string","enum":["before","after"]}},"required":["user_id","anchor_step_no","placement"]}}}}},"resultPath":"","risk":"write","aliases":[]},
|
|
4
|
+
{"name":"apply","domain":"workflow-instance","operationId":"workflowInstance.apply","method":"POST","path":"/v2/workflows/instances/{id}/apply","summary":"申請を実行","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":255},"description":{"type":["string","null"],"maxLength":2000},"form_data":{"type":"array","items":{"type":"string"}},"comment":{"type":["string","null"],"maxLength":2000},"extra_approvers":{"type":["array","null"],"items":{"type":"object","properties":{"user_id":{"type":"string"},"anchor_step_no":{"type":"integer","minimum":1},"placement":{"type":"string","enum":["before","after"]}},"required":["user_id","anchor_step_no","placement"]}}}}},"resultPath":"","risk":"write","aliases":[]},
|
|
5
5
|
{"name":"comment","domain":"workflow-instance","operationId":"workflowInstance.comment","method":"POST","path":"/v2/workflows/instances/{id}/comments","summary":"承認・差し戻し等の操作をせずに、申請へコメントだけを残す","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"comment":{"type":"string","maxLength":2000},"mentioned_user_ids":{"type":"array","items":{"type":["string","null"],"maxLength":200},"maxItems":50},"attachment_ids":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":10}},"required":["comment"],"title":"StoreWorkflowInstanceCommentRequest"}},"resultPath":null,"risk":"write","aliases":[]},
|
|
6
|
-
{"name":"create","domain":"workflow-instance","operationId":"workflowInstance.store","method":"POST","path":"/v2/workflows/instances","summary":"申請を作成(下書き)","pathParams":[],"queryParams":[],"body":{"schema":{"type":"object","properties":{"workflow_id":{"type":"string"},"title":{"type":"string","maxLength":255},"form_data":{"type":"array","items":{"type":"string"}}},"required":["workflow_id"]}},"resultPath":"","risk":"write","aliases":[]},
|
|
6
|
+
{"name":"create","domain":"workflow-instance","operationId":"workflowInstance.store","method":"POST","path":"/v2/workflows/instances","summary":"申請を作成(下書き)","pathParams":[],"queryParams":[],"body":{"schema":{"type":"object","properties":{"workflow_id":{"type":"string"},"title":{"type":"string","maxLength":255},"description":{"type":["string","null"],"maxLength":2000},"form_data":{"type":"array","items":{"type":"string"}}},"required":["workflow_id"]}},"resultPath":"","risk":"write","aliases":[]},
|
|
7
7
|
{"name":"delete","domain":"workflow-instance","operationId":"workflowInstance.destroy","method":"DELETE","path":"/v2/workflows/instances/{id}","summary":"申請を削除(下書きまたは差し戻し状態)","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":null,"resultPath":"","risk":"destructive","aliases":[]},
|
|
8
8
|
{"name":"get","domain":"workflow-instance","operationId":"workflowInstance.show","method":"GET","path":"/v2/workflows/instances/{id}","summary":"申請詳細を取得","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"}],"body":null,"resultPath":null,"risk":"read","aliases":[]},
|
|
9
9
|
{"name":"history","domain":"workflow-instance","operationId":"workflowInstance.history","method":"GET","path":"/v2/workflows/history","summary":"承認履歴一覧を取得(ページネーション対応)","pathParams":[],"queryParams":[{"name":"workflow_id","type":["string","null"],"required":false,"description":"ワークフロー(申請の種類)IDで絞り込む","source":"spec"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"},{"name":"status","type":"string","required":false,"description":"申請の状態で絞り込む","source":"spec"},{"name":"keyword","type":"string","required":false,"description":"キーワードで絞り込む","source":"spec"},{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"}],"body":null,"resultPath":"items","risk":"read","aliases":[]},
|
|
10
10
|
{"name":"list","domain":"workflow-instance","operationId":"workflowInstance.index","method":"GET","path":"/v2/workflows/instances","summary":"自分の申請一覧を取得(ページネーション対応)","pathParams":[],"queryParams":[{"name":"workflow_id","type":["string","null"],"required":false,"description":"ワークフロー(申請の種類)IDで絞り込む","source":"spec"},{"name":"workflow_ids","type":["string","null"],"required":false,"source":"spec"},{"name":"status","type":"string","required":false,"description":"申請の状態で絞り込む","source":"spec"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"},{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"}],"body":null,"resultPath":"items","risk":"read","aliases":[]},
|
|
11
|
-
{"name":"update","domain":"workflow-instance","operationId":"workflowInstance.update","method":"PUT","path":"/v2/workflows/instances/{id}","summary":"申請を更新(下書き状態のみ)","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":255},"form_data":{"type":"array","items":{"type":"string"}}}}},"resultPath":"","risk":"write","aliases":[]}
|
|
11
|
+
{"name":"update","domain":"workflow-instance","operationId":"workflowInstance.update","method":"PUT","path":"/v2/workflows/instances/{id}","summary":"申請を更新(下書き状態のみ)","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":255},"description":{"type":["string","null"],"maxLength":2000},"form_data":{"type":"array","items":{"type":"string"}}}}},"resultPath":"","risk":"write","aliases":[]}
|
|
12
12
|
]
|
|
13
13
|
}
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
{"name":"applicable-list","domain":"workflow","operationId":"workflow.applicableList","method":"GET","path":"/v2/workflows/applicable","summary":"申請可能なワークフロー一覧を取得","pathParams":[],"queryParams":[{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"}],"body":null,"resultPath":"list","risk":"read","aliases":[]},
|
|
6
6
|
{"name":"applicant-profile","domain":"workflow","operationId":"workflow.applicantProfile","method":"GET","path":"/v2/workflows/applicant-profile","summary":"申請者本人の自動入力値を取得する","pathParams":[],"queryParams":[{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"}],"body":null,"resultPath":"","risk":"read","aliases":[]},
|
|
7
7
|
{"name":"approver-preview","domain":"workflow","operationId":"workflow.approverPreview","method":"POST","path":"/v2/workflows/approver-preview","summary":"承認者条件のプレビュー: 現時点で該当する承認者を解決して返す","pathParams":[],"queryParams":[],"body":{"schema":{"type":"object","properties":{"approver_condition_set":{"type":"object","properties":{"condition_groups":{"type":"array","items":{"type":"string"}}}}},"required":["approver_condition_set"]}},"resultPath":"","risk":"write","aliases":[]},
|
|
8
|
-
{"name":"create","domain":"workflow","operationId":"workflow.store","method":"POST","path":"/v2/workflows","summary":"ワークフロー定義を作成","pathParams":[],"queryParams":[],"body":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"approver_description":{"type":["string","null"],"maxLength":2000},"default_title":{"type":["string","null"],"maxLength":255},"status":{"type":"string","enum":["active","inactive","draft"]},"defined_category":{"type":["string","null"],"maxLength":100},"form_definition":{"type":"array","items":{"type":"string"}},"target_condition_set":{"type":"array","items":{"type":"string"}},"valid_from":{"type":["string","null"],"format":"date"},"valid_to":{"type":["string","null"],"format":"date"},"sort":{"type":"integer","minimum":0},"is_hidden":{"type":"boolean"},"auto_skip_same_approver":{"type":"boolean"},"require_pre_submit_ai_review":{"type":"boolean"},"allow_extra_approvers":{"type":"boolean"},"view_permission_condition_set":{"type":"array","items":{"type":"string"}},"equipment_category_ids":{"type":"array","items":{"type":"string","maxLength":36}},"steps":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"approver_condition_set":{"type":"array","items":{"type":"string"},"minItems":1},"notification_usergroup_ids":{"type":"array","items":{"type":"string"}},"is_final_step":{"type":"boolean"},"fallback_approver_user_id":{"type":["string","null"],"maxLength":255},"reminder_days":{"type":["integer","null"],"minimum":1,"maximum":365},"escalation_days":{"type":["integer","null"],"minimum":1,"maximum":365},"prohibit_same_approver":{"type":"boolean"},"apply_condition":{"type":["object","null"],"properties":{"metric":{"type":"string","maxLength":100},"operator":{"type":"string","enum":["gte","lt"]},"value":{"type":"integer","minimum":0}}}},"required":["name","approver_condition_set"]}}},"required":["name"]}},"resultPath":"","risk":"write","aliases":[]},
|
|
8
|
+
{"name":"create","domain":"workflow","operationId":"workflow.store","method":"POST","path":"/v2/workflows","summary":"ワークフロー定義を作成","pathParams":[],"queryParams":[],"body":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":["string","null"],"maxLength":2000},"approver_description":{"type":["string","null"],"maxLength":2000},"default_title":{"type":["string","null"],"maxLength":255},"status":{"type":"string","enum":["active","inactive","draft"]},"defined_category":{"type":["string","null"],"maxLength":100},"form_definition":{"type":"array","items":{"type":"string"}},"target_condition_set":{"type":"array","items":{"type":"string"}},"valid_from":{"type":["string","null"],"format":"date"},"valid_to":{"type":["string","null"],"format":"date"},"sort":{"type":"integer","minimum":0},"is_hidden":{"type":"boolean"},"auto_skip_same_approver":{"type":"boolean"},"require_pre_submit_ai_review":{"type":"boolean"},"allow_extra_approvers":{"type":"boolean"},"view_permission_condition_set":{"type":"array","items":{"type":"string"}},"equipment_category_ids":{"type":"array","items":{"type":"string","maxLength":36}},"steps":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":["string","null"],"maxLength":1000},"approver_condition_set":{"type":"array","items":{"type":"string"},"minItems":1},"notification_usergroup_ids":{"type":"array","items":{"type":"string"}},"is_final_step":{"type":"boolean"},"fallback_approver_user_id":{"type":["string","null"],"maxLength":255},"reminder_days":{"type":["integer","null"],"minimum":1,"maximum":365},"escalation_days":{"type":["integer","null"],"minimum":1,"maximum":365},"prohibit_same_approver":{"type":"boolean"},"apply_condition":{"type":["object","null"],"properties":{"metric":{"type":"string","maxLength":100},"operator":{"type":"string","enum":["gte","lt"]},"value":{"type":"integer","minimum":0}}}},"required":["name","approver_condition_set"]}}},"required":["name"]}},"resultPath":"","risk":"write","aliases":[]},
|
|
9
9
|
{"name":"delete","domain":"workflow","operationId":"workflow.destroy","method":"DELETE","path":"/v2/workflows/{id}","summary":"ワークフロー定義を削除","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":null,"resultPath":"","risk":"destructive","aliases":[]},
|
|
10
10
|
{"name":"get","domain":"workflow","operationId":"workflow.show","method":"GET","path":"/v2/workflows/{id}","summary":"ワークフロー定義詳細を取得","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"}],"body":null,"resultPath":"","risk":"read","aliases":[]},
|
|
11
11
|
{"name":"list","domain":"workflow","operationId":"workflow.index","method":"GET","path":"/v2/workflows","summary":"ワークフロー定義一覧を取得","pathParams":[],"queryParams":[{"name":"status","type":"string","required":false,"source":"spec"},{"name":"category","type":"string","required":false,"source":"spec"},{"name":"limit","type":"integer","required":false,"description":"1ページあたりの件数","source":"curation"},{"name":"cursor","type":"string","required":false,"description":"次ページの取得に使うカーソル","source":"curation"}],"body":null,"resultPath":"list","risk":"read","aliases":[]},
|
|
12
12
|
{"name":"recalculate-candidates","domain":"workflow","operationId":"workflow.recalculateCandidates","method":"POST","path":"/v2/workflows/{id}/recalculate-candidates","summary":"承認候補者を再計算する","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":null,"resultPath":"","risk":"write","aliases":[]},
|
|
13
|
-
{"name":"update","domain":"workflow","operationId":"workflow.update","method":"PUT","path":"/v2/workflows/{id}","summary":"ワークフロー定義を更新","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"approver_description":{"type":["string","null"],"maxLength":2000},"default_title":{"type":["string","null"],"maxLength":255},"status":{"type":"string","enum":["active","inactive","draft"]},"defined_category":{"type":["string","null"],"maxLength":100},"form_definition":{"type":"array","items":{"type":"string"}},"target_condition_set":{"type":"array","items":{"type":"string"}},"valid_from":{"type":["string","null"],"format":"date"},"valid_to":{"type":["string","null"],"format":"date"},"sort":{"type":"integer","minimum":0},"is_hidden":{"type":"boolean"},"auto_skip_same_approver":{"type":"boolean"},"require_pre_submit_ai_review":{"type":"boolean"},"allow_extra_approvers":{"type":"boolean"},"view_permission_condition_set":{"type":"array","items":{"type":"string"}},"equipment_category_ids":{"type":"array","items":{"type":"string","maxLength":36}},"steps":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"approver_condition_set":{"type":"array","items":{"type":"string"},"minItems":1},"notification_usergroup_ids":{"type":"array","items":{"type":"string"}},"is_final_step":{"type":"boolean"},"fallback_approver_user_id":{"type":["string","null"],"maxLength":255},"reminder_days":{"type":["integer","null"],"minimum":1,"maximum":365},"escalation_days":{"type":["integer","null"],"minimum":1,"maximum":365},"prohibit_same_approver":{"type":"boolean"},"apply_condition":{"type":["object","null"],"properties":{"metric":{"type":"string","maxLength":100},"operator":{"type":"string","enum":["gte","lt"]},"value":{"type":"integer","minimum":0}}}},"required":["name","approver_condition_set"]}}}}},"resultPath":"","risk":"write","aliases":[]}
|
|
13
|
+
{"name":"update","domain":"workflow","operationId":"workflow.update","method":"PUT","path":"/v2/workflows/{id}","summary":"ワークフロー定義を更新","pathParams":[{"name":"id","type":"string","required":true,"source":"spec"}],"queryParams":[],"body":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":["string","null"],"maxLength":2000},"approver_description":{"type":["string","null"],"maxLength":2000},"default_title":{"type":["string","null"],"maxLength":255},"status":{"type":"string","enum":["active","inactive","draft"]},"defined_category":{"type":["string","null"],"maxLength":100},"form_definition":{"type":"array","items":{"type":"string"}},"target_condition_set":{"type":"array","items":{"type":"string"}},"valid_from":{"type":["string","null"],"format":"date"},"valid_to":{"type":["string","null"],"format":"date"},"sort":{"type":"integer","minimum":0},"is_hidden":{"type":"boolean"},"auto_skip_same_approver":{"type":"boolean"},"require_pre_submit_ai_review":{"type":"boolean"},"allow_extra_approvers":{"type":"boolean"},"view_permission_condition_set":{"type":"array","items":{"type":"string"}},"equipment_category_ids":{"type":"array","items":{"type":"string","maxLength":36}},"steps":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":["string","null"],"maxLength":1000},"approver_condition_set":{"type":"array","items":{"type":"string"},"minItems":1},"notification_usergroup_ids":{"type":"array","items":{"type":"string"}},"is_final_step":{"type":"boolean"},"fallback_approver_user_id":{"type":["string","null"],"maxLength":255},"reminder_days":{"type":["integer","null"],"minimum":1,"maximum":365},"escalation_days":{"type":["integer","null"],"minimum":1,"maximum":365},"prohibit_same_approver":{"type":"boolean"},"apply_condition":{"type":["object","null"],"properties":{"metric":{"type":"string","maxLength":100},"operator":{"type":"string","enum":["gte","lt"]},"value":{"type":"integer","minimum":0}}}},"required":["name","approver_condition_set"]}}}}},"resultPath":"","risk":"write","aliases":[]}
|
|
14
14
|
]
|
|
15
15
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelRoutes,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{exitCodeFor,fetchAllPages,reportError}from"./chunk-
|
|
3
|
+
import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelRoutes,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{exitCodeFor,fetchAllPages,reportError}from"./chunk-X2PIYCOO.js";import"./chunk-QH34G7BK.js";import"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderOutput}from"./chunk-U6REFY7T.js";import{describeWaitResult,parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";
|
|
4
4
|
import{readBody}from"./chunk-HEH3PUW2.js";import{ALLOW_REDACTED_FLAG,NO_REDACT_FLAG,NO_REDACT_NOTICE}from"./chunk-W4NLJ2YK.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-BD7O73GK.js";import{parseOperationArgs,repeatedValues}from"./chunk-VGT2EGH6.js";import"./chunk-4DOPQ74T.js";import"./chunk-HVZUXLQ4.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-II5RVJQN.js";
|
|
5
5
|
import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,envelopePaging,isPageNumberEnvelope,pageRangeNotes,positiveInteger,readEnvelopeCursor,readPageNumberCursor,shellQuote}from"./chunk-MI6HVYR2.js";import"./chunk-3ZRMMBP5.js";import{ApiResponseError,EXIT_OK,EXIT_WAIT_TIMEOUT,NetworkError,UsageError}from"./chunk-VFPY2A23.js";import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{
|
|
6
6
|
httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,resolveConfiguredOutput,resolveProfile}from"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import{HELP_TOKEN}from"./chunk-6FI4ZMZ7.js";import"./chunk-OKATZ4SN.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var MIN_SEGMENT_CHARS=3;var parsedCache=new WeakMap;function splitSegments(path){return path.split("/").filter(segment=>segment!=="")}function parseRoutes(routes){const cached=parsedCache.get(routes);if(cached!==void 0)return cached;const parsed=[];for(const[key,domain]of Object.entries(routes.routes)){const space=key.indexOf(" ");if(space<=0)continue;const template=key.slice(space+1);parsed.push({method:key.slice(0,space),template,domain,segments:splitSegments(template).map(segment=>/^\{[^/{}]+\}$/.
|
|
@@ -30,7 +30,7 @@ startTransition;exports.unstable_useCacheRefresh=function(){return ReactSharedIn
|
|
|
30
30
|
Context)};exports.useDebugValue=function(){};exports.useDeferredValue=function(value,initialValue){return ReactSharedInternals.H.useDeferredValue(value,initialValue)};exports.useEffect=function(create3,deps){return ReactSharedInternals.H.useEffect(create3,deps)};exports.useEffectEvent=function(callback){return ReactSharedInternals.H.useEffectEvent(callback)};exports.useId=function(){return ReactSharedInternals.H.useId()};exports.useImperativeHandle=function(ref,create3,deps){return ReactSharedInternals.
|
|
31
31
|
H.useImperativeHandle(ref,create3,deps)};exports.useInsertionEffect=function(create3,deps){return ReactSharedInternals.H.useInsertionEffect(create3,deps)};exports.useLayoutEffect=function(create3,deps){return ReactSharedInternals.H.useLayoutEffect(create3,deps)};exports.useMemo=function(create3,deps){return ReactSharedInternals.H.useMemo(create3,deps)};exports.useOptimistic=function(passthrough,reducer){return ReactSharedInternals.H.useOptimistic(passthrough,reducer)};exports.useReducer=function(reducer,initialArg,init){
|
|
32
32
|
return ReactSharedInternals.H.useReducer(reducer,initialArg,init)};exports.useRef=function(initialValue){return ReactSharedInternals.H.useRef(initialValue)};exports.useState=function(initialState){return ReactSharedInternals.H.useState(initialState)};exports.useSyncExternalStore=function(subscribe,getSnapshot,getServerSnapshot){return ReactSharedInternals.H.useSyncExternalStore(subscribe,getSnapshot,getServerSnapshot)};exports.useTransition=function(){return ReactSharedInternals.H.useTransition()};
|
|
33
|
-
exports.version="19.3.
|
|
33
|
+
exports.version="19.3.1"}});var require_react=__commonJS({"node_modules/react/index.js"(exports,module){"use strict";if(true){module.exports=require_react_production()}else{module.exports=null}}});var require_signals=__commonJS({"node_modules/signal-exit/signals.js"(exports,module){"use strict";module.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];if(process.platform!=="win32"){module.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT")}if(process.platform==="linux"){module.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")}}});var require_signal_exit=__commonJS({"node_modules/signal-exit/index.js"(exports,module){"use strict";var process14=global.process;var processOk=function(process15){return process15&&typeof process15==="object"&&typeof process15.removeListener==="function"&&typeof process15.emit==="function"&&typeof process15.reallyExit==="function"&&typeof process15.listeners==="function"&&typeof process15.kill==="function"&&typeof process15.pid==="number"&&typeof process15.on==="function"};if(!processOk(process14)){
|
|
34
34
|
module.exports=function(){return function(){}}}else{assert=__require("assert");signals=require_signals();isWin=/^win/i.test(process14.platform);EE=__require("events");if(typeof EE!=="function"){EE=EE.EventEmitter}if(process14.__signal_exit_emitter__){emitter=process14.__signal_exit_emitter__}else{emitter=process14.__signal_exit_emitter__=new EE;emitter.count=0;emitter.emitted={}}if(!emitter.infinite){emitter.setMaxListeners(Infinity);emitter.infinite=true}module.exports=function(cb,opts){if(!processOk(
|
|
35
35
|
global.process)){return function(){}}assert.equal(typeof cb,"function","a callback must be provided for exit handler");if(loaded===false){load()}var ev="exit";if(opts&&opts.alwaysLast){ev="afterexit"}var remove=function(){emitter.removeListener(ev,cb);if(emitter.listeners("exit").length===0&&emitter.listeners("afterexit").length===0){unload()}};emitter.on(ev,cb);return remove};unload=function unload2(){if(!loaded||!processOk(global.process)){return}loaded=false;signals.forEach(function(sig){try{
|
|
36
36
|
process14.removeListener(sig,sigListeners[sig])}catch(er){}});process14.emit=originalProcessEmit;process14.reallyExit=originalProcessReallyExit;emitter.count-=1};module.exports.unload=unload;emit=function emit2(event,code,signal){if(emitter.emitted[event]){return}emitter.emitted[event]=true;emitter.emit(event,code,signal)};sigListeners={};signals.forEach(function(sig){sigListeners[sig]=function listener(){if(!processOk(global.process)){return}var listeners=process14.listeners(sig);if(listeners.length===
|
|
@@ -1212,7 +1212,7 @@ cwd()){const listed=await gitListFiles(cwd2);const raw=listed??await walkFiles(c
|
|
|
1212
1212
|
1;const after=/^[^\s]*/.exec(text.slice(cursor))?.[0]??"";return{query,start,end:cursor+after.length}}var TWP_SLASH_ROUTES={"/tasks":{domain:"task",operation:"list"},"/task":{domain:"task",operation:"get"},"/projects":{domain:"project",operation:"list"}};function isTwpSlashCommand(name){return Object.hasOwn(TWP_SLASH_ROUTES,name)}async function runTwpSlashCommand(name,args,deps){const route=TWP_SLASH_ROUTES[name];if(!Object.hasOwn(TWP_SLASH_ROUTES,name)||route===void 0){return{code:2,out:"",err:`\u4E0D\u660E\u306A\u30B3\u30DE\u30F3\u30C9: ${name}
|
|
1213
1213
|
`}}const parsed=parseArgv([route.domain,route.operation,...args]);if(parsed.command!=="domain"||parsed.domain!==route.domain){return{code:2,out:"",err:`${name}: \u3053\u306E\u5F15\u6570\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF08${args.join(" ")}\uFF09
|
|
1214
1214
|
`}}if(parsed.unknown.length>0){return{code:2,out:"",err:`\u4E0D\u660E\u306A\u5F15\u6570: ${formatUnknownArgs(parsed.unknown)}
|
|
1215
|
-
`}}let out="";let err="";const io={out:text=>void(out+=text),err:text=>void(err+=text),isTty:true};const globals={profile:parsed.profile??deps.profile,...parsed.output!==void 0?{output:parsed.output}:{},...parsed.query!==void 0?{query:parsed.query}:{},dryRun:parsed.dryRun,debug:parsed.debug,yes:parsed.yes,refresh:parsed.refresh};const{runDomain}=await import("./run-
|
|
1215
|
+
`}}let out="";let err="";const io={out:text=>void(out+=text),err:text=>void(err+=text),isTty:true};const globals={profile:parsed.profile??deps.profile,...parsed.output!==void 0?{output:parsed.output}:{},...parsed.query!==void 0?{query:parsed.query}:{},dryRun:parsed.dryRun,debug:parsed.debug,yes:parsed.yes,refresh:parsed.refresh};const{runDomain}=await import("./run-Q54CFQ3H.js");try{const code=await runDomain({domain:route.domain,...parsed.operation!==void 0?{operation:parsed.operation}:
|
|
1216
1216
|
{},argv:parsed.domainArgv,help:parsed.domainHelp,globals,version:deps.version,io,...deps.fetchImpl!==void 0?{fetchImpl:deps.fetchImpl}:{}});return{code,out,err}}catch(e){return{code:1,out,err:`${err}${e.message}
|
|
1217
1217
|
`}}}var GIT_LOG_OUTPUT=["9f3c1a2 feat(ui): \u4E00\u89A7\u306E\u30D5\u30A3\u30EB\u30BF\u3092 URL \u30AF\u30A8\u30EA\u3068\u540C\u671F\u3059\u308B","4b8e0d7 fix(ui): \u4EEE\u60F3\u30B9\u30AF\u30ED\u30FC\u30EB\u306E\u884C\u9AD8\u3055\u3092\u5B9F\u6E2C\u5024\u306B\u5408\u308F\u305B\u308B","c15a99e refactor(api): \u4E00\u89A7\u53D6\u5F97\u306E\u30DA\u30FC\u30B8\u30F3\u30B0\u51E6\u7406\u3092\u5171\u901A\u5316\u3059\u308B","2d70f4b test: \u4E00\u89A7\u30D5\u30A3\u30EB\u30BF\u306E\u56DE\u5E30\u30C6\u30B9\u30C8\u3092\u8FFD\u52A0\u3059\u308B",
|
|
1218
1218
|
"a6e2b38 fix(api): \u7A7A\u306E\u691C\u7D22\u6761\u4EF6\u3067\u5168\u4EF6\u8FD4\u3089\u306A\u3044\u3088\u3046\u306B\u3059\u308B","7c40d51 chore(deps): \u958B\u767A\u4F9D\u5B58\u3092\u6700\u65B0\u3078\u66F4\u65B0\u3059\u308B","e83b1c6 docs: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u624B\u9806\u306B Node 22 \u306E\u524D\u63D0\u3092\u8FFD\u8A18\u3059\u308B","b91f7a4 fix(ui): \u30E2\u30FC\u30C0\u30EB\u306E\u91CD\u306A\u308A\u9806\u3092\u6307\u5B9A\u3059\u308B","5a2c8e0 perf(api): \u4E00\u89A7\u306E N+1 \u3092\u89E3\u6D88\u3059\u308B",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{projectEvaluationResource}from"./chunk-FBTOIECJ.js";import{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,rangeNotes,recordOf,workloadDistributionNotes,workloadDistributionRows}from"./chunk-TQ7TNMW5.js";import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-UVCJXHWN.js";import{createFlags,fieldBody,hasAnyField,idSegment,
|
|
4
|
-
import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{containsRedactedMarker,readBody}from"./chunk-HEH3PUW2.js";import{ALLOW_REDACTED_FLAG}from"./chunk-W4NLJ2YK.js";import{REDACTED}from"./chunk-BD7O73GK.js";import{
|
|
5
|
-
import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF08\u7701\u7565\u6642\u306F TWP_PROJECT / .twp/config.json / ~/.twp/config.json\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var ROLE_FLAG={name:"--role",summary:"\u5F79\u5272\uFF08member / manager \u306A\u3069\u30FB\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3059\u308B\uFF09",takesValue:true,placeholder:"<\u5F79\u5272>"};var START_DATE_FLAG={name:"\
|
|
3
|
+
import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{projectEvaluationResource}from"./chunk-FBTOIECJ.js";import{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,rangeNotes,recordOf,workloadDistributionNotes,workloadDistributionRows}from"./chunk-TQ7TNMW5.js";import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-UVCJXHWN.js";import{createFlags,fieldBody,hasAnyField,idSegment,
|
|
4
|
+
resolveRefFields,updateFlags}from"./chunk-45WIRMGL.js";import{booleanText,boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{containsRedactedMarker,readBody}from"./chunk-HEH3PUW2.js";import{ALLOW_REDACTED_FLAG}from"./chunk-W4NLJ2YK.js";import{REDACTED}from"./chunk-BD7O73GK.js";import{repeatedValues}from"./chunk-VGT2EGH6.js";import{PROJECT_MEMBERS_LIMIT,PROJECT_TEMPLATES_PATH,resolveNamed}from"./chunk-4DOPQ74T.js";import{collapsesInUrlPath,safeProjectIdPolicy}from"./chunk-HVZUXLQ4.js";
|
|
5
|
+
import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF08\u7701\u7565\u6642\u306F TWP_PROJECT / .twp/config.json / ~/.twp/config.json\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var ROLE_FLAG={name:"--role",summary:"\u5F79\u5272\uFF08member / manager \u306A\u3069\u30FB\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3059\u308B\uFF09",takesValue:true,placeholder:"<\u5F79\u5272>"};var START_DATE_FLAG={name:"\
|
|
6
6
|
--start-date",summary:"\u53C2\u753B\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var END_DATE_FLAG={name:"--end-date",summary:"\u53C2\u753B\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var PERIOD_FILE_FLAG={name:"--period-file",summary:"\u7A3C\u50CD\u671F\u9593\uFF08assignment_periods\uFF09\u306E JSON \u914D\u5217\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};
|
|
7
7
|
var WIKI_ROLE_FLAG={name:"--wiki-role",summary:"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E Wiki \u6A29\u9650\uFF08admin\uFF1DWiki \u7BA1\u7406\u8005 / member\uFF1D\u4E00\u822C\uFF09",takesValue:true,placeholder:"<admin|member>"};var MEMO_FLAG={name:"--memo",summary:"\u30E1\u30E2\uFF0810,000 \u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var CLEAR_FLAG={name:"--clear",summary:"\u5225\u540D\u3092\u6D88\u3059",takesValue:false};var WIKI_ROLES=["admin",
|
|
8
8
|
"member"];var MEMO_MAX_CHARS=1e4;var PERIOD_FILE_MAX_CHARS=2e5;var ALIAS_MAX_CHARS=255;var PERIOD_KEYS=["id","start_date","end_date","daily_hours","total_hours","input_mode"];var PERIOD_REQUIRED=["start_date","end_date","daily_hours"];var ROLE_HELP="--role \u306E\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3057\u307E\u3059\uFF08CLI \u306F\u691C\u67FB\u3057\u307E\u305B\u3093\uFF09\u30022026-10-01 \u6642\u70B9\u306E\u5024\u306F\n member\uFF08\u30E1\u30F3\u30D0\u30FC\uFF09/ manager\uFF08\u7BA1\u7406\u8005\uFF09/ approver\uFF08\u7BA1\u7406\u8005\uFF08\u627F\u8A8D\u8005\uFF09\uFF09/ manager_no_punch\uFF08\u7BA1\u7406\u8005\uFF08\u6253\u523B\u7121\uFF09\uFF09\u3067\u3059\u3002\n \u5024\u306F\u5897\u3048\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u4ECA\u306E\u30E1\u30F3\u30D0\u30FC\u306E\u5024\u306F twp project members \u306E role \u5217\u3067\u78BA\u304B\u3081\u3089\u308C\u307E\u3059\u3002";
|
|
@@ -89,7 +89,35 @@ flags:[STATUS_FLAG],async prepare(input,ctx){processStatus(input,PROCESS_LIST_US
|
|
|
89
89
|
raw:body=>processRows(body),notes:body=>{const count=isRecord(body)?body["count"]:void 0;const shown=processRows(body).length;return typeof count==="number"&&count>shown?[`\u5DE5\u7A0B\u306F ${String(count)} \u4EF6\u3042\u308A\u307E\u3059\u304C\u3001${String(shown)} \u4EF6\u3060\u3051\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\uFF09\u3002`]:[]}},{name:"create",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u5DE5\u7A0B\u3092\u767B\u9332\u3059\u308B\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\uFF09",
|
|
90
90
|
usage:PROCESS_CREATE_USAGE,description:"POST /api/v2/projects/{id}/processes\u3002\u7701\u7565\u3059\u308B\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u65E2\u5B9A\u3067\u3059\u3002\n--process \u3067\u5DE5\u7A0B\u30DE\u30B9\u30BF\u3092\u6307\u5B9A\u3057\u307E\u3059\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\u3002\u5019\u88DC\u306F twp api /api/v2/project/processes \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002\n\u767B\u9332\u3067\u304D\u308B\u306E\u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u3068\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u3067\u3059\u3002\u72B6\u614B\u306E\u65E2\u5B9A\u306F active\u3001\u4E26\u3073\u9806\u306E\u65E2\u5B9A\u306F 0 \u3067\u3059\uFF08\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002\n\u4E26\u3073\u66FF\u3048\uFF08reorder\uFF09\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u306F\u3053\u306E\u30B3\u30DE\u30F3\u30C9\u306B\u306F\u3042\u308A\u307E\u305B\u3093\u3002\n\u767B\u9332\u306E\u5FDC\u7B54\u306B\u306F\u5DE5\u7A0B\u30DE\u30B9\u30BF\u306E\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u304C\u5165\u308A\u307E\u305B\u3093\uFF08process_id \u3060\u3051\u3002\u540D\u524D\u306F twp project process list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002\u4E00\u89A7\u306F\u5DE5\u7A0B\u30DE\u30B9\u30BF\u3092\u5F15\u3044\u3066\u88DC\u3044\u307E\u3059\uFF09\u3002",
|
|
91
91
|
flags:[PROCESS_FLAG,DESCRIPTION_FLAG,SORT_ORDER_FLAG,STATUS_FLAG],forbidden:processCreateForbidden,async prepare(input,ctx){const process=nonEmpty(input.flags,PROCESS_FLAG.name);if(process===void 0)throw new UsageError("--process \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",PROCESS_CREATE_USAGE);createBody(withResolved(input,{processId:"-"}));const withProject=await projectArg(input,ctx,PROCESS_CREATE_USAGE);return withResolved(withProject,{processId:(await ctx.resolver.processMaster(
|
|
92
|
-
process,PROCESS_FLAG.name)).id})},plan:input=>({method:"POST",path:projectPath(input,"processes"),body:createBody(input)}),summarize:body=>pick(processItem(body),PROCESS_COLUMNS),raw:body=>processItem(body)}]};var projectAnalysisOperations=[riskOperation,profitOperation];
|
|
92
|
+
process,PROCESS_FLAG.name)).id})},plan:input=>({method:"POST",path:projectPath(input,"processes"),body:createBody(input)}),summarize:body=>pick(processItem(body),PROCESS_COLUMNS),raw:body=>processItem(body)}]};var projectAnalysisOperations=[riskOperation,profitOperation];var PATH="/api/v2/project-auto-assign-settings";var FORBIDDEN2="\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp project auto-assign \u306F\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059";var TENANT_WIDE="\u3053\u306E\u8A2D\u5B9A\u306F\u30C6\u30CA\u30F3\u30C8\u3067\u3053\u308C\u304B\u3089\u4F5C\u308B\u3059\u3079\u3066\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u52B9\u304D\u307E\u3059\uFF08\u4F5C\u6210\u6E08\u307F\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002";
|
|
93
|
+
var ROLES=["manager_no_punch","manager"];var ROLE_LABELS={manager_no_punch:"\u7BA1\u7406\u8005\uFF08\u6253\u523B\u7121\uFF09",manager:"\u7BA1\u7406\u8005"};var BODY_KEYS=["enabled","role","source_project_codes","source_department_ids"];function stringList(value){if(!Array.isArray(value)||!value.every(item=>typeof item==="string"))return null;return[...value]}function readSettings(body){if(!isRecord(body)||body["result"]!==true||!isRecord(body["data"])){throw new ApiResponseError("\u30E1\u30F3\u30D0\u30FC\u81EA\u52D5\u8FFD\u52A0\u8A2D\u5B9A\u306E\u5FDC\u7B54\u306E\u5F62\
|
|
94
|
+
\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const data=body["data"];const codes=stringList(data["source_project_codes"]);const departments=stringList(data["source_department_ids"]);const legacy=stringList(data["legacy_department_names"]);const roles=stringList(data["allowed_roles"]);if(typeof data["enabled"]!=="boolean"||typeof data["role"]!=="string"||typeof data["configured"]!=="boolean"||typeof data["ma\
|
|
95
|
+
x_sources"]!=="number"||codes===null||departments===null||legacy===null||roles===null){throw new ApiResponseError("\u30E1\u30F3\u30D0\u30FC\u81EA\u52D5\u8FFD\u52A0\u8A2D\u5B9A\u306E\u5FDC\u7B54\u306B\u8AAD\u3081\u306A\u3044\u9805\u76EE\u304C\u3042\u308A\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return{enabled:data["enabled"],role:data["role"],source_project_codes:codes,source_department_ids:departments,configured:data["configured"],legacy_department_names:legacy,
|
|
96
|
+
allowed_roles:roles,max_sources:data["max_sources"]}}function noArgs(input,usage){if(input.args.length>0)throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D7\u3051\u307E\u305B\u3093\uFF08\u8A2D\u5B9A\u306F\u30C6\u30CA\u30F3\u30C8\u306B1\u3064\u3067\u3059\uFF09: ${input.args.join(" ")}`,usage)}var ENABLED_FLAG={name:"--enabled",summary:"\u81EA\u52D5\u8FFD\u52A0\u3092\u4F7F\u3046\u304B\uFF08true / false\uFF09",takesValue:true,placeholder:"<true|false>"};var ROLE_FLAG2={name:"--role",summary:`\
|
|
97
|
+
\u8FFD\u52A0\u3059\u308B\u30E1\u30F3\u30D0\u30FC\u306B\u4ED8\u3051\u308B\u30ED\u30FC\u30EB\uFF08${ROLES.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u30ED\u30FC\u30EB>"};var PROJECT_FLAG2={name:"--project",summary:"\u30E1\u30F3\u30D0\u30FC\u306E\u5143\u306B\u3059\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\uFF08\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\u3002\u6307\u5B9A\u3059\u308B\u3068\u4E00\u89A7\u3092\u7F6E\u304D\u63DB\u3048\u308B\uFF09",takesValue:true,placeholder:"\
|
|
98
|
+
<\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9>",repeatable:true};var DEPARTMENT_FLAG={name:"--department",summary:"\u30E1\u30F3\u30D0\u30FC\u306E\u5143\u306B\u3059\u308B\u90E8\u7F72\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\u3002\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\u3002\u6307\u5B9A\u3059\u308B\u3068\u4E00\u89A7\u3092\u7F6E\u304D\u63DB\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u90E8\u7F72>",repeatable:true};var CLEAR_PROJECTS_FLAG={name:"--clear-projects",summary:"\
|
|
99
|
+
\u5143\u306B\u3059\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u7A7A\u306B\u3059\u308B",takesValue:false};var CLEAR_DEPARTMENTS_FLAG={name:"--clear-departments",summary:"\u5143\u306B\u3059\u308B\u90E8\u7F72\u3092\u7A7A\u306B\u3059\u308B",takesValue:false};var SET_USAGE="twp project auto-assign set [--enabled <true|false>] [--role <\u30ED\u30FC\u30EB>] [--project <\u30B3\u30FC\u30C9>]\u2026 [--department <\u90E8\u7F72>]\u2026 [--clear-projects] [--clear-departments]";var DEPARTMENT_IDS_KEY="d\
|
|
100
|
+
epartmentIds";function distinct(values,flag){const seen=new Set;for(const value of values){if(seen.has(value))throw new UsageError(`${flag} \u306B\u540C\u3058\u5024\u304C2\u56DE\u3042\u308A\u307E\u3059: ${value}`,SET_USAGE);seen.add(value)}return[...seen]}function projectCodes(input){const values=repeatedValues(input,PROJECT_FLAG2.name).map(value=>value.trim());const clear=input.flags.has(CLEAR_PROJECTS_FLAG.name);if(clear&&values.length>0)throw new UsageError("--project \u3068 --clear-projects \u306F\u4E00\u7DD2\u306B\u6307\
|
|
101
|
+
\u5B9A\u3067\u304D\u307E\u305B\u3093",SET_USAGE);if(clear)return[];if(values.length===0)return void 0;for(const value of values){if(value===""||[...value].length>100)throw new UsageError(`--project \u306F1\u301C100\u6587\u5B57\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${value}`,SET_USAGE)}return distinct(values,PROJECT_FLAG2.name)}function wantedChanges(input){const wanted={};const enabled=input.flags.get(ENABLED_FLAG.name);
|
|
102
|
+
if(enabled!==void 0)wanted.enabled=booleanText(ENABLED_FLAG.name,enabled);const role=input.flags.get(ROLE_FLAG2.name);if(role!==void 0){if(!ROLES.includes(role.trim()))throw new UsageError(`--role \u306F ${ROLES.join(" / ")} \u306E\u3069\u308C\u304B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${role}`,SET_USAGE);wanted.role=role.trim()}const codes=projectCodes(input);if(codes!==void 0)wanted.source_project_codes=codes;const departmentRefs=repeatedValues(input,DEPARTMENT_FLAG.name);const clearDepartments=input.
|
|
103
|
+
flags.has(CLEAR_DEPARTMENTS_FLAG.name);if(clearDepartments&&departmentRefs.length>0)throw new UsageError("--department \u3068 --clear-departments \u306F\u4E00\u7DD2\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",SET_USAGE);if(clearDepartments)wanted.source_department_ids=[];else if(departmentRefs.length>0){const ids=input.resolved?.[DEPARTMENT_IDS_KEY];if(ids===void 0)throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: --department \u304C\u89E3\u6C7A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08prepare() \u306E\u914D\u7DDA\u6F0F\u308C\uFF09");
|
|
104
|
+
wanted.source_department_ids=JSON.parse(ids)}if(Object.keys(wanted).length===0)throw new UsageError("\u5909\u3048\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",SET_USAGE);return wanted}function mergedBody(current,wanted){return{enabled:wanted.enabled??current.enabled,role:wanted.role??current.role,source_project_codes:[...wanted.source_project_codes??current.source_project_codes],source_department_ids:[...wanted.source_department_ids??current.source_department_ids]}}
|
|
105
|
+
var show=value=>Array.isArray(value)?`[${value.join(", ")}]`:String(value);function sameValue(a,b){return show(a)===show(b)}function revertCommand(before,saved){const parts=[];if(before.enabled!==saved.enabled)parts.push(`--enabled ${String(before.enabled)}`);if(before.role!==saved.role)parts.push(`--role ${shellQuote(before.role)}`);if(!sameValue(before.source_project_codes,saved.source_project_codes)){parts.push(before.source_project_codes.length===0?"--clear-projects":before.source_project_codes.
|
|
106
|
+
map(code=>`--project ${shellQuote(code)}`).join(" "))}if(!sameValue(before.source_department_ids,saved.source_department_ids)){parts.push(before.source_department_ids.length===0?"--clear-departments":before.source_department_ids.map(id=>`--department ${shellQuote(id)}`).join(" "))}return parts.length===0?null:`twp project auto-assign set ${parts.join(" ")}`}function bodyOf(settings){return mergedBody(settings,{})}function settingRows(settings){return[{key:"enabled",value:String(settings.enabled)},
|
|
107
|
+
{key:"role",value:`${settings.role}${ROLE_LABELS[settings.role]!==void 0?`\uFF08${ROLE_LABELS[settings.role]}\uFF09`:""}`},{key:"source_project_codes",value:settings.source_project_codes.join(", ")},{key:"source_department_ids",value:settings.source_department_ids.join(", ")},{key:"configured",value:String(settings.configured)},...settings.configured?[]:[{key:"legacy_department_names",value:settings.legacy_department_names.join(", ")}]]}function configuredNote(settings){if(settings.configured)return[];
|
|
108
|
+
return["\u30C6\u30CA\u30F3\u30C8\u8A2D\u5B9A\u306F\u672A\u4FDD\u5B58\u3067\u3059\uFF08configured=false\uFF09\u3002\u3044\u307E\u306F\u5F93\u6765\u306E\u8A2D\u5B9A"+(settings.legacy_department_names.length>0?`\uFF08\u90E8\u7F72\u540D: ${settings.legacy_department_names.join(", ")}\uFF09`:"")+"\u3067\u52D5\u3044\u3066\u3044\u307E\u3059\u3002source_department_ids \u306F\u305D\u306E\u90E8\u7F72\u540D\u3092\u6709\u52B9\u306A\u90E8\u7F72\u306EID\u3078\u89E3\u6C7A\u3057\u305F\u5024\u3067\u3059\u3002"]}
|
|
109
|
+
var getOperation={name:"get",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4F5C\u6210\u6642\u306E\u30E1\u30F3\u30D0\u30FC\u81EA\u52D5\u8FFD\u52A0\u306E\u8A2D\u5B9A\u3092\u898B\u308B\uFF08\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp project auto-assign get",description:"\u753B\u9762\u306E\u300C\u7D44\u7E54\u8A2D\u5B9A > \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A2D\u5B9A\u300D\u306E\u300C\u30E1\u30F3\u30D0\u30FC\u306E\u81EA\u52D5\u8FFD\u52A0\u300D\u3068\u540C\u3058\u5024\u3067\u3059\u3002\nenabled \u304C true \u306E\u3068\u304D\u3001\u65B0\u3057\u304F\u4F5C\u3063\u305F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3078\u3001\u5143\u306B\u3059\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3068\u5143\u306B\u3059\u308B\u90E8\u7F72\u306E\u6240\u5C5E\u8005\u304C role \u306E\u30ED\u30FC\u30EB\u3067\u8FFD\u52A0\u3055\u308C\u307E\u3059\u3002\nconfigured \u304C false \u306A\u3089\u3001\u30C6\u30CA\u30F3\u30C8\u8A2D\u5B9A\u306F\u672A\u4FDD\u5B58\u3067\u5F93\u6765\u306E\u8A2D\u5B9A\u3067\u52D5\u3044\u3066\u3044\u307E\u3059\u3002",
|
|
110
|
+
forbidden:FORBIDDEN2,flags:[],async prepare(input){noArgs(input,"twp project auto-assign get");return input},plan:()=>({method:"GET",path:PATH}),summarize:body=>settingRows(readSettings(body)),raw:body=>readSettings(body),notes:body=>configuredNote(readSettings(body))};function setResult(body){if(!isRecord(body)||body["autoAssignSet"]!==true)throw new ApiResponseError("\u30E1\u30F3\u30D0\u30FC\u81EA\u52D5\u8FFD\u52A0\u8A2D\u5B9A\u306E\u5909\u66F4\u306E\u7D50\u679C\u3092\u7D44\u307F\u7ACB\u3066\u3089\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u5185\u90E8\u30A8\u30E9\u30FC\uFF09\u3002");
|
|
111
|
+
return body}var CURRENT_VALUE_MARK="<\u3044\u307E\u306E\u5024>";function setPlan(input){const wanted=wantedChanges(input);const view={};for(const key of BODY_KEYS)view[key]=wanted[key]??CURRENT_VALUE_MARK;return{method:"PUT",path:PATH,body:new JsonBodyWithView(wanted,view)}}var setOperation={name:"set",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4F5C\u6210\u6642\u306E\u30E1\u30F3\u30D0\u30FC\u81EA\u52D5\u8FFD\u52A0\u306E\u8A2D\u5B9A\u3092\u5909\u3048\u308B\uFF08\u6307\u5B9A\u3057\u306A\u3044\u9805\u76EE\u306F\u3044\u307E\u306E\u5024\u306E\u307E\u307E\u30FB\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306E\u307F\uFF09",
|
|
112
|
+
usage:SET_USAGE,description:"\u753B\u9762\u306E\u300C\u7D44\u7E54\u8A2D\u5B9A > \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A2D\u5B9A\u300D\u306E\u300C\u30E1\u30F3\u30D0\u30FC\u306E\u81EA\u52D5\u8FFD\u52A0\u300D\u3068\u540C\u3058\u5909\u66F4\u3092\u3057\u307E\u3059\uFF08\u540C\u3058 API \u3092\u4F7F\u3044\u307E\u3059\uFF09\u3002\n\n twp project auto-assign set --enabled true --department \u958B\u767A\u90E8 --dry-run # \u5909\u66F4\u524D\u5F8C\u3092\u898B\u308B\u3060\u3051\n twp project auto-assign set --enabled true --role manager_no_punch --project TWP --department \u958B\u767A\u90E8\n twp project auto-assign set --enabled false\n\n\u30B5\u30FC\u30D0\u306E API \u306F\u5168\u9805\u76EE\u306E\u7F6E\u304D\u63DB\u3048\u306A\u306E\u3067\u3001\u9001\u308B\u524D\u306B\u3044\u307E\u306E\u5024\u3092\u8AAD\u307F\u3001\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u3044\u307E\u306E\u5024\u3067\u57CB\u3081\u3066\u9001\u308A\u307E\u3059\u3002\n--project / --department \u306F\u6307\u5B9A\u3059\u308B\u3068\u305D\u306E\u4E00\u89A7\u3067\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u8DB3\u3057\u7B97\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u7A7A\u306B\u3059\u308B\u306E\u306F --clear-projects / --clear-departments \u3067\u3059\u3002\n\u6709\u52B9\u306B\u3059\u308B\u306B\u306F\u3001\u5143\u306B\u3059\u308B\u30D7\u30ED\u30B8\u30A7\
|
|
113
|
+
\u30AF\u30C8\u304B\u90E8\u7F72\u304C1\u4EF6\u4EE5\u4E0A\u8981\u308A\u307E\u3059\u3002\u5B58\u5728\u3057\u306A\u3044\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\u30FB\u6709\u52B9\u3067\u306A\u3044\u90E8\u7F72\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\u3002\n\u5909\u66F4\u524D\u5F8C\u306F stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\u9001\u3063\u305F\u3042\u3068\u306F\u30B5\u30FC\u30D0\u304C\u4FDD\u5B58\u3057\u305F\u5024\u3092\u5168\u9805\u76EE\u3067\u78BA\u304B\u3081\u3001\u5143\u306B\u623B\u3059\u30B3\u30DE\u30F3\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002\n\n"+
|
|
114
|
+
TENANT_WIDE,forbidden:FORBIDDEN2,flags:[ENABLED_FLAG,ROLE_FLAG2,PROJECT_FLAG2,DEPARTMENT_FLAG,CLEAR_PROJECTS_FLAG,CLEAR_DEPARTMENTS_FLAG],async prepare(input,ctx){noArgs(input,SET_USAGE);let prepared=input;const departmentRefs=repeatedValues(input,DEPARTMENT_FLAG.name);if(departmentRefs.length>0&&!input.flags.has(CLEAR_DEPARTMENTS_FLAG.name)){const ids=[];for(const ref of departmentRefs)ids.push((await ctx.resolver.department(ref.trim(),DEPARTMENT_FLAG.name)).id);prepared=withResolved(input,{[DEPARTMENT_IDS_KEY]:JSON.
|
|
115
|
+
stringify(distinct(ids,DEPARTMENT_FLAG.name))})}wantedChanges(prepared);return prepared},plan:setPlan,plannedNotes:()=>[`\u9001\u308B\u524D\u306B GET ${PATH} \u3067\u3044\u307E\u306E\u5024\u3092\u8AAD\u307F\u3001\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u3092\u3044\u307E\u306E\u5024\u3067\u57CB\u3081\u3066\u5168\u9805\u76EE\u3092\u9001\u308A\u307E\u3059\uFF08API \u306F\u4E38\u3054\u3068\u7F6E\u63DB\u3067\u3059\uFF09\u3002`],async preview(input,ctx){const current=readSettings(await ctx.
|
|
116
|
+
send({method:"GET",path:PATH}));const before=bodyOf(current);const after=mergedBody(current,wantedChanges(input));const notes=BODY_KEYS.map(key=>sameValue(before[key],after[key])?`${key}: ${show(after[key])} \u306E\u307E\u307E`:`${key}: ${show(before[key])} \u2192 ${show(after[key])}`);notes.push(...configuredNote(current),TENANT_WIDE);return{notes,warnings:[]}},async execute(input,ctx){const current=readSettings(await ctx.send({method:"GET",path:PATH}));const sent=mergedBody(current,wantedChanges(
|
|
117
|
+
input));const saved=readSettings(await ctx.send({method:"PUT",path:PATH,body:sent}));return{autoAssignSet:true,before:bodyOf(current),sent,saved}},summarize:body=>{const result=setResult(body);const saved=bodyOf(result.saved);return BODY_KEYS.map(key=>({key,from:show(result.before[key]),to:show(saved[key])}))},raw:body=>{const result=setResult(body);return{before:result.before,sent:result.sent,settings:result.saved}},notes(body){const result=setResult(body);const revert=revertCommand(result.before,
|
|
118
|
+
bodyOf(result.saved));return revert===null?[]:[`\u5143\u306B\u623B\u3059\u306B\u306F:
|
|
119
|
+
${revert}`]},failures:body=>{const result=setResult(body);const saved=bodyOf(result.saved);return BODY_KEYS.filter(key=>!sameValue(result.sent[key],saved[key])).map(key=>({target:key,error:new ApiRejectedError(`${show(result.sent[key])} \u3092\u9001\u308A\u307E\u3057\u305F\u304C\u3001\u30B5\u30FC\u30D0\u304C\u4FDD\u5B58\u3057\u305F\u5024\u306F ${show(saved[key])} \u3067\u3059\u3002twp project auto-assign get \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002`)}))}};var projectAutoAssignResource={
|
|
120
|
+
name:"auto-assign",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4F5C\u6210\u6642\u306E\u30E1\u30F3\u30D0\u30FC\u81EA\u52D5\u8FFD\u52A0\u306E\u8A2D\u5B9A\uFF08\u53C2\u7167\u30FB\u5909\u66F4\uFF09",operations:[getOperation,setOperation]};import fs from"fs";var LIST_COLUMNS=["id","name","code","category","version","usage_count","sort_order","updated_at"];var GET_COLUMNS=["id","name","code","category","develop_method","description","version","usage_count","sort_order","source_project_id","created_at","updated_at"];var CONFIG_ARRAYS=[["status_configs","\u30B9\u30C6\u30FC\u30BF\u30B9"],["type_configs","\u7A2E\u5225"],["category_configs","\u30AB\u30C6\u30B4\u30EA"],["label_configs","\u30E9\u30D9\u30EB"],["milestone_templates","\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3"],
|
|
93
121
|
["task_templates","\u30BF\u30B9\u30AF"]];var CONFIG_KEYS=["settings",...CONFIG_ARRAYS.map(([key])=>key)];var CONFIGS_FILE_MAX_BYTES=5*1024*1024;var DESCRIPTION_MAX_CHARS=1e4;var BOM=/^\uFEFF/;var TEMPLATE_HELP="<\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8> \u306F ID\u30FB\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u540D\u524D\u304C\u8907\u6570\u306B\u4E00\u81F4\u3059\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002\nID \u4EE5\u5916\u306F\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4E00\u89A7\u3068\u7167\u5408\u3057\u307E\u3059\uFF08\u30AD\u30E3\u30C3\u30B7\u30E5\u3057\u307E\u305B\u3093\uFF09\u3002";
|
|
94
122
|
var READ_FORBIDDEN="\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u8AAD\u3080\u306B\u306F\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6A5F\u80FD\u306E\u6A29\u9650\u304C\u300C\u95B2\u89A7\u8005\u300D\u4EE5\u4E0A\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002";var WRITE_FORBIDDEN="\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u4F5C\u6210\u30FB\u5909\u66F4\u30FB\u524A\u9664\u30FB\u9069\u7528\u306B\u306F\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6A5F\u80FD\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
95
123
|
var FIELDS=[{kind:"text",flag:"--name",key:"name",label:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D",maxChars:255,summary:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D\uFF08255 \u6587\u5B57\u4EE5\u5185\uFF09"},{kind:"text",flag:"--code",key:"code",label:"\u30B3\u30FC\u30C9",maxChars:50,summary:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30B3\u30FC\u30C9\uFF0850 \u6587\u5B57\u4EE5\u5185\u30FB\u4EFB\u610F\uFF09"},{kind:"text",flag:"--category",key:"category",label:"\u5206\u985E",maxChars:100,summary:"\
|
|
@@ -112,7 +140,7 @@ input,"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8"
|
|
|
112
140
|
|
|
113
141
|
--output json \u306F\u69CB\u6210\uFF08status_configs / task_templates \u7B49\uFF09\u3092\u542B\u3080\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
|
|
114
142
|
--output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${LIST_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002`,forbidden:READ_FORBIDDEN,flags:[],plan(input){if(input.args.length>0)throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp project template list help");return{method:"GET",path:PROJECT_TEMPLATES_PATH}},summarize:body=>templateRows(body).map(row=>pick(row,LIST_COLUMNS)),raw:body=>templateRows(body)};var GET_USAGE="twp\
|
|
115
|
-
project template get <\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8>";var
|
|
143
|
+
project template get <\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8>";var getOperation2={name:"get",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C81\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",usage:GET_USAGE,description:`GET /api/v2/project-templates/{id}\u3002
|
|
116
144
|
${TEMPLATE_HELP}
|
|
117
145
|
|
|
118
146
|
--output table / text / tsv \u306F\u9805\u76EE\u3068\u69CB\u6210\u306E\u4EF6\u6570\uFF08status_count / task_count \u7B49\uFF09\u3067\u3059\u3002
|
|
@@ -171,7 +199,7 @@ path:itemPath(input)}),"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C6\u30F3\u30D7\u
|
|
|
171
199
|
ing"?template["name"]:String(template["id"]);return`\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u300C${name}\u300D\u304B\u3089\u65B0\u3057\u3044\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ${code} \u3092\u4F5C\u308A\u307E\u3059\uFF08${parts.join(" / ")}\uFF09\u3002\u65E2\u5B58\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u5909\u308F\u308A\u307E\u305B\u3093\u3002`}function applyResult(body){const data=isRecord(body)?body["data"]:void 0;const project=isRecord(data)?data["project"]:void 0;if(!isRecord(data)||!isRecord(
|
|
172
200
|
project)||typeof project["id"]!=="string"){throw new ApiResponseError("\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304B\u3089\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4F5C\u6210\u306E\u5FDC\u7B54\u306B data.project \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const created={};for(const key of["statuses_created","types_created","categories_created","labels_created","milestones_created","tasks_created"]){created[key]=data[key]??
|
|
173
201
|
null}return{...pick(project,["id","code","name","status","start_date","end_date"]),...created}}var projectTemplateResource={name:"template",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\uFF08\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304B\u3089\u306E\u4F5C\u6210\u30FB\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304B\u3089\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4F5C\u6210\uFF09",operations:[
|
|
174
|
-
listOperation,
|
|
202
|
+
listOperation,getOperation2,createOperation2,updateOperation2,deleteOperation2,fromProjectOperation,applyOperation]};var NAME_MAX_CHARS=255;var CODE_MAX_CHARS=255;var MEMO_MAX_CHARS2=Number.POSITIVE_INFINITY;var PROJECTS_PATH="/api/v2/projects";function userRefField(flag,key,label){return{kind:"ref",flag,key,summary:`${label}\uFF08\u30E6\u30FC\u30B6\u30FC\u3002me\u30FBID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\uFF09`,placeholder:"<\u30E6\u30FC\u30B6\u30FC>",clearFlag:`--no-${flag.slice(2)}`,clearSummary:`${label}\u3092\u5916\u3059`,resolve:(ctx,ref,flagName)=>ctx.
|
|
175
203
|
resolver.user(ref,flagName)}}var FIELDS2=[{kind:"text",flag:"--name",key:"name",label:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u540D",maxChars:NAME_MAX_CHARS,summary:`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u540D\uFF08${NAME_MAX_CHARS} \u6587\u5B57\u4EE5\u5185\uFF09`},{kind:"text",flag:"--code",key:"code",label:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9",maxChars:CODE_MAX_CHARS,summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\uFF08\u30BF\u30B9\u30AF\u30AD\u30FC\u306E\u63A5\u982D\u8F9E\u306B\u306A\u308B\uFF09"},
|
|
176
204
|
{kind:"date",flag:"--start-date",key:"start_date",summary:"\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\u30FBnone \u3067\u6D88\u3059\uFF09"},{kind:"date",flag:"--end-date",key:"end_date",summary:"\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\u30FBnone \u3067\u6D88\u3059\uFF09\u3002\u904E\u53BB\u65E5\u306B\u3059\u308B\u3068\u30AF\u30ED\u30FC\u30BA\u3001\u4ECA\u65E5\u4EE5\u964D\u304B none \u3067\u30A2\u30AF\u30C6\u30A3\u30D6\u306B\u306A\u308B"},userRefField("--manager","project_manager_id","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC"),
|
|
177
205
|
userRefField("--leader","project_leader_id","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30EA\u30FC\u30C0\u30FC"),{kind:"ref",flag:"--department",key:"department_id",summary:"\u4E3B\u5E79\u90E8\u7F72\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",placeholder:"<\u90E8\u7F72>",clearFlag:"--no-department",clearSummary:"\u4E3B\u5E79\u90E8\u7F72\u3092\u5916\u3059",resolve:(ctx,ref,flag)=>ctx.resolver.department(ref,flag)},{kind:"boolean",flag:"--visible",key:"display_flg",summary:"\u4E00\u89A7\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true /\
|
|
@@ -248,6 +276,6 @@ usage:MANHOURS_USAGE,description:"GET /api/v2/projects/{id}/manhours\u3002\u7701
|
|
|
248
276
|
MANHOUR_DESCRIPTION,flags:[MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG],forbidden:body=>body?.error==="permission_denied"&&(body.error_description??"").includes("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005")?"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u5DE5\u6570\u3092\u8AAD\u3080\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\uFF08manager\uFF09\u304B\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u3060\u3051\u304C\u8AAD\u3081\u307E\u3059\u3002":
|
|
249
277
|
void 0,prepare:(input,ctx)=>projectRefInput(input,ctx,"manhours"),plan(input){const projectId=requireResolved(input,"projectId");return{method:"GET",path:`/api/v2/projects/${encodeURIComponent(projectId)}/manhours`,query:manhourQuery(input,MANHOURS_USAGE)}},summarize:body=>manhourRows(body,"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u5DE5\u6570"),raw:body=>{manhourRows(body,"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u5DE5\u6570");return body},notes:body=>manhourNotes(body)},{name:"workload",summary:"\
|
|
250
278
|
\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3054\u3068\u306E\u30BF\u30B9\u30AF\u4EF6\u6570\u30FB\u898B\u7A4D\u6642\u9593\u3092\u8868\u793A\u3059\u308B",usage:"twp project workload [<ID|\u30B3\u30FC\u30C9>]",description:"GET /api/v2/projects/{id}/analytics/workload\uFF08\u753B\u9762\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5206\u6790\u306E\u300C\u30E1\u30F3\u30D0\u30FC\u5225\u8CA0\u8377\u300D\uFF09\u3002\n\u7701\u7565\u3059\u308B\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u65E2\u5B9A\u3067\u3059\u3002\u672A\u5B8C\u4E86\u306E\u30BF\u30B9\u30AF\u304C\u5BFE\u8C61\u3067\u3001\u62C5\u5F53\u8005\u306E\u7121\u3044\u30BF\u30B9\u30AF\u306F\u300C\uFF08\u672A\u5272\u308A\u5F53\u3066\uFF09\u300D\u306E\u884C\u306B\u5165\u308A\u307E\u3059\u3002\n--output table / text / tsv \u306E by_status \u306F\u300C\u30B9\u30C6\u30FC\u30BF\u30B9\u540D:\u4EF6\u6570\u300D\u3092\u7A7A\u767D\u533A\u5207\u308A\u3067\u4E26\u3079\u305F\u3082\u306E\u3067\u3059\uFF08\u5185\u8A33\u306F --output json\uFF09\u3002",
|
|
251
|
-
flags:[],prepare:(input,ctx)=>projectRefInput(input,ctx,"workload"),plan(input){const projectId=requireResolved(input,"projectId");return{method:"GET",path:`/api/v2/projects/${encodeURIComponent(projectId)}/analytics/workload`}},summarize:body=>workloadDistributionRows(body),raw:body=>{workloadDistributionRows(body);return body},notes:body=>workloadDistributionNotes(body)},...projectAnalysisOperations],subresources:[projectMemberResource,projectProcessResource,projectEvaluationResource,projectTemplateResource
|
|
252
|
-
var ASSIGNED_PROJECT_COLUMNS=["id","code","name","status","role","member_start_date","member_end_date"];function assignedProjectItems(body){const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return list}async function projectRefInput(input,ctx,operation){
|
|
279
|
+
flags:[],prepare:(input,ctx)=>projectRefInput(input,ctx,"workload"),plan(input){const projectId=requireResolved(input,"projectId");return{method:"GET",path:`/api/v2/projects/${encodeURIComponent(projectId)}/analytics/workload`}},summarize:body=>workloadDistributionRows(body),raw:body=>{workloadDistributionRows(body);return body},notes:body=>workloadDistributionNotes(body)},...projectAnalysisOperations],subresources:[projectMemberResource,projectProcessResource,projectEvaluationResource,projectTemplateResource,
|
|
280
|
+
projectAutoAssignResource]};var ASSIGNED_PROJECT_COLUMNS=["id","code","name","status","role","member_start_date","member_end_date"];function assignedProjectItems(body){const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return list}async function projectRefInput(input,ctx,operation){
|
|
253
281
|
const[ref,...rest]=input.args;if(rest.length>0){throw new UsageError(`${operation} \u304C\u53D7\u3051\u53D6\u308C\u308B\u5F15\u6570\u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.join(" ")}`,`twp project ${operation} help`)}return withResolved(input,{projectId:await ctx.projectId(ref)})}export{projectDomain,ASSIGNED_PROJECT_COLUMNS,assignedProjectItems};
|
|
@@ -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-
|
|
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-
|
|
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")).
|
|
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-
|
|
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")).
|
|
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};
|
|
@@ -66,20 +66,21 @@ now??new Date).getTime()*1e3;const latest=new Map;const byTask=new Map;for(const
|
|
|
66
66
|
get(key);if(prev&&prev.sortOrder>=sortOrder)continue;latest.set(key,{sortOrder,candidate:{taskKey,skill,itemId:item.item_id,outcomeCode:normalizeOutcomeCode(item.outcome_code),outcomeRaw:(item.outcome_code??"").trim()===""?null:item.outcome_code,ageMinutes:sortOrder>0?Math.floor((nowMicros-sortOrder)/6e7):null}})}const index=new Map;for(const[key,value]of latest){let later=null;if(value.sortOrder>0){for(const run of byTask.get(value.candidate.taskKey)??[]){if(run.skill===value.candidate.skill||run.
|
|
67
67
|
sortOrder<=value.sortOrder)continue;if(later===null||run.sortOrder>later.sortOrder)later=run}}index.set(key,{...value.candidate,supersededBy:later===null?null:{skill:later.skill,itemId:later.itemId}})}return index}function findRecentCandidate(index,taskKey,skill){if(taskKey.trim()===""||skill.trim()==="")return null;return index.get(advanceKey(taskKey.trim(),skill))??null}async function resolveRecentAdvance(candidate,fetchResult,advancing){if(advancing.size===0)return null;let outcome=candidate.
|
|
68
68
|
outcomeCode;if(outcome===null){const result=await fetchResult(candidate.itemId);outcome=result?normalizeOutcomeCode(parseOutcomeCode(result)):null}if(outcome===null||!advancing.has(outcome))return null;return{taskKey:candidate.taskKey,skill:candidate.skill,outcome,itemId:candidate.itemId,ageMinutes:candidate.ageMinutes}}function formatRecentAdvance(advance){const age=advance.ageMinutes===null?"\u4E0D\u660E":`${advance.ageMinutes}\u5206\u524D`;return`${advance.outcome}\uFF08${age} / item=${advance.
|
|
69
|
-
itemId}\uFF09`}function windowStartMicros(now,hours=RECENT_ADVANCE_WINDOW_HOURS){return Math.trunc((now.getTime()-hours*36e5)*1e3)}var MARKER_PAIR_RE=/^([^=\s,]+)=([a-z]+)$/;function decodeMarkerKey(raw){let key;try{key=decodeURIComponent(raw)}catch{return null}return isTaskKey(key)&&key.trim()===key?key:null}function parseTaskStatusSnapshot(prefetchSection){const m=/<!--\s*OPS_TASK_STATUS\s([^>]*?)-->/.exec(prefetchSection);if(!m||m[1]===void 0)return null;
|
|
70
|
-
exec(body);const byKey=new Map;for(const token of body.trim().split(/\s+/)){for(const part of token.split(",")){const pair=MARKER_PAIR_RE.exec(part);if(!pair)continue;const key=decodeMarkerKey(pair[1]);if(key!==null)byKey.set(key,pair[2])}}
|
|
71
|
-
if(!
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
itemId}\uFF09`}function windowStartMicros(now,hours=RECENT_ADVANCE_WINDOW_HOURS){return Math.trunc((now.getTime()-hours*36e5)*1e3)}var MARKER_PAIR_RE=/^([^=\s,]+)=([a-z]+)$/;var UPDATED_PAIR_RE=/^([^=\s,]+)=(\d+)$/;function decodeMarkerKey(raw){let key;try{key=decodeURIComponent(raw)}catch{return null}return isTaskKey(key)&&key.trim()===key?key:null}function parseTaskStatusSnapshot(prefetchSection){const m=/<!--\s*OPS_TASK_STATUS\s([^>]*?)-->/.exec(prefetchSection);if(!m||m[1]===void 0)return null;
|
|
70
|
+
const body=m[1];const windowMatch=/\bwindow_hours=(\d+)\b/.exec(body);const byKey=new Map;for(const token of body.trim().split(/\s+/)){for(const part of token.split(",")){const pair=MARKER_PAIR_RE.exec(part);if(!pair)continue;const key=decodeMarkerKey(pair[1]);if(key!==null)byKey.set(key,pair[2])}}const updatedAtByKey=new Map;const u=/<!--\s*OPS_TASK_UPDATED\s([^>]*?)-->/.exec(prefetchSection);if(u&&u[1]!==void 0){for(const token of u[1].trim().split(/\s+/)){for(const part of token.split(",")){const pair=UPDATED_PAIR_RE.
|
|
71
|
+
exec(part);if(!pair)continue;const key=decodeMarkerKey(pair[1]);if(key!==null)updatedAtByKey.set(key,Number(pair[2]))}}}return{complete:/\bcomplete=1\b/.test(body),windowHours:windowMatch?Number(windowMatch[1]):0,byKey,updatedAtByKey}}function shouldSuppressForStatus(advance,snapshot,advancing){if(snapshot===null){return{suppress:false,reason:"\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u30DE\u30FC\u30AB\u30FC\uFF08OPS_TASK_STATUS\uFF09\u304C prefetch \u306B\u7121\u3044"}}if(!snapshot.complete){return{
|
|
72
|
+
suppress:false,reason:"\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u305F\u3082\u306E\u304C\u3042\u308B\uFF08complete=0\uFF09"}}if(snapshot.windowHours<RECENT_ADVANCE_WINDOW_HOURS){return{suppress:false,reason:`\u30DE\u30FC\u30AB\u30FC\u306E\u7A93\uFF08${snapshot.windowHours}h\uFF09\u304C\u6291\u6B62\u306E\u7A93\uFF08${RECENT_ADVANCE_WINDOW_HOURS}h\uFF09\u3088\u308A\u72ED\u3044`}}const expected=advancing.get(advance.outcome);if(expected===void 0){return{suppress:false,
|
|
73
|
+
reason:`${advance.outcome} \u306E\u60F3\u5B9A\u30B9\u30C6\u30FC\u30BF\u30B9\u304C\u5BFE\u5FDC\u8868\u306B\u7121\u3044`}}const current=snapshot.byKey.get(advance.taskKey);if(current===void 0){return{suppress:true,reason:""}}if(current===expected)return{suppress:true,reason:""};return{suppress:false,reason:`\u524D\u56DE\u306E\u5B9F\u884C\u306E\u5F8C\u306B\u30BF\u30B9\u30AF\u304C\u52D5\u3044\u305F\uFF08${expected} \u2192 ${current}\uFF09\uFF1D\u65B0\u3057\u3044\u4ED5\u4E8B`}}var RESUME_HOLD_CAP_HOURS=6;
|
|
74
|
+
function parseResumeCondition(raw){const head=/\b[A-Z][A-Z0-9_]*_RESULT\s*:([^|\n]*)/.exec(raw??"")?.[1]??"";let resumeAfter=null;const blockedBy=[];const prHeads=[];for(const token of head.trim().split(/\s+/)){const eq=token.indexOf("=");if(eq<=0)continue;const name=token.slice(0,eq);const value=token.slice(eq+1);if(name==="resume_after"){if(!/(Z|[+-]\d{2}:?\d{2})$/.test(value))continue;const t=new Date(value);if(Number.isNaN(t.getTime()))continue;if(resumeAfter===null||t.getTime()<resumeAfter.
|
|
75
|
+
getTime())resumeAfter=t}else if(name==="blocked_by"){for(const key of value.split(",")){if(isTaskKey(key)&&key.trim()===key)blockedBy.push(key)}}else if(name==="pr_head"){const m=/^([A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+)#(\d+)@([0-9a-fA-F]{7,40})$/.exec(value);if(m)prHeads.push({repo:m[1],number:Number(m[2]),sha:m[3].toLowerCase()})}}if(resumeAfter===null&&blockedBy.length===0&&prHeads.length===0)return null;return{resumeAfter,blockedBy,prHeads}}async function resolveResumeHold(candidate,fetchResult,advancing){
|
|
75
76
|
let raw=candidate.outcomeRaw??null;if(raw===null){const result=await fetchResult(candidate.itemId);raw=result?parseOutcomeCode(result):null}const outcome=normalizeOutcomeCode(raw);if(outcome===null||advancing.has(outcome))return null;const condition=parseResumeCondition(raw);if(condition===null)return null;return{taskKey:candidate.taskKey,skill:candidate.skill,outcome,condition,itemId:candidate.itemId,ageMinutes:candidate.ageMinutes,supersededBy:candidate.supersededBy??null}}var HUMAN_HELD_STATUS_CODES=new Set(
|
|
76
77
|
["humanjudge","humanwork","datafix","reqwait","spec","hold"]);var DONE_STATUS_ID="default:done";function shaMatches(recorded,current){const c=current.toLowerCase();return c.startsWith(recorded)||recorded.startsWith(c)}async function shouldSuppressForResume(hold,snapshot,lookupPrHead,now=new Date,lookupTaskStatus){if(hold.ageMinutes===null){return{suppress:false,reason:"\u5148\u767A\u306E\u7D4C\u904E\u6642\u9593\u304C\u5206\u304B\u3089\u306A\u3044"}}if(hold.ageMinutes>=RESUME_HOLD_CAP_HOURS*60){return{
|
|
77
78
|
suppress:false,reason:`\u4E0A\u9650${RESUME_HOLD_CAP_HOURS}\u6642\u9593\u306B\u9054\u3057\u305F`}}if(hold.supersededBy){return{suppress:false,reason:`\u636E\u3048\u7F6E\u3044\u305F\u5F8C\u306B ${hold.supersededBy.skill} \u304C\u540C\u3058\u30BF\u30B9\u30AF\u3092\u6271\u3063\u305F\uFF08item=${hold.supersededBy.itemId}\uFF09\uFF1D\u65B0\u3057\u3044\u4ED5\u4E8B`}}const{resumeAfter,blockedBy,prHeads}=hold.condition;if(resumeAfter!==null&&now.getTime()>=resumeAfter.getTime()){return{suppress:false,reason:`\
|
|
78
|
-
resume_after\uFF08${resumeAfter.toISOString()}\uFF09\u3092\u904E\u304E\u305F`}}if(blockedBy.length>0){if(snapshot===null||!snapshot.complete||snapshot.windowHours<RESUME_HOLD_CAP_HOURS){return{suppress:false,reason:"blocked_by \u3092\u5224\u5B9A\u3067\u304D\u306A\u3044\uFF08OPS_TASK_STATUS \u304C\u7121\u3044\u30FB\u4E0D\u5B8C\u5168\u30FB\u7A93\u304C\u72ED\u3044\uFF09"}}const moved=blockedBy.find(key=>{const code=snapshot.byKey.
|
|
79
|
-
void 0){return{suppress:false,reason:`\u963B\u5BB3\u30BF\u30B9\u30AF ${moved} \u304C\u76F4\u8FD1\u306B\u52D5\u3044\u305F\uFF08\u73FE\u5728 ${snapshot.byKey.get(moved)}\uFF09`}}if(lookupTaskStatus!==void 0){for(const key of blockedBy){if(snapshot.byKey.has(key))continue;const statusId=await lookupTaskStatus(key);if(statusId===
|
|
80
|
-
return{suppress:false,reason:`\u963B\u5BB3\u30BF\u30B9\u30AF ${key} \u304C\u5B8C\u4E86\u3057\u305F`}}}}}for(const pr of prHeads){const current=await lookupPrHead(pr.repo,pr.number);if(current===null){return{suppress:false,reason:`${pr.repo}#${pr.number} \u306E head \u3092\u53D6\u5F97\u3067\u304D\u306A\u3044`}}if(!shaMatches(
|
|
81
|
-
suppress:true,reason:""}}function formatResumeHold(hold){const age=hold.ageMinutes===null?"\u4E0D\u660E":`${hold.ageMinutes}\u5206\u524D`;const parts=[];if(hold.condition.resumeAfter!==null)parts.push(`resume_after=${hold.condition.resumeAfter.toISOString()}`);if(hold.condition.blockedBy.length>0)parts.push(`blocked_by=${hold.
|
|
82
|
-
/ item=${hold.itemId}\uFF09`}function pendingTaskKeys(items){return new Set(items.map(p=>(p.task_key??"").trim()).filter(k=>k!==""))}async function buildDynamicBlocks(src){const now=src.now??new Date;let inflight=null;if(src.processing!==null){inflight={};for(const entry of inflightEntries(src.processing,now,src.staleHours)){inflight[entry.key]=`\u4ED6\u30E9\u30F3\u30CA\u30FC\u304C\u51E6\u7406\u4E2D\u3067\u3059\uFF08${formatInflightEntry(entry)}\uFF09`}}const pending=src.pending===null?null:[...pendingTaskKeys(src.pending)].
|
|
79
|
+
resume_after\uFF08${resumeAfter.toISOString()}\uFF09\u3092\u904E\u304E\u305F`}}if(blockedBy.length>0){if(snapshot===null||!snapshot.complete||snapshot.windowHours<RESUME_HOLD_CAP_HOURS){return{suppress:false,reason:"blocked_by \u3092\u5224\u5B9A\u3067\u304D\u306A\u3044\uFF08OPS_TASK_STATUS \u304C\u7121\u3044\u30FB\u4E0D\u5B8C\u5168\u30FB\u7A93\u304C\u72ED\u3044\uFF09"}}const heldAtSec=Math.floor(now.getTime()/1e3)-(hold.ageMinutes+1)*60;const moved=blockedBy.find(key=>{const code=snapshot.byKey.
|
|
80
|
+
get(key);if(code===void 0||HUMAN_HELD_STATUS_CODES.has(code))return false;const updatedAt=snapshot.updatedAtByKey?.get(key);return updatedAt===void 0||updatedAt>=heldAtSec});if(moved!==void 0){return{suppress:false,reason:`\u963B\u5BB3\u30BF\u30B9\u30AF ${moved} \u304C\u76F4\u8FD1\u306B\u52D5\u3044\u305F\uFF08\u73FE\u5728 ${snapshot.byKey.get(moved)}\uFF09`}}if(lookupTaskStatus!==void 0){for(const key of blockedBy){if(snapshot.byKey.has(key))continue;const statusId=await lookupTaskStatus(key);if(statusId===
|
|
81
|
+
null){return{suppress:false,reason:`\u963B\u5BB3\u30BF\u30B9\u30AF ${key} \u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u53D6\u5F97\u3067\u304D\u306A\u3044`}}if(statusId===DONE_STATUS_ID){return{suppress:false,reason:`\u963B\u5BB3\u30BF\u30B9\u30AF ${key} \u304C\u5B8C\u4E86\u3057\u305F`}}}}}for(const pr of prHeads){const current=await lookupPrHead(pr.repo,pr.number);if(current===null){return{suppress:false,reason:`${pr.repo}#${pr.number} \u306E head \u3092\u53D6\u5F97\u3067\u304D\u306A\u3044`}}if(!shaMatches(
|
|
82
|
+
pr.sha,current)){return{suppress:false,reason:`${pr.repo}#${pr.number} \u306E head \u304C\u5909\u308F\u3063\u305F\uFF08${pr.sha} \u2192 ${current.slice(0,12)}\uFF09`}}}return{suppress:true,reason:""}}function formatResumeHold(hold){const age=hold.ageMinutes===null?"\u4E0D\u660E":`${hold.ageMinutes}\u5206\u524D`;const parts=[];if(hold.condition.resumeAfter!==null)parts.push(`resume_after=${hold.condition.resumeAfter.toISOString()}`);if(hold.condition.blockedBy.length>0)parts.push(`blocked_by=${hold.
|
|
83
|
+
condition.blockedBy.join(",")}`);for(const pr of hold.condition.prHeads)parts.push(`pr_head=${pr.repo}#${pr.number}@${pr.sha}`);return`${hold.outcome} ${parts.join(" ")}\uFF08${age} / item=${hold.itemId}\uFF09`}function pendingTaskKeys(items){return new Set(items.map(p=>(p.task_key??"").trim()).filter(k=>k!==""))}async function buildDynamicBlocks(src){const now=src.now??new Date;let inflight=null;if(src.processing!==null){inflight={};for(const entry of inflightEntries(src.processing,now,src.staleHours)){inflight[entry.key]=`\u4ED6\u30E9\u30F3\u30CA\u30FC\u304C\u51E6\u7406\u4E2D\u3067\u3059\uFF08${formatInflightEntry(entry)}\uFF09`}}const pending=src.pending===null?null:[...pendingTaskKeys(src.pending)].
|
|
83
84
|
sort();let advanced=src.advancing.size===0?{}:null;const statusUsable=src.taskStatus!==null&&src.taskStatus.complete&&src.taskStatus.windowHours>=RECENT_ADVANCE_WINDOW_HOURS;if(src.recent!==null&&src.advancing.size>0&&statusUsable){advanced={};for(const[key,candidate]of buildRecentCandidateIndex(src.recent,{now})){const advance=await resolveRecentAdvance(candidate,async()=>null,src.advancing);if(advance===null)continue;if(!shouldSuppressForStatus(advance,src.taskStatus,src.advancing).suppress)continue;
|
|
84
85
|
advanced[key]=`\u76F4\u8FD1\u306B\u540C\u3058\u30B9\u30AD\u30EB\u304C\u72B6\u614B\u3092\u9032\u3081\u3066\u3044\u307E\u3059\uFF08${formatRecentAdvance(advance)}\uFF09`}}return{taken_at:now.toISOString(),inflight,pending,advanced}}function dynamicStepReasons(blocks,taskKey,skill){if(!blocks)return[];const key=taskKey.trim();if(key==="")return[];const reasons=[];const inflight=blocks.inflight?.[key];if(inflight!==void 0)reasons.push(`${key} \u306F${inflight}`);if(blocks.pending?.includes(key))reasons.
|
|
85
86
|
push(`${key} \u306F\u65E2\u306B\u30AD\u30E5\u30FC\u5F85\u3061\uFF08pending\uFF09\u306B\u5C45\u307E\u3059`);const advanced=skill.trim()===""?void 0:blocks.advanced?.[advanceKey(key,skill)];if(advanced!==void 0)reasons.push(`${key} \u306F${advanced}`);return reasons}function unavailableChecks(blocks){if(blocks===null)return["\u51E6\u7406\u4E2D","\u30AD\u30E5\u30FC\u5F85\u3061","\u76F4\u8FD1\u3067\u72B6\u614B\u3092\u9032\u3081\u305F"];const out=[];if(blocks.inflight===null)out.push("\u51E6\u7406\u4E2D");
|
|
@@ -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-
|
|
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";
|
|
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?"":`
|