Jobber/package.json
0x1355 4787f4d151
feat(ghostwriter): branching conversations with edit and per-message regenerate (#290)
Turn Ghostwriter's flat message list into a tree structure, enabling
Claude.ai/ChatGPT-style branching conversations.

**Data model**: Add `parentMessageId` and `activeChildId` to messages,
`activeRootMessageId` to threads. Migration backfills existing messages
into a linear chain and links regenerated messages as siblings.

**Backend**: Tree-walking queries (getActivePathFromRoot, getAncestorPath,
getSiblingsOf), rewritten history builder that follows the ancestor path,
new editMessage and switchBranch services, regenerate now works on any
assistant message (not just the latest).

**Frontend**: BranchNavigator component (← 2/3 → arrows), inline edit on
user messages, per-message regenerate on assistant messages, regenerate
button removed from composer (now per-message).

**Infra**: Pin Node 22 via Volta to prevent ABI mismatches with
better-sqlite3 across environments.
2026-03-19 11:25:00 +00:00

36 lines
1.2 KiB
JSON

{
"name": "job-ops",
"private": true,
"workspaces": [
"orchestrator",
"docs-site",
"extractors/*",
"shared"
],
"scripts": {
"test:all": "npm --workspace orchestrator run test:run",
"check:types:shared": "npm --workspace shared run check:types",
"check:types": "npm --workspace shared run check:types && npm --workspace orchestrator run check:types",
"check:types:ukvisajobs": "npm --workspace ukvisajobs-extractor run check:types",
"check:all": "./orchestrator/node_modules/.bin/biome ci .",
"format:all": "./orchestrator/node_modules/.bin/biome format . --write",
"check:types:gradcracker": "npm --workspace gradcracker-extractor run check:types",
"docs:dev": "npm --workspace docs-site run start",
"docs:build": "npm --workspace docs-site run build",
"check:docs": "npm --workspace docs-site run build",
"docs:serve": "npm --workspace docs-site run serve",
"docs:version": "npm --workspace docs-site run docs:version",
"release:set-version": "node ./scripts/set-orchestrator-version.mjs",
"knip": "knip"
},
"devDependencies": {
"@types/node": "^25.2.3",
"knip": "^5.83.1",
"tsx": "^4.19.2",
"typescript": "^5.9.3"
},
"volta": {
"node": "22.22.1"
}
}