tycono 0.1.95-beta.1 → 0.1.95-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tycono",
3
- "version": "0.1.95-beta.1",
3
+ "version": "0.1.95-beta.2",
4
4
  "description": "Build an AI company. Watch them work.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -218,6 +218,7 @@ function handleStartJob(body: Record<string, unknown>, res: ServerResponse): voi
218
218
  }
219
219
 
220
220
  const targetRoles = body.targetRoles as string[] | undefined;
221
+ const continuous = body.continuous === true;
221
222
 
222
223
  // Always use supervisor mode — CEO supervises C-Levels who supervise members
223
224
  {
@@ -225,6 +226,7 @@ function handleStartJob(body: Record<string, unknown>, res: ServerResponse): voi
225
226
  `wave-${Date.now()}`,
226
227
  directive,
227
228
  targetRoles && targetRoles.length > 0 ? targetRoles : undefined,
229
+ continuous,
228
230
  );
229
231
 
230
232
  if (state.status === 'error') {
@@ -677,20 +679,22 @@ function handleWave(body: Record<string, unknown>, req: IncomingMessage, res: Se
677
679
  }
678
680
 
679
681
  const targetRoles = body.targetRoles as string[] | undefined;
682
+ const continuous = body.continuous === true;
680
683
 
681
684
  // Always supervisor mode — CEO supervises C-Levels
682
- handleWaveSupervisor(directive, targetRoles, req, res);
685
+ handleWaveSupervisor(directive, targetRoles, continuous, req, res);
683
686
  }
684
687
 
685
688
  /**
686
689
  * Supervisor mode: Start a single CEO Supervisor session that dispatches C-Levels.
687
690
  * The supervisor uses dispatch/watch/amend tools — same pattern as any supervisor node.
688
691
  */
689
- function handleWaveSupervisor(directive: string, targetRoles: string[] | undefined, req: IncomingMessage, res: ServerResponse): void {
692
+ function handleWaveSupervisor(directive: string, targetRoles: string[] | undefined, continuous: boolean, req: IncomingMessage, res: ServerResponse): void {
690
693
  const state = supervisorHeartbeat.start(
691
694
  `wave-${Date.now()}`,
692
695
  directive,
693
696
  targetRoles && targetRoles.length > 0 ? targetRoles : undefined,
697
+ continuous,
694
698
  );
695
699
 
696
700
  if (state.status === 'error') {
@@ -24,6 +24,7 @@ interface SupervisorState {
24
24
  waveId: string;
25
25
  directive: string;
26
26
  targetRoles?: string[];
27
+ continuous: boolean;
27
28
  supervisorSessionId: string | null;
28
29
  executionId: string | null;
29
30
  status: 'starting' | 'running' | 'restarting' | 'stopped' | 'error';
@@ -62,7 +63,7 @@ class SupervisorHeartbeat {
62
63
  * This creates a supervisor session and starts an execution.
63
64
  * If the execution dies, it auto-restarts (heartbeat).
64
65
  */
65
- start(waveId: string, directive: string, targetRoles?: string[]): SupervisorState {
66
+ start(waveId: string, directive: string, targetRoles?: string[], continuous = false): SupervisorState {
66
67
  // Check if supervisor already running for this wave
67
68
  const existing = this.supervisors.get(waveId);
68
69
  if (existing && (existing.status === 'running' || existing.status === 'starting')) {
@@ -74,6 +75,7 @@ class SupervisorHeartbeat {
74
75
  waveId,
75
76
  directive,
76
77
  targetRoles,
78
+ continuous,
77
79
  supervisorSessionId: null,
78
80
  executionId: null,
79
81
  status: 'starting',
@@ -322,7 +324,15 @@ Re-dispatch pattern:
322
324
  - Each iteration should close specific gaps, not redo everything
323
325
  - Maximum 5 iterations per C-Level before escalating
324
326
 
325
- ## Instructions
327
+ ${state.continuous ? `## Continuous Improvement Mode (ON)
328
+ ⛔ 첫 번째 완성 후 멈추지 마라.
329
+ 1. 모든 subordinate done + QA pass 후, 즉시 CBO에게 "사용자 관점에서 부족한 점, 개선할 점"을 물어라.
330
+ 2. CTO에게 "기술적으로 개선할 점, 코드 품질, 성능"을 물어라.
331
+ 3. CBO/CTO 의견을 종합하여 의미있는 개선이 있으면 re-dispatch.
332
+ 4. 이 사이클을 반복하라. 각 iteration마다 게임/산출물이 점점 나아져야 한다.
333
+ 5. 사용자가 Stop을 누를 때까지 계속한다. 스스로 done 선언하지 마라.
334
+
335
+ ` : ''}## Instructions
326
336
  1. Analyze the directive and decide which C-Level roles to dispatch (not necessarily all)
327
337
  2. Dispatch them with clear tasks
328
338
  3. Enter supervision watch loop
@@ -412,6 +422,11 @@ Re-dispatch pattern:
412
422
  console.log(`[Supervisor] Done but ${runningChildren.length} children still running. Restarting.`);
413
423
  state.crashCount = 0; // Not a crash, intentional restart
414
424
  this.scheduleRestart(state, 5_000); // 5s delay
425
+ } else if (state.continuous) {
426
+ // Continuous Improvement Mode: don't stop — restart supervisor to ask C-Levels for improvements
427
+ console.log(`[Supervisor] Wave ${state.waveId} iteration complete. Continuous mode ON — restarting for next improvement cycle.`);
428
+ state.crashCount = 0;
429
+ this.scheduleRestart(state, 5_000);
415
430
  } else {
416
431
  console.log(`[Supervisor] Wave ${state.waveId} complete. All subordinates done.`);
417
432
  state.status = 'stopped';