🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@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

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts