agentrix 0.0.5 → 0.2.0

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 (105) hide show
  1. package/dist/api/auth.d.ts +11 -0
  2. package/dist/api/auth.d.ts.map +1 -1
  3. package/dist/api/auth.js +18 -3
  4. package/dist/api/auth.js.map +1 -1
  5. package/dist/api/automation.d.ts +27 -2
  6. package/dist/api/automation.d.ts.map +1 -1
  7. package/dist/api/automation.js +43 -15
  8. package/dist/api/automation.js.map +1 -1
  9. package/dist/api/base-handler.d.ts +9 -0
  10. package/dist/api/base-handler.d.ts.map +1 -1
  11. package/dist/api/base-handler.js +14 -12
  12. package/dist/api/base-handler.js.map +1 -1
  13. package/dist/api/create-plan.d.ts +11 -0
  14. package/dist/api/create-plan.d.ts.map +1 -1
  15. package/dist/api/create-plan.js +25 -10
  16. package/dist/api/create-plan.js.map +1 -1
  17. package/dist/api/git-status.d.ts +12 -0
  18. package/dist/api/git-status.d.ts.map +1 -1
  19. package/dist/api/git-status.js +20 -4
  20. package/dist/api/git-status.js.map +1 -1
  21. package/dist/api/plans.d.ts +18 -0
  22. package/dist/api/plans.d.ts.map +1 -1
  23. package/dist/api/plans.js +33 -14
  24. package/dist/api/plans.js.map +1 -1
  25. package/dist/api/repo-dashboard.d.ts.map +1 -1
  26. package/dist/api/repo-dashboard.js +4 -5
  27. package/dist/api/repo-dashboard.js.map +1 -1
  28. package/dist/api/repo-issue.d.ts.map +1 -1
  29. package/dist/api/repo-issue.js +6 -9
  30. package/dist/api/repo-issue.js.map +1 -1
  31. package/dist/api/repos.d.ts +5 -1
  32. package/dist/api/repos.d.ts.map +1 -1
  33. package/dist/api/repos.js +2 -2
  34. package/dist/api/repos.js.map +1 -1
  35. package/dist/api/sessions.d.ts +5 -1
  36. package/dist/api/sessions.d.ts.map +1 -1
  37. package/dist/api/sessions.js +2 -2
  38. package/dist/api/sessions.js.map +1 -1
  39. package/dist/api/tasks.d.ts +6 -1
  40. package/dist/api/tasks.d.ts.map +1 -1
  41. package/dist/api/tasks.js +7 -3
  42. package/dist/api/tasks.js.map +1 -1
  43. package/dist/api/terminal.d.ts +5 -2
  44. package/dist/api/terminal.d.ts.map +1 -1
  45. package/dist/api/terminal.js +2 -1
  46. package/dist/api/terminal.js.map +1 -1
  47. package/dist/api/worktrees.d.ts +5 -1
  48. package/dist/api/worktrees.d.ts.map +1 -1
  49. package/dist/api/worktrees.js +2 -2
  50. package/dist/api/worktrees.js.map +1 -1
  51. package/dist/cli/plans-command.d.ts +9 -0
  52. package/dist/cli/plans-command.d.ts.map +1 -1
  53. package/dist/cli/plans-command.js +17 -4
  54. package/dist/cli/plans-command.js.map +1 -1
  55. package/dist/cli/server-starter.d.ts +6 -0
  56. package/dist/cli/server-starter.d.ts.map +1 -1
  57. package/dist/cli/server-starter.js +14 -2
  58. package/dist/cli/server-starter.js.map +1 -1
  59. package/dist/core/agents.d.ts +11 -0
  60. package/dist/core/agents.d.ts.map +1 -1
  61. package/dist/core/agents.js +22 -8
  62. package/dist/core/agents.js.map +1 -1
  63. package/dist/core/auth.d.ts +10 -0
  64. package/dist/core/auth.d.ts.map +1 -1
  65. package/dist/core/auth.js +18 -4
  66. package/dist/core/auth.js.map +1 -1
  67. package/dist/core/branch-name.d.ts +10 -0
  68. package/dist/core/branch-name.d.ts.map +1 -1
  69. package/dist/core/branch-name.js +19 -6
  70. package/dist/core/branch-name.js.map +1 -1
  71. package/dist/core/plan-storage.js +2 -2
  72. package/dist/core/plan-storage.js.map +1 -1
  73. package/dist/repositories/git-repository.d.ts +6 -0
  74. package/dist/repositories/git-repository.d.ts.map +1 -1
  75. package/dist/repositories/git-repository.js +9 -1
  76. package/dist/repositories/git-repository.js.map +1 -1
  77. package/dist/repositories/repository-repository.d.ts +13 -0
  78. package/dist/repositories/repository-repository.d.ts.map +1 -1
  79. package/dist/repositories/repository-repository.js +29 -7
  80. package/dist/repositories/repository-repository.js.map +1 -1
  81. package/dist/repositories/worktree-repository.d.ts +11 -0
  82. package/dist/repositories/worktree-repository.d.ts.map +1 -1
  83. package/dist/repositories/worktree-repository.js +8 -1
  84. package/dist/repositories/worktree-repository.js.map +1 -1
  85. package/dist/services/repository-service.d.ts +14 -0
  86. package/dist/services/repository-service.d.ts.map +1 -1
  87. package/dist/services/repository-service.js +36 -8
  88. package/dist/services/repository-service.js.map +1 -1
  89. package/dist/services/session-service.d.ts +15 -0
  90. package/dist/services/session-service.d.ts.map +1 -1
  91. package/dist/services/session-service.js +38 -8
  92. package/dist/services/session-service.js.map +1 -1
  93. package/dist/services/terminal-service.d.ts +10 -0
  94. package/dist/services/terminal-service.d.ts.map +1 -1
  95. package/dist/services/terminal-service.js +30 -6
  96. package/dist/services/terminal-service.js.map +1 -1
  97. package/dist/utils/repository-cache.d.ts +11 -0
  98. package/dist/utils/repository-cache.d.ts.map +1 -1
  99. package/dist/utils/repository-cache.js +17 -2
  100. package/dist/utils/repository-cache.js.map +1 -1
  101. package/package.json +5 -3
  102. package/ui/dist/assets/{index-DysBePFX.js → index-Df_Dnr2P.js} +149 -134
  103. package/ui/dist/assets/index-Dq7NgFme.css +41 -0
  104. package/ui/dist/index.html +2 -2
  105. package/ui/dist/assets/index-CwB7gOl4.css +0 -41
@@ -1 +1 @@
1
- {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/api/plans.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAqCvD,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM;oBAC3B,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC;oBAmB9B,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC;EA0B5D"}
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/api/plans.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAmB,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,UAAU,iBAAiB;IACzB,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,qBAAqB,EAAE,OAAO,qBAAqB,CAAC;IACpD,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACjD;AAaD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAMpF;AAqCD,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM;oBAC3B,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC;oBAmB9B,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC;EA0B5D"}
package/dist/api/plans.js CHANGED
@@ -3,30 +3,49 @@ import { listPlansForWorktree, readPlanFromWorktree } from '../core/plan-storage
3
3
  import { sendJson } from '../utils/http.js';
4
4
  import { extractWorktreeParams } from '../validation/index.js';
5
5
  import { ValidationError, extractErrorMessage } from '../infrastructure/errors/index.js';
6
+ const defaultDependencies = {
7
+ getWorktreePath,
8
+ listPlansForWorktree,
9
+ readPlanFromWorktree,
10
+ extractWorktreeParams,
11
+ sendJson,
12
+ extractErrorMessage,
13
+ };
14
+ let activeDependencies = { ...defaultDependencies };
15
+ /**
16
+ * @internal Test hook to override plans dependencies
17
+ */
18
+ export function __setPlansTestOverrides(overrides) {
19
+ if (!overrides) {
20
+ activeDependencies = { ...defaultDependencies };
21
+ return;
22
+ }
23
+ activeDependencies = { ...activeDependencies, ...overrides };
24
+ }
6
25
  function parseCommonParams(context) {
7
26
  try {
8
- const { org, repo, branch } = extractWorktreeParams(context.url.searchParams);
27
+ const { org, repo, branch } = activeDependencies.extractWorktreeParams(context.url.searchParams);
9
28
  const limitParam = context.url.searchParams.get('limit');
10
29
  const limit = limitParam ? Number.parseInt(limitParam, 10) : undefined;
11
30
  if (limitParam && (Number.isNaN(limit) || (limit && limit < 1))) {
12
- sendJson(context.res, 400, { error: 'limit must be a positive integer' });
31
+ activeDependencies.sendJson(context.res, 400, { error: 'limit must be a positive integer' });
13
32
  return null;
14
33
  }
15
34
  return { org, repo, branch, limit };
16
35
  }
17
36
  catch (error) {
18
- const message = error instanceof ValidationError ? error.message : extractErrorMessage(error, 'Invalid parameters');
19
- sendJson(context.res, 400, { error: message });
37
+ const message = error instanceof ValidationError ? error.message : activeDependencies.extractErrorMessage(error, 'Invalid parameters');
38
+ activeDependencies.sendJson(context.res, 400, { error: message });
20
39
  return null;
21
40
  }
22
41
  }
23
42
  function handleResolutionError(res, error) {
24
- const message = extractErrorMessage(error, 'Unknown error');
43
+ const message = activeDependencies.extractErrorMessage(error, 'Unknown error');
25
44
  if (/not found/i.test(message)) {
26
- sendJson(res, 404, { error: message });
45
+ activeDependencies.sendJson(res, 404, { error: message });
27
46
  return;
28
47
  }
29
- sendJson(res, 500, { error: message });
48
+ activeDependencies.sendJson(res, 500, { error: message });
30
49
  }
31
50
  export function createPlanArtifactHandlers(workdir) {
32
51
  async function list(context) {
@@ -35,13 +54,13 @@ export function createPlanArtifactHandlers(workdir) {
35
54
  return;
36
55
  }
37
56
  try {
38
- const { worktreePath } = await getWorktreePath(workdir, parsed.org, parsed.repo, parsed.branch);
39
- const plans = await listPlansForWorktree({
57
+ const { worktreePath } = await activeDependencies.getWorktreePath(workdir, parsed.org, parsed.repo, parsed.branch);
58
+ const plans = await activeDependencies.listPlansForWorktree({
40
59
  worktreePath,
41
60
  branch: parsed.branch,
42
61
  limit: parsed.limit,
43
62
  });
44
- sendJson(context.res, 200, { data: plans });
63
+ activeDependencies.sendJson(context.res, 200, { data: plans });
45
64
  }
46
65
  catch (error) {
47
66
  handleResolutionError(context.res, error);
@@ -54,17 +73,17 @@ export function createPlanArtifactHandlers(workdir) {
54
73
  }
55
74
  const planId = (context.url.searchParams.get('planId') || '').trim();
56
75
  if (!planId) {
57
- sendJson(context.res, 400, { error: 'planId is required' });
76
+ activeDependencies.sendJson(context.res, 400, { error: 'planId is required' });
58
77
  return;
59
78
  }
60
79
  try {
61
- const { worktreePath } = await getWorktreePath(workdir, parsed.org, parsed.repo, parsed.branch);
62
- const plan = await readPlanFromWorktree({
80
+ const { worktreePath } = await activeDependencies.getWorktreePath(workdir, parsed.org, parsed.repo, parsed.branch);
81
+ const plan = await activeDependencies.readPlanFromWorktree({
63
82
  worktreePath,
64
83
  branch: parsed.branch,
65
84
  id: planId,
66
85
  });
67
- sendJson(context.res, 200, { data: plan });
86
+ activeDependencies.sendJson(context.res, 200, { data: plan });
68
87
  }
69
88
  catch (error) {
70
89
  handleResolutionError(context.res, error);
@@ -1 +1 @@
1
- {"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/api/plans.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/api/plans.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"repo-dashboard.d.ts","sourceRoot":"","sources":["../../src/api/repo-dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAKvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACrC,eAAe,CAAC,EAAE,OAAO,mBAAmB,CAAC;IAC7C,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,sBAA2B;;EAkDlG"}
1
+ {"version":3,"file":"repo-dashboard.d.ts","sourceRoot":"","sources":["../../src/api/repo-dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAKvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACrC,eAAe,CAAC,EAAE,OAAO,mBAAmB,CAAC;IAC7C,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,sBAA2B;;EAiDlG"}
@@ -1,9 +1,9 @@
1
1
  import { ensureRepository, countLocalWorktrees } from '../core/git.js';
2
2
  import { createGithubClient } from '../core/github.js';
3
- import { sendJson, handleHeadRequest } from '../utils/http.js';
3
+ import { handleHeadRequest } from '../utils/http.js';
4
4
  import { extractRepositoryParams } from '../validation/index.js';
5
5
  import { createQueryHandler } from './base-handler.js';
6
- import { extractErrorMessage } from '../infrastructure/errors/error-handler.js';
6
+ import { HttpError } from '../infrastructure/errors/index.js';
7
7
  export function createRepoDashboardHandlers(workdir, overrides = {}) {
8
8
  const { githubClient = createGithubClient(), ensureRepo = ensureRepository, worktreeCounter = countLocalWorktrees, now = () => new Date(), } = overrides;
9
9
  const read = createQueryHandler(async (context) => {
@@ -13,10 +13,9 @@ export function createRepoDashboardHandlers(workdir, overrides = {}) {
13
13
  ({ repositoryPath } = await ensureRepo(workdir, org, repo));
14
14
  }
15
15
  catch (error) {
16
- const message = extractErrorMessage(error, 'Repository not found');
16
+ const message = error instanceof Error ? error.message : String(error);
17
17
  const statusCode = message.includes('not found') ? 404 : 500;
18
- sendJson(context.res, statusCode, { error: message });
19
- return;
18
+ throw new HttpError(message, statusCode);
20
19
  }
21
20
  if (context.method === 'HEAD') {
22
21
  handleHeadRequest(context.res);
@@ -1 +1 @@
1
- {"version":3,"file":"repo-dashboard.js","sourceRoot":"","sources":["../../src/api/repo-dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAUhF,MAAM,UAAU,2BAA2B,CAAC,OAAe,EAAE,YAAoC,EAAE;IACjG,MAAM,EACJ,YAAY,GAAG,kBAAkB,EAAE,EACnC,UAAU,GAAG,gBAAgB,EAC7B,eAAe,GAAG,mBAAmB,EACrC,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,GACvB,GAAG,SAAS,CAAC;IAEd,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;QAChE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAExE,IAAI,cAAc,CAAC;QACnB,IAAI,CAAC;YACH,CAAC,EAAE,cAAc,EAAE,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;YACnE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7D,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,CAAC,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3F,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC;YAC7C,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC;YACvC,YAAY,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;YACtC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC;SAC9C,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;QAEtC,OAAO;YACL,IAAI,EAAE;gBACJ,GAAG;gBACH,IAAI;gBACJ,SAAS;gBACT,YAAY,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;gBACxC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE;gBACrD,SAAS,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;gBACxC,SAAS,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;aACpC;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"repo-dashboard.js","sourceRoot":"","sources":["../../src/api/repo-dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAU9D,MAAM,UAAU,2BAA2B,CAAC,OAAe,EAAE,YAAoC,EAAE;IACjG,MAAM,EACJ,YAAY,GAAG,kBAAkB,EAAE,EACnC,UAAU,GAAG,gBAAgB,EAC7B,eAAe,GAAG,mBAAmB,EACrC,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,GACvB,GAAG,SAAS,CAAC;IAEd,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;QAChE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAExE,IAAI,cAAc,CAAC;QACnB,IAAI,CAAC;YACH,CAAC,EAAE,cAAc,EAAE,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7D,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,CAAC,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3F,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC;YAC7C,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC;YACvC,YAAY,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;YACtC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC;SAC9C,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;QAEtC,OAAO;YACL,IAAI,EAAE;gBACJ,GAAG;gBACH,IAAI;gBACJ,SAAS;gBACT,YAAY,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;gBACxC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE;gBACrD,SAAS,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;gBACxC,SAAS,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;aACpC;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"repo-issue.d.ts","sourceRoot":"","sources":["../../src/api/repo-issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAKvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,kBAAuB;;EAkD1F"}
1
+ {"version":3,"file":"repo-issue.d.ts","sourceRoot":"","sources":["../../src/api/repo-issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAKvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,kBAAuB;;EA+C1F"}
@@ -1,8 +1,8 @@
1
1
  import { ensureRepository } from '../core/git.js';
2
2
  import { createGithubClient } from '../core/github.js';
3
- import { sendJson, handleHeadRequest } from '../utils/http.js';
3
+ import { handleHeadRequest } from '../utils/http.js';
4
4
  import { extractRepositoryParams } from '../validation/index.js';
5
- import { extractErrorMessage } from '../infrastructure/errors/index.js';
5
+ import { HttpError, ValidationError } from '../infrastructure/errors/index.js';
6
6
  import { createQueryHandler } from './base-handler.js';
7
7
  export function createRepoIssueHandlers(workdir, overrides = {}) {
8
8
  const { githubClient = createGithubClient(), ensureRepo = ensureRepository, now = () => new Date(), } = overrides;
@@ -10,22 +10,19 @@ export function createRepoIssueHandlers(workdir, overrides = {}) {
10
10
  const { org, repo } = extractRepositoryParams(context.url.searchParams);
11
11
  const issueParam = context.url.searchParams.get('issue')?.trim() || '';
12
12
  if (!issueParam) {
13
- sendJson(context.res, 400, { error: 'issue query parameter is required' });
14
- return;
13
+ throw new ValidationError('issue query parameter is required');
15
14
  }
16
15
  const issueNumber = Number.parseInt(issueParam, 10);
17
16
  if (!Number.isInteger(issueNumber) || issueNumber <= 0) {
18
- sendJson(context.res, 400, { error: 'issue query parameter must be a positive integer' });
19
- return;
17
+ throw new ValidationError('issue query parameter must be a positive integer');
20
18
  }
21
19
  try {
22
20
  await ensureRepo(workdir, org, repo);
23
21
  }
24
22
  catch (error) {
25
- const message = extractErrorMessage(error, 'Repository not found');
23
+ const message = error instanceof Error ? error.message : String(error);
26
24
  const statusCode = message.includes('not found') ? 404 : 500;
27
- sendJson(context.res, statusCode, { error: message });
28
- return;
25
+ throw new HttpError(message, statusCode);
29
26
  }
30
27
  if (context.method === 'HEAD') {
31
28
  handleHeadRequest(context.res);
@@ -1 +1 @@
1
- {"version":3,"file":"repo-issue.js","sourceRoot":"","sources":["../../src/api/repo-issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AASvD,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,YAAgC,EAAE;IACzF,MAAM,EACJ,YAAY,GAAG,kBAAkB,EAAE,EACnC,UAAU,GAAG,gBAAgB,EAC7B,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,GACvB,GAAG,SAAS,CAAC;IAEd,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;QAChE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAEvE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACvD,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;YACnE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7D,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;QAEtC,OAAO;YACL,IAAI,EAAE;gBACJ,GAAG;gBACH,IAAI;gBACJ,KAAK;gBACL,SAAS;aACV;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"repo-issue.js","sourceRoot":"","sources":["../../src/api/repo-issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AASvD,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,YAAgC,EAAE;IACzF,MAAM,EACJ,YAAY,GAAG,kBAAkB,EAAE,EACnC,UAAU,GAAG,gBAAgB,EAC7B,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,GACvB,GAAG,SAAS,CAAC;IAEd,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;QAChE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAEvE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,eAAe,CAAC,mCAAmC,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,eAAe,CAAC,kDAAkD,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7D,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;QAEtC,OAAO;YACL,IAAI,EAAE;gBACJ,GAAG;gBACH,IAAI;gBACJ,KAAK;gBACL,SAAS;aACV;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC"}
@@ -1,5 +1,9 @@
1
+ import { type RepositoryService } from '../services/index.js';
1
2
  import type { RequestContext } from '../types/http.js';
2
- export declare function createRepoHandlers(workdir: string): {
3
+ export interface RepoHandlersOverrides {
4
+ repositoryService?: RepositoryService;
5
+ }
6
+ export declare function createRepoHandlers(workdir: string, overrides?: RepoHandlersOverrides): {
3
7
  list: (context: RequestContext) => Promise<void>;
4
8
  create: (context: RequestContext) => Promise<void>;
5
9
  delete: (context: RequestContext) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"repos.d.ts","sourceRoot":"","sources":["../../src/api/repos.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOvD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM;;;;;;EA8CjD"}
1
+ {"version":3,"file":"repos.d.ts","sourceRoot":"","sources":["../../src/api/repos.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOvD,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,qBAA0B;;;;;;EA8CxF"}
package/dist/api/repos.js CHANGED
@@ -3,8 +3,8 @@ import { handleHeadRequest } from '../utils/http.js';
3
3
  import { asyncHandler } from '../infrastructure/errors/index.js';
4
4
  import { createHandler } from './base-handler.js';
5
5
  import { validateRepositoryCreate, validateRepositoryDelete, validateInitCommandUpdate, } from '../validation/index.js';
6
- export function createRepoHandlers(workdir) {
7
- const repositoryService = createRepositoryService(workdir);
6
+ export function createRepoHandlers(workdir, overrides = {}) {
7
+ const repositoryService = overrides.repositoryService ?? createRepositoryService(workdir);
8
8
  const list = asyncHandler(async (context) => {
9
9
  if (context.method === 'HEAD') {
10
10
  handleHeadRequest(context.res);
@@ -1 +1 @@
1
- {"version":3,"file":"repos.js","sourceRoot":"","sources":["../../src/api/repos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;QAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,aAAa,CAAC;QAC3B,SAAS,EAAE,wBAAwB;QACnC,OAAO,EAAE,KAAK,EAAE,KAA2C,EAAE,EAAE,CAC7D,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC;KAChE,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,aAAa,CAAC;QAC/B,SAAS,EAAE,wBAAwB;QACnC,OAAO,EAAE,KAAK,EAAE,KAAoC,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7E,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,aAAa,CAAC;QACtC,SAAS,EAAE,yBAAyB;QACpC,OAAO,EAAE,KAAK,EAAE,KAAyD,EAAE,EAAE;YAC3E,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACjG,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,IAAI;QACJ,MAAM;QACN,MAAM,EAAE,UAAU;QAClB,8CAA8C;QAC9C,OAAO,EAAE,UAAU;QACnB,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"repos.js","sourceRoot":"","sources":["../../src/api/repos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA0B,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAMhC,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,YAAmC,EAAE;IACvF,MAAM,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAE1F,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;QAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,aAAa,CAAC;QAC3B,SAAS,EAAE,wBAAwB;QACnC,OAAO,EAAE,KAAK,EAAE,KAA2C,EAAE,EAAE,CAC7D,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC;KAChE,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,aAAa,CAAC;QAC/B,SAAS,EAAE,wBAAwB;QACnC,OAAO,EAAE,KAAK,EAAE,KAAoC,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7E,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,aAAa,CAAC;QACtC,SAAS,EAAE,yBAAyB;QACpC,OAAO,EAAE,KAAK,EAAE,KAAyD,EAAE,EAAE;YAC3E,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACjG,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,IAAI;QACJ,MAAM;QACN,MAAM,EAAE,UAAU;QAClB,8CAA8C;QAC9C,OAAO,EAAE,UAAU;QACnB,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
@@ -1,5 +1,9 @@
1
+ import { type SessionService } from '../services/session-service.js';
1
2
  import type { RequestContext } from '../types/http.js';
2
- export declare function createSessionHandlers(workdir: string): {
3
+ export interface SessionHandlersOverrides {
4
+ sessionService?: SessionService;
5
+ }
6
+ export declare function createSessionHandlers(workdir: string, overrides?: SessionHandlersOverrides): {
3
7
  list: (context: RequestContext) => Promise<void>;
4
8
  };
5
9
  //# sourceMappingURL=sessions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/api/sessions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM;;EAiBpD"}
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/api/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAG3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,wBAA6B;;EAiB9F"}
@@ -1,8 +1,8 @@
1
1
  import { createSessionService } from '../services/session-service.js';
2
2
  import { handleHeadRequest } from '../utils/http.js';
3
3
  import { asyncHandler } from '../infrastructure/errors/index.js';
4
- export function createSessionHandlers(workdir) {
5
- const sessionService = createSessionService(workdir);
4
+ export function createSessionHandlers(workdir, overrides = {}) {
5
+ const sessionService = overrides.sessionService ?? createSessionService(workdir);
6
6
  const list = asyncHandler(async (context) => {
7
7
  if (context.method === 'HEAD') {
8
8
  handleHeadRequest(context.res);
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/api/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGjE,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;QAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/api/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,gCAAgC,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAOjE,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,YAAsC,EAAE;IAC7F,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEjF,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;QAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC"}
@@ -1,5 +1,10 @@
1
+ import { getTaskById, listTasks } from '../core/tasks.js';
1
2
  import type { RequestContext } from '../types/http.js';
2
- export declare function createTaskHandlers(): {
3
+ export interface TaskHandlersOverrides {
4
+ listTasks?: typeof listTasks;
5
+ getTaskById?: typeof getTaskById;
6
+ }
7
+ export declare function createTaskHandlers(overrides?: TaskHandlersOverrides): {
3
8
  list: (context: RequestContext) => Promise<void>;
4
9
  read: (context: RequestContext, taskId: string) => Promise<void>;
5
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/api/tasks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,wBAAgB,kBAAkB;;oBAKH,cAAc,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;EAgB5E"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/api/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,WAAW,CAAC;CAClC;AAED,wBAAgB,kBAAkB,CAAC,SAAS,GAAE,qBAA0B;;oBAQzC,cAAc,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;EAgB5E"}
package/dist/api/tasks.js CHANGED
@@ -1,8 +1,12 @@
1
1
  import { getTaskById, listTasks } from '../core/tasks.js';
2
2
  import { sendJson } from '../utils/http.js';
3
3
  import { createSimpleHandler } from './base-handler.js';
4
- export function createTaskHandlers() {
5
- const list = createSimpleHandler(async () => ({ tasks: listTasks() }));
4
+ export function createTaskHandlers(overrides = {}) {
5
+ const dependencies = {
6
+ listTasks: overrides.listTasks ?? listTasks,
7
+ getTaskById: overrides.getTaskById ?? getTaskById,
8
+ };
9
+ const list = createSimpleHandler(async () => ({ tasks: dependencies.listTasks() }));
6
10
  async function read(context, taskId) {
7
11
  const ctx = context;
8
12
  const id = typeof taskId === 'string' && taskId ? taskId : ctx?.params?.id;
@@ -10,7 +14,7 @@ export function createTaskHandlers() {
10
14
  sendJson(context.res, 400, { error: 'Task identifier is required' });
11
15
  return;
12
16
  }
13
- const task = getTaskById(id);
17
+ const task = dependencies.getTaskById(id);
14
18
  if (!task) {
15
19
  sendJson(context.res, 404, { error: 'Task not found' });
16
20
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/api/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,UAAU,kBAAkB;IAChC,MAAM,IAAI,GAAG,mBAAmB,CAC9B,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CACrC,CAAC;IAEF,KAAK,UAAU,IAAI,CAAC,OAAuB,EAAE,MAAc;QACzD,MAAM,GAAG,GAAG,OAAwD,CAAC;QACrE,MAAM,EAAE,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;QAC3E,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/api/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAQxD,MAAM,UAAU,kBAAkB,CAAC,YAAmC,EAAE;IACtE,MAAM,YAAY,GAAG;QACnB,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,SAAS;QAC3C,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,WAAW;KAClD,CAAC;IAEF,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAEpF,KAAK,UAAU,IAAI,CAAC,OAAuB,EAAE,MAAc;QACzD,MAAM,GAAG,GAAG,OAAwD,CAAC;QACrE,MAAM,EAAE,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;QAC3E,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
@@ -1,6 +1,9 @@
1
- export declare function createTerminalHandlers(workdir: string, options?: {
1
+ import { type TerminalService } from '../services/index.js';
2
+ export interface TerminalHandlerOptions {
2
3
  mode?: string;
3
- }): {
4
+ terminalService?: TerminalService;
5
+ }
6
+ export declare function createTerminalHandlers(workdir: string, options?: TerminalHandlerOptions): {
4
7
  open: (context: import("../types/http.js").RequestContext) => Promise<void>;
5
8
  send: (context: import("../types/http.js").RequestContext) => Promise<void>;
6
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/api/terminal.ts"],"names":[],"mappings":"AAKA,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO;;;EActF"}
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/api/terminal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKnF,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B;;;EAe3F"}
@@ -2,7 +2,8 @@ import { createTerminalService } from '../services/index.js';
2
2
  import { createHandler } from './base-handler.js';
3
3
  import { validateTerminalOpen, validateTerminalSend } from '../validation/index.js';
4
4
  export function createTerminalHandlers(workdir, options = {}) {
5
- const terminalService = createTerminalService(workdir, options);
5
+ const { mode, terminalService: providedTerminalService } = options;
6
+ const terminalService = providedTerminalService ?? createTerminalService(workdir, mode ? { mode } : {});
6
7
  const open = createHandler({
7
8
  validator: validateTerminalOpen,
8
9
  handler: async (input) => terminalService.openTerminal(input),
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/api/terminal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,UAA6B,EAAE;IACrF,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEhE,MAAM,IAAI,GAAG,aAAa,CAAC;QACzB,SAAS,EAAE,oBAAoB;QAC/B,OAAO,EAAE,KAAK,EAAE,KAAwB,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC;KACjF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,aAAa,CAAC;QACzB,SAAS,EAAE,oBAAoB;QAC/B,OAAO,EAAE,KAAK,EAAE,KAAwB,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;KAC9E,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/api/terminal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAwB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAQpF,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,UAAkC,EAAE;IAC1F,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC;IACnE,MAAM,eAAe,GAAG,uBAAuB,IAAI,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAExG,MAAM,IAAI,GAAG,aAAa,CAAC;QACzB,SAAS,EAAE,oBAAoB;QAC/B,OAAO,EAAE,KAAK,EAAE,KAAwB,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC;KACjF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,aAAa,CAAC;QACzB,SAAS,EAAE,oBAAoB;QAC/B,OAAO,EAAE,KAAK,EAAE,KAAwB,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;KAC9E,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
@@ -1,4 +1,8 @@
1
- export declare function createWorktreeHandlers(workdir: string, branchNameGenerator: unknown, defaultBranchConfig: unknown): {
1
+ import { type WorktreeService } from '../services/index.js';
2
+ export interface WorktreeHandlerOverrides {
3
+ worktreeService?: WorktreeService;
4
+ }
5
+ export declare function createWorktreeHandlers(workdir: string, branchNameGenerator: unknown, defaultBranchConfig: unknown, overrides?: WorktreeHandlerOverrides): {
2
6
  create: (context: import("../types/http.js").RequestContext) => Promise<void>;
3
7
  delete: (context: import("../types/http.js").RequestContext) => Promise<void>;
4
8
  upsert: (context: import("../types/http.js").RequestContext) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"worktrees.d.ts","sourceRoot":"","sources":["../../src/api/worktrees.ts"],"names":[],"mappings":"AAKA,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,OAAO,EAC5B,mBAAmB,EAAE,OAAO;;;;;EAyB7B"}
1
+ {"version":3,"file":"worktrees.d.ts","sourceRoot":"","sources":["../../src/api/worktrees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKnF,MAAM,WAAW,wBAAwB;IACvC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,OAAO,EAC5B,mBAAmB,EAAE,OAAO,EAC5B,SAAS,GAAE,wBAA6B;;;;;EA0BzC"}
@@ -1,8 +1,8 @@
1
1
  import { createWorktreeService } from '../services/index.js';
2
2
  import { createHandler } from './base-handler.js';
3
3
  import { validateWorktreeCreate, validateWorktreeDelete } from '../validation/index.js';
4
- export function createWorktreeHandlers(workdir, branchNameGenerator, defaultBranchConfig) {
5
- const worktreeService = createWorktreeService(workdir, branchNameGenerator, defaultBranchConfig);
4
+ export function createWorktreeHandlers(workdir, branchNameGenerator, defaultBranchConfig, overrides = {}) {
5
+ const worktreeService = overrides.worktreeService ?? createWorktreeService(workdir, branchNameGenerator, defaultBranchConfig);
6
6
  const createWorktree = createHandler({
7
7
  validator: validateWorktreeCreate,
8
8
  handler: async (input) => worktreeService.createWorktree(input),
@@ -1 +1 @@
1
- {"version":3,"file":"worktrees.js","sourceRoot":"","sources":["../../src/api/worktrees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGxF,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,mBAA4B,EAC5B,mBAA4B;IAE5B,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IAEjG,MAAM,cAAc,GAAG,aAAa,CAAC;QACnC,SAAS,EAAE,sBAAsB;QACjC,OAAO,EAAE,KAAK,EAAE,KAA0B,EAAE,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC;QACpF,WAAW,EAAE,GAAG;KACjB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,aAAa,CAAC;QACnC,SAAS,EAAE,sBAAsB;QACjC,OAAO,EAAE,KAAK,EAAE,KAA0B,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,cAAc;QACtB,gDAAgD;QAChD,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,cAAc;KACxB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"worktrees.js","sourceRoot":"","sources":["../../src/api/worktrees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAwB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAOxF,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,mBAA4B,EAC5B,mBAA4B,EAC5B,YAAsC,EAAE;IAExC,MAAM,eAAe,GACnB,SAAS,CAAC,eAAe,IAAI,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IAExG,MAAM,cAAc,GAAG,aAAa,CAAC;QACnC,SAAS,EAAE,sBAAsB;QACjC,OAAO,EAAE,KAAK,EAAE,KAA0B,EAAE,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC;QACpF,WAAW,EAAE,GAAG;KACjB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,aAAa,CAAC;QACnC,SAAS,EAAE,sBAAsB;QACjC,OAAO,EAAE,KAAK,EAAE,KAA0B,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,cAAc;QACtB,gDAAgD;QAChD,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,cAAc;KACxB,CAAC;AACJ,CAAC"}
@@ -1,3 +1,12 @@
1
+ import { getWorktreePath } from '../core/git.js';
2
+ import { listPlansForWorktree, readPlanFromWorktree } from '../core/plan-storage.js';
1
3
  export declare function printPlansHelp(): void;
4
+ interface PlansDependencies {
5
+ getWorktreePath: typeof getWorktreePath;
6
+ listPlansForWorktree: typeof listPlansForWorktree;
7
+ readPlanFromWorktree: typeof readPlanFromWorktree;
8
+ }
9
+ export declare function __setPlansCommandTestOverrides(overrides?: Partial<PlansDependencies>): void;
2
10
  export declare function handlePlansCommand(argv: string[]): Promise<void>;
11
+ export {};
3
12
  //# sourceMappingURL=plans-command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plans-command.d.ts","sourceRoot":"","sources":["../../src/cli/plans-command.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,IAAI,IAAI,CAiBrC;AA2GD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CtE"}
1
+ {"version":3,"file":"plans-command.d.ts","sourceRoot":"","sources":["../../src/cli/plans-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAGrF,wBAAgB,cAAc,IAAI,IAAI,CAiBrC;AAED,UAAU,iBAAiB;IACzB,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;CACnD;AAUD,wBAAgB,8BAA8B,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAM3F;AA2GD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CtE"}
@@ -19,6 +19,19 @@ Options:
19
19
  `;
20
20
  process.stdout.write(helpText);
21
21
  }
22
+ const defaultDependencies = {
23
+ getWorktreePath,
24
+ listPlansForWorktree,
25
+ readPlanFromWorktree,
26
+ };
27
+ let activeDependencies = { ...defaultDependencies };
28
+ export function __setPlansCommandTestOverrides(overrides) {
29
+ if (!overrides) {
30
+ activeDependencies = { ...defaultDependencies };
31
+ return;
32
+ }
33
+ activeDependencies = { ...activeDependencies, ...overrides };
34
+ }
22
35
  function parsePlansOptions(args) {
23
36
  const options = {
24
37
  org: '',
@@ -75,8 +88,8 @@ function parsePlansOptions(args) {
75
88
  return options;
76
89
  }
77
90
  async function handleListCommand(options) {
78
- const { worktreePath } = await getWorktreePath(options.workdir, options.org, options.repo, options.branch);
79
- const plans = await listPlansForWorktree({
91
+ const { worktreePath } = await activeDependencies.getWorktreePath(options.workdir, options.org, options.repo, options.branch);
92
+ const plans = await activeDependencies.listPlansForWorktree({
80
93
  worktreePath,
81
94
  branch: options.branch,
82
95
  limit: options.limit,
@@ -95,8 +108,8 @@ async function handleShowCommand(options) {
95
108
  process.exitCode = 1;
96
109
  return;
97
110
  }
98
- const { worktreePath } = await getWorktreePath(options.workdir, options.org, options.repo, options.branch);
99
- const plan = await readPlanFromWorktree({
111
+ const { worktreePath } = await activeDependencies.getWorktreePath(options.workdir, options.org, options.repo, options.branch);
112
+ const plan = await activeDependencies.readPlanFromWorktree({
100
113
  worktreePath,
101
114
  branch: options.branch,
102
115
  id: options.planId,
@@ -1 +1 @@
1
- {"version":3,"file":"plans-command.js","sourceRoot":"","sources":["../../src/cli/plans-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plans-command.js","sourceRoot":"","sources":["../../src/cli/plans-command.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { startServer, generateRandomPassword } from '../server/index.js';
1
2
  interface ServerConfig {
2
3
  uiPath: string;
3
4
  port: number;
@@ -21,6 +22,11 @@ interface ServerConfig {
21
22
  planLlm: string | null;
22
23
  terminalSessionMode: string;
23
24
  }
25
+ interface ServerStarterDependencies {
26
+ startServer: typeof startServer;
27
+ generateRandomPassword: typeof generateRandomPassword;
28
+ }
29
+ export declare function __setServerStarterTestOverrides(overrides?: Partial<ServerStarterDependencies>): void;
24
30
  export declare function startAppServer(config: ServerConfig): Promise<void>;
25
31
  export {};
26
32
  //# sourceMappingURL=server-starter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-starter.d.ts","sourceRoot":"","sources":["../../src/cli/server-starter.ts"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsExE"}
1
+ {"version":3,"file":"server-starter.d.ts","sourceRoot":"","sources":["../../src/cli/server-starter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEzE,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,yBAAyB;IACjC,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,sBAAsB,EAAE,OAAO,sBAAsB,CAAC;CACvD;AASD,wBAAgB,+BAA+B,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAMpG;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsExE"}
@@ -1,6 +1,18 @@
1
1
  import { startServer, generateRandomPassword } from '../server/index.js';
2
+ const defaultDependencies = {
3
+ startServer,
4
+ generateRandomPassword,
5
+ };
6
+ let activeDependencies = { ...defaultDependencies };
7
+ export function __setServerStarterTestOverrides(overrides) {
8
+ if (!overrides) {
9
+ activeDependencies = { ...defaultDependencies };
10
+ return;
11
+ }
12
+ activeDependencies = { ...activeDependencies, ...overrides };
13
+ }
2
14
  export async function startAppServer(config) {
3
- const chosenPassword = config.password || generateRandomPassword();
15
+ const chosenPassword = config.password || activeDependencies.generateRandomPassword();
4
16
  const passwordWasProvided = config.password !== null;
5
17
  const shouldPrintPassword = config.showPassword || !passwordWasProvided;
6
18
  const commandOverrides = {
@@ -20,7 +32,7 @@ export async function startAppServer(config) {
20
32
  overrides: config.defaultBranches || undefined,
21
33
  }
22
34
  : undefined;
23
- const { server: _server, host, port, uiPath: resolvedUi, close, password: serverPassword, publicUrl, } = await startServer({
35
+ const { server: _server, host, port, uiPath: resolvedUi, close, password: serverPassword, publicUrl, } = await activeDependencies.startServer({
24
36
  uiPath: config.uiPath,
25
37
  port: config.port,
26
38
  host: config.host,
@@ -1 +1 @@
1
- {"version":3,"file":"server-starter.js","sourceRoot":"","sources":["../../src/cli/server-starter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-starter.js","sourceRoot":"","sources":["../../src/cli/server-starter.ts"],"names":[],"mappings":"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"}