@kosuke-ai/cli 5.9.0 → 5.10.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.
@@ -45,123 +45,125 @@ import { operation as o43 } from './projects/env-vars-remove.js';
45
45
  import { operation as o44 } from './projects/get.js';
46
46
  import { operation as o45 } from './projects/labels.js';
47
47
  import { operation as o46 } from './projects/labels-color.js';
48
- import { operation as o47 } from './projects/list.js';
49
- import { operation as o48 } from './projects/qa-guide-get.js';
50
- import { operation as o49 } from './projects/qa-guide-set.js';
51
- import { operation as o50 } from './projects/services-add.js';
52
- import { operation as o51 } from './projects/services-list.js';
53
- import { operation as o52 } from './projects/services-remove.js';
54
- import { operation as o53 } from './projects/services-update.js';
55
- import { operation as o54 } from './projects/settings-get.js';
56
- import { operation as o55 } from './projects/settings-import.js';
57
- import { operation as o56 } from './projects/settings-update.js';
58
- import { operation as o57 } from './projects/skills.js';
59
- import { operation as o58 } from './projects/update.js';
60
- import { operation as o59 } from './sessions/activate.js';
61
- import { operation as o60 } from './sessions/all.js';
62
- import { operation as o61 } from './sessions/artifacts-attach.js';
63
- import { operation as o62 } from './sessions/artifacts-get.js';
64
- import { operation as o63 } from './sessions/artifacts-list.js';
65
- import { operation as o64 } from './sessions/comments-add.js';
66
- import { operation as o65 } from './sessions/comments-delete.js';
67
- import { operation as o66 } from './sessions/comments-list.js';
68
- import { operation as o67 } from './sessions/comments-update.js';
69
- import { operation as o68 } from './sessions/create.js';
70
- import { operation as o69 } from './sessions/delete.js';
71
- import { operation as o70 } from './sessions/diff-comments-add.js';
72
- import { operation as o71 } from './sessions/diff-comments-delete.js';
73
- import { operation as o72 } from './sessions/diff-comments-list.js';
74
- import { operation as o73 } from './sessions/diff-comments-update.js';
75
- import { operation as o74 } from './sessions/diff-commits.js';
76
- import { operation as o75 } from './sessions/diff-files.js';
77
- import { operation as o76 } from './sessions/diff-patch.js';
78
- import { operation as o77 } from './sessions/edit-prompt.js';
79
- import { operation as o78 } from './sessions/files-get.js';
80
- import { operation as o79 } from './sessions/files-list.js';
81
- import { operation as o80 } from './sessions/files-write.js';
82
- import { operation as o81 } from './sessions/get.js';
83
- import { operation as o82 } from './sessions/git-commit.js';
84
- import { operation as o83 } from './sessions/git-commit-message.js';
85
- import { operation as o84 } from './sessions/git-push.js';
86
- import { operation as o85 } from './sessions/git-state.js';
87
- import { operation as o86 } from './sessions/jobs-cancel.js';
88
- import { operation as o87 } from './sessions/jobs-get.js';
89
- import { operation as o88 } from './sessions/jobs-list.js';
90
- import { operation as o89 } from './sessions/labels-edit.js';
91
- import { operation as o90 } from './sessions/labels-set.js';
92
- import { operation as o91 } from './sessions/list.js';
93
- import { operation as o92 } from './sessions/mark-read.js';
94
- import { operation as o93 } from './sessions/messages.js';
95
- import { operation as o94 } from './sessions/needs-you.js';
96
- import { operation as o95 } from './sessions/qa-slot.js';
97
- import { operation as o96 } from './sessions/queue-delete.js';
98
- import { operation as o97 } from './sessions/queue-list.js';
99
- import { operation as o98 } from './sessions/queue-move.js';
100
- import { operation as o99 } from './sessions/queue-resume.js';
101
- import { operation as o100 } from './sessions/queue-send.js';
102
- import { operation as o101 } from './sessions/queue-steer.js';
103
- import { operation as o102 } from './sessions/queue-update.js';
104
- import { operation as o103 } from './sessions/runtime-command.js';
105
- import { operation as o104 } from './sessions/search.js';
106
- import { operation as o105 } from './sessions/send.js';
107
- import { operation as o106 } from './sessions/steer.js';
108
- import { operation as o107 } from './sessions/title-generate.js';
109
- import { operation as o108 } from './sessions/update.js';
110
- import { operation as o109 } from './user/auth-token-revoke.js';
111
- import { operation as o110 } from './user/plugins-list.js';
112
- import { operation as o111 } from './user/plugins-update.js';
113
- import { operation as o112 } from './user/profile.js';
114
- import { operation as o113 } from './user/push-devices-register.js';
115
- import { operation as o114 } from './user/push-devices-remove.js';
116
- import { operation as o115 } from './user/skills-create.js';
117
- import { operation as o116 } from './user/skills-delete.js';
118
- import { operation as o117 } from './user/skills-get.js';
119
- import { operation as o118 } from './user/skills-list.js';
120
- import { operation as o119 } from './user/skills-update.js';
121
- import { operation as o120 } from './user/subscriptions-delete.js';
122
- import { operation as o121 } from './user/subscriptions-get.js';
123
- import { operation as o122 } from './user/subscriptions-login-claude-complete.js';
124
- import { operation as o123 } from './user/subscriptions-login-claude-start.js';
125
- import { operation as o124 } from './user/subscriptions-login-codex-complete.js';
126
- import { operation as o125 } from './user/subscriptions-login-codex-start.js';
127
- import { operation as o126 } from './user/subscriptions-set-default-model.js';
128
- import { operation as o127 } from './user/subscriptions-set-key.js';
129
- import { operation as o128 } from './user/subscriptions-usage.js';
130
- import { operation as o129 } from './workspaces/access-status.js';
131
- import { operation as o130 } from './workspaces/ai-provider-get.js';
132
- import { operation as o131 } from './workspaces/ai-provider-remove.js';
133
- import { operation as o132 } from './workspaces/ai-provider-set.js';
134
- import { operation as o133 } from './workspaces/ai-provider-usage-claude.js';
135
- import { operation as o134 } from './workspaces/ai-provider-usage-codex.js';
136
- import { operation as o135 } from './workspaces/ai-provider-usage-coding-plan.js';
137
- import { operation as o136 } from './workspaces/artifacts.js';
138
- import { operation as o137 } from './workspaces/credits.js';
139
- import { operation as o138 } from './workspaces/get.js';
140
- import { operation as o139 } from './workspaces/getting-started-get.js';
141
- import { operation as o140 } from './workspaces/getting-started-update.js';
142
- import { operation as o141 } from './workspaces/integrations-sentry-get.js';
143
- import { operation as o142 } from './workspaces/integrations-sentry-remove.js';
144
- import { operation as o143 } from './workspaces/integrations-slack-get.js';
145
- import { operation as o144 } from './workspaces/lead-cards.js';
146
- import { operation as o145 } from './workspaces/lead-notifications-open.js';
147
- import { operation as o146 } from './workspaces/lead-proposals-create.js';
148
- import { operation as o147 } from './workspaces/lead-triage.js';
149
- import { operation as o148 } from './workspaces/list.js';
150
- import { operation as o149 } from './workspaces/members.js';
151
- import { operation as o150 } from './workspaces/plugins-list.js';
152
- import { operation as o151 } from './workspaces/plugins-update.js';
153
- import { operation as o152 } from './workspaces/provider-login-claude-complete.js';
154
- import { operation as o153 } from './workspaces/provider-login-claude-start.js';
155
- import { operation as o154 } from './workspaces/provider-login-codex-complete.js';
156
- import { operation as o155 } from './workspaces/provider-login-codex-start.js';
157
- import { operation as o156 } from './workspaces/sandbox-limit.js';
158
- import { operation as o157 } from './workspaces/skills-create.js';
159
- import { operation as o158 } from './workspaces/skills-delete.js';
160
- import { operation as o159 } from './workspaces/skills-get.js';
161
- import { operation as o160 } from './workspaces/skills-list.js';
162
- import { operation as o161 } from './workspaces/skills-update.js';
163
- import { operation as o162 } from './workspaces/stop-sandboxes.js';
164
- import { operation as o163 } from './workspaces/usage.js';
48
+ import { operation as o47 } from './projects/labels-delete.js';
49
+ import { operation as o48 } from './projects/labels-usage.js';
50
+ import { operation as o49 } from './projects/list.js';
51
+ import { operation as o50 } from './projects/qa-guide-get.js';
52
+ import { operation as o51 } from './projects/qa-guide-set.js';
53
+ import { operation as o52 } from './projects/services-add.js';
54
+ import { operation as o53 } from './projects/services-list.js';
55
+ import { operation as o54 } from './projects/services-remove.js';
56
+ import { operation as o55 } from './projects/services-update.js';
57
+ import { operation as o56 } from './projects/settings-get.js';
58
+ import { operation as o57 } from './projects/settings-import.js';
59
+ import { operation as o58 } from './projects/settings-update.js';
60
+ import { operation as o59 } from './projects/skills.js';
61
+ import { operation as o60 } from './projects/update.js';
62
+ import { operation as o61 } from './sessions/activate.js';
63
+ import { operation as o62 } from './sessions/all.js';
64
+ import { operation as o63 } from './sessions/artifacts-attach.js';
65
+ import { operation as o64 } from './sessions/artifacts-get.js';
66
+ import { operation as o65 } from './sessions/artifacts-list.js';
67
+ import { operation as o66 } from './sessions/comments-add.js';
68
+ import { operation as o67 } from './sessions/comments-delete.js';
69
+ import { operation as o68 } from './sessions/comments-list.js';
70
+ import { operation as o69 } from './sessions/comments-update.js';
71
+ import { operation as o70 } from './sessions/create.js';
72
+ import { operation as o71 } from './sessions/delete.js';
73
+ import { operation as o72 } from './sessions/diff-comments-add.js';
74
+ import { operation as o73 } from './sessions/diff-comments-delete.js';
75
+ import { operation as o74 } from './sessions/diff-comments-list.js';
76
+ import { operation as o75 } from './sessions/diff-comments-update.js';
77
+ import { operation as o76 } from './sessions/diff-commits.js';
78
+ import { operation as o77 } from './sessions/diff-files.js';
79
+ import { operation as o78 } from './sessions/diff-patch.js';
80
+ import { operation as o79 } from './sessions/edit-prompt.js';
81
+ import { operation as o80 } from './sessions/files-get.js';
82
+ import { operation as o81 } from './sessions/files-list.js';
83
+ import { operation as o82 } from './sessions/files-write.js';
84
+ import { operation as o83 } from './sessions/get.js';
85
+ import { operation as o84 } from './sessions/git-commit.js';
86
+ import { operation as o85 } from './sessions/git-commit-message.js';
87
+ import { operation as o86 } from './sessions/git-push.js';
88
+ import { operation as o87 } from './sessions/git-state.js';
89
+ import { operation as o88 } from './sessions/jobs-cancel.js';
90
+ import { operation as o89 } from './sessions/jobs-get.js';
91
+ import { operation as o90 } from './sessions/jobs-list.js';
92
+ import { operation as o91 } from './sessions/labels-edit.js';
93
+ import { operation as o92 } from './sessions/labels-set.js';
94
+ import { operation as o93 } from './sessions/list.js';
95
+ import { operation as o94 } from './sessions/mark-read.js';
96
+ import { operation as o95 } from './sessions/messages.js';
97
+ import { operation as o96 } from './sessions/needs-you.js';
98
+ import { operation as o97 } from './sessions/qa-slot.js';
99
+ import { operation as o98 } from './sessions/queue-delete.js';
100
+ import { operation as o99 } from './sessions/queue-list.js';
101
+ import { operation as o100 } from './sessions/queue-move.js';
102
+ import { operation as o101 } from './sessions/queue-resume.js';
103
+ import { operation as o102 } from './sessions/queue-send.js';
104
+ import { operation as o103 } from './sessions/queue-steer.js';
105
+ import { operation as o104 } from './sessions/queue-update.js';
106
+ import { operation as o105 } from './sessions/runtime-command.js';
107
+ import { operation as o106 } from './sessions/search.js';
108
+ import { operation as o107 } from './sessions/send.js';
109
+ import { operation as o108 } from './sessions/steer.js';
110
+ import { operation as o109 } from './sessions/title-generate.js';
111
+ import { operation as o110 } from './sessions/update.js';
112
+ import { operation as o111 } from './user/auth-token-revoke.js';
113
+ import { operation as o112 } from './user/plugins-list.js';
114
+ import { operation as o113 } from './user/plugins-update.js';
115
+ import { operation as o114 } from './user/profile.js';
116
+ import { operation as o115 } from './user/push-devices-register.js';
117
+ import { operation as o116 } from './user/push-devices-remove.js';
118
+ import { operation as o117 } from './user/skills-create.js';
119
+ import { operation as o118 } from './user/skills-delete.js';
120
+ import { operation as o119 } from './user/skills-get.js';
121
+ import { operation as o120 } from './user/skills-list.js';
122
+ import { operation as o121 } from './user/skills-update.js';
123
+ import { operation as o122 } from './user/subscriptions-delete.js';
124
+ import { operation as o123 } from './user/subscriptions-get.js';
125
+ import { operation as o124 } from './user/subscriptions-login-claude-complete.js';
126
+ import { operation as o125 } from './user/subscriptions-login-claude-start.js';
127
+ import { operation as o126 } from './user/subscriptions-login-codex-complete.js';
128
+ import { operation as o127 } from './user/subscriptions-login-codex-start.js';
129
+ import { operation as o128 } from './user/subscriptions-set-default-model.js';
130
+ import { operation as o129 } from './user/subscriptions-set-key.js';
131
+ import { operation as o130 } from './user/subscriptions-usage.js';
132
+ import { operation as o131 } from './workspaces/access-status.js';
133
+ import { operation as o132 } from './workspaces/ai-provider-get.js';
134
+ import { operation as o133 } from './workspaces/ai-provider-remove.js';
135
+ import { operation as o134 } from './workspaces/ai-provider-set.js';
136
+ import { operation as o135 } from './workspaces/ai-provider-usage-claude.js';
137
+ import { operation as o136 } from './workspaces/ai-provider-usage-codex.js';
138
+ import { operation as o137 } from './workspaces/ai-provider-usage-coding-plan.js';
139
+ import { operation as o138 } from './workspaces/artifacts.js';
140
+ import { operation as o139 } from './workspaces/credits.js';
141
+ import { operation as o140 } from './workspaces/get.js';
142
+ import { operation as o141 } from './workspaces/getting-started-get.js';
143
+ import { operation as o142 } from './workspaces/getting-started-update.js';
144
+ import { operation as o143 } from './workspaces/integrations-sentry-get.js';
145
+ import { operation as o144 } from './workspaces/integrations-sentry-remove.js';
146
+ import { operation as o145 } from './workspaces/integrations-slack-get.js';
147
+ import { operation as o146 } from './workspaces/lead-cards.js';
148
+ import { operation as o147 } from './workspaces/lead-notifications-open.js';
149
+ import { operation as o148 } from './workspaces/lead-proposals-create.js';
150
+ import { operation as o149 } from './workspaces/lead-triage.js';
151
+ import { operation as o150 } from './workspaces/list.js';
152
+ import { operation as o151 } from './workspaces/members.js';
153
+ import { operation as o152 } from './workspaces/plugins-list.js';
154
+ import { operation as o153 } from './workspaces/plugins-update.js';
155
+ import { operation as o154 } from './workspaces/provider-login-claude-complete.js';
156
+ import { operation as o155 } from './workspaces/provider-login-claude-start.js';
157
+ import { operation as o156 } from './workspaces/provider-login-codex-complete.js';
158
+ import { operation as o157 } from './workspaces/provider-login-codex-start.js';
159
+ import { operation as o158 } from './workspaces/sandbox-limit.js';
160
+ import { operation as o159 } from './workspaces/skills-create.js';
161
+ import { operation as o160 } from './workspaces/skills-delete.js';
162
+ import { operation as o161 } from './workspaces/skills-get.js';
163
+ import { operation as o162 } from './workspaces/skills-list.js';
164
+ import { operation as o163 } from './workspaces/skills-update.js';
165
+ import { operation as o164 } from './workspaces/stop-sandboxes.js';
166
+ import { operation as o165 } from './workspaces/usage.js';
165
167
  export const operations = [
166
168
  o0,
167
169
  o1,
@@ -327,4 +329,6 @@ export const operations = [
327
329
  o161,
328
330
  o162,
329
331
  o163,
332
+ o164,
333
+ o165,
330
334
  ];
@@ -0,0 +1,54 @@
1
+ export const operation = {
2
+ "method": "delete",
3
+ "path": "/api/projects/{projectId}/labels",
4
+ "command": [
5
+ "projects",
6
+ "labels",
7
+ "delete"
8
+ ],
9
+ "summary": "Delete a Session Label from the project's catalog. A label sessions still carry is refused with 409 and the list of them unless removeFromSessions is true, which removes it from each of them and resyncs their pull requests; the repository label on GitHub stays. Deleting a name the project does not have, including one already deleted, answers 404.",
10
+ "pathParams": [
11
+ "projectId"
12
+ ],
13
+ "query": [],
14
+ "body": {
15
+ "fields": [
16
+ {
17
+ "name": "name",
18
+ "flag": "name",
19
+ "kind": "string",
20
+ "required": true,
21
+ "description": "The Session Label to delete, matched case-insensitively."
22
+ },
23
+ {
24
+ "name": "removeFromSessions",
25
+ "flag": "remove-from-sessions",
26
+ "kind": "boolean",
27
+ "required": false,
28
+ "description": "Also remove the label from every session carrying it, archived and completed included, and resync their pull requests. Without it, deleting a label any session carries fails with 409 and lists them."
29
+ },
30
+ {
31
+ "name": "expectedSessionCount",
32
+ "flag": "expected-session-count",
33
+ "kind": "integer",
34
+ "required": false,
35
+ "description": "Fail with 409 when the number of sessions carrying the label changed."
36
+ },
37
+ {
38
+ "name": "expectedSessionIds",
39
+ "flag": "expected-session-ids",
40
+ "kind": "json",
41
+ "required": false,
42
+ "description": "JSON array of the confirmed session IDs. Fail with 409 if the affected sessions changed, even when their count stayed the same."
43
+ }
44
+ ],
45
+ "required": true
46
+ },
47
+ "multipart": null,
48
+ "attachments": false,
49
+ "anonymous": false,
50
+ "sandboxToken": false,
51
+ "orchestratorToken": false,
52
+ "cronToken": false,
53
+ "leadToken": false
54
+ };
@@ -0,0 +1,30 @@
1
+ export const operation = {
2
+ "method": "get",
3
+ "path": "/api/projects/{projectId}/labels/usage",
4
+ "command": [
5
+ "projects",
6
+ "labels",
7
+ "usage"
8
+ ],
9
+ "summary": "List the sessions carrying a Session Label, in every status including archived and completed, as { projectName, sessions: [{ id, title, status, pullRequestNumber }] }. Answers 404 when the project has no label by that name.",
10
+ "pathParams": [
11
+ "projectId"
12
+ ],
13
+ "query": [
14
+ {
15
+ "name": "name",
16
+ "flag": "name",
17
+ "kind": "string",
18
+ "required": true,
19
+ "description": "The Session Label to look up, matched case-insensitively."
20
+ }
21
+ ],
22
+ "body": null,
23
+ "multipart": null,
24
+ "attachments": false,
25
+ "anonymous": false,
26
+ "sandboxToken": true,
27
+ "orchestratorToken": true,
28
+ "cronToken": true,
29
+ "leadToken": true
30
+ };
@@ -20,6 +20,20 @@ export const operation = {
20
20
  "kind": "json",
21
21
  "required": true,
22
22
  "description": "JSON array of the labels the session keeps, replacing the ones it has. Up to 20, each up to 50 characters, stored lowercase. [] removes them all."
23
+ },
24
+ {
25
+ "name": "expectedLabels",
26
+ "flag": "expected-labels",
27
+ "kind": "json",
28
+ "required": false,
29
+ "description": "JSON array of the labels the caller last saw on the session. When given, the edit fails with 409 if the session carries different labels by now, or if a label it adds is no longer in the project's labels and is not listed in created."
30
+ },
31
+ {
32
+ "name": "created",
33
+ "flag": "created",
34
+ "kind": "json",
35
+ "required": false,
36
+ "description": "JSON array of the labels the caller means to create. With expectedLabels, only these may join the project's labels; without expectedLabels, every new name joins them."
23
37
  }
24
38
  ],
25
39
  "required": true
package/openapi.json CHANGED
@@ -6485,6 +6485,28 @@
6485
6485
  "maxLength": 50,
6486
6486
  "pattern": "^[^\\x00-\\x1f\\x7f]+$"
6487
6487
  }
6488
+ },
6489
+ "expectedLabels": {
6490
+ "description": "JSON array of the labels the caller last saw on the session. When given, the edit fails with 409 if the session carries different labels by now, or if a label it adds is no longer in the project's labels and is not listed in created.",
6491
+ "maxItems": 20,
6492
+ "type": "array",
6493
+ "items": {
6494
+ "type": "string",
6495
+ "minLength": 1,
6496
+ "maxLength": 50,
6497
+ "pattern": "^[^\\x00-\\x1f\\x7f]+$"
6498
+ }
6499
+ },
6500
+ "created": {
6501
+ "description": "JSON array of the labels the caller means to create. With expectedLabels, only these may join the project's labels; without expectedLabels, every new name joins them.",
6502
+ "maxItems": 20,
6503
+ "type": "array",
6504
+ "items": {
6505
+ "type": "string",
6506
+ "minLength": 1,
6507
+ "maxLength": 50,
6508
+ "pattern": "^[^\\x00-\\x1f\\x7f]+$"
6509
+ }
6488
6510
  }
6489
6511
  },
6490
6512
  "required": ["labels"]
@@ -9168,7 +9190,8 @@
9168
9190
  "description": "The Session Label to recolor.",
9169
9191
  "type": "string",
9170
9192
  "minLength": 1,
9171
- "maxLength": 50
9193
+ "maxLength": 50,
9194
+ "pattern": "^[^\\x00-\\x1f\\x7f]+$"
9172
9195
  },
9173
9196
  "color": {
9174
9197
  "description": "Six hex digits, with or without a leading #, as GitHub stores label colors.",
@@ -9212,6 +9235,164 @@
9212
9235
  }
9213
9236
  }
9214
9237
  }
9238
+ },
9239
+ "delete": {
9240
+ "operationId": "projectsLabelsDelete",
9241
+ "summary": "Delete a Session Label from the project's catalog. A label sessions still carry is refused with 409 and the list of them unless removeFromSessions is true, which removes it from each of them and resyncs their pull requests; the repository label on GitHub stays. Deleting a name the project does not have, including one already deleted, answers 404.",
9242
+ "tags": ["projects"],
9243
+ "x-kosuke-command": ["projects", "labels", "delete"],
9244
+ "parameters": [
9245
+ {
9246
+ "name": "projectId",
9247
+ "in": "path",
9248
+ "required": true,
9249
+ "schema": {
9250
+ "type": "string",
9251
+ "format": "uuid",
9252
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
9253
+ }
9254
+ }
9255
+ ],
9256
+ "requestBody": {
9257
+ "required": true,
9258
+ "content": {
9259
+ "application/json": {
9260
+ "schema": {
9261
+ "type": "object",
9262
+ "properties": {
9263
+ "name": {
9264
+ "description": "The Session Label to delete, matched case-insensitively.",
9265
+ "type": "string",
9266
+ "minLength": 1,
9267
+ "maxLength": 50,
9268
+ "pattern": "^[^\\x00-\\x1f\\x7f]+$"
9269
+ },
9270
+ "removeFromSessions": {
9271
+ "description": "Also remove the label from every session carrying it, archived and completed included, and resync their pull requests. Without it, deleting a label any session carries fails with 409 and lists them.",
9272
+ "type": "boolean"
9273
+ },
9274
+ "expectedSessionCount": {
9275
+ "description": "Fail with 409 when the number of sessions carrying the label changed.",
9276
+ "type": "integer",
9277
+ "minimum": 0,
9278
+ "maximum": 9007199254740991
9279
+ },
9280
+ "expectedSessionIds": {
9281
+ "description": "JSON array of the confirmed session IDs. Fail with 409 if the affected sessions changed, even when their count stayed the same.",
9282
+ "type": "array",
9283
+ "items": {
9284
+ "type": "string",
9285
+ "format": "uuid",
9286
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
9287
+ }
9288
+ }
9289
+ },
9290
+ "required": ["name"]
9291
+ }
9292
+ }
9293
+ }
9294
+ },
9295
+ "responses": {
9296
+ "2XX": {
9297
+ "description": "Success envelope",
9298
+ "content": {
9299
+ "application/json": {
9300
+ "schema": {
9301
+ "$ref": "#/components/schemas/ApiSuccess"
9302
+ }
9303
+ }
9304
+ }
9305
+ },
9306
+ "4XX": {
9307
+ "description": "Error envelope",
9308
+ "content": {
9309
+ "application/json": {
9310
+ "schema": {
9311
+ "$ref": "#/components/schemas/ApiError"
9312
+ }
9313
+ }
9314
+ }
9315
+ },
9316
+ "5XX": {
9317
+ "description": "Error envelope",
9318
+ "content": {
9319
+ "application/json": {
9320
+ "schema": {
9321
+ "$ref": "#/components/schemas/ApiError"
9322
+ }
9323
+ }
9324
+ }
9325
+ }
9326
+ }
9327
+ }
9328
+ },
9329
+ "/api/projects/{projectId}/labels/usage": {
9330
+ "get": {
9331
+ "operationId": "projectsLabelsUsage",
9332
+ "summary": "List the sessions carrying a Session Label, in every status including archived and completed, as { projectName, sessions: [{ id, title, status, pullRequestNumber }] }. Answers 404 when the project has no label by that name.",
9333
+ "tags": ["projects"],
9334
+ "x-kosuke-command": ["projects", "labels", "usage"],
9335
+ "x-kosuke-sandbox-token": true,
9336
+ "x-kosuke-orchestrator-token": true,
9337
+ "x-kosuke-cron-token": true,
9338
+ "x-kosuke-lead-token": true,
9339
+ "parameters": [
9340
+ {
9341
+ "name": "projectId",
9342
+ "in": "path",
9343
+ "required": true,
9344
+ "schema": {
9345
+ "type": "string",
9346
+ "format": "uuid",
9347
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
9348
+ }
9349
+ },
9350
+ {
9351
+ "name": "name",
9352
+ "in": "query",
9353
+ "required": true,
9354
+ "description": "The Session Label to look up, matched case-insensitively.",
9355
+ "schema": {
9356
+ "description": "The Session Label to look up, matched case-insensitively.",
9357
+ "type": "string",
9358
+ "minLength": 1,
9359
+ "maxLength": 50,
9360
+ "pattern": "^[^\\x00-\\x1f\\x7f]+$"
9361
+ }
9362
+ }
9363
+ ],
9364
+ "responses": {
9365
+ "2XX": {
9366
+ "description": "Success envelope",
9367
+ "content": {
9368
+ "application/json": {
9369
+ "schema": {
9370
+ "$ref": "#/components/schemas/ApiSuccess"
9371
+ }
9372
+ }
9373
+ }
9374
+ },
9375
+ "4XX": {
9376
+ "description": "Error envelope",
9377
+ "content": {
9378
+ "application/json": {
9379
+ "schema": {
9380
+ "$ref": "#/components/schemas/ApiError"
9381
+ }
9382
+ }
9383
+ }
9384
+ },
9385
+ "5XX": {
9386
+ "description": "Error envelope",
9387
+ "content": {
9388
+ "application/json": {
9389
+ "schema": {
9390
+ "$ref": "#/components/schemas/ApiError"
9391
+ }
9392
+ }
9393
+ }
9394
+ }
9395
+ }
9215
9396
  }
9216
9397
  },
9217
9398
  "/api/projects/{projectId}/preview": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kosuke-ai/cli",
3
- "version": "5.9.0",
3
+ "version": "5.10.0",
4
4
  "description": "Kosuke platform CLI. The client customers install to drive app.kosuke.ai from their own machine.",
5
5
  "license": "MIT",
6
6
  "repository": {