@kosuke-ai/cli 6.11.0 → 6.12.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/generated/commands/activity/list.js +2 -2
- package/dist/generated/commands/crons/artifacts-list.js +1 -1
- package/dist/generated/commands/crons/create.js +1 -1
- package/dist/generated/commands/crons/delete.js +1 -1
- package/dist/generated/commands/crons/get.js +1 -1
- package/dist/generated/commands/crons/list.js +1 -1
- package/dist/generated/commands/crons/projects-resume.js +1 -1
- package/dist/generated/commands/crons/run.js +1 -1
- package/dist/generated/commands/crons/runs-artifacts-get.js +1 -1
- package/dist/generated/commands/crons/runs-artifacts-list.js +1 -1
- package/dist/generated/commands/crons/runs-cancel.js +1 -1
- package/dist/generated/commands/crons/runs-diagnostics.js +1 -1
- package/dist/generated/commands/crons/runs-get.js +1 -1
- package/dist/generated/commands/crons/runs-list.js +1 -1
- package/dist/generated/commands/crons/runs-messages.js +1 -1
- package/dist/generated/commands/crons/update.js +1 -1
- package/dist/generated/commands/deploy/cancel.js +1 -1
- package/dist/generated/commands/deploy/list.js +1 -1
- package/dist/generated/commands/deploy/messages.js +1 -1
- package/dist/generated/commands/deploy/queue-delete.js +1 -1
- package/dist/generated/commands/deploy/queue-list.js +1 -1
- package/dist/generated/commands/deploy/queue-move.js +1 -1
- package/dist/generated/commands/deploy/queue-resume.js +1 -1
- package/dist/generated/commands/deploy/queue-send.js +1 -1
- package/dist/generated/commands/deploy/queue-steer.js +1 -1
- package/dist/generated/commands/deploy/queue-update.js +1 -1
- package/dist/generated/commands/deploy/run.js +1 -1
- package/dist/generated/commands/deploy/set-model.js +1 -1
- package/dist/generated/commands/github/repositories.js +1 -1
- package/dist/generated/commands/github/status.js +1 -1
- package/dist/generated/commands/index.js +116 -120
- package/dist/generated/commands/integrations/execute.js +1 -1
- package/dist/generated/commands/integrations/tools.js +1 -1
- package/dist/generated/commands/models/list.js +1 -1
- package/dist/generated/commands/preview/get.js +1 -1
- package/dist/generated/commands/preview/health.js +1 -1
- package/dist/generated/commands/preview/reset.js +1 -1
- package/dist/generated/commands/preview/share-create.js +1 -1
- package/dist/generated/commands/preview/share-delete.js +1 -1
- package/dist/generated/commands/preview/share-get.js +1 -1
- package/dist/generated/commands/preview/shared-artifact.js +1 -1
- package/dist/generated/commands/preview/shared.js +1 -1
- package/dist/generated/commands/projects/branches.js +1 -1
- package/dist/generated/commands/projects/create.js +2 -2
- package/dist/generated/commands/projects/delete.js +1 -1
- package/dist/generated/commands/projects/env-vars-add.js +1 -1
- package/dist/generated/commands/projects/env-vars-remove.js +1 -1
- package/dist/generated/commands/projects/get.js +1 -1
- package/dist/generated/commands/projects/labels-color.js +1 -1
- package/dist/generated/commands/projects/labels-delete.js +1 -1
- package/dist/generated/commands/projects/labels-usage.js +1 -1
- package/dist/generated/commands/projects/labels.js +1 -1
- package/dist/generated/commands/projects/list.js +2 -2
- package/dist/generated/commands/projects/qa-guide-get.js +1 -1
- package/dist/generated/commands/projects/qa-guide-set.js +1 -1
- package/dist/generated/commands/projects/services-add.js +1 -1
- package/dist/generated/commands/projects/services-list.js +1 -1
- package/dist/generated/commands/projects/services-remove.js +1 -1
- package/dist/generated/commands/projects/services-update.js +1 -1
- package/dist/generated/commands/projects/settings-get.js +1 -1
- package/dist/generated/commands/projects/settings-import.js +1 -1
- package/dist/generated/commands/projects/settings-update.js +1 -1
- package/dist/generated/commands/projects/skills.js +1 -1
- package/dist/generated/commands/projects/update.js +1 -1
- package/dist/generated/commands/sensei/cards.js +27 -0
- package/dist/generated/commands/{workspaces/lead-merge.js → sensei/merge.js} +7 -9
- package/dist/generated/commands/{workspaces/lead-notifications-open.js → sensei/notifications-open.js} +5 -6
- package/dist/generated/commands/sensei/proposals-create.js +23 -0
- package/dist/generated/commands/{workspaces/lead-review-request.js → sensei/review-request.js} +8 -10
- package/dist/generated/commands/{workspaces/lead-session-send.js → sensei/session-send.js} +8 -10
- package/dist/generated/commands/{workspaces/lead-triage.js → sensei/triage.js} +8 -10
- package/dist/generated/commands/sessions/activate.js +1 -1
- package/dist/generated/commands/sessions/all.js +2 -2
- package/dist/generated/commands/sessions/artifacts-attach.js +3 -3
- package/dist/generated/commands/sessions/artifacts-get.js +1 -1
- package/dist/generated/commands/sessions/artifacts-list.js +1 -1
- package/dist/generated/commands/sessions/comments-add.js +1 -1
- package/dist/generated/commands/sessions/comments-delete.js +1 -1
- package/dist/generated/commands/sessions/comments-list.js +1 -1
- package/dist/generated/commands/sessions/comments-update.js +1 -1
- package/dist/generated/commands/sessions/create.js +15 -1
- package/dist/generated/commands/sessions/delete.js +1 -1
- package/dist/generated/commands/sessions/diff-comments-add.js +1 -1
- package/dist/generated/commands/sessions/diff-comments-delete.js +1 -1
- package/dist/generated/commands/sessions/diff-comments-list.js +1 -1
- package/dist/generated/commands/sessions/diff-comments-update.js +1 -1
- package/dist/generated/commands/sessions/diff-commits.js +1 -1
- package/dist/generated/commands/sessions/diff-files.js +1 -1
- package/dist/generated/commands/sessions/diff-patch.js +1 -1
- package/dist/generated/commands/sessions/edit-prompt.js +1 -1
- package/dist/generated/commands/sessions/files-get.js +1 -1
- package/dist/generated/commands/sessions/files-list.js +1 -1
- package/dist/generated/commands/sessions/files-write.js +1 -1
- package/dist/generated/commands/sessions/get.js +1 -1
- package/dist/generated/commands/sessions/git-commit-message.js +1 -1
- package/dist/generated/commands/sessions/git-commit.js +1 -1
- package/dist/generated/commands/sessions/git-push.js +1 -1
- package/dist/generated/commands/sessions/git-state.js +1 -1
- package/dist/generated/commands/sessions/jobs-cancel.js +1 -1
- package/dist/generated/commands/sessions/jobs-get.js +1 -1
- package/dist/generated/commands/sessions/jobs-list.js +1 -1
- package/dist/generated/commands/sessions/labels-edit.js +1 -1
- package/dist/generated/commands/sessions/labels-set.js +1 -1
- package/dist/generated/commands/sessions/list.js +1 -1
- package/dist/generated/commands/sessions/mark-read.js +1 -1
- package/dist/generated/commands/sessions/message.js +1 -1
- package/dist/generated/commands/sessions/messages.js +1 -1
- package/dist/generated/commands/sessions/needs-you.js +2 -2
- package/dist/generated/commands/sessions/queue-delete.js +1 -1
- package/dist/generated/commands/sessions/queue-list.js +1 -1
- package/dist/generated/commands/sessions/queue-move.js +1 -1
- package/dist/generated/commands/sessions/queue-resume.js +1 -1
- package/dist/generated/commands/sessions/queue-send.js +1 -1
- package/dist/generated/commands/sessions/queue-steer.js +1 -1
- package/dist/generated/commands/sessions/queue-update.js +1 -1
- package/dist/generated/commands/sessions/runtime-command.js +1 -1
- package/dist/generated/commands/sessions/search.js +2 -2
- package/dist/generated/commands/sessions/send.js +1 -1
- package/dist/generated/commands/sessions/steer.js +1 -1
- package/dist/generated/commands/sessions/sync.js +1 -1
- package/dist/generated/commands/sessions/title-generate.js +1 -1
- package/dist/generated/commands/sessions/update.js +1 -1
- package/dist/generated/commands/user/auth-token-revoke.js +1 -1
- package/dist/generated/commands/user/integrations-list.js +1 -1
- package/dist/generated/commands/user/integrations-remove.js +1 -1
- package/dist/generated/commands/user/plugins-list.js +1 -1
- package/dist/generated/commands/user/plugins-update.js +1 -1
- package/dist/generated/commands/user/profile.js +2 -2
- package/dist/generated/commands/user/push-devices-register.js +1 -1
- package/dist/generated/commands/user/push-devices-remove.js +1 -1
- package/dist/generated/commands/user/skills-create.js +1 -1
- package/dist/generated/commands/user/skills-delete.js +1 -1
- package/dist/generated/commands/user/skills-get.js +1 -1
- package/dist/generated/commands/user/skills-list.js +1 -1
- package/dist/generated/commands/user/skills-update.js +1 -1
- package/dist/generated/commands/user/subscriptions-delete.js +1 -1
- package/dist/generated/commands/user/subscriptions-get.js +1 -1
- package/dist/generated/commands/user/subscriptions-login-claude-complete.js +1 -1
- package/dist/generated/commands/user/subscriptions-login-claude-start.js +1 -1
- package/dist/generated/commands/user/subscriptions-login-codex-complete.js +1 -1
- package/dist/generated/commands/user/subscriptions-login-codex-start.js +1 -1
- package/dist/generated/commands/user/subscriptions-logins-delete.js +1 -1
- package/dist/generated/commands/user/subscriptions-logins-reorder.js +1 -1
- package/dist/generated/commands/user/subscriptions-set-default-model.js +1 -1
- package/dist/generated/commands/user/subscriptions-set-key.js +1 -1
- package/dist/generated/commands/user/subscriptions-usage.js +1 -1
- package/dist/generated/commands/workspaces/access-status.js +1 -1
- package/dist/generated/commands/workspaces/ai-provider-get.js +1 -1
- package/dist/generated/commands/workspaces/ai-provider-logins-reorder.js +1 -1
- package/dist/generated/commands/workspaces/ai-provider-remove.js +1 -1
- package/dist/generated/commands/workspaces/ai-provider-set.js +1 -1
- package/dist/generated/commands/workspaces/ai-provider-usage-claude.js +1 -1
- package/dist/generated/commands/workspaces/ai-provider-usage-codex.js +1 -1
- package/dist/generated/commands/workspaces/ai-provider-usage-coding-plan.js +1 -1
- package/dist/generated/commands/workspaces/ai-provider-usage-deepseek.js +1 -1
- package/dist/generated/commands/workspaces/ai-provider-usage-kimi-code.js +1 -1
- package/dist/generated/commands/workspaces/artifacts.js +1 -1
- package/dist/generated/commands/workspaces/credits.js +1 -1
- package/dist/generated/commands/workspaces/get.js +1 -1
- package/dist/generated/commands/workspaces/integrations-get.js +1 -1
- package/dist/generated/commands/workspaces/integrations-list.js +1 -1
- package/dist/generated/commands/workspaces/integrations-remove.js +1 -1
- package/dist/generated/commands/workspaces/integrations-slack-get.js +1 -1
- package/dist/generated/commands/workspaces/list.js +1 -1
- package/dist/generated/commands/workspaces/members.js +1 -1
- package/dist/generated/commands/workspaces/plugins-list.js +1 -1
- package/dist/generated/commands/workspaces/plugins-update.js +1 -1
- package/dist/generated/commands/workspaces/provider-login-claude-complete.js +1 -1
- package/dist/generated/commands/workspaces/provider-login-claude-start.js +1 -1
- package/dist/generated/commands/workspaces/provider-login-codex-complete.js +1 -1
- package/dist/generated/commands/workspaces/provider-login-codex-start.js +1 -1
- package/dist/generated/commands/workspaces/sandbox-limit.js +1 -1
- package/dist/generated/commands/workspaces/skills-create.js +1 -1
- package/dist/generated/commands/workspaces/skills-delete.js +1 -1
- package/dist/generated/commands/workspaces/skills-get.js +1 -1
- package/dist/generated/commands/workspaces/skills-list.js +1 -1
- package/dist/generated/commands/workspaces/skills-update.js +1 -1
- package/dist/generated/commands/workspaces/stop-sandboxes.js +1 -1
- package/dist/generated/commands/workspaces/timezone-set.js +1 -1
- package/dist/generated/commands/workspaces/usage.js +1 -1
- package/dist/program.js +4 -4
- package/dist/runtime/attach.js +46 -6
- package/dist/runtime/credentials.js +15 -7
- package/openapi.json +4262 -4263
- package/package.json +1 -1
- package/dist/generated/commands/workspaces/getting-started-get.js +0 -22
- package/dist/generated/commands/workspaces/getting-started-update.js +0 -36
- package/dist/generated/commands/workspaces/lead-cards.js +0 -21
- package/dist/generated/commands/workspaces/lead-proposals-create.js +0 -25
package/dist/program.js
CHANGED
|
@@ -5,7 +5,7 @@ import { attachIntegrationsCommands } from './commands/integrations.js';
|
|
|
5
5
|
import { attachWatchCommand } from './commands/watch.js';
|
|
6
6
|
import { operations } from './generated/commands/index.js';
|
|
7
7
|
import { attachOperation } from './runtime/attach.js';
|
|
8
|
-
import { isCronToken,
|
|
8
|
+
import { isCronToken, isSenseiToken, isOrchestratorToken, isSandboxAgentToken, } from './runtime/credentials.js';
|
|
9
9
|
import { createRuntime, ExitSignal } from './runtime/runtime.js';
|
|
10
10
|
import { version } from './runtime/version.js';
|
|
11
11
|
/**
|
|
@@ -44,8 +44,8 @@ export function createProgram(options = {}) {
|
|
|
44
44
|
? 'orchestratorToken'
|
|
45
45
|
: isCronToken(token)
|
|
46
46
|
? 'cronToken'
|
|
47
|
-
:
|
|
48
|
-
? '
|
|
47
|
+
: isSenseiToken(token)
|
|
48
|
+
? 'senseiToken'
|
|
49
49
|
: null;
|
|
50
50
|
const reachable = narrowedTo
|
|
51
51
|
? operations.filter((operation) => operation[narrowedTo])
|
|
@@ -53,7 +53,7 @@ export function createProgram(options = {}) {
|
|
|
53
53
|
for (const operation of reachable)
|
|
54
54
|
attachOperation(program, operation, lazy);
|
|
55
55
|
// Every agent token reads the digest's two lists as its member. Only a
|
|
56
|
-
// member's own key and their
|
|
56
|
+
// member's own key and their Sensei may mark Activity seen, so the others
|
|
57
57
|
// read it with `--peek`.
|
|
58
58
|
attachAgentCommands(program, lazy, options.agent);
|
|
59
59
|
// Beside the generated `integrations tools` and `execute`, which stay raw passthroughs.
|
package/dist/runtime/attach.js
CHANGED
|
@@ -7,9 +7,40 @@ import { buildRequest, execute, readWholeBody, UsageError } from './invoke.js';
|
|
|
7
7
|
* the contract's summary, verbatim.
|
|
8
8
|
*/
|
|
9
9
|
export function attachOperation(root, operation, runtime) {
|
|
10
|
-
const
|
|
11
|
-
const
|
|
10
|
+
const leaf = attachLeaf(root, operation.command, operation, runtime, { hidden: false });
|
|
11
|
+
const name = operation.command.join(' ');
|
|
12
|
+
for (const [alias, target] of COMMAND_ALIASES) {
|
|
13
|
+
if (target === name) {
|
|
14
|
+
attachLeaf(root, alias.split(' '), operation, runtime, {
|
|
15
|
+
hidden: true,
|
|
16
|
+
workspaceArgument: true,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return leaf;
|
|
21
|
+
}
|
|
22
|
+
// Alias: Sensei's commands from when it was a workspace's, `kosuke workspaces sensei-* <id>`,
|
|
23
|
+
// and the Lead's names for them, which an older sandbox's Sensei prompt still runs; remove the
|
|
24
|
+
// Lead's one release after the Sensei rename, Sensei's one release after Sensei moved to the
|
|
25
|
+
// person. The workspace they take goes to `--workspace` where the command reads one.
|
|
26
|
+
const COMMAND_ALIASES = new Map([
|
|
27
|
+
['cards', 'sensei cards'],
|
|
28
|
+
['merge', 'sensei merge'],
|
|
29
|
+
['notifications open', 'sensei notifications open'],
|
|
30
|
+
['proposals create', 'sensei proposals create'],
|
|
31
|
+
['review-request', 'sensei review-request'],
|
|
32
|
+
['session-send', 'sensei session-send'],
|
|
33
|
+
['triage', 'sensei triage'],
|
|
34
|
+
].flatMap(([old, target]) => [
|
|
35
|
+
[`workspaces sensei-${old}`, target],
|
|
36
|
+
[`workspaces lead-${old}`, target],
|
|
37
|
+
]));
|
|
38
|
+
function attachLeaf(root, path, operation, runtime, { hidden, workspaceArgument = false }) {
|
|
39
|
+
const parent = groupFor(root, path.slice(0, -1), { hidden });
|
|
40
|
+
const leaf = parent.command(path[path.length - 1], { hidden });
|
|
12
41
|
leaf.description(operation.summary);
|
|
42
|
+
if (workspaceArgument)
|
|
43
|
+
leaf.addArgument(new Argument('<workspaceId>', 'Workspace id'));
|
|
13
44
|
for (const name of operation.pathParams) {
|
|
14
45
|
leaf.addArgument(new Argument(`<${name}>`, humanize(name)));
|
|
15
46
|
}
|
|
@@ -36,10 +67,17 @@ export function attachOperation(root, operation, runtime) {
|
|
|
36
67
|
}
|
|
37
68
|
leaf.action(async (...args) => {
|
|
38
69
|
const options = args[args.length - 2];
|
|
39
|
-
const
|
|
70
|
+
const offset = workspaceArgument ? 1 : 0;
|
|
71
|
+
const positionals = args.slice(offset, offset + operation.pathParams.length);
|
|
72
|
+
const workspace = workspaceArgument ? args[0] : undefined;
|
|
40
73
|
const input = {
|
|
41
74
|
pathParams: Object.fromEntries(operation.pathParams.map((name, i) => [name, positionals[i]])),
|
|
42
|
-
fields: Object.fromEntries(fields.map((field) =>
|
|
75
|
+
fields: Object.fromEntries(fields.map((field) => {
|
|
76
|
+
const given = options[optionKey(field.flag)];
|
|
77
|
+
// The old command's workspace filters a read that takes one; a write names its own.
|
|
78
|
+
const value = given ?? (field.name === 'workspace' ? workspace : undefined);
|
|
79
|
+
return [field.name, value];
|
|
80
|
+
})),
|
|
43
81
|
wholeBody: readWholeBody({
|
|
44
82
|
body: options.body,
|
|
45
83
|
bodyFile: options.bodyFile,
|
|
@@ -61,11 +99,13 @@ export function attachOperation(root, operation, runtime) {
|
|
|
61
99
|
});
|
|
62
100
|
return leaf;
|
|
63
101
|
}
|
|
64
|
-
|
|
102
|
+
/** A group created here is hidden when asked; one that already exists keeps what it is. */
|
|
103
|
+
export function groupFor(root, path, { hidden = false } = {}) {
|
|
65
104
|
let current = root;
|
|
66
105
|
for (const segment of path) {
|
|
67
106
|
const existing = current.commands.find((command) => command.name() === segment);
|
|
68
|
-
current =
|
|
107
|
+
current =
|
|
108
|
+
existing ?? current.command(segment, { hidden }).description(`${humanize(segment)} commands`);
|
|
69
109
|
}
|
|
70
110
|
return current;
|
|
71
111
|
}
|
|
@@ -29,20 +29,28 @@ export function isCronToken(token) {
|
|
|
29
29
|
return token?.startsWith(CRON_TOKEN_PREFIX) ?? false;
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
|
-
* The prefix of a
|
|
33
|
-
* Orchestrator Sandbox. Wire contract with `src/lib/auth/
|
|
32
|
+
* The prefix of a Sensei token, the credential a Sensei Chat's Turn holds in the
|
|
33
|
+
* Orchestrator Sandbox. Wire contract with `src/lib/auth/sensei-token.ts`, and
|
|
34
34
|
* like the others it shapes only what the tree shows.
|
|
35
35
|
*/
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
const SENSEI_TOKEN_PREFIX = 'kosuke_sensei_';
|
|
37
|
+
// Alias: a Sensei token minted before the Sensei rename carries this prefix until it expires;
|
|
38
|
+
// remove one release after the Sensei rename.
|
|
39
|
+
const LEGACY_SENSEI_TOKEN_PREFIX = 'kosuke_lead_';
|
|
40
|
+
export function isSenseiToken(token) {
|
|
41
|
+
if (!token)
|
|
42
|
+
return false;
|
|
43
|
+
return token.startsWith(SENSEI_TOKEN_PREFIX) || token.startsWith(LEGACY_SENSEI_TOKEN_PREFIX);
|
|
39
44
|
}
|
|
40
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* A credential that needs no `--workspace`: a sandbox, Slack triage or cron token decides its
|
|
47
|
+
* workspace, and a Sensei token reaches its member's own connections without one.
|
|
48
|
+
*/
|
|
41
49
|
export function isTurnToken(token) {
|
|
42
50
|
return (isSandboxAgentToken(token ?? undefined) ||
|
|
43
51
|
isOrchestratorToken(token ?? undefined) ||
|
|
44
52
|
isCronToken(token ?? undefined) ||
|
|
45
|
-
|
|
53
|
+
isSenseiToken(token ?? undefined));
|
|
46
54
|
}
|
|
47
55
|
export function resolveCredentials(flags, env = process.env) {
|
|
48
56
|
const stored = readCredentials(env);
|