aicodeman 0.4.6 → 0.4.7

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 (127) hide show
  1. package/dist/orchestrator-loop.d.ts +124 -0
  2. package/dist/orchestrator-loop.d.ts.map +1 -0
  3. package/dist/orchestrator-loop.js +853 -0
  4. package/dist/orchestrator-loop.js.map +1 -0
  5. package/dist/orchestrator-planner.d.ts +58 -0
  6. package/dist/orchestrator-planner.d.ts.map +1 -0
  7. package/dist/orchestrator-planner.js +342 -0
  8. package/dist/orchestrator-planner.js.map +1 -0
  9. package/dist/orchestrator-verifier.d.ts +52 -0
  10. package/dist/orchestrator-verifier.d.ts.map +1 -0
  11. package/dist/orchestrator-verifier.js +234 -0
  12. package/dist/orchestrator-verifier.js.map +1 -0
  13. package/dist/prompts/index.d.ts +1 -0
  14. package/dist/prompts/index.d.ts.map +1 -1
  15. package/dist/prompts/index.js +1 -0
  16. package/dist/prompts/index.js.map +1 -1
  17. package/dist/prompts/orchestrator.d.ts +65 -0
  18. package/dist/prompts/orchestrator.d.ts.map +1 -0
  19. package/dist/prompts/orchestrator.js +112 -0
  20. package/dist/prompts/orchestrator.js.map +1 -0
  21. package/dist/state-store.d.ts +6 -0
  22. package/dist/state-store.d.ts.map +1 -1
  23. package/dist/state-store.js +21 -0
  24. package/dist/state-store.js.map +1 -1
  25. package/dist/types/app-state.d.ts +2 -0
  26. package/dist/types/app-state.d.ts.map +1 -1
  27. package/dist/types/app-state.js.map +1 -1
  28. package/dist/types/index.d.ts +2 -0
  29. package/dist/types/index.d.ts.map +1 -1
  30. package/dist/types/index.js +2 -0
  31. package/dist/types/index.js.map +1 -1
  32. package/dist/types/orchestrator.d.ts +211 -0
  33. package/dist/types/orchestrator.d.ts.map +1 -0
  34. package/dist/types/orchestrator.js +58 -0
  35. package/dist/types/orchestrator.js.map +1 -0
  36. package/dist/web/ports/index.d.ts +1 -0
  37. package/dist/web/ports/index.d.ts.map +1 -1
  38. package/dist/web/ports/orchestrator-port.d.ts +10 -0
  39. package/dist/web/ports/orchestrator-port.d.ts.map +1 -0
  40. package/dist/web/ports/orchestrator-port.js +6 -0
  41. package/dist/web/ports/orchestrator-port.js.map +1 -0
  42. package/dist/web/public/api-client.3adebdc2.js.gz +0 -0
  43. package/dist/web/public/app.cbf6e9e8.js +26 -0
  44. package/dist/web/public/app.cbf6e9e8.js.br +0 -0
  45. package/dist/web/public/app.cbf6e9e8.js.gz +0 -0
  46. package/dist/web/public/{constants.cd61abbc.js → constants.64161167.js} +14 -0
  47. package/dist/web/public/constants.64161167.js.br +0 -0
  48. package/dist/web/public/constants.64161167.js.gz +0 -0
  49. package/dist/web/public/index.html +23 -9
  50. package/dist/web/public/index.html.br +0 -0
  51. package/dist/web/public/index.html.gz +0 -0
  52. package/dist/web/public/input-cjk.92544c51.js.gz +0 -0
  53. package/dist/web/public/keyboard-accessory.9fb81db6.js.gz +0 -0
  54. package/dist/web/public/{mobile-handlers.80f3c520.js → mobile-handlers.1e2a8ef8.js} +1 -1
  55. package/dist/web/public/mobile-handlers.1e2a8ef8.js.br +0 -0
  56. package/dist/web/public/mobile-handlers.1e2a8ef8.js.gz +0 -0
  57. package/dist/web/public/{mobile.21b214b6.css → mobile.fdd28a54.css} +1 -1
  58. package/dist/web/public/mobile.fdd28a54.css.br +0 -0
  59. package/dist/web/public/{mobile.21b214b6.css.gz → mobile.fdd28a54.css.gz} +0 -0
  60. package/dist/web/public/notification-manager.2d5ea8ec.js.gz +0 -0
  61. package/dist/web/public/orchestrator-panel.js +475 -0
  62. package/dist/web/public/orchestrator-panel.js.br +0 -0
  63. package/dist/web/public/orchestrator-panel.js.gz +0 -0
  64. package/dist/web/public/{panels-ui.d7f6be08.js → panels-ui.3dd2e29b.js} +25 -25
  65. package/dist/web/public/panels-ui.3dd2e29b.js.br +0 -0
  66. package/dist/web/public/panels-ui.3dd2e29b.js.gz +0 -0
  67. package/dist/web/public/ralph-panel.7b014f16.js.gz +0 -0
  68. package/dist/web/public/ralph-wizard.f31ab90e.js.gz +0 -0
  69. package/dist/web/public/respawn-ui.372c6ea7.js.gz +0 -0
  70. package/dist/web/public/session-ui.0a07c3b7.js.gz +0 -0
  71. package/dist/web/public/settings-ui.94c57184.js.gz +0 -0
  72. package/dist/web/public/styles.8e110d27.css +1 -0
  73. package/dist/web/public/styles.8e110d27.css.br +0 -0
  74. package/dist/web/public/styles.8e110d27.css.gz +0 -0
  75. package/dist/web/public/subagent-windows.a366a4ad.js.gz +0 -0
  76. package/dist/web/public/sw.js.gz +0 -0
  77. package/dist/web/public/terminal-ui.9b40798a.js +3 -0
  78. package/dist/web/public/terminal-ui.9b40798a.js.br +0 -0
  79. package/dist/web/public/terminal-ui.9b40798a.js.gz +0 -0
  80. package/dist/web/public/upload.html.gz +0 -0
  81. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  82. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  83. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  84. package/dist/web/public/vendor/xterm-zerolag-input.137ad9f0.js.gz +0 -0
  85. package/dist/web/public/vendor/xterm.css.gz +0 -0
  86. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  87. package/dist/web/public/voice-input.085e9e73.js.gz +0 -0
  88. package/dist/web/routes/index.d.ts +1 -0
  89. package/dist/web/routes/index.d.ts.map +1 -1
  90. package/dist/web/routes/index.js +1 -0
  91. package/dist/web/routes/index.js.map +1 -1
  92. package/dist/web/routes/orchestrator-routes.d.ts +21 -0
  93. package/dist/web/routes/orchestrator-routes.d.ts.map +1 -0
  94. package/dist/web/routes/orchestrator-routes.js +230 -0
  95. package/dist/web/routes/orchestrator-routes.js.map +1 -0
  96. package/dist/web/routes/session-routes.d.ts.map +1 -1
  97. package/dist/web/routes/session-routes.js +62 -9
  98. package/dist/web/routes/session-routes.js.map +1 -1
  99. package/dist/web/schemas.d.ts +25 -0
  100. package/dist/web/schemas.d.ts.map +1 -1
  101. package/dist/web/schemas.js +22 -0
  102. package/dist/web/schemas.js.map +1 -1
  103. package/dist/web/server.d.ts +2 -0
  104. package/dist/web/server.d.ts.map +1 -1
  105. package/dist/web/server.js +23 -1
  106. package/dist/web/server.js.map +1 -1
  107. package/dist/web/sse-events.d.ts +37 -1
  108. package/dist/web/sse-events.d.ts.map +1 -1
  109. package/dist/web/sse-events.js +39 -1
  110. package/dist/web/sse-events.js.map +1 -1
  111. package/package.json +1 -1
  112. package/dist/web/public/app.9dab4ee2.js +0 -26
  113. package/dist/web/public/app.9dab4ee2.js.br +0 -0
  114. package/dist/web/public/app.9dab4ee2.js.gz +0 -0
  115. package/dist/web/public/constants.cd61abbc.js.br +0 -0
  116. package/dist/web/public/constants.cd61abbc.js.gz +0 -0
  117. package/dist/web/public/mobile-handlers.80f3c520.js.br +0 -0
  118. package/dist/web/public/mobile-handlers.80f3c520.js.gz +0 -0
  119. package/dist/web/public/mobile.21b214b6.css.br +0 -0
  120. package/dist/web/public/panels-ui.d7f6be08.js.br +0 -0
  121. package/dist/web/public/panels-ui.d7f6be08.js.gz +0 -0
  122. package/dist/web/public/styles.b8ec2f5a.css +0 -1
  123. package/dist/web/public/styles.b8ec2f5a.css.br +0 -0
  124. package/dist/web/public/styles.b8ec2f5a.css.gz +0 -0
  125. package/dist/web/public/terminal-ui.e4565c7b.js +0 -3
  126. package/dist/web/public/terminal-ui.e4565c7b.js.br +0 -0
  127. package/dist/web/public/terminal-ui.e4565c7b.js.gz +0 -0
@@ -0,0 +1,124 @@
1
+ /**
2
+ * @fileoverview Orchestrator Loop — phased plan execution with team agents.
3
+ *
4
+ * State machine that generates plans from user goals, executes them
5
+ * phase-by-phase with verification gates, and adapts on failure.
6
+ *
7
+ * States: idle → planning → approval → executing → verifying → (replanning) → completed/failed
8
+ *
9
+ * Key exports:
10
+ * - `OrchestratorLoop` class — main engine, extends EventEmitter
11
+ * - `OrchestratorLoopEvents` interface — typed event map
12
+ *
13
+ * Lifecycle: `start(goal)` → plan → approve → execute phases → verify → complete
14
+ *
15
+ * @dependencies orchestrator-planner (plan generation), orchestrator-verifier (phase verification),
16
+ * session-manager (sessions), task-queue (task execution), state-store (persistence),
17
+ * prompts/orchestrator (prompt templates)
18
+ * @consumedby web/server (orchestrator routes, SSE)
19
+ * @emits stateChanged, planReady, phaseStarted, phaseCompleted, phaseFailed,
20
+ * taskAssigned, taskCompleted, taskFailed, verificationResult, completed, error
21
+ * @persistence Orchestrator state saved to `~/.codeman/state.json` (orchestrator key)
22
+ *
23
+ * @module orchestrator-loop
24
+ */
25
+ import { EventEmitter } from 'node:events';
26
+ import type { TerminalMultiplexer } from './mux-interface.js';
27
+ import { type OrchestratorState, type OrchestratorPlan, type OrchestratorPhase, type OrchestratorTask, type OrchestratorConfig, type OrchestratorStats, type OrchestratorPersistState, type VerificationResult } from './types.js';
28
+ export interface OrchestratorLoopEvents {
29
+ stateChanged: (state: OrchestratorState, prevState: OrchestratorState) => void;
30
+ planProgress: (phase: string, detail: string) => void;
31
+ planReady: (plan: OrchestratorPlan) => void;
32
+ phaseStarted: (phase: OrchestratorPhase) => void;
33
+ phaseCompleted: (phase: OrchestratorPhase) => void;
34
+ phaseFailed: (phase: OrchestratorPhase, reason: string) => void;
35
+ taskAssigned: (task: OrchestratorTask, sessionId: string) => void;
36
+ taskCompleted: (task: OrchestratorTask) => void;
37
+ taskFailed: (task: OrchestratorTask, error: string) => void;
38
+ verificationResult: (phase: OrchestratorPhase, result: VerificationResult) => void;
39
+ completed: (stats: OrchestratorStats) => void;
40
+ error: (error: Error) => void;
41
+ }
42
+ export declare class OrchestratorLoop extends EventEmitter {
43
+ private _state;
44
+ private plan;
45
+ private currentPhaseIndex;
46
+ private config;
47
+ private stats;
48
+ private startedAt;
49
+ private completedAt;
50
+ private workingDir;
51
+ private planner;
52
+ private verifier;
53
+ private sessionManager;
54
+ private taskQueue;
55
+ private store;
56
+ /** State before pause (to resume to correct state) */
57
+ private pausedState;
58
+ /** Phase poll timer for checking task completion */
59
+ private phasePollTimer;
60
+ /** Phase-level timeout timer */
61
+ private phaseTimeoutTimer;
62
+ /** Post-phase delay timer before verification */
63
+ private postPhaseTimer;
64
+ /** Session completion listener (bound for cleanup) */
65
+ private sessionCompletionListener;
66
+ /** Active sessions assigned to current phase */
67
+ private phaseSessionIds;
68
+ constructor(mux: TerminalMultiplexer, workingDir: string, config?: Partial<OrchestratorConfig>);
69
+ /** Start orchestration with a goal. Transitions: idle → planning */
70
+ start(goal: string): Promise<void>;
71
+ /** Approve the generated plan. Transitions: approval → executing */
72
+ approve(): Promise<void>;
73
+ /** Reject plan with feedback. Transitions: approval → planning (regenerate) */
74
+ reject(feedback: string): Promise<void>;
75
+ /** Pause execution. Saves current state. */
76
+ pause(): void;
77
+ /** Resume from pause. */
78
+ resume(): Promise<void>;
79
+ /** Stop everything and clean up. */
80
+ stop(): Promise<void>;
81
+ /** Skip a specific phase. */
82
+ skipPhase(phaseId: string): Promise<void>;
83
+ /** Retry a failed phase. */
84
+ retryPhase(phaseId: string): Promise<void>;
85
+ get state(): OrchestratorState;
86
+ getPlan(): OrchestratorPlan | null;
87
+ getCurrentPhase(): OrchestratorPhase | null;
88
+ getStats(): OrchestratorStats;
89
+ getStatus(): OrchestratorPersistState;
90
+ isRunning(): boolean;
91
+ private executeCurrentPhase;
92
+ private assignPhaseTasks;
93
+ private assignTeamPhase;
94
+ private assignQueuedTasksToSessions;
95
+ private setupTaskHandlers;
96
+ private cleanupTaskHandlers;
97
+ private handleTaskCompleted;
98
+ private handleTaskFailed;
99
+ private startPhasePoll;
100
+ private clearPhasePoll;
101
+ private pollPhaseStatus;
102
+ private checkPhaseCompletion;
103
+ private verifyCurrentPhase;
104
+ private handleVerificationFailure;
105
+ private replanPhase;
106
+ /** Read current state (bypasses TypeScript narrowing from guards) */
107
+ private currentState;
108
+ /** Assert state matches expected or throw */
109
+ private requireState;
110
+ private setState;
111
+ private advanceToNextPhase;
112
+ private handleCompletion;
113
+ private handlePhaseError;
114
+ private handleError;
115
+ private persist;
116
+ private restore;
117
+ private reset;
118
+ private buildTaskPrompt;
119
+ private getCompletedPhasesSummary;
120
+ private findOrchestratorTaskByQueueId;
121
+ /** Clean up resources when the loop is being destroyed. */
122
+ destroy(): void;
123
+ }
124
+ //# sourceMappingURL=orchestrator-loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator-loop.d.ts","sourceRoot":"","sources":["../src/orchestrator-loop.ts"],"names":[],"mappings":"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"}