Files
cs249r_book/book/vscode-ext/package.json
Vijay Janapa Reddi c8dd1782d3 Math updates
2026-02-28 08:28:51 -05:00

277 lines
15 KiB
JSON

{
"name": "mlsysbook-workbench",
"displayName": "MLSysBook Workbench",
"description": "Build, debug, validate, and publish the ML Systems textbook",
"version": "0.1.0",
"publisher": "mlsysbook",
"icon": "resources/icon.png",
"engines": {
"vscode": "^1.85.0"
},
"categories": ["Other"],
"activationEvents": [
"onStartupFinished",
"workspaceContains:book/binder",
"onView:mlsysbook.build",
"onView:mlsysbook.debug",
"onView:mlsysbook.runs",
"onView:mlsysbook.navigator",
"onView:mlsysbook.precommit",
"onView:mlsysbook.maintenance",
"onView:mlsysbook.info",
"onView:mlsysbook.publish",
"onView:mlsysbook.config"
],
"main": "./out/extension.js",
"scripts": {
"vscode:prepublish": "npm run compile",
"compile": "tsc -p ./",
"watch": "tsc -watch -p ./",
"test:palette": "npm run compile && node ./scripts/verify-highlight-palette.js",
"test:ux-smoke": "python3 ./scripts/smoke_extension_ux.py"
},
"devDependencies": {
"@types/vscode": "^1.85.0",
"@types/node": "^20.0.0",
"typescript": "^5.3.0"
},
"contributes": {
"viewsContainers": {
"activitybar": [
{
"id": "mlsysbook",
"title": "MLSysBook",
"icon": "resources/icon.svg"
}
]
},
"views": {
"mlsysbook": [
{ "id": "mlsysbook.navigator", "name": "Chapter Navigator" },
{ "id": "mlsysbook.runs", "name": "Recent Runs" },
{ "id": "mlsysbook.build", "name": "Build" },
{ "id": "mlsysbook.debug", "name": "Debug" },
{ "id": "mlsysbook.precommit", "name": "Pre-commit / Validate / Cleanup" },
{ "id": "mlsysbook.publish", "name": "Publish" },
{ "id": "mlsysbook.info", "name": "Info & Stats" },
{ "id": "mlsysbook.maintenance", "name": "Maintenance" },
{ "id": "mlsysbook.config", "name": "Configuration" }
]
},
"snippets": [
{
"language": "markdown",
"path": "./snippets/qmd.code-snippets"
}
],
"commands": [
{ "command": "mlsysbook.buildChapterHtml", "title": "MLSysBook: Build Chapter (HTML)" },
{ "command": "mlsysbook.buildChapterPdf", "title": "MLSysBook: Build Chapter (PDF)" },
{ "command": "mlsysbook.buildChapterEpub", "title": "MLSysBook: Build Chapter (EPUB)" },
{ "command": "mlsysbook.previewChapter", "title": "MLSysBook: Preview Chapter" },
{ "command": "mlsysbook.buildVolumeHtml", "title": "MLSysBook: Build Full Volume (HTML)" },
{ "command": "mlsysbook.buildVolumePdf", "title": "MLSysBook: Build Full Volume (PDF)" },
{ "command": "mlsysbook.buildVolumeEpub", "title": "MLSysBook: Build Full Volume (EPUB)" },
{ "command": "mlsysbook.buildFullVolume", "title": "MLSysBook: Build Full Volume..." },
{ "command": "mlsysbook.buildSelectedChapters", "title": "MLSysBook: Build Chapters..." },
{ "command": "mlsysbook.resetQuartoConfig", "title": "Reset Quarto Config" },
{ "command": "mlsysbook.debugAllChapters", "title": "MLSysBook: Build All Chapters (Sequential)" },
{ "command": "mlsysbook.testAllChaptersParallel", "title": "MLSysBook: Build All Chapters (Parallel)" },
{ "command": "mlsysbook.cancelParallelSession", "title": "MLSysBook: Cancel Current Parallel Session" },
{ "command": "mlsysbook.rerunFailedParallel", "title": "MLSysBook: Rerun Failed Chapters" },
{ "command": "mlsysbook.quickBuildCurrentChapterPdf", "title": "MLSysBook: Quick Build Current Chapter (PDF)" },
{ "command": "mlsysbook.renameLabelReferences", "title": "MLSysBook: Rename Label and References" },
{ "command": "mlsysbook.addSectionIds", "title": "MLSysBook: Add Missing Section IDs" },
{ "command": "mlsysbook.verifySectionIds", "title": "MLSysBook: Verify Section IDs" },
{ "command": "mlsysbook.validateCrossReferences", "title": "MLSysBook: Validate Cross-References" },
{ "command": "mlsysbook.historyRerunSession", "title": "MLSysBook: Rerun Run Session" },
{ "command": "mlsysbook.historyRerunFailed", "title": "MLSysBook: Rerun Failed Chapters (Run Session)" },
{ "command": "mlsysbook.historyOpenOutput", "title": "MLSysBook: Open Run Output" },
{ "command": "mlsysbook.historyOpenFailedWorktree", "title": "MLSysBook: Open Failed Worktree" },
{ "command": "mlsysbook.historyOpenFailureLocation", "title": "MLSysBook: Open Failure Location" },
{ "command": "mlsysbook.precommitRunAll", "title": "MLSysBook: Run All Pre-commit Hooks" },
{ "command": "mlsysbook.precommitRunHook", "title": "MLSysBook: Run Pre-commit Hook" },
{ "command": "mlsysbook.precommitRunHookCurrentFile", "title": "MLSysBook: Run Pre-commit Hook (Current File)" },
{ "command": "mlsysbook.precommitRunFixersCurrentFile", "title": "MLSysBook: Run QMD Fixers (Current File)" },
{ "command": "mlsysbook.runAction", "title": "MLSysBook: Run Action" },
{ "command": "mlsysbook.cleanArtifacts", "title": "MLSysBook: Clean Build Artifacts" },
{ "command": "mlsysbook.doctor", "title": "MLSysBook: Doctor (Health Check)" },
{ "command": "mlsysbook.buildGlossary", "title": "MLSysBook: Build Global Glossary" },
{ "command": "mlsysbook.compressImages", "title": "MLSysBook: Compress Images" },
{ "command": "mlsysbook.repoHealth", "title": "MLSysBook: Repo Health Check" },
{ "command": "mlsysbook.contextBuildHtml", "title": "MLSysBook: Build as HTML" },
{ "command": "mlsysbook.contextBuildPdf", "title": "MLSysBook: Build as PDF" },
{ "command": "mlsysbook.contextBuildEpub", "title": "MLSysBook: Build as EPUB" },
{ "command": "mlsysbook.contextPreview", "title": "MLSysBook: Preview" },
{ "command": "mlsysbook.contextDebugSections", "title": "MLSysBook: Debug Sections" },
{ "command": "mlsysbook.openNavigatorLocation", "title": "MLSysBook: Open Navigator Location" },
{ "command": "mlsysbook.refreshNavigator", "title": "MLSysBook: Refresh Chapter Navigator", "icon": "$(refresh)" },
{ "command": "mlsysbook.navigatorExpandAll", "title": "MLSysBook: Navigator Expand All", "icon": "$(add)" },
{ "command": "mlsysbook.navigatorCollapseAll", "title": "MLSysBook: Navigator Collapse All", "icon": "$(remove)" },
{ "command": "mlsysbook.refreshRunHistory", "title": "MLSysBook: Refresh Run History", "icon": "$(refresh)" },
{ "command": "mlsysbook.refreshBuildTree", "title": "Refresh", "icon": "$(refresh)" },
{ "command": "mlsysbook.rerunLastCommand", "title": "MLSysBook: Rerun Last Command", "icon": "$(history)" },
{ "command": "mlsysbook.rerunLastCommandRaw", "title": "MLSysBook: Rerun Last Command (Raw Terminal)" },
{ "command": "mlsysbook.revealTerminal", "title": "MLSysBook: Reveal Build Terminal", "icon": "$(terminal)" },
{ "command": "mlsysbook.historyRerunCommand", "title": "MLSysBook: Rerun Command (Recent Runs)" },
{ "command": "mlsysbook.openLastFailureDetails", "title": "MLSysBook: Open Last Failure Details" },
{ "command": "mlsysbook.setChapterOrderSource", "title": "Set Chapter Order Source" },
{ "command": "mlsysbook.setQmdVisualPreset", "title": "Set QMD Visual Preset" },
{ "command": "mlsysbook.openSettings", "title": "Open Extension Settings" },
{ "command": "mlsysbook.showHealthDetails", "title": "MLSysBook: Show Health Details" }
],
"configuration": {
"title": "MLSysBook Workbench",
"properties": {
"mlsysbook.chapterOrderSource": {
"type": "string",
"enum": ["auto", "pdf", "epub", "html", "pdfCopyedit"],
"default": "auto",
"description": "Source file preference for chapter ordering in Build/Debug lists. Auto tries PDF first, then EPUB, then HTML, then PDF copyedit."
},
"mlsysbook.revealTerminalOnFailure": {
"type": "boolean",
"default": true,
"description": "Show a Reveal Terminal action when a focused run fails."
},
"mlsysbook.parallelDebugWorkers": {
"type": "number",
"default": 4,
"minimum": 1,
"maximum": 16,
"description": "Default worker count for parallel chapter debug jobs."
},
"mlsysbook.keepFailedWorktrees": {
"type": "boolean",
"default": true,
"description": "Keep temporary worktrees for failed parallel debug jobs for manual inspection."
},
"mlsysbook.parallelDebugRoot": {
"type": "string",
"default": ".mlsysbook/worktrees",
"description": "Relative directory under the repo root where parallel debug worktrees are created."
},
"mlsysbook.enableQmdChunkHighlight": {
"type": "boolean",
"default": true,
"description": "Apply subtle editor background highlighting for QMD chunks (callouts, divs, fenced code, and labeled figure/table/listing lines)."
},
"mlsysbook.qmdVisualPreset": {
"type": "string",
"enum": ["subtle", "balanced", "highContrast"],
"default": "balanced",
"description": "Visual intensity preset for QMD highlighting (inline refs, label definitions, and structural region emphasis)."
},
"mlsysbook.highlightInlineReferences": {
"type": "boolean",
"default": true,
"description": "Highlight inline @references in QMD prose (including @fig-/@tbl-/@sec- style references)."
},
"mlsysbook.highlightLabelDefinitions": {
"type": "boolean",
"default": true,
"description": "Highlight label definition patterns like {#fig-...} and #| label: fig-...."
},
"mlsysbook.highlightCalloutBackground": {
"type": "boolean",
"default": false,
"description": "Apply a background color to callout and div block regions. The ::: fence markers are controlled separately by highlightDivFenceMarkers."
},
"mlsysbook.highlightSectionHeaders": {
"type": "boolean",
"default": true,
"description": "Highlight section headers (## to ######) with depth-based background intensity."
},
"mlsysbook.highlightTables": {
"type": "boolean",
"default": false,
"description": "Highlight markdown pipe table regions with a background color. Table label definitions ({#tbl-...}) and @tbl- references are always colored regardless of this setting."
},
"mlsysbook.highlightFootnotes": {
"type": "boolean",
"default": true,
"description": "Highlight footnote references and definition markers (e.g. [^fn-...] and [^fn-...]:)."
},
"mlsysbook.highlightFootnoteBlockBackground": {
"type": "boolean",
"default": false,
"description": "Highlight footnote definition block backgrounds. Disabled by default to reduce visual noise."
},
"mlsysbook.highlightInlinePython": {
"type": "boolean",
"default": true,
"description": "Highlight inline Python variable references (`{python} var_name`) with a distinctive rose/pink color."
},
"mlsysbook.showInlinePythonValues": {
"type": "boolean",
"default": true,
"description": "Show resolved Python variable values as dimmed ghost text after inline references (e.g., `{python} google_search_b_str` → 8.5). Requires python3 with the book's dependencies."
},
"mlsysbook.showInlinePythonCodeLens": {
"type": "boolean",
"default": true,
"description": "Show a CodeLens above Python code blocks displaying all exported variable values."
},
"mlsysbook.autoFoldOnOpen": {
"type": "boolean",
"default": true,
"description": "Automatically fold configured QMD block kinds when opening a chapter file."
},
"mlsysbook.autoFoldKinds": {
"type": "array",
"items": {
"type": "string",
"enum": ["tikz", "fencedCode", "divs"]
},
"default": ["tikz"],
"description": "Controls which block kinds are auto-folded on open. Default folds TikZ regions only."
},
"mlsysbook.navigatorFollowCursor": {
"type": "boolean",
"default": true,
"description": "Automatically reveal the current section in Chapter Navigator as cursor moves through a QMD file."
},
"mlsysbook.navigatorClickToOpen": {
"type": "boolean",
"default": false,
"description": "Open editor location when clicking a navigator item. Keep disabled to avoid accidental jumps while browsing."
},
"mlsysbook.navigatorVisibleEntryKinds": {
"type": "array",
"items": {
"type": "string",
"enum": ["figures", "tables", "listings", "equations", "callouts"]
},
"default": ["figures", "tables", "listings", "equations", "callouts"],
"description": "Content types shown in Chapter Navigator under each section (figures, tables, code listings, equations, callouts). All are shown by default."
}
}
},
"menus": {
"explorer/context": [
{ "command": "mlsysbook.contextBuildHtml", "when": "resourceExtname == .qmd", "group": "mlsysbook@1" },
{ "command": "mlsysbook.contextBuildPdf", "when": "resourceExtname == .qmd", "group": "mlsysbook@2" },
{ "command": "mlsysbook.contextBuildEpub", "when": "resourceExtname == .qmd", "group": "mlsysbook@3" },
{ "command": "mlsysbook.contextPreview", "when": "resourceExtname == .qmd", "group": "mlsysbook@4" },
{ "command": "mlsysbook.contextDebugSections", "when": "resourceExtname == .qmd", "group": "mlsysbook@5" }
],
"view/title": [
{ "command": "mlsysbook.refreshBuildTree", "when": "view == mlsysbook.build", "group": "navigation@1" },
{ "command": "mlsysbook.rerunLastCommand", "when": "view == mlsysbook.build", "group": "navigation@2" },
{ "command": "mlsysbook.revealTerminal", "when": "view == mlsysbook.build", "group": "navigation@3" },
{ "command": "mlsysbook.refreshNavigator", "when": "view == mlsysbook.navigator", "group": "navigation@1" },
{ "command": "mlsysbook.navigatorExpandAll", "when": "view == mlsysbook.navigator", "group": "navigation@2" },
{ "command": "mlsysbook.navigatorCollapseAll", "when": "view == mlsysbook.navigator", "group": "navigation@3" },
{ "command": "mlsysbook.refreshRunHistory", "when": "view == mlsysbook.runs", "group": "navigation" },
{ "command": "mlsysbook.resetQuartoConfig", "when": "view == mlsysbook.config", "group": "navigation@0" },
{ "command": "mlsysbook.setChapterOrderSource", "when": "view == mlsysbook.config", "group": "navigation@1" },
{ "command": "mlsysbook.setQmdVisualPreset", "when": "view == mlsysbook.config", "group": "navigation@2" },
{ "command": "mlsysbook.openSettings", "when": "view == mlsysbook.config", "group": "navigation@3" }
],
"editor/context": [
{ "command": "mlsysbook.renameLabelReferences", "when": "resourceExtname == .qmd", "group": "mlsysbook@1" }
]
}
}
}