Some checks failed
CI / Build & test (Node 22) (push) Successful in 10m13s
CI / Build & test (Node 24) (push) Successful in 10m6s
CI / No em/en dashes (push) Successful in 3s
VSCode Release / Package VSIX (push) Successful in 9m38s
CI / Pack & boot smoke (Node 22) (push) Successful in 9m56s
Desktop Release / Build Linux (AppImage + deb) (push) Failing after 6m11s
Daemon 3.0.0 : marque le cap « IDE IA multi-projet + app de bureau native » (refonte additive, PROTOCOL_VERSION inchangé ; le tarball embarque la nouvelle SPA IDE + le handshake token desktop). Extension VS Code 0.3.0 : deep-link « Open Worktree IDE » vers l'IDE multi-projet, encodage wt-key unifié via @arboretum/shared (CHANGELOG + README à jour). Paquet desktop 0.1.0 (première release). package.json ET package-lock.json bumpés (npm ci strict). 431 tests, 0 tiret, builds daemon/web/vscode/site verts.
435 lines
12 KiB
JSON
435 lines
12 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.3.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"
|
|
}
|
|
}
|