fss-link 1.6.1 β†’ 1.6.12

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 (43) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +63 -316
  3. package/bundle/fss-link.js +4038 -134262
  4. package/docs/CONFIGURATION.md +200 -0
  5. package/docs/README.md +192 -0
  6. package/docs/TOOLS.md +268 -0
  7. package/docs/assets/batch_0001_fss-link-terminal-interface.png +0 -0
  8. package/docs/assets/batch_0002_multiprovider-connection-hub-a.png +0 -0
  9. package/docs/assets/batch_0003_database-persistence-system-a.png +0 -0
  10. package/docs/assets/batch_0004_context-window-compression-a.png +0 -0
  11. package/docs/assets/batch_0005_file-operations-with-safety.png +0 -0
  12. package/docs/assets/batch_0006_semantic-search-rag-system.png +0 -0
  13. package/docs/assets/batch_0008_document-parsing-suite-a.png +0 -0
  14. package/docs/assets/batch_0009_web-research-tools-a.png +0 -0
  15. package/docs/assets/batch_0010_texttospeech-voice-output-a.png +0 -0
  16. package/docs/assets/batch_0011_shell-command-execution-a.png +0 -0
  17. package/docs/assets/batch_0012_mcp-extension-system-a.png +0 -0
  18. package/docs/assets/batch_0014_approval-mode-switches-a.png +0 -0
  19. package/docs/assets/batch_0015_folder-trust-system-a.png +0 -0
  20. package/package.json +53 -38
  21. package/scripts/check-publish.js +2 -1
  22. package/scripts/install-linux.sh +1 -2
  23. package/scripts/install-macos.sh +1 -2
  24. package/scripts/install-windows.ps1 +1 -2
  25. package/scripts/prebundle-sync-dist.js +51 -0
  26. package/README.pdf +0 -0
  27. package/scripts/analyze-session-logs.sh +0 -279
  28. package/scripts/emergency-kill-all-tests.sh +0 -95
  29. package/scripts/emergency-kill-vitest.sh +0 -95
  30. package/scripts/extract-session-logs.sh +0 -202
  31. package/scripts/get-previous-tag.js +0 -213
  32. package/scripts/get-release-version.js +0 -119
  33. package/scripts/index-session-logs.sh +0 -173
  34. package/scripts/local_telemetry.js +0 -219
  35. package/scripts/memory-monitor.sh +0 -165
  36. package/scripts/process-session-log.py +0 -302
  37. package/scripts/quick-install.sh +0 -195
  38. package/scripts/telemetry_gcp.js +0 -188
  39. package/scripts/telemetry_utils.js +0 -421
  40. package/scripts/test-windows-paths.js +0 -51
  41. package/scripts/tests/get-release-version.test.js +0 -110
  42. package/scripts/tests/test-setup.ts +0 -12
  43. package/scripts/tests/vitest.config.ts +0 -20
package/LICENSE CHANGED
@@ -189,6 +189,7 @@
189
189
 
190
190
  Copyright 2025 Google LLC
191
191
  Copyright 2025 Qwen
192
+ Copyright 2025 Fox Software Solutions
192
193
 
193
194
  Licensed under the Apache License, Version 2.0 (the "License");
194
195
  you may not use this file except in compliance with the License.
package/README.md CHANGED
@@ -1,361 +1,108 @@
1
- # FSS Link πŸ”—
1
+ # FSS Link
2
2
 
3
- <div align="center">
3
+ A CLI coding agent forked from QwenCode, rebuilt around local-first model support and practical tooling for a solo developer's workflow.
4
4
 
5
- [![FSS Link](https://img.shields.io/badge/FSS-Link-emerald.svg)](https://github.com/FSSCoding/fss-link)
6
- [![TypeScript Tools](https://img.shields.io/badge/TypeScript-Tools-blue.svg)](https://github.com/FSSCoding/fss-link)
7
- [![RAG Integration](https://img.shields.io/badge/RAG-Integrated-purple.svg)](https://github.com/FSSCoding/fss-link)
8
- [![Voice Feedback](https://img.shields.io/badge/Voice-Enabled-orange.svg)](https://github.com/FSSCoding/fss-link)
9
- [![Local Models](https://img.shields.io/badge/Local-Models-red.svg)](https://github.com/FSSCoding/fss-link)
5
+ ## What it does
10
6
 
11
- **Spin up links. Get work done.** πŸš€
7
+ FSS Link is a terminal-based AI assistant that reads your codebase, runs tools, and helps you build software. It connects to local models (LM Studio, vLLM) or cloud APIs (OpenAI, Gemini) and gives the model access to file operations, web scraping, search, and shell commands.
12
8
 
13
- </div>
9
+ It exists because the upstream project assumed cloud-only usage. This fork adds:
14
10
 
15
- **FSS Link** is a portable, scriptable agent that links tools, models, and knowledge into single-instance workflows. Install anywhere with Node.js, launch one agent at a time, feed it tasks, and watch it go.
11
+ - **Local model priority** β€” LM Studio and vLLM as first-class providers, not afterthoughts
12
+ - **Database-backed model config** β€” switch models via CLI flags, settings persist across sessions
13
+ - **Web scraper tool** β€” search and extract web content from within the agent
14
+ - **TTS integration** β€” audio feedback during long-running tasks via multi-voice TTS
15
+ - **Image generation tool** β€” generate images via CLI from within the agent
16
+ - **Vision support** β€” send images to vision-capable models with automatic format conversion and resizing
17
+ - **Custom agents** β€” named agent personalities with distinct roles (research, testing, implementation, etc.)
18
+ - **Private IP support** β€” works with vLLM/LM Studio on local network without SSL errors
16
19
 
17
- - **Lightweight distribution** (~15 MB bundle, requires Node.js 20+)
18
- - **Single-agent workflows** with structured prompts
19
- - **Portable Mini-RAG** indices that travel with your projects (planned feature)
20
- - **Local-first** with LM Studio/Ollama priority
21
- - **Professional tools** built in TypeScript for seamless integration
20
+ ## Installation
22
21
 
23
- ## 🎯 Why "Link"?
24
-
25
- Link connects thingsβ€”tools, models, tasks, and knowledge. **FSS Link** is a lightweight distribution that runs wherever Node.js is installed. Start an agent, or spawn multiple agents with templated prompts (planned feature). Each project carries its own Mini-RAG index, so knowledge travels with the work.
26
-
27
- ## πŸš€ Quick Start
28
-
29
- ```bash
30
- # Interactive mode
31
- fss-link
32
-
33
- # Single-shot task
34
- fss-link run "Audit the repo for security keys and open PR fixes."
35
-
36
- # Portable RAG - indexes travel with projects (planned feature)
37
- cd project && fss-link rag index . && fss-link rag query "error handling"
38
- ```
39
-
40
- ## ⚑ **NEW: UNIFIED PROVIDER SYSTEM (v1.0.54)**
41
-
42
- **Zero complexity model switching!** Complete provider/model management unification with eliminated spaghetti code:
22
+ Requires Node.js 20+.
43
23
 
44
24
  ```bash
45
- # Quick Ollama tasks
46
- fss-link --provider ollama --model qwen3:4b -p "explain this code"
47
- fss-link --provider ollama --model qwen3-coder:latest -p "refactor this function"
48
-
49
- # LM Studio for specialized models
50
- fss-link --provider lm-studio --model llama-3.1-8b -p "write documentation"
51
-
52
- # OpenAI for advanced reasoning
53
- fss-link --provider openai-api-key --model gpt-4o -p "complex analysis task"
54
-
55
- # Gemini for multimodal tasks
56
- fss-link --provider gemini-api-key --model gemini-2.0-flash-thinking -p "analyze this image"
57
-
58
- # Google Cloud providers (NEW)
59
- fss-link --provider vertex-ai --model gemini-1.5-pro -p "enterprise analysis"
60
- fss-link --provider oauth-personal --model gemini-flash -p "personal tasks"
61
- fss-link --provider cloud-shell --model default -p "cloud development"
62
- ```
63
-
64
- ### 🎯 **All 8 Providers Supported**
65
- - `ollama` - Local Ollama server (default port 11434)
66
- - `lm-studio` - LM Studio server (default port 1234)
67
- - `openai-api-key` - OpenAI API (requires API key)
68
- - `gemini-api-key` - Google Gemini API (requires API key)
69
- - `vertex-ai` - Google Vertex AI (enterprise)
70
- - `oauth-personal` - Google OAuth (personal)
71
- - `cloud-shell` - Google Cloud Shell
72
- - `qwen-oauth` - FSS Link OAuth
73
-
74
- ### πŸ”„ **Fallback Hierarchy**
75
- 1. **CLI Arguments** - `--provider` and `--model` flags (highest priority)
76
- 2. **Database Configuration** - Persistent model settings
77
- 3. **Environment Variables** - Traditional env var fallback
78
-
79
- ## πŸ“¦ Installation
80
-
81
- **FSS Link v1.0.54 is now published to NPM with UNIFIED PROVIDER SYSTEM! Install it globally for the best experience:**
82
-
83
- ```bash
84
- # Method 1: NPM Global Install (Recommended)
25
+ # From npm
85
26
  npm install -g fss-link
86
27
 
87
- # Now you can use fss-link anywhere
88
- fss-link --help
89
- fss-link --version # Should show v1.0.54
90
- ```
91
-
92
- ### πŸŽ‰ **NEW: Welcome Back System (v1.0.43)**
93
-
94
- FSS Link now features an intelligent **Welcome Back dialog** that appears when you return to projects with existing history:
95
-
96
- - **πŸ” Project Status Dashboard** - Git status, session history, momentum analysis
97
- - **πŸ“Š Smart Context Generation** - Priority-based information filtering (7 levels)
98
- - **⚑ Multi-Agent Awareness** - Universal session tracking across all agents (planned feature)
99
- - **🎯 Seamless Resumption** - Intelligent context population for continuing work
100
- - **πŸš€ Production Quality** - Comprehensive error handling, performance optimization
101
-
102
- ## πŸ“ File Access & Security
103
-
104
- ### Workspace Boundaries
105
- FSS Link restricts file operations to **workspace directories** by design. Understanding workspace boundaries helps you work efficiently:
106
-
107
- **[Understanding Workspace Boundaries](./fss-docs/WORKSPACE-BOUNDARIES.md)** - Complete guide to:
108
- - How workspace scope is determined
109
- - Why files outside workspace are inaccessible
110
- - Configuration options to expand workspace
111
- - Troubleshooting "Path validation failed" errors
112
-
113
- ### External Directory Access
114
- For accessing external directories like `/tmp`, user directories, or custom paths:
115
-
116
- **[External Directory Access Guide](./fss-docs/EXTERNAL-DIRECTORY-ACCESS.md)** - Explains:
117
- - Folder trust system configuration
118
- - Security considerations for external access
119
- - Trust levels (TRUST_FOLDER vs TRUST_PARENT)
120
-
121
- ### πŸ”„ **Node.js Version Requirements**
122
-
123
- FSS Link requires **Node.js 20+**. If you have an older version, upgrade first:
124
-
125
- ```bash
126
- # Check your current Node version
127
- node --version
128
-
129
- # If you have Node 18 or older, upgrade to Node 20:
130
- curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
131
- sudo apt-get install nodejs -y
132
-
133
- # Verify upgrade
134
- node --version # Should show v20.x.x
135
- npm --version # Should show v10.x.x
136
- ```
137
-
138
- ```bash
139
- # Method 2: Clone and Build from Source (Development)
140
- git clone http://gitea.internal.bobai.com.au:3000/foxadmin/fss-link.git
28
+ # From source
29
+ git clone https://github.com/FSScoding/fss-link.git
141
30
  cd fss-link
142
31
  npm install
143
32
  npm run build
144
-
145
- # Install globally for 'fss-link' command
146
- npm link
147
-
148
- # Now you can use fss-link anywhere
149
- fss-link --help
150
- ```
151
-
152
- ```bash
153
- # Method 3: Run without installing globally
154
- npx fss-link
155
- # OR from source
156
- cd fss-link
157
- npx fss-link
33
+ npm run bundle
34
+ sudo npm install -g .
158
35
  ```
159
36
 
160
- **βœ… Note**: FSS Link is now published to npm as `fss-link` v1.0.54!
37
+ ## Usage
161
38
 
162
- ## πŸ”§ Enhanced Features & Tools
163
-
164
- This agent extends FSS Link v0.0.10+ with professional development tools and intelligent workflow automation:
165
-
166
- ### 🧠 **TypeScript Mini-RAG System**
167
- Built-in semantic search that travels with your projects. No Python dependencies, no setup complexity.
168
-
169
- - **Deep Semantic Search**: Find code by describing what it does, not just what it's called
170
- - **Cross-Reference Analysis**: Discover how different parts of the system interact
171
- - **Context-Aware Suggestions**: Get recommendations based on the entire project context
172
- - **Portable Indices**: Knowledge travels with your projects (planned feature)
173
-
174
- ### πŸ“‹ **Enhanced Task Management**
175
- Built on FSS Link's native TodoWrite tool with professional enhancements for complex development workflows.
176
-
177
- - **Persistent Task Lists**: Never lose track of what needs to be done
178
- - **Visual Progress Indicators**: Instantly see what's complete, in-progress, or pending
179
- - **Intelligent Task Breakdown**: Automatically decompose complex features into actionable steps
180
- - **Multi-Agent Coordination**: Tasks shared across multiple agent instances (planned feature)
181
-
182
- ### πŸ” **Professional Web Research**
183
- TypeScript-native web research tools eliminate context switching between development and external resources.
184
-
185
- - **Integrated Research**: Gather documentation without leaving the development workflow
186
- - **Content Processing**: Smart extraction and summarization of technical content
187
- - **Project Memory**: Maintain research context across sessions
188
-
189
- ### 🎡 **Voice Feedback System**
190
- Long-running operations need progress updates. Audio feedback enables multitasking during complex automated tasks.
191
-
192
- - **TTS Integration**: Stay informed about progress without watching the screen
193
- - **Multi-Voice Support**: Assign different voices to different types of work
194
- - **Bluetooth Audio**: Use wireless speakers for clear feedback
195
-
196
- ### ⚑ **Local Model Optimization**
197
- Designed for local-first development with intelligent model switching.
198
-
199
- - **LM Studio Priority**: Optimized for local inference workflows
200
- - **Ollama Secondary**: Fallback for different model architectures
201
- - **Cloud Enhancement**: Remote models as capability extension, not dependency
202
-
203
- ## πŸ–₯️ **Local Model Recommendations**
204
-
205
- Based on extensive testing with the FSS Enhanced FSS Link prototype:
206
-
207
- ### ⚑ **High-Speed Development** - `qwen/qwen3-4b-2507`
208
- - **Performance**: 120+ tokens/second on dual RTX 3090 setup
209
- - **Context Window**: 190k tokens with KV quantisation + Flash Attention
210
- - **Best for**: Code completion, refactoring, documentation, analysis
211
- - **Experience**: Comparable to Gemini Flash with enhanced system prompts
212
-
213
- ### 🧠 **Complex Problem Solving** - `qwen/qwen3-30b-a3b-2507`
214
- - **Performance**: Slower but significantly more capable reasoning
215
- - **Context Window**: 131k tokens with KV quantisation + Flash Attention
216
- - **Best for**: Architecture decisions, complex debugging, system design
217
- - **When to use**: Multi-step problems requiring deep analysis
218
-
219
- ## πŸš€ **CLI Commands**
220
-
221
- ### **Interactive Mode**
222
39
  ```bash
223
- # Launch FSS Link interactive shell
40
+ # Interactive mode
224
41
  fss-link
225
42
 
226
- # Launch with specific model
227
- fss-link --model qwen/qwen3-4b-2507
43
+ # One-shot prompt
44
+ fss-link -p "refactor the error handling in src/api.ts"
228
45
 
229
- # Launch with RAG index (planned feature)
230
- fss-link --rag ./project-index
231
- ```
232
-
233
- ### **Single-Shot Execution**
234
- ```bash
235
- # Execute prompt and exit
236
- fss-link run "Analyse this codebase structure"
46
+ # Specify provider and model
47
+ fss-link --provider lm-studio --model qwen3-coder:latest
48
+ fss-link --provider openai-api-key --model gpt-4o -p "review this PR"
237
49
 
238
- # With specific model
239
- fss-link run "Review security patterns" --model qwen/qwen3-30b-a3b-2507
240
-
241
- # With RAG context (planned feature)
242
- fss-link run "Find authentication bugs" --rag .
50
+ # Non-interactive with auto-approval
51
+ fss-link -p "fix the failing tests" --approval-mode yolo
243
52
  ```
244
53
 
245
- ### **Multi-Agent Workflows** (Planned Feature)
246
- ```bash
247
- # Launch multiple agents with template (planned feature)
248
- fss-link spawn --count 8 --template ./templates/build-test.yml
54
+ ### Providers
249
55
 
250
- # Parallel code review (planned feature)
251
- fss-link spawn --count 4 --template ./templates/code-review.yml --files src/
56
+ | Provider | Flag | Notes |
57
+ |---|---|---|
58
+ | LM Studio | `--provider lm-studio` | Local, port 1234 |
59
+ | vLLM / OpenAI-compatible | `--provider ollama` | Local or network |
60
+ | OpenAI | `--provider openai-api-key` | Requires `OPENAI_API_KEY` |
61
+ | Gemini | `--provider gemini-api-key` | Requires `GEMINI_API_KEY` |
62
+ | BobAI Proxy | `--provider bob-ai` | Custom proxy endpoint |
63
+ | Vertex AI | `--provider vertex-ai` | Google Cloud |
252
64
 
253
- # Load-balanced task processing (planned feature)
254
- fss-link spawn --count 6 --template ./templates/regression-test.yml
255
- ```
65
+ Model and provider settings persist to a local SQLite database. Once set, you don't need to specify them again.
256
66
 
257
- ### **RAG Operations** (Planned Feature)
258
- ```bash
259
- # Index current directory (planned feature)
260
- fss-link rag index .
67
+ ### Configuration hierarchy
261
68
 
262
- # Index with specific extensions (planned feature)
263
- fss-link rag index . --extensions py,js,md
69
+ 1. CLI flags (`--provider`, `--model`) β€” highest priority
70
+ 2. Database β€” persistent settings from previous sessions
71
+ 3. Environment variables β€” traditional fallback
264
72
 
265
- # Query with filters (planned feature)
266
- fss-link rag query "authentication logic" --topk 5
73
+ ## Project structure
267
74
 
268
- # Cross-reference search (planned feature)
269
- fss-link rag query "error handling patterns" --files py,js --recent
270
75
  ```
271
-
272
- ## πŸ“¦ **Installation**
273
-
274
- ### **Prerequisites**
275
- - Node.js 20+
276
- - LM Studio or Ollama (recommended for local models)
277
-
278
- ### **Quick Install**
279
- ```bash
280
- # Install from npm (Published v1.0.13)
281
- npm install -g fss-link
282
-
283
- # Or clone from source for development
284
- git clone http://gitea.internal.bobai.com.au:3000/foxadmin/fss-link.git
285
- cd fss-link
286
- npm install && npm run build && npm link
287
-
288
- # Verify installation
289
- fss-link --version # Should show v1.0.54
76
+ packages/
77
+ cli/ # CLI entry point, config, model management
78
+ core/ # Tools, services, content generation, utilities
79
+ fss-tools/
80
+ webscraper/ # Python-based web scraper with search integration
81
+ scripts/ # Build and utility scripts
82
+ docs/ # Published documentation
83
+ fss-docs/ # Internal development reference
290
84
  ```
291
85
 
292
- ## βš™οΈ **Configuration**
86
+ ## Building from source
293
87
 
294
- ### **Model Profiles**
295
88
  ```bash
296
- # List available profiles
297
- fss-link profiles list
298
-
299
- # Create new profile
300
- fss-link profiles add local-fast --model qwen/qwen3-4b-2507 --provider lm-studio
89
+ # Bundle (esbuild, bundles directly from TS source)
90
+ npm run bundle
301
91
 
302
- # Set default profile
303
- fss-link profiles default local-fast
92
+ # Install globally
93
+ sudo npm install -g .
304
94
  ```
305
95
 
306
- ### **Core Providers**
307
- - **Qwen OAuth** - 2000 requests/day free tier
308
- - **OpenAI Compatible** - OpenRouter, custom endpoints, local APIs
309
- - **Local Models** - LM Studio/Ollama priority for privacy and speed
310
-
311
- ## πŸ› οΈ **Database System Status**
96
+ esbuild bundles directly from TypeScript source into `bundle/fss-link.js`. Do not run bare `tsc` β€” see issue #64.
312
97
 
313
- βœ… **PRODUCTION READY**: Async locking system implemented and verified
314
- βœ… **Statement Closed Errors**: **ELIMINATED** via comprehensive async locking
315
- βœ… **44/44 Critical Tests**: All async locking tests passing
316
- βœ… **Auth System**: Race conditions eliminated, reliable model switching
317
- βœ… **Production Validation**: Complete - zero database errors under load
98
+ ## Current version
318
99
 
319
- **Implementation Complete**: See `fss-docs/DATABASE-ASYNC-LOCKING-PLAN.md` for full details.
100
+ v1.6.12 β€” see [CHANGELOG.md](./CHANGELOG.md) for history.
320
101
 
321
- ## πŸ”§ **Development Philosophy**
322
-
323
- ### **Fresh Fork Strategy**
324
- FSS Link builds on FSS Link v0.0.10+ using a clean fork approach:
325
-
326
- 1. **Start Clean**: Fork latest upstream for stable foundation
327
- 2. **TypeScript Native**: Build tools in TypeScript for seamless integration
328
- 3. **Selective Enhancement**: Add value without complexity explosion
329
- 4. **Professional Focus**: Target professional development workflows
330
-
331
- ### **Tool Integration Principles**
332
- - **No Python Dependencies**: Everything builds with npm
333
- - **Portable by Design**: Works anywhere Node.js runs
334
- - **Performance First**: Local models, fast feedback, efficient workflows
335
- - **Professional Quality**: Battle-tested, reliable, focused on core needs
336
-
337
- ## 🎨 **Brand & Visual Identity**
338
-
339
- - **Colour**: Emerald `#10B981` (linking/connection theme)
340
- - **Background**: Slate `#0F172A`
341
- - **Accent**: Green headers, dim slate separators
342
- - **Icon**: Chain-link with spark (πŸ”—βš‘)
343
- - **Tagline**: "Spin up links. Get work done."
344
-
345
- ## πŸ“„ **License**
102
+ ## License
346
103
 
347
104
  [Apache 2.0](./LICENSE)
348
105
 
349
- ## 🌟 **Acknowledgments**
350
-
351
- FSS Link builds on [QwenLM/fss-link](https://github.com/QwenLM/fss-link), which itself builds upon [Google Gemini CLI](https://github.com/google-gemini/gemini-cli). We acknowledge and appreciate the excellent work of both teams.
352
-
353
- ---
354
-
355
- <div align="center">
356
-
357
- **FSS Link** - *Portable, scriptable, single-instance AI agent*
358
-
359
- [Documentation](./FSS-LINK-IMPLEMENTATION-GUIDE.md) β€’ [Examples](./examples/)
106
+ ## Acknowledgments
360
107
 
361
- </div>
108
+ FSS Link is a hard fork of [QwenCode](https://github.com/QwenLM/qwen-code), which builds on [Google Gemini CLI](https://github.com/google-gemini/gemini-cli).