agentrix 0.8.0 → 0.11.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 (37) hide show
  1. package/dist/api/plan-mode.d.ts +12 -0
  2. package/dist/api/plan-mode.d.ts.map +1 -0
  3. package/dist/api/plan-mode.js +106 -0
  4. package/dist/api/plan-mode.js.map +1 -0
  5. package/dist/constants/plan-tags.d.ts +3 -0
  6. package/dist/constants/plan-tags.d.ts.map +1 -0
  7. package/dist/constants/plan-tags.js +3 -0
  8. package/dist/constants/plan-tags.js.map +1 -0
  9. package/dist/core/plan-mode-store.d.ts +71 -0
  10. package/dist/core/plan-mode-store.d.ts.map +1 -0
  11. package/dist/core/plan-mode-store.js +362 -0
  12. package/dist/core/plan-mode-store.js.map +1 -0
  13. package/dist/server/router.d.ts.map +1 -1
  14. package/dist/server/router.js +74 -0
  15. package/dist/server/router.js.map +1 -1
  16. package/dist/services/index.d.ts +1 -0
  17. package/dist/services/index.d.ts.map +1 -1
  18. package/dist/services/index.js +1 -0
  19. package/dist/services/index.js.map +1 -1
  20. package/dist/services/plan-mode-service.d.ts +55 -0
  21. package/dist/services/plan-mode-service.d.ts.map +1 -0
  22. package/dist/services/plan-mode-service.js +313 -0
  23. package/dist/services/plan-mode-service.js.map +1 -0
  24. package/dist/validation/index.d.ts +2 -0
  25. package/dist/validation/index.d.ts.map +1 -1
  26. package/dist/validation/index.js +1 -0
  27. package/dist/validation/index.js.map +1 -1
  28. package/dist/validation/schemas/plan-mode-schema.d.ts +27 -0
  29. package/dist/validation/schemas/plan-mode-schema.d.ts.map +1 -0
  30. package/dist/validation/schemas/plan-mode-schema.js +86 -0
  31. package/dist/validation/schemas/plan-mode-schema.js.map +1 -0
  32. package/package.json +1 -1
  33. package/ui/dist/assets/index-CuJgw2AA.css +41 -0
  34. package/ui/dist/assets/index-q8_8hBj8.js +373 -0
  35. package/ui/dist/index.html +2 -2
  36. package/ui/dist/assets/index-D3NYbc0T.css +0 -41
  37. package/ui/dist/assets/index-DR4f3mAT.js +0 -394
@@ -11,10 +11,12 @@ import { sendJson, readJsonBody } from '../utils/http.js';
11
11
  import { createConfigHandlers } from '../api/config.js';
12
12
  import { createPlanHandlers } from '../api/create-plan.js';
13
13
  import { createPlanArtifactHandlers } from '../api/plans.js';
14
+ import { createPlanModeHandlers } from '../api/plan-mode.js';
14
15
  import { createEventStreamHandler } from './events.js';
15
16
  import { createTaskHandlers } from '../api/tasks.js';
16
17
  import { createPortHandlers } from '../api/ports.js';
17
18
  import { createCodexSdkHandlers } from '../api/codex-sdk.js';
19
+ import { createWorktreeService, createPlanModeService } from '../services/index.js';
18
20
  const defaultDependencies = {
19
21
  createAuthHandlers,
20
22
  createAutomationHandlers,
@@ -66,6 +68,9 @@ export function createRouter({ authManager, workdir, agentCommands, automationAp
66
68
  const repoIssueHandlers = getDependency('createRepoIssueHandlers')(workdir);
67
69
  const sessionHandlers = getDependency('createSessionHandlers')(workdir);
68
70
  const worktreeHandlers = getDependency('createWorktreeHandlers')(workdir, branchNameGenerator, defaultBranches);
71
+ const worktreeService = createWorktreeService(workdir, branchNameGenerator, defaultBranches);
72
+ const planModeService = createPlanModeService({ workdir, defaultBranches, worktreeService });
73
+ const planModeHandlers = createPlanModeHandlers(planModeService);
69
74
  const terminalHandlers = getDependency('createTerminalHandlers')(workdir, {
70
75
  mode: terminalSessionMode,
71
76
  });
@@ -115,6 +120,16 @@ export function createRouter({ authManager, workdir, agentCommands, automationAp
115
120
  handlers: { GET: authHandlers.status, HEAD: authHandlers.status },
116
121
  },
117
122
  ],
123
+ [
124
+ '/api/plan-mode/plans',
125
+ {
126
+ requiresAuth: true,
127
+ handlers: {
128
+ GET: planModeHandlers.list,
129
+ POST: planModeHandlers.create,
130
+ },
131
+ },
132
+ ],
118
133
  [
119
134
  '/api/repos',
120
135
  {
@@ -325,6 +340,65 @@ export function createRouter({ authManager, workdir, agentCommands, automationAp
325
340
  }
326
341
  return true;
327
342
  }
343
+ if (url.pathname.startsWith('/api/plan-mode/plans/')) {
344
+ if (!authManager.isAuthenticated(req)) {
345
+ sendJsonResponse(res, 401, { error: 'Authentication required' });
346
+ return true;
347
+ }
348
+ const remainder = url.pathname.slice('/api/plan-mode/plans/'.length);
349
+ const segments = remainder.split('/').filter(Boolean);
350
+ if (segments.length === 0) {
351
+ sendJsonResponse(res, 404, { error: 'Plan not found' });
352
+ return true;
353
+ }
354
+ const [planId, action] = segments;
355
+ const method = req.method?.toUpperCase() || 'GET';
356
+ let handler = null;
357
+ let allowedMethods = [];
358
+ if (!action) {
359
+ allowedMethods = ['GET', 'PATCH', 'DELETE'];
360
+ if (method === 'GET') {
361
+ handler = planModeHandlers.read;
362
+ }
363
+ else if (method === 'PATCH') {
364
+ handler = planModeHandlers.update;
365
+ }
366
+ else if (method === 'DELETE') {
367
+ handler = planModeHandlers.destroy;
368
+ }
369
+ }
370
+ else if (action === 'session') {
371
+ allowedMethods = ['POST'];
372
+ if (method === 'POST') {
373
+ handler = planModeHandlers.startSession;
374
+ }
375
+ }
376
+ else if (action === 'build') {
377
+ allowedMethods = ['POST'];
378
+ if (method === 'POST') {
379
+ handler = planModeHandlers.build;
380
+ }
381
+ }
382
+ else {
383
+ sendJsonResponse(res, 404, { error: 'Plan not found' });
384
+ return true;
385
+ }
386
+ if (!handler) {
387
+ handleMethodNotAllowed(res, allowedMethods);
388
+ return true;
389
+ }
390
+ const context = {
391
+ req,
392
+ res,
393
+ url,
394
+ method,
395
+ params: { id: planId },
396
+ workdir,
397
+ readJsonBody: () => readJson(req),
398
+ };
399
+ await handler(context);
400
+ return true;
401
+ }
328
402
  const route = routes.get(url.pathname);
329
403
  if (!route) {
330
404
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/server/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/server/router.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export { TerminalService, createTerminalService } from './terminal-service.js';
6
6
  export type { TerminalOpenResult, TerminalSendResult, TerminalCloseResult } from './terminal-service.js';
7
7
  export { CodexSdkService, createCodexSdkService } from './codex-sdk-service.js';
8
8
  export type { CodexSdkSessionDetail } from './codex-sdk-service.js';
9
+ export { PlanModeService, createPlanModeService } from './plan-mode-service.js';
9
10
  export { AuthService, createAuthService } from './auth-service.js';
10
11
  export type { AuthResult } from './auth-service.js';
11
12
  export { SessionService, createSessionService } from './session-service.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACrF,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEzG,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAChF,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACrF,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEzG,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAChF,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
@@ -2,6 +2,7 @@ export { RepositoryService, createRepositoryService } from './repository-service
2
2
  export { WorktreeService, createWorktreeService } from './worktree-service.js';
3
3
  export { TerminalService, createTerminalService } from './terminal-service.js';
4
4
  export { CodexSdkService, createCodexSdkService } from './codex-sdk-service.js';
5
+ export { PlanModeService, createPlanModeService } from './plan-mode-service.js';
5
6
  export { AuthService, createAuthService } from './auth-service.js';
6
7
  export { SessionService, createSessionService } from './session-service.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGrF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGhF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGrF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGhF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { type PlanRecord, type PlanSource, type PlanStatus } from '../core/plan-mode-store.js';
2
+ import type { WorktreeService } from './worktree-service.js';
3
+ interface PlanModeServiceConfig {
4
+ workdir: string;
5
+ defaultBranches?: unknown;
6
+ worktreeService: WorktreeService;
7
+ }
8
+ interface PlanCreateOptions {
9
+ org: string;
10
+ repo: string;
11
+ title: string;
12
+ markdown: string;
13
+ source: PlanSource;
14
+ seedDescription?: string;
15
+ }
16
+ interface PlanUpdateOptions {
17
+ org: string;
18
+ repo: string;
19
+ id: string;
20
+ markdown: string;
21
+ updatedBy: 'user' | 'codex';
22
+ }
23
+ interface PlanBuildResult {
24
+ plan: PlanRecord;
25
+ taskId: string;
26
+ }
27
+ export declare class PlanModeService {
28
+ private readonly workdir;
29
+ private readonly defaultBranchConfig?;
30
+ private readonly worktreeService;
31
+ private readonly sessionSubscriptions;
32
+ private readonly planUpdateQueue;
33
+ constructor({ workdir, defaultBranches, worktreeService }: PlanModeServiceConfig);
34
+ list(org: string, repo: string): Promise<PlanRecord[]>;
35
+ read(org: string, repo: string, id: string): Promise<PlanRecord | null>;
36
+ create(options: PlanCreateOptions): Promise<PlanRecord>;
37
+ updateMarkdown(options: PlanUpdateOptions): Promise<PlanRecord>;
38
+ setStatus(org: string, repo: string, id: string, status: PlanStatus): Promise<PlanRecord>;
39
+ ensureSession(org: string, repo: string, id: string): Promise<PlanRecord>;
40
+ buildPlan(org: string, repo: string, id: string): Promise<PlanBuildResult>;
41
+ delete(org: string, repo: string, id: string): Promise<void>;
42
+ private resolveDefaultBranch;
43
+ private generateWorktreeBranch;
44
+ private branchExists;
45
+ private handlePlanUpdateError;
46
+ private attachSessionListener;
47
+ private detachSessionListener;
48
+ private enqueuePlanUpdateFromCodex;
49
+ private recreatePlanSession;
50
+ private scheduleInitialGeneration;
51
+ private generateInitialPlan;
52
+ }
53
+ export declare function createPlanModeService(config: PlanModeServiceConfig): PlanModeService;
54
+ export {};
55
+ //# sourceMappingURL=plan-mode-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-mode-service.d.ts","sourceRoot":"","sources":["../../src/services/plan-mode-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAS7D,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B;AASD,UAAU,eAAe;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAkBD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAU;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAiC;IACtE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;gBAExD,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,qBAAqB;IAM1E,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAUtD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAQvE,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAwBvD,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAY/D,SAAS,CACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,UAAU,CAAC;IAYhB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA4BzE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA6B1E,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAWpD,oBAAoB;YAMpB,sBAAsB;YAUtB,YAAY;IAU1B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,0BAA0B;YAuBpB,mBAAmB;IAoBjC,OAAO,CAAC,yBAAyB;YAenB,mBAAmB;CAgDlC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAEpF"}
@@ -0,0 +1,313 @@
1
+ import { ensureRepository, listWorktrees } from '../core/git.js';
2
+ import { selectDefaultBranchOverride, resolveDefaultBranch } from '../core/default-branch.js';
3
+ import { createPlan, deletePlan, listPlans, readPlan, updatePlan, } from '../core/plan-mode-store.js';
4
+ import { createCodexSdkSession, sendCodexSdkUserMessage, subscribeToCodexSdkEvents, } from '../core/codex-sdk-sessions.js';
5
+ import { NotFoundError } from '../infrastructure/errors/not-found-error.js';
6
+ import { PLAN_START_TAG, PLAN_END_TAG } from '../constants/plan-tags.js';
7
+ function normalisePlanMarkdown(text) {
8
+ const trimmed = (text ?? '').trim();
9
+ if (!trimmed) {
10
+ return '';
11
+ }
12
+ const taggedMatch = new RegExp(`${PLAN_START_TAG}([\\s\\S]+?)${PLAN_END_TAG}`, 'i').exec(trimmed);
13
+ if (taggedMatch && taggedMatch[1]) {
14
+ return taggedMatch[1].trim();
15
+ }
16
+ const fenced = /^```[a-zA-Z0-9-]*\s*([\s\S]+?)```$/m.exec(trimmed);
17
+ if (fenced && fenced[1]) {
18
+ return fenced[1].trim();
19
+ }
20
+ return trimmed;
21
+ }
22
+ export class PlanModeService {
23
+ workdir;
24
+ defaultBranchConfig;
25
+ worktreeService;
26
+ sessionSubscriptions = new Map();
27
+ planUpdateQueue = new Map();
28
+ constructor({ workdir, defaultBranches, worktreeService }) {
29
+ this.workdir = workdir;
30
+ this.defaultBranchConfig = defaultBranches;
31
+ this.worktreeService = worktreeService;
32
+ }
33
+ async list(org, repo) {
34
+ const plans = await listPlans({ workdir: this.workdir, org, repo });
35
+ plans.forEach((plan) => {
36
+ if (plan.codexSessionId) {
37
+ this.attachSessionListener(plan);
38
+ }
39
+ });
40
+ return plans;
41
+ }
42
+ async read(org, repo, id) {
43
+ const plan = await readPlan({ workdir: this.workdir, org, repo, id });
44
+ if (plan?.codexSessionId) {
45
+ this.attachSessionListener(plan);
46
+ }
47
+ return plan;
48
+ }
49
+ async create(options) {
50
+ const defaultBranch = await this.resolveDefaultBranch(options.org, options.repo);
51
+ const plan = await createPlan({ workdir: this.workdir, org: options.org, repo: options.repo }, {
52
+ title: options.title,
53
+ markdown: options.markdown,
54
+ source: options.source,
55
+ defaultBranch,
56
+ });
57
+ const seedDescription = options.seedDescription ?? options.markdown;
58
+ if (seedDescription?.trim()) {
59
+ const generationContext = {
60
+ title: options.title,
61
+ description: seedDescription,
62
+ issueNumber: options.source.type === 'issue' ? options.source.issueNumber : undefined,
63
+ issueUrl: options.source.type === 'issue' ? options.source.issueUrl : undefined,
64
+ };
65
+ this.scheduleInitialGeneration(plan, generationContext);
66
+ }
67
+ return plan;
68
+ }
69
+ async updateMarkdown(options) {
70
+ try {
71
+ return await updatePlan({ workdir: this.workdir, org: options.org, repo: options.repo, id: options.id }, { markdown: options.markdown, updatedBy: options.updatedBy });
72
+ }
73
+ catch (error) {
74
+ this.handlePlanUpdateError(error);
75
+ throw error;
76
+ }
77
+ }
78
+ async setStatus(org, repo, id, status) {
79
+ try {
80
+ return await updatePlan({ workdir: this.workdir, org, repo, id }, { status });
81
+ }
82
+ catch (error) {
83
+ this.handlePlanUpdateError(error);
84
+ throw error;
85
+ }
86
+ }
87
+ async ensureSession(org, repo, id) {
88
+ let plan = await this.read(org, repo, id);
89
+ if (!plan) {
90
+ throw new NotFoundError('Plan');
91
+ }
92
+ if (plan.codexSessionId) {
93
+ this.attachSessionListener(plan);
94
+ return plan;
95
+ }
96
+ const branch = await this.resolveDefaultBranch(org, repo);
97
+ const { summary } = await createCodexSdkSession({
98
+ workdir: this.workdir,
99
+ org,
100
+ repo,
101
+ branch,
102
+ label: `Plan · ${plan.title}`,
103
+ });
104
+ plan = await updatePlan({ workdir: this.workdir, org, repo, id }, {
105
+ codexSessionId: summary.id,
106
+ defaultBranch: branch,
107
+ });
108
+ this.attachSessionListener(plan);
109
+ return plan;
110
+ }
111
+ async buildPlan(org, repo, id) {
112
+ const plan = await this.read(org, repo, id);
113
+ if (!plan) {
114
+ throw new NotFoundError('Plan');
115
+ }
116
+ if (plan.status !== 'ready' && plan.status !== 'draft') {
117
+ throw new Error("Plan must be reviewed and marked as a draft or explicitly marked 'ready' before it can be built.");
118
+ }
119
+ const branch = await this.generateWorktreeBranch(plan);
120
+ const locked = await updatePlan({ workdir: this.workdir, org, repo, id }, { status: 'building', worktreeBranch: branch });
121
+ const task = await this.worktreeService.createWorktree({
122
+ org,
123
+ repo,
124
+ branch,
125
+ prompt: plan.markdown,
126
+ hasPrompt: Boolean(plan.markdown),
127
+ });
128
+ await deletePlan({ workdir: this.workdir, org, repo, id });
129
+ if (plan.codexSessionId) {
130
+ this.detachSessionListener(plan.codexSessionId);
131
+ }
132
+ return { plan: locked, taskId: task.taskId };
133
+ }
134
+ async delete(org, repo, id) {
135
+ const plan = await this.read(org, repo, id);
136
+ if (!plan) {
137
+ throw new NotFoundError('Plan');
138
+ }
139
+ await deletePlan({ workdir: this.workdir, org, repo, id });
140
+ if (plan.codexSessionId) {
141
+ this.detachSessionListener(plan.codexSessionId);
142
+ }
143
+ }
144
+ async resolveDefaultBranch(org, repo) {
145
+ const { repositoryPath } = await ensureRepository(this.workdir, org, repo);
146
+ const override = selectDefaultBranchOverride(this.defaultBranchConfig, org, repo);
147
+ return resolveDefaultBranch(repositoryPath, { override });
148
+ }
149
+ async generateWorktreeBranch(plan) {
150
+ const base = `feature/${plan.slug}`;
151
+ let candidate = base;
152
+ let suffix = 2;
153
+ while (await this.branchExists(plan.org, plan.repo, candidate)) {
154
+ candidate = `${base}-${suffix++}`;
155
+ }
156
+ return candidate;
157
+ }
158
+ async branchExists(org, repo, branch) {
159
+ try {
160
+ const { repositoryPath } = await ensureRepository(this.workdir, org, repo);
161
+ const worktrees = await listWorktrees(repositoryPath);
162
+ return worktrees.some((entry) => entry.branch === branch);
163
+ }
164
+ catch {
165
+ return false;
166
+ }
167
+ }
168
+ handlePlanUpdateError(error) {
169
+ if (error instanceof Error && /Plan not found/i.test(error.message)) {
170
+ throw new NotFoundError('Plan', error);
171
+ }
172
+ throw error;
173
+ }
174
+ attachSessionListener(plan) {
175
+ const sessionId = plan.codexSessionId;
176
+ if (!sessionId || this.sessionSubscriptions.has(sessionId)) {
177
+ return;
178
+ }
179
+ try {
180
+ const unsubscribe = subscribeToCodexSdkEvents(sessionId, (event) => {
181
+ if (event.type === 'agent_response' && event.text && plan.id) {
182
+ const markdown = normalisePlanMarkdown(event.text);
183
+ if (!markdown) {
184
+ return;
185
+ }
186
+ this.enqueuePlanUpdateFromCodex(plan, markdown);
187
+ }
188
+ });
189
+ this.sessionSubscriptions.set(sessionId, unsubscribe);
190
+ }
191
+ catch (error) {
192
+ if (error instanceof Error && /Codex SDK session not found/i.test(error.message)) {
193
+ void this.recreatePlanSession(plan);
194
+ return;
195
+ }
196
+ throw error;
197
+ }
198
+ }
199
+ detachSessionListener(sessionId) {
200
+ const unsubscribe = this.sessionSubscriptions.get(sessionId);
201
+ if (unsubscribe) {
202
+ this.sessionSubscriptions.delete(sessionId);
203
+ try {
204
+ unsubscribe();
205
+ }
206
+ catch {
207
+ // ignore unsubscribe errors
208
+ }
209
+ }
210
+ }
211
+ enqueuePlanUpdateFromCodex(plan, markdown) {
212
+ const key = `${plan.org}/${plan.repo}/${plan.id}`;
213
+ const previous = this.planUpdateQueue.get(key) ?? Promise.resolve();
214
+ const run = async () => {
215
+ await updatePlan({ workdir: this.workdir, org: plan.org, repo: plan.repo, id: plan.id }, { markdown, updatedBy: 'codex' });
216
+ };
217
+ const next = previous
218
+ .catch(() => { })
219
+ .then(run)
220
+ .catch((error) => {
221
+ console.warn('[agentrix] Failed to persist plan update from Codex:', error);
222
+ })
223
+ .finally(() => {
224
+ if (this.planUpdateQueue.get(key) === next) {
225
+ this.planUpdateQueue.delete(key);
226
+ }
227
+ });
228
+ this.planUpdateQueue.set(key, next);
229
+ }
230
+ async recreatePlanSession(plan) {
231
+ try {
232
+ const branch = plan.defaultBranch || (await this.resolveDefaultBranch(plan.org, plan.repo));
233
+ const { summary } = await createCodexSdkSession({
234
+ workdir: this.workdir,
235
+ org: plan.org,
236
+ repo: plan.repo,
237
+ branch,
238
+ label: `Plan · ${plan.title}`,
239
+ });
240
+ const refreshed = await updatePlan({ workdir: this.workdir, org: plan.org, repo: plan.repo, id: plan.id }, { codexSessionId: summary.id, defaultBranch: branch });
241
+ this.attachSessionListener(refreshed);
242
+ }
243
+ catch (error) {
244
+ console.warn('[agentrix] Failed to recreate Codex session for plan:', error);
245
+ }
246
+ }
247
+ scheduleInitialGeneration(plan, context) {
248
+ const trimmed = context.description.trim();
249
+ if (!trimmed) {
250
+ return;
251
+ }
252
+ const run = async () => {
253
+ try {
254
+ await this.generateInitialPlan(plan, { ...context, description: trimmed });
255
+ }
256
+ catch (error) {
257
+ console.warn('[agentrix] Failed to auto-generate plan via Codex:', error);
258
+ }
259
+ };
260
+ void run();
261
+ }
262
+ async generateInitialPlan(plan, context) {
263
+ const sessionPlan = await this.ensureSession(plan.org, plan.repo, plan.id);
264
+ const sessionId = sessionPlan.codexSessionId;
265
+ if (!sessionId) {
266
+ return;
267
+ }
268
+ const promptParts = [
269
+ `You are the lead engineer writing a delivery-ready plan for ${plan.org}/${plan.repo}.`,
270
+ 'Transform the description below into a single canonical planning doc using true Markdown headings (e.g., `#`, `##`, `###`).',
271
+ 'Required outline:',
272
+ '# Overview',
273
+ ' - one paragraph summary + explicit success criteria.',
274
+ '# Scope & Constraints',
275
+ ' - numbered bullets of in-scope items, out-of-scope items, APIs/infra assumptions.',
276
+ '# Implementation Plan',
277
+ ' - for each subsystem (Backend, Frontend, Mobile, Tooling, etc.) use `## <Subsystem>` headings containing:',
278
+ ' * ordered steps written with imperative verbs.',
279
+ ' * callouts for files/modules likely touched.',
280
+ ' * notes about shared helpers or feature flags.',
281
+ '# Testing & Validation',
282
+ ' - subsections for Automated, Manual QA, Telemetry.',
283
+ '# Risks & Mitigations',
284
+ ' - Markdown table with columns Risk / Impact / Mitigation.',
285
+ '# Done Checklist',
286
+ ' - checkbox list engineers tick as they ship.',
287
+ '',
288
+ `Enclose the final document between the literal tags "${PLAN_START_TAG}" and "${PLAN_END_TAG}" (no additional text outside the tags).`,
289
+ 'Do not wrap the plan in triple backticks or include extra commentary outside the tagged block.',
290
+ '',
291
+ 'Ground everything in the repository context and keep formatting to GitHub-flavoured markdown.',
292
+ 'Ensure the plan is specific enough that another engineer can begin coding immediately.',
293
+ ];
294
+ promptParts.push('');
295
+ promptParts.push('Feature description:');
296
+ if (context.issueNumber) {
297
+ const issueLine = context.issueUrl
298
+ ? `Issue #${context.issueNumber}: ${context.issueUrl}`
299
+ : `Issue #${context.issueNumber}`;
300
+ promptParts.push(issueLine);
301
+ }
302
+ if (context.title) {
303
+ promptParts.push(`Title: ${context.title}`);
304
+ }
305
+ promptParts.push(context.description);
306
+ const prompt = promptParts.join('\n');
307
+ await sendCodexSdkUserMessage(sessionId, prompt);
308
+ }
309
+ }
310
+ export function createPlanModeService(config) {
311
+ return new PlanModeService(config);
312
+ }
313
+ //# sourceMappingURL=plan-mode-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-mode-service.js","sourceRoot":"","sources":["../../src/services/plan-mode-service.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,7 @@ export { validateTerminalOpen, validateTerminalSend, validateTerminalClose } fro
7
7
  export type { TerminalOpenInput, TerminalSendInput, TerminalCloseInput } from './schemas/terminal-schema.js';
8
8
  export { validateCodexSessionList, validateCodexSessionCreate, validateCodexSessionId, } from './schemas/codex-sdk-schema.js';
9
9
  export type { CodexSessionWorktreeInput, CodexSessionCreateInput, CodexSessionIdInput, } from './schemas/codex-sdk-schema.js';
10
+ export { validatePlanListInput, validatePlanIdentifyInput, validatePlanCreateInput, validatePlanUpdateInput, validatePlanDeleteInput, } from './schemas/plan-mode-schema.js';
11
+ export type { PlanListInput, PlanIdentifyInput, PlanCreateInput, PlanUpdateInput, PlanDeleteInput, } from './schemas/plan-mode-schema.js';
10
12
  export { ValidationError } from '../infrastructure/errors/index.js';
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,EAC3B,eAAe,EACf,4BAA4B,EAC5B,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC/H,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE3H,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC9F,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAE7F,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACjH,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAE7G,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,EAC3B,eAAe,EACf,4BAA4B,EAC5B,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC/H,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE3H,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC9F,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAE7F,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACjH,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAE7G,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC"}
@@ -3,5 +3,6 @@ export { validateRepositoryCreate, validateRepositoryDelete, validateInitCommand
3
3
  export { validateWorktreeCreate, validateWorktreeDelete } from './schemas/worktree-schema.js';
4
4
  export { validateTerminalOpen, validateTerminalSend, validateTerminalClose } from './schemas/terminal-schema.js';
5
5
  export { validateCodexSessionList, validateCodexSessionCreate, validateCodexSessionId, } from './schemas/codex-sdk-schema.js';
6
+ export { validatePlanListInput, validatePlanIdentifyInput, validatePlanCreateInput, validatePlanUpdateInput, validatePlanDeleteInput, } from './schemas/plan-mode-schema.js';
6
7
  export { ValidationError } from '../infrastructure/errors/index.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,EAC3B,eAAe,EACf,4BAA4B,EAC5B,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG/H,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG9F,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGjH,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAOvC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,EAC3B,eAAe,EACf,4BAA4B,EAC5B,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG/H,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG9F,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGjH,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAOvC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AASvC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { PlanSource, PlanStatus } from '../../core/plan-mode-store.js';
2
+ export interface PlanIdentifyInput {
3
+ org: string;
4
+ repo: string;
5
+ id: string;
6
+ }
7
+ export interface PlanListInput {
8
+ org: string;
9
+ repo: string;
10
+ }
11
+ export interface PlanCreateInput extends PlanListInput {
12
+ title: string;
13
+ markdown: string;
14
+ source: PlanSource;
15
+ seedDescription?: string;
16
+ }
17
+ export interface PlanUpdateInput extends PlanIdentifyInput {
18
+ markdown?: string;
19
+ status?: PlanStatus;
20
+ }
21
+ export type PlanDeleteInput = PlanIdentifyInput;
22
+ export declare function validatePlanListInput(payload: unknown): PlanListInput;
23
+ export declare function validatePlanIdentifyInput(params: unknown, query: unknown): PlanIdentifyInput;
24
+ export declare function validatePlanCreateInput(payload: unknown): PlanCreateInput;
25
+ export declare function validatePlanUpdateInput(payload: unknown): PlanUpdateInput;
26
+ export declare function validatePlanDeleteInput(payload: unknown): PlanDeleteInput;
27
+ //# sourceMappingURL=plan-mode-schema.d.ts.map