fss-link 1.5.7 → 1.6.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.
Files changed (40) hide show
  1. package/README.md +1 -1
  2. package/bundle/fss-link.js +4785 -3183
  3. package/package.json +4 -1
  4. package/scripts/analyze-session-logs.sh +279 -0
  5. package/scripts/build.js +55 -0
  6. package/scripts/build_package.js +37 -0
  7. package/scripts/build_sandbox.js +195 -0
  8. package/scripts/build_vscode_companion.js +30 -0
  9. package/scripts/check-build-status.js +148 -0
  10. package/scripts/check-publish.js +101 -0
  11. package/scripts/clean.js +55 -0
  12. package/scripts/copy_bundle_assets.js +40 -0
  13. package/scripts/copy_files.js +56 -0
  14. package/scripts/create_alias.sh +39 -0
  15. package/scripts/emergency-kill-all-tests.sh +95 -0
  16. package/scripts/emergency-kill-vitest.sh +95 -0
  17. package/scripts/extract-session-logs.sh +202 -0
  18. package/scripts/generate-git-commit-info.js +71 -0
  19. package/scripts/get-previous-tag.js +213 -0
  20. package/scripts/get-release-version.js +119 -0
  21. package/scripts/index-session-logs.sh +173 -0
  22. package/scripts/install-linux.sh +294 -0
  23. package/scripts/install-macos.sh +343 -0
  24. package/scripts/install-windows.ps1 +427 -0
  25. package/scripts/local_telemetry.js +219 -0
  26. package/scripts/memory-monitor.sh +165 -0
  27. package/scripts/postinstall-message.js +31 -0
  28. package/scripts/prepare-package.js +51 -0
  29. package/scripts/process-session-log.py +302 -0
  30. package/scripts/quick-install.sh +195 -0
  31. package/scripts/sandbox_command.js +126 -0
  32. package/scripts/start.js +76 -0
  33. package/scripts/telemetry.js +85 -0
  34. package/scripts/telemetry_gcp.js +188 -0
  35. package/scripts/telemetry_utils.js +421 -0
  36. package/scripts/test-windows-paths.js +51 -0
  37. package/scripts/tests/get-release-version.test.js +110 -0
  38. package/scripts/tests/test-setup.ts +12 -0
  39. package/scripts/tests/vitest.config.ts +20 -0
  40. package/scripts/version.js +83 -0
@@ -0,0 +1,173 @@
1
+ #!/bin/bash
2
+ # FSS Link Session Log RAG Indexer
3
+ # Indexes processed session logs with FSS-RAG for powerful searching
4
+
5
+ set -euo pipefail
6
+
7
+ # Configuration
8
+ PROCESSED_DIR="/MASTERFOLDER/Projects/fss-link/fss-live-testing/session-logs/processed"
9
+ COLLECTION_NAME="fss-link-sessions"
10
+
11
+ # Colors
12
+ RED='\033[0;31m'
13
+ GREEN='\033[0;32m'
14
+ YELLOW='\033[1;33m'
15
+ BLUE='\033[0;34m'
16
+ NC='\033[0m'
17
+
18
+ usage() {
19
+ cat << EOF
20
+ Usage: $0 [OPTIONS]
21
+
22
+ Index FSS Link session logs with RAG for semantic searching.
23
+
24
+ OPTIONS:
25
+ -r, --reindex Recreate index from scratch
26
+ -u, --update Add new sessions to existing index
27
+ -s, --status Show index status
28
+ -h, --help Show this help message
29
+
30
+ EXAMPLES:
31
+ $0 --reindex # Create fresh index of all sessions
32
+ $0 --update # Add new sessions to index
33
+ $0 --status # Check index status
34
+
35
+ After indexing, search with:
36
+ rag ${COLLECTION_NAME} "your query"
37
+ rag-all "your query" # Search all collections
38
+
39
+ EOF
40
+ exit 1
41
+ }
42
+
43
+ check_rag() {
44
+ if ! command -v rag-index &> /dev/null; then
45
+ echo -e "${RED}Error: rag-index command not found${NC}"
46
+ echo "FSS-RAG system must be installed and accessible"
47
+ exit 1
48
+ fi
49
+ }
50
+
51
+ show_status() {
52
+ echo -e "${BLUE}=== FSS Link Sessions Index Status ===${NC}\n"
53
+
54
+ # Check if collection exists
55
+ if rag-index list | grep -q "${COLLECTION_NAME}"; then
56
+ echo -e "${GREEN}✓${NC} Collection '${COLLECTION_NAME}' exists"
57
+
58
+ # Get collection details
59
+ rag-index status "${COLLECTION_NAME}" 2>/dev/null || echo " (Status unavailable)"
60
+ else
61
+ echo -e "${YELLOW}○${NC} Collection '${COLLECTION_NAME}' not yet created"
62
+ echo ""
63
+ echo "Run: $0 --reindex to create index"
64
+ fi
65
+
66
+ echo ""
67
+
68
+ # Count processed sessions
69
+ if [[ -d "${PROCESSED_DIR}" ]]; then
70
+ session_count=$(find "${PROCESSED_DIR}" -name "*.md" -type f | wc -l)
71
+ echo "Processed sessions available: ${session_count}"
72
+ else
73
+ echo -e "${RED}No processed sessions directory found${NC}"
74
+ fi
75
+ }
76
+
77
+ reindex_all() {
78
+ echo -e "${BLUE}=== Reindexing FSS Link Sessions ===${NC}\n"
79
+
80
+ if [[ ! -d "${PROCESSED_DIR}" ]]; then
81
+ echo -e "${RED}Error: Processed sessions directory not found: ${PROCESSED_DIR}${NC}"
82
+ exit 1
83
+ fi
84
+
85
+ # Count sessions
86
+ session_count=$(find "${PROCESSED_DIR}" -name "*.md" -type f | wc -l)
87
+
88
+ if [[ ${session_count} -eq 0 ]]; then
89
+ echo -e "${YELLOW}No processed sessions found to index${NC}"
90
+ echo "Run extract-session-logs.sh first to process session logs"
91
+ exit 1
92
+ fi
93
+
94
+ echo "Found ${session_count} processed sessions"
95
+ echo ""
96
+
97
+ # Check if collection exists
98
+ if rag-index list | grep -q "${COLLECTION_NAME}"; then
99
+ echo -e "${YELLOW}Warning: Collection '${COLLECTION_NAME}' already exists${NC}"
100
+ echo -n "Delete and recreate? (y/N): "
101
+ read -r confirm
102
+ if [[ ! "${confirm}" =~ ^[Yy]$ ]]; then
103
+ echo "Cancelled"
104
+ exit 0
105
+ fi
106
+ echo ""
107
+ fi
108
+
109
+ # Create index
110
+ echo -e "${BLUE}Creating RAG index...${NC}"
111
+ echo ""
112
+
113
+ cd "${PROCESSED_DIR}" || exit 1
114
+
115
+ # Run rag-index with confirmation flag for non-interactive use
116
+ if rag-index create . --confirm 2>&1; then
117
+ echo ""
118
+ echo -e "${GREEN}✓${NC} Successfully indexed ${session_count} sessions"
119
+ echo ""
120
+ echo -e "${YELLOW}Next steps:${NC}"
121
+ echo " 1. Search sessions: rag ${COLLECTION_NAME} 'your query'"
122
+ echo " 2. Check status: $0 --status"
123
+ echo " 3. Analyze: analyze-session-logs.sh stats"
124
+ else
125
+ echo ""
126
+ echo -e "${RED}✗${NC} Indexing failed"
127
+ exit 1
128
+ fi
129
+ }
130
+
131
+ update_index() {
132
+ echo -e "${BLUE}=== Updating FSS Link Sessions Index ===${NC}\n"
133
+
134
+ # Check if collection exists
135
+ if ! rag-index list | grep -q "${COLLECTION_NAME}"; then
136
+ echo -e "${YELLOW}Collection '${COLLECTION_NAME}' doesn't exist yet${NC}"
137
+ echo "Run: $0 --reindex to create initial index"
138
+ exit 1
139
+ fi
140
+
141
+ echo "This feature requires manual re-indexing currently"
142
+ echo "Run: $0 --reindex to recreate the entire index"
143
+ }
144
+
145
+ # Main execution
146
+ main() {
147
+ check_rag
148
+
149
+ if [[ $# -eq 0 ]]; then
150
+ usage
151
+ fi
152
+
153
+ case "$1" in
154
+ -r|--reindex)
155
+ reindex_all
156
+ ;;
157
+ -u|--update)
158
+ update_index
159
+ ;;
160
+ -s|--status)
161
+ show_status
162
+ ;;
163
+ -h|--help)
164
+ usage
165
+ ;;
166
+ *)
167
+ echo -e "${RED}Unknown option: $1${NC}"
168
+ usage
169
+ ;;
170
+ esac
171
+ }
172
+
173
+ main "$@"
@@ -0,0 +1,294 @@
1
+ #!/bin/bash
2
+
3
+ # FSS Link Linux Installation Script
4
+ # Handles Ubuntu, Debian, CentOS, Fedora, and other Linux distributions
5
+
6
+ set -e # Exit on any error
7
+
8
+ # Colors for output
9
+ RED='\033[0;31m'
10
+ GREEN='\033[0;32m'
11
+ YELLOW='\033[1;33m'
12
+ BLUE='\033[0;34m'
13
+ NC='\033[0m' # No Color
14
+
15
+ # Logging functions
16
+ log_info() {
17
+ echo -e "${BLUE}[INFO]${NC} $1"
18
+ }
19
+
20
+ log_success() {
21
+ echo -e "${GREEN}[SUCCESS]${NC} $1"
22
+ }
23
+
24
+ log_warning() {
25
+ echo -e "${YELLOW}[WARNING]${NC} $1"
26
+ }
27
+
28
+ log_error() {
29
+ echo -e "${RED}[ERROR]${NC} $1"
30
+ }
31
+
32
+ # Check if running as root
33
+ check_root() {
34
+ if [[ $EUID -eq 0 ]]; then
35
+ log_warning "Running as root. FSS Link will be installed globally."
36
+ fi
37
+ }
38
+
39
+ # Detect Linux distribution
40
+ detect_distro() {
41
+ if [ -f /etc/os-release ]; then
42
+ . /etc/os-release
43
+ DISTRO=$ID
44
+ VERSION=$VERSION_ID
45
+ else
46
+ log_error "Cannot detect Linux distribution"
47
+ exit 1
48
+ fi
49
+
50
+ log_info "Detected: $PRETTY_NAME"
51
+ }
52
+
53
+ # Check Node.js version
54
+ check_nodejs() {
55
+ log_info "Checking Node.js installation..."
56
+
57
+ if command -v node &> /dev/null; then
58
+ NODE_VERSION=$(node --version | sed 's/v//')
59
+ MAJOR_VERSION=$(echo $NODE_VERSION | cut -d. -f1)
60
+
61
+ if [ "$MAJOR_VERSION" -ge "20" ]; then
62
+ log_success "Node.js $NODE_VERSION detected (>= 20.0.0 required)"
63
+ return 0
64
+ else
65
+ log_warning "Node.js $NODE_VERSION detected, but 20.0.0+ required"
66
+ return 1
67
+ fi
68
+ else
69
+ log_warning "Node.js not found"
70
+ return 1
71
+ fi
72
+ }
73
+
74
+ # Install Node.js based on distribution
75
+ install_nodejs() {
76
+ log_info "Installing Node.js 20..."
77
+
78
+ case $DISTRO in
79
+ ubuntu|debian)
80
+ # NodeSource repository method
81
+ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
82
+ sudo apt-get install -y nodejs
83
+ ;;
84
+ centos|rhel|fedora)
85
+ # NodeSource repository method
86
+ curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
87
+ sudo yum install -y nodejs npm
88
+ ;;
89
+ arch)
90
+ sudo pacman -S nodejs npm
91
+ ;;
92
+ opensuse*)
93
+ sudo zypper install nodejs20 npm20
94
+ ;;
95
+ *)
96
+ log_error "Unsupported distribution for automatic Node.js installation: $DISTRO"
97
+ log_info "Please install Node.js 20+ manually from https://nodejs.org/"
98
+ exit 1
99
+ ;;
100
+ esac
101
+ }
102
+
103
+ # Install system dependencies
104
+ install_dependencies() {
105
+ log_info "Installing system dependencies..."
106
+
107
+ case $DISTRO in
108
+ ubuntu|debian)
109
+ sudo apt-get update
110
+ sudo apt-get install -y build-essential python3 python3-pip libsqlite3-dev curl git
111
+ ;;
112
+ centos|rhel)
113
+ if command -v dnf &> /dev/null; then
114
+ sudo dnf groupinstall -y "Development Tools"
115
+ sudo dnf install -y python3 python3-pip sqlite-devel curl git
116
+ else
117
+ sudo yum groupinstall -y "Development Tools"
118
+ sudo yum install -y python3 python3-pip sqlite-devel curl git
119
+ fi
120
+ ;;
121
+ fedora)
122
+ sudo dnf groupinstall -y "Development Tools"
123
+ sudo dnf install -y python3 python3-pip sqlite-devel curl git
124
+ ;;
125
+ arch)
126
+ sudo pacman -S base-devel python python-pip sqlite curl git
127
+ ;;
128
+ opensuse*)
129
+ sudo zypper install -y -t pattern devel_basis
130
+ sudo zypper install -y python3 python3-pip sqlite3-devel curl git
131
+ ;;
132
+ *)
133
+ log_warning "Unknown distribution. Please ensure you have:"
134
+ log_warning "- Build tools (gcc, make)"
135
+ log_warning "- Python 3"
136
+ log_warning "- SQLite development headers"
137
+ log_warning "- curl and git"
138
+ ;;
139
+ esac
140
+ }
141
+
142
+ # Install FSS Link
143
+ install_fss_link() {
144
+ log_info "Installing FSS Link..."
145
+
146
+ # Try global installation first
147
+ if npm install -g fss-link; then
148
+ log_success "FSS Link installed globally"
149
+ return 0
150
+ else
151
+ log_warning "Global installation failed, trying local installation"
152
+
153
+ # Create local npm directory
154
+ mkdir -p ~/.npm-global
155
+ npm config set prefix ~/.npm-global
156
+
157
+ # Add to PATH if not already there
158
+ if [[ ":$PATH:" != *":$HOME/.npm-global/bin:"* ]]; then
159
+ echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
160
+ echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc 2>/dev/null || true
161
+ export PATH=~/.npm-global/bin:$PATH
162
+ fi
163
+
164
+ # Install locally
165
+ npm install -g fss-link
166
+ log_success "FSS Link installed locally"
167
+ fi
168
+ }
169
+
170
+ # Verify installation
171
+ verify_installation() {
172
+ log_info "Verifying FSS Link installation..."
173
+
174
+ # Source shell config to get new PATH
175
+ export PATH=~/.npm-global/bin:$PATH
176
+
177
+ if command -v fss-link &> /dev/null; then
178
+ VERSION=$(fss-link --version 2>/dev/null || echo "unknown")
179
+ log_success "FSS Link installed successfully: $VERSION"
180
+
181
+ # Run basic tests
182
+ log_info "Running functionality tests..."
183
+ if fss-link --help > /dev/null 2>&1; then
184
+ log_success "✅ Help command working"
185
+ else
186
+ log_warning "⚠️ Help command failed"
187
+ fi
188
+
189
+ if fss-link test-parsers > /dev/null 2>&1; then
190
+ log_success "✅ Document parsers working"
191
+ else
192
+ log_warning "⚠️ Document parsers test failed"
193
+ fi
194
+
195
+ return 0
196
+ else
197
+ log_error "FSS Link installation verification failed"
198
+ log_info "Try running: source ~/.bashrc && fss-link --version"
199
+ return 1
200
+ fi
201
+ }
202
+
203
+ # Print usage information
204
+ print_usage() {
205
+ cat << EOF
206
+
207
+ 🚀 FSS Link Installation Complete!
208
+
209
+ 📋 Quick Start:
210
+ fss-link --version # Check version
211
+ fss-link --help # Show help
212
+ fss-link test-parsers # Test document processing
213
+
214
+ 🔧 Configuration:
215
+ fss-link init # Initialize configuration
216
+ fss-link models setup # Set up model profiles
217
+
218
+ 📚 Documentation:
219
+ https://github.com/FSSCoding/fss-link/blob/main/INSTALLATION.md
220
+ https://github.com/FSSCoding/fss-link/blob/main/fss-docs/README.md
221
+
222
+ 🎯 Example Usage:
223
+ fss-link -p "analyze this project"
224
+ fss-link --tools excel-parser -p "parse spreadsheet.xlsx"
225
+ fss-link --tools web-scraper -p "scrape https://example.com"
226
+
227
+ EOF
228
+ }
229
+
230
+ # Main installation flow
231
+ main() {
232
+ echo "🚀 FSS Link Linux Installation Script"
233
+ echo "======================================"
234
+
235
+ check_root
236
+ detect_distro
237
+
238
+ # Check/install Node.js
239
+ if ! check_nodejs; then
240
+ log_info "Installing Node.js..."
241
+ install_dependencies
242
+ install_nodejs
243
+
244
+ if ! check_nodejs; then
245
+ log_error "Node.js installation failed"
246
+ exit 1
247
+ fi
248
+ fi
249
+
250
+ # Install system dependencies
251
+ install_dependencies
252
+
253
+ # Install FSS Link
254
+ install_fss_link
255
+
256
+ # Verify installation
257
+ if verify_installation; then
258
+ print_usage
259
+ log_success "🎉 FSS Link installation successful!"
260
+ else
261
+ log_error "Installation verification failed"
262
+ log_info "Please check the installation manually or report issues at:"
263
+ log_info "https://github.com/FSSCoding/fss-link/issues"
264
+ exit 1
265
+ fi
266
+ }
267
+
268
+ # Handle script arguments
269
+ case "${1:-}" in
270
+ --help|-h)
271
+ echo "FSS Link Linux Installation Script"
272
+ echo ""
273
+ echo "Usage: $0 [options]"
274
+ echo ""
275
+ echo "Options:"
276
+ echo " --help, -h Show this help message"
277
+ echo " --version, -v Show script version"
278
+ echo ""
279
+ echo "This script will:"
280
+ echo "1. Detect your Linux distribution"
281
+ echo "2. Install Node.js 20+ if needed"
282
+ echo "3. Install build dependencies"
283
+ echo "4. Install FSS Link from npm"
284
+ echo "5. Verify the installation"
285
+ exit 0
286
+ ;;
287
+ --version|-v)
288
+ echo "FSS Link Linux Installation Script v1.0.0"
289
+ exit 0
290
+ ;;
291
+ *)
292
+ main "$@"
293
+ ;;
294
+ esac