@kosuke-ai/cli 5.6.5 → 5.8.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/dist/agent/summary.js +129 -8
- package/dist/generated/commands/activity/list.js +3 -3
- package/dist/generated/commands/crons/artifacts-list.js +60 -0
- package/dist/generated/commands/crons/create.js +4 -4
- package/dist/generated/commands/crons/get.js +4 -4
- package/dist/generated/commands/crons/list.js +4 -4
- package/dist/generated/commands/crons/projects-resume.js +4 -4
- package/dist/generated/commands/crons/run.js +5 -5
- package/dist/generated/commands/crons/runs-artifacts-get.js +3 -3
- package/dist/generated/commands/crons/runs-artifacts-list.js +3 -3
- package/dist/generated/commands/crons/runs-cancel.js +4 -4
- package/dist/generated/commands/crons/runs-diagnostics.js +24 -0
- package/dist/generated/commands/crons/runs-get.js +4 -4
- package/dist/generated/commands/crons/runs-list.js +4 -4
- package/dist/generated/commands/crons/runs-messages.js +4 -4
- package/dist/generated/commands/crons/update.js +4 -4
- package/dist/generated/commands/deploy/cancel.js +4 -4
- package/dist/generated/commands/deploy/list.js +2 -2
- package/dist/generated/commands/deploy/messages.js +2 -2
- package/dist/generated/commands/deploy/queue-list.js +4 -4
- package/dist/generated/commands/deploy/queue-move.js +4 -4
- package/dist/generated/commands/deploy/queue-resume.js +4 -4
- package/dist/generated/commands/deploy/queue-send.js +4 -4
- package/dist/generated/commands/deploy/queue-steer.js +4 -4
- package/dist/generated/commands/deploy/queue-update.js +4 -4
- package/dist/generated/commands/deploy/run.js +4 -4
- package/dist/generated/commands/deploy/set-model.js +4 -4
- package/dist/generated/commands/github/repositories.js +4 -4
- package/dist/generated/commands/github/status.js +4 -4
- package/dist/generated/commands/index.js +168 -154
- package/dist/generated/commands/preview/get.js +4 -4
- package/dist/generated/commands/preview/health.js +4 -4
- package/dist/generated/commands/preview/reset.js +4 -4
- package/dist/generated/commands/preview/share-create.js +4 -4
- package/dist/generated/commands/preview/share-get.js +4 -4
- package/dist/generated/commands/projects/branches.js +4 -4
- package/dist/generated/commands/projects/create.js +4 -4
- package/dist/generated/commands/projects/env-vars-add.js +4 -4
- package/dist/generated/commands/projects/get.js +2 -2
- package/dist/generated/commands/projects/labels-color.js +4 -4
- package/dist/generated/commands/projects/labels.js +1 -1
- package/dist/generated/commands/projects/list.js +2 -2
- package/dist/generated/commands/projects/services-add.js +4 -4
- package/dist/generated/commands/projects/services-list.js +4 -4
- package/dist/generated/commands/projects/services-update.js +4 -4
- package/dist/generated/commands/projects/settings-get.js +4 -4
- package/dist/generated/commands/projects/settings-import.js +4 -4
- package/dist/generated/commands/projects/settings-update.js +4 -4
- package/dist/generated/commands/projects/skills.js +1 -1
- package/dist/generated/commands/projects/update.js +4 -4
- package/dist/generated/commands/sessions/activate.js +19 -5
- package/dist/generated/commands/sessions/all.js +3 -3
- package/dist/generated/commands/sessions/artifacts-attach.js +3 -3
- package/dist/generated/commands/sessions/artifacts-get.js +3 -3
- package/dist/generated/commands/sessions/artifacts-list.js +3 -3
- package/dist/generated/commands/sessions/comments-add.js +4 -4
- package/dist/generated/commands/sessions/comments-list.js +4 -4
- package/dist/generated/commands/sessions/comments-update.js +4 -4
- package/dist/generated/commands/sessions/diff-comments-add.js +4 -4
- package/dist/generated/commands/sessions/diff-comments-list.js +4 -4
- package/dist/generated/commands/sessions/diff-comments-update.js +4 -4
- package/dist/generated/commands/sessions/diff-commits.js +4 -4
- package/dist/generated/commands/sessions/diff-files.js +3 -3
- package/dist/generated/commands/sessions/diff-patch.js +3 -3
- package/dist/generated/commands/sessions/edit-prompt.js +1 -1
- package/dist/generated/commands/sessions/files-get.js +4 -4
- package/dist/generated/commands/sessions/files-list.js +4 -4
- package/dist/generated/commands/sessions/files-write.js +4 -4
- package/dist/generated/commands/sessions/get.js +2 -2
- package/dist/generated/commands/sessions/git-commit-message.js +4 -4
- package/dist/generated/commands/sessions/git-commit.js +4 -4
- package/dist/generated/commands/sessions/git-push.js +4 -4
- package/dist/generated/commands/sessions/git-state.js +4 -4
- package/dist/generated/commands/sessions/jobs-cancel.js +4 -4
- package/dist/generated/commands/sessions/jobs-get.js +1 -1
- package/dist/generated/commands/sessions/jobs-list.js +2 -2
- package/dist/generated/commands/sessions/labels-edit.js +3 -3
- package/dist/generated/commands/sessions/labels-set.js +3 -3
- package/dist/generated/commands/sessions/mark-read.js +4 -4
- package/dist/generated/commands/sessions/messages.js +1 -1
- package/dist/generated/commands/sessions/needs-you.js +4 -4
- package/dist/generated/commands/sessions/qa-slot.js +22 -0
- package/dist/generated/commands/sessions/queue-list.js +3 -3
- package/dist/generated/commands/sessions/queue-move.js +4 -4
- package/dist/generated/commands/sessions/queue-resume.js +4 -4
- package/dist/generated/commands/sessions/queue-send.js +4 -4
- package/dist/generated/commands/sessions/queue-steer.js +4 -4
- package/dist/generated/commands/sessions/queue-update.js +4 -4
- package/dist/generated/commands/sessions/runtime-command.js +4 -4
- package/dist/generated/commands/sessions/search.js +2 -2
- package/dist/generated/commands/sessions/send.js +2 -2
- package/dist/generated/commands/sessions/steer.js +4 -4
- package/dist/generated/commands/sessions/title-generate.js +4 -4
- package/dist/generated/commands/sessions/update.js +1 -1
- package/dist/generated/commands/user/plugins-list.js +3 -3
- package/dist/generated/commands/user/plugins-update.js +4 -4
- package/dist/generated/commands/user/profile.js +4 -4
- package/dist/generated/commands/user/skills-create.js +4 -4
- package/dist/generated/commands/user/skills-get.js +3 -3
- package/dist/generated/commands/user/skills-list.js +3 -3
- package/dist/generated/commands/user/skills-update.js +4 -4
- package/dist/generated/commands/user/subscriptions-get.js +4 -4
- package/dist/generated/commands/user/subscriptions-usage.js +4 -4
- package/dist/generated/commands/workspaces/access-status.js +4 -4
- package/dist/generated/commands/workspaces/ai-provider-get.js +4 -4
- package/dist/generated/commands/workspaces/ai-provider-usage-claude.js +4 -4
- package/dist/generated/commands/workspaces/ai-provider-usage-codex.js +4 -4
- package/dist/generated/commands/workspaces/ai-provider-usage-coding-plan.js +4 -4
- package/dist/generated/commands/workspaces/artifacts.js +3 -3
- package/dist/generated/commands/workspaces/credits.js +3 -3
- package/dist/generated/commands/workspaces/get.js +4 -4
- package/dist/generated/commands/workspaces/getting-started-get.js +4 -4
- package/dist/generated/commands/workspaces/getting-started-update.js +4 -4
- package/dist/generated/commands/workspaces/integrations-sentry-get.js +4 -4
- package/dist/generated/commands/workspaces/integrations-slack-get.js +4 -4
- package/dist/generated/commands/workspaces/lead-cards.js +21 -0
- package/dist/generated/commands/workspaces/lead-notifications-open.js +23 -0
- package/dist/generated/commands/workspaces/lead-proposals-create.js +25 -0
- package/dist/generated/commands/workspaces/lead-triage.js +60 -0
- package/dist/generated/commands/workspaces/list.js +3 -3
- package/dist/generated/commands/workspaces/members.js +4 -4
- package/dist/generated/commands/workspaces/plugins-list.js +2 -2
- package/dist/generated/commands/workspaces/plugins-update.js +4 -4
- package/dist/generated/commands/workspaces/sandbox-limit.js +3 -3
- package/dist/generated/commands/workspaces/skills-create.js +4 -4
- package/dist/generated/commands/workspaces/skills-get.js +2 -2
- package/dist/generated/commands/workspaces/skills-list.js +2 -2
- package/dist/generated/commands/workspaces/skills-update.js +4 -4
- package/dist/generated/commands/workspaces/stop-sandboxes.js +4 -4
- package/dist/generated/commands/workspaces/usage.js +3 -3
- package/dist/program.js +7 -10
- package/openapi.json +1293 -48
- package/package.json +1 -1
package/dist/agent/summary.js
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { createApiClient } from '../runtime/client.js';
|
|
2
2
|
import { HttpError, NEEDS_YOU_FILTER, paginationTotal } from './http.js';
|
|
3
3
|
/**
|
|
4
|
-
* `kosuke agent summary`: what needs the member
|
|
4
|
+
* `kosuke agent summary`: what needs the member, which providers are connected
|
|
5
5
|
* and what is New, in a few dozen lines an agent reads at the start of a
|
|
6
6
|
* conversation. Kept to about 1,500 tokens: each list is capped and names the
|
|
7
7
|
* command that reads the rest, and it claims only as many events as the other
|
|
8
8
|
* lines leave room for.
|
|
9
9
|
*/
|
|
10
10
|
const SUMMARY_TIMEOUT_MS = 8000;
|
|
11
|
+
/**
|
|
12
|
+
* Shorter than the summary's own: a usage read asks the provider, and a slow provider
|
|
13
|
+
* must cost the digest its numbers, never the digest.
|
|
14
|
+
*/
|
|
15
|
+
const PROVIDERS_TIMEOUT_MS = 4000;
|
|
11
16
|
const NEEDS_YOU_SHOWN = 5;
|
|
12
17
|
/** However much room is left: past this, the digest stops being a glance. */
|
|
13
18
|
const EVENTS_SHOWN = 15;
|
|
@@ -75,6 +80,115 @@ function eventLine(event) {
|
|
|
75
80
|
const words = clip(`${text}${subject ? `: ${subject}` : ''}`, TEXT_MAX);
|
|
76
81
|
return [`- ${where(event)} ${words}`, str(event.sessionUrl)].filter(Boolean).join(', ');
|
|
77
82
|
}
|
|
83
|
+
const obj = (value) => value && typeof value === 'object' && !Array.isArray(value) ? value : null;
|
|
84
|
+
/** The `data` of a success envelope, or null when the call failed or answered something else. */
|
|
85
|
+
function dataOf(result) {
|
|
86
|
+
return result.response.ok ? obj(obj(result.data)?.data) : null;
|
|
87
|
+
}
|
|
88
|
+
/** `session 42%, week 61%`, with only the windows the provider reported. */
|
|
89
|
+
function usageWords(usage) {
|
|
90
|
+
const windows = ['session', 'week'].flatMap((name) => {
|
|
91
|
+
const utilization = obj(usage?.[name])?.utilization;
|
|
92
|
+
return typeof utilization === 'number' && Number.isFinite(utilization)
|
|
93
|
+
? [`${name} ${Math.round(utilization)}% used`]
|
|
94
|
+
: [];
|
|
95
|
+
});
|
|
96
|
+
return windows.length ? windows.join(', ') : null;
|
|
97
|
+
}
|
|
98
|
+
const SUBSCRIPTIONS = [
|
|
99
|
+
{ key: 'anthropic', label: 'Your Claude subscription', usage: 'claude_code' },
|
|
100
|
+
{ key: 'openai', label: 'Your Codex subscription', usage: 'codex' },
|
|
101
|
+
{ key: 'zai', label: 'Your GLM Coding Plan', usage: 'coding_plan' },
|
|
102
|
+
];
|
|
103
|
+
const WORKSPACE_PROVIDERS = [
|
|
104
|
+
{ key: 'anthropic', name: 'Anthropic' },
|
|
105
|
+
{ key: 'openai', name: 'OpenAI' },
|
|
106
|
+
{ key: 'zai', name: 'Z.ai' },
|
|
107
|
+
];
|
|
108
|
+
const AUTH_METHOD_NAMES = {
|
|
109
|
+
api_key: 'API key',
|
|
110
|
+
aws_bedrock: 'AWS Bedrock',
|
|
111
|
+
claude_code: 'Claude login',
|
|
112
|
+
codex: 'Codex login',
|
|
113
|
+
coding_plan: 'GLM Coding Plan',
|
|
114
|
+
};
|
|
115
|
+
const USAGE_PLANS = ['claude_code', 'codex', 'coding_plan'];
|
|
116
|
+
function subscriptionEntries(subscriptions) {
|
|
117
|
+
return SUBSCRIPTIONS.flatMap(({ key, label, usage }) => {
|
|
118
|
+
const row = obj(subscriptions[key]);
|
|
119
|
+
if (!row || row.connected !== true)
|
|
120
|
+
return [];
|
|
121
|
+
return [{ label, needsReauth: row.needsReauth === true, usage }];
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
/** One entry per provider the workspace has an active, configured auth method for. */
|
|
125
|
+
function workspaceEntries(settings) {
|
|
126
|
+
const providers = obj(settings.providers) ?? {};
|
|
127
|
+
return WORKSPACE_PROVIDERS.flatMap(({ key, name }) => {
|
|
128
|
+
const provider = obj(providers[key]);
|
|
129
|
+
const method = str(provider?.activeAuthMethod);
|
|
130
|
+
const state = method ? obj(obj(provider?.authMethods)?.[method]) : null;
|
|
131
|
+
if (!method || !state || state.configured !== true)
|
|
132
|
+
return [];
|
|
133
|
+
return [
|
|
134
|
+
{
|
|
135
|
+
label: `Workspace ${name} (${AUTH_METHOD_NAMES[method] ?? method})`,
|
|
136
|
+
needsReauth: state.needsReauth === true,
|
|
137
|
+
usage: USAGE_PLANS.includes(method) ? method : null,
|
|
138
|
+
},
|
|
139
|
+
];
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
function providerLine(entry, usage) {
|
|
143
|
+
if (entry.needsReauth)
|
|
144
|
+
return `- ${entry.label}: needs reconnecting`;
|
|
145
|
+
return [`- ${entry.label}: connected`, usageWords(usage)].filter(Boolean).join(', ');
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* The Providers section's lines, or null when a connection read failed: half the
|
|
149
|
+
* connections would read as the other half not existing. A usage read that fails
|
|
150
|
+
* costs only that line's numbers.
|
|
151
|
+
*/
|
|
152
|
+
async function fetchProviders(client, workspace, signal) {
|
|
153
|
+
try {
|
|
154
|
+
const [subscriptions, settings] = await Promise.all([
|
|
155
|
+
client.GET('/api/user/subscriptions', { signal }).then(dataOf),
|
|
156
|
+
workspace
|
|
157
|
+
? client
|
|
158
|
+
.GET('/api/organizations/{workspaceId}/ai-provider', {
|
|
159
|
+
params: { path: { workspaceId: workspace } },
|
|
160
|
+
signal,
|
|
161
|
+
})
|
|
162
|
+
.then(dataOf)
|
|
163
|
+
: null,
|
|
164
|
+
]);
|
|
165
|
+
if (!subscriptions || (workspace && !settings))
|
|
166
|
+
return null;
|
|
167
|
+
const usage = (read) => read.then(dataOf).catch(() => null);
|
|
168
|
+
const mine = subscriptionEntries(subscriptions).map((entry) => ({
|
|
169
|
+
entry,
|
|
170
|
+
read: () => usage(client.GET('/api/user/subscriptions/usage', {
|
|
171
|
+
params: { query: { provider: entry.usage ?? 'claude_code' } },
|
|
172
|
+
signal,
|
|
173
|
+
})),
|
|
174
|
+
}));
|
|
175
|
+
const path = { workspaceId: workspace ?? '' };
|
|
176
|
+
const workspaceUsage = {
|
|
177
|
+
claude_code: '/api/organizations/{workspaceId}/ai-provider/claude-usage',
|
|
178
|
+
codex: '/api/organizations/{workspaceId}/ai-provider/codex-usage',
|
|
179
|
+
coding_plan: '/api/organizations/{workspaceId}/ai-provider/coding-plan-usage',
|
|
180
|
+
};
|
|
181
|
+
const shared = (settings ? workspaceEntries(settings) : []).map((entry) => ({
|
|
182
|
+
entry,
|
|
183
|
+
read: () => usage(client.GET(workspaceUsage[entry.usage ?? 'claude_code'], { params: { path }, signal })),
|
|
184
|
+
}));
|
|
185
|
+
const lines = await Promise.all([...mine, ...shared].map(async ({ entry, read }) => providerLine(entry, entry.usage && !entry.needsReauth ? await read() : null)));
|
|
186
|
+
return lines.length ? lines : ['- None connected.'];
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
78
192
|
/** Never clipped: a workspace missing here would read as one the digest did not cover. */
|
|
79
193
|
function coverageLine(sessions) {
|
|
80
194
|
const covered = sessions?.meta?.workspaces;
|
|
@@ -102,6 +216,8 @@ export function planSummary(options) {
|
|
|
102
216
|
}
|
|
103
217
|
}
|
|
104
218
|
head.push('');
|
|
219
|
+
if (options.providers?.length)
|
|
220
|
+
head.push('Providers:', ...options.providers, '');
|
|
105
221
|
const coverage = coverageLine(sessions);
|
|
106
222
|
const room = BUDGET_CHARS - head.join('\n').length - coverage.length - ACTIVITY_FRAME_CHARS - scope.length;
|
|
107
223
|
const lineMax = eventLineMax(apiUrl, needing);
|
|
@@ -145,9 +261,9 @@ export function renderSummary(plan, activity) {
|
|
|
145
261
|
}
|
|
146
262
|
/**
|
|
147
263
|
* The whole digest, or one line saying why not, so the agent reading it
|
|
148
|
-
* knows to query the CLI itself. Needs You
|
|
149
|
-
* how many events fit, and the Activity read marks events
|
|
150
|
-
* that failed after it would lose them.
|
|
264
|
+
* knows to query the CLI itself. Needs You and the providers are read first:
|
|
265
|
+
* their lines decide how many events fit, and the Activity read marks events
|
|
266
|
+
* seen, so a digest that failed after it would lose them.
|
|
151
267
|
*/
|
|
152
268
|
export async function fetchSummary(options) {
|
|
153
269
|
if (!options.apiKey)
|
|
@@ -160,12 +276,17 @@ export async function fetchSummary(options) {
|
|
|
160
276
|
const signal = AbortSignal.timeout(options.timeoutMs ?? SUMMARY_TIMEOUT_MS);
|
|
161
277
|
try {
|
|
162
278
|
const workspace = options.workspace ? { workspace: options.workspace } : {};
|
|
163
|
-
const
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
279
|
+
const [needsYou, providers] = await Promise.all([
|
|
280
|
+
client.GET('/api/chat-sessions', {
|
|
281
|
+
params: { query: { ...NEEDS_YOU_QUERY, ...workspace } },
|
|
282
|
+
signal,
|
|
283
|
+
}),
|
|
284
|
+
fetchProviders(client, options.workspace, AbortSignal.any([signal, AbortSignal.timeout(PROVIDERS_TIMEOUT_MS)])),
|
|
285
|
+
]);
|
|
286
|
+
const sessions = body(needsYou);
|
|
167
287
|
const plan = planSummary({
|
|
168
288
|
sessions,
|
|
289
|
+
providers,
|
|
169
290
|
apiUrl: options.apiUrl,
|
|
170
291
|
now: (options.now ?? Date.now)(),
|
|
171
292
|
...workspace,
|
|
@@ -69,8 +69,8 @@ export const operation = {
|
|
|
69
69
|
"multipart": null,
|
|
70
70
|
"attachments": false,
|
|
71
71
|
"anonymous": false,
|
|
72
|
-
"sandboxToken":
|
|
73
|
-
"orchestratorToken":
|
|
74
|
-
"cronToken":
|
|
72
|
+
"sandboxToken": true,
|
|
73
|
+
"orchestratorToken": true,
|
|
74
|
+
"cronToken": true,
|
|
75
75
|
"leadToken": true
|
|
76
76
|
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export const operation = {
|
|
2
|
+
"method": "get",
|
|
3
|
+
"path": "/api/organizations/{workspaceId}/crons/{cronId}/artifacts",
|
|
4
|
+
"command": [
|
|
5
|
+
"crons",
|
|
6
|
+
"artifacts",
|
|
7
|
+
"list"
|
|
8
|
+
],
|
|
9
|
+
"summary": "List the Artifacts a cron's runs published, across all of its runs, most recently changed first: each one's title, kind and version, with the run and the project it came from, and the total the filters keep. One row per Artifact: the same slug published by two runs is two rows. Rows only: a body or a file url comes from crons runs artifacts get, with the row's runId. The project and kind filters each take several values and keep an Artifact matching any of them.",
|
|
10
|
+
"pathParams": [
|
|
11
|
+
"workspaceId",
|
|
12
|
+
"cronId"
|
|
13
|
+
],
|
|
14
|
+
"query": [
|
|
15
|
+
{
|
|
16
|
+
"name": "projectId",
|
|
17
|
+
"flag": "project",
|
|
18
|
+
"kind": "string",
|
|
19
|
+
"required": false,
|
|
20
|
+
"description": "Only the Artifacts of runs in these projects.",
|
|
21
|
+
"repeated": true
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "kind",
|
|
25
|
+
"flag": "kind",
|
|
26
|
+
"kind": "string",
|
|
27
|
+
"required": false,
|
|
28
|
+
"description": "Only the Artifacts of these kinds.",
|
|
29
|
+
"choices": [
|
|
30
|
+
"markdown",
|
|
31
|
+
"html",
|
|
32
|
+
"image",
|
|
33
|
+
"video"
|
|
34
|
+
],
|
|
35
|
+
"repeated": true
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "page",
|
|
39
|
+
"flag": "page",
|
|
40
|
+
"kind": "integer",
|
|
41
|
+
"required": false,
|
|
42
|
+
"description": "1-based. Default 1."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "pageSize",
|
|
46
|
+
"flag": "page-size",
|
|
47
|
+
"kind": "integer",
|
|
48
|
+
"required": false,
|
|
49
|
+
"description": "Default 25. Values above 100 are clamped, not rejected."
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"body": null,
|
|
53
|
+
"multipart": null,
|
|
54
|
+
"attachments": false,
|
|
55
|
+
"anonymous": false,
|
|
56
|
+
"sandboxToken": true,
|
|
57
|
+
"orchestratorToken": true,
|
|
58
|
+
"cronToken": true,
|
|
59
|
+
"leadToken": true
|
|
60
|
+
};
|
|
@@ -60,8 +60,8 @@ export const operation = {
|
|
|
60
60
|
"multipart": null,
|
|
61
61
|
"attachments": false,
|
|
62
62
|
"anonymous": false,
|
|
63
|
-
"sandboxToken":
|
|
64
|
-
"orchestratorToken":
|
|
65
|
-
"cronToken":
|
|
66
|
-
"leadToken":
|
|
63
|
+
"sandboxToken": true,
|
|
64
|
+
"orchestratorToken": true,
|
|
65
|
+
"cronToken": true,
|
|
66
|
+
"leadToken": true
|
|
67
67
|
};
|
|
@@ -15,8 +15,8 @@ export const operation = {
|
|
|
15
15
|
"multipart": null,
|
|
16
16
|
"attachments": false,
|
|
17
17
|
"anonymous": false,
|
|
18
|
-
"sandboxToken":
|
|
19
|
-
"orchestratorToken":
|
|
20
|
-
"cronToken":
|
|
21
|
-
"leadToken":
|
|
18
|
+
"sandboxToken": true,
|
|
19
|
+
"orchestratorToken": true,
|
|
20
|
+
"cronToken": true,
|
|
21
|
+
"leadToken": true
|
|
22
22
|
};
|
|
@@ -50,8 +50,8 @@ export const operation = {
|
|
|
50
50
|
"multipart": null,
|
|
51
51
|
"attachments": false,
|
|
52
52
|
"anonymous": false,
|
|
53
|
-
"sandboxToken":
|
|
54
|
-
"orchestratorToken":
|
|
55
|
-
"cronToken":
|
|
56
|
-
"leadToken":
|
|
53
|
+
"sandboxToken": true,
|
|
54
|
+
"orchestratorToken": true,
|
|
55
|
+
"cronToken": true,
|
|
56
|
+
"leadToken": true
|
|
57
57
|
};
|
|
@@ -17,8 +17,8 @@ export const operation = {
|
|
|
17
17
|
"multipart": null,
|
|
18
18
|
"attachments": false,
|
|
19
19
|
"anonymous": false,
|
|
20
|
-
"sandboxToken":
|
|
21
|
-
"orchestratorToken":
|
|
22
|
-
"cronToken":
|
|
23
|
-
"leadToken":
|
|
20
|
+
"sandboxToken": true,
|
|
21
|
+
"orchestratorToken": true,
|
|
22
|
+
"cronToken": true,
|
|
23
|
+
"leadToken": true
|
|
24
24
|
};
|
|
@@ -5,7 +5,7 @@ export const operation = {
|
|
|
5
5
|
"crons",
|
|
6
6
|
"run"
|
|
7
7
|
],
|
|
8
|
-
"summary": "Fire a cron once now, paused or not, exactly as a scheduled fire: one Cron Run per project, each in that project's main sandbox on the workspace's Credentials, and the sessions they file are Kosuke's, not yours. Every project that five failed runs in a row did not pause, or only the projects named. Answers once the fire
|
|
8
|
+
"summary": "Fire a cron once now, paused or not, exactly as a scheduled fire: one Cron Run per project, each in that project's main sandbox on the workspace's Credentials, and the sessions they file are Kosuke's, not yours. Every project that five failed runs in a row did not pause, or only the projects named. Answers with runs, one { projectId, runId, status } per project: status is the run's status when the request answers, after waiting up to about ten seconds for the fire: running once the run was handed to the Cron Agent, failed or skipped when the fire refused it, succeeded, failed or cancelled when the run had already ended, and queued when the fire had not opened the run yet. crons runs get reads any of the run ids. The creator or a workspace admin only.",
|
|
9
9
|
"pathParams": [
|
|
10
10
|
"workspaceId",
|
|
11
11
|
"cronId"
|
|
@@ -27,8 +27,8 @@ export const operation = {
|
|
|
27
27
|
"multipart": null,
|
|
28
28
|
"attachments": false,
|
|
29
29
|
"anonymous": false,
|
|
30
|
-
"sandboxToken":
|
|
31
|
-
"orchestratorToken":
|
|
32
|
-
"cronToken":
|
|
33
|
-
"leadToken":
|
|
30
|
+
"sandboxToken": true,
|
|
31
|
+
"orchestratorToken": true,
|
|
32
|
+
"cronToken": true,
|
|
33
|
+
"leadToken": true
|
|
34
34
|
};
|
|
@@ -19,8 +19,8 @@ export const operation = {
|
|
|
19
19
|
"multipart": null,
|
|
20
20
|
"attachments": false,
|
|
21
21
|
"anonymous": false,
|
|
22
|
-
"sandboxToken":
|
|
23
|
-
"orchestratorToken":
|
|
24
|
-
"cronToken":
|
|
22
|
+
"sandboxToken": true,
|
|
23
|
+
"orchestratorToken": true,
|
|
24
|
+
"cronToken": true,
|
|
25
25
|
"leadToken": true
|
|
26
26
|
};
|
|
@@ -18,8 +18,8 @@ export const operation = {
|
|
|
18
18
|
"multipart": null,
|
|
19
19
|
"attachments": false,
|
|
20
20
|
"anonymous": false,
|
|
21
|
-
"sandboxToken":
|
|
22
|
-
"orchestratorToken":
|
|
23
|
-
"cronToken":
|
|
21
|
+
"sandboxToken": true,
|
|
22
|
+
"orchestratorToken": true,
|
|
23
|
+
"cronToken": true,
|
|
24
24
|
"leadToken": true
|
|
25
25
|
};
|
|
@@ -17,8 +17,8 @@ export const operation = {
|
|
|
17
17
|
"multipart": null,
|
|
18
18
|
"attachments": false,
|
|
19
19
|
"anonymous": false,
|
|
20
|
-
"sandboxToken":
|
|
21
|
-
"orchestratorToken":
|
|
22
|
-
"cronToken":
|
|
23
|
-
"leadToken":
|
|
20
|
+
"sandboxToken": true,
|
|
21
|
+
"orchestratorToken": true,
|
|
22
|
+
"cronToken": true,
|
|
23
|
+
"leadToken": true
|
|
24
24
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const operation = {
|
|
2
|
+
"method": "get",
|
|
3
|
+
"path": "/api/organizations/{workspaceId}/crons/{cronId}/runs/{runId}/diagnostics",
|
|
4
|
+
"command": [
|
|
5
|
+
"crons",
|
|
6
|
+
"runs",
|
|
7
|
+
"diagnostics"
|
|
8
|
+
],
|
|
9
|
+
"summary": "Read why a run of a cron ended as it did: its status, error, error code and stop source (member_stop, host_watch, deadline, replaced, sandbox_abort or runtime_error, with who stopped it), the main sandbox it ran in and that sandbox's agent version, when each phase happened (queued, main woken, credentials ready, agent requested, first event, done), the sandbox's own done payload, and the Cron Agent's log lines from the sandbox with secrets redacted. The log is capped at 256 KB and cleared after 30 days. The creator or a workspace admin only.",
|
|
10
|
+
"pathParams": [
|
|
11
|
+
"workspaceId",
|
|
12
|
+
"cronId",
|
|
13
|
+
"runId"
|
|
14
|
+
],
|
|
15
|
+
"query": [],
|
|
16
|
+
"body": null,
|
|
17
|
+
"multipart": null,
|
|
18
|
+
"attachments": false,
|
|
19
|
+
"anonymous": false,
|
|
20
|
+
"sandboxToken": false,
|
|
21
|
+
"orchestratorToken": false,
|
|
22
|
+
"cronToken": false,
|
|
23
|
+
"leadToken": false
|
|
24
|
+
};
|
|
@@ -17,8 +17,8 @@ export const operation = {
|
|
|
17
17
|
"multipart": null,
|
|
18
18
|
"attachments": false,
|
|
19
19
|
"anonymous": false,
|
|
20
|
-
"sandboxToken":
|
|
21
|
-
"orchestratorToken":
|
|
22
|
-
"cronToken":
|
|
23
|
-
"leadToken":
|
|
20
|
+
"sandboxToken": true,
|
|
21
|
+
"orchestratorToken": true,
|
|
22
|
+
"cronToken": true,
|
|
23
|
+
"leadToken": true
|
|
24
24
|
};
|
|
@@ -54,8 +54,8 @@ export const operation = {
|
|
|
54
54
|
"multipart": null,
|
|
55
55
|
"attachments": false,
|
|
56
56
|
"anonymous": false,
|
|
57
|
-
"sandboxToken":
|
|
58
|
-
"orchestratorToken":
|
|
59
|
-
"cronToken":
|
|
60
|
-
"leadToken":
|
|
57
|
+
"sandboxToken": true,
|
|
58
|
+
"orchestratorToken": true,
|
|
59
|
+
"cronToken": true,
|
|
60
|
+
"leadToken": true
|
|
61
61
|
};
|
|
@@ -17,8 +17,8 @@ export const operation = {
|
|
|
17
17
|
"multipart": null,
|
|
18
18
|
"attachments": false,
|
|
19
19
|
"anonymous": false,
|
|
20
|
-
"sandboxToken":
|
|
21
|
-
"orchestratorToken":
|
|
22
|
-
"cronToken":
|
|
23
|
-
"leadToken":
|
|
20
|
+
"sandboxToken": true,
|
|
21
|
+
"orchestratorToken": true,
|
|
22
|
+
"cronToken": true,
|
|
23
|
+
"leadToken": true
|
|
24
24
|
};
|
|
@@ -68,8 +68,8 @@ export const operation = {
|
|
|
68
68
|
"multipart": null,
|
|
69
69
|
"attachments": false,
|
|
70
70
|
"anonymous": false,
|
|
71
|
-
"sandboxToken":
|
|
72
|
-
"orchestratorToken":
|
|
73
|
-
"cronToken":
|
|
74
|
-
"leadToken":
|
|
71
|
+
"sandboxToken": true,
|
|
72
|
+
"orchestratorToken": true,
|
|
73
|
+
"cronToken": true,
|
|
74
|
+
"leadToken": true
|
|
75
75
|
};
|
|
@@ -14,8 +14,8 @@ export const operation = {
|
|
|
14
14
|
"multipart": null,
|
|
15
15
|
"attachments": false,
|
|
16
16
|
"anonymous": false,
|
|
17
|
-
"sandboxToken":
|
|
18
|
-
"orchestratorToken":
|
|
19
|
-
"cronToken":
|
|
20
|
-
"leadToken":
|
|
17
|
+
"sandboxToken": true,
|
|
18
|
+
"orchestratorToken": true,
|
|
19
|
+
"cronToken": true,
|
|
20
|
+
"leadToken": true
|
|
21
21
|
};
|
|
@@ -15,8 +15,8 @@ export const operation = {
|
|
|
15
15
|
"multipart": null,
|
|
16
16
|
"attachments": false,
|
|
17
17
|
"anonymous": false,
|
|
18
|
-
"sandboxToken":
|
|
19
|
-
"orchestratorToken":
|
|
20
|
-
"cronToken":
|
|
21
|
-
"leadToken":
|
|
18
|
+
"sandboxToken": true,
|
|
19
|
+
"orchestratorToken": true,
|
|
20
|
+
"cronToken": true,
|
|
21
|
+
"leadToken": true
|
|
22
22
|
};
|
|
@@ -27,8 +27,8 @@ export const operation = {
|
|
|
27
27
|
"multipart": null,
|
|
28
28
|
"attachments": false,
|
|
29
29
|
"anonymous": false,
|
|
30
|
-
"sandboxToken":
|
|
31
|
-
"orchestratorToken":
|
|
32
|
-
"cronToken":
|
|
33
|
-
"leadToken":
|
|
30
|
+
"sandboxToken": true,
|
|
31
|
+
"orchestratorToken": true,
|
|
32
|
+
"cronToken": true,
|
|
33
|
+
"leadToken": true
|
|
34
34
|
};
|
|
@@ -15,8 +15,8 @@ export const operation = {
|
|
|
15
15
|
"multipart": null,
|
|
16
16
|
"attachments": false,
|
|
17
17
|
"anonymous": false,
|
|
18
|
-
"sandboxToken":
|
|
19
|
-
"orchestratorToken":
|
|
20
|
-
"cronToken":
|
|
21
|
-
"leadToken":
|
|
18
|
+
"sandboxToken": true,
|
|
19
|
+
"orchestratorToken": true,
|
|
20
|
+
"cronToken": true,
|
|
21
|
+
"leadToken": true
|
|
22
22
|
};
|
|
@@ -16,8 +16,8 @@ export const operation = {
|
|
|
16
16
|
"multipart": null,
|
|
17
17
|
"attachments": false,
|
|
18
18
|
"anonymous": false,
|
|
19
|
-
"sandboxToken":
|
|
20
|
-
"orchestratorToken":
|
|
21
|
-
"cronToken":
|
|
22
|
-
"leadToken":
|
|
19
|
+
"sandboxToken": true,
|
|
20
|
+
"orchestratorToken": true,
|
|
21
|
+
"cronToken": true,
|
|
22
|
+
"leadToken": true
|
|
23
23
|
};
|
|
@@ -16,8 +16,8 @@ export const operation = {
|
|
|
16
16
|
"multipart": null,
|
|
17
17
|
"attachments": false,
|
|
18
18
|
"anonymous": false,
|
|
19
|
-
"sandboxToken":
|
|
20
|
-
"orchestratorToken":
|
|
21
|
-
"cronToken":
|
|
22
|
-
"leadToken":
|
|
19
|
+
"sandboxToken": true,
|
|
20
|
+
"orchestratorToken": true,
|
|
21
|
+
"cronToken": true,
|
|
22
|
+
"leadToken": true
|
|
23
23
|
};
|
|
@@ -49,8 +49,8 @@ export const operation = {
|
|
|
49
49
|
],
|
|
50
50
|
"attachments": true,
|
|
51
51
|
"anonymous": false,
|
|
52
|
-
"sandboxToken":
|
|
53
|
-
"orchestratorToken":
|
|
54
|
-
"cronToken":
|
|
55
|
-
"leadToken":
|
|
52
|
+
"sandboxToken": true,
|
|
53
|
+
"orchestratorToken": true,
|
|
54
|
+
"cronToken": true,
|
|
55
|
+
"leadToken": true
|
|
56
56
|
};
|
|
@@ -58,8 +58,8 @@ export const operation = {
|
|
|
58
58
|
],
|
|
59
59
|
"attachments": true,
|
|
60
60
|
"anonymous": false,
|
|
61
|
-
"sandboxToken":
|
|
62
|
-
"orchestratorToken":
|
|
63
|
-
"cronToken":
|
|
64
|
-
"leadToken":
|
|
61
|
+
"sandboxToken": true,
|
|
62
|
+
"orchestratorToken": true,
|
|
63
|
+
"cronToken": true,
|
|
64
|
+
"leadToken": true
|
|
65
65
|
};
|
|
@@ -24,8 +24,8 @@ export const operation = {
|
|
|
24
24
|
"multipart": null,
|
|
25
25
|
"attachments": false,
|
|
26
26
|
"anonymous": false,
|
|
27
|
-
"sandboxToken":
|
|
28
|
-
"orchestratorToken":
|
|
29
|
-
"cronToken":
|
|
30
|
-
"leadToken":
|
|
27
|
+
"sandboxToken": true,
|
|
28
|
+
"orchestratorToken": true,
|
|
29
|
+
"cronToken": true,
|
|
30
|
+
"leadToken": true
|
|
31
31
|
};
|
|
@@ -12,8 +12,8 @@ export const operation = {
|
|
|
12
12
|
"multipart": null,
|
|
13
13
|
"attachments": false,
|
|
14
14
|
"anonymous": false,
|
|
15
|
-
"sandboxToken":
|
|
16
|
-
"orchestratorToken":
|
|
17
|
-
"cronToken":
|
|
18
|
-
"leadToken":
|
|
15
|
+
"sandboxToken": true,
|
|
16
|
+
"orchestratorToken": true,
|
|
17
|
+
"cronToken": true,
|
|
18
|
+
"leadToken": true
|
|
19
19
|
};
|
|
@@ -12,8 +12,8 @@ export const operation = {
|
|
|
12
12
|
"multipart": null,
|
|
13
13
|
"attachments": false,
|
|
14
14
|
"anonymous": false,
|
|
15
|
-
"sandboxToken":
|
|
16
|
-
"orchestratorToken":
|
|
17
|
-
"cronToken":
|
|
18
|
-
"leadToken":
|
|
15
|
+
"sandboxToken": true,
|
|
16
|
+
"orchestratorToken": true,
|
|
17
|
+
"cronToken": true,
|
|
18
|
+
"leadToken": true
|
|
19
19
|
};
|