Some checks failed
CI / Build & test (Node 24) (push) Has been cancelled
CI / Pack & boot smoke (Node 22) (push) Has been cancelled
CI / No em/en dashes (push) Has been cancelled
CI / Build & test (Node 22) (push) Has been cancelled
Deploy site (production) / build-and-deploy (push) Successful in 20s
Remplace les 547 tirets cadratins (U+2014) et demi-cadratins (U+2013) des fichiers versionnés par la ponctuation contextuelle adaptée (point médian, deux-points, virgule, parenthèses ; tiret simple pour les plages), sur 122 fichiers (appli, vitrine, doc, tests, workflows, scripts). Ajoute le job CI « lint-dashes » (git grep -P) qui échoue si un tiret cadratin/demi-cadratin réapparaît, hors logo binaire et captures brutes du terminal (fidélité des fixtures de détection de dialogue).
180 lines
9.6 KiB
JSON
180 lines
9.6 KiB
JSON
{
|
|
"name": "git-arboretum",
|
|
"displayName": "Arboretum",
|
|
"description": "Pilot your git worktrees and Claude Code sessions from VS Code: native terminals, live tree, waiting alerts.",
|
|
"version": "0.2.0",
|
|
"private": true,
|
|
"publisher": "johanleroy",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"vscode": "^1.85.0"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://git.lidge.fr/johanleroy/arboretum"
|
|
},
|
|
"categories": [
|
|
"SCM Providers",
|
|
"Other"
|
|
],
|
|
"keywords": [
|
|
"git",
|
|
"worktree",
|
|
"claude",
|
|
"terminal",
|
|
"arboretum"
|
|
],
|
|
"main": "./dist/extension.js",
|
|
"activationEvents": [
|
|
"onStartupFinished"
|
|
],
|
|
"contributes": {
|
|
"configuration": {
|
|
"title": "Arboretum",
|
|
"properties": {
|
|
"arboretum.url": {
|
|
"type": "string",
|
|
"default": "http://127.0.0.1:7317",
|
|
"markdownDescription": "Base URL of the Arboretum daemon (REST + WebSocket). Defaults to the loopback bind."
|
|
},
|
|
"arboretum.showExternalSessions": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"markdownDescription": "Show Claude sessions discovered outside Arboretum (started from the CLI) in the trees. Off by default to avoid clutter."
|
|
},
|
|
"arboretum.showArchivedSessions": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"markdownDescription": "Show finished sessions that Arboretum auto-archived after their retention window. Off by default to keep the trees focused on live work."
|
|
},
|
|
"arboretum.notifyOnWaiting": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"markdownDescription": "Show a native notification when a Claude session starts waiting for input."
|
|
}
|
|
}
|
|
},
|
|
"viewsContainers": {
|
|
"activitybar": [
|
|
{
|
|
"id": "arboretum",
|
|
"title": "Arboretum",
|
|
"icon": "media/arboretum.svg"
|
|
}
|
|
]
|
|
},
|
|
"views": {
|
|
"arboretum": [
|
|
{
|
|
"id": "arboretum.repos",
|
|
"name": "Repositories",
|
|
"icon": "media/arboretum.svg"
|
|
},
|
|
{
|
|
"id": "arboretum.groups",
|
|
"name": "Groups",
|
|
"icon": "media/arboretum.svg"
|
|
}
|
|
]
|
|
},
|
|
"viewsWelcome": [
|
|
{
|
|
"view": "arboretum.repos",
|
|
"contents": "Not connected to an Arboretum daemon.\n[Sign in](command:arboretum.signIn)\n\nMake sure the daemon is running (`npx @johanleroy/git-arboretum`) and paste a token.",
|
|
"when": "!arboretum.connected"
|
|
}
|
|
],
|
|
"commands": [
|
|
{ "command": "arboretum.signIn", "title": "Sign In", "category": "Arboretum" },
|
|
{ "command": "arboretum.signOut", "title": "Sign Out", "category": "Arboretum" },
|
|
{ "command": "arboretum.refresh", "title": "Refresh", "category": "Arboretum", "icon": "$(refresh)" },
|
|
{ "command": "arboretum.openDashboard", "title": "Open Dashboard in Browser", "category": "Arboretum", "icon": "$(globe)" },
|
|
{ "command": "arboretum.attachSession", "title": "Attach Terminal", "category": "Arboretum", "icon": "$(terminal)" },
|
|
{ "command": "arboretum.observeSession", "title": "Observe Terminal (read-only)", "category": "Arboretum", "icon": "$(eye)" },
|
|
{ "command": "arboretum.answerSession", "title": "Answer Prompt…", "category": "Arboretum", "icon": "$(comment-discussion)" },
|
|
{ "command": "arboretum.killSession", "title": "Kill Session", "category": "Arboretum", "icon": "$(trash)" },
|
|
{ "command": "arboretum.hideSession", "title": "Hide Session", "category": "Arboretum", "icon": "$(eye-closed)" },
|
|
{ "command": "arboretum.resumeSession", "title": "Resume Session", "category": "Arboretum", "icon": "$(debug-restart)" },
|
|
{ "command": "arboretum.forkSession", "title": "Fork Session", "category": "Arboretum", "icon": "$(git-branch)" },
|
|
{ "command": "arboretum.createWorktree", "title": "Create Worktree…", "category": "Arboretum", "icon": "$(add)" },
|
|
{ "command": "arboretum.commitWorktree", "title": "Commit…", "category": "Arboretum", "icon": "$(git-commit)" },
|
|
{ "command": "arboretum.pushWorktree", "title": "Push", "category": "Arboretum", "icon": "$(repo-push)" },
|
|
{ "command": "arboretum.fetchWorktree", "title": "Fetch", "category": "Arboretum", "icon": "$(cloud-download)" },
|
|
{ "command": "arboretum.pullWorktree", "title": "Pull…", "category": "Arboretum", "icon": "$(arrow-down)" },
|
|
{ "command": "arboretum.promoteWorktree", "title": "Promote to Main", "category": "Arboretum", "icon": "$(arrow-up)" },
|
|
{ "command": "arboretum.openWorktreeIde", "title": "Open Worktree IDE", "category": "Arboretum", "icon": "$(link-external)" },
|
|
{ "command": "arboretum.startSession", "title": "Start Claude Session", "category": "Arboretum", "icon": "$(play)" },
|
|
{ "command": "arboretum.startGroupSession", "title": "Start Group Session…", "category": "Arboretum", "icon": "$(play)" },
|
|
{ "command": "arboretum.startSessionHere", "title": "Start Session in Current Folder", "category": "Arboretum" },
|
|
{ "command": "arboretum.createWorktreeHere", "title": "Create Worktree for Current Folder…", "category": "Arboretum" },
|
|
{ "command": "arboretum.revealWorktree", "title": "Reveal Worktree for Current Folder", "category": "Arboretum" }
|
|
],
|
|
"menus": {
|
|
"view/title": [
|
|
{ "command": "arboretum.refresh", "when": "view == arboretum.repos || view == arboretum.groups", "group": "navigation" },
|
|
{ "command": "arboretum.openDashboard", "when": "view == arboretum.repos", "group": "navigation" },
|
|
{ "command": "arboretum.signOut", "when": "view == arboretum.repos && arboretum.connected", "group": "1_auth" },
|
|
{ "command": "arboretum.signIn", "when": "view == arboretum.repos && !arboretum.connected", "group": "1_auth" }
|
|
],
|
|
"view/item/context": [
|
|
{ "command": "arboretum.createWorktree", "when": "viewItem == arboretum:repo", "group": "inline" },
|
|
{ "command": "arboretum.startSession", "when": "viewItem == arboretum:repo", "group": "1_session" },
|
|
{ "command": "arboretum.openWorktreeIde", "when": "viewItem == arboretum:worktree", "group": "inline" },
|
|
{ "command": "arboretum.commitWorktree", "when": "viewItem == arboretum:worktree", "group": "1_git" },
|
|
{ "command": "arboretum.pushWorktree", "when": "viewItem == arboretum:worktree", "group": "1_git" },
|
|
{ "command": "arboretum.fetchWorktree", "when": "viewItem == arboretum:worktree", "group": "1_git" },
|
|
{ "command": "arboretum.pullWorktree", "when": "viewItem == arboretum:worktree", "group": "1_git" },
|
|
{ "command": "arboretum.promoteWorktree", "when": "viewItem == arboretum:worktree", "group": "2_git" },
|
|
{ "command": "arboretum.openWorktreeIde", "when": "viewItem == arboretum:worktree", "group": "2_git" },
|
|
{ "command": "arboretum.startSession", "when": "viewItem == arboretum:worktree", "group": "3_session" },
|
|
{ "command": "arboretum.attachSession", "when": "viewItem =~ /arboretum:session:live/", "group": "inline" },
|
|
{ "command": "arboretum.observeSession", "when": "viewItem =~ /arboretum:session:live/", "group": "1_term" },
|
|
{ "command": "arboretum.answerSession", "when": "viewItem =~ /arboretum:session:live:.*waiting/", "group": "1_term" },
|
|
{ "command": "arboretum.killSession", "when": "viewItem =~ /arboretum:session:live/", "group": "9_danger" },
|
|
{ "command": "arboretum.resumeSession", "when": "viewItem =~ /arboretum:session:dead/", "group": "inline" },
|
|
{ "command": "arboretum.forkSession", "when": "viewItem =~ /arboretum:session/", "group": "2_term" },
|
|
{ "command": "arboretum.hideSession", "when": "viewItem =~ /arboretum:session:.*discovered/", "group": "9_danger" },
|
|
{ "command": "arboretum.startGroupSession", "when": "viewItem == arboretum:group", "group": "inline" }
|
|
],
|
|
"commandPalette": [
|
|
{ "command": "arboretum.refresh", "when": "arboretum.connected" },
|
|
{ "command": "arboretum.signOut", "when": "arboretum.connected" },
|
|
{ "command": "arboretum.attachSession", "when": "false" },
|
|
{ "command": "arboretum.observeSession", "when": "false" },
|
|
{ "command": "arboretum.answerSession", "when": "false" },
|
|
{ "command": "arboretum.killSession", "when": "false" },
|
|
{ "command": "arboretum.hideSession", "when": "false" },
|
|
{ "command": "arboretum.resumeSession", "when": "false" },
|
|
{ "command": "arboretum.forkSession", "when": "false" },
|
|
{ "command": "arboretum.createWorktree", "when": "false" },
|
|
{ "command": "arboretum.commitWorktree", "when": "false" },
|
|
{ "command": "arboretum.pushWorktree", "when": "false" },
|
|
{ "command": "arboretum.fetchWorktree", "when": "false" },
|
|
{ "command": "arboretum.pullWorktree", "when": "false" },
|
|
{ "command": "arboretum.promoteWorktree", "when": "false" },
|
|
{ "command": "arboretum.openWorktreeIde", "when": "false" },
|
|
{ "command": "arboretum.startSession", "when": "false" },
|
|
{ "command": "arboretum.startGroupSession", "when": "false" },
|
|
{ "command": "arboretum.revealWorktree", "when": "false" }
|
|
]
|
|
}
|
|
},
|
|
"scripts": {
|
|
"typecheck": "tsc -p . --noEmit",
|
|
"build": "npm run typecheck && node esbuild.mjs",
|
|
"dev": "node esbuild.mjs --watch",
|
|
"vscode:prepublish": "node esbuild.mjs",
|
|
"package": "vsce package --no-dependencies"
|
|
},
|
|
"devDependencies": {
|
|
"@arboretum/shared": "0.1.0",
|
|
"@types/node": "^22.10.0",
|
|
"@types/vscode": "^1.85.0",
|
|
"@types/ws": "^8.5.0",
|
|
"@vscode/vsce": "^3.2.0",
|
|
"esbuild": "^0.21.0",
|
|
"typescript": "^5.7.0",
|
|
"ws": "^8.18.0"
|
|
}
|
|
}
|