@agentteams/runner 0.0.85 → 0.0.86

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.
Files changed (123) hide show
  1. package/dist/api-client.d.ts +2 -2
  2. package/dist/api-client.js +66 -66
  3. package/dist/api-client.js.map +1 -1
  4. package/dist/api-client.test.js +63 -54
  5. package/dist/api-client.test.js.map +1 -1
  6. package/dist/autostart.js +81 -81
  7. package/dist/autostart.js.map +1 -1
  8. package/dist/autostart.test.js +35 -35
  9. package/dist/autostart.test.js.map +1 -1
  10. package/dist/commands/cleanup.js +4 -4
  11. package/dist/commands/init.js +14 -14
  12. package/dist/commands/restart.js +3 -3
  13. package/dist/commands/start.js +10 -10
  14. package/dist/commands/start.js.map +1 -1
  15. package/dist/commands/status.js +7 -7
  16. package/dist/commands/stop.js +7 -7
  17. package/dist/commands/uninstall.js +6 -6
  18. package/dist/commands/update.d.ts +4 -4
  19. package/dist/commands/update.js +20 -22
  20. package/dist/commands/update.js.map +1 -1
  21. package/dist/commands/update.test.js +38 -42
  22. package/dist/commands/update.test.js.map +1 -1
  23. package/dist/config.d.ts +1 -1
  24. package/dist/config.js +12 -12
  25. package/dist/config.test.js +61 -61
  26. package/dist/config.test.js.map +1 -1
  27. package/dist/daemon-control.d.ts +5 -5
  28. package/dist/daemon-control.js +21 -22
  29. package/dist/daemon-control.js.map +1 -1
  30. package/dist/daemon-control.test.js +29 -29
  31. package/dist/executable.d.ts +3 -3
  32. package/dist/executable.js +46 -49
  33. package/dist/executable.js.map +1 -1
  34. package/dist/executable.test.js +62 -62
  35. package/dist/executable.test.js.map +1 -1
  36. package/dist/handlers/trigger-handler.d.ts +6 -6
  37. package/dist/handlers/trigger-handler.js +118 -124
  38. package/dist/handlers/trigger-handler.js.map +1 -1
  39. package/dist/handlers/trigger-handler.test.js +373 -365
  40. package/dist/handlers/trigger-handler.test.js.map +1 -1
  41. package/dist/index.js +25 -25
  42. package/dist/logger.js +1 -1
  43. package/dist/pid.js +6 -6
  44. package/dist/poller.d.ts +7 -7
  45. package/dist/poller.js +55 -54
  46. package/dist/poller.js.map +1 -1
  47. package/dist/poller.test.js +264 -180
  48. package/dist/poller.test.js.map +1 -1
  49. package/dist/runners/amp.d.ts +1 -1
  50. package/dist/runners/amp.js +74 -81
  51. package/dist/runners/amp.js.map +1 -1
  52. package/dist/runners/antigravity.d.ts +3 -3
  53. package/dist/runners/antigravity.js +116 -127
  54. package/dist/runners/antigravity.js.map +1 -1
  55. package/dist/runners/antigravity.replay.test.js +25 -25
  56. package/dist/runners/antigravity.replay.test.js.map +1 -1
  57. package/dist/runners/antigravity.test.js +98 -98
  58. package/dist/runners/antigravity.test.js.map +1 -1
  59. package/dist/runners/claude-code.d.ts +1 -1
  60. package/dist/runners/claude-code.js +85 -84
  61. package/dist/runners/claude-code.js.map +1 -1
  62. package/dist/runners/claude-code.test.js +37 -40
  63. package/dist/runners/claude-code.test.js.map +1 -1
  64. package/dist/runners/codex.d.ts +1 -1
  65. package/dist/runners/codex.js +87 -96
  66. package/dist/runners/codex.js.map +1 -1
  67. package/dist/runners/codex.test.js +68 -68
  68. package/dist/runners/codex.test.js.map +1 -1
  69. package/dist/runners/index.d.ts +1 -1
  70. package/dist/runners/index.js +10 -10
  71. package/dist/runners/index.test.js +16 -16
  72. package/dist/runners/log-reporter.d.ts +2 -2
  73. package/dist/runners/log-reporter.js +10 -10
  74. package/dist/runners/log-reporter.test.js +70 -70
  75. package/dist/runners/log-reporter.test.js.map +1 -1
  76. package/dist/runners/opencode.d.ts +1 -1
  77. package/dist/runners/opencode.js +68 -75
  78. package/dist/runners/opencode.js.map +1 -1
  79. package/dist/runners/process-control.d.ts +1 -1
  80. package/dist/runners/process-control.js +13 -11
  81. package/dist/runners/process-control.js.map +1 -1
  82. package/dist/runners/stream-json-parser.d.ts +1 -1
  83. package/dist/runners/stream-json-parser.js +70 -67
  84. package/dist/runners/stream-json-parser.js.map +1 -1
  85. package/dist/runners/stream-json-parser.replay.test.js +17 -17
  86. package/dist/runners/stream-json-parser.replay.test.js.map +1 -1
  87. package/dist/runners/stream-json-parser.test.js +76 -78
  88. package/dist/runners/stream-json-parser.test.js.map +1 -1
  89. package/dist/types.d.ts +4 -4
  90. package/dist/utils/auth-path-store.js +7 -7
  91. package/dist/utils/auth-path-store.test.js +24 -29
  92. package/dist/utils/auth-path-store.test.js.map +1 -1
  93. package/dist/utils/auto-update.d.ts +4 -4
  94. package/dist/utils/auto-update.js +30 -28
  95. package/dist/utils/auto-update.js.map +1 -1
  96. package/dist/utils/auto-update.test.js +30 -30
  97. package/dist/utils/convention-evaluator.d.ts +1 -1
  98. package/dist/utils/convention-evaluator.js +22 -21
  99. package/dist/utils/convention-evaluator.js.map +1 -1
  100. package/dist/utils/convention-evaluator.test.js +120 -110
  101. package/dist/utils/convention-evaluator.test.js.map +1 -1
  102. package/dist/utils/convention-sync.d.ts +3 -3
  103. package/dist/utils/convention-sync.js +86 -18
  104. package/dist/utils/convention-sync.js.map +1 -1
  105. package/dist/utils/convention-sync.test.js +122 -30
  106. package/dist/utils/convention-sync.test.js.map +1 -1
  107. package/dist/utils/git-worktree.js +20 -18
  108. package/dist/utils/git-worktree.js.map +1 -1
  109. package/dist/utils/git-worktree.test.js +98 -98
  110. package/dist/utils/git-worktree.test.js.map +1 -1
  111. package/dist/utils/origin-issue-safeguard.js +35 -30
  112. package/dist/utils/origin-issue-safeguard.js.map +1 -1
  113. package/dist/utils/power-save-blocker.d.ts +4 -4
  114. package/dist/utils/power-save-blocker.js +33 -33
  115. package/dist/utils/power-save-blocker.test.js +37 -37
  116. package/dist/utils/power-save-blocker.test.js.map +1 -1
  117. package/dist/utils/runner-cleanup.d.ts +3 -3
  118. package/dist/utils/runner-cleanup.js +13 -13
  119. package/dist/utils/runner-cleanup.test.js +35 -35
  120. package/dist/utils/runner-history.js +3 -3
  121. package/dist/utils/runner-history.test.js +17 -17
  122. package/package.json +4 -1
  123. package/readme.md +10 -10
@@ -1,23 +1,23 @@
1
- import assert from "node:assert/strict";
2
- import { execFileSync } from "node:child_process";
3
- import { existsSync, lstatSync, mkdirSync, mkdtempSync, readFileSync, readlinkSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
4
- import { basename, dirname, join } from "node:path";
5
- import { tmpdir } from "node:os";
6
- import test from "node:test";
7
- import { isGitRepo, createWorktree, removeWorktree, resolveWorktreePath, normalizeClaudeSandboxPath } from "./git-worktree.js";
1
+ import assert from 'node:assert/strict';
2
+ import { execFileSync } from 'node:child_process';
3
+ import { existsSync, lstatSync, mkdirSync, mkdtempSync, readFileSync, readlinkSync, rmSync, unlinkSync, writeFileSync, } from 'node:fs';
4
+ import { basename, dirname, join } from 'node:path';
5
+ import { tmpdir } from 'node:os';
6
+ import test from 'node:test';
7
+ import { isGitRepo, createWorktree, removeWorktree, resolveWorktreePath, normalizeClaudeSandboxPath, } from './git-worktree.js';
8
8
  const makeTempGitRepo = () => {
9
- const dir = mkdtempSync(join(tmpdir(), "git-worktree-test-"));
10
- execFileSync("git", ["init", dir], { stdio: "pipe" });
11
- execFileSync("git", ["-C", dir, "config", "user.email", "test@test.com"], { stdio: "pipe" });
12
- execFileSync("git", ["-C", dir, "config", "user.name", "Test"], { stdio: "pipe" });
9
+ const dir = mkdtempSync(join(tmpdir(), 'git-worktree-test-'));
10
+ execFileSync('git', ['init', dir], { stdio: 'pipe' });
11
+ execFileSync('git', ['-C', dir, 'config', 'user.email', 'test@test.com'], { stdio: 'pipe' });
12
+ execFileSync('git', ['-C', dir, 'config', 'user.name', 'Test'], { stdio: 'pipe' });
13
13
  // Create an initial commit so HEAD exists
14
- execFileSync("git", ["-C", dir, "commit", "--allow-empty", "-m", "initial"], { stdio: "pipe" });
14
+ execFileSync('git', ['-C', dir, 'commit', '--allow-empty', '-m', 'initial'], { stdio: 'pipe' });
15
15
  return dir;
16
16
  };
17
17
  const cleanupDir = (dir) => {
18
18
  rmSync(dir, { recursive: true, force: true });
19
19
  };
20
- test("isGitRepo returns true for a git directory", () => {
20
+ test('isGitRepo returns true for a git directory', () => {
21
21
  const repo = makeTempGitRepo();
22
22
  try {
23
23
  assert.equal(isGitRepo(repo), true);
@@ -26,8 +26,8 @@ test("isGitRepo returns true for a git directory", () => {
26
26
  cleanupDir(repo);
27
27
  }
28
28
  });
29
- test("isGitRepo returns false for a non-git directory", () => {
30
- const dir = mkdtempSync(join(tmpdir(), "git-worktree-test-nongit-"));
29
+ test('isGitRepo returns false for a non-git directory', () => {
30
+ const dir = mkdtempSync(join(tmpdir(), 'git-worktree-test-nongit-'));
31
31
  try {
32
32
  assert.equal(isGitRepo(dir), false);
33
33
  }
@@ -35,18 +35,18 @@ test("isGitRepo returns false for a non-git directory", () => {
35
35
  cleanupDir(dir);
36
36
  }
37
37
  });
38
- test("isGitRepo returns false for a non-existent directory", () => {
39
- assert.equal(isGitRepo(join(tmpdir(), "nonexistent-dir-" + Date.now())), false);
38
+ test('isGitRepo returns false for a non-existent directory', () => {
39
+ assert.equal(isGitRepo(join(tmpdir(), 'nonexistent-dir-' + Date.now())), false);
40
40
  });
41
- test("resolveWorktreePath returns sibling directory path", () => {
42
- const authPath = join("home", "user", "projects", "my-repo");
43
- const worktreeId = "abc123";
44
- const expected = join("home", "user", "projects", ".my-repo-worktrees", "wt-abc123");
41
+ test('resolveWorktreePath returns sibling directory path', () => {
42
+ const authPath = join('home', 'user', 'projects', 'my-repo');
43
+ const worktreeId = 'abc123';
44
+ const expected = join('home', 'user', 'projects', '.my-repo-worktrees', 'wt-abc123');
45
45
  assert.equal(resolveWorktreePath(authPath, worktreeId), expected);
46
46
  });
47
- test("createWorktree creates worktree at expected path", () => {
47
+ test('createWorktree creates worktree at expected path', () => {
48
48
  const repo = makeTempGitRepo();
49
- const worktreeId = "test-wt-001";
49
+ const worktreeId = 'test-wt-001';
50
50
  try {
51
51
  const worktreePath = createWorktree(repo, { worktreeId });
52
52
  const repoName = basename(repo);
@@ -55,9 +55,9 @@ test("createWorktree creates worktree at expected path", () => {
55
55
  assert.equal(existsSync(worktreePath), true);
56
56
  assert.equal(isGitRepo(worktreePath), true);
57
57
  // Verify branch was created
58
- const branches = execFileSync("git", ["-C", repo, "branch", "--list", `worktree/${worktreeId}`], {
59
- stdio: "pipe",
60
- encoding: "utf8"
58
+ const branches = execFileSync('git', ['-C', repo, 'branch', '--list', `worktree/${worktreeId}`], {
59
+ stdio: 'pipe',
60
+ encoding: 'utf8',
61
61
  }).trim();
62
62
  assert.ok(branches.includes(`worktree/${worktreeId}`));
63
63
  }
@@ -69,21 +69,21 @@ test("createWorktree creates worktree at expected path", () => {
69
69
  cleanupDir(worktreeDir);
70
70
  }
71
71
  });
72
- test("createWorktree creates worktree from specified baseBranch", () => {
72
+ test('createWorktree creates worktree from specified baseBranch', () => {
73
73
  const repo = makeTempGitRepo();
74
- const worktreeId = "test-wt-branch";
74
+ const worktreeId = 'test-wt-branch';
75
75
  try {
76
- const initialBranch = execFileSync("git", ["-C", repo, "branch", "--show-current"], {
77
- stdio: "pipe",
78
- encoding: "utf8"
76
+ const initialBranch = execFileSync('git', ['-C', repo, 'branch', '--show-current'], {
77
+ stdio: 'pipe',
78
+ encoding: 'utf8',
79
79
  }).trim();
80
80
  // Create a branch to use as base
81
- execFileSync("git", ["-C", repo, "checkout", "-b", "feature-branch"], { stdio: "pipe" });
82
- execFileSync("git", ["-C", repo, "commit", "--allow-empty", "-m", "feature commit"], { stdio: "pipe" });
83
- execFileSync("git", ["-C", repo, "checkout", initialBranch], { stdio: "pipe" });
81
+ execFileSync('git', ['-C', repo, 'checkout', '-b', 'feature-branch'], { stdio: 'pipe' });
82
+ execFileSync('git', ['-C', repo, 'commit', '--allow-empty', '-m', 'feature commit'], { stdio: 'pipe' });
83
+ execFileSync('git', ['-C', repo, 'checkout', initialBranch], { stdio: 'pipe' });
84
84
  const worktreePath = createWorktree(repo, {
85
85
  worktreeId,
86
- baseBranch: "feature-branch"
86
+ baseBranch: 'feature-branch',
87
87
  });
88
88
  assert.equal(existsSync(worktreePath), true);
89
89
  assert.equal(isGitRepo(worktreePath), true);
@@ -94,9 +94,9 @@ test("createWorktree creates worktree from specified baseBranch", () => {
94
94
  cleanupDir(join(dirname(repo), `.${repoName}-worktrees`));
95
95
  }
96
96
  });
97
- test("createWorktree reuses existing worktree", () => {
97
+ test('createWorktree reuses existing worktree', () => {
98
98
  const repo = makeTempGitRepo();
99
- const worktreeId = "test-wt-reuse";
99
+ const worktreeId = 'test-wt-reuse';
100
100
  try {
101
101
  const firstPath = createWorktree(repo, { worktreeId });
102
102
  assert.equal(existsSync(firstPath), true);
@@ -112,20 +112,20 @@ test("createWorktree reuses existing worktree", () => {
112
112
  cleanupDir(join(dirname(repo), `.${repoName}-worktrees`));
113
113
  }
114
114
  });
115
- test("removeWorktree cleans up worktree and branch", () => {
115
+ test('removeWorktree cleans up worktree and branch', () => {
116
116
  const repo = makeTempGitRepo();
117
- const worktreeId = "test-wt-remove";
117
+ const worktreeId = 'test-wt-remove';
118
118
  try {
119
119
  const worktreePath = createWorktree(repo, { worktreeId });
120
120
  assert.equal(existsSync(worktreePath), true);
121
121
  removeWorktree(repo, worktreePath, worktreeId);
122
122
  assert.equal(existsSync(worktreePath), false);
123
123
  // Verify branch was deleted
124
- const branches = execFileSync("git", ["-C", repo, "branch", "--list", `worktree/${worktreeId}`], {
125
- stdio: "pipe",
126
- encoding: "utf8"
124
+ const branches = execFileSync('git', ['-C', repo, 'branch', '--list', `worktree/${worktreeId}`], {
125
+ stdio: 'pipe',
126
+ encoding: 'utf8',
127
127
  }).trim();
128
- assert.equal(branches, "");
128
+ assert.equal(branches, '');
129
129
  }
130
130
  finally {
131
131
  cleanupDir(repo);
@@ -133,15 +133,15 @@ test("removeWorktree cleans up worktree and branch", () => {
133
133
  cleanupDir(join(dirname(repo), `.${repoName}-worktrees`));
134
134
  }
135
135
  });
136
- test("createWorktree symlinks .agentteams from original repo", () => {
136
+ test('createWorktree symlinks .agentteams from original repo', () => {
137
137
  const repo = makeTempGitRepo();
138
- const worktreeId = "test-wt-symlink";
138
+ const worktreeId = 'test-wt-symlink';
139
139
  try {
140
140
  // Create .agentteams/ in the original repo
141
- const agentteamsDir = join(repo, ".agentteams");
141
+ const agentteamsDir = join(repo, '.agentteams');
142
142
  mkdirSync(agentteamsDir, { recursive: true });
143
143
  const worktreePath = createWorktree(repo, { worktreeId });
144
- const targetLink = join(worktreePath, ".agentteams");
144
+ const targetLink = join(worktreePath, '.agentteams');
145
145
  assert.equal(existsSync(targetLink), true);
146
146
  assert.equal(lstatSync(targetLink).isSymbolicLink(), true);
147
147
  assert.equal(readlinkSync(targetLink), agentteamsDir);
@@ -152,11 +152,11 @@ test("createWorktree symlinks .agentteams from original repo", () => {
152
152
  cleanupDir(join(dirname(repo), `.${repoName}-worktrees`));
153
153
  }
154
154
  });
155
- test("createWorktree throws for invalid (non-git) path", () => {
156
- const dir = mkdtempSync(join(tmpdir(), "git-worktree-test-invalid-"));
155
+ test('createWorktree throws for invalid (non-git) path', () => {
156
+ const dir = mkdtempSync(join(tmpdir(), 'git-worktree-test-invalid-'));
157
157
  try {
158
- assert.throws(() => createWorktree(dir, { worktreeId: "invalid-test" }), (err) => {
159
- assert.ok(err.message.includes("Not a git repository"));
158
+ assert.throws(() => createWorktree(dir, { worktreeId: 'invalid-test' }), (err) => {
159
+ assert.ok(err.message.includes('Not a git repository'));
160
160
  return true;
161
161
  });
162
162
  }
@@ -164,22 +164,22 @@ test("createWorktree throws for invalid (non-git) path", () => {
164
164
  cleanupDir(dir);
165
165
  }
166
166
  });
167
- test("createWorktree copies root .env files", () => {
167
+ test('createWorktree copies root .env files', () => {
168
168
  const repo = makeTempGitRepo();
169
- const worktreeId = "test-wt-env-root";
169
+ const worktreeId = 'test-wt-env-root';
170
170
  try {
171
171
  // Create .env and .env.local in the repo root
172
- writeFileSync(join(repo, ".env"), "ROOT_KEY=value");
173
- writeFileSync(join(repo, ".env.local"), "LOCAL_KEY=value");
172
+ writeFileSync(join(repo, '.env'), 'ROOT_KEY=value');
173
+ writeFileSync(join(repo, '.env.local'), 'LOCAL_KEY=value');
174
174
  const worktreePath = createWorktree(repo, { worktreeId });
175
- const envFile = join(worktreePath, ".env");
176
- const envLocalFile = join(worktreePath, ".env.local");
175
+ const envFile = join(worktreePath, '.env');
176
+ const envLocalFile = join(worktreePath, '.env.local');
177
177
  assert.equal(existsSync(envFile), true);
178
- assert.equal(lstatSync(envFile).isSymbolicLink(), false, ".env should be a copy, not a symlink");
179
- assert.equal(readFileSync(envFile, "utf8"), "ROOT_KEY=value");
178
+ assert.equal(lstatSync(envFile).isSymbolicLink(), false, '.env should be a copy, not a symlink');
179
+ assert.equal(readFileSync(envFile, 'utf8'), 'ROOT_KEY=value');
180
180
  assert.equal(existsSync(envLocalFile), true);
181
- assert.equal(lstatSync(envLocalFile).isSymbolicLink(), false, ".env.local should be a copy, not a symlink");
182
- assert.equal(readFileSync(envLocalFile, "utf8"), "LOCAL_KEY=value");
181
+ assert.equal(lstatSync(envLocalFile).isSymbolicLink(), false, '.env.local should be a copy, not a symlink');
182
+ assert.equal(readFileSync(envLocalFile, 'utf8'), 'LOCAL_KEY=value');
183
183
  }
184
184
  finally {
185
185
  cleanupDir(repo);
@@ -187,31 +187,31 @@ test("createWorktree copies root .env files", () => {
187
187
  cleanupDir(join(dirname(repo), `.${repoName}-worktrees`));
188
188
  }
189
189
  });
190
- test("createWorktree copies workspace-level .env files", () => {
190
+ test('createWorktree copies workspace-level .env files', () => {
191
191
  const repo = makeTempGitRepo();
192
- const worktreeId = "test-wt-env-ws";
192
+ const worktreeId = 'test-wt-env-ws';
193
193
  try {
194
194
  // Add .gitignore to ignore .env files (like a real project)
195
- writeFileSync(join(repo, ".gitignore"), ".env\n.env.*\n");
195
+ writeFileSync(join(repo, '.gitignore'), '.env\n.env.*\n');
196
196
  // Create workspace dirs with a tracked file so dirs exist in worktree
197
- mkdirSync(join(repo, "api"));
198
- mkdirSync(join(repo, "web"));
199
- writeFileSync(join(repo, "api", "index.ts"), "// api");
200
- writeFileSync(join(repo, "web", "index.ts"), "// web");
201
- execFileSync("git", ["-C", repo, "add", "-A"], { stdio: "pipe" });
202
- execFileSync("git", ["-C", repo, "commit", "-m", "add workspace dirs"], { stdio: "pipe" });
197
+ mkdirSync(join(repo, 'api'));
198
+ mkdirSync(join(repo, 'web'));
199
+ writeFileSync(join(repo, 'api', 'index.ts'), '// api');
200
+ writeFileSync(join(repo, 'web', 'index.ts'), '// web');
201
+ execFileSync('git', ['-C', repo, 'add', '-A'], { stdio: 'pipe' });
202
+ execFileSync('git', ['-C', repo, 'commit', '-m', 'add workspace dirs'], { stdio: 'pipe' });
203
203
  // Create .env files AFTER commit (gitignored, won't be in worktree)
204
- writeFileSync(join(repo, "api", ".env"), "DB_URL=postgres://...");
205
- writeFileSync(join(repo, "web", ".env"), "NEXT_PUBLIC_API=http://...");
204
+ writeFileSync(join(repo, 'api', '.env'), 'DB_URL=postgres://...');
205
+ writeFileSync(join(repo, 'web', '.env'), 'NEXT_PUBLIC_API=http://...');
206
206
  const worktreePath = createWorktree(repo, { worktreeId });
207
- const apiEnvFile = join(worktreePath, "api", ".env");
208
- const webEnvFile = join(worktreePath, "web", ".env");
207
+ const apiEnvFile = join(worktreePath, 'api', '.env');
208
+ const webEnvFile = join(worktreePath, 'web', '.env');
209
209
  assert.equal(existsSync(apiEnvFile), true);
210
- assert.equal(lstatSync(apiEnvFile).isSymbolicLink(), false, "api/.env should be a copy, not a symlink");
211
- assert.equal(readFileSync(apiEnvFile, "utf8"), "DB_URL=postgres://...");
210
+ assert.equal(lstatSync(apiEnvFile).isSymbolicLink(), false, 'api/.env should be a copy, not a symlink');
211
+ assert.equal(readFileSync(apiEnvFile, 'utf8'), 'DB_URL=postgres://...');
212
212
  assert.equal(existsSync(webEnvFile), true);
213
- assert.equal(lstatSync(webEnvFile).isSymbolicLink(), false, "web/.env should be a copy, not a symlink");
214
- assert.equal(readFileSync(webEnvFile, "utf8"), "NEXT_PUBLIC_API=http://...");
213
+ assert.equal(lstatSync(webEnvFile).isSymbolicLink(), false, 'web/.env should be a copy, not a symlink');
214
+ assert.equal(readFileSync(webEnvFile, 'utf8'), 'NEXT_PUBLIC_API=http://...');
215
215
  }
216
216
  finally {
217
217
  cleanupDir(repo);
@@ -219,26 +219,26 @@ test("createWorktree copies workspace-level .env files", () => {
219
219
  cleanupDir(join(dirname(repo), `.${repoName}-worktrees`));
220
220
  }
221
221
  });
222
- test("createWorktree skips .env files that already exist in worktree (git-tracked)", () => {
222
+ test('createWorktree skips .env files that already exist in worktree (git-tracked)', () => {
223
223
  const repo = makeTempGitRepo();
224
- const worktreeId = "test-wt-env-skip";
224
+ const worktreeId = 'test-wt-env-skip';
225
225
  try {
226
226
  // Create and commit .env.example (git-tracked — will exist in worktree)
227
- writeFileSync(join(repo, ".env.example"), "EXAMPLE=true");
228
- execFileSync("git", ["-C", repo, "add", ".env.example"], { stdio: "pipe" });
229
- execFileSync("git", ["-C", repo, "commit", "-m", "add env example"], { stdio: "pipe" });
227
+ writeFileSync(join(repo, '.env.example'), 'EXAMPLE=true');
228
+ execFileSync('git', ['-C', repo, 'add', '.env.example'], { stdio: 'pipe' });
229
+ execFileSync('git', ['-C', repo, 'commit', '-m', 'add env example'], { stdio: 'pipe' });
230
230
  // Also create .env (gitignored — should be copied)
231
- writeFileSync(join(repo, ".env"), "SECRET=value");
231
+ writeFileSync(join(repo, '.env'), 'SECRET=value');
232
232
  const worktreePath = createWorktree(repo, { worktreeId });
233
233
  // .env.example should NOT be overwritten (it's a regular file from git)
234
- const exampleFile = join(worktreePath, ".env.example");
234
+ const exampleFile = join(worktreePath, '.env.example');
235
235
  assert.equal(existsSync(exampleFile), true);
236
236
  assert.equal(lstatSync(exampleFile).isSymbolicLink(), false);
237
237
  // .env should be a copied file, not a symlink
238
- const envFile = join(worktreePath, ".env");
238
+ const envFile = join(worktreePath, '.env');
239
239
  assert.equal(existsSync(envFile), true);
240
- assert.equal(lstatSync(envFile).isSymbolicLink(), false, ".env should be a copy, not a symlink");
241
- assert.equal(readFileSync(envFile, "utf8"), "SECRET=value");
240
+ assert.equal(lstatSync(envFile).isSymbolicLink(), false, '.env should be a copy, not a symlink');
241
+ assert.equal(readFileSync(envFile, 'utf8'), 'SECRET=value');
242
242
  }
243
243
  finally {
244
244
  cleanupDir(repo);
@@ -246,13 +246,13 @@ test("createWorktree skips .env files that already exist in worktree (git-tracke
246
246
  cleanupDir(join(dirname(repo), `.${repoName}-worktrees`));
247
247
  }
248
248
  });
249
- test("removeWorktree throws for non-existent worktree path", () => {
249
+ test('removeWorktree throws for non-existent worktree path', () => {
250
250
  const repo = makeTempGitRepo();
251
- const worktreeId = "test-wt-already-gone";
251
+ const worktreeId = 'test-wt-already-gone';
252
252
  try {
253
253
  const worktreePath = resolveWorktreePath(repo, worktreeId);
254
254
  assert.throws(() => removeWorktree(repo, worktreePath, worktreeId), (err) => {
255
- assert.ok(err.message.includes("does not exist"));
255
+ assert.ok(err.message.includes('does not exist'));
256
256
  return true;
257
257
  });
258
258
  }
@@ -260,20 +260,20 @@ test("removeWorktree throws for non-existent worktree path", () => {
260
260
  cleanupDir(repo);
261
261
  }
262
262
  });
263
- test("normalizeClaudeSandboxPath returns absolute path as-is", () => {
264
- assert.equal(normalizeClaudeSandboxPath("/Users/justin/Project"), "/Users/justin/Project");
265
- assert.equal(normalizeClaudeSandboxPath("/home/user/repo"), "/home/user/repo");
263
+ test('normalizeClaudeSandboxPath returns absolute path as-is', () => {
264
+ assert.equal(normalizeClaudeSandboxPath('/Users/justin/Project'), '/Users/justin/Project');
265
+ assert.equal(normalizeClaudeSandboxPath('/home/user/repo'), '/home/user/repo');
266
266
  });
267
267
  // Claude Code runner uses --dangerously-skip-permissions, so no sandbox
268
268
  // or permission settings are written to settings.local.json.
269
- test("healWorktreeConfig restores missing .agentteams symlink on reuse", () => {
269
+ test('healWorktreeConfig restores missing .agentteams symlink on reuse', () => {
270
270
  const repo = makeTempGitRepo();
271
- const worktreeId = "test-wt-heal-symlink";
271
+ const worktreeId = 'test-wt-heal-symlink';
272
272
  try {
273
273
  // Create .agentteams/ in the original repo
274
- mkdirSync(join(repo, ".agentteams"), { recursive: true });
274
+ mkdirSync(join(repo, '.agentteams'), { recursive: true });
275
275
  const worktreePath = createWorktree(repo, { worktreeId });
276
- const targetLink = join(worktreePath, ".agentteams");
276
+ const targetLink = join(worktreePath, '.agentteams');
277
277
  // Verify symlink was created on first run
278
278
  assert.equal(lstatSync(targetLink).isSymbolicLink(), true);
279
279
  // Simulate broken state: remove the symlink
@@ -1 +1 @@
1
- {"version":3,"file":"git-worktree.test.js","sourceRoot":"","sources":["../../src/utils/git-worktree.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-worktree.test.js","sourceRoot":"","sources":["../../src/utils/git-worktree.test.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,13 @@
5
5
  * 러너 히스토리에서 플랜 생성이 감지되면,
6
6
  * `agentteams plan issue` CLI를 실행하여 이슈를 연결합니다.
7
7
  */
8
- import { execFile } from "node:child_process";
9
- import { readFile } from "node:fs/promises";
10
- import { logger } from "../logger.js";
8
+ import { execFile } from 'node:child_process';
9
+ import { readFile } from 'node:fs/promises';
10
+ import { logger } from '../logger.js';
11
11
  const ENTITY_TYPE_TO_PROVIDER = {
12
- GITHUB_ISSUE: "GITHUB",
13
- GITLAB_ISSUE: "GITLAB",
14
- LINEAR_ISSUE: "LINEAR",
12
+ GITHUB_ISSUE: 'GITHUB',
13
+ GITLAB_ISSUE: 'GITLAB',
14
+ LINEAR_ISSUE: 'LINEAR',
15
15
  };
16
16
  const ISSUE_ENTITY_TYPES = new Set(Object.keys(ENTITY_TYPE_TO_PROVIDER));
17
17
  /**
@@ -30,7 +30,7 @@ function extractIssueRefsFromText(text) {
30
30
  continue;
31
31
  const provider = ENTITY_TYPE_TO_PROVIDER[entityType];
32
32
  // rest may be "id" or "id:url" — for LINEAR_ISSUE it's typically a UUID
33
- const entityId = rest.split(":")[0];
33
+ const entityId = rest.split(':')[0];
34
34
  if (!entityId)
35
35
  continue;
36
36
  const key = `${provider}:${entityId}`;
@@ -40,7 +40,7 @@ function extractIssueRefsFromText(text) {
40
40
  results.push({
41
41
  provider,
42
42
  externalId: entityId,
43
- externalUrl: "", // URL not available from text format
43
+ externalUrl: '', // URL not available from text format
44
44
  externalTitle: label || undefined,
45
45
  });
46
46
  }
@@ -53,14 +53,14 @@ function extractIssueRefsFromTiptap(content) {
53
53
  const results = [];
54
54
  const seen = new Set();
55
55
  function walk(node) {
56
- if (node.type === "entityReference" && node.attrs) {
56
+ if (node.type === 'entityReference' && node.attrs) {
57
57
  const attrs = node.attrs;
58
58
  const entityType = attrs.entityType;
59
59
  const provider = ENTITY_TYPE_TO_PROVIDER[entityType];
60
60
  if (provider) {
61
- const entityId = attrs.entityId ?? "";
62
- const htmlUrl = attrs.htmlUrl ?? "";
63
- const label = attrs.label ?? "";
61
+ const entityId = attrs.entityId ?? '';
62
+ const htmlUrl = attrs.htmlUrl ?? '';
63
+ const label = attrs.label ?? '';
64
64
  if (entityId) {
65
65
  const key = `${provider}:${entityId}`;
66
66
  if (!seen.has(key)) {
@@ -88,7 +88,7 @@ function extractIssueRefsFromTiptap(content) {
88
88
  * 프롬프트에서 이슈 참조를 추출합니다 (문자열 / Tiptap JSON 모두 지원).
89
89
  */
90
90
  export function extractIssueRefsFromPrompt(prompt) {
91
- if (typeof prompt === "string") {
91
+ if (typeof prompt === 'string') {
92
92
  return extractIssueRefsFromText(prompt);
93
93
  }
94
94
  return extractIssueRefsFromTiptap(prompt);
@@ -105,14 +105,14 @@ function extractCreatedPlanIds(historyMarkdown) {
105
105
  // Pattern 3: UUID-like strings after "plan create" or "Plan created" context
106
106
  const uuidPattern = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi;
107
107
  // Look for lines that suggest plan creation
108
- const lines = historyMarkdown.split("\n");
108
+ const lines = historyMarkdown.split('\n');
109
109
  for (const line of lines) {
110
110
  const lower = line.toLowerCase();
111
- if (lower.includes("plan create") ||
112
- lower.includes("plan created") ||
113
- lower.includes("creating plan") ||
114
- lower.includes("plan-id") ||
115
- lower.includes("planid")) {
111
+ if (lower.includes('plan create') ||
112
+ lower.includes('plan created') ||
113
+ lower.includes('creating plan') ||
114
+ lower.includes('plan-id') ||
115
+ lower.includes('planid')) {
116
116
  const matches = line.match(uuidPattern);
117
117
  if (matches) {
118
118
  for (const id of matches) {
@@ -132,19 +132,24 @@ function extractCreatedPlanIds(historyMarkdown) {
132
132
  function execPlanIssue(cwd, planId, issue) {
133
133
  return new Promise((resolve) => {
134
134
  const args = [
135
- "plan", "issue",
136
- "--id", planId,
137
- "--provider", issue.provider,
138
- "--external-id", issue.externalId,
139
- "--external-url", issue.externalUrl || "unknown",
135
+ 'plan',
136
+ 'issue',
137
+ '--id',
138
+ planId,
139
+ '--provider',
140
+ issue.provider,
141
+ '--external-id',
142
+ issue.externalId,
143
+ '--external-url',
144
+ issue.externalUrl || 'unknown',
140
145
  ];
141
146
  if (issue.externalTitle) {
142
- args.push("--title", issue.externalTitle);
147
+ args.push('--title', issue.externalTitle);
143
148
  }
144
- execFile("agentteams", args, { cwd, timeout: 15000, windowsHide: true }, (error) => {
149
+ execFile('agentteams', args, { cwd, timeout: 15000, windowsHide: true }, (error) => {
145
150
  if (error) {
146
151
  // 409 or other failure — skip silently
147
- logger.warn("Origin issue safeguard: plan issue command failed", {
152
+ logger.warn('Origin issue safeguard: plan issue command failed', {
148
153
  planId,
149
154
  provider: issue.provider,
150
155
  externalId: issue.externalId,
@@ -170,7 +175,7 @@ export async function runOriginIssueSafeguard(prompt, historyPath, authPath) {
170
175
  // 2. 히스토리에서 플랜 생성 감지
171
176
  let historyContent;
172
177
  try {
173
- historyContent = await readFile(historyPath, "utf8");
178
+ historyContent = await readFile(historyPath, 'utf8');
174
179
  }
175
180
  catch {
176
181
  return; // 히스토리 파일 없으면 중단
@@ -179,7 +184,7 @@ export async function runOriginIssueSafeguard(prompt, historyPath, authPath) {
179
184
  if (planIds.length === 0)
180
185
  return;
181
186
  // 3. 각 플랜 × 이슈 조합에 대해 CLI 실행
182
- logger.info("Origin issue safeguard: linking issues to plans", {
187
+ logger.info('Origin issue safeguard: linking issues to plans', {
183
188
  planIds,
184
189
  issueCount: issueRefs.length,
185
190
  });
@@ -190,7 +195,7 @@ export async function runOriginIssueSafeguard(prompt, historyPath, authPath) {
190
195
  }
191
196
  }
192
197
  catch (error) {
193
- logger.warn("Origin issue safeguard failed (non-blocking)", {
198
+ logger.warn('Origin issue safeguard failed (non-blocking)', {
194
199
  error: error instanceof Error ? error.message : String(error),
195
200
  });
196
201
  }
@@ -1 +1 @@
1
- {"version":3,"file":"origin-issue-safeguard.js","sourceRoot":"","sources":["../../src/utils/origin-issue-safeguard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"origin-issue-safeguard.js","sourceRoot":"","sources":["../../src/utils/origin-issue-safeguard.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { execFileSync, spawn } from "node:child_process";
2
- import { logger } from "../logger.js";
3
- export type PowerSource = "AC" | "BATTERY" | "UNKNOWN";
1
+ import { execFileSync, spawn } from 'node:child_process';
2
+ import { logger } from '../logger.js';
3
+ export type PowerSource = 'AC' | 'BATTERY' | 'UNKNOWN';
4
4
  export type PowerSaveBlocker = {
5
5
  acquire: (label?: string) => () => void;
6
6
  };
@@ -8,7 +8,7 @@ type PowerSaveBlockerDeps = {
8
8
  platform?: () => NodeJS.Platform;
9
9
  spawn?: typeof spawn;
10
10
  execFileSync?: typeof execFileSync;
11
- logger?: Pick<typeof logger, "info" | "warn">;
11
+ logger?: Pick<typeof logger, 'info' | 'warn'>;
12
12
  setInterval?: typeof global.setInterval;
13
13
  clearInterval?: typeof global.clearInterval;
14
14
  recheckIntervalMs?: number;