@thingd/cli 0.31.0 → 0.32.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/README.md CHANGED
@@ -1,238 +1,58 @@
1
- # thingd-cli
1
+ # @thingd/cli
2
2
 
3
- [![npm downloads (CLI)](https://img.shields.io/npm/dm/thingd-cli?label=downloads&logo=npm&color=ff6a00)](https://www.npmjs.com/package/thingd-cli)
4
- [![npm version (CLI)](https://img.shields.io/npm/v/thingd-cli?label=version&logo=npm&color=ff6a00)](https://www.npmjs.com/package/thingd-cli)
3
+ [![npm](https://img.shields.io/npm/v/@thingd/cli?label=@thingd/cli&logo=npm&color=ff6a00)](https://www.npmjs.com/package/@thingd/cli)
5
4
 
6
- A fast object-first data engine for applications and AI agents.
5
+ CLI, interactive TUI dashboard, and MCP server for [thingd](https://github.com/sayanmohsin/thingd) — a fast object-first data engine for applications and AI agents.
7
6
 
8
- This is the **thingd** CLI — command-line interface, Interactive TUI Dashboard, and MCP server for [thingd](https://www.npmjs.com/package/thingd). It provides the unified `thingd` binary, serving as a persistent stdio/HTTP MCP server for editors (Cursor, Claude Desktop), an interactive terminal UI dashboard for database operations, and a scriptable JSON utility to inspect and manage local or remote thingd databases.
9
-
10
- ## Installation
11
-
12
- ### npm (CLI)
13
-
14
- Install globally via npm to use the `thingd` command anywhere:
15
-
16
- ```bash
17
- npm install -g thingd-cli
18
- ```
19
-
20
- Or run it on the fly using `npx`:
21
-
22
- ```bash
23
- npx thingd-cli
24
- ```
25
-
26
- ### Docker (sidecar runtime)
27
-
28
- ```bash
29
- docker pull sayanmohsin/thingd
30
- docker run -p 8757:8757 sayanmohsin/thingd
31
- ```
32
-
33
- See the [Docker Hub](https://hub.docker.com/r/sayanmohsin/thingd) page for all tags.
34
-
35
- ## Quick Start: Zero-Config MCP Setup
36
-
37
- The easiest way to integrate `thingd` with your editors (Claude Desktop and Cursor) is to run the automated setup command:
7
+ ## Install
38
8
 
39
9
  ```bash
40
- thingd install
10
+ npm install -g @thingd/cli
41
11
  ```
42
12
 
43
- This command will:
44
- - Auto-detect the absolute path of your active `node` binary and global `thingd` script.
45
- - Automatically locate or create your persistent local database at `~/.thingd/data.db`.
46
- - **For Claude Desktop**: Automatically configure the stdio MCP server in your `claude_desktop_config.json` (macOS).
47
- - **For Cursor**: Print the exact, copy-pasteable JSON block to paste into your Cursor MCP settings.
48
-
49
- ## Two Modes of Operation
50
-
51
- The CLI is designed to support both human operators and automated scripts through two distinct modes:
13
+ ## Usage
52
14
 
53
- 1. **Interactive Dashboard (TUI)**: Run `thingd` without any arguments to launch a beautiful, interactive terminal UI. Perfect for exploring collections, editing objects, and managing queues manually.
54
- 2. **Non-Interactive CLI**: Run `thingd <command>` for one-off operations. This mode intentionally emits JSON so it is easy to use from shell scripts, CI/CD pipelines, and automated workflows.
55
-
56
- ---
57
-
58
- ## 1. Interactive Dashboard (TUI)
59
-
60
- To start the interactive dashboard, simply run:
61
15
  ```bash
62
- thingd
63
- ```
64
-
65
- ### Connection Mode
66
- Upon launch, you will be prompted to select a connection driver:
67
- - `Memory`: An ephemeral, in-memory instance (great for quick testing).
68
- - `Native`: Connects directly to a local SQLite `.db` file (requires a file path).
69
- - `Cloud`: Connects to a remote ThingD cluster (requires a URL and an optional Bearer Token).
70
-
71
- ### Keyboard Shortcuts
72
- Once connected, the TUI provides a dual-pane layout: a navigation sidebar on the left and a detailed viewer/editor on the right.
73
-
74
- | Shortcut | Action |
75
- |----------|--------|
76
- | `↑` / `↓` (or `k` / `j`) | Navigate the tree vertically |
77
- | `←` / `→` (or `h` / `l`) | Expand or collapse folders (Collections, Streams, Queues) |
78
- | `Enter` | Expand node or open a folder |
79
- | `c` | **Create** a new Object, Event, or push a Queue job |
80
- | `e` | **Edit** an Object or retry a Queue job |
81
- | `d` | **Delete** an Object or Ack/Resolve a Queue job |
82
- | `/` (or `f`) | **Global Semantic Search** across the database |
83
- | `i` | **Info**: View Connection Info & Cloud Cluster Status |
84
- | `r` | **Refresh** data from the database |
85
- | `s` | **Switch** database connections |
86
- | `q` | **Quit** |
87
-
88
- ---
89
-
90
- ## 2. Non-Interactive CLI
91
-
92
- For scripts and automation, you can bypass the TUI entirely.
16
+ # Start the MCP server (for AI agents — Cursor, Claude Desktop)
17
+ thingd mcp
93
18
 
94
- ### Common Options
95
- You can configure the connection via environment variables or CLI flags:
19
+ # Start the HTTP MCP server + dashboard
20
+ thingd mcp-http
96
21
 
97
- ```txt
98
- --url <url> remote thingd URL. Defaults to THINGD_URL
99
- --auth-token <tok> remote bearer token. Defaults to THINGD_AUTH_TOKEN
100
- --path <path> local database path. Defaults to THINGD_PATH or ~/.thingd/data.db
101
- --driver <driver> memory, native, or cloud
102
- --pretty pretty-print JSON output
103
- --limit <n> result limit for search and list commands
104
- ```
105
-
106
- ### Native Driver (SQLite)
107
-
108
- Use the native SQLite driver for persistent local storage:
109
-
110
- ```bash
111
- thingd --path ./my-data.db --driver native
112
- ```
22
+ # Open the TUI dashboard
23
+ thingd dashboard
113
24
 
114
- Or set environment variables:
25
+ # Manage objects
26
+ thingd objects list <collection>
27
+ thingd objects get <collection> <id>
28
+ thingd objects put <collection> <id> --data '{"text":"hello"}'
29
+ thingd objects delete <collection> <id>
30
+ thingd objects put-batch <collection> --file <path>
31
+ thingd objects delete-batch <collection> <id1> [id2] ...
115
32
 
116
- ```bash
117
- export THINGD_PATH=./app-data.db
118
- export THINGD_DRIVER=native
119
- thingd
120
- ```
33
+ # Events
34
+ thingd events append <stream> <type> --text "event data"
35
+ thingd events list [stream]
121
36
 
122
- All commands work identically — objects, events, queues, and search are all persisted.
37
+ # Queues
38
+ thingd queues push <queue> --payload '{"key":"value"}'
39
+ thingd queues claim <queue>
40
+ thingd queues ack <queue> <jobId>
41
+ thingd queues nack <queue> <jobId>
123
42
 
124
- ### MCP Server
43
+ # Links
44
+ thingd links create <fromRef> <linkType> <toRef>
45
+ thingd links neighbors <reference>
125
46
 
126
- Run a persistent Streamable HTTP MCP server for remote agents:
127
-
128
- ```bash
129
- thingd mcp-http --path ./data.db --driver native --auth-token my-token
130
- ```
131
-
132
- Connect via MCP stdio for Claude Desktop and Cursor:
133
-
134
- ```bash
135
- thingd mcp --path ./data.db --driver native
136
- ```
137
-
138
- ### MCP Integration
139
-
140
- The `thingd` CLI has a built-in `mcp` subcommand that exposes an MCP server over `stdio`. This allows Claude Desktop to securely connect to your `thingd` database.
141
-
142
- **Connecting to a Local Database:**
143
- To let Claude read and write to a local `thingd.db` file, add this to your `claude_desktop_config.json`:
144
-
145
- ```json
146
- {
147
- "mcpServers": {
148
- "thingd-local": {
149
- "command": "thingd",
150
- "args": ["mcp", "--path", "/absolute/path/to/thingd.db", "--driver", "native"]
151
- }
152
- }
153
- }
154
- ```
155
-
156
- **Bridging Claude to the Cloud:**
157
- Claude Desktop natively only supports local `stdio` servers. However, `thingd mcp` can act as a bridge! If you provide a `--url`, the CLI will launch locally but seamlessly proxy all of Claude's requests to your remote cluster:
158
-
159
- ```json
160
- {
161
- "mcpServers": {
162
- "thingd-cloud": {
163
- "command": "thingd",
164
- "args": ["mcp", "--url", "https://your-thingd-cloud.com/mcp", "--auth-token", "your-secret-token"]
165
- }
166
- }
167
- }
168
- ```
169
-
170
- **Running as a Streamable HTTP Server:**
171
- If you want to run `thingd` as a standalone Streamable HTTP MCP server (for example, to connect remote agents or ChatGPT), you can spin it up directly using `mcp-http`:
172
-
173
- ```bash
174
- thingd mcp-http --path ./thingd.db --driver native --port 8757 --auth-token change-me
175
- ```
176
-
177
- ### Command Reference
178
-
179
- **System & Diagnostics**
180
- ```bash
181
- thingd doctor # Run Node, native binding, and remote connectivity diagnostics
182
- thingd metrics # Get total database counts (objects, events, activeJobs, deadJobs)
183
- thingd status # Check cluster health (requires --url)
184
- thingd tools # List available MCP tools (requires --url)
185
- thingd bench rust --smoke # Run Rust SQLite engine smoke benchmarks
186
- thingd bench rust --count 500 # Run Rust SQLite engine benchmarks with specific run count
187
- ```
188
-
189
- **Discovery & Collections**
190
- ```bash
191
- thingd collections list # List all active collections
192
- thingd streams list # List all active stream names (alias for events streams)
193
- thingd events streams # List all active event streams
194
- thingd queues list-all # List all active queue names
195
- ```
196
-
197
- **Search**
198
- ```bash
199
- thingd search "my query" [--collection <name>] [--limit <n>]
200
- ```
201
-
202
- **Objects**
203
- ```bash
204
- thingd objects list decisions # List all objects inside a collection
205
- thingd objects put decisions core --text "msg" # Put object with plain text content
206
- thingd objects put decisions core --data '{"a":1}' # Put object with arbitrary JSON data
207
- thingd objects get decisions core # Fetch a specific object by ID
208
- thingd objects delete decisions core # Delete an object by ID
209
- ```
210
-
211
- **Events**
212
- ```bash
213
- thingd events append project:thingd decision.made --text "Picked the CLI shape."
214
- thingd events list project:thingd
215
- ```
216
-
217
- **Queues**
218
- ```bash
219
- thingd queues stats embed # View queue statistics (ready, leased, dead jobs)
220
- thingd queues push embed --payload '{"object":"docs/readme"}'
221
- thingd queues claim embed
222
- thingd queues ack embed <jobId>
223
- thingd queues nack embed <jobId> --error "failed to fetch" --delay-ms 5000
224
- thingd queues list embed
225
- thingd queues dead embed
47
+ # Utilities
48
+ thingd search <query>
49
+ thingd status
50
+ thingd doctor
51
+ thingd install
52
+ thingd export --collection <name> --out <path>
53
+ thingd import --collection <name> --in <path>
54
+ thingd snapshot create --out <path>
55
+ thingd snapshot restore --in <path>
226
56
  ```
227
57
 
228
- **Data Movement & Snapshots**
229
- ```bash
230
- # Export & Import Data with optional recursive secret/email/key redaction
231
- thingd export --collection decisions --out decisions.jsonl [--redact]
232
- thingd export --events [--stream name] --out events.jsonl [--redact custom_secret]
233
- thingd import --collection decisions_restored --in decisions.jsonl
234
-
235
- # Snapshot & Restore full database state
236
- thingd snapshot create --out snapshot.thingd.json
237
- thingd snapshot restore --in snapshot.thingd.json
238
- ```
58
+ Full reference: [docs/cli-reference.md](https://github.com/sayanmohsin/thingd/blob/main/docs/cli-reference.md)
@@ -2,7 +2,7 @@ import { existsSync, promises as fs, statSync } from "node:fs";
2
2
  import { createServer } from "node:http";
3
3
  import { dirname, extname, join } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
- import { handleRestRequest, ThingD } from "@thingd/node";
5
+ import { handleRestRequest, ThingD } from "@thingd/sdk";
6
6
  const __filename = fileURLToPath(import.meta.url);
7
7
  const __dirname = dirname(__filename);
8
8
  // Candidate public folders to support both tsx dev and compiled dist packaging
package/dist/doctor.js CHANGED
@@ -1,4 +1,4 @@
1
- import { NativeThingStore } from "@thingd/node";
1
+ import { NativeThingStore } from "@thingd/sdk";
2
2
  import pc from "picocolors";
3
3
  import { resolveConnection } from "./index.js";
4
4
  export async function runDoctor(context) {
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { ThingD, type ThingDDriver } from "@thingd/node";
2
+ import { ThingD, type ThingDDriver } from "@thingd/sdk";
3
3
  type CliEnv = Record<string, string | undefined>;
4
4
  type WritableLike = {
5
5
  write(chunk: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAQA,OAAO,EASL,MAAM,EACN,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAOtB,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEjD,KAAK,YAAY,GAAG;IAClB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAsCF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAmEF,wBAAsB,MAAM,CAC1B,IAAI,WAAwB,EAC5B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA6EjB;AAkxBD,wBAAsB,MAAM,CAC1B,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC,CAcf;AA4BD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,iBAAiB,CA2BxE;AAiDD,wBAAgB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAGlF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrF;AAyFD,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAEpF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAElE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAQA,OAAO,EASL,MAAM,EACN,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAOrB,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEjD,KAAK,YAAY,GAAG;IAClB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAsCF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAmEF,wBAAsB,MAAM,CAC1B,IAAI,WAAwB,EAC5B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA6EjB;AAkxBD,wBAAsB,MAAM,CAC1B,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC,CAcf;AA4BD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,iBAAiB,CA2BxE;AAiDD,wBAAgB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAGlF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrF;AAyFD,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAEpF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAElE"}
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import { setTimeout as sleep } from "node:timers/promises";
5
5
  import { pathToFileURL } from "node:url";
6
6
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
7
7
  import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
8
- import { ThingD, } from "@thingd/node";
8
+ import { ThingD, } from "@thingd/sdk";
9
9
  import pc from "picocolors";
10
10
  import { runInteractiveCli } from "./interactive.js";
11
11
  import { logoLine } from "./logo.js";
package/dist/install.js CHANGED
@@ -3,7 +3,7 @@ import { homedir, platform } from "node:os";
3
3
  import { dirname, join, resolve } from "node:path";
4
4
  import { createInterface } from "node:readline/promises";
5
5
  import { fileURLToPath } from "node:url";
6
- import { NativeThingStore } from "@thingd/node";
6
+ import { NativeThingStore } from "@thingd/sdk";
7
7
  import pc from "picocolors";
8
8
  import { defaultThingdDbPath, ensureThingdDir } from "./paths.js";
9
9
  async function askQuestion(query) {
@@ -4,7 +4,7 @@ import * as fs from "node:fs";
4
4
  import * as os from "node:os";
5
5
  import * as path from "node:path";
6
6
  import readline from "node:readline";
7
- import { ThingD } from "@thingd/node";
7
+ import { ThingD } from "@thingd/sdk";
8
8
  import pc from "picocolors";
9
9
  import { logoText } from "./logo.js";
10
10
  // ── Helpers ──────────────────────────────────────────────────────────
@@ -1,5 +1,5 @@
1
1
  import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { ThingD } from "@thingd/node";
2
+ import type { ThingD } from "@thingd/sdk";
3
3
  export type ThingdClusterMode = "single" | "leader" | "follower";
4
4
  export type ThingdClusterDiscovery = "none" | "static" | "kubernetes";
5
5
  export type ThingdClusterOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../../src/mcp/cluster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../../src/mcp/cluster.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ThingDDriver, ThingdMcpAuditOptions } from "@thingd/node";
1
+ import type { ThingDDriver, ThingdMcpAuditOptions } from "@thingd/sdk";
2
2
  export type ThingDStorageDriver = Exclude<ThingDDriver, "remote">;
3
3
  export type HttpRuntimeSafetyOptions = {
4
4
  host: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/mcp/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAExE,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAElE,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,GAAG,SAAS,CAU5F;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY7E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAejF;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACtC,qBAAqB,GAAG,KAAK,CAgB/B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQhF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAU/E"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/mcp/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAElE,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,GAAG,SAAS,CAU5F;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY7E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAejF;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACtC,qBAAqB,GAAG,KAAK,CAgB/B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQhF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAU/E"}
@@ -1,5 +1,5 @@
1
1
  import { type Server } from "node:http";
2
- import { type ThingdMcpAuditOptions, type ThingdMcpHardeningOptions } from "@thingd/node";
2
+ import { type ThingdMcpAuditOptions, type ThingdMcpHardeningOptions } from "@thingd/sdk";
3
3
  import { type ThingdClusterOptions } from "./cluster.js";
4
4
  import { type ThingDStorageDriver } from "./config.js";
5
5
  export type ThingdHttpServerOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/mcp/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,MAAM,EAAuB,MAAM,WAAW,CAAC;AAGjG,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC/B,MAAM,cAAc,CAAC;AACtB,OAAO,EAML,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,qBAAqB,GAAG,KAAK,CAAC;IACtC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,yBAAyB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAkBF,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,uBAAuB,CAAC,CAqDlC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/mcp/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,MAAM,EAAuB,MAAM,WAAW,CAAC;AAGjG,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAML,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,qBAAqB,GAAG,KAAK,CAAC;IACtC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,yBAAyB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAkBF,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,uBAAuB,CAAC,CAqDlC"}
package/dist/mcp/http.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { createServer } from "node:http";
2
2
  import { PassThrough } from "node:stream";
3
3
  import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
4
- import { createThingdMcpServer, ThingD, } from "@thingd/node";
4
+ import { createThingdMcpServer, ThingD, } from "@thingd/sdk";
5
5
  import { findNextLeaderCandidate, forwardMcpRequestToLeader, getClusterStatus, resolveClusterOptions, } from "./cluster.js";
6
6
  import { ensureHttpRuntimeIsSafe } from "./config.js";
7
7
  export async function startThingdHttpServer(options) {
@@ -1,4 +1,4 @@
1
- export { appendMcpAuditEvent, createThingdMcpServer, jsonResult, parseCollectionAllowlist, parsePayloadSizeLimit, type RegisterThingdToolsOptions, readMcpHardeningOptionsFromEnv, registerThingdTools, resolveThingdMcpAuditOptions, type ThingdMcpAuditMetadata, type ThingdMcpAuditOptions, type ThingdMcpHardeningOptions, type ThingdMcpServerOptions, } from "@thingd/node";
1
+ export { appendMcpAuditEvent, createThingdMcpServer, jsonResult, parseCollectionAllowlist, parsePayloadSizeLimit, type RegisterThingdToolsOptions, readMcpHardeningOptionsFromEnv, registerThingdTools, resolveThingdMcpAuditOptions, type ThingdMcpAuditMetadata, type ThingdMcpAuditOptions, type ThingdMcpHardeningOptions, type ThingdMcpServerOptions, } from "@thingd/sdk";
2
2
  export type { ResolvedThingdClusterOptions, ThingdClusterDiscovery, ThingdClusterMode, ThingdClusterOptions, ThingdClusterStatus, } from "./cluster.js";
3
3
  export type { RunningThingdHttpServer, ThingdHttpServerOptions } from "./http.js";
4
4
  export { startThingdHttpServer } from "./http.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,8BAA8B,EAC9B,mBAAmB,EACnB,4BAA4B,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,GAC5B,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,4BAA4B,EAC5B,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,8BAA8B,EAC9B,mBAAmB,EACnB,4BAA4B,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,4BAA4B,EAC5B,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC"}
package/dist/mcp/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Re-export core MCP logic from the SDK
2
- export { appendMcpAuditEvent, createThingdMcpServer, jsonResult, parseCollectionAllowlist, parsePayloadSizeLimit, readMcpHardeningOptionsFromEnv, registerThingdTools, resolveThingdMcpAuditOptions, } from "@thingd/node";
2
+ export { appendMcpAuditEvent, createThingdMcpServer, jsonResult, parseCollectionAllowlist, parsePayloadSizeLimit, readMcpHardeningOptionsFromEnv, registerThingdTools, resolveThingdMcpAuditOptions, } from "@thingd/sdk";
3
3
  export { startThingdHttpServer } from "./http.js";
package/dist/mcp-http.js CHANGED
@@ -1,4 +1,4 @@
1
- import { readMcpHardeningOptionsFromEnv } from "@thingd/node";
1
+ import { readMcpHardeningOptionsFromEnv } from "@thingd/sdk";
2
2
  import { readClusterOptionsFromEnv } from "./mcp/cluster.js";
3
3
  import { parsePort, parseThingdDriver, readMcpAuditOptionsFromEnv } from "./mcp/config.js";
4
4
  import { startThingdHttpServer } from "./mcp/http.js";
package/dist/mcp.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
2
- import { createThingdMcpServer, readMcpHardeningOptionsFromEnv } from "@thingd/node";
2
+ import { createThingdMcpServer, readMcpHardeningOptionsFromEnv } from "@thingd/sdk";
3
3
  import { resolveConnection, withDb } from "./index.js";
4
4
  import { readMcpAuditOptionsFromEnv } from "./mcp/config.js";
5
5
  export async function runMcp(context) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thingd/cli",
3
- "version": "0.31.0",
3
+ "version": "0.32.0",
4
4
  "description": "CLI, Interactive TUI Dashboard, and MCP server for thingd — a fast object-first data engine for applications and AI agents.",
5
5
  "type": "module",
6
6
  "author": "Sayan Mohsin",
@@ -45,7 +45,7 @@
45
45
  "cli-table3": "^0.6.5",
46
46
  "picocolors": "^1.1.1",
47
47
  "zod": "^4.4.3",
48
- "@thingd/node": "0.31.0"
48
+ "@thingd/sdk": "0.32.0"
49
49
  },
50
50
  "engines": {
51
51
  "node": ">=24.0.0"