@wastedcode/memex 0.1.0 → 0.1.2
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 +99 -183
- package/dist/cli/client.d.ts +10 -1
- package/dist/cli/client.js +12 -2
- package/dist/cli/client.js.map +1 -1
- package/dist/cli/commands/config.js +10 -5
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/login.js +14 -6
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/setup-token.d.ts +2 -0
- package/dist/cli/commands/setup-token.js +41 -0
- package/dist/cli/commands/setup-token.js.map +1 -0
- package/dist/daemon/auth.d.ts +16 -6
- package/dist/daemon/auth.js +50 -22
- package/dist/daemon/auth.js.map +1 -1
- package/dist/daemon/namespace.js +8 -2
- package/dist/daemon/namespace.js.map +1 -1
- package/dist/daemon/routes.d.ts +5 -1
- package/dist/daemon/routes.js +42 -9
- package/dist/daemon/routes.js.map +1 -1
- package/dist/daemon/runner.js +4 -0
- package/dist/daemon/runner.js.map +1 -1
- package/dist/daemon/scaffold.d.ts +14 -0
- package/dist/daemon/scaffold.js +49 -1
- package/dist/daemon/scaffold.js.map +1 -1
- package/dist/daemon/server.js +1 -0
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon.js +1 -1
- package/dist/daemon.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/constants.js +1 -1
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/errors.js +4 -2
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/prompts/ingest.js +8 -1
- package/dist/lib/prompts/ingest.js.map +1 -1
- package/dist/lib/prompts/wiki.js +13 -3
- package/dist/lib/prompts/wiki.js.map +1 -1
- package/dist/standalone/memex.mjs +241 -52
- package/dist/standalone/memex.mjs.map +4 -4
- package/package.json +8 -1
package/README.md
CHANGED
|
@@ -1,20 +1,64 @@
|
|
|
1
1
|
# Memex
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Stop re-discovering what you already know.** Memex is an LLM runtime that builds and maintains a personal wiki from your raw sources — so the knowledge compounds instead of disappearing into chat history.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## The problem
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Most people's experience with LLMs and documents looks like RAG: upload files, retrieve chunks, generate an answer, forget everything. Ask the same subtle question tomorrow and the LLM starts from scratch. Nothing accumulates. There's no memory between sessions, no synthesis across sources, no evolving understanding. Your tenth conversation is no smarter than your first.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## The idea
|
|
10
|
+
|
|
11
|
+
Instead of retrieving from raw documents at query time, Memex has the LLM **incrementally build and maintain a persistent wiki** — a structured, interlinked collection of markdown files that sits between you and your sources.
|
|
12
|
+
|
|
13
|
+
When you add a new source, the LLM doesn't just index it for later retrieval. It reads it, extracts the key information, and integrates it into the existing wiki — updating entity pages, revising topic summaries, noting where new data contradicts old claims, strengthening the evolving synthesis. The knowledge is compiled once and kept current.
|
|
14
|
+
|
|
15
|
+
**The wiki is a persistent, compounding artifact.** The cross-references are already there. The contradictions have been flagged. The synthesis reflects everything you've ingested. Every source makes the whole richer. Every question you ask can be filed back as a new page, so your explorations compound too.
|
|
16
|
+
|
|
17
|
+
You never write the wiki yourself. You source, explore, and ask questions. The LLM does the summarizing, cross-referencing, filing, and bookkeeping that makes a knowledge base actually useful over time. The tedious part of maintaining a knowledge base isn't the reading or the thinking — it's the bookkeeping. LLMs don't get bored, don't forget to update a cross-reference, and can touch 15 files in one pass.
|
|
18
|
+
|
|
19
|
+
This can apply to anything where you accumulate knowledge over time:
|
|
20
|
+
|
|
21
|
+
- **Research** — reading papers over weeks, building up an evolving synthesis with citations and cross-references
|
|
22
|
+
- **Reading a book** — filing each chapter, building out pages for characters, themes, and plot threads as you go
|
|
23
|
+
- **Business intelligence** — competitive analysis, customer signals, market trends fed from Slack, calls, and reports
|
|
24
|
+
- **Personal** — health, goals, self-improvement, journal entries, podcast notes, building a structured picture of yourself
|
|
25
|
+
- **Learning** — course notes, hobby deep-dives, trip planning, anything you want organized rather than scattered
|
|
26
|
+
|
|
27
|
+
The idea is related in spirit to Vannevar Bush's [Memex](https://en.wikipedia.org/wiki/Memex) (1945) — a personal, curated knowledge store with associative trails between documents. Bush's vision was closer to this than to what the web became: private, actively curated, with the connections between documents as valuable as the documents themselves. The part he couldn't solve was who does the maintenance. The LLM handles that.
|
|
28
|
+
|
|
29
|
+
## Why Memex
|
|
30
|
+
|
|
31
|
+
**Just files, no RAG.** The wiki is a directory of markdown files. No vector databases, no embeddings, no retrieval pipelines. Claude is already smart enough to grep through files, read what's relevant, and figure out what to update. The simplest architecture that works.
|
|
32
|
+
|
|
33
|
+
**Safe by default.** Each wiki runs in its own Linux mount namespace — Claude can only see `/workspace`, not your home directory, not other wikis, not the host filesystem. No Docker required. Tool access is restricted to file operations (Read, Write, Edit, Glob, Grep) unless you explicitly opt in to more.
|
|
34
|
+
|
|
35
|
+
**CLI-first.** Everything is a single command: `memex ingest`, `memex query`, `memex lint`. Runs from your existing Claude machine. No web UI to host, no API keys to juggle beyond what you already have for Claude.
|
|
36
|
+
|
|
37
|
+
**Feed it from anywhere.** Ingest markdown, PDFs, HTML, images, plain text — anything Claude can read. Clip web articles with Obsidian Web Clipper, pipe in Slack exports, drop in meeting transcripts. Add MCP servers to pull directly from Notion, Google Drive, or any app with an API. Local files or remote sources, it all compiles into the same wiki.
|
|
10
38
|
|
|
11
|
-
|
|
39
|
+
**Fully yours to shape.** Edit `.claude.md` to change how the LLM thinks about your domain. Whitelist extra tools. Swap models. The prompts, conventions, and filing structure are all configurable — the wiki evolves with you, not against a fixed template.
|
|
40
|
+
|
|
41
|
+
## What Memex does
|
|
42
|
+
|
|
43
|
+
Memex wraps `claude -p` (Claude Code's programmatic mode) into a daemon that gives each wiki its own isolated filesystem, job queue, and configuration. Claude operates on the wiki with the same file tools a developer would use — Read, Write, Edit, Glob, Grep — against a real filesystem of markdown files.
|
|
44
|
+
|
|
45
|
+
Three layers:
|
|
46
|
+
|
|
47
|
+
1. **Raw sources** — your curated collection of articles, papers, images, data files. Immutable. The LLM reads them but never modifies them.
|
|
48
|
+
2. **The wiki** — LLM-generated markdown. Summaries, entity pages, concept pages, cross-references, an index. The LLM owns this layer entirely.
|
|
49
|
+
3. **The schema** — conventions for how the wiki is structured. Co-evolved by you and the LLM over time.
|
|
50
|
+
|
|
51
|
+
Three operations:
|
|
52
|
+
|
|
53
|
+
- **Ingest** — drop a source in, the LLM reads it, writes a summary, updates the index, and touches every related page across the wiki.
|
|
54
|
+
- **Query** — ask a question, the LLM searches the wiki and synthesizes an answer grounded in your accumulated knowledge. Good answers get filed back as new pages.
|
|
55
|
+
- **Lint** — health-check the wiki. Find contradictions, orphan pages, missing cross-references, stale claims. The LLM fixes what it can and flags what needs your judgment.
|
|
12
56
|
|
|
13
57
|
## Quick start
|
|
14
58
|
|
|
15
59
|
```bash
|
|
16
60
|
# Install
|
|
17
|
-
npm install -g memex
|
|
61
|
+
npm install -g @wastedcode/memex
|
|
18
62
|
|
|
19
63
|
# Start the daemon (requires CAP_SYS_ADMIN for namespace isolation)
|
|
20
64
|
sudo memex serve
|
|
@@ -25,8 +69,8 @@ memex create my-wiki --name "My Knowledge Base"
|
|
|
25
69
|
# Authenticate Claude for this wiki
|
|
26
70
|
memex login my-wiki
|
|
27
71
|
|
|
28
|
-
# Ingest
|
|
29
|
-
memex ingest my-wiki notes.md
|
|
72
|
+
# Ingest some sources
|
|
73
|
+
memex ingest my-wiki paper.pdf notes.md article.html
|
|
30
74
|
|
|
31
75
|
# Ask a question
|
|
32
76
|
memex query my-wiki "What are the key themes across these documents?"
|
|
@@ -35,6 +79,26 @@ memex query my-wiki "What are the key themes across these documents?"
|
|
|
35
79
|
memex lint my-wiki
|
|
36
80
|
```
|
|
37
81
|
|
|
82
|
+
## Commands
|
|
83
|
+
|
|
84
|
+
| Command | Description |
|
|
85
|
+
|---------|-------------|
|
|
86
|
+
| `memex serve` | Start the daemon |
|
|
87
|
+
| `memex create <wiki>` | Create a new wiki |
|
|
88
|
+
| `memex destroy <wiki>` | Destroy a wiki |
|
|
89
|
+
| `memex config <wiki> --edit` | Edit wiki conventions in `$EDITOR` |
|
|
90
|
+
| `memex config <wiki> --set-key` | Set API key |
|
|
91
|
+
| `memex config <wiki> --model opus` | Set default model |
|
|
92
|
+
| `memex login <wiki>` | Authenticate Claude (OAuth) |
|
|
93
|
+
| `memex ingest <wiki> <files...>` | Ingest source documents |
|
|
94
|
+
| `memex query <wiki> "question"` | Ask a question against the wiki |
|
|
95
|
+
| `memex lint <wiki>` | Run wiki health check |
|
|
96
|
+
| `memex logs <wiki>` | View audit log |
|
|
97
|
+
| `memex list` | List all wikis |
|
|
98
|
+
| `memex status <wiki>` | Check job status |
|
|
99
|
+
|
|
100
|
+
Most commands block until complete. Pass `--async` to get a job ID and check status later.
|
|
101
|
+
|
|
38
102
|
## How it works
|
|
39
103
|
|
|
40
104
|
```
|
|
@@ -74,128 +138,35 @@ memex lint my-wiki
|
|
|
74
138
|
└──────────────────────────────────────────────────────────────┘
|
|
75
139
|
```
|
|
76
140
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
**Isolation through namespaces, not containers.** Mount namespaces give you filesystem isolation without Docker's overhead. Claude cannot see the host filesystem, other wikis, or anything outside `/workspace`.
|
|
80
|
-
|
|
81
|
-
## Commands
|
|
82
|
-
|
|
83
|
-
| Command | Description |
|
|
84
|
-
|---------|-------------|
|
|
85
|
-
| `memex serve` | Start the daemon |
|
|
86
|
-
| `memex create <wiki> [--name "..."]` | Create a new wiki |
|
|
87
|
-
| `memex destroy <wiki> [--keep-data]` | Destroy a wiki |
|
|
88
|
-
| `memex config <wiki> --edit` | Open `.claude.md` in `$EDITOR` |
|
|
89
|
-
| `memex config <wiki> --set-key` | Set API key for this wiki |
|
|
90
|
-
| `memex config <wiki> --model opus` | Set default model |
|
|
91
|
-
| `memex login <wiki>` | Authenticate Claude (OAuth) |
|
|
92
|
-
| `memex ingest <wiki> <files...>` | Ingest source files into the wiki |
|
|
93
|
-
| `memex query <wiki> "question"` | Ask a question against the wiki |
|
|
94
|
-
| `memex lint <wiki>` | Run wiki health check |
|
|
95
|
-
| `memex logs <wiki> [--tail N]` | View audit log |
|
|
96
|
-
| `memex list` | List all wikis |
|
|
97
|
-
| `memex status <wiki> [jobId]` | Check job status |
|
|
98
|
-
|
|
99
|
-
Most commands block until the job completes. Pass `--async` to get a job ID and check status later.
|
|
100
|
-
|
|
101
|
-
## Architecture
|
|
102
|
-
|
|
103
|
-
### Per-wiki workspace
|
|
104
|
-
|
|
105
|
-
Each wiki gets an isolated directory:
|
|
106
|
-
|
|
107
|
-
```
|
|
108
|
-
/var/lib/memex/wikis/{wikiId}/
|
|
109
|
-
.claude.md # Wiki-specific Claude conventions (user-editable)
|
|
110
|
-
.claude/ # Claude credentials (per-wiki, isolated)
|
|
111
|
-
.tools/
|
|
112
|
-
mcp.json # MCP server configuration (optional)
|
|
113
|
-
allowed-tools.txt # Extra tools beyond the base set (optional)
|
|
114
|
-
wiki/
|
|
115
|
-
_schema.md # Filing conventions — the LLM's institutional memory
|
|
116
|
-
_index.md # Table of contents — one-line summary of every page
|
|
117
|
-
_log.md # Chronological activity log
|
|
118
|
-
raw/ # Immutable source documents (never modified by Claude)
|
|
119
|
-
themes/ # (example — categories emerge from content)
|
|
120
|
-
customers/
|
|
121
|
-
...
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### Three layers
|
|
141
|
+
Each wiki's queue processes jobs serially — no concurrent writes. Independent wikis run in parallel. Mount namespaces provide filesystem isolation without Docker overhead.
|
|
125
142
|
|
|
126
|
-
|
|
127
|
-
2. **The wiki** (`wiki/`) — LLM-generated markdown. Summaries, entity pages, concept pages, cross-references. Claude owns this layer entirely.
|
|
128
|
-
3. **The schema** (`_schema.md`, `.claude.md`) — How the wiki is structured, what conventions to follow. Co-evolved by user and LLM.
|
|
129
|
-
|
|
130
|
-
### Job types
|
|
131
|
-
|
|
132
|
-
| Type | What it does | Max turns | Timeout |
|
|
133
|
-
|------|-------------|-----------|---------|
|
|
134
|
-
| `ingest` | Process raw sources into wiki pages | 25 | 5 min |
|
|
135
|
-
| `query` | Search wiki and answer a question | 15 | 2 min |
|
|
136
|
-
| `lint` | Health check — find and fix issues | 30 | 10 min |
|
|
137
|
-
|
|
138
|
-
### Auto-lint
|
|
139
|
-
|
|
140
|
-
After every 10 ingests (configurable), the daemon automatically queues a lint job. This keeps the wiki healthy as it grows — finding contradictions, orphan pages, missing cross-references, and index drift.
|
|
141
|
-
|
|
142
|
-
## Security
|
|
143
|
-
|
|
144
|
-
**Namespace isolation** prevents Claude from accessing files outside the wiki's directory. This is the primary security boundary.
|
|
145
|
-
|
|
146
|
-
**Tool restriction** — Only `Read`, `Write`, `Edit`, `Glob`, `Grep` are available by default. No `Bash` (shell escape), no `WebSearch`/`WebFetch` (external calls), no `Agent` (sub-agents). Users can opt into higher-risk tools per-wiki via `.tools/allowed-tools.txt`.
|
|
147
|
-
|
|
148
|
-
**Per-wiki credentials** — Each wiki gets its own Claude authentication. Credentials are stored in the wiki's `.claude/` directory, isolated by the mount namespace.
|
|
149
|
-
|
|
150
|
-
**Audit log** — Every operation is recorded with the wiki, action, and detail.
|
|
151
|
-
|
|
152
|
-
## Credential setup
|
|
143
|
+
## Customization
|
|
153
144
|
|
|
154
|
-
|
|
145
|
+
### Wiki conventions (`.claude.md`)
|
|
155
146
|
|
|
156
|
-
|
|
157
|
-
```bash
|
|
158
|
-
# Uses ~/.claude/.credentials.json by default
|
|
159
|
-
memex login my-wiki
|
|
147
|
+
The most important customization point. This file extends the base system prompt with domain-specific behavior:
|
|
160
148
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
```
|
|
149
|
+
```markdown
|
|
150
|
+
# Wiki Conventions
|
|
164
151
|
|
|
165
|
-
|
|
152
|
+
## Domain
|
|
153
|
+
This knowledge base tracks competitive intelligence in the SaaS analytics space.
|
|
166
154
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
155
|
+
## Filing conventions
|
|
156
|
+
- Organize competitors under competitors/{name}.md
|
|
157
|
+
- Track pricing changes with dates
|
|
158
|
+
- Flag acquisitions and funding rounds prominently
|
|
171
159
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
Environment=ANTHROPIC_API_KEY=sk-ant-...
|
|
160
|
+
## Things to ignore
|
|
161
|
+
- Job postings
|
|
162
|
+
- Social media noise without substance
|
|
176
163
|
```
|
|
177
164
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
## Customization
|
|
181
|
-
|
|
182
|
-
### `.claude.md`
|
|
165
|
+
Edit with `memex config my-wiki --edit`.
|
|
183
166
|
|
|
184
|
-
|
|
167
|
+
### MCP servers (`.tools/mcp.json`)
|
|
185
168
|
|
|
186
|
-
|
|
187
|
-
- Filing conventions specific to your wiki
|
|
188
|
-
- Categories and page structures
|
|
189
|
-
- What to ignore or deprioritize
|
|
190
|
-
- How to handle specific types of content
|
|
191
|
-
|
|
192
|
-
```bash
|
|
193
|
-
memex config my-wiki --edit
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### `.tools/mcp.json`
|
|
197
|
-
|
|
198
|
-
Add external data sources via MCP servers:
|
|
169
|
+
Connect external data sources:
|
|
199
170
|
|
|
200
171
|
```json
|
|
201
172
|
{
|
|
@@ -209,83 +180,28 @@ Add external data sources via MCP servers:
|
|
|
209
180
|
}
|
|
210
181
|
```
|
|
211
182
|
|
|
212
|
-
### `.tools/allowed-tools.txt`
|
|
183
|
+
### Tool whitelist (`.tools/allowed-tools.txt`)
|
|
213
184
|
|
|
214
|
-
|
|
185
|
+
By default, Claude only gets safe file tools. Opt into more:
|
|
215
186
|
|
|
216
187
|
```
|
|
217
188
|
Bash
|
|
218
189
|
WebSearch
|
|
219
190
|
```
|
|
220
191
|
|
|
221
|
-
Use with caution — `Bash` gives Claude shell access inside the namespace.
|
|
222
|
-
|
|
223
|
-
## Deployment
|
|
224
|
-
|
|
225
|
-
### systemd (recommended)
|
|
226
|
-
|
|
227
|
-
```bash
|
|
228
|
-
sudo cp systemd/memex.service /etc/systemd/system/
|
|
229
|
-
sudo systemctl enable --now memex
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
The unit file grants `CAP_SYS_ADMIN` via `AmbientCapabilities` and creates the required directories automatically.
|
|
233
|
-
|
|
234
|
-
```bash
|
|
235
|
-
# Lifecycle
|
|
236
|
-
systemctl start memex # Start the daemon
|
|
237
|
-
systemctl stop memex # Graceful shutdown (finishes current job)
|
|
238
|
-
systemctl restart memex # Stop + start
|
|
239
|
-
journalctl -u memex -f # Tail logs
|
|
240
|
-
|
|
241
|
-
# Status
|
|
242
|
-
systemctl status memex # Process state, recent log lines
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
### Why `memex serve` blocks
|
|
246
|
-
|
|
247
|
-
`memex serve` runs in the foreground deliberately. This is the standard pattern for systemd-managed daemons:
|
|
248
|
-
|
|
249
|
-
- **systemd owns the lifecycle** — backgrounding, restarts, boot ordering, and capability grants are its job, not the application's.
|
|
250
|
-
- **Logging is automatic** — stdout/stderr go straight to `journalctl`. No log file management needed.
|
|
251
|
-
- **Graceful shutdown works** — systemd sends SIGTERM, the daemon finishes the current job, closes the socket, and exits cleanly.
|
|
252
|
-
- **`Type=simple`** — systemd tracks the exact PID it spawned. Self-daemonizing (double-fork) breaks this and is a legacy SysV init pattern.
|
|
253
|
-
|
|
254
|
-
If you're running without systemd (development, containers), just background it yourself:
|
|
255
|
-
|
|
256
|
-
```bash
|
|
257
|
-
sudo memex serve & # Background in shell
|
|
258
|
-
sudo memex serve &>/dev/null & # Silent background
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
### Manual
|
|
262
|
-
|
|
263
|
-
```bash
|
|
264
|
-
sudo memex serve
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
Requires root or `CAP_SYS_ADMIN` for mount namespace creation.
|
|
268
|
-
|
|
269
|
-
## Environment variables
|
|
270
|
-
|
|
271
|
-
| Variable | Default | Description |
|
|
272
|
-
|----------|---------|-------------|
|
|
273
|
-
| `MEMEX_DATA_DIR` | `/var/lib/memex` | Data directory (wikis, database) |
|
|
274
|
-
| `MEMEX_RUN_DIR` | `/run/memex` | Runtime directory (socket, namespaces) |
|
|
275
|
-
| `MEMEX_SOCKET_PATH` | `/run/memex/memex.sock` | Unix socket path |
|
|
276
|
-
| `ANTHROPIC_API_KEY` | — | Global fallback API key |
|
|
277
|
-
|
|
278
192
|
## Requirements
|
|
279
193
|
|
|
280
194
|
- Node.js >= 20
|
|
281
|
-
- Linux with mount namespace support
|
|
195
|
+
- Linux with mount namespace support
|
|
282
196
|
- `CAP_SYS_ADMIN` capability (or root)
|
|
283
197
|
- `claude` CLI installed and in `$PATH`
|
|
284
198
|
|
|
285
|
-
##
|
|
199
|
+
## Documentation
|
|
286
200
|
|
|
287
|
-
|
|
201
|
+
- **[Architecture](docs/architecture.md)** — design principles, components, data flow, filesystem layout
|
|
202
|
+
- **[Operations](docs/operations.md)** — installation, deployment, wiki lifecycle, debugging
|
|
203
|
+
- **[Prompt design](docs/prompts.md)** — how the system prompt, job prompts, and conventions work together
|
|
288
204
|
|
|
289
|
-
|
|
205
|
+
## License
|
|
290
206
|
|
|
291
|
-
|
|
207
|
+
MIT
|
package/dist/cli/client.d.ts
CHANGED
|
@@ -16,11 +16,20 @@ export declare class MemexClient {
|
|
|
16
16
|
destroyWiki(id: string, keepData?: boolean): Promise<ApiResponse<unknown>>;
|
|
17
17
|
updateConfig(wikiId: string, config: WikiConfig): Promise<ApiResponse<Wiki>>;
|
|
18
18
|
chownWiki(wikiId: string, uid: number): Promise<ApiResponse<Wiki>>;
|
|
19
|
-
|
|
19
|
+
setGlobalToken(token: string): Promise<ApiResponse<unknown>>;
|
|
20
|
+
setWikiToken(wikiId: string, token: string): Promise<ApiResponse<unknown>>;
|
|
20
21
|
setCredentials(wikiId: string, credentials: string): Promise<ApiResponse<unknown>>;
|
|
21
22
|
submitJob(wikiId: string, type: JobType, payload: object, wait?: boolean): Promise<ApiResponse<QueueJob>>;
|
|
22
23
|
getJob(wikiId: string, jobId: number): Promise<ApiResponse<QueueJob>>;
|
|
23
24
|
listJobs(wikiId: string): Promise<ApiResponse<QueueJob[]>>;
|
|
25
|
+
listFiles(wikiId: string, prefix?: string): Promise<ApiResponse<{
|
|
26
|
+
path: string;
|
|
27
|
+
type: "file" | "directory";
|
|
28
|
+
}[]>>;
|
|
29
|
+
readFile(wikiId: string, filePath: string): Promise<ApiResponse<{
|
|
30
|
+
path: string;
|
|
31
|
+
content: string;
|
|
32
|
+
}>>;
|
|
24
33
|
getAuditLog(wikiId: string, limit?: number): Promise<ApiResponse<AuditEntry[]>>;
|
|
25
34
|
/**
|
|
26
35
|
* Upload a local file to the daemon for ingestion into a wiki's raw/ directory.
|
package/dist/cli/client.js
CHANGED
|
@@ -127,8 +127,11 @@ export class MemexClient {
|
|
|
127
127
|
chownWiki(wikiId, uid) {
|
|
128
128
|
return this.request('POST', `/wikis/${wikiId}/chown`, { uid });
|
|
129
129
|
}
|
|
130
|
-
|
|
131
|
-
return this.request('POST',
|
|
130
|
+
setGlobalToken(token) {
|
|
131
|
+
return this.request('POST', '/auth/token', { token });
|
|
132
|
+
}
|
|
133
|
+
setWikiToken(wikiId, token) {
|
|
134
|
+
return this.request('POST', `/wikis/${wikiId}/token`, { token });
|
|
132
135
|
}
|
|
133
136
|
setCredentials(wikiId, credentials) {
|
|
134
137
|
return this.request('POST', `/wikis/${wikiId}/credentials`, { credentials });
|
|
@@ -143,6 +146,13 @@ export class MemexClient {
|
|
|
143
146
|
listJobs(wikiId) {
|
|
144
147
|
return this.request('GET', `/wikis/${wikiId}/jobs`);
|
|
145
148
|
}
|
|
149
|
+
listFiles(wikiId, prefix) {
|
|
150
|
+
const path = `/wikis/${wikiId}/files` + (prefix ? `?prefix=${encodeURIComponent(prefix)}` : '');
|
|
151
|
+
return this.request('GET', path);
|
|
152
|
+
}
|
|
153
|
+
readFile(wikiId, filePath) {
|
|
154
|
+
return this.request('GET', `/wikis/${wikiId}/files/${filePath}`);
|
|
155
|
+
}
|
|
146
156
|
getAuditLog(wikiId, limit) {
|
|
147
157
|
const path = `/wikis/${wikiId}/logs` + (limit ? `?limit=${limit}` : '');
|
|
148
158
|
return this.request('GET', path);
|
package/dist/cli/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/cli/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/cli/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export const configCommand = new Command('config')
|
|
|
8
8
|
.description('Configure a wiki')
|
|
9
9
|
.argument('<wikiId>', 'Wiki to configure')
|
|
10
10
|
.option('--edit', 'Open .claude.md in $EDITOR')
|
|
11
|
-
.option('--set-
|
|
11
|
+
.option('--set-token', 'Set an OAuth token for this wiki (from `claude setup-token`)')
|
|
12
12
|
.option('--model <model>', 'Set the default model (e.g., sonnet, opus, haiku)')
|
|
13
13
|
.option('--allowed-tools <tools>', 'Set allowed tools (comma-separated, e.g., WebSearch,WebFetch)')
|
|
14
14
|
.option('--list-tools', 'Show available tools and current configuration')
|
|
@@ -33,14 +33,19 @@ export const configCommand = new Command('config')
|
|
|
33
33
|
}
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
-
if (opts.
|
|
37
|
-
const
|
|
38
|
-
|
|
36
|
+
if (opts.setToken) {
|
|
37
|
+
const token = await promptSecret('OAuth token (from `claude setup-token`): ');
|
|
38
|
+
if (!token.startsWith('sk-ant-oat01-')) {
|
|
39
|
+
console.error(`Error: Token must start with 'sk-ant-oat01-'.`);
|
|
40
|
+
console.error(`\nGenerate one by running: claude setup-token`);
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
const resp = await client.setWikiToken(wikiId, token);
|
|
39
44
|
if (!resp.ok) {
|
|
40
45
|
console.error(`Error: ${resp.error}`);
|
|
41
46
|
process.exit(1);
|
|
42
47
|
}
|
|
43
|
-
console.log(`
|
|
48
|
+
console.log(`OAuth token set for '${wikiId}'`);
|
|
44
49
|
return;
|
|
45
50
|
}
|
|
46
51
|
if (opts.listTools) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,kBAAkB,CAAC;KAC/B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;KACzC,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC;KAC9C,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,kBAAkB,CAAC;KAC/B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;KACzC,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC;KAC9C,MAAM,CAAC,aAAa,EAAE,8DAA8D,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;KAC9E,MAAM,CAAC,yBAAyB,EAAE,+DAA+D,CAAC;KAClG,MAAM,CAAC,cAAc,EAAE,gDAAgD,CAAC;KACxE,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAwG,EAAE,EAAE;IACzI,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IAEjC,qBAAqB;IACrB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;QACtE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,YAAY,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,GAAG,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,2CAA2C,CAAC,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC/D,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,GAAG,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,gCAAgC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,oBAAoB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9F,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY;YAC7B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACjE,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,wCAAwC,MAAM,GAAG,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,KAAK,UAAU,MAAM,GAAG,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,4CAA4C;IAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAK,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;AACzE,CAAC,CAAC,CAAC;AAEL,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,gCAAgC;QAChC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;gBAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACrC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACnC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBACxB,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3B,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;qBAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC9C,YAAY;oBACZ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACrB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC3B,SAAS;oBACT,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,KAAK,IAAI,IAAI,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC;YACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,wBAAwB;YACxB,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -8,7 +8,7 @@ export const loginCommand = new Command('login')
|
|
|
8
8
|
.description('Copy Claude credentials into a wiki')
|
|
9
9
|
.argument('<wikiId>', 'Wiki to authenticate')
|
|
10
10
|
.option('--credentials <path>', 'Path to .credentials.json', DEFAULT_CREDS_PATH)
|
|
11
|
-
.option('--
|
|
11
|
+
.option('--token <token>', 'Use an OAuth token from `claude setup-token`')
|
|
12
12
|
.action(async (wikiId, opts) => {
|
|
13
13
|
const client = new MemexClient();
|
|
14
14
|
const wikiResp = await client.getWiki(wikiId);
|
|
@@ -16,21 +16,29 @@ export const loginCommand = new Command('login')
|
|
|
16
16
|
console.error(`Error: ${wikiResp.error}`);
|
|
17
17
|
process.exit(1);
|
|
18
18
|
}
|
|
19
|
-
//
|
|
20
|
-
if (opts.
|
|
21
|
-
|
|
19
|
+
// OAuth token mode
|
|
20
|
+
if (opts.token) {
|
|
21
|
+
if (!opts.token.startsWith('sk-ant-oat01-')) {
|
|
22
|
+
console.error(`Error: Token must start with 'sk-ant-oat01-'.`);
|
|
23
|
+
console.error(`\nGenerate one by running: claude setup-token`);
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
const resp = await client.setWikiToken(wikiId, opts.token);
|
|
22
27
|
if (!resp.ok) {
|
|
23
28
|
console.error(`Error: ${resp.error}`);
|
|
24
29
|
process.exit(1);
|
|
25
30
|
}
|
|
26
|
-
console.log(`
|
|
31
|
+
console.log(`OAuth token stored for wiki '${wikiId}'.`);
|
|
27
32
|
return;
|
|
28
33
|
}
|
|
29
34
|
// Credentials file mode (default)
|
|
30
35
|
const credsPath = opts.credentials;
|
|
31
36
|
if (!existsSync(credsPath)) {
|
|
32
37
|
console.error(`Error: Credentials file not found: ${credsPath}`);
|
|
33
|
-
console.error(`\
|
|
38
|
+
console.error(`\nOptions:`);
|
|
39
|
+
console.error(` 1. Run 'claude auth login' first, then re-run this command`);
|
|
40
|
+
console.error(` 2. Run 'claude setup-token' and use: memex login ${wikiId} --token <token>`);
|
|
41
|
+
console.error(` 3. Set globally: memex setup-token <token>`);
|
|
34
42
|
process.exit(1);
|
|
35
43
|
}
|
|
36
44
|
const credentials = readFileSync(credsPath, 'utf-8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,qCAAqC,CAAC;KAClD,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;KAC5C,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,EAAE,kBAAkB,CAAC;KAC/E,MAAM,CAAC,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { MemexClient } from '../client.js';
|
|
3
|
+
const TOKEN_PREFIX = 'sk-ant-oat01-';
|
|
4
|
+
export const setupTokenCommand = new Command('setup-token')
|
|
5
|
+
.description('Store a long-lived OAuth token from `claude setup-token` for all wikis')
|
|
6
|
+
.argument('<token>', 'OAuth token (sk-ant-oat01-...)')
|
|
7
|
+
.option('--wiki <wikiId>', 'Store for a specific wiki only (instead of globally)')
|
|
8
|
+
.action(async (token, opts) => {
|
|
9
|
+
// Validate token format
|
|
10
|
+
if (!token.startsWith(TOKEN_PREFIX)) {
|
|
11
|
+
console.error(`Error: Token must start with '${TOKEN_PREFIX}'.`);
|
|
12
|
+
console.error(`\nGenerate one by running: claude setup-token`);
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
const client = new MemexClient();
|
|
16
|
+
if (opts.wiki) {
|
|
17
|
+
// Per-wiki token
|
|
18
|
+
const wikiResp = await client.getWiki(opts.wiki);
|
|
19
|
+
if (!wikiResp.ok) {
|
|
20
|
+
console.error(`Error: ${wikiResp.error}`);
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
const resp = await client.setWikiToken(opts.wiki, token);
|
|
24
|
+
if (!resp.ok) {
|
|
25
|
+
console.error(`Error: ${resp.error}`);
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
console.log(`OAuth token stored for wiki '${opts.wiki}'.`);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// Global token
|
|
32
|
+
const resp = await client.setGlobalToken(token);
|
|
33
|
+
if (!resp.ok) {
|
|
34
|
+
console.error(`Error: ${resp.error}`);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
console.log('Global OAuth token stored.');
|
|
38
|
+
console.log('All wikis without per-wiki credentials will use this token.');
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=setup-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-token.js","sourceRoot":"","sources":["../../../src/cli/commands/setup-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,YAAY,GAAG,eAAe,CAAC;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACxD,WAAW,CAAC,wEAAwE,CAAC;KACrF,QAAQ,CAAC,SAAS,EAAE,gCAAgC,CAAC;KACrD,MAAM,CAAC,iBAAiB,EAAE,sDAAsD,CAAC;KACjF,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAuB,EAAE,EAAE;IACvD,wBAAwB;IACxB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,iCAAiC,YAAY,IAAI,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IAEjC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,iBAAiB;QACjB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,eAAe;QACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC,CAAC,CAAC"}
|