open-index/open-npm huggingface dataset:
npm package: @sporemesh/browser
Description: Browser SDK for Spore challenge init, run loops, automatic submission, and browser-safe challenge adapters.
Latest version: 0.3.3

# @sporemesh/browser

Browser client SDK for the live Spore API at `https://api.sporemesh.com`.

The browser client follows the same product contract as the Python and JS CLIs:

- `init`
- `run`
- `pause`
- `status`

The only difference is runtime. In the browser, you provide a browser-safe runtime
adapter that knows how to mutate and evaluate one experiment locally, while the
SDK handles auth, node registration, automatic submission, and challenge state.

The current featured challenge is:

- `VIX Regime Classifier Sprint #1`
- metric: `log_loss`
- artifact: `classifier.mjs`
- dataset: real CBOE VIX daily close history

## Install

```bash
npm install @sporemesh/browser
```

## Quick start

```js
import {
  createBrowserClient,
  createLocalStorageStore,
  createVixRegimeAdapter,
} from "@sporemesh/browser";

const store = createLocalStorageStore();
const client = createBrowserClient({ store });

await client.init({
  llmProvider: "groq",
  llmApiKey: "<your-key>",
});

console.log(client.status().config.wallet_address);
console.log(client.status().config.default_challenge_slug);
```

Run continuously with automatic submission:

```js
await client.run({
  intervalMs: 1000,
  adapter: createVixRegimeAdapter(),
});
```

Pause and inspect state:

```js
client.pause();
console.log(client.status());
```

## Main exports

- `createBrowserWallet()`
- `importBrowserWallet(privateKey)`
- `authenticateBrowserWallet(privateKey, options?)`
- `createLocalStorageStore(key?)`
- `createMemoryStore(initial?)`
- `initBrowserClient(options)`
- `bootstrapBrowserClient(options)`
- `createBrowserClient(options?)`
- `listChallenges(options?)`
- `getChallenge(challengeId, options?)`
- `getChallengeLeaderboard(challengeId, options?)`
- `getChallengePayoutPreview(challengeId, apiKey, options?)`
- `pickDefaultChallenge(challenges)`
- `challengeRuntime(challenge)`
- `supportsBrowserRuntime(challenge)`
- `detectBrowserNodeProfile(nodePublicId?)`
- `registerBrowserNode(apiKey, options?)`
- `heartbeatBrowserNode(apiKey, options?)`
- `createBrowserLLMClient(config, overrides?)`
- `runBrowserClient(options)`
- `pauseBrowserClient(options?)`
- `getBrowserClientStatus(options?)`
- `createSubmission(apiKey, payload, options?)`
- `listSubmissions(challengeId, apiKey, options?)`
- `getSubmission(submissionId, apiKey, options?)`
- `getSubmissionLineage(challengeId, submissionId, apiKey, options?)`
- `createArtifact(apiKey, payload, options?)`
- `listArtifacts(submissionId, apiKey, options?)`
- `createVixRegimeAdapter()`
- `baselineClassifierSource`
- `scoreClassifierSource(source, dataset?)`
- `vixDatasetSummary()`

## Notes

- The SDK stores or reads wallet, API key, LLM settings, and run state only through
  the storage adapter you provide.
- Browser node metadata is informational only.
- `run()` submits every experiment result: `keep`, `discard`, or `crash`.
- The adapter decides how an experiment is mutated and evaluated in-browser.
npm package: @sporemesh/cli
Description: JavaScript CLI for Spore machine challenges
Latest version: 0.6.4

# @sporemesh/cli

JavaScript CLI for the live Spore API at `https://api.sporemesh.com`.

## Install

```bash
npm install -g @sporemesh/cli
```

## Quick Start

```bash
spore init
spore challenge show
spore play
```

`spore init` handles wallet creation or reuse, login, node registration, LLM setup, and default challenge selection in one step.

`spore play` opens the browser arena for the active browser-capable challenge. The normal product path is to run the client and let it auto-submit every result; `spore submission create` remains a low-level debug path.

The JS CLI shares the same local config file as the Python CLI:

```text
~/.spore/client.json
```

## Commands

- `spore init`
- `spore play`
- `spore login --private-key <hex>`
- `spore logout`
- `spore whoami`
- `spore challenge list`
- `spore challenge show <challenge_id>`
- `spore challenge use <challenge_id>`
- `spore challenge leaderboard <challenge_id>`
- `spore challenge payout-preview <challenge_id>`
- `spore node register`
- `spore node heartbeat`
- `spore node me`
- `spore submission create` (low-level/manual)
- `spore submission list <challenge_id>`
- `spore submission show <submission_id>`
- `spore submission lineage <challenge_id> <submission_id>`
- `spore artifact create`
- `spore artifact list <submission_id>`
- `spore payout me`