837d008572
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
369 lines
11 KiB
JSON
369 lines
11 KiB
JSON
{
|
|
"name": "vscode-cowriting-plugin",
|
|
"displayName": "Cowriting (Cline SDK POC)",
|
|
"description": "Non-shippable POC: a standalone VS Code extension that drives @cline/sdk.",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"license": "Apache-2.0",
|
|
"publisher": "benstull",
|
|
"engines": {
|
|
"vscode": "^1.90.0",
|
|
"node": ">=22"
|
|
},
|
|
"categories": [
|
|
"Other"
|
|
],
|
|
"main": "./out/extension.cjs",
|
|
"activationEvents": [
|
|
"onStartupFinished"
|
|
],
|
|
"contributes": {
|
|
"markdown.markdownItPlugins": true,
|
|
"markdown.previewStyles": [
|
|
"./media/preview-annotations.css"
|
|
],
|
|
"markdown.previewScripts": [
|
|
"./out/media/preview-mermaid.js"
|
|
],
|
|
"configuration": {
|
|
"title": "Cowriting",
|
|
"properties": {
|
|
"cowriting.liveProgress.revealOutput": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "When Claude is editing, reveal the \"Cowriting: Claude\" output channel (without stealing focus) as soon as Claude starts producing text, so you can read the output as it streams."
|
|
},
|
|
"cowriting.annotations": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Show authorship + change annotations in the Markdown preview for coedited documents."
|
|
}
|
|
}
|
|
},
|
|
"commands": [
|
|
{
|
|
"command": "cowriting.showClineSdkInfo",
|
|
"title": "Cowriting: Show Cline SDK Info",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.createThread",
|
|
"title": "Cowriting: Add Coauthoring Thread on Selection",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.reply",
|
|
"title": "Reply",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.resolveThread",
|
|
"title": "Resolve Thread",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.reopenThread",
|
|
"title": "Reopen Thread",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.applyAgentEdit",
|
|
"title": "Apply Agent Edit (internal seam)",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.edit",
|
|
"title": "Ask Claude to Edit",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.editSelection",
|
|
"title": "Ask Claude to Edit Selection",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.proposeAgentEdit",
|
|
"title": "Propose Agent Edit (internal seam)",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.markReviewed",
|
|
"title": "Mark Changes as Reviewed",
|
|
"category": "Cowriting",
|
|
"icon": "$(check-all)"
|
|
},
|
|
{
|
|
"command": "cowriting.reviewChanges",
|
|
"title": "Review Changes",
|
|
"category": "Cowriting",
|
|
"icon": "$(git-compare)"
|
|
},
|
|
{
|
|
"command": "cowriting.openReviewPreview",
|
|
"title": "Open Cowriting Review Preview",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.editDocument",
|
|
"title": "Ask Claude to Edit Document",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.acceptAllProposals",
|
|
"title": "Accept All Claude Proposals",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.rejectAllProposals",
|
|
"title": "Reject All Claude Proposals",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.proposalAcceptMenu",
|
|
"title": "Accept Claude Proposal",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.proposalRejectMenu",
|
|
"title": "Reject Claude Proposal",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.coeditDocument",
|
|
"title": "✦ Coedit this Document with Claude",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.stopCoediting",
|
|
"title": "Stop editing with Claude",
|
|
"category": "Cowriting"
|
|
},
|
|
{
|
|
"command": "cowriting.askClaude",
|
|
"title": "Ask Claude",
|
|
"category": "Cowriting",
|
|
"icon": "$(sparkle)"
|
|
},
|
|
{
|
|
"command": "cowriting.makeThreadEdit",
|
|
"title": "✦ Make this edit",
|
|
"category": "Cowriting",
|
|
"icon": "$(sparkle)"
|
|
},
|
|
{
|
|
"command": "cowriting.toggleAnnotations",
|
|
"title": "Toggle Annotations",
|
|
"category": "Cowriting",
|
|
"icon": "$(eye)"
|
|
}
|
|
],
|
|
"menus": {
|
|
"commandPalette": [
|
|
{
|
|
"command": "cowriting.applyAgentEdit",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "cowriting.proposeAgentEdit",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "cowriting.createThread",
|
|
"when": "editorHasSelection && (resourceScheme == file || resourceScheme == untitled) && cowriting.isCoediting"
|
|
},
|
|
{
|
|
"command": "cowriting.reviewChanges",
|
|
"when": "editorLangId == markdown && cowriting.isCoediting"
|
|
},
|
|
{
|
|
"command": "cowriting.markReviewed",
|
|
"when": "editorLangId == markdown && cowriting.isCoediting && cowriting.baselineMode == snapshot"
|
|
},
|
|
{
|
|
"command": "cowriting.edit",
|
|
"when": "editorLangId == markdown"
|
|
},
|
|
{
|
|
"command": "cowriting.editSelection",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "cowriting.editDocument",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "cowriting.askClaude",
|
|
"when": "editorLangId == markdown && cowriting.isCoediting"
|
|
},
|
|
{
|
|
"command": "cowriting.toggleAnnotations",
|
|
"when": "editorLangId == markdown && cowriting.isCoediting"
|
|
},
|
|
{
|
|
"command": "cowriting.makeThreadEdit",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "cowriting.acceptAllProposals",
|
|
"when": "editorLangId == markdown && cowriting.isCoediting"
|
|
},
|
|
{
|
|
"command": "cowriting.rejectAllProposals",
|
|
"when": "editorLangId == markdown && cowriting.isCoediting"
|
|
},
|
|
{
|
|
"command": "cowriting.proposalAcceptMenu",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "cowriting.proposalRejectMenu",
|
|
"when": "false"
|
|
}
|
|
],
|
|
"editor/title": [
|
|
{
|
|
"command": "cowriting.reviewChanges",
|
|
"when": "resourceLangId == markdown && cowriting.isCoediting",
|
|
"group": "navigation@1"
|
|
},
|
|
{
|
|
"command": "cowriting.askClaude",
|
|
"when": "resourceLangId == markdown && cowriting.isCoediting",
|
|
"group": "navigation@2"
|
|
},
|
|
{
|
|
"command": "cowriting.toggleAnnotations",
|
|
"when": "resourceLangId == markdown && cowriting.isCoediting",
|
|
"group": "navigation@3"
|
|
},
|
|
{
|
|
"command": "cowriting.markReviewed",
|
|
"when": "resourceLangId == markdown && cowriting.isCoediting && cowriting.baselineMode == snapshot",
|
|
"group": "navigation@4"
|
|
},
|
|
{
|
|
"command": "cowriting.openReviewPreview",
|
|
"when": "resourceLangId == markdown",
|
|
"group": "navigation@9"
|
|
}
|
|
],
|
|
"editor/title/context": [
|
|
{
|
|
"command": "cowriting.edit",
|
|
"when": "resourceLangId == markdown && cowriting.isCoediting",
|
|
"group": "1_cowriting@1"
|
|
},
|
|
{
|
|
"command": "cowriting.openReviewPreview",
|
|
"when": "resourceLangId == markdown",
|
|
"group": "1_cowriting@3"
|
|
}
|
|
],
|
|
"explorer/context": [
|
|
{
|
|
"command": "cowriting.openReviewPreview",
|
|
"when": "resourceLangId == markdown",
|
|
"group": "navigation@9"
|
|
}
|
|
],
|
|
"editor/context": [
|
|
{
|
|
"command": "cowriting.edit",
|
|
"when": "editorLangId == markdown && (resourceScheme == file || resourceScheme == untitled) && cowriting.isCoediting",
|
|
"group": "1_cowriting@1"
|
|
},
|
|
{
|
|
"command": "cowriting.createThread",
|
|
"when": "editorHasSelection && (resourceScheme == file || resourceScheme == untitled) && cowriting.isCoediting",
|
|
"group": "1_cowriting@2"
|
|
},
|
|
{
|
|
"command": "cowriting.coeditDocument",
|
|
"when": "editorLangId == markdown && !cowriting.isCoediting",
|
|
"group": "1_cowriting@1"
|
|
},
|
|
{
|
|
"command": "cowriting.stopCoediting",
|
|
"when": "editorLangId == markdown && cowriting.isCoediting",
|
|
"group": "1_cowriting@9"
|
|
}
|
|
],
|
|
"comments/commentThread/context": [
|
|
{
|
|
"command": "cowriting.reply",
|
|
"group": "inline@1",
|
|
"when": "commentController == cowriting.threads"
|
|
},
|
|
{
|
|
"command": "cowriting.makeThreadEdit",
|
|
"group": "inline@2",
|
|
"when": "commentController == cowriting.threads && commentThread =~ /\\boffer\\b/"
|
|
}
|
|
],
|
|
"comments/commentThread/title": [
|
|
{
|
|
"command": "cowriting.makeThreadEdit",
|
|
"group": "inline@1",
|
|
"when": "commentController == cowriting.threads && commentThread =~ /\\boffer\\b/"
|
|
},
|
|
{
|
|
"command": "cowriting.resolveThread",
|
|
"group": "inline",
|
|
"when": "commentController == cowriting.threads && commentThread =~ /\\bopen\\b/"
|
|
},
|
|
{
|
|
"command": "cowriting.reopenThread",
|
|
"group": "inline",
|
|
"when": "commentController == cowriting.threads && commentThread =~ /\\bresolved\\b/"
|
|
}
|
|
]
|
|
},
|
|
"keybindings": [
|
|
{
|
|
"command": "cowriting.reviewChanges",
|
|
"key": "ctrl+alt+r",
|
|
"mac": "cmd+alt+r",
|
|
"when": "editorLangId == markdown && cowriting.isCoediting"
|
|
},
|
|
{
|
|
"command": "cowriting.edit",
|
|
"key": "ctrl+alt+e",
|
|
"mac": "cmd+alt+e",
|
|
"when": "editorTextFocus && editorLangId == markdown && cowriting.isCoediting"
|
|
}
|
|
]
|
|
},
|
|
"scripts": {
|
|
"build": "node esbuild.mjs",
|
|
"watch": "node esbuild.mjs --watch",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run",
|
|
"clean:e2e": "node -e \"require('fs').rmSync('out/test',{recursive:true,force:true})\"",
|
|
"pretest:e2e": "npm run build && npm run clean:e2e && tsc -p tsconfig.e2e.json",
|
|
"test:e2e": "node ./out/test/e2e/runTest.js",
|
|
"smoke:live": "npm run build && node scripts/smoke-live-turn.mjs",
|
|
"smoke:native": "npm run pretest:e2e && node scripts/smoke-native-loop.mjs",
|
|
"vscode:prepublish": "node esbuild.mjs"
|
|
},
|
|
"dependencies": {
|
|
"@cline/sdk": "0.0.46",
|
|
"diff": "^7.0.0",
|
|
"markdown-it": "^14.1.0",
|
|
"mermaid": "^11.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/diff": "^7.0.0",
|
|
"@types/markdown-it": "^14.1.0",
|
|
"@types/mocha": "^10.0.7",
|
|
"@types/node": "^22.0.0",
|
|
"@types/vscode": "^1.90.0",
|
|
"@vscode/test-electron": "^2.4.0",
|
|
"ajv": "^8.20.0",
|
|
"esbuild": "^0.23.0",
|
|
"glob": "^11.0.0",
|
|
"mocha": "^10.7.0",
|
|
"typescript": "^5.5.0",
|
|
"vitest": "^2.0.0"
|
|
}
|
|
}
|