@arbidocs/cli 0.3.118 → 0.3.120
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.md +25 -0
- package/dist/index.js +208 -22
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.3.120
|
|
4
|
+
|
|
5
|
+
[compare changes](https://github.com/arbicity/ARBI-frontend/compare/v0.3.119...HEAD)
|
|
6
|
+
|
|
7
|
+
### 🚀 Enhancements
|
|
8
|
+
|
|
9
|
+
- **subscription:** Show plan prices directly on login for free users ([#1083](https://github.com/arbicity/ARBI-frontend/pull/1083))
|
|
10
|
+
- **kit:** Add SDK-free /ui and /site subpath exports ([#1084](https://github.com/arbicity/ARBI-frontend/pull/1084))
|
|
11
|
+
|
|
12
|
+
### 🩹 Fixes
|
|
13
|
+
|
|
14
|
+
- Connect notifications WebSocket on same-origin deployments ([#1074](https://github.com/arbicity/ARBI-frontend/pull/1074))
|
|
15
|
+
- Notifications WebSocket must never log the user out ([#1075](https://github.com/arbicity/ARBI-frontend/pull/1075))
|
|
16
|
+
- New user wedged on /login after registering (trailing-slash return-URL trap) ([#1076](https://github.com/arbicity/ARBI-frontend/pull/1076))
|
|
17
|
+
- **tips:** Stop the smart-tips bar flickering on app entry ([#1081](https://github.com/arbicity/ARBI-frontend/pull/1081))
|
|
18
|
+
|
|
19
|
+
## v0.3.119
|
|
20
|
+
|
|
21
|
+
[compare changes](https://github.com/arbicity/ARBI-frontend/compare/v0.3.118...HEAD)
|
|
22
|
+
|
|
23
|
+
### 🚀 Enhancements
|
|
24
|
+
|
|
25
|
+
- **react:** Restyle UserEntity as a borderless pill ([738664bf](https://github.com/arbicity/ARBI-frontend/commit/738664bf))
|
|
26
|
+
- **react:** Add shared StatusPill + RagDot with injectable registry ([e546a063](https://github.com/arbicity/ARBI-frontend/commit/e546a063))
|
|
27
|
+
|
|
3
28
|
## v0.3.118
|
|
4
29
|
|
|
5
30
|
[compare changes](https://github.com/arbicity/ARBI-frontend/compare/v0.3.117...HEAD)
|
package/dist/index.js
CHANGED
|
@@ -3694,7 +3694,7 @@ function getLatestVersion(skipCache = false) {
|
|
|
3694
3694
|
}
|
|
3695
3695
|
}
|
|
3696
3696
|
function getCurrentVersion() {
|
|
3697
|
-
return "0.3.
|
|
3697
|
+
return "0.3.120";
|
|
3698
3698
|
}
|
|
3699
3699
|
function readChangelog(fromVersion, toVersion) {
|
|
3700
3700
|
try {
|
|
@@ -3747,17 +3747,17 @@ function showChangelog(fromVersion, toVersion) {
|
|
|
3747
3747
|
async function checkForUpdates(autoUpdate) {
|
|
3748
3748
|
try {
|
|
3749
3749
|
const latest = getLatestVersion();
|
|
3750
|
-
if (!latest || latest === "0.3.
|
|
3750
|
+
if (!latest || latest === "0.3.120") return;
|
|
3751
3751
|
if (autoUpdate) {
|
|
3752
3752
|
warn(`
|
|
3753
|
-
Your arbi version is out of date (${"0.3.
|
|
3753
|
+
Your arbi version is out of date (${"0.3.120"} \u2192 ${latest}). Updating...`);
|
|
3754
3754
|
child_process.execSync("npm install -g @arbidocs/cli@latest", { stdio: "inherit" });
|
|
3755
|
-
showChangelog("0.3.
|
|
3755
|
+
showChangelog("0.3.120", latest);
|
|
3756
3756
|
console.log(`Updated to ${latest}.`);
|
|
3757
3757
|
} else {
|
|
3758
3758
|
warn(
|
|
3759
3759
|
`
|
|
3760
|
-
Your arbi version is out of date (${"0.3.
|
|
3760
|
+
Your arbi version is out of date (${"0.3.120"} \u2192 ${latest}).
|
|
3761
3761
|
Run "arbi update" to upgrade, or "arbi update auto" to always stay up to date.`
|
|
3762
3762
|
);
|
|
3763
3763
|
}
|
|
@@ -3789,10 +3789,10 @@ function markNagShown(latest) {
|
|
|
3789
3789
|
function hintUpdateOnError() {
|
|
3790
3790
|
try {
|
|
3791
3791
|
const cached = readCache();
|
|
3792
|
-
if (!cached || cached.latest === "0.3.
|
|
3792
|
+
if (!cached || cached.latest === "0.3.120") return;
|
|
3793
3793
|
if (!shouldShowNag(cached.latest)) return;
|
|
3794
3794
|
warn(
|
|
3795
|
-
`Your arbi version is out of date (${"0.3.
|
|
3795
|
+
`Your arbi version is out of date (${"0.3.120"} \u2192 ${cached.latest}). Run "arbi update".`
|
|
3796
3796
|
);
|
|
3797
3797
|
markNagShown(cached.latest);
|
|
3798
3798
|
} catch {
|
|
@@ -9490,6 +9490,143 @@ function registerTaskCommand(program2) {
|
|
|
9490
9490
|
})()
|
|
9491
9491
|
);
|
|
9492
9492
|
}
|
|
9493
|
+
var TRIGGERS = ["one_time", "recurring", "event"];
|
|
9494
|
+
var ACTIONS = ["notify", "agent_prompt", "run_skill"];
|
|
9495
|
+
var STATUSES = ["active", "paused"];
|
|
9496
|
+
function oneOf(value, allowed, flag) {
|
|
9497
|
+
if (allowed.includes(value)) return value;
|
|
9498
|
+
error(`${flag} must be one of: ${allowed.join(", ")} (got: ${value})`);
|
|
9499
|
+
process.exit(1);
|
|
9500
|
+
}
|
|
9501
|
+
function printTask(t) {
|
|
9502
|
+
label("ID:", ref(t.external_id));
|
|
9503
|
+
label("Name:", t.name);
|
|
9504
|
+
label("Trigger:", t.trigger_type);
|
|
9505
|
+
if (t.rrule) label("RRule:", t.rrule);
|
|
9506
|
+
if (t.run_at) label("Run at:", t.run_at);
|
|
9507
|
+
if (t.event_kind) label("Event:", t.event_kind);
|
|
9508
|
+
label("Timezone:", t.timezone);
|
|
9509
|
+
label("Action:", t.action_type);
|
|
9510
|
+
if (t.prompt) label("Prompt:", t.prompt);
|
|
9511
|
+
if (t.skill_ref) label("Skill:", t.skill_ref);
|
|
9512
|
+
if (t.agent_ext_id) label("Agent:", t.agent_ext_id);
|
|
9513
|
+
if (t.workspace_ext_id) label("Workspace:", t.workspace_ext_id);
|
|
9514
|
+
label("Status:", status(t.status));
|
|
9515
|
+
label("Notify on complete:", String(t.notify_on_complete));
|
|
9516
|
+
if (t.next_run_at) label("Next run:", t.next_run_at);
|
|
9517
|
+
if (t.last_run_at) label("Last run:", t.last_run_at);
|
|
9518
|
+
if (t.last_error) label("Last error:", t.last_error);
|
|
9519
|
+
}
|
|
9520
|
+
function registerScheduleCommand(program2) {
|
|
9521
|
+
const schedule = program2.command("schedule").description("Scheduled tasks (/v1/tasks): create, list, get, update, run, delete");
|
|
9522
|
+
schedule.command("create").description("Create a scheduled task").requiredOption("--name <name>", "Task name (required)").option("--trigger <one_time|recurring|event>", "Trigger type", "one_time").option("--rrule <RRULE>", "RFC-5545 recurrence rule (for --trigger recurring)").option("--run-at <ISO>", "When to run once (ISO-8601, for --trigger one_time)").option("--timezone <tz>", "IANA timezone", "UTC").option("--event-kind <kind>", "Event name to react to (for --trigger event)").option("--action <notify|agent_prompt|run_skill>", "What the task does", "notify").option("--prompt <text>", "Prompt/message for notify or agent_prompt actions").option("--skill <ref>", "Skill reference (for --action run_skill)").option("--agent <agt-id>", "Agent to run the prompt as (external id)").option("--workspace <wrk-id>", "Workspace to scope the task to (external id)").option("--notify-on-complete", "Send a notification when the task completes").option("--json", "Output as JSON").action(
|
|
9523
|
+
(opts) => runAction(async () => {
|
|
9524
|
+
const { arbi } = await resolveAuth();
|
|
9525
|
+
const body = {
|
|
9526
|
+
name: opts.name,
|
|
9527
|
+
trigger_type: oneOf(opts.trigger, TRIGGERS, "--trigger"),
|
|
9528
|
+
timezone: opts.timezone,
|
|
9529
|
+
action_type: oneOf(opts.action, ACTIONS, "--action"),
|
|
9530
|
+
prompt: opts.prompt ?? ""
|
|
9531
|
+
};
|
|
9532
|
+
if (opts.rrule) body.rrule = opts.rrule;
|
|
9533
|
+
if (opts.runAt) body.run_at = opts.runAt;
|
|
9534
|
+
if (opts.eventKind) body.event_kind = opts.eventKind;
|
|
9535
|
+
if (opts.skill) body.skill_ref = opts.skill;
|
|
9536
|
+
if (opts.agent) body.agent_ext_id = opts.agent;
|
|
9537
|
+
if (opts.workspace) body.workspace_ext_id = opts.workspace;
|
|
9538
|
+
if (opts.notifyOnComplete) body.notify_on_complete = true;
|
|
9539
|
+
const data = await sdk.tasks.createTask(arbi, body);
|
|
9540
|
+
if (opts.json) {
|
|
9541
|
+
printJson(data);
|
|
9542
|
+
return;
|
|
9543
|
+
}
|
|
9544
|
+
success(`Created scheduled task: ${data.name} (${ref(data.external_id)})`);
|
|
9545
|
+
})()
|
|
9546
|
+
);
|
|
9547
|
+
schedule.command("list").description("List your scheduled tasks").option("--json", "Output as JSON").action(
|
|
9548
|
+
(opts) => runAction(async () => {
|
|
9549
|
+
const { arbi } = await resolveAuth();
|
|
9550
|
+
const data = await sdk.tasks.listTasks(arbi);
|
|
9551
|
+
if (!emitListOrTable(data, opts, "No scheduled tasks found.")) return;
|
|
9552
|
+
printTable(
|
|
9553
|
+
[
|
|
9554
|
+
{ header: "ID", width: 22, value: (r) => r.external_id },
|
|
9555
|
+
{ header: "NAME", width: 26, value: (r) => r.name ?? "" },
|
|
9556
|
+
{ header: "TRIGGER", width: 12, value: (r) => r.trigger_type ?? "" },
|
|
9557
|
+
{ header: "ACTION", width: 14, value: (r) => r.action_type ?? "" },
|
|
9558
|
+
{ header: "STATUS", width: 10, value: (r) => status(r.status ?? "") },
|
|
9559
|
+
{ header: "NEXT RUN", width: 26, value: (r) => r.next_run_at ?? "" }
|
|
9560
|
+
],
|
|
9561
|
+
data
|
|
9562
|
+
);
|
|
9563
|
+
})()
|
|
9564
|
+
);
|
|
9565
|
+
schedule.command("get <id>").description("Show a scheduled task").option("--json", "Output as JSON").action(
|
|
9566
|
+
(id, opts) => runAction(async () => {
|
|
9567
|
+
const { arbi } = await resolveAuth();
|
|
9568
|
+
const data = await sdk.tasks.getTask(arbi, id);
|
|
9569
|
+
if (opts.json) {
|
|
9570
|
+
printJson(data);
|
|
9571
|
+
return;
|
|
9572
|
+
}
|
|
9573
|
+
printTask(data);
|
|
9574
|
+
})()
|
|
9575
|
+
);
|
|
9576
|
+
schedule.command("update <id>").description("Update a scheduled task (use --status to pause/resume)").option("--name <name>", "New name").option("--rrule <RRULE>", "New recurrence rule").option("--run-at <ISO>", "New one-time run time (ISO-8601)").option("--timezone <tz>", "New IANA timezone").option("--prompt <text>", "New prompt/message").option("--skill <ref>", "New skill reference").option("--status <active|paused>", "Pause or resume the task").option("--notify-on-complete <bool>", "Notify on complete (true|false)").option("--json", "Output as JSON").action(
|
|
9577
|
+
(id, opts) => runAction(async () => {
|
|
9578
|
+
const { arbi } = await resolveAuth();
|
|
9579
|
+
const body = {};
|
|
9580
|
+
if (opts.name !== void 0) body.name = opts.name;
|
|
9581
|
+
if (opts.rrule !== void 0) body.rrule = opts.rrule;
|
|
9582
|
+
if (opts.runAt !== void 0) body.run_at = opts.runAt;
|
|
9583
|
+
if (opts.timezone !== void 0) body.timezone = opts.timezone;
|
|
9584
|
+
if (opts.prompt !== void 0) body.prompt = opts.prompt;
|
|
9585
|
+
if (opts.skill !== void 0) body.skill_ref = opts.skill;
|
|
9586
|
+
if (opts.status !== void 0) body.status = oneOf(opts.status, STATUSES, "--status");
|
|
9587
|
+
if (opts.notifyOnComplete !== void 0) {
|
|
9588
|
+
body.notify_on_complete = /^(1|true|yes)$/i.test(opts.notifyOnComplete);
|
|
9589
|
+
}
|
|
9590
|
+
if (Object.keys(body).length === 0) {
|
|
9591
|
+
error("Nothing to update. Pass at least one field (e.g. --name, --status).");
|
|
9592
|
+
process.exit(1);
|
|
9593
|
+
}
|
|
9594
|
+
const data = await sdk.tasks.updateTask(arbi, id, body);
|
|
9595
|
+
if (opts.json) {
|
|
9596
|
+
printJson(data);
|
|
9597
|
+
return;
|
|
9598
|
+
}
|
|
9599
|
+
success(`Updated scheduled task: ${ref(id)}`);
|
|
9600
|
+
})()
|
|
9601
|
+
);
|
|
9602
|
+
schedule.command("run <id>").description("Fire a scheduled task now (does not advance its schedule)").option("--json", "Output as JSON").action(
|
|
9603
|
+
(id, opts) => runAction(async () => {
|
|
9604
|
+
const { arbi } = await resolveAuth();
|
|
9605
|
+
const data = await sdk.tasks.runTask(arbi, id);
|
|
9606
|
+
if (opts.json) {
|
|
9607
|
+
printJson(data);
|
|
9608
|
+
return;
|
|
9609
|
+
}
|
|
9610
|
+
success(`Ran scheduled task: ${ref(id)}`);
|
|
9611
|
+
})()
|
|
9612
|
+
);
|
|
9613
|
+
schedule.command("delete <id>").description("Delete a scheduled task (irreversible)").action(
|
|
9614
|
+
(id) => runAction(async () => {
|
|
9615
|
+
const { arbi } = await resolveAuth();
|
|
9616
|
+
await sdk.tasks.deleteTask(arbi, id);
|
|
9617
|
+
success(`Deleted scheduled task: ${ref(id)}`);
|
|
9618
|
+
})()
|
|
9619
|
+
);
|
|
9620
|
+
schedule.allowUnknownOption(true).allowExcessArguments(true).action(async () => {
|
|
9621
|
+
const tail = schedule.args ?? [];
|
|
9622
|
+
const subcommands = schedule.commands.map((c) => c.name());
|
|
9623
|
+
const firstNonFlag = tail.find((a) => !a.startsWith("-"));
|
|
9624
|
+
if (firstNonFlag && !subcommands.includes(firstNonFlag)) {
|
|
9625
|
+
suggestSubcommandAndExit("schedule", firstNonFlag, subcommands);
|
|
9626
|
+
}
|
|
9627
|
+
await schedule.commands.find((c) => c.name() === "list").parseAsync(tail, { from: "user" });
|
|
9628
|
+
});
|
|
9629
|
+
}
|
|
9493
9630
|
var MARKER_START = "# arbi-cli completion start";
|
|
9494
9631
|
var MARKER_END = "# arbi-cli completion end";
|
|
9495
9632
|
var BASH_COMPLETION = `
|
|
@@ -9871,8 +10008,18 @@ function registerNotificationsCommand(program2) {
|
|
|
9871
10008
|
await notif.commands.find((c) => c.name() === "list").parseAsync(tail, { from: "user" });
|
|
9872
10009
|
});
|
|
9873
10010
|
}
|
|
10011
|
+
async function resolveProjectId(arbi, explicit) {
|
|
10012
|
+
if (explicit) return explicit;
|
|
10013
|
+
const list = await sdk.projects.listProjects(arbi);
|
|
10014
|
+
const first = list?.[0]?.external_id;
|
|
10015
|
+
if (!first) {
|
|
10016
|
+
error("No projects found. Pass --project <id> or create one with: arbi project create <name>");
|
|
10017
|
+
process.exit(3);
|
|
10018
|
+
}
|
|
10019
|
+
return first;
|
|
10020
|
+
}
|
|
9874
10021
|
function registerProjectCommand(program2) {
|
|
9875
|
-
const project = program2.command("project").description("Project tenancy: list, create, refresh");
|
|
10022
|
+
const project = program2.command("project").description("Project tenancy: list, create, rename, update, delete, refresh");
|
|
9876
10023
|
project.command("list").description("List your projects").option("--json", "Output as JSON").action(
|
|
9877
10024
|
(opts) => runAction(async () => {
|
|
9878
10025
|
const { arbi } = await resolveAuth();
|
|
@@ -9896,6 +10043,43 @@ function registerProjectCommand(program2) {
|
|
|
9896
10043
|
success(`Created project: ${data.name} (${ref(data.external_id)})`);
|
|
9897
10044
|
})()
|
|
9898
10045
|
);
|
|
10046
|
+
project.command("rename <name>").description("Rename a project (defaults to your first project)").option("-p, --project <id>", "Project id to rename (default: your first project)").action(
|
|
10047
|
+
(name, opts) => runAction(async () => {
|
|
10048
|
+
const { arbi } = await resolveAuth();
|
|
10049
|
+
const id = await resolveProjectId(arbi, opts.project);
|
|
10050
|
+
const data = await sdk.projects.renameProject(arbi, id, name);
|
|
10051
|
+
success(`Renamed project ${ref(id)} \u2192 ${data.name}`);
|
|
10052
|
+
})()
|
|
10053
|
+
);
|
|
10054
|
+
project.command("update").description("Update a project\u2019s name and/or per-user daily credit cap").option("-p, --project <id>", "Project id to update (default: your first project)").option("--name <name>", "New project name").option("--daily-cap <credits>", "Per-user daily credit cap (a number)").action(
|
|
10055
|
+
(opts) => runAction(async () => {
|
|
10056
|
+
const { arbi } = await resolveAuth();
|
|
10057
|
+
const body = {};
|
|
10058
|
+
if (opts.name !== void 0) body.name = opts.name;
|
|
10059
|
+
if (opts.dailyCap !== void 0) {
|
|
10060
|
+
const cap = Number(opts.dailyCap);
|
|
10061
|
+
if (!Number.isFinite(cap)) {
|
|
10062
|
+
error(`--daily-cap must be a number, got: ${opts.dailyCap}`);
|
|
10063
|
+
process.exit(1);
|
|
10064
|
+
}
|
|
10065
|
+
body.daily_cap_per_user = cap;
|
|
10066
|
+
}
|
|
10067
|
+
if (Object.keys(body).length === 0) {
|
|
10068
|
+
error("Nothing to update. Pass --name and/or --daily-cap.");
|
|
10069
|
+
process.exit(1);
|
|
10070
|
+
}
|
|
10071
|
+
const id = await resolveProjectId(arbi, opts.project);
|
|
10072
|
+
const data = await sdk.projects.updateProject(arbi, id, body);
|
|
10073
|
+
success(`Updated project ${ref(id)} (${data.name})`);
|
|
10074
|
+
})()
|
|
10075
|
+
);
|
|
10076
|
+
project.command("delete <id>").description("Delete a project (irreversible; requires an explicit id)").action(
|
|
10077
|
+
(id) => runAction(async () => {
|
|
10078
|
+
const { arbi } = await resolveAuth();
|
|
10079
|
+
await sdk.projects.deleteProject(arbi, id);
|
|
10080
|
+
success(`Deleted project: ${ref(id)}`);
|
|
10081
|
+
})()
|
|
10082
|
+
);
|
|
9899
10083
|
project.command("refresh <id>").description("Refresh a project (force plan/usage sync from billing)").action(
|
|
9900
10084
|
(id) => runAction(async () => {
|
|
9901
10085
|
const { arbi } = await resolveAuth();
|
|
@@ -10054,30 +10238,32 @@ function registerUsageCommand(program2) {
|
|
|
10054
10238
|
}
|
|
10055
10239
|
function registerAuthCommand(program2) {
|
|
10056
10240
|
const auth = program2.command("auth").description("Self-service account ops: profile, change-email, delete-account, sso-config");
|
|
10057
|
-
auth.command("profile").description("Show or update your display profile (given/family name, picture)").option("--name <given>", "New given name").option("--family <family>", "New family name (empty string clears it)").option(
|
|
10241
|
+
auth.command("profile").description("Show or update your display profile (given/family name, picture)").option("--given-name <given>", "New given name").option("--family-name <family>", "New family name (empty string clears it)").option(
|
|
10058
10242
|
"--picture <path-or-url>",
|
|
10059
|
-
"Profile picture (local path \u2192 base64 inline; URL \u2192 stored verbatim)"
|
|
10060
|
-
).action(
|
|
10243
|
+
"Profile picture (local path \u2192 base64 inline; URL/data-URI \u2192 stored verbatim)"
|
|
10244
|
+
).option("--name <given>", "Alias for --given-name").option("--family <family>", "Alias for --family-name").action(
|
|
10061
10245
|
(opts) => runAction(async () => {
|
|
10062
10246
|
const { arbi } = await resolveAuth();
|
|
10063
|
-
const
|
|
10247
|
+
const given = opts.givenName ?? opts.name;
|
|
10248
|
+
const family = opts.familyName ?? opts.family;
|
|
10249
|
+
const noUpdates = given === void 0 && family === void 0 && !opts.picture;
|
|
10064
10250
|
if (noUpdates) {
|
|
10065
10251
|
const myExtId = arbi.session.getState().userExtId;
|
|
10066
|
-
const
|
|
10067
|
-
if (
|
|
10252
|
+
const res = await arbi.fetch.GET("/v1/workspace/users");
|
|
10253
|
+
if (res.error || !res.data) {
|
|
10068
10254
|
error(
|
|
10069
10255
|
"No profile-read endpoint exists. To inspect: arbi status --json or arbi contacts --json"
|
|
10070
10256
|
);
|
|
10071
10257
|
process.exit(1);
|
|
10072
10258
|
}
|
|
10073
|
-
const me =
|
|
10259
|
+
const me = res.data.find(
|
|
10074
10260
|
(u) => u.external_id === myExtId
|
|
10075
10261
|
);
|
|
10076
10262
|
const profile = me ?? { external_id: myExtId };
|
|
10077
10263
|
for (const [k, v] of Object.entries(profile)) {
|
|
10078
10264
|
label(`${k}:`, typeof v === "object" ? JSON.stringify(v) : String(v));
|
|
10079
10265
|
}
|
|
10080
|
-
dim("\nPass --name/--family/--picture to update.");
|
|
10266
|
+
dim("\nPass --given-name/--family-name/--picture to update.");
|
|
10081
10267
|
return;
|
|
10082
10268
|
}
|
|
10083
10269
|
let picture = opts.picture;
|
|
@@ -10093,11 +10279,10 @@ function registerAuthCommand(program2) {
|
|
|
10093
10279
|
}
|
|
10094
10280
|
}
|
|
10095
10281
|
const body = {};
|
|
10096
|
-
if (
|
|
10097
|
-
if (
|
|
10282
|
+
if (given !== void 0) body.given_name = given;
|
|
10283
|
+
if (family !== void 0) body.family_name = family;
|
|
10098
10284
|
if (picture !== void 0) body.picture = picture;
|
|
10099
|
-
|
|
10100
|
-
if (res.error) throw new Error(`Profile update failed: ${JSON.stringify(res.error)}`);
|
|
10285
|
+
await sdk.profile.updateProfile(arbi, body);
|
|
10101
10286
|
success("Profile updated.");
|
|
10102
10287
|
})()
|
|
10103
10288
|
);
|
|
@@ -10298,7 +10483,7 @@ console.info = (...args) => {
|
|
|
10298
10483
|
_origInfo(...args);
|
|
10299
10484
|
};
|
|
10300
10485
|
var program = new commander.Command();
|
|
10301
|
-
program.name("arbi").description("ARBI CLI \u2014 interact with ARBI from the terminal").version("0.3.
|
|
10486
|
+
program.name("arbi").description("ARBI CLI \u2014 interact with ARBI from the terminal").version("0.3.120").showHelpAfterError(true).showSuggestionAfterError(true);
|
|
10302
10487
|
registerConfigCommand(program);
|
|
10303
10488
|
registerLoginCommand(program);
|
|
10304
10489
|
registerRegisterCommand(program);
|
|
@@ -10326,6 +10511,7 @@ registerQuickstartCommand(program);
|
|
|
10326
10511
|
registerAgentCreateCommand(program);
|
|
10327
10512
|
registerAgentCommand(program);
|
|
10328
10513
|
registerTaskCommand(program);
|
|
10514
|
+
registerScheduleCommand(program);
|
|
10329
10515
|
registerCompletionCommand(program);
|
|
10330
10516
|
registerListenCommand(program);
|
|
10331
10517
|
registerSessionCommand(program);
|
|
@@ -10351,7 +10537,7 @@ applyHelpGroups(program, {
|
|
|
10351
10537
|
"Search & ask:": ["ask", "find", "cite", "watch"],
|
|
10352
10538
|
"Tagging:": ["tags", "doctags"],
|
|
10353
10539
|
"Conversations & messaging:": ["convo", "dm", "listen", "notifications", "contacts"],
|
|
10354
|
-
"Agents & tasks:": ["agent", "agent-create", "task", "agentconfig", "session"],
|
|
10540
|
+
"Agents & tasks:": ["agent", "agent-create", "task", "schedule", "agentconfig", "session"],
|
|
10355
10541
|
"Account:": ["auth", "usage", "files"],
|
|
10356
10542
|
"System:": ["health", "models", "settings", "tui", "local", "update"]
|
|
10357
10543
|
});
|