@agimon-ai/doompi-git 0.0.1-alpha.3 → 0.0.1-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agimon-ai/doompi-git",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.4",
|
|
4
4
|
"description": "Git worktree sessions for DoomPi: spawn an isolated worktree with its own session and manage it from the parent",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"coding-agent",
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
"src/prompts",
|
|
33
33
|
"src/types/webWorktrees.ts",
|
|
34
34
|
"src/types/worktreeRegistry.ts",
|
|
35
|
-
"src/web"
|
|
35
|
+
"src/web",
|
|
36
|
+
"!src/web/**/*.stories.tsx"
|
|
36
37
|
],
|
|
37
38
|
"type": "module",
|
|
38
39
|
"main": "./dist/index.cjs",
|
|
@@ -64,9 +65,9 @@
|
|
|
64
65
|
"@tanstack/react-store": "0.11.1",
|
|
65
66
|
"@tanstack/store": "0.11.1",
|
|
66
67
|
"typebox": "1.3.19",
|
|
67
|
-
"@agimon-ai/doompi-extension-contracts": "0.0.1-alpha.
|
|
68
|
-
"@agimon-ai/doompi-web-components": "0.0.1-alpha.
|
|
69
|
-
"@agimon-ai/doompi-web-contracts": "0.0.1-alpha.
|
|
68
|
+
"@agimon-ai/doompi-extension-contracts": "0.0.1-alpha.67",
|
|
69
|
+
"@agimon-ai/doompi-web-components": "0.0.1-alpha.27",
|
|
70
|
+
"@agimon-ai/doompi-web-contracts": "0.0.1-alpha.30"
|
|
70
71
|
},
|
|
71
72
|
"devDependencies": {
|
|
72
73
|
"@earendil-works/pi-agent-core": "0.85.1",
|
|
@@ -75,10 +76,11 @@
|
|
|
75
76
|
"@types/react": "19.2.18",
|
|
76
77
|
"@vitest/coverage-v8": "5.0.0",
|
|
77
78
|
"react": "19.2.8",
|
|
79
|
+
"react-dom": "19.2.8",
|
|
78
80
|
"tsdown": "0.22.14",
|
|
79
81
|
"typescript": "7.0.2",
|
|
80
82
|
"vitest": "5.0.0",
|
|
81
|
-
"@agimon-ai/vibe-lint-plugin-doom-extension": "0.0.1-alpha.
|
|
83
|
+
"@agimon-ai/vibe-lint-plugin-doom-extension": "0.0.1-alpha.64"
|
|
82
84
|
},
|
|
83
85
|
"peerDependencies": {
|
|
84
86
|
"@earendil-works/pi-agent-core": "0.85.1",
|
|
@@ -24,13 +24,13 @@ export function RunWorktreeToolMessage({ args, output, running, isError }: ToolM
|
|
|
24
24
|
|
|
25
25
|
return (
|
|
26
26
|
<div className="flex flex-col gap-0.5">
|
|
27
|
-
<span className="text-
|
|
27
|
+
<span className="text-sm font-bold text-doom-hi">
|
|
28
28
|
{ACTION_LABEL[action] ?? 'Worktree'}
|
|
29
29
|
{subject === '' ? '' : ` ${subject}`}
|
|
30
30
|
{running ? ' …' : ''}
|
|
31
31
|
</span>
|
|
32
32
|
{output !== '' && (
|
|
33
|
-
<pre className={`whitespace-pre-wrap text-
|
|
33
|
+
<pre className={`whitespace-pre-wrap text-xs ${isError ? 'text-doom-red' : 'text-doom-dim'}`}>{output}</pre>
|
|
34
34
|
)}
|
|
35
35
|
</div>
|
|
36
36
|
);
|
|
@@ -25,7 +25,7 @@ export function WorktreesActivitySection({ sessionId, openTransientTab }: WebPlu
|
|
|
25
25
|
if (session.worktrees.length === 0 && session.pending === undefined) {
|
|
26
26
|
return (
|
|
27
27
|
<div className="flex items-center gap-2 px-1">
|
|
28
|
-
<p data-testid="activity-summary-git" className="px-1 text-
|
|
28
|
+
<p data-testid="activity-summary-git" className="px-1 text-xs text-doom-faint">
|
|
29
29
|
idle
|
|
30
30
|
</p>
|
|
31
31
|
{sessionId === null ? null : (
|
|
@@ -45,18 +45,18 @@ export function WorktreesActivitySection({ sessionId, openTransientTab }: WebPlu
|
|
|
45
45
|
|
|
46
46
|
return (
|
|
47
47
|
<div data-testid="activity-git-worktrees" className="flex flex-col gap-0.5">
|
|
48
|
-
{session.pending === undefined ? null : <p className="px-1 text-
|
|
48
|
+
{session.pending === undefined ? null : <p className="px-1 text-xs text-doom-dim">{session.pending}</p>}
|
|
49
49
|
{session.worktrees.map((worktree: WorktreeView) => (
|
|
50
50
|
<button
|
|
51
51
|
key={worktree.id}
|
|
52
52
|
type="button"
|
|
53
53
|
data-testid={`activity-git-worktree-${worktree.id}`}
|
|
54
|
-
className="flex items-center gap-2 px-1 text-left text-
|
|
54
|
+
className="flex items-center gap-2 px-1 text-left text-sm text-doom-dim hover:text-doom-bright"
|
|
55
55
|
onClick={() => openTransientTab(worktreesTab())}
|
|
56
56
|
>
|
|
57
57
|
<span className="truncate">{worktree.branch}</span>
|
|
58
|
-
{worktree.orphaned ? <span className="text-
|
|
59
|
-
{worktree.unowned ? <span className="text-
|
|
58
|
+
{worktree.orphaned ? <span className="text-xs text-doom-faint">orphaned</span> : null}
|
|
59
|
+
{worktree.unowned ? <span className="text-xs text-doom-faint">unowned</span> : null}
|
|
60
60
|
</button>
|
|
61
61
|
))}
|
|
62
62
|
</div>
|
|
@@ -71,24 +71,24 @@ export function WorktreesPanel({ sessionId }: WebPluginSlotProps) {
|
|
|
71
71
|
Create
|
|
72
72
|
</Button>
|
|
73
73
|
</div>
|
|
74
|
-
<p className="text-
|
|
74
|
+
<p className="text-xs text-doom-faint">
|
|
75
75
|
Creates the worktree outside the repository, installs its dependencies, then starts a session nested under
|
|
76
76
|
this one. The install is what makes the wait; a warm store is under a minute.
|
|
77
77
|
</p>
|
|
78
78
|
{session.pending === undefined ? null : (
|
|
79
|
-
<p data-testid="git-worktree-pending" className="text-
|
|
79
|
+
<p data-testid="git-worktree-pending" className="text-xs text-doom-dim">
|
|
80
80
|
{session.pending}
|
|
81
81
|
</p>
|
|
82
82
|
)}
|
|
83
83
|
{session.error === undefined ? null : (
|
|
84
|
-
<p data-testid="git-worktree-error" className="text-
|
|
84
|
+
<p data-testid="git-worktree-error" className="text-xs text-doom-error">
|
|
85
85
|
{session.error}
|
|
86
86
|
</p>
|
|
87
87
|
)}
|
|
88
88
|
</div>
|
|
89
89
|
|
|
90
90
|
{session.worktrees.length === 0 ? (
|
|
91
|
-
<p className="text-
|
|
91
|
+
<p className="text-sm text-doom-faint">No worktrees yet.</p>
|
|
92
92
|
) : (
|
|
93
93
|
<ul className="flex flex-col gap-1">
|
|
94
94
|
{session.worktrees.map((worktree: WorktreeView) => (
|
|
@@ -98,12 +98,12 @@ export function WorktreesPanel({ sessionId }: WebPluginSlotProps) {
|
|
|
98
98
|
className="flex items-center justify-between gap-2 border border-doom-line px-2 py-1"
|
|
99
99
|
>
|
|
100
100
|
<div className="flex min-w-0 flex-col">
|
|
101
|
-
<span className="truncate text-
|
|
102
|
-
<span className="truncate text-
|
|
101
|
+
<span className="truncate text-sm text-doom-bright">{worktree.branch}</span>
|
|
102
|
+
<span className="truncate text-xs text-doom-faint">{worktree.path}</span>
|
|
103
103
|
</div>
|
|
104
104
|
<div className="flex items-center gap-2">
|
|
105
|
-
{worktree.orphaned ? <span className="text-
|
|
106
|
-
{worktree.unowned ? <span className="text-
|
|
105
|
+
{worktree.orphaned ? <span className="text-xs text-doom-faint">orphaned</span> : null}
|
|
106
|
+
{worktree.unowned ? <span className="text-xs text-doom-faint">unowned</span> : null}
|
|
107
107
|
{sessionId === null ? null : (
|
|
108
108
|
<Button
|
|
109
109
|
variant="link"
|