@arinova-ai/cli 0.0.1

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/api.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import type { Command } from "commander";
2
+ export declare function getOpts(cmd: Command): {
3
+ token: string;
4
+ apiUrl: string;
5
+ };
6
+ export declare function apiCall(opts: {
7
+ method: string;
8
+ url: string;
9
+ token: string;
10
+ body?: unknown;
11
+ }): Promise<unknown>;
12
+ export declare function output(data: unknown): void;
13
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAQvE;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,OAAO,CAAC,CAwBnB;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE1C"}
package/dist/api.js ADDED
@@ -0,0 +1,35 @@
1
+ export function getOpts(cmd) {
2
+ const root = cmd.parent ?? cmd;
3
+ while (root.parent) { /* climb to root */ }
4
+ const opts = cmd.parent?.optsWithGlobals?.() ?? cmd.optsWithGlobals();
5
+ return {
6
+ token: opts.token,
7
+ apiUrl: opts.apiUrl ?? "https://api.chat.arinova.ai",
8
+ };
9
+ }
10
+ export async function apiCall(opts) {
11
+ const headers = {
12
+ Authorization: `Bearer ${opts.token}`,
13
+ };
14
+ const init = { method: opts.method, headers };
15
+ if (opts.body !== undefined) {
16
+ headers["Content-Type"] = "application/json";
17
+ init.body = JSON.stringify(opts.body);
18
+ }
19
+ const res = await fetch(opts.url, init);
20
+ const text = await res.text();
21
+ if (!res.ok) {
22
+ console.error(`Error ${res.status}: ${text.slice(0, 500)}`);
23
+ process.exit(1);
24
+ }
25
+ try {
26
+ return JSON.parse(text);
27
+ }
28
+ catch {
29
+ return text;
30
+ }
31
+ }
32
+ export function output(data) {
33
+ console.log(JSON.stringify(data, null, 2));
34
+ }
35
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CAAC,GAAY;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC;IAC/B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAI,GAAsC,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;IAC1G,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAe;QAC3B,MAAM,EAAG,IAAI,CAAC,MAAiB,IAAI,6BAA6B;KACjE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAK7B;IACC,MAAM,OAAO,GAA2B;QACtC,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;KACtC,CAAC;IACF,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAE3D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAE9B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAa;IAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerFileCommands(program: Command): void;
3
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/commands/file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwB3D"}
@@ -0,0 +1,27 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { basename } from "node:path";
3
+ import { getOpts, output } from "../api.js";
4
+ export function registerFileCommands(program) {
5
+ const file = program.command("file").description("File commands");
6
+ file.command("upload")
7
+ .requiredOption("--conversation-id <id>", "Conversation ID")
8
+ .requiredOption("--file-path <path>", "Path to file")
9
+ .action(async (opts) => {
10
+ const { token, apiUrl } = getOpts(file);
11
+ const data = readFileSync(opts.filePath);
12
+ const form = new FormData();
13
+ form.append("file", new Blob([data]), basename(opts.filePath));
14
+ form.append("conversationId", opts.conversationId);
15
+ const res = await fetch(`${apiUrl}/api/agent/upload`, {
16
+ method: "POST",
17
+ headers: { Authorization: `Bearer ${token}` },
18
+ body: form,
19
+ });
20
+ if (!res.ok) {
21
+ console.error(`Error ${res.status}: ${await res.text()}`);
22
+ process.exit(1);
23
+ }
24
+ output(await res.json());
25
+ });
26
+ }
27
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/commands/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAElE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;SACnB,cAAc,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;SAC3D,cAAc,CAAC,oBAAoB,EAAE,cAAc,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,IAAkD,EAAE,EAAE;QACnE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAEnD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,mBAAmB,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;YAC7C,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerKanbanCommands(program: Command): void;
3
+ //# sourceMappingURL=kanban.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kanban.d.ts","sourceRoot":"","sources":["../../src/commands/kanban.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6D7D"}
@@ -0,0 +1,62 @@
1
+ import { getOpts, apiCall, output } from "../api.js";
2
+ export function registerKanbanCommands(program) {
3
+ const kanban = program.command("kanban").description("Kanban board commands");
4
+ // Board commands
5
+ const board = kanban.command("board").description("Board management");
6
+ board.command("list").action(async () => {
7
+ const { token, apiUrl } = getOpts(board);
8
+ output(await apiCall({ method: "GET", url: `${apiUrl}/api/agent/kanban/boards`, token }));
9
+ });
10
+ board.command("create").requiredOption("--name <name>", "Board name").action(async (opts) => {
11
+ const { token, apiUrl } = getOpts(board);
12
+ output(await apiCall({ method: "POST", url: `${apiUrl}/api/agent/kanban/boards`, token, body: { name: opts.name } }));
13
+ });
14
+ board.command("update").requiredOption("--board-id <id>", "Board ID").requiredOption("--name <name>", "New name").option("--auto-archive-days <n>", "Auto-archive days (0=off)").action(async (opts) => {
15
+ const { token, apiUrl } = getOpts(board);
16
+ const body = { name: opts.name };
17
+ if (opts.autoArchiveDays != null)
18
+ body.autoArchiveDays = parseInt(opts.autoArchiveDays);
19
+ output(await apiCall({ method: "PATCH", url: `${apiUrl}/api/agent/kanban/boards/${opts.boardId}`, token, body }));
20
+ });
21
+ board.command("archive").requiredOption("--board-id <id>", "Board ID").action(async (opts) => {
22
+ const { token, apiUrl } = getOpts(board);
23
+ output(await apiCall({ method: "POST", url: `${apiUrl}/api/agent/kanban/boards/${opts.boardId}/archive`, token }));
24
+ });
25
+ // Card commands
26
+ const card = kanban.command("card").description("Card management");
27
+ card.command("list").action(async () => {
28
+ const { token, apiUrl } = getOpts(card);
29
+ output(await apiCall({ method: "GET", url: `${apiUrl}/api/agent/kanban/cards`, token }));
30
+ });
31
+ card.command("create").requiredOption("--title <title>", "Card title").option("--board-id <id>", "Board ID").option("--column-name <name>", "Column name").option("--description <desc>", "Description").action(async (opts) => {
32
+ const { token, apiUrl } = getOpts(card);
33
+ output(await apiCall({ method: "POST", url: `${apiUrl}/api/agent/kanban/cards`, token, body: opts }));
34
+ });
35
+ card.command("update").requiredOption("--card-id <id>", "Card ID").option("--title <text>", "New title").option("--description <text>", "New description").option("--column-id <id>", "Move to column").action(async (opts) => {
36
+ const { token, apiUrl } = getOpts(card);
37
+ output(await apiCall({ method: "PATCH", url: `${apiUrl}/api/agent/kanban/cards/${opts.cardId}`, token, body: { title: opts.title, description: opts.description, columnId: opts.columnId } }));
38
+ });
39
+ card.command("complete").requiredOption("--card-id <id>", "Card ID").action(async (opts) => {
40
+ const { token, apiUrl } = getOpts(card);
41
+ output(await apiCall({ method: "POST", url: `${apiUrl}/api/agent/kanban/cards/${opts.cardId}/complete`, token }));
42
+ });
43
+ card.command("archive").requiredOption("--card-id <id>", "Card ID").action(async (opts) => {
44
+ const { token, apiUrl } = getOpts(card);
45
+ output(await apiCall({ method: "POST", url: `${apiUrl}/api/agent/kanban/cards/${opts.cardId}/archive`, token }));
46
+ });
47
+ card.command("add-commit").requiredOption("--card-id <id>", "Card ID").requiredOption("--sha <sha>", "Commit SHA").requiredOption("--message <msg>", "Commit message").option("--url <url>", "Commit URL").action(async (opts) => {
48
+ const { token, apiUrl } = getOpts(card);
49
+ output(await apiCall({ method: "POST", url: `${apiUrl}/api/agent/kanban/cards/${opts.cardId}/commits`, token, body: { sha: opts.sha, message: opts.message, url: opts.url } }));
50
+ });
51
+ // Label commands
52
+ const label = kanban.command("label").description("Label management");
53
+ label.command("list").requiredOption("--board-id <id>", "Board ID").action(async (opts) => {
54
+ const { token, apiUrl } = getOpts(label);
55
+ output(await apiCall({ method: "GET", url: `${apiUrl}/api/agent/kanban/boards/${opts.boardId}/labels`, token }));
56
+ });
57
+ label.command("create").requiredOption("--board-id <id>", "Board ID").requiredOption("--name <name>", "Label name").requiredOption("--color <color>", "Color hex").action(async (opts) => {
58
+ const { token, apiUrl } = getOpts(label);
59
+ output(await apiCall({ method: "POST", url: `${apiUrl}/api/agent/kanban/boards/${opts.boardId}/labels`, token, body: { name: opts.name, color: opts.color } }));
60
+ });
61
+ }
62
+ //# sourceMappingURL=kanban.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kanban.js","sourceRoot":"","sources":["../../src/commands/kanban.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerMemoryCommands(program: Command): void;
3
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAY7D"}
@@ -0,0 +1,15 @@
1
+ import { getOpts, apiCall, output } from "../api.js";
2
+ export function registerMemoryCommands(program) {
3
+ const memory = program.command("memory").description("Memory capsule commands");
4
+ memory.command("query")
5
+ .requiredOption("--query <text>", "Search query")
6
+ .option("--limit <n>", "Max results")
7
+ .action(async (opts) => {
8
+ const { token, apiUrl } = getOpts(memory);
9
+ const qs = new URLSearchParams({ q: opts.query });
10
+ if (opts.limit)
11
+ qs.set("limit", opts.limit);
12
+ output(await apiCall({ method: "GET", url: `${apiUrl}/api/agent/memory/search?${qs}`, token }));
13
+ });
14
+ }
15
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAEhF,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACpB,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC;SAChD,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC;SACpC,MAAM,CAAC,KAAK,EAAE,IAAuC,EAAE,EAAE;QACxD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,KAAK;YAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,4BAA4B,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerMessageCommands(program: Command): void;
3
+ //# sourceMappingURL=message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/commands/message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4B9D"}
@@ -0,0 +1,32 @@
1
+ import { getOpts, apiCall, output } from "../api.js";
2
+ export function registerMessageCommands(program) {
3
+ const msg = program.command("message").description("Message commands");
4
+ msg.command("send")
5
+ .requiredOption("--conversation-id <id>", "Conversation ID")
6
+ .requiredOption("--content <text>", "Message content")
7
+ .option("--reply-to <id>", "Reply to message ID")
8
+ .action(async (opts) => {
9
+ const { token, apiUrl } = getOpts(msg);
10
+ const body = { conversationId: opts.conversationId, content: opts.content };
11
+ if (opts.replyTo)
12
+ body.replyTo = opts.replyTo;
13
+ const result = await apiCall({ method: "POST", url: `${apiUrl}/api/agent/send`, token, body });
14
+ output(result);
15
+ });
16
+ msg.command("list")
17
+ .requiredOption("--conversation-id <id>", "Conversation ID")
18
+ .option("--limit <n>", "Number of messages")
19
+ .option("--cursor <id>", "Cursor for pagination")
20
+ .action(async (opts) => {
21
+ const { token, apiUrl } = getOpts(msg);
22
+ const qs = new URLSearchParams();
23
+ if (opts.limit)
24
+ qs.set("limit", opts.limit);
25
+ if (opts.cursor)
26
+ qs.set("before", opts.cursor);
27
+ const q = qs.toString();
28
+ const result = await apiCall({ method: "GET", url: `${apiUrl}/api/agent/conversations/${opts.conversationId}/messages${q ? "?" + q : ""}`, token });
29
+ output(result);
30
+ });
31
+ }
32
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/commands/message.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEvE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;SAChB,cAAc,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;SAC3D,cAAc,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;SACrD,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,IAAmE,EAAE,EAAE;QACpF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,IAAI,GAA2B,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACpG,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/F,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEL,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;SAChB,cAAc,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;SAC3D,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAAC;SAC3C,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,IAAiE,EAAE,EAAE;QAClF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,KAAK;YAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,MAAM;YAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,4BAA4B,IAAI,CAAC,cAAc,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACpJ,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerNoteCommands(program: Command): void;
3
+ //# sourceMappingURL=note.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"note.d.ts","sourceRoot":"","sources":["../../src/commands/note.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoC3D"}
@@ -0,0 +1,35 @@
1
+ import { getOpts, apiCall, output } from "../api.js";
2
+ export function registerNoteCommands(program) {
3
+ const note = program.command("note").description("Note commands");
4
+ note.command("list")
5
+ .option("--notebook-id <id>", "Filter by notebook")
6
+ .action(async (opts) => {
7
+ const { token, apiUrl } = getOpts(note);
8
+ const qs = opts.notebookId ? `?notebookId=${opts.notebookId}` : "";
9
+ output(await apiCall({ method: "GET", url: `${apiUrl}/api/agent/notes${qs}`, token }));
10
+ });
11
+ note.command("create")
12
+ .requiredOption("--notebook-id <id>", "Notebook ID")
13
+ .requiredOption("--title <title>", "Note title")
14
+ .option("--content <text>", "Note content")
15
+ .option("--tags <tags...>", "Tags")
16
+ .action(async (opts) => {
17
+ const { token, apiUrl } = getOpts(note);
18
+ output(await apiCall({ method: "POST", url: `${apiUrl}/api/agent/notes`, token, body: opts }));
19
+ });
20
+ note.command("update")
21
+ .requiredOption("--note-id <id>", "Note ID")
22
+ .option("--title <text>", "New title")
23
+ .option("--content <text>", "New content")
24
+ .action(async (opts) => {
25
+ const { token, apiUrl } = getOpts(note);
26
+ output(await apiCall({ method: "PATCH", url: `${apiUrl}/api/agent/notes/${opts.noteId}`, token, body: { title: opts.title, content: opts.content } }));
27
+ });
28
+ note.command("delete")
29
+ .requiredOption("--note-id <id>", "Note ID")
30
+ .action(async (opts) => {
31
+ const { token, apiUrl } = getOpts(note);
32
+ output(await apiCall({ method: "DELETE", url: `${apiUrl}/api/agent/notes/${opts.noteId}`, token }));
33
+ });
34
+ }
35
+ //# sourceMappingURL=note.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"note.js","sourceRoot":"","sources":["../../src/commands/note.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAElE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SACjB,MAAM,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,IAA6B,EAAE,EAAE;QAC9C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,mBAAmB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEL,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;SACnB,cAAc,CAAC,oBAAoB,EAAE,aAAa,CAAC;SACnD,cAAc,CAAC,iBAAiB,EAAE,YAAY,CAAC;SAC/C,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAAC;SAC1C,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,IAA8E,EAAE,EAAE;QAC/F,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;IAEL,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;SACnB,cAAc,CAAC,gBAAgB,EAAE,SAAS,CAAC;SAC3C,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC;SACrC,MAAM,CAAC,kBAAkB,EAAE,aAAa,CAAC;SACzC,MAAM,CAAC,KAAK,EAAE,IAA0D,EAAE,EAAE;QAC3E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,oBAAoB,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzJ,CAAC,CAAC,CAAC;IAEL,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;SACnB,cAAc,CAAC,gBAAgB,EAAE,SAAS,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACzC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,oBAAoB,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from "commander";
3
+ import { registerMessageCommands } from "./commands/message.js";
4
+ import { registerFileCommands } from "./commands/file.js";
5
+ import { registerNoteCommands } from "./commands/note.js";
6
+ import { registerMemoryCommands } from "./commands/memory.js";
7
+ import { registerKanbanCommands } from "./commands/kanban.js";
8
+ const program = new Command();
9
+ program
10
+ .name("arinova")
11
+ .description("Arinova Chat CLI — manage messages, notes, kanban, memory, and more")
12
+ .version("0.0.1")
13
+ .requiredOption("--token <botToken>", "Bot token (ari_...)")
14
+ .option("--api-url <url>", "API endpoint (default: https://api.chat.arinova.ai)");
15
+ registerMessageCommands(program);
16
+ registerFileCommands(program);
17
+ registerNoteCommands(program);
18
+ registerMemoryCommands(program);
19
+ registerKanbanCommands(program);
20
+ program.parse();
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,qEAAqE,CAAC;KAClF,OAAO,CAAC,OAAO,CAAC;KAChB,cAAc,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;KAC3D,MAAM,CAAC,iBAAiB,EAAE,qDAAqD,CAAC,CAAC;AAEpF,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@arinova-ai/cli",
3
+ "version": "0.0.1",
4
+ "description": "Arinova Chat CLI — manage messages, notes, kanban, memory, and more",
5
+ "type": "module",
6
+ "bin": {
7
+ "arinova": "dist/index.js"
8
+ },
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "dev": "tsc --watch",
15
+ "lint": "tsc --noEmit"
16
+ },
17
+ "dependencies": {
18
+ "commander": "^12.0.0"
19
+ },
20
+ "devDependencies": {
21
+ "@types/node": "^22.19.13",
22
+ "typescript": "^5.7.0"
23
+ }
24
+ }