Files
obelisk/app/package.json
T
tommy0103andClaude Opus 4.8 01a390fa10 refactor(app): migrate main + preload to TypeScript with typed seams (Phase 5d-3c-ii)
Convert the app's main and preload source from .js to .ts (git mv preserves
history), adding types where they carry value: the core-consumption seam
(BuildIndexOptions/BuildIndexResult, FileInfo), the indexer service/worker
factories, and the preload IPC bridge. Module-to-module specifiers use the
real .ts extension (mirroring scripts/, since Node type-stripping does not
rewrite .js->.ts); the worker's runtime path stays indexer-worker.js because
that is the built output.

Toolchain:
- Add app/tsconfig.json: strict but noImplicitAny:false (the app orchestrates
  the already-strict core; annotating every SQLite-handle helper is low-value
  churn) + allowImportingTsExtensions (safe under noEmit).
- Add @types/better-sqlite3 for the injected binding.
- electron.vite.config.ts inputs -> .ts; refresh the stale CommonJS comment.
- typecheck script runs root + app projects. Root tsconfig excludes the
  app-importing tests (app-*.test.mjs, recap-capture-query.test.mjs) so the
  lenient app files are not dragged into the strict root program; the app
  source is covered by app/tsconfig.json instead. See docs/adr/0005.

Verified: npm run typecheck (root + app) clean; suite 121/121; electron-vite
build emits all 6 main entries + preload with no .ts/node:sqlite residue in
the bundles.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-09 16:25:59 +08:00

74 lines
1.8 KiB
JSON

{
"name": "obelisk",
"version": "0.1.0",
"description": "Memory management for Obelisk — let Claude Code search its own memory",
"main": "out/main/index.js",
"scripts": {
"start": "electron-vite preview",
"dev": "electron-vite dev",
"build": "electron-vite build && electron-builder",
"pack": "electron-vite build && electron-builder --dir",
"dist": "electron-vite build && electron-builder --mac --win --linux",
"dist:mac": "electron-vite build && electron-builder --mac",
"dist:win": "electron-vite build && electron-builder --win",
"dist:linux": "electron-vite build && electron-builder --linux"
},
"build": {
"appId": "com.obelisk.app",
"productName": "Obelisk",
"artifactName": "${productName}-${version}-${os}-${arch}.${ext}",
"directories": {
"output": "release"
},
"mac": {
"icon": "build/icon.icns",
"target": [
"dmg",
"zip"
],
"category": "public.app-category.developer-tools"
},
"win": {
"target": [
"nsis",
"portable"
]
},
"linux": {
"icon": "build/icon.png",
"target": [
"AppImage",
"deb"
],
"category": "Development"
},
"files": [
"out/**"
],
"asarUnpack": [
"node_modules/better-sqlite3/**/*"
],
"extraResources": [
{
"from": "../scripts/schema.sql",
"to": "scripts/schema.sql"
}
]
},
"dependencies": {
"better-sqlite3": "^11.0.0",
"chokidar": "^4.0.3"
},
"devDependencies": {
"@types/better-sqlite3": "^7.6.13",
"@vitejs/plugin-vue": "^5.0.0",
"electron": "^33.0.0",
"electron-builder": "^25.0.0",
"electron-vite": "^5.0.0",
"vite": "^6.0.0",
"vue": "^3.4.0",
"vue-router": "^4.3.0"
},
"type": "module"
}