Panduan memulai

Panduan memulai

Prasyarat

KebutuhanVersiCatatan
Node.js>= 22.xDiperlukan untuk WXT, Vitest, dan tooling lokal
npm>= 10.xPackage manager utama dalam repositori ini
Chrome atau FirefoxTerbaruUntuk memuat ekstensi secara unpacked
Akun Sentra DashboardDiperlukan untuk autentikasi, polling bridge, dan sinkronisasi pasien

Instalasi

Clone repositori dan pasang dependensi:

npm install
cp .env.example .env.local

Sunting .env.local dengan konfigurasi Anda. Setidaknya isi:

VITE_SENTRA_API_URL=https://api.sentra.local
VITE_SENTRA_API_KEY=sk_dev_your_api_key_here
VITE_FACILITY_ID=PUSKESMAS_BALOWERTI

Pengembangan

Jalankan server pengembangan WXT:

# Chrome (hot reload)
npm run dev

# Firefox
npm run dev:firefox

Muat ekstensi secara unpacked:

  • Chrome: buka chrome://extensions → aktifkan Developer Mode → Load Unpacked → pilih .output/chrome-mv3-dev/
  • Firefox: buka about:debugging → Load Temporary Add-on → pilih .output/firefox-mv2-dev/manifest.json

Build produksi

# Chrome MV3
npm run build

# Firefox MV2
npm run build:firefox

# Buat ZIP untuk Chrome Web Store
npm run zip

# Buat ZIP untuk Firefox Add-ons
npm run zip:firefox

Menjalankan pengujian

# Unit dan integration tests (Vitest)
npm run test

# Bridge API contract tests
npm run test:contract

# E2E tests (Playwright)
npm run test:e2e

# Type checking
npm run typecheck

# Linting
npm run lint

# Full quality gate
npm run quality

Perintah proyek

PerintahDeskripsi
npm run devJalankan server pengembangan WXT (Chrome)
npm run dev:firefoxJalankan server pengembangan WXT (Firefox)
npm run buildBuild produksi (Chrome)
npm run build:firefoxBuild produksi (Firefox)
npm run zipBuat ZIP untuk Chrome Web Store
npm run zip:firefoxBuat ZIP untuk Firefox Add-ons
npm run testJalankan semua test Vitest
npm run test:contractBridge client contract tests
npm run test:e2ePlaywright E2E tests
npm run test:uiVitest dengan UI
npm run typecheckPemeriksaan TypeScript
npm run lintESLint
npm run lint:fixESLint dengan auto-fix
npm run formatPrettier format
npm run qualitytypecheck + lint + test
npm run docs:generateHasilkan TypeDoc
npm run docs:autoOtomatis hasilkan komentar TSDoc
npm run docs:allPipeline dokumentasi penuh
npm run commitAuto-commit pintar
npm run commit:pushAuto-commit dan push

Variabel lingkungan

Variabel lingkungan utama (lihat .env.example untuk daftar lengkap):

VariabelDefaultDeskripsi
VITE_SENTRA_API_URLURL basis Sentra Dashboard API
VITE_SENTRA_API_KEYAPI key untuk dashboard bridge
VITE_FACILITY_IDIdentifier fasilitas puskesmas
VITE_USE_MOCKtrueGunakan mock data alih-alih API live
VITE_FEATURE_DIAGNOSIS_AItrueAktifkan saran diagnosis AI
VITE_FEATURE_PRESCRIPTION_AItrueAktifkan prescription AI
VITE_FEATURE_DDI_CHECKtrueAktifkan pemeriksaan DDI
VITE_FEATURE_PEDIATRIC_DOSEtrueAktifkan dosis pediatric
SENTRA_OPENAI_API_KEYDeepSeek/OpenAI API key untuk reranking LLM
SENTRA_OPENAI_MODELgpt-4o-miniNama model LLM
SENTRA_OPENAI_TIMEOUT_MS30000Timeout LLM
SENTRA_DISABLE_TRAJECTORY_BRIDGEfalseNonaktifkan SYMPHONY safety bridge
SENTRA_DISABLE_THERAPYfalseNonaktifkan modul terapi
SENTRA_DIAGNOSIS_V2_SHADOWfalseAktifkan V2 shadow mode

Pemecahan masalah

MasalahSolusi
Ekstensi tidak termuatAktifkan Developer Mode di chrome://extensions/, muat unpacked dari .output/chrome-mv3-dev/
npm install gagalVerifikasi Node.js >=22 dan npm >=10 dengan node -v dan npm -v
Error autentikasi dashboardPeriksa URL dasar Crew/Dashboard di Settings, sesi magic-link yang valid
Sidepanel menampilkan "Login required"Periksa URL dasar Dashboard di Settings
Formulir tidak auto-fillDAS mungkin perlu re-scan — klik Inisialisasi di header
Error batas kata saat submitBatas kolom ePuskesmas adalah 225 kata — Sentra memotong keluhan otomatis di 220 kata
Error TypeScriptJalankan npm run typecheck untuk keluaran lengkap
LLM tidak berfungsiPeriksa SENTRA_OPENAI_API_KEY sudah di-set; fallback ke mode KB-only jika kosong
Alert SYMPHONY tidak munculPastikan SENTRA_DISABLE_TRAJECTORY_BRIDGE=false; pastikan analisis trajectory memiliki severity high/critical

Halaman terkait