@link-assistant/agent 0.8.1 → 0.8.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.
Files changed (2) hide show
  1. package/README.md +618 -0
  2. package/package.json +2 -2
package/README.md ADDED
@@ -0,0 +1,618 @@
1
+ # @link-assistant/agent
2
+
3
+ **A minimal, public domain AI CLI agent compatible with OpenCode's JSON interface**
4
+
5
+ [![npm version](https://badge.fury.io/js/@link-assistant%2Fagent.svg)](https://www.npmjs.com/package/@link-assistant/agent)
6
+ [![License: Unlicense](https://img.shields.io/badge/license-Unlicense-blue.svg)](http://unlicense.org/)
7
+
8
+ > 🚨 **SECURITY WARNING: 100% UNSAFE AND AUTONOMOUS** 🚨
9
+ >
10
+ > This agent operates with **ZERO RESTRICTIONS** and **FULL AUTONOMY**:
11
+ >
12
+ > - ❌ **No Sandbox** - Complete unrestricted file system access
13
+ > - ❌ **No Permissions System** - No approval required for any actions
14
+ > - ❌ **No Safety Guardrails** - Can execute ANY command with full privileges
15
+ > - ⚠️ **Autonomous Execution** - Makes decisions and executes actions independently
16
+ >
17
+ > **ONLY use in isolated environments** (VMs, Docker containers) where AI agents can have unrestricted access. **NOT SAFE** for personal computers, production servers, or systems with sensitive data.
18
+
19
+ > ⚠️ **Bun-only runtime** - This package requires [Bun](https://bun.sh) and does NOT support Node.js or Deno.
20
+
21
+ > This is the JavaScript/Bun implementation. See also the [Rust implementation](../rust/README.md).
22
+
23
+ This is an MVP implementation of an OpenCode-compatible CLI agent, focused on maximum efficiency and unrestricted execution. We reproduce OpenCode's `run --format json --model opencode/grok-code` mode with:
24
+
25
+ - ✅ **JSON Input/Output**: Compatible with `opencode run --format json --model opencode/grok-code`
26
+ - ✅ **Plain Text Input**: Also accepts plain text messages (auto-converted to JSON format)
27
+ - ✅ **Flexible Model Selection**: Defaults to free OpenCode Zen Grok Code Fast 1, supports [OpenCode Zen](https://opencode.ai/docs/zen/), [Claude OAuth](../docs/claude-oauth.md), and [Groq](../docs/groq.md) providers
28
+ - ✅ **No Restrictions**: Fully unrestricted file system and command execution access (no sandbox)
29
+ - ✅ **Minimal Footprint**: Built with Bun.sh for maximum efficiency
30
+ - ✅ **Full Tool Support**: 13 tools including websearch, codesearch, batch - all enabled by default
31
+ - ✅ **100% OpenCode Compatible**: All tool outputs match OpenCode's JSON format exactly
32
+ - ✅ **Internal HTTP Server**: Uses local HTTP server for session management (not exposed externally)
33
+ - ❌ **No TUI**: Pure JSON CLI interface only
34
+ - ❌ **No Sandbox**: Designed for VMs/containers where full access is acceptable
35
+ - ❌ **No LSP**: No Language Server Protocol support for diagnostics
36
+ - ❌ **No Permissions**: No permission system - full unrestricted access
37
+ - ❌ **No IDE Integration**: No IDE/editor integration features
38
+ - ❌ **No Plugins**: No plugin system
39
+ - ❌ **No Share**: No session sharing functionality
40
+ - ❌ **No External API**: Server runs only internally, not exposed to network
41
+ - ❌ **No ACP**: No Agent Client Protocol support
42
+
43
+ ## Requirements
44
+
45
+ - [Bun](https://bun.sh) >= 1.0.0 (Node.js and Deno are NOT supported)
46
+
47
+ ## Installation
48
+
49
+ ```bash
50
+ # Install Bun first if you haven't already
51
+ curl -fsSL https://bun.sh/install | bash
52
+
53
+ # Install the package globally
54
+ bun install -g @link-assistant/agent
55
+
56
+ # Or install locally in your project
57
+ bun add @link-assistant/agent
58
+ ```
59
+
60
+ After installation, the `agent` command will be available globally.
61
+
62
+ ## Usage
63
+
64
+ ### Simplest Examples
65
+
66
+ **Plain text (easiest):**
67
+
68
+ ```bash
69
+ echo "hi" | agent
70
+ ```
71
+
72
+ **Simple JSON message:**
73
+
74
+ ```bash
75
+ echo '{"message":"hi"}' | agent
76
+ ```
77
+
78
+ **With custom model:**
79
+
80
+ ```bash
81
+ echo "hi" | agent --model opencode/grok-code
82
+ ```
83
+
84
+ ### More Examples
85
+
86
+ **Plain Text Input:**
87
+
88
+ ```bash
89
+ echo "hello world" | agent
90
+ echo "search the web for TypeScript news" | agent
91
+ ```
92
+
93
+ **JSON Input with tool calls:**
94
+
95
+ ```bash
96
+ echo '{"message":"run command","tools":[{"name":"bash","params":{"command":"ls -la"}}]}' | agent
97
+ ```
98
+
99
+ **Using different models:**
100
+
101
+ ```bash
102
+ # Default model (free Grok Code Fast 1)
103
+ echo "hi" | agent
104
+
105
+ # Other free models
106
+ echo "hi" | agent --model opencode/big-pickle
107
+ echo "hi" | agent --model opencode/gpt-5-nano
108
+
109
+ # Premium models (OpenCode Zen subscription)
110
+ echo "hi" | agent --model opencode/sonnet # Claude Sonnet 4.5
111
+ echo "hi" | agent --model opencode/haiku # Claude Haiku 4.5
112
+ echo "hi" | agent --model opencode/opus # Claude Opus 4.1
113
+ echo "hi" | agent --model opencode/gemini-3-pro # Gemini 3 Pro
114
+
115
+ # Groq models (requires GROQ_API_KEY)
116
+ echo "hi" | agent --model groq/llama-3.3-70b-versatile # Llama 3.3 70B
117
+ echo "hi" | agent --model groq/llama-3.1-8b-instant # Llama 3.1 8B (fast)
118
+
119
+ # Anthropic direct (requires ANTHROPIC_API_KEY)
120
+ echo "hi" | agent --model anthropic/claude-sonnet-4-5 # Claude Sonnet 4.5
121
+ echo "hi" | agent --model anthropic/claude-opus-4-1 # Claude Opus 4.1
122
+
123
+ # Anthropic OAuth (requires Claude Pro/Max subscription)
124
+ agent auth login # Select Anthropic > Claude Pro/Max
125
+ echo "hi" | agent --model anthropic/claude-sonnet-4-5 # Uses OAuth credentials
126
+
127
+ # Use existing Claude Code CLI credentials
128
+ echo "hi" | agent --use-existing-claude-oauth # Reads from ~/.claude/.credentials.json
129
+
130
+ # Google Gemini (requires GOOGLE_API_KEY)
131
+ echo "hi" | agent --model google/gemini-3-pro # Gemini 3 Pro
132
+ echo "hi" | agent --model google/gemini-2.5-flash # Gemini 2.5 Flash
133
+
134
+ # GitHub Copilot (requires Copilot subscription)
135
+ agent auth login # Select GitHub Copilot
136
+ echo "hi" | agent --model github-copilot/gpt-4o # Uses Copilot
137
+ ```
138
+
139
+ See [MODELS.md](../MODELS.md) for complete list of available models and pricing.
140
+ See [docs/groq.md](../docs/groq.md) for Groq provider documentation.
141
+ See [docs/claude-oauth.md](../docs/claude-oauth.md) for Claude OAuth provider documentation.
142
+
143
+ ### Direct Prompt Mode
144
+
145
+ Use `-p`/`--prompt` to send a prompt directly without reading from stdin:
146
+
147
+ ```bash
148
+ # Direct prompt (bypasses stdin)
149
+ agent -p "What is 2+2?"
150
+
151
+ # Useful in scripts
152
+ result=$(agent -p "Summarize: $(cat file.txt)")
153
+ ```
154
+
155
+ ### Session Resume
156
+
157
+ Resume or continue previous sessions:
158
+
159
+ ```bash
160
+ # Continue the most recent session (creates a fork with new UUID by default)
161
+ echo "Continue where we left off" | agent --continue
162
+
163
+ # Short form
164
+ echo "Continue where we left off" | agent -c
165
+
166
+ # Resume a specific session by ID (creates a fork with new UUID by default)
167
+ echo "Let's continue" | agent --resume ses_abc123xyz
168
+
169
+ # Continue in the same session without forking
170
+ echo "Keep going" | agent --continue --no-fork
171
+
172
+ # Resume specific session without forking
173
+ echo "Keep going" | agent --resume ses_abc123xyz --no-fork
174
+ ```
175
+
176
+ **Note**: By default, `--resume` and `--continue` create a new session ID (fork) to preserve the original conversation history. Use `--no-fork` to continue in the same session.
177
+
178
+ ## CLI Options
179
+
180
+ ```bash
181
+ agent [options]
182
+
183
+ Options:
184
+ --model Model to use in format providerID/modelID
185
+ Default: opencode/grok-code
186
+ --json-standard JSON output format standard
187
+ Choices: "opencode" (default), "claude" (experimental)
188
+ --use-existing-claude-oauth Use existing Claude OAuth credentials
189
+ from ~/.claude/.credentials.json
190
+ --system-message Full override of the system message
191
+ --system-message-file Full override of the system message from file
192
+ --append-system-message Append to the default system message
193
+ --append-system-message-file Append to the default system message from file
194
+
195
+ Stdin Mode Options:
196
+ -p, --prompt Direct prompt (bypasses stdin reading)
197
+ --disable-stdin Disable stdin streaming (requires --prompt)
198
+ --stdin-stream-timeout Timeout in ms for stdin reading (default: none)
199
+ --interactive Accept plain text input (default: true)
200
+ --no-interactive Only accept JSON input
201
+ --auto-merge-queued-messages Merge rapidly arriving lines (default: true)
202
+ --no-auto-merge-queued-messages Treat each line as separate message
203
+ --always-accept-stdin Keep accepting input after agent finishes (default: true)
204
+ --no-always-accept-stdin Single-message mode - exit after first response
205
+ --compact-json Output compact JSON for program-to-program use
206
+
207
+ Session Resume Options:
208
+ -r, --resume <sessionID> Resume a specific session by ID
209
+ By default, forks with a new UUID
210
+ -c, --continue Continue the most recent session
211
+ By default, forks with a new UUID
212
+ --no-fork When used with --resume or --continue,
213
+ continue in the same session without forking
214
+
215
+ --help Show help
216
+ --version Show version number
217
+
218
+ Commands:
219
+ auth login Authenticate with a provider (Anthropic, GitHub Copilot, etc.)
220
+ auth logout Remove credentials for a provider
221
+ auth list List configured credentials
222
+ auth status Check authentication status (experimental)
223
+ mcp MCP server commands
224
+ ```
225
+
226
+ See [docs/stdin-mode.md](../docs/stdin-mode.md) for comprehensive stdin mode documentation.
227
+
228
+ ### JSON Output Standards
229
+
230
+ The agent supports two JSON output format standards via the `--json-standard` option:
231
+
232
+ #### OpenCode Standard (default)
233
+
234
+ The OpenCode format is the default JSON output format, compatible with `opencode run --format json`:
235
+
236
+ ```bash
237
+ echo "hi" | agent --json-standard opencode
238
+ ```
239
+
240
+ - **Format**: Pretty-printed JSON (human-readable with indentation)
241
+ - **Event Types**: `step_start`, `step_finish`, `text`, `tool_use`, `error`
242
+ - **Timestamps**: Unix milliseconds (number)
243
+ - **Session ID**: `sessionID` (camelCase)
244
+
245
+ #### Claude Standard (experimental)
246
+
247
+ The Claude format provides compatibility with Anthropic's Claude CLI `--output-format stream-json`:
248
+
249
+ ```bash
250
+ echo "hi" | agent --json-standard claude
251
+ ```
252
+
253
+ - **Format**: NDJSON (Newline-Delimited JSON - compact, one JSON per line)
254
+ - **Event Types**: `init`, `message`, `tool_use`, `tool_result`, `result`
255
+ - **Timestamps**: ISO 8601 strings
256
+ - **Session ID**: `session_id` (snake_case)
257
+
258
+ ### Input Formats
259
+
260
+ **Plain Text (auto-converted):**
261
+
262
+ ```bash
263
+ echo "your message here" | agent
264
+ ```
265
+
266
+ **JSON Format:**
267
+
268
+ ```json
269
+ {
270
+ "message": "Your message here",
271
+ "tools": [
272
+ {
273
+ "name": "bash",
274
+ "params": { "command": "ls -la" }
275
+ }
276
+ ]
277
+ }
278
+ ```
279
+
280
+ ## Supported Tools
281
+
282
+ All 13 tools are **enabled by default** with **no configuration required**. See [TOOLS.md](../TOOLS.md) for complete documentation.
283
+
284
+ ### File Operations
285
+
286
+ - **`read`** - Read file contents
287
+ - **`write`** - Write files
288
+ - **`edit`** - Edit files with string replacement
289
+ - **`list`** - List directory contents
290
+
291
+ ### Search Tools
292
+
293
+ - **`glob`** - File pattern matching (`**/*.js`)
294
+ - **`grep`** - Text search with regex support
295
+ - **`websearch`** ✨ - Web search via Exa API (no config needed!)
296
+ - **`codesearch`** ✨ - Code search via Exa API (no config needed!)
297
+
298
+ ### Execution Tools
299
+
300
+ - **`bash`** - Execute shell commands
301
+ - **`batch`** ✨ - Batch multiple tool calls (no config needed!)
302
+ - **`task`** - Launch subagent tasks
303
+
304
+ ### Utility Tools
305
+
306
+ - **`todo`** - Task tracking
307
+ - **`webfetch`** - Fetch and process URLs
308
+
309
+ ✨ = Always enabled (no experimental flags or environment variables needed)
310
+
311
+ ## MCP (Model Context Protocol) Support
312
+
313
+ The agent supports the Model Context Protocol (MCP), allowing you to extend functionality with MCP servers. MCP enables the agent to interact with external tools and services, such as browser automation via Playwright.
314
+
315
+ ### Installing Playwright MCP
316
+
317
+ Microsoft's Playwright MCP server provides browser automation capabilities using Playwright. This enables the agent to interact with web pages through structured accessibility snapshots.
318
+
319
+ **Requirements:**
320
+
321
+ - Node.js 18 or newer (for running the Playwright MCP server)
322
+ - Bun (for running the agent itself)
323
+
324
+ **Installation:**
325
+
326
+ ```bash
327
+ # Add Playwright MCP server to your agent configuration
328
+ agent mcp add playwright npx @playwright/mcp@latest
329
+
330
+ # Verify the configuration
331
+ agent mcp list
332
+ ```
333
+
334
+ This will create a configuration file at `~/.config/link-assistant-agent/opencode.json` (or your system's config directory) with:
335
+
336
+ ```json
337
+ {
338
+ "$schema": "https://opencode.ai/config.json",
339
+ "mcp": {
340
+ "playwright": {
341
+ "type": "local",
342
+ "command": ["npx", "@playwright/mcp@latest"],
343
+ "enabled": true
344
+ }
345
+ }
346
+ }
347
+ ```
348
+
349
+ **Available Playwright Tools:**
350
+
351
+ Once configured, the agent gains access to 22+ browser automation tools:
352
+
353
+ - `browser_navigate` - Navigate to a URL
354
+ - `browser_click` - Click on an element
355
+ - `browser_type` - Type text into an element
356
+ - `browser_snapshot` - Capture accessibility snapshot
357
+ - `browser_take_screenshot` - Take a screenshot
358
+ - `browser_fill_form` - Fill multiple form fields
359
+ - `browser_select_option` - Select dropdown option
360
+ - `browser_hover` - Hover over element
361
+ - `browser_drag` - Drag and drop
362
+ - `browser_evaluate` - Execute JavaScript
363
+ - `browser_tabs` - Manage browser tabs
364
+ - `browser_close` - Close the browser
365
+ - `browser_wait_for` - Wait for text/element
366
+ - `browser_press_key` - Press keyboard key
367
+ - `browser_handle_dialog` - Handle browser dialogs
368
+ - `browser_network_requests` - Get network requests
369
+ - `browser_console_messages` - Get console messages
370
+ - `browser_file_upload` - Upload files
371
+ - `browser_resize` - Resize browser window
372
+ - `browser_navigate_back` - Navigate back
373
+ - `browser_install` - Install browser
374
+ - `browser_run_code` - Run Playwright code
375
+
376
+ **Usage Example:**
377
+
378
+ ```bash
379
+ # Tell the agent to navigate to a website and take a screenshot
380
+ echo "Navigate to https://example.com and take a screenshot" | agent
381
+ ```
382
+
383
+ The agent will automatically use the Playwright MCP tools when browser automation is needed.
384
+
385
+ **Learn More:**
386
+
387
+ - [Playwright MCP GitHub Repository](https://github.com/microsoft/playwright-mcp)
388
+ - [Using Playwright MCP with Claude Code](https://til.simonwillison.net/claude-code/playwright-mcp-claude-code)
389
+ - [Playwright MCP Case Study](../docs/case-studies/playwright-mcp-support/case-study.md)
390
+
391
+ ### Managing MCP Servers
392
+
393
+ **List configured servers:**
394
+
395
+ ```bash
396
+ agent mcp list
397
+ ```
398
+
399
+ **Add a remote MCP server:**
400
+
401
+ ```bash
402
+ agent mcp add myserver --url https://example.com/mcp
403
+ ```
404
+
405
+ **Interactive mode:**
406
+
407
+ If you prefer an interactive setup, just run:
408
+
409
+ ```bash
410
+ agent mcp add
411
+ ```
412
+
413
+ The interactive prompt will guide you through configuring local or remote MCP servers.
414
+
415
+ ## Key Features
416
+
417
+ ### No Configuration Required
418
+
419
+ - **WebSearch/CodeSearch**: Work without `LINK_ASSISTANT_AGENT_EXPERIMENTAL_EXA` environment variable (legacy `OPENCODE_EXPERIMENTAL_EXA` still supported)
420
+ - **Batch Tool**: Always enabled, no experimental flag needed
421
+ - **All Tools**: No config files, API keys handled automatically
422
+
423
+ ### OpenCode 100% Compatible
424
+
425
+ - All tools produce JSON output matching OpenCode's exact format
426
+ - WebSearch and CodeSearch tools are verified 100% compatible
427
+ - Tool event structure matches OpenCode specifications
428
+ - Can be used as drop-in replacement for `opencode run --format json`
429
+
430
+ ### Plain Text Support
431
+
432
+ Both plain text and JSON input work:
433
+
434
+ ```bash
435
+ # Plain text
436
+ echo "hello" | bun run src/index.js
437
+
438
+ # JSON
439
+ echo '{"message":"hello"}' | bun run src/index.js
440
+ ```
441
+
442
+ Plain text is automatically converted to `{"message":"your text"}` format.
443
+
444
+ ### JSON Event Streaming Output
445
+
446
+ JSON output is pretty-printed for easy readability while maintaining OpenCode compatibility:
447
+
448
+ ```bash
449
+ echo "hi" | agent
450
+ ```
451
+
452
+ Output (pretty-printed JSON events):
453
+
454
+ ```json
455
+ {
456
+ "type": "step_start",
457
+ "timestamp": 1763618628840,
458
+ "sessionID": "ses_560236487ffe3ROK1ThWvPwTEF",
459
+ "part": {
460
+ "id": "prt_a9fdca4e8001APEs6AriJx67me",
461
+ "type": "step-start",
462
+ ...
463
+ }
464
+ }
465
+ {
466
+ "type": "text",
467
+ "timestamp": 1763618629886,
468
+ "sessionID": "ses_560236487ffe3ROK1ThWvPwTEF",
469
+ "part": {
470
+ "id": "prt_a9fdca85c001bVEimWb9L3ya6T",
471
+ "type": "text",
472
+ "text": "Hi! How can I help with your coding tasks today?",
473
+ ...
474
+ }
475
+ }
476
+ {
477
+ "type": "step_finish",
478
+ "timestamp": 1763618629916,
479
+ "sessionID": "ses_560236487ffe3ROK1ThWvPwTEF",
480
+ "part": {
481
+ "id": "prt_a9fdca8ff0015cBrNxckAXI3aE",
482
+ "type": "step-finish",
483
+ "reason": "stop",
484
+ ...
485
+ }
486
+ }
487
+ ```
488
+
489
+ ## Development
490
+
491
+ ### Running in Development Mode
492
+
493
+ ```bash
494
+ bun run dev
495
+ ```
496
+
497
+ Or run directly:
498
+
499
+ ```bash
500
+ bun run src/index.js
501
+ ```
502
+
503
+ ### Testing
504
+
505
+ ```bash
506
+ # Run all tests
507
+ bun test
508
+
509
+ # Run specific test file
510
+ bun test tests/mcp.test.js
511
+ bun test tests/websearch.tools.test.js
512
+ bun test tests/batch.tools.test.js
513
+ bun test tests/plaintext.input.test.js
514
+ ```
515
+
516
+ For detailed testing information including how to run tests manually and trigger CI tests, see [TESTING.md](../TESTING.md).
517
+
518
+ ### Test Coverage
519
+
520
+ - ✅ 13 tool implementation tests
521
+ - ✅ Plain text input support test
522
+ - ✅ OpenCode compatibility tests for websearch/codesearch
523
+ - ✅ JSON standard unit tests (opencode and claude formats)
524
+ - ✅ All tests pass with 100% OpenCode JSON format compatibility
525
+
526
+ ### Linting and Formatting
527
+
528
+ ```bash
529
+ # Run linting
530
+ bun run lint
531
+
532
+ # Fix linting issues
533
+ bun run lint:fix
534
+
535
+ # Format code
536
+ bun run format
537
+
538
+ # Check formatting
539
+ bun run format:check
540
+ ```
541
+
542
+ ### Publishing
543
+
544
+ The package uses [Changesets](https://github.com/changesets/changesets) for version management:
545
+
546
+ 1. Create a changeset:
547
+
548
+ ```bash
549
+ bun run changeset
550
+ ```
551
+
552
+ 2. Version the package:
553
+
554
+ ```bash
555
+ bun run changeset:version
556
+ ```
557
+
558
+ 3. Publish to npm:
559
+ ```bash
560
+ bun run changeset:publish
561
+ ```
562
+
563
+ The package publishes source files directly (no build step required). Bun handles TypeScript execution natively.
564
+
565
+ ## Why Bun-only? No Node.js or Deno support?
566
+
567
+ This agent is **exclusively built for Bun** for the following reasons:
568
+
569
+ 1. **Faster Development**: No compilation step - direct execution with `bun run`
570
+ 2. **Simpler Dependencies**: Fewer dev dependencies, no TypeScript compiler overhead
571
+ 3. **Performance**: Bun's fast runtime and native ESM support
572
+ 4. **Minimalism**: Single runtime target keeps the codebase simple
573
+ 5. **Bun Ecosystem**: Leverages Bun-specific features and optimizations
574
+
575
+ **Not supporting Node.js or Deno is intentional** to keep the project focused and minimal. If you need Node.js/Deno compatibility, consider using [OpenCode](https://github.com/sst/opencode) instead.
576
+
577
+ ## Project Structure
578
+
579
+ ```
580
+ js/
581
+ ├── src/ # Source code
582
+ │ ├── index.js # Main entry point with JSON/plain text input support
583
+ │ ├── session/ # Session management and agent implementation
584
+ │ └── tool/ # Tool implementations
585
+ ├── tests/ # Comprehensive test suite
586
+ ├── experiments/ # Experimental code
587
+ ├── package.json # npm package configuration
588
+ └── tsconfig.json # TypeScript configuration
589
+ ```
590
+
591
+ ## Architecture
592
+
593
+ This agent-cli reproduces the core architecture of [OpenCode](https://github.com/sst/opencode)'s `run --format json` command:
594
+
595
+ - **Streaming JSON Events**: Instead of single responses, outputs real-time event stream
596
+ - **Event Types**: `tool_use`, `text`, `step_start`, `step_finish`, `error`
597
+ - **Session Management**: Each request gets a unique session ID
598
+ - **Tool Execution**: 13 tools with unrestricted access (bash, read, write, edit, list, glob, grep, websearch, codesearch, batch, task, todo, webfetch)
599
+ - **Compatible Format**: Events match OpenCode's JSON schema for interoperability
600
+
601
+ The agent streams events as they occur, providing the same real-time experience as OpenCode's JSON mode.
602
+
603
+ ## Examples
604
+
605
+ See [EXAMPLES.md](../EXAMPLES.md) for detailed usage examples of each tool with both agent-cli and opencode commands.
606
+
607
+ ## Documentation
608
+
609
+ For full documentation, see the [main README](../README.md) in the repository root.
610
+
611
+ - [Models and Pricing](../MODELS.md)
612
+ - [Tools Reference](../TOOLS.md)
613
+ - [Usage Examples](../EXAMPLES.md)
614
+ - [Testing Guide](../TESTING.md)
615
+
616
+ ## License
617
+
618
+ Unlicense (Public Domain)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@link-assistant/agent",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "A minimal, public domain AI CLI agent compatible with OpenCode's JSON interface. Bun-only runtime.",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -44,7 +44,7 @@
44
44
  "files": [
45
45
  "src/",
46
46
  "package.json",
47
- "../README.md",
47
+ "README.md",
48
48
  "../MODELS.md",
49
49
  "../TOOLS.md",
50
50
  "../EXAMPLES.md",