New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

@vox-ai-app/indexing

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vox-ai-app/indexing

Local file indexing, full-text search, and document parsing for Vox

latest
Source
npmnpm
Version
1.0.2
Version published
Maintainers
1
Created
Source

@vox-ai-app/indexing

Local file indexing, full-text search, and document parsing for Vox. Runs in a separate Electron utility process to keep the main process responsive.

Install

npm install @vox-ai-app/indexing

Peer dependency: electron >= 28

Requirements

  • VOX_USER_DATA_PATH — writable directory, database stored as knowledge-index.db
  • VOX_APP_PATH — app path, used to locate the parser worker
  • Build config must emit two separate entry points (see Build section)

Usage

import {
  bootIndexingRuntime,
  shutdownIndexingRuntime,
  addIndexFolder,
  removeIndexFolder,
  searchIndexedContextForTool,
  getIndexingStatus,
  setLogger,
  setSentryCapture
} from '@vox-ai-app/indexing'

setLogger(logger)
setSentryCapture(captureException)

await bootIndexingRuntime()

await addIndexFolder('/Users/me/Documents')

const results = await searchIndexedContextForTool('query text', { limit: 5 })

await shutdownIndexingRuntime()

API

Runtime lifecycle

bootIndexingRuntime() // start the indexing utility process
shutdownIndexingRuntime() // graceful shutdown
rebuildIndexing() // wipe and re-index all folders
resetIndexingState() // clear state without reindexing

Folder management

addIndexFolder(path) // add a folder to the index
removeIndexFolder(path) // remove a folder and its data
getTrackedIndexFolders() // list all tracked folders
pickIndexFolder() // open a native folder picker dialog

Query

searchIndexedContextForTool(query, opts) // full-text search
listIndexedFilesForTool(path, opts) // list files under a path
readIndexedFileForTool(path) // read a specific indexed file
getIndexedChildren(path) // explorer tree children
getIndexingStatus() // current status + progress

IPC registration

For Electron apps that expose indexing over IPC:

import { registerIndexingIpc } from '@vox-ai-app/indexing/ipc'

registerIndexingIpc()
// Registers: indexing:get-folders, indexing:add-folder, indexing:remove-folder,
//            indexing:rebuild, indexing:get-status, indexing:pick-folder,
//            indexing:get-indexed-children, indexing:reset-state

Process status subscription (advanced)

For apps that want push-based status updates from the utility process:

import { setOnStatusChange } from '@vox-ai-app/indexing/process'

setOnStatusChange((status) => {
  // status shape matches getIndexingStatus()
  // updates are coalesced (~100ms) to avoid noisy bursts
  console.log(status)
})

Supported file types

.pdf, .docx, .pptx, .xlsx, .odt, .odp, .ods, .rtf, and plain text files.

Build

Register two additional entry points in your Electron build config:

// electron.vite.config.js
export default {
  main: {
    build: {
      rollupOptions: {
        input: {
          index: 'src/main/index.js',
          'indexing.process': 'node_modules/@vox-ai-app/indexing/src/process/process.js',
          'indexing.parser.worker': 'node_modules/@vox-ai-app/indexing/src/parser/worker.js'
        }
      }
    }
  }
}

License

MIT

FAQs

Package last updated on 01 Apr 2026

Related posts