@aadi-labs/sikaru-cli 0.0.0 → 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/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ /node_modules
2
+
package/CHANGELOG.md ADDED
@@ -0,0 +1,19 @@
1
+ # Changelog
2
+
3
+ ## 0.0.1
4
+
5
+ First release from `sikaru-clients`. The Python SDK, TypeScript SDK and CLI live in one repository and release together at the same version.
6
+
7
+ ### SDK
8
+
9
+ - Inference is OpenAI-shaped: chat completions, completions, responses and models, so existing OpenAI-style code can call Sikaru catalog models.
10
+ - Models are identified as `lab/model`, and each carries a catalog card with its specs, pricing and published reasoning settings.
11
+ - Request reasoning output with `include_reasoning`.
12
+
13
+ ### CLI
14
+
15
+ - Commands are organized into six product groups: `inference`, `decision`, `agent`, `eval`, `traces` and `environment`. Each has a small verb set with positional arguments, short flags, `--follow` and `--output`. Account commands such as `login` and `config` stay at the top level.
16
+ - Chat with a catalog model and browse the catalog, including each model's card, with `sikaru inference`.
17
+ - Ask System One choice, yes-or-no and score questions about a text or JSON state with `sikaru decision infer`, or `decisions.create` in the SDKs.
18
+ - `sikaru agent run <agent>` runs an agent in a managed sandbox by default, or in your own sandbox with `--compute local`.
19
+ - `sikaru login` signs in through the browser; `--with-token` reads a token from standard input, and `sikaru logout` signs out.
package/README.md CHANGED
@@ -1,3 +1,82 @@
1
- # @aadi-labs/sikaru-cli
1
+ # Sikaru clients
2
2
 
3
- Placeholder that reserves the package name. Install 0.0.1 or later: https://github.com/aadi-labs/sikaru-clients
3
+ Sikaru runs managed agents, evaluations and trace analysis, and serves a catalog of
4
+ models over one API. This repository holds the public clients for that API: a Python
5
+ SDK, a TypeScript SDK and the `sikaru` command-line tool. All three ship at the same
6
+ version.
7
+
8
+ ## Install
9
+
10
+ | Client | Install |
11
+ | --- | --- |
12
+ | Python SDK (`sikaru_sdk`) | `pip install sikaru-sdk` or `uv add sikaru-sdk` |
13
+ | TypeScript SDK (`@aadi-labs/sikaru-sdk`) | `npm i @aadi-labs/sikaru-sdk` |
14
+ | CLI (`sikaru`) | `curl -fsSL https://app.sikaru.ai/install.sh \| sh` or `npm i -g @aadi-labs/sikaru-cli` (Windows: PowerShell installer on the releases page) |
15
+
16
+ The CLI signs you in with `sikaru login` (or on the first command you run), then
17
+ `sikaru config set project PROJECT` picks the project to work in. The SDKs, servers and
18
+ CI use a project API key from the Sikaru dashboard in `SIKARU_API_KEY`.
19
+
20
+ ## Quick start
21
+
22
+ ```python
23
+ from sikaru_sdk import Sikaru
24
+
25
+ client = Sikaru() # reads SIKARU_API_KEY
26
+ reply = client.chat.completions.create(
27
+ model="moonshotai/kimi-k3",
28
+ messages=[{"role": "user", "content": "Explain a rainbow in one sentence."}],
29
+ )
30
+ print(reply.choices[0].message.content)
31
+ ```
32
+
33
+ ```sh
34
+ sikaru inference chat moonshotai/kimi-k3 "Explain a rainbow in one sentence."
35
+ ```
36
+
37
+ ## What you can do
38
+
39
+ Sikaru has six product groups. Each row links to where that group lives in each
40
+ client: the generated reference for the API operations behind it, or a runnable example.
41
+
42
+ | Group | What it does | Python | TypeScript | CLI |
43
+ | --- | --- | --- | --- | --- |
44
+ | inference | Call catalog models: chat, completions and responses | [example](examples/python/inference.py), [reference](sdk/python/reference.md#chat-completions) | [example](examples/typescript/inference.ts), [reference](sdk/typescript/reference.md#chat-completions) | [example](examples/cli/inference.sh) |
45
+ | decision | Ask System One choice, yes-or-no and score questions about a text or JSON state | [reference](sdk/python/reference.md#decisions) | [reference](sdk/typescript/reference.md#decisions) | [example](examples/cli/decision.sh) |
46
+ | agent | Create, run and publish managed agents | [reference](sdk/python/reference.md#managedagents) | [reference](sdk/typescript/reference.md#managedagents) | [reference](cli/reference.md#sikaru-managed-agents) |
47
+ | eval | Run an agent in an RL environment and read the results | [reference](sdk/python/reference.md#checks) | [reference](sdk/typescript/reference.md#checks) | [reference](cli/reference.md#sikaru-checks) |
48
+ | traces | Upload traces from other systems and read run trajectories | [reference](sdk/python/reference.md#traceimports) | [reference](sdk/typescript/reference.md#traceimports) | [reference](cli/reference.md#sikaru-trace-imports) |
49
+ | environment | Create and version the RL environments agents are trained and evaluated in | [reference](sdk/python/reference.md#datasets) | [reference](sdk/typescript/reference.md#datasets) | [reference](cli/reference.md#sikaru-datasets) |
50
+
51
+ The CLI groups are `sikaru inference`, `sikaru decision`, `sikaru agent`, `sikaru eval`,
52
+ `sikaru traces` and `sikaru environment`. Run `sikaru <group> --help` for the commands in each. The CLI
53
+ reference documents the API operation commands behind them, which are also callable
54
+ under each product.
55
+
56
+ ## Repository map
57
+
58
+ | Path | Contents |
59
+ | --- | --- |
60
+ | [`sdk/python`](sdk/python) | Python SDK (`sikaru_sdk` on PyPI) |
61
+ | [`sdk/typescript`](sdk/typescript) | TypeScript SDK, published as `@aadi-labs/sikaru-sdk` |
62
+ | [`cli`](cli) | The `sikaru` command-line tool |
63
+ | [`shared`](shared) | Authoring companions and cross-language contracts |
64
+ | [`examples`](examples) | Runnable examples for the Python SDK, the TypeScript SDK and the CLI |
65
+ | [`scripts`](scripts) | Release and CI checks |
66
+
67
+ `sdk/` and `cli/` are generated from the Sikaru API definition. Open an issue rather
68
+ than editing them by hand.
69
+
70
+ ## Shared
71
+
72
+ [`shared/authoring`](shared/authoring/README.md) packages an agent's source files
73
+ (instructions, skills, assets, eval notes) from a `sikaru.json` manifest, in Python and
74
+ Rust, ready to send through the SDK or CLI.
75
+ [`shared/compute-contracts`](shared/compute-contracts/README.md) holds the contracts
76
+ that keep the Python, TypeScript and CLI clients consistent when you attach your own
77
+ compute.
78
+
79
+ ## Releases
80
+
81
+ See [CHANGELOG.md](CHANGELOG.md) for what changed in each version and
82
+ [RELEASING.md](RELEASING.md) for how a release is cut.
@@ -0,0 +1,212 @@
1
+ const { createWriteStream, existsSync, mkdirSync, mkdtemp } = require("fs");
2
+ const { join, sep } = require("path");
3
+ const { spawnSync } = require("child_process");
4
+ const { tmpdir } = require("os");
5
+
6
+ const axios = require("axios");
7
+ const rimraf = require("rimraf");
8
+ const tmpDir = tmpdir();
9
+
10
+ const error = (msg) => {
11
+ console.error(msg);
12
+ process.exit(1);
13
+ };
14
+
15
+ class Package {
16
+ constructor(platform, name, url, filename, zipExt, binaries) {
17
+ let errors = [];
18
+ if (typeof url !== "string") {
19
+ errors.push("url must be a string");
20
+ } else {
21
+ try {
22
+ new URL(url);
23
+ } catch (e) {
24
+ errors.push(e);
25
+ }
26
+ }
27
+ if (name && typeof name !== "string") {
28
+ errors.push("package name must be a string");
29
+ }
30
+ if (!name) {
31
+ errors.push("You must specify the name of your package");
32
+ }
33
+ if (binaries && typeof binaries !== "object") {
34
+ errors.push("binaries must be a string => string map");
35
+ }
36
+ if (!binaries) {
37
+ errors.push("You must specify the binaries in the package");
38
+ }
39
+
40
+ if (errors.length > 0) {
41
+ let errorMsg =
42
+ "One or more of the parameters you passed to the Binary constructor are invalid:\n";
43
+ errors.forEach((error) => {
44
+ errorMsg += error;
45
+ });
46
+ errorMsg +=
47
+ '\n\nCorrect usage: new Package("my-binary", "https://example.com/binary/download.tar.gz", {"my-binary": "my-binary"})';
48
+ error(errorMsg);
49
+ }
50
+
51
+ this.platform = platform;
52
+ this.url = url;
53
+ this.name = name;
54
+ this.filename = filename;
55
+ this.zipExt = zipExt;
56
+ this.installDirectory = join(__dirname, "node_modules", ".bin_real");
57
+ this.binaries = binaries;
58
+
59
+ if (!existsSync(this.installDirectory)) {
60
+ mkdirSync(this.installDirectory, { recursive: true });
61
+ }
62
+ }
63
+
64
+ exists() {
65
+ for (const binaryName in this.binaries) {
66
+ const binRelPath = this.binaries[binaryName];
67
+ const binPath = join(this.installDirectory, binRelPath);
68
+ if (!existsSync(binPath)) {
69
+ return false;
70
+ }
71
+ }
72
+ return true;
73
+ }
74
+
75
+ install(fetchOptions, suppressLogs = false) {
76
+ if (this.exists()) {
77
+ if (!suppressLogs) {
78
+ console.error(
79
+ `${this.name} is already installed, skipping installation.`,
80
+ );
81
+ }
82
+ return Promise.resolve();
83
+ }
84
+
85
+ if (existsSync(this.installDirectory)) {
86
+ rimraf.sync(this.installDirectory);
87
+ }
88
+
89
+ mkdirSync(this.installDirectory, { recursive: true });
90
+
91
+ if (!suppressLogs) {
92
+ console.error(`Downloading release from ${this.url}`);
93
+ }
94
+
95
+ return axios({ ...fetchOptions, url: this.url, responseType: "stream" })
96
+ .then((res) => {
97
+ return new Promise((resolve, reject) => {
98
+ mkdtemp(`${tmpDir}${sep}`, (err, directory) => {
99
+ let tempFile = join(directory, this.filename);
100
+ const sink = res.data.pipe(createWriteStream(tempFile));
101
+ sink.on("error", (err) => reject(err));
102
+ sink.on("close", () => {
103
+ if (/\.tar\.*/.test(this.zipExt)) {
104
+ const result = spawnSync("tar", [
105
+ "xf",
106
+ tempFile,
107
+ // The tarballs are stored with a leading directory
108
+ // component; we strip one component in the
109
+ // shell installers too.
110
+ "--strip-components",
111
+ "1",
112
+ "-C",
113
+ this.installDirectory,
114
+ ]);
115
+ if (result.status == 0) {
116
+ resolve();
117
+ } else if (result.error) {
118
+ reject(result.error);
119
+ } else {
120
+ reject(
121
+ new Error(
122
+ `An error occurred untarring the artifact: stdout: ${result.stdout}; stderr: ${result.stderr}`,
123
+ ),
124
+ );
125
+ }
126
+ } else if (this.zipExt == ".zip") {
127
+ let result;
128
+ if (this.platform.artifactName.includes("windows")) {
129
+ // Windows does not have "unzip" by default on many installations, instead
130
+ // we use Expand-Archive from powershell
131
+ result = spawnSync("powershell.exe", [
132
+ "-NoProfile",
133
+ "-NonInteractive",
134
+ "-Command",
135
+ `& {
136
+ param([string]$LiteralPath, [string]$DestinationPath)
137
+ Expand-Archive -LiteralPath $LiteralPath -DestinationPath $DestinationPath -Force
138
+ }`,
139
+ tempFile,
140
+ this.installDirectory,
141
+ ]);
142
+ } else {
143
+ result = spawnSync("unzip", [
144
+ "-q",
145
+ tempFile,
146
+ "-d",
147
+ this.installDirectory,
148
+ ]);
149
+ }
150
+
151
+ if (result.status == 0) {
152
+ resolve();
153
+ } else if (result.error) {
154
+ reject(result.error);
155
+ } else {
156
+ reject(
157
+ new Error(
158
+ `An error occurred unzipping the artifact: stdout: ${result.stdout}; stderr: ${result.stderr}`,
159
+ ),
160
+ );
161
+ }
162
+ } else {
163
+ reject(
164
+ new Error(`Unrecognized file extension: ${this.zipExt}`),
165
+ );
166
+ }
167
+ });
168
+ });
169
+ });
170
+ })
171
+ .then(() => {
172
+ if (!suppressLogs) {
173
+ console.error(`${this.name} has been installed!`);
174
+ }
175
+ })
176
+ .catch((e) => {
177
+ error(`Error fetching release: ${e.message}`);
178
+ });
179
+ }
180
+
181
+ run(binaryName, fetchOptions) {
182
+ const promise = !this.exists()
183
+ ? this.install(fetchOptions, true)
184
+ : Promise.resolve();
185
+
186
+ promise
187
+ .then(() => {
188
+ const [, , ...args] = process.argv;
189
+
190
+ const options = { cwd: process.cwd(), stdio: "inherit" };
191
+
192
+ const binRelPath = this.binaries[binaryName];
193
+ if (!binRelPath) {
194
+ error(`${binaryName} is not a known binary in ${this.name}`);
195
+ }
196
+ const binPath = join(this.installDirectory, binRelPath);
197
+ const result = spawnSync(binPath, args, options);
198
+
199
+ if (result.error) {
200
+ error(result.error);
201
+ }
202
+
203
+ process.exit(result.status);
204
+ })
205
+ .catch((e) => {
206
+ error(e.message);
207
+ process.exit(1);
208
+ });
209
+ }
210
+ }
211
+
212
+ module.exports.Package = Package;
package/binary.js ADDED
@@ -0,0 +1,128 @@
1
+ const { Package } = require("./binary-install");
2
+ const os = require("os");
3
+ const cTable = require("console.table");
4
+ const libc = require("detect-libc");
5
+ const { configureProxy } = require("axios-proxy-builder");
6
+
7
+ const error = (msg) => {
8
+ console.error(msg);
9
+ process.exit(1);
10
+ };
11
+
12
+ const {
13
+ name,
14
+ artifactDownloadUrls,
15
+ supportedPlatforms,
16
+ glibcMinimum,
17
+ } = require("./package.json");
18
+
19
+ // FIXME: implement NPM installer handling of fallback download URLs
20
+ const artifactDownloadUrl = artifactDownloadUrls[0];
21
+ const builderGlibcMajorVersion = glibcMinimum.major;
22
+ const builderGlibcMinorVersion = glibcMinimum.series;
23
+
24
+ const getPlatform = () => {
25
+ const rawOsType = os.type();
26
+ const rawArchitecture = os.arch();
27
+
28
+ // We want to use rust-style target triples as the canonical key
29
+ // for a platform, so translate the "os" library's concepts into rust ones
30
+ let osType = "";
31
+ switch (rawOsType) {
32
+ case "Windows_NT":
33
+ osType = "pc-windows-msvc";
34
+ break;
35
+ case "Darwin":
36
+ osType = "apple-darwin";
37
+ break;
38
+ case "Linux":
39
+ osType = "unknown-linux-gnu";
40
+ break;
41
+ }
42
+
43
+ let arch = "";
44
+ switch (rawArchitecture) {
45
+ case "x64":
46
+ arch = "x86_64";
47
+ break;
48
+ case "arm64":
49
+ arch = "aarch64";
50
+ break;
51
+ }
52
+
53
+ if (rawOsType === "Linux") {
54
+ if (libc.familySync() == "musl") {
55
+ osType = "unknown-linux-musl-dynamic";
56
+ } else if (libc.isNonGlibcLinuxSync()) {
57
+ console.warn(
58
+ "Your libc is neither glibc nor musl; trying static musl binary instead",
59
+ );
60
+ osType = "unknown-linux-musl-static";
61
+ } else {
62
+ let libcVersion = libc.versionSync();
63
+ let splitLibcVersion = libcVersion.split(".");
64
+ let libcMajorVersion = splitLibcVersion[0];
65
+ let libcMinorVersion = splitLibcVersion[1];
66
+ if (
67
+ libcMajorVersion != builderGlibcMajorVersion ||
68
+ libcMinorVersion < builderGlibcMinorVersion
69
+ ) {
70
+ // We can't run the glibc binaries, but we can run the static musl ones
71
+ // if they exist
72
+ console.warn(
73
+ "Your glibc isn't compatible; trying static musl binary instead",
74
+ );
75
+ osType = "unknown-linux-musl-static";
76
+ }
77
+ }
78
+ }
79
+
80
+ // Assume the above succeeded and build a target triple to look things up with.
81
+ // If any of it failed, this lookup will fail and we'll handle it like normal.
82
+ let targetTriple = `${arch}-${osType}`;
83
+ let platform = supportedPlatforms[targetTriple];
84
+
85
+ if (!platform) {
86
+ error(
87
+ `Platform with type "${rawOsType}" and architecture "${rawArchitecture}" is not supported by ${name}.\nYour system must be one of the following:\n\n${Object.keys(
88
+ supportedPlatforms,
89
+ ).join(",")}`,
90
+ );
91
+ }
92
+
93
+ return platform;
94
+ };
95
+
96
+ const getPackage = () => {
97
+ const platform = getPlatform();
98
+ const url = `${artifactDownloadUrl}/${platform.artifactName}`;
99
+ let filename = platform.artifactName;
100
+ let ext = platform.zipExt;
101
+ let binary = new Package(platform, name, url, filename, ext, platform.bins);
102
+
103
+ return binary;
104
+ };
105
+
106
+ const install = (suppressLogs) => {
107
+ if (!artifactDownloadUrl || artifactDownloadUrl.length === 0) {
108
+ console.warn("in demo mode, not installing binaries");
109
+ return;
110
+ }
111
+ const package = getPackage();
112
+ const proxy = configureProxy(package.url);
113
+
114
+ return package.install(proxy, suppressLogs);
115
+ };
116
+
117
+ const run = (binaryName) => {
118
+ const package = getPackage();
119
+ const proxy = configureProxy(package.url);
120
+
121
+ package.run(binaryName, proxy);
122
+ };
123
+
124
+ module.exports = {
125
+ install,
126
+ run,
127
+ getPackage,
128
+ };
package/install.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { install } = require("./binary");
4
+ install(false);
@@ -0,0 +1,546 @@
1
+ {
2
+ "lockfileVersion": 3,
3
+ "name": "@aadi-labs/sikaru-cli",
4
+ "packages": {
5
+ "": {
6
+ "bin": {
7
+ "sikaru": "run-sikaru.js"
8
+ },
9
+ "dependencies": {
10
+ "axios": "^1.13.5",
11
+ "axios-proxy-builder": "^0.1.2",
12
+ "console.table": "^0.10.0",
13
+ "detect-libc": "^2.1.2",
14
+ "rimraf": "^6.1.3"
15
+ },
16
+ "devDependencies": {
17
+ "prettier": "^3.8.1"
18
+ },
19
+ "engines": {
20
+ "node": ">=14",
21
+ "npm": ">=6"
22
+ },
23
+ "hasInstallScript": true,
24
+ "license": "Apache-2.0",
25
+ "name": "@aadi-labs/sikaru-cli",
26
+ "version": "0.0.1"
27
+ },
28
+ "node_modules/@isaacs/cliui": {
29
+ "engines": {
30
+ "node": ">=18"
31
+ },
32
+ "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==",
33
+ "license": "BlueOak-1.0.0",
34
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz",
35
+ "version": "9.0.0"
36
+ },
37
+ "node_modules/asynckit": {
38
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
39
+ "license": "MIT",
40
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
41
+ "version": "0.4.0"
42
+ },
43
+ "node_modules/axios": {
44
+ "dependencies": {
45
+ "follow-redirects": "^1.15.11",
46
+ "form-data": "^4.0.5",
47
+ "proxy-from-env": "^1.1.0"
48
+ },
49
+ "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==",
50
+ "license": "MIT",
51
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz",
52
+ "version": "1.13.5"
53
+ },
54
+ "node_modules/axios-proxy-builder": {
55
+ "dependencies": {
56
+ "tunnel": "^0.0.6"
57
+ },
58
+ "integrity": "sha512-6uBVsBZzkB3tCC8iyx59mCjQckhB8+GQrI9Cop8eC7ybIsvs/KtnNgEBfRMSEa7GqK2VBGUzgjNYMdPIfotyPA==",
59
+ "license": "MIT",
60
+ "resolved": "https://registry.npmjs.org/axios-proxy-builder/-/axios-proxy-builder-0.1.2.tgz",
61
+ "version": "0.1.2"
62
+ },
63
+ "node_modules/balanced-match": {
64
+ "dependencies": {
65
+ "jackspeak": "^4.2.3"
66
+ },
67
+ "engines": {
68
+ "node": "20 || >=22"
69
+ },
70
+ "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==",
71
+ "license": "MIT",
72
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz",
73
+ "version": "4.0.2"
74
+ },
75
+ "node_modules/brace-expansion": {
76
+ "dependencies": {
77
+ "balanced-match": "^4.0.2"
78
+ },
79
+ "engines": {
80
+ "node": "20 || >=22"
81
+ },
82
+ "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==",
83
+ "license": "MIT",
84
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz",
85
+ "version": "5.0.2"
86
+ },
87
+ "node_modules/call-bind-apply-helpers": {
88
+ "dependencies": {
89
+ "es-errors": "^1.3.0",
90
+ "function-bind": "^1.1.2"
91
+ },
92
+ "engines": {
93
+ "node": ">= 0.4"
94
+ },
95
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
96
+ "license": "MIT",
97
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
98
+ "version": "1.0.2"
99
+ },
100
+ "node_modules/clone": {
101
+ "engines": {
102
+ "node": ">=0.8"
103
+ },
104
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
105
+ "license": "MIT",
106
+ "optional": true,
107
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
108
+ "version": "1.0.4"
109
+ },
110
+ "node_modules/combined-stream": {
111
+ "dependencies": {
112
+ "delayed-stream": "~1.0.0"
113
+ },
114
+ "engines": {
115
+ "node": ">= 0.8"
116
+ },
117
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
118
+ "license": "MIT",
119
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
120
+ "version": "1.0.8"
121
+ },
122
+ "node_modules/console.table": {
123
+ "dependencies": {
124
+ "easy-table": "1.1.0"
125
+ },
126
+ "engines": {
127
+ "node": "> 0.10"
128
+ },
129
+ "integrity": "sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==",
130
+ "license": "MIT",
131
+ "resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz",
132
+ "version": "0.10.0"
133
+ },
134
+ "node_modules/defaults": {
135
+ "dependencies": {
136
+ "clone": "^1.0.2"
137
+ },
138
+ "funding": {
139
+ "url": "https://github.com/sponsors/sindresorhus"
140
+ },
141
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
142
+ "license": "MIT",
143
+ "optional": true,
144
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
145
+ "version": "1.0.4"
146
+ },
147
+ "node_modules/delayed-stream": {
148
+ "engines": {
149
+ "node": ">=0.4.0"
150
+ },
151
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
152
+ "license": "MIT",
153
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
154
+ "version": "1.0.0"
155
+ },
156
+ "node_modules/detect-libc": {
157
+ "engines": {
158
+ "node": ">=8"
159
+ },
160
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
161
+ "license": "Apache-2.0",
162
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
163
+ "version": "2.1.2"
164
+ },
165
+ "node_modules/dunder-proto": {
166
+ "dependencies": {
167
+ "call-bind-apply-helpers": "^1.0.1",
168
+ "es-errors": "^1.3.0",
169
+ "gopd": "^1.2.0"
170
+ },
171
+ "engines": {
172
+ "node": ">= 0.4"
173
+ },
174
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
175
+ "license": "MIT",
176
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
177
+ "version": "1.0.1"
178
+ },
179
+ "node_modules/easy-table": {
180
+ "integrity": "sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==",
181
+ "license": "MIT",
182
+ "optionalDependencies": {
183
+ "wcwidth": ">=1.0.1"
184
+ },
185
+ "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz",
186
+ "version": "1.1.0"
187
+ },
188
+ "node_modules/es-define-property": {
189
+ "engines": {
190
+ "node": ">= 0.4"
191
+ },
192
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
193
+ "license": "MIT",
194
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
195
+ "version": "1.0.1"
196
+ },
197
+ "node_modules/es-errors": {
198
+ "engines": {
199
+ "node": ">= 0.4"
200
+ },
201
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
202
+ "license": "MIT",
203
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
204
+ "version": "1.3.0"
205
+ },
206
+ "node_modules/es-object-atoms": {
207
+ "dependencies": {
208
+ "es-errors": "^1.3.0"
209
+ },
210
+ "engines": {
211
+ "node": ">= 0.4"
212
+ },
213
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
214
+ "license": "MIT",
215
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
216
+ "version": "1.1.1"
217
+ },
218
+ "node_modules/es-set-tostringtag": {
219
+ "dependencies": {
220
+ "es-errors": "^1.3.0",
221
+ "get-intrinsic": "^1.2.6",
222
+ "has-tostringtag": "^1.0.2",
223
+ "hasown": "^2.0.2"
224
+ },
225
+ "engines": {
226
+ "node": ">= 0.4"
227
+ },
228
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
229
+ "license": "MIT",
230
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
231
+ "version": "2.1.0"
232
+ },
233
+ "node_modules/follow-redirects": {
234
+ "engines": {
235
+ "node": ">=4.0"
236
+ },
237
+ "funding": [
238
+ {
239
+ "type": "individual",
240
+ "url": "https://github.com/sponsors/RubenVerborgh"
241
+ }
242
+ ],
243
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
244
+ "license": "MIT",
245
+ "peerDependenciesMeta": {
246
+ "debug": {
247
+ "optional": true
248
+ }
249
+ },
250
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
251
+ "version": "1.15.11"
252
+ },
253
+ "node_modules/form-data": {
254
+ "dependencies": {
255
+ "asynckit": "^0.4.0",
256
+ "combined-stream": "^1.0.8",
257
+ "es-set-tostringtag": "^2.1.0",
258
+ "hasown": "^2.0.2",
259
+ "mime-types": "^2.1.12"
260
+ },
261
+ "engines": {
262
+ "node": ">= 6"
263
+ },
264
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
265
+ "license": "MIT",
266
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
267
+ "version": "4.0.5"
268
+ },
269
+ "node_modules/function-bind": {
270
+ "funding": {
271
+ "url": "https://github.com/sponsors/ljharb"
272
+ },
273
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
274
+ "license": "MIT",
275
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
276
+ "version": "1.1.2"
277
+ },
278
+ "node_modules/get-intrinsic": {
279
+ "dependencies": {
280
+ "call-bind-apply-helpers": "^1.0.2",
281
+ "es-define-property": "^1.0.1",
282
+ "es-errors": "^1.3.0",
283
+ "es-object-atoms": "^1.1.1",
284
+ "function-bind": "^1.1.2",
285
+ "get-proto": "^1.0.1",
286
+ "gopd": "^1.2.0",
287
+ "has-symbols": "^1.1.0",
288
+ "hasown": "^2.0.2",
289
+ "math-intrinsics": "^1.1.0"
290
+ },
291
+ "engines": {
292
+ "node": ">= 0.4"
293
+ },
294
+ "funding": {
295
+ "url": "https://github.com/sponsors/ljharb"
296
+ },
297
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
298
+ "license": "MIT",
299
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
300
+ "version": "1.3.0"
301
+ },
302
+ "node_modules/get-proto": {
303
+ "dependencies": {
304
+ "dunder-proto": "^1.0.1",
305
+ "es-object-atoms": "^1.0.0"
306
+ },
307
+ "engines": {
308
+ "node": ">= 0.4"
309
+ },
310
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
311
+ "license": "MIT",
312
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
313
+ "version": "1.0.1"
314
+ },
315
+ "node_modules/glob": {
316
+ "dependencies": {
317
+ "minimatch": "^10.2.0",
318
+ "minipass": "^7.1.2",
319
+ "path-scurry": "^2.0.0"
320
+ },
321
+ "engines": {
322
+ "node": "20 || >=22"
323
+ },
324
+ "funding": {
325
+ "url": "https://github.com/sponsors/isaacs"
326
+ },
327
+ "integrity": "sha512-/g3B0mC+4x724v1TgtBlBtt2hPi/EWptsIAmXUx9Z2rvBYleQcsrmaOzd5LyL50jf/Soi83ZDJmw2+XqvH/EeA==",
328
+ "license": "BlueOak-1.0.0",
329
+ "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.3.tgz",
330
+ "version": "13.0.3"
331
+ },
332
+ "node_modules/gopd": {
333
+ "engines": {
334
+ "node": ">= 0.4"
335
+ },
336
+ "funding": {
337
+ "url": "https://github.com/sponsors/ljharb"
338
+ },
339
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
340
+ "license": "MIT",
341
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
342
+ "version": "1.2.0"
343
+ },
344
+ "node_modules/has-symbols": {
345
+ "engines": {
346
+ "node": ">= 0.4"
347
+ },
348
+ "funding": {
349
+ "url": "https://github.com/sponsors/ljharb"
350
+ },
351
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
352
+ "license": "MIT",
353
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
354
+ "version": "1.1.0"
355
+ },
356
+ "node_modules/has-tostringtag": {
357
+ "dependencies": {
358
+ "has-symbols": "^1.0.3"
359
+ },
360
+ "engines": {
361
+ "node": ">= 0.4"
362
+ },
363
+ "funding": {
364
+ "url": "https://github.com/sponsors/ljharb"
365
+ },
366
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
367
+ "license": "MIT",
368
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
369
+ "version": "1.0.2"
370
+ },
371
+ "node_modules/hasown": {
372
+ "dependencies": {
373
+ "function-bind": "^1.1.2"
374
+ },
375
+ "engines": {
376
+ "node": ">= 0.4"
377
+ },
378
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
379
+ "license": "MIT",
380
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
381
+ "version": "2.0.2"
382
+ },
383
+ "node_modules/jackspeak": {
384
+ "dependencies": {
385
+ "@isaacs/cliui": "^9.0.0"
386
+ },
387
+ "engines": {
388
+ "node": "20 || >=22"
389
+ },
390
+ "funding": {
391
+ "url": "https://github.com/sponsors/isaacs"
392
+ },
393
+ "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==",
394
+ "license": "BlueOak-1.0.0",
395
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz",
396
+ "version": "4.2.3"
397
+ },
398
+ "node_modules/lru-cache": {
399
+ "engines": {
400
+ "node": "20 || >=22"
401
+ },
402
+ "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==",
403
+ "license": "BlueOak-1.0.0",
404
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz",
405
+ "version": "11.2.6"
406
+ },
407
+ "node_modules/math-intrinsics": {
408
+ "engines": {
409
+ "node": ">= 0.4"
410
+ },
411
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
412
+ "license": "MIT",
413
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
414
+ "version": "1.1.0"
415
+ },
416
+ "node_modules/mime-db": {
417
+ "engines": {
418
+ "node": ">= 0.6"
419
+ },
420
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
421
+ "license": "MIT",
422
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
423
+ "version": "1.52.0"
424
+ },
425
+ "node_modules/mime-types": {
426
+ "dependencies": {
427
+ "mime-db": "1.52.0"
428
+ },
429
+ "engines": {
430
+ "node": ">= 0.6"
431
+ },
432
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
433
+ "license": "MIT",
434
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
435
+ "version": "2.1.35"
436
+ },
437
+ "node_modules/minimatch": {
438
+ "dependencies": {
439
+ "brace-expansion": "^5.0.2"
440
+ },
441
+ "engines": {
442
+ "node": "20 || >=22"
443
+ },
444
+ "funding": {
445
+ "url": "https://github.com/sponsors/isaacs"
446
+ },
447
+ "integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==",
448
+ "license": "BlueOak-1.0.0",
449
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.0.tgz",
450
+ "version": "10.2.0"
451
+ },
452
+ "node_modules/minipass": {
453
+ "engines": {
454
+ "node": ">=16 || 14 >=14.17"
455
+ },
456
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
457
+ "license": "ISC",
458
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
459
+ "version": "7.1.2"
460
+ },
461
+ "node_modules/package-json-from-dist": {
462
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
463
+ "license": "BlueOak-1.0.0",
464
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
465
+ "version": "1.0.1"
466
+ },
467
+ "node_modules/path-scurry": {
468
+ "dependencies": {
469
+ "lru-cache": "^11.0.0",
470
+ "minipass": "^7.1.2"
471
+ },
472
+ "engines": {
473
+ "node": "20 || >=22"
474
+ },
475
+ "funding": {
476
+ "url": "https://github.com/sponsors/isaacs"
477
+ },
478
+ "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==",
479
+ "license": "BlueOak-1.0.0",
480
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz",
481
+ "version": "2.0.1"
482
+ },
483
+ "node_modules/prettier": {
484
+ "bin": {
485
+ "prettier": "bin/prettier.cjs"
486
+ },
487
+ "dev": true,
488
+ "engines": {
489
+ "node": ">=14"
490
+ },
491
+ "funding": {
492
+ "url": "https://github.com/prettier/prettier?sponsor=1"
493
+ },
494
+ "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==",
495
+ "license": "MIT",
496
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz",
497
+ "version": "3.8.1"
498
+ },
499
+ "node_modules/proxy-from-env": {
500
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
501
+ "license": "MIT",
502
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
503
+ "version": "1.1.0"
504
+ },
505
+ "node_modules/rimraf": {
506
+ "bin": {
507
+ "rimraf": "dist/esm/bin.mjs"
508
+ },
509
+ "dependencies": {
510
+ "glob": "^13.0.3",
511
+ "package-json-from-dist": "^1.0.1"
512
+ },
513
+ "engines": {
514
+ "node": "20 || >=22"
515
+ },
516
+ "funding": {
517
+ "url": "https://github.com/sponsors/isaacs"
518
+ },
519
+ "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==",
520
+ "license": "BlueOak-1.0.0",
521
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz",
522
+ "version": "6.1.3"
523
+ },
524
+ "node_modules/tunnel": {
525
+ "engines": {
526
+ "node": ">=0.6.11 <=0.7.0 || >=0.7.3"
527
+ },
528
+ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
529
+ "license": "MIT",
530
+ "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
531
+ "version": "0.0.6"
532
+ },
533
+ "node_modules/wcwidth": {
534
+ "dependencies": {
535
+ "defaults": "^1.0.3"
536
+ },
537
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
538
+ "license": "MIT",
539
+ "optional": true,
540
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
541
+ "version": "1.0.1"
542
+ }
543
+ },
544
+ "requires": true,
545
+ "version": "0.0.1"
546
+ }
package/package.json CHANGED
@@ -1,9 +1,129 @@
1
1
  {
2
- "name": "@aadi-labs/sikaru-cli",
3
- "version": "0.0.0",
4
- "description": "Placeholder that reserves the package name. Install 0.0.1 or later.",
5
- "license": "MIT",
6
- "repository": { "type": "git", "url": "git+https://github.com/aadi-labs/sikaru-clients.git" },
2
+ "artifactDownloadUrls": [
3
+ "https://github.com/aadi-labs/sikaru-clients/releases/download/v0.0.1"
4
+ ],
5
+ "author": "Aadi Labs",
6
+ "bin": {
7
+ "sikaru": "run-sikaru.js"
8
+ },
9
+ "dependencies": {
10
+ "axios": "^1.13.5",
11
+ "axios-proxy-builder": "^0.1.2",
12
+ "console.table": "^0.10.0",
13
+ "detect-libc": "^2.1.2",
14
+ "rimraf": "^6.1.3"
15
+ },
16
+ "description": "Official command-line interface for Sikaru",
17
+ "devDependencies": {
18
+ "prettier": "^3.8.1"
19
+ },
20
+ "engines": {
21
+ "node": ">=14",
22
+ "npm": ">=6"
23
+ },
24
+ "glibcMinimum": {
25
+ "major": 2,
26
+ "series": 35
27
+ },
7
28
  "homepage": "https://sikaru.ai",
8
- "files": ["README.md"]
9
- }
29
+ "keywords": [
30
+ "command-line-utilities",
31
+ "web-programming",
32
+ "agents",
33
+ "sikaru",
34
+ "cli"
35
+ ],
36
+ "license": "Apache-2.0",
37
+ "name": "@aadi-labs/sikaru-cli",
38
+ "preferUnplugged": true,
39
+ "repository": "https://github.com/aadi-labs/sikaru-clients",
40
+ "scripts": {
41
+ "fmt": "prettier --write **/*.js",
42
+ "fmt:check": "prettier --check **/*.js",
43
+ "postinstall": "node ./install.js"
44
+ },
45
+ "supportedPlatforms": {
46
+ "aarch64-apple-darwin": {
47
+ "artifactName": "sikaru-cli-aarch64-apple-darwin.tar.gz",
48
+ "bins": {
49
+ "sikaru": "sikaru"
50
+ },
51
+ "zipExt": ".tar.gz"
52
+ },
53
+ "aarch64-pc-windows-msvc": {
54
+ "artifactName": "sikaru-cli-x86_64-pc-windows-msvc.zip",
55
+ "bins": {
56
+ "sikaru": "sikaru.exe"
57
+ },
58
+ "zipExt": ".zip"
59
+ },
60
+ "aarch64-unknown-linux-gnu": {
61
+ "artifactName": "sikaru-cli-aarch64-unknown-linux-gnu.tar.gz",
62
+ "bins": {
63
+ "sikaru": "sikaru"
64
+ },
65
+ "zipExt": ".tar.gz"
66
+ },
67
+ "aarch64-unknown-linux-musl-dynamic": {
68
+ "artifactName": "sikaru-cli-aarch64-unknown-linux-musl.tar.gz",
69
+ "bins": {
70
+ "sikaru": "sikaru"
71
+ },
72
+ "zipExt": ".tar.gz"
73
+ },
74
+ "aarch64-unknown-linux-musl-static": {
75
+ "artifactName": "sikaru-cli-aarch64-unknown-linux-musl.tar.gz",
76
+ "bins": {
77
+ "sikaru": "sikaru"
78
+ },
79
+ "zipExt": ".tar.gz"
80
+ },
81
+ "x86_64-apple-darwin": {
82
+ "artifactName": "sikaru-cli-x86_64-apple-darwin.tar.gz",
83
+ "bins": {
84
+ "sikaru": "sikaru"
85
+ },
86
+ "zipExt": ".tar.gz"
87
+ },
88
+ "x86_64-pc-windows-gnu": {
89
+ "artifactName": "sikaru-cli-x86_64-pc-windows-msvc.zip",
90
+ "bins": {
91
+ "sikaru": "sikaru.exe"
92
+ },
93
+ "zipExt": ".zip"
94
+ },
95
+ "x86_64-pc-windows-msvc": {
96
+ "artifactName": "sikaru-cli-x86_64-pc-windows-msvc.zip",
97
+ "bins": {
98
+ "sikaru": "sikaru.exe"
99
+ },
100
+ "zipExt": ".zip"
101
+ },
102
+ "x86_64-unknown-linux-gnu": {
103
+ "artifactName": "sikaru-cli-x86_64-unknown-linux-gnu.tar.gz",
104
+ "bins": {
105
+ "sikaru": "sikaru"
106
+ },
107
+ "zipExt": ".tar.gz"
108
+ },
109
+ "x86_64-unknown-linux-musl-dynamic": {
110
+ "artifactName": "sikaru-cli-x86_64-unknown-linux-musl.tar.gz",
111
+ "bins": {
112
+ "sikaru": "sikaru"
113
+ },
114
+ "zipExt": ".tar.gz"
115
+ },
116
+ "x86_64-unknown-linux-musl-static": {
117
+ "artifactName": "sikaru-cli-x86_64-unknown-linux-musl.tar.gz",
118
+ "bins": {
119
+ "sikaru": "sikaru"
120
+ },
121
+ "zipExt": ".tar.gz"
122
+ }
123
+ },
124
+ "version": "0.0.1",
125
+ "volta": {
126
+ "node": "18.14.1",
127
+ "npm": "9.5.0"
128
+ }
129
+ }
package/run-sikaru.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { run } = require("./binary");
4
+ run("sikaru");