alpha
Login
or
Join now
burrito.space
/
hezo
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
group conversations with models and local files
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
hezo
/
scripts
/
at
main
7 files
dietrich ayala
push-project: v1 SQLite → v2 Automerge via URL fragment
1mo ago
cbb3f995
gen-icons.mjs
push-project: v1 SQLite → v2 Automerge via URL fragment The v1 push-project pointed at a server endpoint that no longer exists. The v2 path can't send content to the server, but it can ship content to a logged-in browser via a URL fragment, same trust model as invite links: K_proj plaintext + Automerge doc bytes ride in `#import-project=`. The fragment never leaves the local browser, gets scrubbed on load, gets wrapped and POST'd to /api/projects after auth. - scripts/push-project.mjs: rewritten to build an Automerge doc from a local v1 SQLite (conversations + turns + text files; binary files skipped — v2 hasn't wired blob transport yet) and open the import URL. - src/main.tsx: handle `#import-project=` by stashing the raw payload in sessionStorage and scrubbing the hash, then mount. - src/App.tsx: after auth, consume the stash. Derive wrap key from PRF, wrap K_proj, POST /api/projects to mint the row, persist the Automerge doc bytes under the server-assigned project id. Cleared on success or alert-and-clear on failure.
1 month ago
harness.mjs
Rename Centrosome → Hezo - Brand strings, env vars (CENTROSOME_DATA → HEZO_DATA, CENTROSOME_URL → HEZO_URL) - IndexedDB name (existing browser keys will need re-entry on first login) - import-keychain / smoke-multi-user keep 'centrosome'/'multiclaude' as Keychain-service fallbacks for backward compat - push-project default URL → https://hezo.app
1 month ago
import-icloud.ts
Rename Centrosome → Hezo - Brand strings, env vars (CENTROSOME_DATA → HEZO_DATA, CENTROSOME_URL → HEZO_URL) - IndexedDB name (existing browser keys will need re-entry on first login) - import-keychain / smoke-multi-user keep 'centrosome'/'multiclaude' as Keychain-service fallbacks for backward compat - push-project default URL → https://hezo.app
1 month ago
import-keychain.mjs
Revive #import-keys URL flow for v2 Pre-stage provider keys in IndexedDB so the user can hit the page, do Touch ID, and skip the Settings step. The import-keychain script builds a URL of the form: https://hezo.app/?email=you@example.com#import-keys=<base64url-json> - src/main.tsx: handles `#import-keys=` on load before mounting App. Decodes a partial ProviderKeys, merges into the existing keystore, scrubs the fragment. (Different name from v1's `#import-key=` since the payload shape changed: v1 stored a single email-keyed sk-ant string; v2 stores per-provider keys in one record.) - src/App.tsx: AuthForm prefills the email field from `?email=`. - scripts/import-keychain.mjs: rewritten for v2. Pulls the Anthropic key from macOS Keychain (services `hezo`, `centrosome`, `multiclaude`, in that order), constructs the URL, opens it. KEYCHAIN_SERVICE env can override the search order.
1 month ago
push-project.mjs
push-project: v1 SQLite → v2 Automerge via URL fragment The v1 push-project pointed at a server endpoint that no longer exists. The v2 path can't send content to the server, but it can ship content to a logged-in browser via a URL fragment, same trust model as invite links: K_proj plaintext + Automerge doc bytes ride in `#import-project=`. The fragment never leaves the local browser, gets scrubbed on load, gets wrapped and POST'd to /api/projects after auth. - scripts/push-project.mjs: rewritten to build an Automerge doc from a local v1 SQLite (conversations + turns + text files; binary files skipped — v2 hasn't wired blob transport yet) and open the import URL. - src/main.tsx: handle `#import-project=` by stashing the raw payload in sessionStorage and scrubbing the hash, then mount. - src/App.tsx: after auth, consume the stash. Derive wrap key from PRF, wrap K_proj, POST /api/projects to mint the row, persist the Automerge doc bytes under the server-assigned project id. Cleared on success or alert-and-clear on failure.
1 month ago
smoke-multi-user.mjs
Rename Centrosome → Hezo - Brand strings, env vars (CENTROSOME_DATA → HEZO_DATA, CENTROSOME_URL → HEZO_URL) - IndexedDB name (existing browser keys will need re-entry on first login) - import-keychain / smoke-multi-user keep 'centrosome'/'multiclaude' as Keychain-service fallbacks for backward compat - push-project default URL → https://hezo.app
1 month ago
smoke.mjs
Smoke test + IndexedDB unify (v2 end-to-end smoke is green) scripts/smoke.mjs drives the Phase 1-4 stack end-to-end: - kills + respawns dev (`npm run dev`) against a fresh global.sqlite - pulls the Anthropic key from macOS Keychain (services "hezo", "centrosome", or "multiclaude") or $ANTHROPIC_KEY - launches Chromium via Playwright with a CTAP2.1 virtual authenticator that supports the PRF extension - registers smoke@hezo.local with a passkey - saves the key via the Settings modal - creates a project, adds @claude (Anthropic claude-sonnet-4-6), opens a conversation, sends a marker prompt, waits for the bot reply Fix during bring-up: persistence.ts and keystore.ts each opened the 'hezo' IndexedDB with a different version (1 vs 2). Whichever opened first won; the other's `indexedDB.open` failed with "requested version (1) is less than existing version (2)". - src/lib/idb.ts (new): single openDb() + withStore() pair shared by both modules. One DB, two object stores ('crdt' and 'providerKeys'). - src/lib/persistence.ts + src/lib/keystore.ts: switched to idb.ts. End-to-end: registration → key save → project create → bot add → message send → streamed Claude reply lands in the CRDT in ~1.5s. (Smoke test commit added at the same time so the fix can be re-verified later by running `npm run smoke`.)
1 month ago