@cogitator-ai/studio 0.1.2 → 0.1.4

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/README.md CHANGED
@@ -67,7 +67,7 @@ await studio.close();
67
67
  | `log` | | Receives the project's output |
68
68
  | `price` | model registry | Prices a model call from its model and tokens |
69
69
 
70
- The HTTP API the UI uses is open to scripts as well: `GET /api/state`, `GET /api/runs?target=&kind=&q=`, `GET /api/runs/:id`, `GET /api/threads/:id`, `POST /api/chat`, `POST /api/runs/:id/stop`, `POST /api/approvals/:id`, `POST /api/runs/:id/fork`, `POST /api/workflows/:key/run`, `POST /api/runs/:id/rerun`, `GET /api/stats` for the totals of the overview, and `GET /api/events` for the event stream. The shapes are the types exported from the package (`RunRecord`, `ThreadRecord`, `StudioStats`, `StudioEvent` and the rest).
70
+ The HTTP API the UI uses is open to scripts as well: `GET /api/state`, `GET /api/runs?target=&kind=&q=`, `GET /api/runs/:id`, `GET /api/threads/:id`, `POST /api/chat`, `POST /api/runs/:id/stop`, `POST /api/approvals/:id`, `POST /api/runs/:id/fork`, `POST /api/workflows/:key/run`, `POST /api/runs/:id/rerun`, `GET /api/stats` for the totals of the overview, and `GET /api/events` for the event stream. The shapes are the types exported from the package (`RunRecord`, `ThreadRecord`, `StudioStats`, `StudioEvent` and the rest). Every `RunRecord` has a `revision` that each change of the run raises, and `token` and `reasoning` events carry the revision they bring it to: a client that mixes snapshots with the event stream keeps the copy with the higher one.
71
71
 
72
72
  ## License
73
73
 
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/host/runner.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAGV,SAAS,EACT,WAAW,EAEX,YAAY,EAIb,MAAM,gBAAgB,CAAC;AAyFxB;;;;;GAKG;AACH,qBAAa,UAAU;IAUnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuC;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,UAAU,CAAC,CAAsB;IACzC,OAAO,CAAC,OAAO,CAAC,CAAkD;IAElE,OAAO;WAWM,MAAM,CACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAC/B,OAAO,CAAC,UAAU,CAAC;IAetB,IAAI,MAAM,IAAI,SAAS,GAAG,QAAQ,CAEjC;IAED,QAAQ,IAAI,YAAY;IAIlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB9C,OAAO,CAAC,IAAI;IAIZ,4EAA4E;IAC5E,OAAO,CAAC,QAAQ;IAsDhB,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,QAAQ;IAMhB;;;OAGG;YACW,KAAK;IAYnB,uFAAuF;YACzE,IAAI;YAqBJ,IAAI;IAwClB;;;OAGG;IACH,OAAO,CAAC,MAAM;IA6Cd,iEAAiE;IACjE,OAAO,CAAC,GAAG;IAgBX,OAAO,CAAC,MAAM;IAed,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,MAAM;IAcd,mFAAmF;YACrE,KAAK;YAkBL,IAAI;IAmClB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,aAAa;IA4BrB,kFAAkF;IAClF,OAAO,CAAC,aAAa;YAiDP,WAAW;YAUX,aAAa;CAmB5B"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/host/runner.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAGV,SAAS,EACT,WAAW,EAEX,YAAY,EAIb,MAAM,gBAAgB,CAAC;AAyFxB;;;;;GAKG;AACH,qBAAa,UAAU;IAUnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuC;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,UAAU,CAAC,CAAsB;IACzC,OAAO,CAAC,OAAO,CAAC,CAAkD;IAElE,OAAO;WAWM,MAAM,CACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAC/B,OAAO,CAAC,UAAU,CAAC;IAetB,IAAI,MAAM,IAAI,SAAS,GAAG,QAAQ,CAEjC;IAED,QAAQ,IAAI,YAAY;IAIlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB9C,OAAO,CAAC,IAAI;IAIZ,4EAA4E;IAC5E,OAAO,CAAC,QAAQ;IAsDhB,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,QAAQ;IAMhB;;;OAGG;YACW,KAAK;IAYnB,uFAAuF;YACzE,IAAI;YAqBJ,IAAI;IAwClB;;;OAGG;IACH,OAAO,CAAC,MAAM;IAqDd,iEAAiE;IACjE,OAAO,CAAC,GAAG;IAgBX,OAAO,CAAC,MAAM;IAed,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,MAAM;IAcd,mFAAmF;YACrE,KAAK;YAkBL,IAAI;IAmClB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,aAAa;IA4BrB,kFAAkF;IAClF,OAAO,CAAC,aAAa;YAiDP,WAAW;YAUX,aAAa;CAmB5B"}
@@ -290,6 +290,13 @@ export class StudioHost {
290
290
  });
291
291
  return;
292
292
  }
293
+ let steps;
294
+ try {
295
+ steps = await this.steps(result);
296
+ }
297
+ catch (error) {
298
+ console.error(`[studio host] could not record the steps of run ${runId}, it cannot be forked: ${message(error)}`);
299
+ }
293
300
  this.emit({
294
301
  type: 'run.completed',
295
302
  runId,
@@ -297,7 +304,7 @@ export class StudioHost {
297
304
  usage: usageOf(result),
298
305
  endedAt: Date.now(),
299
306
  toolCalls: toolCallsOf(result),
300
- steps: await this.steps(result),
307
+ ...(steps && { steps }),
301
308
  });
302
309
  }, (error) => this.emit({
303
310
  type: 'run.failed',
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/host/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAyBvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAElF,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACzD,MAAM,OAAO,GAAG,6BAA6B,CAAC;AAmB9C,SAAS,OAAO,CAAC,IAAU;IACzB,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjD,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,MAAiB;IAChC,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;QACrC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;QACvC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;QACvB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;KAChC,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,SAAS,WAAW,CAAC,MAAiB;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,KAAK,GAAY,GAAG,CAAC;QACzB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,GAAG,GAAG,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAChC,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;SACnD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,iEAAiE;AACjE,SAAS,KAAK,CAAC,KAAc;IAC3B,IAAI,KAAK,YAAY,GAAG;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAY,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,UAAU;IAUF;IACA;IACA;IAXF,GAAG,GAAG,IAAI,iBAAiB,EAAc,CAAC;IAC1C,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IACjD,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC/C,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3B,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,UAAU,CAAuB;IACjC,OAAO,CAAmD;IAElE,YACmB,OAAsB,EACtB,IAAuB,EACvB,OAKhB;QAPgB,YAAO,GAAP,OAAO,CAAe;QACtB,SAAI,GAAJ,IAAI,CAAmB;QACvB,YAAO,GAAP,OAAO,CAKvB;IACA,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,UAAkB,EAClB,SAAiB,EACjB,IAAgC;QAEhC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAoB,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC1F,IAAI,MAAM,GAAyB,SAAS,CAAC;QAC7C,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC5D,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC;YACnC,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAAE,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzF,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,OAAoB;QACzB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACpF,KAAK,MAAM;gBACT,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACnD,KAAK,SAAS;gBACZ,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5F,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3D,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,KAAgB;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,4EAA4E;IACpE,QAAQ;QACd,OAAO;YACL,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACrB,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC;gBAC7C,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;oBAChC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;oBACnC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;oBAC/C,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ;oBACtE,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC1C,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK;oBAC3C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;iBAC1D,CAAC,CAAC;YACL,CAAC;YACD,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAAE,OAAO;gBACjC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,SAAS;oBAAE,OAAO;gBAC3D,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;oBACtB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;oBACnB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC;iBAC/B,CAAC,CAAC;YACL,CAAC;YACD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,IAAI,KAAK,KAAK,OAAO,CAAC,SAAS;oBAAE,OAAO;gBACpD,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,YAAY;oBAClB,KAAK;oBACL,KAAK,EAAE,KAAK,CAAC,OAAO;oBACpB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;oBACnB,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,GAAW;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,mBAAmB,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,QAAQ,CAAC,GAAW;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,mBAAmB,CAAC,CAAC;QAChF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,KAAK,CACjB,OAAkD,EAClD,KAAuB;QAEvB,IAAI,cAAwC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAe,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,uFAAuF;IAC/E,KAAK,CAAC,IAAI,CAChB,QAAgB,EAChB,KAAY,EACZ,OAAkC;QAElC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO;QAC1E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACxD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI;YAAE,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3F,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,MAAM,CAAC,QAAQ,CAAC;gBACpB,QAAQ;gBACR,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;gBACrD,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;aAChD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI,CAChB,GAAW,EACX,KAAa,EACb,QAAgB,EAChB,OAAkC;QAElC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CACtF,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;YAChC,KAAK;YACL,QAAQ;YACR,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACzE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACjF,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CACnB,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;aAClE,CAAC;YACJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC5B,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;aAC7C,CAAC;YACJ,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;YAC9C,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;SACpD,CAAC,CACH,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACrC,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,KAAa,EAAE,IAAwB,EAAE,UAA4B;QAClF,IAAI,UAAU;YAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACxD,KAAK,IAAI;aACN,IAAI,CACH,KAAK,EAAE,MAAM,EAAE,EAAE;YACf,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC;qBAC1C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;qBAClC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,YAAY;oBAClB,KAAK;oBACL,KAAK,EAAE,kCAAkC,KAAK,+EAA+E;oBAC7H,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;oBACnB,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,eAAe;gBACrB,KAAK;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;gBACnB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC;gBAC9B,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;aAChC,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAc,EAAE,EAAE,CACjB,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,YAAY;YAClB,KAAK;YACL,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5D,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI;SAC7C,CAAC,CACL;aACA,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC3C,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;oBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iEAAiE;IACzD,GAAG,CAAC,KAAa,EAAE,OAA4B;QACrD,MAAM,UAAU,GAAG,GAAG,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,cAAc;gBACpB,KAAK;gBACL,UAAU;gBACV,MAAM,EAAE,OAAO,CAAC,UAAU;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACnC,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,UAAkB,EAAE,QAAiB,EAAE,MAAe;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU;YACV,QAAQ;YACR,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;SAC1B,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEO,IAAI,CAAC,KAAa;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC3C,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEO,MAAM;QACZ,IAAI,CAAC,UAAU,KAAK,mBAAmB,CACrC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAC5C,CAAC,IAAI,CACJ,CAAC,eAAe,EAAE,EAAE,CAClB,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAC/C,eAAe;YACf,MAAM,EAAE,EAAE,sBAAsB,EAAE,GAAG,EAAE,mBAAmB,EAAE,uBAAuB,EAAE;SACtF,CAAC,CACL,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,mFAAmF;IAC3E,KAAK,CAAC,KAAK,CAAC,MAAiB;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,WAAW,GAA0B,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,WAAW,GAAG,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1F,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACtC,KAAK,EAAE,UAAU,CAAC,SAAS;YAC3B,YAAY,EAAE,UAAU,CAAC,EAAE;YAC3B,KAAK,EACH,UAAU,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;gBACpC,CAAC,CAAC,UAAU,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC7E,CAAC,CAAC,gBAAgB;YACtB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC/C,CAAC,CAAC;SACJ,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,IAAI,CAChB,GAAc,EACd,OAKC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,gBAAgB,OAAO,CAAC,IAAI,eAAe,CAAC,CAAC;QACrF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,MAAM,GAAe;YACzB,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5D,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAClE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;SAC/E,CAAC;QACF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAC1F,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE;YACpC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5D,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;YAClF,KAAK,EAAE,WAAW,GAAG,CAAC,EAAE,YAAY,OAAO,CAAC,IAAI,EAAE;SACnD,CAAC,CACH,CAAC;QACF,IAAI,CAAC,MAAM,CACT,KAAK,EACL,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CACrC,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAChC,IAAI,CAAC,OAAO,CAAC,UAAU,EACvB,yBAAyB,CAC1B,CAAC,IAAI,CACJ,CAAC,SAAS,EAAE,EAAE,CACZ,IAAI,SAAS,CAAC,sBAAsB,CAAC;YACnC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,eAAe,EAAE,IAAI,SAAS,CAAC,mBAAmB,CAChD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC,CACrD;YACD,QAAQ,EAAE,SAAS,CAAC,kBAAkB,CAAC;gBACrC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;aACzD,CAAC;YACF,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1E,IAAI,GAAG;oBAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACxE,CAAC;SACF,CAAC,CACL,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC;YACzB,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CACpB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACtF,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CACzC,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,eAAe;gBACrB,KAAK;gBACL,IAAI;gBACJ,MAAM,EAAE,WAAW;gBACnB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;gBACd,QAAQ;gBACR,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;aACtB,CAAC;YACJ,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC3B,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,eAAe;gBACrB,KAAK;gBACL,IAAI;gBACJ,MAAM,EAAE,QAAQ;gBAChB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;gBACd,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC;SACL,CAAC;IACJ,CAAC;IAED,kFAAkF;IAC1E,aAAa,CACnB,GAAW,EACX,KAAc,EACd,OAAwD,EACxD,OAAkE;QAElE,MAAM,KAAK,GAAG,SAAS,UAAU,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,GAAe;YAC1B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,GAAG;YACX,SAAS,EAAE,KAAK;YAChB,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;YAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;SACzB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,aAAa;YACnB,KAAK;YACL,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;YAClC,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;SAC5B,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG;aACV,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAClC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAI,MAAM,CAAC,KAAK;gBAAE,MAAM,MAAM,CAAC,KAAK,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,eAAe;gBACrB,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;gBAC9E,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;gBACnB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;aACzF,CAAC,CAAC;QACL,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CACxB,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,YAAY;YAClB,KAAK;YACL,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;YACrB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,OAAO,EAAE,KAAK;SACf,CAAC,CACH,CAAC;QACJ,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,GAAW,EAAE,KAAc;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,KAAK,GACT,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAE,KAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACzD,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAC5D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAc,EAAE,QAAgB;QAC1D,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,OAAO,GAAG,CAAC,EAAE,oEAAoE,CAClF,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,kBAAkB,QAAQ,GAAG,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;QACxC,OAAO,IAAI,CAAC,aAAa,CACvB,GAAG,CAAC,MAAM,EACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAY,EAChC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,EAC3B,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CACxF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/host/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAyBvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAElF,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACzD,MAAM,OAAO,GAAG,6BAA6B,CAAC;AAmB9C,SAAS,OAAO,CAAC,IAAU;IACzB,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjD,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,MAAiB;IAChC,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;QACrC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;QACvC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;QACvB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;KAChC,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,SAAS,WAAW,CAAC,MAAiB;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,KAAK,GAAY,GAAG,CAAC;QACzB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,GAAG,GAAG,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAChC,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;SACnD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,iEAAiE;AACjE,SAAS,KAAK,CAAC,KAAc;IAC3B,IAAI,KAAK,YAAY,GAAG;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAY,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,UAAU;IAUF;IACA;IACA;IAXF,GAAG,GAAG,IAAI,iBAAiB,EAAc,CAAC;IAC1C,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IACjD,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC/C,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3B,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,UAAU,CAAuB;IACjC,OAAO,CAAmD;IAElE,YACmB,OAAsB,EACtB,IAAuB,EACvB,OAKhB;QAPgB,YAAO,GAAP,OAAO,CAAe;QACtB,SAAI,GAAJ,IAAI,CAAmB;QACvB,YAAO,GAAP,OAAO,CAKvB;IACA,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,UAAkB,EAClB,SAAiB,EACjB,IAAgC;QAEhC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAoB,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC1F,IAAI,MAAM,GAAyB,SAAS,CAAC;QAC7C,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC5D,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC;YACnC,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAAE,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzF,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,OAAoB;QACzB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACpF,KAAK,MAAM;gBACT,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACnD,KAAK,SAAS;gBACZ,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5F,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3D,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,KAAgB;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,4EAA4E;IACpE,QAAQ;QACd,OAAO;YACL,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACrB,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC;gBAC7C,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;oBAChC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;oBACnC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;oBAC/C,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ;oBACtE,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC1C,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK;oBAC3C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;iBAC1D,CAAC,CAAC;YACL,CAAC;YACD,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAAE,OAAO;gBACjC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,SAAS;oBAAE,OAAO;gBAC3D,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;oBACtB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;oBACnB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC;iBAC/B,CAAC,CAAC;YACL,CAAC;YACD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,IAAI,KAAK,KAAK,OAAO,CAAC,SAAS;oBAAE,OAAO;gBACpD,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,YAAY;oBAClB,KAAK;oBACL,KAAK,EAAE,KAAK,CAAC,OAAO;oBACpB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;oBACnB,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,GAAW;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,mBAAmB,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,QAAQ,CAAC,GAAW;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,mBAAmB,CAAC,CAAC;QAChF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,KAAK,CACjB,OAAkD,EAClD,KAAuB;QAEvB,IAAI,cAAwC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAe,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,uFAAuF;IAC/E,KAAK,CAAC,IAAI,CAChB,QAAgB,EAChB,KAAY,EACZ,OAAkC;QAElC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO;QAC1E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACxD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI;YAAE,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3F,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,MAAM,CAAC,QAAQ,CAAC;gBACpB,QAAQ;gBACR,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;gBACrD,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;aAChD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI,CAChB,GAAW,EACX,KAAa,EACb,QAAgB,EAChB,OAAkC;QAElC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CACtF,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;YAChC,KAAK;YACL,QAAQ;YACR,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACzE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACjF,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CACnB,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;aAClE,CAAC;YACJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC5B,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;aAC7C,CAAC;YACJ,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;YAC9C,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;SACpD,CAAC,CACH,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACrC,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,KAAa,EAAE,IAAwB,EAAE,UAA4B;QAClF,IAAI,UAAU;YAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACxD,KAAK,IAAI;aACN,IAAI,CACH,KAAK,EAAE,MAAM,EAAE,EAAE;YACf,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC;qBAC1C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;qBAClC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,YAAY;oBAClB,KAAK;oBACL,KAAK,EAAE,kCAAkC,KAAK,+EAA+E;oBAC7H,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;oBACnB,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,KAA+B,CAAC;YACpC,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CACX,mDAAmD,KAAK,0BAA0B,OAAO,CAAC,KAAK,CAAC,EAAE,CACnG,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,eAAe;gBACrB,KAAK;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;gBACnB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC;gBAC9B,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;aACxB,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAc,EAAE,EAAE,CACjB,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,YAAY;YAClB,KAAK;YACL,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5D,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI;SAC7C,CAAC,CACL;aACA,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC3C,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;oBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iEAAiE;IACzD,GAAG,CAAC,KAAa,EAAE,OAA4B;QACrD,MAAM,UAAU,GAAG,GAAG,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,cAAc;gBACpB,KAAK;gBACL,UAAU;gBACV,MAAM,EAAE,OAAO,CAAC,UAAU;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACnC,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,UAAkB,EAAE,QAAiB,EAAE,MAAe;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU;YACV,QAAQ;YACR,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;SAC1B,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEO,IAAI,CAAC,KAAa;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC3C,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEO,MAAM;QACZ,IAAI,CAAC,UAAU,KAAK,mBAAmB,CACrC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAC5C,CAAC,IAAI,CACJ,CAAC,eAAe,EAAE,EAAE,CAClB,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAC/C,eAAe;YACf,MAAM,EAAE,EAAE,sBAAsB,EAAE,GAAG,EAAE,mBAAmB,EAAE,uBAAuB,EAAE;SACtF,CAAC,CACL,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,mFAAmF;IAC3E,KAAK,CAAC,KAAK,CAAC,MAAiB;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,WAAW,GAA0B,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,WAAW,GAAG,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1F,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACtC,KAAK,EAAE,UAAU,CAAC,SAAS;YAC3B,YAAY,EAAE,UAAU,CAAC,EAAE;YAC3B,KAAK,EACH,UAAU,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;gBACpC,CAAC,CAAC,UAAU,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC7E,CAAC,CAAC,gBAAgB;YACtB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC/C,CAAC,CAAC;SACJ,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,IAAI,CAChB,GAAc,EACd,OAKC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,gBAAgB,OAAO,CAAC,IAAI,eAAe,CAAC,CAAC;QACrF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,MAAM,GAAe;YACzB,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5D,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAClE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;SAC/E,CAAC;QACF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAC1F,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE;YACpC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5D,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;YAClF,KAAK,EAAE,WAAW,GAAG,CAAC,EAAE,YAAY,OAAO,CAAC,IAAI,EAAE;SACnD,CAAC,CACH,CAAC;QACF,IAAI,CAAC,MAAM,CACT,KAAK,EACL,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CACrC,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAChC,IAAI,CAAC,OAAO,CAAC,UAAU,EACvB,yBAAyB,CAC1B,CAAC,IAAI,CACJ,CAAC,SAAS,EAAE,EAAE,CACZ,IAAI,SAAS,CAAC,sBAAsB,CAAC;YACnC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,eAAe,EAAE,IAAI,SAAS,CAAC,mBAAmB,CAChD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC,CACrD;YACD,QAAQ,EAAE,SAAS,CAAC,kBAAkB,CAAC;gBACrC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;aACzD,CAAC;YACF,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1E,IAAI,GAAG;oBAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACxE,CAAC;SACF,CAAC,CACL,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC;YACzB,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CACpB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACtF,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CACzC,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,eAAe;gBACrB,KAAK;gBACL,IAAI;gBACJ,MAAM,EAAE,WAAW;gBACnB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;gBACd,QAAQ;gBACR,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;aACtB,CAAC;YACJ,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC3B,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,eAAe;gBACrB,KAAK;gBACL,IAAI;gBACJ,MAAM,EAAE,QAAQ;gBAChB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;gBACd,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC;SACL,CAAC;IACJ,CAAC;IAED,kFAAkF;IAC1E,aAAa,CACnB,GAAW,EACX,KAAc,EACd,OAAwD,EACxD,OAAkE;QAElE,MAAM,KAAK,GAAG,SAAS,UAAU,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,GAAe;YAC1B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,GAAG;YACX,SAAS,EAAE,KAAK;YAChB,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;YAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;SACzB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,aAAa;YACnB,KAAK;YACL,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;YAClC,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;SAC5B,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG;aACV,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAClC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAI,MAAM,CAAC,KAAK;gBAAE,MAAM,MAAM,CAAC,KAAK,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,eAAe;gBACrB,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;gBAC9E,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;gBACnB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;aACzF,CAAC,CAAC;QACL,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CACxB,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,YAAY;YAClB,KAAK;YACL,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;YACrB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,OAAO,EAAE,KAAK;SACf,CAAC,CACH,CAAC;QACJ,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,GAAW,EAAE,KAAc;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,KAAK,GACT,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAE,KAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACzD,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAC5D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAc,EAAE,QAAgB;QAC1D,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,OAAO,GAAG,CAAC,EAAE,oEAAoE,CAClF,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,kBAAkB,QAAQ,GAAG,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;QACxC,OAAO,IAAI,CAAC,aAAa,CACvB,GAAG,CAAC,MAAM,EACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAY,EAChC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,EAC3B,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CACxF,CAAC;IACJ,CAAC;CACF"}
@@ -107,6 +107,11 @@ export interface RunRecord {
107
107
  output?: string;
108
108
  reasoning?: string;
109
109
  status: RunStatus;
110
+ /**
111
+ * Bumped on every change of the run, so a client keeps the newest copy of
112
+ * it whatever order snapshots and events reach it in.
113
+ */
114
+ revision: number;
110
115
  error?: string;
111
116
  startedAt: number;
112
117
  endedAt?: number;
@@ -312,10 +317,12 @@ export type StudioEvent = {
312
317
  type: 'token';
313
318
  runId: string;
314
319
  text: string;
320
+ revision: number;
315
321
  } | {
316
322
  type: 'reasoning';
317
323
  runId: string;
318
324
  text: string;
325
+ revision: number;
319
326
  } | {
320
327
  type: 'thread';
321
328
  thread: ThreadRecord;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,+EAA+E;IAC/E,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wFAAwF;AACxF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACrD,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzF;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,uFAAuF;AACvF,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IACpC,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,iCAAiC;IACjC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7B,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,kDAAkD;AAClD,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACpC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9C,4EAA4E;IAC5E,QAAQ,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,qBAAqB;IACrB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,kDAAkD;AAClD,MAAM,MAAM,SAAS,GACjB;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C,GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAChG;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3F;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAClD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACvF;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,wCAAwC;AACxC,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,gEAAgE;AAChE,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,SAAS,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC;AAE7C,MAAM,MAAM,UAAU,GAClB;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GACrB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC1F;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5C,0CAA0C;AAC1C,MAAM,MAAM,WAAW,GACnB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9F;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,4CAA4C;AAC5C,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -18,10 +18,12 @@ export interface StoreChange {
18
18
  token?: {
19
19
  runId: string;
20
20
  text: string;
21
+ revision: number;
21
22
  };
22
23
  reasoning?: {
23
24
  runId: string;
24
25
  text: string;
26
+ revision: number;
25
27
  };
26
28
  }
27
29
  /**
@@ -38,9 +40,26 @@ export declare class StudioStore {
38
40
  private readonly threads;
39
41
  private readonly roots;
40
42
  private registry?;
43
+ /** The revision the last change of a run took. */
44
+ private revision;
45
+ /** Runs changed since the last write, written once they have their revision. */
46
+ private readonly unsaved;
41
47
  constructor(directory: string, price: Pricer);
42
48
  private load;
49
+ /**
50
+ * The revision of the next change: above every earlier one, and, being
51
+ * the time in microseconds at least, above those of a session before a
52
+ * restart, which a page still open may have seen.
53
+ */
54
+ private nextRevision;
55
+ /** Marks a run to be written by the next `save`. */
43
56
  private persist;
57
+ /**
58
+ * Gives every changed run its next revision and writes the ones marked
59
+ * for it. A client keeps the copy of a run with the highest revision, so a
60
+ * snapshot it loaded never replaces what an event told it since.
61
+ */
62
+ private save;
44
63
  private persistThreads;
45
64
  setRegistry(registry: RegistryInfo): void;
46
65
  getRun(id: string): RunRecord | undefined;
@@ -84,5 +103,6 @@ export declare class StudioStore {
84
103
  private sumChildren;
85
104
  /** Applies an event of the host and returns what changed. */
86
105
  apply(event: HostEvent): StoreChange;
106
+ private change;
87
107
  }
88
108
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/server/store.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EAET,YAAY,EACZ,SAAS,EAGT,WAAW,EAEX,YAAY,EAGb,MAAM,gBAAgB,CAAC;AAExB,qEAAqE;AACrE,MAAM,MAAM,MAAM,GAAG,CACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,KACjD,MAAM,GAAG,IAAI,CAAC;AAEnB,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,0EAA0E;IAC1E,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAwBD;;;;;;GAMG;AACH,qBAAa,WAAW;IAOpB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAPxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,CAAe;gBAGb,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM;IAMhC,OAAO,CAAC,IAAI;IA8BZ,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,cAAc;IAItB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIzC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIzC,4EAA4E;IAC5E,UAAU,CACR,EAAE,EAAE,MAAM,GACT;QAAE,GAAG,EAAE,SAAS,CAAC;QAAC,WAAW,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,SAAS;IAoB/E,iEAAiE;IACjE,QAAQ,CAAC,KAAK,GAAE,QAAa,GAAG,SAAS,EAAE;IAiB3C;;;OAGG;IACH,OAAO,CAAC,cAAc;IAatB,qEAAqE;IACrE,KAAK,CAAC,GAAG,SAAa,EAAE,IAAI,SAAK,GAAG,WAAW;IAuF/C,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAM3C,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI/C,uEAAuE;IACvE,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY;IAoBnE,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IASzE,qEAAqE;IACrE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE;IAa3C,iFAAiF;IACjF,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE;IAiB3C;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA4BlB,OAAO,CAAC,YAAY;IAKpB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA2ClB,OAAO,CAAC,WAAW;IAuBnB,6DAA6D;IAC7D,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW;CAiLrC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/server/store.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ function str(value) {
7
7
  return typeof value === 'string' ? value : undefined;
8
8
  }
9
9
  function spanKind(name) {
10
- if (name === 'llm.chat')
10
+ if (name === 'llm.chat' || name === 'llm.decide')
11
11
  return 'llm';
12
12
  if (name.startsWith('tool.'))
13
13
  return 'tool';
@@ -36,6 +36,10 @@ export class StudioStore {
36
36
  threads = new Map();
37
37
  roots = new Map();
38
38
  registry;
39
+ /** The revision the last change of a run took. */
40
+ revision = 0;
41
+ /** Runs changed since the last write, written once they have their revision. */
42
+ unsaved = new Set();
39
43
  constructor(directory, price) {
40
44
  this.directory = directory;
41
45
  this.price = price;
@@ -48,18 +52,23 @@ export class StudioStore {
48
52
  continue;
49
53
  try {
50
54
  const run = JSON.parse(readFileSync(join(this.directory, 'runs', name), 'utf-8'));
51
- if (run.status === 'running' || run.status === 'waiting') {
52
- run.status = 'failed';
53
- run.error = 'Cogitator Studio stopped during the run';
54
- run.endedAt ??= run.startedAt;
55
- this.persist(run);
56
- }
55
+ run.revision ??= 0;
56
+ this.revision = Math.max(this.revision, run.revision);
57
57
  this.runs.set(run.id, run);
58
58
  }
59
59
  catch {
60
60
  continue;
61
61
  }
62
62
  }
63
+ for (const run of this.runs.values()) {
64
+ if (run.status !== 'running' && run.status !== 'waiting')
65
+ continue;
66
+ run.status = 'failed';
67
+ run.error = 'Cogitator Studio stopped during the run';
68
+ run.endedAt ??= run.startedAt;
69
+ this.persist(run);
70
+ }
71
+ this.save([]);
63
72
  const threadsFile = join(this.directory, 'threads.json');
64
73
  if (existsSync(threadsFile)) {
65
74
  try {
@@ -72,8 +81,31 @@ export class StudioStore {
72
81
  }
73
82
  }
74
83
  }
84
+ /**
85
+ * The revision of the next change: above every earlier one, and, being
86
+ * the time in microseconds at least, above those of a session before a
87
+ * restart, which a page still open may have seen.
88
+ */
89
+ nextRevision() {
90
+ this.revision = Math.max(this.revision + 1, Date.now() * 1000);
91
+ return this.revision;
92
+ }
93
+ /** Marks a run to be written by the next `save`. */
75
94
  persist(run) {
76
- writeAtomic(join(this.directory, 'runs', `${run.id.replace(/[^\w-]/g, '_')}.json`), JSON.stringify(run));
95
+ this.unsaved.add(run);
96
+ }
97
+ /**
98
+ * Gives every changed run its next revision and writes the ones marked
99
+ * for it. A client keeps the copy of a run with the highest revision, so a
100
+ * snapshot it loaded never replaces what an event told it since.
101
+ */
102
+ save(changed) {
103
+ for (const run of new Set([...changed, ...this.unsaved]))
104
+ run.revision = this.nextRevision();
105
+ for (const run of this.unsaved) {
106
+ writeAtomic(join(this.directory, 'runs', `${run.id.replace(/[^\w-]/g, '_')}.json`), JSON.stringify(run));
107
+ }
108
+ this.unsaved.clear();
77
109
  }
78
110
  persistThreads() {
79
111
  writeAtomic(join(this.directory, 'threads.json'), JSON.stringify([...this.threads.values()]));
@@ -288,6 +320,7 @@ export class StudioStore {
288
320
  this.persist(run);
289
321
  changed.push(run);
290
322
  }
323
+ this.save(changed);
291
324
  return changed;
292
325
  }
293
326
  /**
@@ -402,6 +435,16 @@ export class StudioStore {
402
435
  }
403
436
  /** Applies an event of the host and returns what changed. */
404
437
  apply(event) {
438
+ const change = this.change(event);
439
+ this.save(change.runs);
440
+ for (const streamed of [change.token, change.reasoning]) {
441
+ const run = streamed && this.runs.get(streamed.runId);
442
+ if (streamed && run)
443
+ streamed.revision = run.revision = this.nextRevision();
444
+ }
445
+ return change;
446
+ }
447
+ change(event) {
405
448
  switch (event.type) {
406
449
  case 'run.started': {
407
450
  const run = {
@@ -412,6 +455,7 @@ export class StudioStore {
412
455
  ...(event.threadId && { threadId: event.threadId }),
413
456
  input: event.input,
414
457
  status: 'running',
458
+ revision: 0,
415
459
  startedAt: event.startedAt,
416
460
  ...(event.model && { model: event.model }),
417
461
  toolCalls: [],
@@ -447,14 +491,20 @@ export class StudioStore {
447
491
  if (!run)
448
492
  return { runs: [] };
449
493
  run.output = (run.output ?? '') + event.text;
450
- return { runs: [], token: { runId: event.runId, text: event.text } };
494
+ return {
495
+ runs: [],
496
+ token: { runId: event.runId, text: event.text, revision: run.revision },
497
+ };
451
498
  }
452
499
  case 'run.reasoning': {
453
500
  const run = this.runs.get(event.runId);
454
501
  if (!run)
455
502
  return { runs: [] };
456
503
  run.reasoning = (run.reasoning ?? '') + event.text;
457
- return { runs: [], reasoning: { runId: event.runId, text: event.text } };
504
+ return {
505
+ runs: [],
506
+ reasoning: { runId: event.runId, text: event.text, revision: run.revision },
507
+ };
458
508
  }
459
509
  case 'run.tool.call': {
460
510
  const run = this.runs.get(event.runId);
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/server/store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAsCjC,SAAS,GAAG,CAAC,KAAc;IACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,SAAS,GAAG,CAAC,KAAc;IACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5C,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,IAAI,KAAK,eAAe;QAAE,OAAO,SAAS,CAAC;IAC/C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,OAAe;IAChD,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IAC/C,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IAOH;IACA;IAPF,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;IACpC,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC1C,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,QAAQ,CAAgB;IAEhC,YACmB,SAAiB,EACjB,KAAa;QADb,cAAS,GAAT,SAAS,CAAQ;QACjB,UAAK,GAAL,KAAK,CAAQ;QAE9B,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,SAAS;YACtC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAC7C,CAAC;gBACf,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzD,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACtB,GAAG,CAAC,KAAK,GAAG,yCAAyC,CAAC;oBACtD,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,SAAS,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAmB,EAAE,CAAC;oBACtF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,GAAc;QAC5B,WAAW,CACT,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,EACtE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CACpB,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,WAAW,CAAC,QAAsB;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,4EAA4E;IAC5E,UAAU,CACR,EAAU;QAEV,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,MAAM,WAAW,GAAgB,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,CAAC,MAAiB,EAAE,EAAE;YAClC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrC,IAAI,KAAK,EAAE,CAAC;oBACV,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACxB,KAAK,CAAC,KAAK,CAAC,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK;aACpB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;aACtC,MAAM,CAAC,CAAC,IAAI,EAAqB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC3D,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,iEAAiE;IACjE,QAAQ,CAAC,QAAkB,EAAE;QAC3B,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;aAC3B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;aACjC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;aAC7D,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;aACvD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACpC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;iBACpE,IAAI,CAAC,IAAI,CAAC;iBACV,WAAW,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;aACzC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,GAAc;QACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,IAAI,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC;QAC/B,OAAO,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO,IAAI,CAAC;YAC5C,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE;QAC/B,MAAM,UAAU,GAAG,CAAC,EAAU,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,GAAG,EAAE,IAAI,IAAI,CACX,KAAK,CAAC,WAAW,EAAE,EACnB,KAAK,CAAC,QAAQ,EAAE,EAChB,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CACjC,CAAC,OAAO,EAAE;YACX,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;SACV,CAAC,CAAC,CAAC;QACJ,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAA8B;YAC1C,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACX,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC/C,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC;gBAC7B,MAAM,KAAK,SAAS,CAAC;gBACrB,WAAW,IAAI,GAAG,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC;gBAC3C,YAAY,IAAI,GAAG,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5D,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;gBACjC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,IAAI;gBACJ,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,CAAC;aACb,CAAC;YACF,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;YACjB,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;YAC5B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAEzB,IAAI,GAAG,CAAC,WAAW;gBAAE,SAAS;YAC9B,IAAI,IAAI,CAAC,CAAC;YACV,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;gBACnF,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;YACvD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;gBAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE,CAC/B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzF,OAAO;YACL,IAAI;YACJ,QAAQ;YACR,IAAI;YACJ,MAAM;YACN,WAAW;YACX,YAAY;YACZ,QAAQ,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;YACpF,QAAQ;YACR,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;SAC5F,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;aAC9B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC;aACpD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,uEAAuE;IACvE,WAAW,CAAC,EAAU,EAAE,KAAa,EAAE,KAAa;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,0BAA0B,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,MAAM,GAAiB,QAAQ,IAAI;YACvC,EAAE;YACF,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,YAAY;YACrE,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,IAAI,EAAE,EAAE;SACT,CAAC;QACF,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,QAAgB,EAAE,KAAa;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,qEAAqE;IACrE,OAAO,CAAC,QAAgB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,GAAG,EAAE,MAAM,KAAK,WAAW;gBAAE,OAAO,EAAE,CAAC;YAC3C,OAAO;gBACL,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE;gBAC7C,EAAE,IAAI,EAAE,WAAoB,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE;aAC1D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iFAAiF;IACjF,cAAc,CAAC,MAAc;QAC3B,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;gBAAE,SAAS;YACnE,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;YACtB,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC;YACnB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS;oBACrC,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;YACrE,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,IAAa,EAAE,GAAc;QAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChG,MAAM,WAAW,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrF,MAAM,YAAY,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,MAAM,IAAI,GACR,KAAK,IAAI,WAAW,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS;YAC9D,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,IAAI,SAAS,CAAC;YACjE,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;YACvB,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;YACjD,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;YACnD,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;YACnC,UAAU;SACX,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,MAAc;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;QACxF,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAChC,MAAM,CAAC,CAAC,GAAG,EAAoB,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,OAAO;YAAE,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,MAAM,GAAc,IAAI,CAAC;YAC7B,IAAI,MAA0B,CAAC;YAC/B,IAAI,MAAM,GAAG,CAAC,QAAQ,CAAC;YACvB,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;gBAChC,IAAI,SAAS,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE;oBAAE,SAAS;gBACtC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;oBACnC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;wBAAE,SAAS;oBACnC,IACE,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS;wBAC/B,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS;wBAC7B,IAAI,CAAC,SAAS,GAAG,MAAM,EACvB,CAAC;wBACD,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;wBACxB,MAAM,GAAG,SAAS,CAAC;wBACnB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;oBAChD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC;YAC5B,IAAI,MAAM;gBAAE,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC;;gBACrC,OAAO,GAAG,CAAC,gBAAgB,CAAC;YACjC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,GAAG,CAAC,QAAQ,CAAC,IAAI,CACf,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,CAAC,CAAC,CAClF,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,WAAW,CAAC,GAAc;QAChC,MAAM,KAAK,GAAc;YACvB,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,CAAC;SACZ,CAAC;QACF,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;gBAC7C,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC/C,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC/B,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;YACtE,CAAC;QACH,CAAC,CAAC;QACF,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE;gBAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACnF,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,KAAgB;QACpB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,GAAG,GAAc;oBACrB,EAAE,EAAE,KAAK,CAAC,KAAK;oBACf,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;oBACtD,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACnD,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC1C,SAAS,EAAE,EAAE;oBACb,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,EAAE;oBACZ,KAAK,EAAE,EAAE;oBACT,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC7C,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;oBAChD,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;iBAC7E,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBACxC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;oBACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC5C,IAAI,IAAI,EAAE,CAAC;wBACT,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC;wBAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5E,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAClB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC3B,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBAC9B,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC7C,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACvE,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBAC9B,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;gBACnD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3E,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC7D,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;wBACjB,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;wBACjB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;wBACrB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;qBAChC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,MAAM,IAAI,GAAG,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/E,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC3B,IAAI,KAAK,CAAC,KAAK;oBAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1C,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,CAAC;YACD,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBAC9B,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5E,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,IAAI,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC9E,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;gBACD,IAAI,CAAC,QAAQ,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBAC5D,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAClB,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,CAAC;YACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,MAAM,IAAI,GAAG,GAAG,EAAE,SAAS,CAAC,IAAI,CAC9B,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,KAAK,KAAK,CAAC,UAAU,CAC3D,CAAC;gBACF,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBACjD,IAAI,CAAC,QAAQ,GAAG;oBACd,EAAE,EAAE,KAAK,CAAC,UAAU;oBACpB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;oBAChD,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;iBAC9C,CAAC;gBACF,IACE,GAAG,CAAC,MAAM,KAAK,SAAS;oBACxB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC,EAC5D,CAAC;oBACD,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC;gBACzB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAClB,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBACnD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;gBACpD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;oBAC1D,IAAI,KAAK;wBAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC/B,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBAC9B,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC;gBACzB,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC1B,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC5B,IAAI,KAAK,CAAC,KAAK;oBAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBACzC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;oBACzC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC1E,IAAI,CAAC,KAAK;wBAAE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;yBACvC,CAAC;wBACJ,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;4BAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;wBACxF,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;4BAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC3D,CAAC;gBACH,CAAC;gBACD,IAAI,KAAK,CAAC,aAAa;oBAAE,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;gBACjE,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK;wBAAE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;4BAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACvF,CAAC;gBACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBACzF,GAAG,CAAC,KAAK;oBACP,GAAG,CAAC,IAAI,KAAK,UAAU;wBACrB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;wBACvB,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAC3F,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3E,CAAC;YACD,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBAC9B,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAClD,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBACxB,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;oBAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC/D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3E,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBAC9B,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;gBACjB,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;oBAC/C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;oBAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;gBAC1D,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;oBAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACjE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;oBAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC3D,IAAI,KAAK,CAAC,KAAK;oBAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAClB,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/server/store.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import{r as p,j as e,c as us}from"./react-Oh0PCTUB.js";import{C as hs,a as ps,b as ve,c as De,d as ms,e as xs,f as js,g as fs,h as gs,L as Me,i as Fe,A as P,S as Ne,M as ye,K as Le,B as K,W as D,P as Pe,j as ue,k as vs,G as J,X as We,N as Ns,l as ys,m as se,n as Ke,I as bs,o as _e,p as ks,q as Be,r as ws,s as Ge,t as Ss,E as $s,u as Cs,T as Ue,v as He,w as Ts,x as Es,y as As,R as Rs,z as Os,D as Is,F as he,H as zs,J as Ds}from"./icons-f6vmKzId.js";import"./math-Dyab3dfo.js";import{M as Ms,r as Fs,a as Ls,y as Ps,x as Ws,t as Ks,s as _s,b as Bs,c as Gs,p as Us,m as Hs,j as Js,d as Vs,e as qs,g as Xs,f as Ys,h as Qs,i as Zs,k as et,l as st}from"./markdown-B0lQtlaX.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const c of a.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(i){if(i.ep)return;i.ep=!0;const a=n(i);fetch(i.href,a)}})();async function F(s,t){const n=await fetch(s,{method:t?.method??"GET",credentials:"same-origin",headers:t?.body!==void 0?{"content-type":"application/json"}:void 0,body:t?.body!==void 0?JSON.stringify(t.body):void 0}),r=await n.text(),i=r?JSON.parse(r):{};if(!n.ok)throw new Error(i.error??`HTTP ${n.status}`);return i}const E={state:()=>F("/api/state"),stats:()=>F("/api/stats"),runs:s=>{const t=new URLSearchParams;for(const[n,r]of Object.entries(s))r&&t.set(n,r);return F(`/api/runs?${t.toString()}`)},run:s=>F(`/api/runs/${encodeURIComponent(s)}`),thread:s=>F(`/api/threads/${encodeURIComponent(s)}`),chat:(s,t,n)=>F("/api/chat",{method:"POST",body:{agent:s,input:t,...n&&{threadId:n}}}),stop:s=>F(`/api/runs/${encodeURIComponent(s)}/stop`,{method:"POST",body:{}}),approve:(s,t,n)=>F(`/api/approvals/${encodeURIComponent(s)}`,{method:"POST",body:{approved:t,...n&&{reason:n}}}),fork:(s,t)=>F(`/api/runs/${encodeURIComponent(s)}/fork`,{method:"POST",body:t}),runWorkflow:(s,t)=>F(`/api/workflows/${encodeURIComponent(s)}/run`,{method:"POST",body:{input:t}}),rerun:(s,t)=>F(`/api/runs/${encodeURIComponent(s)}/rerun`,{method:"POST",body:{fromNode:t}})};function tt(s,t){let n,r=!1,i;const a=()=>{n=new EventSource("/api/events",{withCredentials:!0}),n.onopen=()=>t(!0),n.onmessage=c=>s(JSON.parse(c.data)),n.onerror=()=>{t(!1),n?.close(),r||(i=setTimeout(a,1e3))}};return a(),()=>{r=!0,clearTimeout(i),n?.close()}}function Y(s,t=!0){return s===void 0||!t&&s===0?"unpriced":s===0?"$0":s<1e-4?"<$0.0001":s<1?`$${s.toFixed(4)}`:`$${s.toFixed(2)}`}function T(s){return s===void 0?"":s<1e3?`${Math.round(s)} ms`:s<6e4?`${(s/1e3).toFixed(s<1e4?2:1)} s`:`${Math.floor(s/6e4)} min ${Math.round(s%6e4/1e3)} s`}function L(s){return s===void 0?"":s>=1e4?`${(s/1e3).toFixed(1)}k`:String(s)}function G(s,t=Date.now()){const n=Math.max(0,Math.round((t-s)/1e3));if(n<60)return`${n}s ago`;const r=Math.round(n/60);if(r<60)return`${r} min ago`;const i=Math.round(r/60);return i<48?`${i} h ago`:new Date(s).toLocaleDateString()}function M(s){if(typeof s=="string")return s;try{return JSON.stringify(s,null,2)??String(s)}catch{return String(s)}}function ne(s,t=90){const n=(s??"").replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function Z(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e4?`${(s/1e3).toFixed(1)}k`:s.toLocaleString("en-US")}function we(s){return new Date(s).toLocaleDateString("en-US",{month:"short",day:"numeric"})}function Je(s){return new Date(s).toLocaleString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function be(s,t){return s.model??t.defaultModel??"default model"}function nt(){return window.location.hash.replace(/^#\/?/,"").split("/").filter(Boolean).map(decodeURIComponent)}function at(){return p.useSyncExternalStore(s=>(window.addEventListener("hashchange",s),()=>window.removeEventListener("hashchange",s)),()=>window.location.hash),nt()}function S(...s){return`#/${s.map(encodeURIComponent).join("/")}`}function C(...s){window.location.hash=S(...s)}let q={connected:!1,loaded:!1,project:"",host:{state:"starting"},runs:{},threads:{}};const pe=new Set;function X(s){q={...q,...s};for(const t of pe)t()}function ee(s){if(s.length===0)return;const t={...q.runs};for(const n of s)t[n.id]=n;X({runs:t})}let Se;async function Ve(){try{X({stats:await E.stats()})}catch{return}}function rt(){clearTimeout(Se),Se=setTimeout(()=>{Ve()},600)}function it(s){switch(s.type){case"host":X({host:s.status});break;case"run":ee([s.run]),rt();break;case"thread":X({threads:{...q.threads,[s.thread.id]:s.thread}});break;case"token":case"reasoning":{const t=q.runs[s.runId];if(!t)break;const n=s.type==="token"?"output":"reasoning";ee([{...t,[n]:(t[n]??"")+s.text}]);break}}}function lt(){return tt(it,t=>{X({connected:t}),t&&ot()})}async function ot(){const s=await E.state();X({loaded:!0,project:s.project,host:s.host,threads:Object.fromEntries(s.threads.map(t=>[t.id,t]))}),ee(s.runs),await Ve()}async function me(s){const t=await E.run(s);return ee([t.run,...t.descendants,...t.forks]),t}async function ct(s){const t=await E.runs(s);ee(t.runs)}async function dt(s){const{thread:t,runs:n}=await E.thread(s);X({threads:{...q.threads,[t.id]:t}}),ee(n)}function $(s){return p.useSyncExternalStore(t=>(pe.add(t),()=>pe.delete(t)),()=>s(q))}const xe="cogitator-studio-theme",je=new Set;function ut(){try{const s=localStorage.getItem(xe);return s==="light"||s==="dark"?s:"system"}catch{return"system"}}let ce=ut();function qe(s){ce=s;try{s==="system"?localStorage.removeItem(xe):localStorage.setItem(xe,s)}catch{}s==="system"?delete document.documentElement.dataset.theme:document.documentElement.dataset.theme=s;for(const t of je)t()}function de(){return ce!=="system"?ce:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Xe(){qe(de()==="dark"?"light":"dark")}function ht(){return p.useSyncExternalStore(s=>(je.add(s),()=>je.delete(s)),()=>ce)}const Ye={running:"Running",waiting:"Needs approval",completed:"Completed",failed:"Failed",stopped:"Stopped",pending:"Pending",skipped:"Skipped"},pt={running:Me,waiting:gs,completed:fs,failed:De,stopped:js,pending:xs,skipped:ms};function U({status:s}){return e.jsx("span",{className:"status","data-status":s,children:Ye[s]})}function mt({status:s,size:t=15}){const n=pt[s];return e.jsx("span",{className:"status-icon","data-status":s,"data-tip":Ye[s],children:e.jsx(n,{size:t,strokeWidth:2,style:s==="running"?{animation:"spin 1s linear infinite"}:void 0})})}async function xt(s){if(navigator.clipboard&&window.isSecureContext){await navigator.clipboard.writeText(s);return}const t=document.createElement("textarea");t.value=s,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0",document.body.append(t),t.select(),document.execCommand("copy"),t.remove()}function ae({value:s,label:t="Copy"}){const[n,r]=p.useState(!1),i=p.useRef(void 0);p.useEffect(()=>()=>clearTimeout(i.current),[]);const a=async()=>{await xt(s),r(!0),clearTimeout(i.current),i.current=setTimeout(()=>r(!1),1400)};return e.jsx("button",{type:"button",className:"btn btn-ghost btn-icon btn-sm",onClick:()=>{a()},"aria-label":t,"data-tip":n?"Copied":t,children:n?e.jsx(hs,{size:13}):e.jsx(ps,{size:13})})}const jt=/("(?:\\.|[^"\\])*")(\s*:)?|\b(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\b|\b(true|false|null)\b/g;function ft(s){const t=[];let n=0;for(const r of s.matchAll(jt)){const i=r.index;i>n&&t.push(s.slice(n,i));const[a,c,l,o,d]=r;c!==void 0?(t.push(e.jsx("span",{className:l?"j-key":"j-string",children:c},i)),l&&t.push(l)):o!==void 0?t.push(e.jsx("span",{className:"j-number",children:o},i)):d!==void 0&&t.push(e.jsx("span",{className:"j-literal",children:d},i)),n=i+a.length}return n<s.length&&t.push(s.slice(n)),t}function B({value:s,label:t}){const n=M(s),r=typeof s!="string";return e.jsxs("div",{className:"json",children:[e.jsxs("div",{className:"json-head",children:[e.jsx("span",{children:t??"value"}),e.jsx(ae,{value:n,label:`Copy ${t??"value"}`})]}),e.jsx("pre",{children:r?ft(n):n})]})}function W({icon:s,title:t,children:n,action:r}){return e.jsxs("div",{className:"empty",children:[s&&e.jsx("div",{className:"empty-icon",children:e.jsx(s,{size:18})}),t&&e.jsx("div",{className:"empty-title",children:t}),n&&e.jsx("div",{className:"empty-text",children:n}),r]})}function R({keys:s}){return e.jsx("span",{className:"kbds",children:s.map(t=>e.jsx("kbd",{className:"kbd",children:t},t))})}function O({crumbs:s,actions:t}){return e.jsxs("header",{className:"topbar",children:[e.jsx("nav",{className:"crumbs","aria-label":"Breadcrumb",children:s.map((n,r)=>{const i=r===s.length-1;return e.jsxs("span",{style:{display:"contents"},children:[r>0&&e.jsx(ve,{size:14}),n.to&&!i?e.jsx("a",{href:S(...n.to),className:"truncate",children:n.label}):e.jsx("span",{className:`truncate ${i?"crumb-current":""}`,children:n.label})]},r)})}),t&&e.jsx("div",{className:"topbar-actions",children:t})]})}function I({children:s}){return e.jsxs("div",{className:"error-text",role:"alert",children:[e.jsx(De,{size:14}),e.jsx("span",{children:s})]})}function V(s){return s instanceof Error?s.message:String(s)}function gt(s,t){if(!t)return 1;const n=s.label.toLowerCase(),r=`${n} ${s.keywords??""} ${s.group}`.toLowerCase();return n.startsWith(t)?3:n.split(/[\s/:-]+/).some(i=>i.startsWith(t))?2:t.split(/\s+/).every(i=>r.includes(i))?1:0}function $e(s,t){return{id:`run-${s.id}`,group:t,label:ne(s.input,70)||s.id,hint:`${s.target} · ${G(s.startedAt)}`,icon:s.kind==="workflow"?D:s.kind==="fork"?J:P,keywords:`${s.target} ${s.output??""}`,run:()=>C("runs",s.id)}}function vt({onClose:s,onShortcuts:t}){const n=$(m=>m.host),r=$(m=>m.runs),[i,a]=p.useState(""),[c,l]=p.useState(0),[o,d]=p.useState([]),j=p.useRef(null),v=i.trim().toLowerCase();p.useEffect(()=>{if(v.length<2){d([]);return}let m=!0;const g=setTimeout(()=>{E.runs({q:v}).then(w=>m&&d(w.runs.slice(0,8))).catch(()=>m&&d([]))},120);return()=>{m=!1,clearTimeout(g)}},[v]);const h=p.useMemo(()=>{const m=n.state==="ready"?n.registry:void 0,w=[{id:"overview",group:"Go to",label:"Overview",icon:Fe,hint:e.jsx(R,{keys:["G","O"]}),run:()=>C()},{id:"runs",group:"Go to",label:"Runs",icon:P,keywords:"history traces",hint:e.jsx(R,{keys:["G","R"]}),run:()=>C("runs")},...(m?.agents??[]).map(b=>({id:`agent-${b.key}`,group:"Agents",label:b.name,hint:m?be(b,m):b.model,icon:K,keywords:`chat ${b.key} ${b.description??""}`,run:()=>C("agents",b.key)})),...(m?.workflows??[]).map(b=>({id:`workflow-${b.key}`,group:"Workflows",label:b.name,hint:`${b.nodes.length} nodes`,icon:D,keywords:`run ${b.key}`,run:()=>C("workflows",b.key)})),...(m?.agents??[]).map(b=>({id:`new-${b.key}`,group:"Actions",label:`New thread with ${b.name}`,icon:Pe,keywords:"chat message start",run:()=>C("agents",b.key)})),{id:"theme",group:"Actions",label:de()==="dark"?"Switch to light theme":"Switch to dark theme",icon:de()==="dark"?Ne:ye,keywords:"theme appearance dark light mode",run:Xe},{id:"shortcuts",group:"Actions",label:"Keyboard shortcuts",icon:Le,hint:e.jsx(R,{keys:["?"]}),keywords:"keys help hotkeys",run:t}].map(b=>({command:b,score:gt(b,v)})).filter(b=>b.score>0).sort((b,A)=>A.score-b.score).map(b=>b.command),y=v?o.map(b=>$e(b,"Runs")):Object.values(r).filter(b=>!b.parentRunId).sort((b,A)=>A.startedAt-b.startedAt).slice(0,5).map(b=>$e(b,"Recent runs")),k=["Go to","Agents","Workflows","Recent runs","Runs","Actions"];return[...w,...y].sort((b,A)=>k.indexOf(b.group)-k.indexOf(A.group))},[n,r,o,v,t]);p.useEffect(()=>l(0),[v]),p.useEffect(()=>{j.current?.querySelector(`[data-index="${c}"]`)?.scrollIntoView({block:"nearest"})},[c]);const u=m=>{m&&(s(),m.run())},x=m=>{m.key==="ArrowDown"||m.ctrlKey&&m.key==="n"?(m.preventDefault(),l(g=>Math.min(g+1,h.length-1))):m.key==="ArrowUp"||m.ctrlKey&&m.key==="p"?(m.preventDefault(),l(g=>Math.max(g-1,0))):m.key==="Enter"?(m.preventDefault(),u(h[c])):m.key==="Escape"&&(m.preventDefault(),s())};let f="";return e.jsx("div",{className:"overlay",onMouseDown:s,"data-dialog":!0,children:e.jsxs("div",{className:"palette",role:"dialog","aria-modal":"true","aria-label":"Command palette",onMouseDown:m=>m.stopPropagation(),onKeyDown:x,"data-testid":"command-palette",children:[e.jsxs("div",{className:"palette-input",children:[e.jsx(ue,{size:17}),e.jsx("input",{autoFocus:!0,value:i,onChange:m=>a(m.target.value),placeholder:"Search agents, workflows, runs and actions",role:"combobox","aria-expanded":"true","aria-controls":"palette-list","aria-activedescendant":h[c]?`palette-${h[c].id}`:void 0,"data-testid":"palette-input"}),e.jsx(R,{keys:["Esc"]})]}),e.jsxs("div",{className:"palette-list",id:"palette-list",role:"listbox",ref:j,children:[h.length===0&&e.jsx("div",{className:"palette-empty",children:"Nothing matches."}),h.map((m,g)=>{const w=m.group!==f?m.group:void 0;f=m.group;const y=m.icon;return e.jsxs("div",{children:[w&&e.jsx("div",{className:"palette-group",children:w}),e.jsxs("div",{id:`palette-${m.id}`,className:"palette-item",role:"option","aria-selected":g===c,"data-index":g,onMouseMove:()=>g!==c&&l(g),onClick:()=>u(m),children:[e.jsx(y,{size:15}),e.jsx("span",{className:"palette-label",children:m.label}),m.hint&&e.jsx("span",{className:"palette-hint",children:m.hint})]})]},m.id)})]}),e.jsxs("div",{className:"palette-foot",children:[e.jsxs("span",{children:[e.jsx(R,{keys:["↑","↓"]})," navigate"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd",children:e.jsx(vs,{size:10})})," ","open"]}),e.jsxs("span",{children:[e.jsx(R,{keys:["Esc"]})," close"]})]})]})})}const ke=/Mac|iPhone|iPad/.test(navigator.platform)?"⌘":"Ctrl";function Qe(s){const t=s.target;return t instanceof HTMLElement?t.isContentEditable||t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.tagName==="SELECT":!1}function Ze(){return document.querySelector("[data-dialog]")!==null}function es(s){const t=p.useRef(s);t.current=s,p.useEffect(()=>{const n=r=>t.current(r);return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[])}function ss(s,t){es(n=>{n.metaKey||n.ctrlKey||n.altKey||Qe(n)||Ze()||s.includes(n.key)&&(n.preventDefault(),t(n))})}const Nt=[{title:"Everywhere",keys:[["Command palette",[ke,"K"]],["Keyboard shortcuts",["?"]],["Go to the overview",["G","O"]],["Go to the runs",["G","R"]],["Search the page",["/"]]]},{title:"Chat",keys:[["Send",["Enter"]],["New line",["Shift","Enter"]],["New thread",["N"]],["Focus the message box",["C"]]]},{title:"Runs",keys:[["Next and previous run",["J","K"]],["Open the run",["Enter"]]]}];function yt({onClose:s}){return e.jsx("div",{className:"overlay",onMouseDown:s,onKeyDown:t=>t.key==="Escape"&&s(),"data-dialog":!0,children:e.jsxs("div",{className:"dialog",role:"dialog","aria-modal":"true","aria-labelledby":"shortcuts-title",onMouseDown:t=>t.stopPropagation(),children:[e.jsxs("div",{className:"dialog-head",children:[e.jsx("h2",{id:"shortcuts-title",children:"Keyboard shortcuts"}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-icon btn-sm",onClick:s,"aria-label":"Close",autoFocus:!0,children:e.jsx(We,{size:15})})]}),e.jsx("div",{className:"dialog-body",children:Nt.map(t=>e.jsxs("div",{children:[e.jsx("div",{className:"shortcut-group",children:t.title}),t.keys.map(([n,r])=>e.jsxs("div",{className:"shortcut",children:[e.jsx("span",{children:n}),e.jsx(R,{keys:r})]},n))]},t.title))})]})})}function bt({className:s}){return e.jsxs("svg",{className:s,viewBox:"0 0 32 32","aria-hidden":"true",children:[e.jsx("rect",{width:"32",height:"32",rx:"8",fill:"currentColor"}),e.jsx("path",{d:"M21 11.2A7 7 0 1 0 21 20.8",fill:"none",stroke:"var(--bg)",strokeWidth:"3",strokeLinecap:"round"}),e.jsx("circle",{cx:"16",cy:"16",r:"2",fill:"var(--bg)"})]})}function le({to:s,icon:t,active:n,children:r,meta:i,testId:a}){return e.jsxs("a",{href:S(...s),className:`sb-link ${n?"active":""}`,"aria-current":n?"page":void 0,"data-testid":a,children:[e.jsx(t,{size:15}),e.jsx("span",{className:"sb-text truncate",children:r}),i!==void 0&&e.jsx("span",{className:"sb-meta",children:i})]})}const kt=[{value:"system",icon:ys,label:"System theme"},{value:"light",icon:Ne,label:"Light theme"},{value:"dark",icon:ye,label:"Dark theme"}];function wt({route:s,onSearch:t,onShortcuts:n}){const r=$(u=>u.host),i=$(u=>u.project),a=$(u=>u.connected),c=$(u=>u.runs),l=ht(),o=r.state==="ready"?r.registry:void 0,d=(...u)=>u.every((x,f)=>s[f]===x),j=new Set(Object.values(c).filter(u=>u.status==="running"||u.status==="waiting").map(u=>u.target)),v=a?r.state:"offline",h={ready:"Project loaded",starting:"Loading the project",restarting:"Reloading the project",failed:"The project does not load",offline:"Reconnecting to cogitator dev"};return e.jsxs("nav",{className:"sidebar","aria-label":"Studio",children:[e.jsxs("div",{className:"sb-top",children:[e.jsxs("a",{className:"sb-brand",href:"#/",children:[e.jsx(bt,{className:"sb-mark"}),e.jsxs("span",{className:"sb-text",style:{minWidth:0},children:[e.jsx("div",{className:"sb-name",children:"Cogitator Studio"}),e.jsxs("div",{className:"sb-project",children:[e.jsx("span",{className:"dot","data-state":v}),e.jsx("span",{className:"truncate",children:i||"project"})]})]})]}),e.jsxs("button",{type:"button",className:"sb-search",onClick:t,"data-testid":"open-palette",children:[e.jsx(ue,{size:14}),e.jsx("span",{children:"Search"}),e.jsx(R,{keys:[ke,"K"]})]})]}),e.jsxs("div",{className:"sb-nav",children:[e.jsx(le,{to:[],icon:Fe,active:s.length===0,children:"Overview"}),e.jsx(le,{to:["runs"],icon:P,active:s[0]==="runs"||s[0]==="compare",testId:"nav-runs",meta:j.size>0?e.jsx("span",{className:"spinner","aria-label":"runs going"}):void 0,children:"Runs"}),e.jsxs("div",{className:"sb-section",children:[e.jsx("div",{className:"sb-section-title",children:"Agents"}),o?.agents.map(u=>e.jsx(le,{to:["agents",u.key],icon:K,active:d("agents",u.key),testId:`agent-${u.key}`,meta:j.has(u.key)?e.jsx("span",{className:"dot","data-state":"starting"}):void 0,children:u.name},u.key)),o?.agents.length===0&&e.jsx("div",{className:"sb-empty",children:"None registered"}),!o&&e.jsx("div",{className:"skeleton",style:{height:22,margin:"4px 8px"}})]}),o&&o.workflows.length>0&&e.jsxs("div",{className:"sb-section",children:[e.jsx("div",{className:"sb-section-title",children:"Workflows"}),o.workflows.map(u=>e.jsx(le,{to:["workflows",u.key],icon:D,active:d("workflows",u.key),meta:j.has(u.key)?e.jsx("span",{className:"dot","data-state":"starting"}):void 0,children:u.name},u.key))]}),o&&o.swarms.length>0&&e.jsxs("div",{className:"sb-section",children:[e.jsx("div",{className:"sb-section-title",children:"Swarms"}),o.swarms.map(u=>e.jsxs("div",{className:"sb-link sb-static","data-tip":`${u.strategy}: ${u.agents.join(", ")}`,children:[e.jsx(Ns,{size:15}),e.jsx("span",{className:"sb-text truncate",children:u.name}),e.jsx("span",{className:"sb-meta",children:u.strategy})]},u.key))]})]}),e.jsxs("div",{className:"sb-footer",children:[e.jsxs("div",{className:"sb-conn","data-tip":h[v],children:[e.jsx("span",{className:"dot","data-state":v}),e.jsx("span",{children:a?"Live":"Offline"})]}),e.jsxs("div",{className:"sb-tools",children:[e.jsx("div",{className:"seg seg-icons sb-themes",role:"group","aria-label":"Theme",children:kt.map(({value:u,icon:x,label:f})=>e.jsx("button",{type:"button","aria-pressed":l===u,"aria-label":f,"data-tip":f,onClick:()=>qe(u),children:e.jsx(x,{size:13})},u))}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-icon btn-sm sb-theme-toggle",onClick:Xe,"aria-label":"Switch theme","data-tip":"Switch theme",children:de()==="dark"?e.jsx(Ne,{size:14}):e.jsx(ye,{size:14})}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-icon btn-sm",onClick:n,"aria-label":"Keyboard shortcuts","data-tip":"Shortcuts",children:e.jsx(Le,{size:14})})]})]})]})}const St=/(```[\s\S]*?(?:```|$)|`[^`\n]*`)/g;function Ce(s,t,n,r){let i="",a=0;for(;;){const c=s.indexOf(t,a);if(c===-1)break;const l=s.indexOf(n,c+t.length);if(l===-1)break;const o=s.slice(c+t.length,l).trim();i+=s.slice(a,c)+(o?r(o):s.slice(c,l+n.length)),a=l+n.length}return i+s.slice(a)}function $t(s){return s.split(St).map((t,n)=>{if(n%2===1)return t;const r=Ce(t,"\\[","\\]",i=>`
1
+ import{r as p,j as e,c as us}from"./react-Oh0PCTUB.js";import{C as hs,a as ps,b as ve,c as De,d as ms,e as xs,f as js,g as fs,h as gs,L as Me,i as Fe,A as P,S as Ne,M as ye,K as Le,B as K,W as D,P as Pe,j as ue,k as vs,G as J,X as We,N as Ns,l as ys,m as se,n as Ke,I as bs,o as _e,p as ks,q as Be,r as ws,s as Ge,t as Ss,E as $s,u as Cs,T as Ue,v as He,w as Ts,x as Es,y as As,R as Rs,z as Os,D as Is,F as he,H as zs,J as Ds}from"./icons-f6vmKzId.js";import"./math-Dyab3dfo.js";import{M as Ms,r as Fs,a as Ls,y as Ps,x as Ws,t as Ks,s as _s,b as Bs,c as Gs,p as Us,m as Hs,j as Js,d as Vs,e as qs,g as Xs,f as Ys,h as Qs,i as Zs,k as et,l as st}from"./markdown-B0lQtlaX.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))a(i);new MutationObserver(i=>{for(const r of i)if(r.type==="childList")for(const c of r.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&a(c)}).observe(document,{childList:!0,subtree:!0});function n(i){const r={};return i.integrity&&(r.integrity=i.integrity),i.referrerPolicy&&(r.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?r.credentials="include":i.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function a(i){if(i.ep)return;i.ep=!0;const r=n(i);fetch(i.href,r)}})();async function F(s,t){const n=await fetch(s,{method:t?.method??"GET",credentials:"same-origin",headers:t?.body!==void 0?{"content-type":"application/json"}:void 0,body:t?.body!==void 0?JSON.stringify(t.body):void 0}),a=await n.text(),i=a?JSON.parse(a):{};if(!n.ok)throw new Error(i.error??`HTTP ${n.status}`);return i}const E={state:()=>F("/api/state"),stats:()=>F("/api/stats"),runs:s=>{const t=new URLSearchParams;for(const[n,a]of Object.entries(s))a&&t.set(n,a);return F(`/api/runs?${t.toString()}`)},run:s=>F(`/api/runs/${encodeURIComponent(s)}`),thread:s=>F(`/api/threads/${encodeURIComponent(s)}`),chat:(s,t,n)=>F("/api/chat",{method:"POST",body:{agent:s,input:t,...n&&{threadId:n}}}),stop:s=>F(`/api/runs/${encodeURIComponent(s)}/stop`,{method:"POST",body:{}}),approve:(s,t,n)=>F(`/api/approvals/${encodeURIComponent(s)}`,{method:"POST",body:{approved:t,...n&&{reason:n}}}),fork:(s,t)=>F(`/api/runs/${encodeURIComponent(s)}/fork`,{method:"POST",body:t}),runWorkflow:(s,t)=>F(`/api/workflows/${encodeURIComponent(s)}/run`,{method:"POST",body:{input:t}}),rerun:(s,t)=>F(`/api/runs/${encodeURIComponent(s)}/rerun`,{method:"POST",body:{fromNode:t}})};function tt(s,t){let n,a=!1,i;const r=()=>{n=new EventSource("/api/events",{withCredentials:!0}),n.onopen=()=>t(!0),n.onmessage=c=>s(JSON.parse(c.data)),n.onerror=()=>{t(!1),n?.close(),a||(i=setTimeout(r,1e3))}};return r(),()=>{a=!0,clearTimeout(i),n?.close()}}function Y(s,t=!0){return s===void 0||!t&&s===0?"unpriced":s===0?"$0":s<1e-4?"<$0.0001":s<1?`$${s.toFixed(4)}`:`$${s.toFixed(2)}`}function T(s){return s===void 0?"":s<1e3?`${Math.round(s)} ms`:s<6e4?`${(s/1e3).toFixed(s<1e4?2:1)} s`:`${Math.floor(s/6e4)} min ${Math.round(s%6e4/1e3)} s`}function L(s){return s===void 0?"":s>=1e4?`${(s/1e3).toFixed(1)}k`:String(s)}function G(s,t=Date.now()){const n=Math.max(0,Math.round((t-s)/1e3));if(n<60)return`${n}s ago`;const a=Math.round(n/60);if(a<60)return`${a} min ago`;const i=Math.round(a/60);return i<48?`${i} h ago`:new Date(s).toLocaleDateString()}function M(s){if(typeof s=="string")return s;try{return JSON.stringify(s,null,2)??String(s)}catch{return String(s)}}function ne(s,t=90){const n=(s??"").replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function Z(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e4?`${(s/1e3).toFixed(1)}k`:s.toLocaleString("en-US")}function we(s){return new Date(s).toLocaleDateString("en-US",{month:"short",day:"numeric"})}function Je(s){return new Date(s).toLocaleString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function be(s,t){return s.model??t.defaultModel??"default model"}function nt(){return window.location.hash.replace(/^#\/?/,"").split("/").filter(Boolean).map(decodeURIComponent)}function at(){return p.useSyncExternalStore(s=>(window.addEventListener("hashchange",s),()=>window.removeEventListener("hashchange",s)),()=>window.location.hash),nt()}function S(...s){return`#/${s.map(encodeURIComponent).join("/")}`}function C(...s){window.location.hash=S(...s)}let V={connected:!1,loaded:!1,project:"",host:{state:"starting"},runs:{},threads:{}};const pe=new Set;function X(s){V={...V,...s};for(const t of pe)t()}function ee(s){const t=s.filter(a=>(V.runs[a.id]?.revision??-1)<a.revision);if(t.length===0)return;const n={...V.runs};for(const a of t)n[a.id]=a;X({runs:n})}let Se;async function Ve(){try{X({stats:await E.stats()})}catch{return}}function rt(){clearTimeout(Se),Se=setTimeout(()=>{Ve()},600)}function it(s){switch(s.type){case"host":X({host:s.status});break;case"run":ee([s.run]),rt();break;case"thread":X({threads:{...V.threads,[s.thread.id]:s.thread}});break;case"token":case"reasoning":{const t=V.runs[s.runId];if(!t)break;const n=s.type==="token"?"output":"reasoning";ee([{...t,[n]:(t[n]??"")+s.text,revision:s.revision}]);break}}}function lt(){return tt(it,t=>{X({connected:t}),t&&ot()})}async function ot(){const s=await E.state();X({loaded:!0,project:s.project,host:s.host,threads:Object.fromEntries(s.threads.map(t=>[t.id,t]))}),ee(s.runs),await Ve()}async function me(s){const t=await E.run(s);return ee([t.run,...t.descendants,...t.forks]),t}async function ct(s){const t=await E.runs(s);ee(t.runs)}async function dt(s){const{thread:t,runs:n}=await E.thread(s);X({threads:{...V.threads,[t.id]:t}}),ee(n)}function $(s){return p.useSyncExternalStore(t=>(pe.add(t),()=>pe.delete(t)),()=>s(V))}const xe="cogitator-studio-theme",je=new Set;function ut(){try{const s=localStorage.getItem(xe);return s==="light"||s==="dark"?s:"system"}catch{return"system"}}let ce=ut();function qe(s){ce=s;try{s==="system"?localStorage.removeItem(xe):localStorage.setItem(xe,s)}catch{}s==="system"?delete document.documentElement.dataset.theme:document.documentElement.dataset.theme=s;for(const t of je)t()}function de(){return ce!=="system"?ce:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Xe(){qe(de()==="dark"?"light":"dark")}function ht(){return p.useSyncExternalStore(s=>(je.add(s),()=>je.delete(s)),()=>ce)}const Ye={running:"Running",waiting:"Needs approval",completed:"Completed",failed:"Failed",stopped:"Stopped",pending:"Pending",skipped:"Skipped"},pt={running:Me,waiting:gs,completed:fs,failed:De,stopped:js,pending:xs,skipped:ms};function U({status:s}){return e.jsx("span",{className:"status","data-status":s,children:Ye[s]})}function mt({status:s,size:t=15}){const n=pt[s];return e.jsx("span",{className:"status-icon","data-status":s,"data-tip":Ye[s],children:e.jsx(n,{size:t,strokeWidth:2,style:s==="running"?{animation:"spin 1s linear infinite"}:void 0})})}async function xt(s){if(navigator.clipboard&&window.isSecureContext){await navigator.clipboard.writeText(s);return}const t=document.createElement("textarea");t.value=s,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0",document.body.append(t),t.select(),document.execCommand("copy"),t.remove()}function ae({value:s,label:t="Copy"}){const[n,a]=p.useState(!1),i=p.useRef(void 0);p.useEffect(()=>()=>clearTimeout(i.current),[]);const r=async()=>{await xt(s),a(!0),clearTimeout(i.current),i.current=setTimeout(()=>a(!1),1400)};return e.jsx("button",{type:"button",className:"btn btn-ghost btn-icon btn-sm",onClick:()=>{r()},"aria-label":t,"data-tip":n?"Copied":t,children:n?e.jsx(hs,{size:13}):e.jsx(ps,{size:13})})}const jt=/("(?:\\.|[^"\\])*")(\s*:)?|\b(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\b|\b(true|false|null)\b/g;function ft(s){const t=[];let n=0;for(const a of s.matchAll(jt)){const i=a.index;i>n&&t.push(s.slice(n,i));const[r,c,l,o,d]=a;c!==void 0?(t.push(e.jsx("span",{className:l?"j-key":"j-string",children:c},i)),l&&t.push(l)):o!==void 0?t.push(e.jsx("span",{className:"j-number",children:o},i)):d!==void 0&&t.push(e.jsx("span",{className:"j-literal",children:d},i)),n=i+r.length}return n<s.length&&t.push(s.slice(n)),t}function B({value:s,label:t}){const n=M(s),a=typeof s!="string";return e.jsxs("div",{className:"json",children:[e.jsxs("div",{className:"json-head",children:[e.jsx("span",{children:t??"value"}),e.jsx(ae,{value:n,label:`Copy ${t??"value"}`})]}),e.jsx("pre",{children:a?ft(n):n})]})}function W({icon:s,title:t,children:n,action:a}){return e.jsxs("div",{className:"empty",children:[s&&e.jsx("div",{className:"empty-icon",children:e.jsx(s,{size:18})}),t&&e.jsx("div",{className:"empty-title",children:t}),n&&e.jsx("div",{className:"empty-text",children:n}),a]})}function R({keys:s}){return e.jsx("span",{className:"kbds",children:s.map(t=>e.jsx("kbd",{className:"kbd",children:t},t))})}function O({crumbs:s,actions:t}){return e.jsxs("header",{className:"topbar",children:[e.jsx("nav",{className:"crumbs","aria-label":"Breadcrumb",children:s.map((n,a)=>{const i=a===s.length-1;return e.jsxs("span",{style:{display:"contents"},children:[a>0&&e.jsx(ve,{size:14}),n.to&&!i?e.jsx("a",{href:S(...n.to),className:"truncate",children:n.label}):e.jsx("span",{className:`truncate ${i?"crumb-current":""}`,children:n.label})]},a)})}),t&&e.jsx("div",{className:"topbar-actions",children:t})]})}function I({children:s}){return e.jsxs("div",{className:"error-text",role:"alert",children:[e.jsx(De,{size:14}),e.jsx("span",{children:s})]})}function q(s){return s instanceof Error?s.message:String(s)}function gt(s,t){if(!t)return 1;const n=s.label.toLowerCase(),a=`${n} ${s.keywords??""} ${s.group}`.toLowerCase();return n.startsWith(t)?3:n.split(/[\s/:-]+/).some(i=>i.startsWith(t))?2:t.split(/\s+/).every(i=>a.includes(i))?1:0}function $e(s,t){return{id:`run-${s.id}`,group:t,label:ne(s.input,70)||s.id,hint:`${s.target} · ${G(s.startedAt)}`,icon:s.kind==="workflow"?D:s.kind==="fork"?J:P,keywords:`${s.target} ${s.output??""}`,run:()=>C("runs",s.id)}}function vt({onClose:s,onShortcuts:t}){const n=$(m=>m.host),a=$(m=>m.runs),[i,r]=p.useState(""),[c,l]=p.useState(0),[o,d]=p.useState([]),j=p.useRef(null),v=i.trim().toLowerCase();p.useEffect(()=>{if(v.length<2){d([]);return}let m=!0;const g=setTimeout(()=>{E.runs({q:v}).then(w=>m&&d(w.runs.slice(0,8))).catch(()=>m&&d([]))},120);return()=>{m=!1,clearTimeout(g)}},[v]);const h=p.useMemo(()=>{const m=n.state==="ready"?n.registry:void 0,w=[{id:"overview",group:"Go to",label:"Overview",icon:Fe,hint:e.jsx(R,{keys:["G","O"]}),run:()=>C()},{id:"runs",group:"Go to",label:"Runs",icon:P,keywords:"history traces",hint:e.jsx(R,{keys:["G","R"]}),run:()=>C("runs")},...(m?.agents??[]).map(b=>({id:`agent-${b.key}`,group:"Agents",label:b.name,hint:m?be(b,m):b.model,icon:K,keywords:`chat ${b.key} ${b.description??""}`,run:()=>C("agents",b.key)})),...(m?.workflows??[]).map(b=>({id:`workflow-${b.key}`,group:"Workflows",label:b.name,hint:`${b.nodes.length} nodes`,icon:D,keywords:`run ${b.key}`,run:()=>C("workflows",b.key)})),...(m?.agents??[]).map(b=>({id:`new-${b.key}`,group:"Actions",label:`New thread with ${b.name}`,icon:Pe,keywords:"chat message start",run:()=>C("agents",b.key)})),{id:"theme",group:"Actions",label:de()==="dark"?"Switch to light theme":"Switch to dark theme",icon:de()==="dark"?Ne:ye,keywords:"theme appearance dark light mode",run:Xe},{id:"shortcuts",group:"Actions",label:"Keyboard shortcuts",icon:Le,hint:e.jsx(R,{keys:["?"]}),keywords:"keys help hotkeys",run:t}].map(b=>({command:b,score:gt(b,v)})).filter(b=>b.score>0).sort((b,A)=>A.score-b.score).map(b=>b.command),y=v?o.map(b=>$e(b,"Runs")):Object.values(a).filter(b=>!b.parentRunId).sort((b,A)=>A.startedAt-b.startedAt).slice(0,5).map(b=>$e(b,"Recent runs")),k=["Go to","Agents","Workflows","Recent runs","Runs","Actions"];return[...w,...y].sort((b,A)=>k.indexOf(b.group)-k.indexOf(A.group))},[n,a,o,v,t]);p.useEffect(()=>l(0),[v]),p.useEffect(()=>{j.current?.querySelector(`[data-index="${c}"]`)?.scrollIntoView({block:"nearest"})},[c]);const u=m=>{m&&(s(),m.run())},x=m=>{m.key==="ArrowDown"||m.ctrlKey&&m.key==="n"?(m.preventDefault(),l(g=>Math.min(g+1,h.length-1))):m.key==="ArrowUp"||m.ctrlKey&&m.key==="p"?(m.preventDefault(),l(g=>Math.max(g-1,0))):m.key==="Enter"?(m.preventDefault(),u(h[c])):m.key==="Escape"&&(m.preventDefault(),s())};let f="";return e.jsx("div",{className:"overlay",onMouseDown:s,"data-dialog":!0,children:e.jsxs("div",{className:"palette",role:"dialog","aria-modal":"true","aria-label":"Command palette",onMouseDown:m=>m.stopPropagation(),onKeyDown:x,"data-testid":"command-palette",children:[e.jsxs("div",{className:"palette-input",children:[e.jsx(ue,{size:17}),e.jsx("input",{autoFocus:!0,value:i,onChange:m=>r(m.target.value),placeholder:"Search agents, workflows, runs and actions",role:"combobox","aria-expanded":"true","aria-controls":"palette-list","aria-activedescendant":h[c]?`palette-${h[c].id}`:void 0,"data-testid":"palette-input"}),e.jsx(R,{keys:["Esc"]})]}),e.jsxs("div",{className:"palette-list",id:"palette-list",role:"listbox",ref:j,children:[h.length===0&&e.jsx("div",{className:"palette-empty",children:"Nothing matches."}),h.map((m,g)=>{const w=m.group!==f?m.group:void 0;f=m.group;const y=m.icon;return e.jsxs("div",{children:[w&&e.jsx("div",{className:"palette-group",children:w}),e.jsxs("div",{id:`palette-${m.id}`,className:"palette-item",role:"option","aria-selected":g===c,"data-index":g,onMouseMove:()=>g!==c&&l(g),onClick:()=>u(m),children:[e.jsx(y,{size:15}),e.jsx("span",{className:"palette-label",children:m.label}),m.hint&&e.jsx("span",{className:"palette-hint",children:m.hint})]})]},m.id)})]}),e.jsxs("div",{className:"palette-foot",children:[e.jsxs("span",{children:[e.jsx(R,{keys:["↑","↓"]})," navigate"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd",children:e.jsx(vs,{size:10})})," ","open"]}),e.jsxs("span",{children:[e.jsx(R,{keys:["Esc"]})," close"]})]})]})})}const ke=/Mac|iPhone|iPad/.test(navigator.platform)?"⌘":"Ctrl";function Qe(s){const t=s.target;return t instanceof HTMLElement?t.isContentEditable||t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.tagName==="SELECT":!1}function Ze(){return document.querySelector("[data-dialog]")!==null}function es(s){const t=p.useRef(s);t.current=s,p.useEffect(()=>{const n=a=>t.current(a);return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[])}function ss(s,t){es(n=>{n.metaKey||n.ctrlKey||n.altKey||Qe(n)||Ze()||s.includes(n.key)&&(n.preventDefault(),t(n))})}const Nt=[{title:"Everywhere",keys:[["Command palette",[ke,"K"]],["Keyboard shortcuts",["?"]],["Go to the overview",["G","O"]],["Go to the runs",["G","R"]],["Search the page",["/"]]]},{title:"Chat",keys:[["Send",["Enter"]],["New line",["Shift","Enter"]],["New thread",["N"]],["Focus the message box",["C"]]]},{title:"Runs",keys:[["Next and previous run",["J","K"]],["Open the run",["Enter"]]]}];function yt({onClose:s}){return e.jsx("div",{className:"overlay",onMouseDown:s,onKeyDown:t=>t.key==="Escape"&&s(),"data-dialog":!0,children:e.jsxs("div",{className:"dialog",role:"dialog","aria-modal":"true","aria-labelledby":"shortcuts-title",onMouseDown:t=>t.stopPropagation(),children:[e.jsxs("div",{className:"dialog-head",children:[e.jsx("h2",{id:"shortcuts-title",children:"Keyboard shortcuts"}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-icon btn-sm",onClick:s,"aria-label":"Close",autoFocus:!0,children:e.jsx(We,{size:15})})]}),e.jsx("div",{className:"dialog-body",children:Nt.map(t=>e.jsxs("div",{children:[e.jsx("div",{className:"shortcut-group",children:t.title}),t.keys.map(([n,a])=>e.jsxs("div",{className:"shortcut",children:[e.jsx("span",{children:n}),e.jsx(R,{keys:a})]},n))]},t.title))})]})})}function bt({className:s}){return e.jsxs("svg",{className:s,viewBox:"0 0 32 32","aria-hidden":"true",children:[e.jsx("rect",{width:"32",height:"32",rx:"8",fill:"currentColor"}),e.jsx("path",{d:"M21 11.2A7 7 0 1 0 21 20.8",fill:"none",stroke:"var(--bg)",strokeWidth:"3",strokeLinecap:"round"}),e.jsx("circle",{cx:"16",cy:"16",r:"2",fill:"var(--bg)"})]})}function le({to:s,icon:t,active:n,children:a,meta:i,testId:r}){return e.jsxs("a",{href:S(...s),className:`sb-link ${n?"active":""}`,"aria-current":n?"page":void 0,"data-testid":r,children:[e.jsx(t,{size:15}),e.jsx("span",{className:"sb-text truncate",children:a}),i!==void 0&&e.jsx("span",{className:"sb-meta",children:i})]})}const kt=[{value:"system",icon:ys,label:"System theme"},{value:"light",icon:Ne,label:"Light theme"},{value:"dark",icon:ye,label:"Dark theme"}];function wt({route:s,onSearch:t,onShortcuts:n}){const a=$(u=>u.host),i=$(u=>u.project),r=$(u=>u.connected),c=$(u=>u.runs),l=ht(),o=a.state==="ready"?a.registry:void 0,d=(...u)=>u.every((x,f)=>s[f]===x),j=new Set(Object.values(c).filter(u=>u.status==="running"||u.status==="waiting").map(u=>u.target)),v=r?a.state:"offline",h={ready:"Project loaded",starting:"Loading the project",restarting:"Reloading the project",failed:"The project does not load",offline:"Reconnecting to cogitator dev"};return e.jsxs("nav",{className:"sidebar","aria-label":"Studio",children:[e.jsxs("div",{className:"sb-top",children:[e.jsxs("a",{className:"sb-brand",href:"#/",children:[e.jsx(bt,{className:"sb-mark"}),e.jsxs("span",{className:"sb-text",style:{minWidth:0},children:[e.jsx("div",{className:"sb-name",children:"Cogitator Studio"}),e.jsxs("div",{className:"sb-project",children:[e.jsx("span",{className:"dot","data-state":v}),e.jsx("span",{className:"truncate",children:i||"project"})]})]})]}),e.jsxs("button",{type:"button",className:"sb-search",onClick:t,"data-testid":"open-palette",children:[e.jsx(ue,{size:14}),e.jsx("span",{children:"Search"}),e.jsx(R,{keys:[ke,"K"]})]})]}),e.jsxs("div",{className:"sb-nav",children:[e.jsx(le,{to:[],icon:Fe,active:s.length===0,children:"Overview"}),e.jsx(le,{to:["runs"],icon:P,active:s[0]==="runs"||s[0]==="compare",testId:"nav-runs",meta:j.size>0?e.jsx("span",{className:"spinner","aria-label":"runs going"}):void 0,children:"Runs"}),e.jsxs("div",{className:"sb-section",children:[e.jsx("div",{className:"sb-section-title",children:"Agents"}),o?.agents.map(u=>e.jsx(le,{to:["agents",u.key],icon:K,active:d("agents",u.key),testId:`agent-${u.key}`,meta:j.has(u.key)?e.jsx("span",{className:"dot","data-state":"starting"}):void 0,children:u.name},u.key)),o?.agents.length===0&&e.jsx("div",{className:"sb-empty",children:"None registered"}),!o&&e.jsx("div",{className:"skeleton",style:{height:22,margin:"4px 8px"}})]}),o&&o.workflows.length>0&&e.jsxs("div",{className:"sb-section",children:[e.jsx("div",{className:"sb-section-title",children:"Workflows"}),o.workflows.map(u=>e.jsx(le,{to:["workflows",u.key],icon:D,active:d("workflows",u.key),meta:j.has(u.key)?e.jsx("span",{className:"dot","data-state":"starting"}):void 0,children:u.name},u.key))]}),o&&o.swarms.length>0&&e.jsxs("div",{className:"sb-section",children:[e.jsx("div",{className:"sb-section-title",children:"Swarms"}),o.swarms.map(u=>e.jsxs("div",{className:"sb-link sb-static","data-tip":`${u.strategy}: ${u.agents.join(", ")}`,children:[e.jsx(Ns,{size:15}),e.jsx("span",{className:"sb-text truncate",children:u.name}),e.jsx("span",{className:"sb-meta",children:u.strategy})]},u.key))]})]}),e.jsxs("div",{className:"sb-footer",children:[e.jsxs("div",{className:"sb-conn","data-tip":h[v],children:[e.jsx("span",{className:"dot","data-state":v}),e.jsx("span",{children:r?"Live":"Offline"})]}),e.jsxs("div",{className:"sb-tools",children:[e.jsx("div",{className:"seg seg-icons sb-themes",role:"group","aria-label":"Theme",children:kt.map(({value:u,icon:x,label:f})=>e.jsx("button",{type:"button","aria-pressed":l===u,"aria-label":f,"data-tip":f,onClick:()=>qe(u),children:e.jsx(x,{size:13})},u))}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-icon btn-sm sb-theme-toggle",onClick:Xe,"aria-label":"Switch theme","data-tip":"Switch theme",children:de()==="dark"?e.jsx(Ne,{size:14}):e.jsx(ye,{size:14})}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-icon btn-sm",onClick:n,"aria-label":"Keyboard shortcuts","data-tip":"Shortcuts",children:e.jsx(Le,{size:14})})]})]})]})}const St=/(```[\s\S]*?(?:```|$)|`[^`\n]*`)/g;function Ce(s,t,n,a){let i="",r=0;for(;;){const c=s.indexOf(t,r);if(c===-1)break;const l=s.indexOf(n,c+t.length);if(l===-1)break;const o=s.slice(c+t.length,l).trim();i+=s.slice(r,c)+(o?a(o):s.slice(c,l+n.length)),r=l+n.length}return i+s.slice(r)}function $t(s){return s.split(St).map((t,n)=>{if(n%2===1)return t;const a=Ce(t,"\\[","\\]",i=>`
2
2
 
3
3
  $$
4
4
  ${i}
5
5
  $$
6
6
 
7
- `);return Ce(r,"\\(","\\)",i=>`$$${i}$$`)}).join("")}const Ct={bash:Zs,css:Qs,diff:Ys,go:Xs,java:qs,javascript:Vs,json:Js,markdown:Hs,python:Us,rust:Gs,shell:Bs,sql:_s,typescript:Ks,xml:Ws,yaml:Ps},Tt={bash:["sh","zsh"],xml:["html","svg"],markdown:["md"]};function fe(s){return typeof s=="string"||typeof s=="number"?String(s):Array.isArray(s)?s.map(fe).join(""):p.isValidElement(s)?fe(s.props.children):""}function Et(s){if(p.isValidElement(s))return/language-([\w+-]+)/.exec(s.props.className??"")?.[1]}const At={pre:({children:s})=>{const t=Array.isArray(s)?s[0]:s,n=Et(t);return e.jsxs("div",{className:"codeblock",children:[e.jsxs("div",{className:"codeblock-head",children:[e.jsx("span",{children:n??"text"}),e.jsx(ae,{value:fe(t).replace(/\n$/,""),label:"Copy code"})]}),e.jsx("pre",{children:s})]})},a:({href:s,children:t})=>e.jsx("a",{href:s,target:"_blank",rel:"noreferrer noopener",children:t})},Rt=[et,[st,{singleDollarTextMath:!1}]],Ot=[[Fs,{throwOnError:!1,strict:"ignore",errorColor:"var(--error)"}],[Ls,{detect:!1,languages:Ct,aliases:Tt,plainText:["math"]}]],te=p.memo(function({text:t}){return e.jsx("div",{className:"md",children:e.jsx(Ms,{remarkPlugins:Rt,rehypePlugins:Ot,components:At,children:$t(t)})})});function It(s){return s&&typeof s=="object"&&!Array.isArray(s)?Object.entries(s).map(([t,n])=>`${t}: ${typeof n=="string"?JSON.stringify(n):M(n)}`).join(", ").replace(/\s+/g," "):ne(M(s),120)}function ts({call:s}){const t=s.approval,n=t?.status==="waiting",[r,i]=p.useState(!!s.error),[a,c]=p.useState(""),[l,o]=p.useState(!1),[d,j]=p.useState(),v=s.result===void 0&&!s.error&&!n&&t?.status!=="rejected",h=async u=>{if(t){o(!0),j(void 0);try{await E.approve(t.id,u,u?void 0:a.trim()||void 0)}catch(x){j(V(x))}finally{o(!1)}}};return e.jsxs("div",{className:"tool","data-state":n?"waiting":s.error?"error":"done","data-open":r,"data-testid":"tool-call","data-tool":s.name,children:[e.jsxs("button",{type:"button",className:"tool-head",onClick:()=>i(!r),"aria-expanded":r,children:[e.jsx(ve,{size:13,className:"tool-chevron"}),e.jsx(se,{size:13}),e.jsx("span",{className:"tool-name",children:s.name}),e.jsx("span",{className:"tool-args",children:It(s.arguments)}),v&&e.jsx("span",{className:"spinner","aria-label":"running"}),n&&e.jsx(U,{status:"waiting"}),t&&t.status!=="waiting"&&e.jsx("span",{className:"status","data-status":t.status,title:t.reason,children:t.status==="approved"?"Approved":"Rejected"}),s.error&&e.jsx("span",{className:"tool-result tool-result-error",children:ne(s.error,60)}),s.error&&e.jsx(U,{status:"failed"}),s.result!==void 0&&!s.error&&e.jsxs("span",{className:"tool-result",children:["→ ",ne(M(s.result),60)]})]}),r&&e.jsxs("div",{className:"tool-body",children:[e.jsx(B,{label:"Arguments",value:s.arguments}),s.result!==void 0&&!(s.error&&s.result===null)&&e.jsx(B,{label:"Result",value:s.result}),t?.reason&&e.jsxs("div",{className:"notice",children:["Rejected because: ",t.reason]}),s.error&&e.jsx(I,{children:s.error})]}),n&&e.jsxs("div",{className:"approval","data-testid":"approval",children:[e.jsxs("div",{className:"approval-text",children:[e.jsx(Ke,{size:15}),s.name," needs your approval before it runs"]}),!r&&e.jsx(B,{label:"Arguments",value:s.arguments}),e.jsxs("div",{className:"approval-row",children:[e.jsx("input",{className:"input",placeholder:"Reason the model sees if you reject it (optional)",value:a,onChange:u=>c(u.target.value),onKeyDown:u=>u.key==="Enter"&&void h(!1)}),e.jsx("button",{type:"button",className:"btn btn-secondary",disabled:l,onClick:()=>{h(!1)},"data-testid":"reject",children:"Reject"}),e.jsx("button",{type:"button",className:"btn btn-primary",disabled:l,onClick:()=>{h(!0)},"data-testid":"approve",children:"Approve"})]}),d&&e.jsx(I,{children:d})]})]})}function zt({text:s,live:t}){const[n,r]=p.useState(t);return p.useEffect(()=>r(t),[t]),e.jsxs("div",{className:"reasoning","data-testid":"reasoning",children:[e.jsxs("button",{type:"button",className:"reasoning-toggle",onClick:()=>r(!n),"aria-expanded":n,children:[e.jsx(ve,{size:12,style:{transform:n?"rotate(90deg)":void 0,transition:"transform 0.15s"}}),t?"Reasoning":"Reasoned",t&&e.jsx("span",{className:"spinner",style:{width:10,height:10}})]}),n&&e.jsx("div",{className:"reasoning-text",children:e.jsx(te,{text:s})})]})}function Dt({run:s}){const t=s.status==="running"||s.status==="waiting",n=s.usage?s.usage.inputTokens+s.usage.outputTokens:void 0;return e.jsxs("div",{className:"turn","data-testid":"turn","data-run":s.id,"data-status":s.status,children:[e.jsx("div",{className:"msg-user",children:s.input}),e.jsxs("div",{className:"msg-assistant",children:[s.reasoning&&e.jsx(zt,{text:s.reasoning,live:s.status==="running"&&!s.output&&s.toolCalls.length===0}),s.toolCalls.map(r=>e.jsx(ts,{call:r},r.id)),s.output?e.jsxs("div",{"data-testid":"answer",children:[e.jsx(te,{text:s.output}),t&&e.jsx("span",{className:"cursor"})]}):t&&s.status==="running"?e.jsxs("div",{className:"msg-thinking",children:[e.jsx("span",{className:"spinner"})," Thinking"]}):null,s.error&&(s.status==="stopped"?e.jsxs("div",{className:"notice","data-testid":"run-error",children:[e.jsx(_e,{size:13}),s.error]}):e.jsx("div",{"data-testid":"run-error",children:e.jsx(I,{children:s.error})})),!(t&&!s.usage)&&e.jsxs("div",{className:"turn-meta",children:[e.jsx(mt,{status:s.status,size:14}),s.usage&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"sep",children:"·"}),e.jsx("span",{children:T(s.usage.duration)}),e.jsx("span",{className:"sep",children:"·"}),e.jsx("span",{children:Y(s.usage.cost,s.usage.priced!==!1)}),n!==void 0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"sep",children:"·"}),e.jsxs("span",{children:[L(n)," tokens"]})]})]}),s.children.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"sep",children:"·"}),e.jsxs("span",{children:[s.children.length," nested run",s.children.length===1?"":"s"]})]}),e.jsxs("span",{className:"turn-actions",children:[s.output&&e.jsx(ae,{value:s.output,label:"Copy answer"}),e.jsxs("a",{className:"btn btn-ghost btn-sm",href:S("runs",s.id),"data-testid":"trace-link",children:[e.jsx(Be,{size:13}),"Trace"]})]})]})]})]})}function Mt(s,t=new Date){const n=new Date(t);n.setHours(0,0,0,0);const r=864e5;return s>=n.getTime()?"Today":s>=n.getTime()-r?"Yesterday":s>=n.getTime()-6*r?"Previous 7 days":"Older"}function Ft({agent:s,threads:t,active:n}){const[r,i]=p.useState(""),a=t.filter(l=>l.title.toLowerCase().includes(r.trim().toLowerCase()));let c="";return e.jsxs("aside",{className:"threads","aria-label":"Threads",children:[e.jsxs("div",{className:"threads-head",children:[e.jsxs("button",{type:"button",className:"btn btn-secondary",onClick:()=>C("agents",s),"data-testid":"new-thread",children:[e.jsx(Pe,{size:14}),"New thread",e.jsx("span",{style:{marginLeft:"auto"},children:e.jsx(R,{keys:["N"]})})]}),t.length>4&&e.jsxs("label",{className:"input-icon",children:[e.jsx(ue,{size:13}),e.jsx("input",{className:"input",placeholder:"Filter threads",value:r,onChange:l=>i(l.target.value),style:{minHeight:30,padding:"4px 10px 4px 30px"}})]})]}),e.jsxs("div",{className:"threads-list",children:[a.length===0&&e.jsx("div",{className:"muted",style:{padding:"8px 10px"},children:t.length===0?"No threads yet.":"No thread matches."}),a.map(l=>{const o=Mt(l.updatedAt),d=o!==c;return c=o,e.jsxs("div",{children:[d&&e.jsx("div",{className:"thread-group",children:o}),e.jsxs("a",{href:S("agents",s,l.id),className:`thread ${l.id===n?"active":""}`,"aria-current":l.id===n?"page":void 0,"data-testid":"thread",children:[e.jsx("span",{className:"thread-title",children:l.title}),e.jsxs("span",{className:"thread-meta",children:[l.runs.length," turn",l.runs.length===1?"":"s"," ·"," ",G(l.updatedAt)]})]})]},l.id)})]})]})}function Lt({agent:s}){return e.jsxs("div",{className:"agent-intro",children:[e.jsx("div",{className:"agent-intro-mark",children:e.jsx(K,{size:20})}),e.jsx("h2",{children:s.name}),e.jsx("p",{children:s.description??"An agent of this project. Send a message to start a thread."}),s.tools.length>0&&e.jsx("div",{className:"agent-intro-tools",children:s.tools.map(t=>e.jsxs("span",{className:"chip","data-tip":t.description||t.name,children:[t.requiresApproval?e.jsx(Ke,{size:11}):e.jsx(se,{size:11}),t.name,t.requiresApproval&&e.jsx("span",{className:"chip-flag",children:"approval"})]},t.name))}),s.instructions&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"instructions-label",children:"Instructions"}),e.jsx("div",{className:"instructions",children:s.instructions})]})]})}function Pt({agentKey:s,threadId:t}){const n=$(N=>N.host),r=n.state==="ready"?n.memory:void 0,i=n.state==="ready"?n.registry.agents.find(N=>N.key===s):void 0,a=$(N=>N.threads),c=$(N=>N.runs),l=Object.values(a).filter(N=>N.agent===s).sort((N,H)=>H.updatedAt-N.updatedAt),o=t?a[t]:void 0,d=(o?.runs??[]).map(N=>c[N]).filter(N=>N!==void 0),j=d.find(N=>N.status==="running"||N.status==="waiting"),[v,h]=p.useState(""),[u,x]=p.useState(),[f,m]=p.useState(!1),g=p.useRef(null),w=p.useRef(null),y=p.useRef(!0);p.useEffect(()=>{t&&dt(t).catch(()=>{})},[t]),p.useEffect(()=>{y.current=!0,w.current?.focus()},[t]);const k=d.at(-1),b=`${d.length}:${k?.output?.length??0}:${k?.toolCalls.length??0}:${k?.status??""}`;if(p.useLayoutEffect(()=>{const N=g.current;N&&y.current&&(N.scrollTop=N.scrollHeight)},[b]),p.useLayoutEffect(()=>{const N=w.current;N&&(N.style.height="auto",N.style.height=`${Math.min(N.scrollHeight,240)}px`)},[v]),ss(["n","c"],N=>{N.key==="n"?C("agents",s):w.current?.focus()}),n.state!=="ready")return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[{label:"Agents"},{label:s}]}),e.jsx("div",{className:"scroll",children:e.jsx(W,{icon:K,title:"Waiting for the project"})})]});if(!i)return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[{label:"Agents"},{label:s}]}),e.jsx("div",{className:"scroll",children:e.jsx(W,{icon:K,title:`No agent ${s}`,children:"It is not in the registry of this project anymore."})})]});const A=async N=>{N?.preventDefault();const H=v.trim();if(!(!H||f||j)){m(!0),x(void 0),y.current=!0;try{const ie=await E.chat(s,H,t);h(""),ie.threadId!==t&&C("agents",s,ie.threadId)}catch(ie){x(V(ie))}finally{m(!1)}}},re=N=>{N.key==="Enter"&&!N.shiftKey&&!N.nativeEvent.isComposing?(N.preventDefault(),A()):N.key==="Escape"&&N.currentTarget.blur()};return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[{label:i.name,to:["agents",i.key]},...o?[{label:o.title}]:[{label:"New thread"}]],actions:e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"chip","data-tip":i.model?"Model of the agent":"Default model of the runtime",children:be(i,n.registry)}),e.jsxs("span",{className:"chip","data-tip":i.tools.map(N=>N.name).join(", ")||"No tools",children:[e.jsx(se,{size:11}),i.tools.length]})]})}),e.jsxs("div",{className:"agent-layout",children:[e.jsx(Ft,{agent:s,threads:l,active:t}),e.jsxs("section",{className:"chat","aria-label":`Chat with ${i.name}`,children:[e.jsx("div",{className:"chat-scroll",ref:g,onScroll:N=>{const H=N.currentTarget;y.current=H.scrollHeight-H.scrollTop-H.clientHeight<80},children:e.jsxs("div",{className:"chat-inner","data-testid":"messages",children:[r==="studio"&&d.length===0&&e.jsxs("div",{className:"notice chat-notice",children:[e.jsx(bs,{size:14}),e.jsx("span",{children:"The project has no memory configured, so the studio keeps the conversation of each thread for its runs."})]}),d.length===0&&e.jsx(Lt,{agent:i}),d.map(N=>e.jsx(Dt,{run:N},N.id))]})}),e.jsxs("form",{className:"composer-wrap",onSubmit:N=>{A(N)},children:[e.jsxs("div",{className:"composer",onMouseDown:N=>{N.target instanceof HTMLElement&&!N.target.closest("button, textarea")&&(N.preventDefault(),w.current?.focus())},children:[e.jsx("textarea",{ref:w,rows:1,placeholder:`Message ${i.name}`,value:v,onChange:N=>h(N.target.value),onKeyDown:re,"aria-label":`Message ${i.name}`,"data-testid":"chat-input"}),e.jsxs("div",{className:"composer-foot",children:[e.jsxs("div",{className:"composer-hint",children:[e.jsxs("span",{children:[e.jsx(R,{keys:["Enter"]})," send"]}),e.jsxs("span",{children:[e.jsx(R,{keys:["Shift","Enter"]})," new line"]})]}),j?e.jsxs("button",{type:"button",className:"btn btn-danger btn-sm",onClick:()=>{E.stop(j.id)},"data-testid":"stop",children:[e.jsx(_e,{size:11,fill:"currentColor"}),"Stop"]}):e.jsx("button",{type:"submit",className:"btn btn-primary btn-icon btn-sm",disabled:f||!v.trim(),"aria-label":"Send","data-testid":"send",children:e.jsx(ks,{size:15})})]})]}),u&&e.jsx("div",{style:{maxWidth:780,margin:"0 auto"},children:e.jsx(I,{children:u})})]})]})]})]})}const ns={run:K,llm:Ss,tool:se,agent:K,handoff:Ge,other:ws},Wt={run:"Agent run",llm:"Model call",tool:"Tool call",agent:"Agent",handoff:"Handoff",other:"Span"};function ge(s,t,n,r){const i=[],a=s.spans.find(o=>o.kind==="agent");i.push({key:`run-${s.id}`,depth:n,label:s.kind==="workflow"?s.target:s.agentName??s.target,kind:"run",start:a?.startTime??s.startedAt,end:a?.endTime??s.endedAt??r,status:s.status==="running"||s.status==="waiting"?"running":s.status==="completed"?"ok":"error",run:s,...a&&{span:a}});const c=s.children.map(o=>t[o]).filter(o=>o!==void 0),l=new Set;for(const o of s.spans)if(o.kind!=="agent"&&(i.push({key:o.id,depth:n+1,label:o.kind==="llm"?o.model??"model":o.name.replace(/^tool\./,""),kind:o.kind,start:o.startTime,end:o.endTime,status:o.status,span:o,run:s}),o.kind==="tool")){const d=o.attributes["tool.call_id"];for(const j of c)j.parentToolCallId&&j.parentToolCallId===d&&(l.add(j.id),i.push(...ge(j,t,n+2,r)))}for(const o of c)l.has(o.id)||i.push(...ge(o,t,n+1,r));return i}function as(s){return s.kind==="run"?s.run.usage?.priced===!1?void 0:s.run.usage?.cost:s.span?.cost}function Kt(s){if(s.span?.kind==="llm")return(s.span.inputTokens??0)+(s.span.outputTokens??0)}function Te(s){return typeof s=="number"&&Number.isFinite(s)?s:void 0}function _t(s){const t=s.span?.attributes["tool.call_id"];return s.run.toolCalls.find(n=>n.id===t)}const Bt=new Set(["llm.model","llm.input_tokens","llm.output_tokens","llm.cached_input_tokens","llm.reasoning_tokens","llm.iteration","llm.finish_reason","tool.name","tool.call_id","tool.arguments","tool.success","tool.error"]);function Gt({row:s,origin:t,root:n,onClose:r}){const i=s.run.kind==="workflow"&&s.kind==="run"?D:ns[s.kind],a=s.span?.attributes??{},c=Object.fromEntries(Object.entries(a).filter(([h])=>!Bt.has(h))),l=s.kind==="tool"?_t(s):void 0,o=as(s),d=s.span?.kind==="llm"?s.span:void 0,j=Te(a["llm.cached_input_tokens"]),v=Te(a["llm.reasoning_tokens"]);return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"inspector-backdrop",onMouseDown:r}),e.jsxs("aside",{className:"inspector","aria-label":"Span details","data-testid":"inspector","data-dialog":!0,children:[e.jsxs("div",{className:"inspector-head",children:[e.jsx(i,{size:16,style:{marginTop:2,color:"var(--text-3)",flexShrink:0}}),e.jsxs("div",{style:{flex:1,minWidth:0},children:[e.jsx("h3",{children:s.label}),e.jsx("div",{className:"inspector-kind",children:Wt[s.kind]})]}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-icon btn-sm",onClick:r,"aria-label":"Close",children:e.jsx(We,{size:15})})]}),e.jsxs("div",{className:"inspector-body",children:[e.jsxs("dl",{className:"kv",children:[e.jsx("dt",{children:"Duration"}),e.jsx("dd",{children:T(s.end-s.start)}),e.jsx("dt",{children:"Starts at"}),e.jsxs("dd",{children:["+",T(s.start-t)]}),s.kind==="run"&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Status"}),e.jsx("dd",{children:e.jsx(U,{status:s.run.status})}),s.run.model&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Model"}),e.jsx("dd",{className:"mono",children:s.run.model})]}),s.run.usage&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Tokens"}),e.jsxs("dd",{children:[L(s.run.usage.inputTokens)," in,"," ",L(s.run.usage.outputTokens)," out"]})]})]}),d&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Model"}),e.jsx("dd",{className:"mono",children:d.model??"-"}),e.jsx("dt",{children:"Input tokens"}),e.jsxs("dd",{children:[L(d.inputTokens),j!==void 0&&j>0&&e.jsxs("span",{className:"muted",children:[" (",L(j)," cached)"]})]}),e.jsx("dt",{children:"Output tokens"}),e.jsxs("dd",{children:[L(d.outputTokens),v!==void 0&&v>0&&e.jsxs("span",{className:"muted",children:[" (",L(v)," reasoning)"]})]}),a["llm.iteration"]!==void 0&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Iteration"}),e.jsx("dd",{children:String(a["llm.iteration"])})]}),a["llm.finish_reason"]!==void 0&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Finish reason"}),e.jsx("dd",{className:"mono",children:String(a["llm.finish_reason"])})]})]}),(s.kind==="llm"||s.kind==="run")&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Cost"}),e.jsx("dd",{children:Y(o,o!==void 0)})]}),s.kind==="tool"&&a["tool.call_id"]!==void 0&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Call id"}),e.jsx("dd",{className:"mono",children:String(a["tool.call_id"])})]})]}),s.kind==="run"&&s.run.id!==n.id&&e.jsxs("a",{className:"btn btn-secondary",href:S("runs",s.run.id),children:[e.jsx($s,{size:13}),"Open this run"]}),s.kind==="run"&&e.jsx(B,{label:"Input",value:s.run.input}),s.kind==="run"&&s.run.output&&e.jsxs("div",{children:[e.jsx("div",{className:"io-label",children:"Output"}),e.jsx(te,{text:s.run.output})]}),s.kind==="run"&&s.run.error&&e.jsx(I,{children:s.run.error}),s.kind==="tool"&&e.jsx(B,{label:"Arguments",value:l?.arguments??a["tool.arguments"]??null}),s.kind==="tool"&&l?.result!==void 0&&!(l.error&&l.result===null)&&e.jsx(B,{label:"Result",value:l.result}),s.kind==="tool"&&(l?.error??a["tool.error"])!==void 0&&e.jsx(I,{children:String(l?.error??a["tool.error"])}),Object.keys(c).length>0&&e.jsx(B,{label:"Attributes",value:c})]})]})]})}function rs({run:s,runs:t,compact:n=!1}){const[r,i]=p.useState(),[a,c]=p.useState(Date.now),l=s.status==="running"||s.status==="waiting";p.useEffect(()=>{if(!l)return;const x=setInterval(()=>c(Date.now()),250);return()=>clearInterval(x)},[l]);const o=ge(s,t,0,a),d=Math.min(...o.map(x=>x.start)),v=Math.max(...o.map(x=>x.end),d+1)-d,h=o.findIndex(x=>x.key===r),u=o[h];return p.useEffect(()=>{if(!u)return;const x=f=>{f.key==="Escape"?i(void 0):f.key==="ArrowDown"||f.key==="j"?(f.preventDefault(),i(o[Math.min(h+1,o.length-1)]?.key)):(f.key==="ArrowUp"||f.key==="k")&&(f.preventDefault(),i(o[Math.max(h-1,0)]?.key))};return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},[u,h,o]),e.jsxs("div",{className:"wf","data-testid":"waterfall",children:[e.jsxs("div",{className:"wf-row wf-head",children:[e.jsx("span",{children:"Span"}),e.jsxs("span",{className:"wf-axis",children:[e.jsx("span",{children:"0"}),e.jsx("span",{children:T(v/2)}),e.jsx("span",{children:T(v)})]}),e.jsx("span",{className:"wf-num",children:"Time"}),!n&&e.jsx("span",{className:"wf-num",children:"Tokens"}),!n&&e.jsx("span",{className:"wf-num",children:"Cost"})]}),o.map(x=>{const f=(x.start-d)/v*100,m=Math.max((x.end-x.start)/v*100,.5),g=Kt(x),w=as(x),y=x.kind==="run"&&x.run.kind==="workflow"?D:ns[x.kind];return e.jsxs("button",{type:"button",className:`wf-row ${r===x.key?"selected":""}`,onClick:()=>i(r===x.key?void 0:x.key),"data-testid":"trace-row","data-kind":x.kind,"aria-pressed":r===x.key,children:[e.jsxs("span",{className:"wf-label","data-kind":x.kind,title:x.label,children:[Array.from({length:x.depth},(k,b)=>e.jsx("span",{className:"wf-guide"},b)),e.jsx(y,{size:13}),e.jsx("span",{className:"truncate",children:x.label}),x.status==="error"&&e.jsx("span",{className:"wf-error",children:"failed"})]}),e.jsx("span",{className:"wf-track",children:e.jsx("span",{className:"wf-bar","data-kind":x.kind,"data-status":x.status,style:{left:`${f}%`,width:`${m}%`}})}),e.jsx("span",{className:"wf-num",children:T(x.end-x.start)}),!n&&e.jsx("span",{className:"wf-num",children:g!==void 0?L(g):""}),!n&&e.jsx("span",{className:"wf-num",children:w!==void 0?Y(w):""})]},x.key)}),u&&e.jsx(Gt,{row:u,origin:d,root:s,onClose:()=>i(void 0)})]})}function is(s,t){let n=0,r=0,i=0,a=!1;const c=l=>{if(l.usage)n+=l.usage.inputTokens,r+=l.usage.outputTokens,i+=l.usage.cost,a||=l.usage.priced!==!1;else for(const o of l.spans)o.kind==="llm"&&(n+=o.inputTokens??0,r+=o.outputTokens??0,i+=o.cost??0,a||=o.cost!==void 0);for(const o of l.children){const d=t[o];d&&(l.kind!=="workflow"||!l.usage)&&c(d)}};return c(s),{inputTokens:n,outputTokens:r,cost:i,priced:a}}function Ee({run:s,title:t,runs:n,changed:r}){const i=is(s,n);return e.jsxs("section",{className:"panel","data-testid":`compare-${t.toLowerCase()}`,children:[e.jsxs("div",{className:"panel-head",children:[e.jsxs("div",{className:"panel-title",children:[e.jsx("a",{href:S("runs",s.id),children:t}),e.jsx(U,{status:s.status})]}),e.jsxs("span",{className:"muted num",children:[Y(i.cost,i.priced)," ·"," ",T((s.endedAt??Date.now())-s.startedAt)]})]}),e.jsxs("div",{className:"compare-section",children:[e.jsx("h3",{children:"Input"}),e.jsx("div",{className:"io-input",children:s.input})]}),e.jsxs("div",{className:"compare-section",children:[e.jsx("h3",{children:"Tool calls"}),s.toolCalls.length===0&&e.jsx("span",{className:"muted",children:"None"}),s.toolCalls.map((a,c)=>e.jsxs("div",{className:`compare-call ${r.has(c)?"diverged":""}`,children:[e.jsxs("span",{className:"tool-name",children:[r.has(c)&&e.jsx(Ue,{size:12,color:"var(--warn)"}),a.name]}),e.jsx(B,{label:"Result",value:a.result??a.error??null})]},a.id))]}),e.jsxs("div",{className:"compare-section",children:[e.jsx("h3",{children:"Output"}),e.jsx("div",{"data-testid":"compare-output",children:s.output?e.jsx(te,{text:s.output}):e.jsx("span",{className:"muted",children:s.error??"None yet"})})]}),e.jsxs("div",{className:"compare-section",style:{padding:"14px 0 8px"},children:[e.jsx("h3",{style:{padding:"0 16px"},children:"Trace"}),e.jsx(rs,{run:s,runs:n,compact:!0})]})]})}function Ut({originalId:s,forkId:t}){const n=$(j=>j.runs);p.useEffect(()=>{me(s).catch(()=>{}),me(t).catch(()=>{})},[s,t]);const r=n[s],i=n[t],a=[{label:"Runs",to:["runs"]},...r?[{label:r.target,to:["runs",r.id]}]:[],{label:"Compare"}];if(!r||!i)return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:a}),e.jsx("div",{className:"scroll",children:e.jsx(W,{icon:Cs,title:"Loading both runs"})})]});const c=new Set,l=Math.max(r.toolCalls.length,i.toolCalls.length);for(let j=0;j<l;j++){const v=r.toolCalls[j],h=i.toolCalls[j];(v?.name!==h?.name||M(v?.result)!==M(h?.result))&&c.add(j)}const o=i.forkOf,d=[o?.input!==void 0&&"Input",o?.context!==void 0&&"Context",...Object.keys(o?.toolResults??{}).map(j=>`Result of ${j}`)].filter(j=>!!j);return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:a}),e.jsx("div",{className:"scroll",children:e.jsxs("div",{className:"page",style:{maxWidth:1400},"data-testid":"compare-view",children:[e.jsx("div",{className:"page-head",children:e.jsxs("div",{children:[e.jsxs("h1",{className:"page-title",children:["Fork at step ",o?.step??"?"]}),e.jsx("div",{className:"page-sub",children:c.size===0?"Both branches made the same tool calls.":`${c.size} tool call${c.size===1?"":"s"} differ between the branches, highlighted below.`})]})}),e.jsx("div",{className:"diff-chips",children:d.length===0?e.jsxs("span",{className:"chip",children:[e.jsx(J,{size:11}),"Nothing changed, a plain rerun"]}):d.map(j=>e.jsxs("span",{className:"chip",children:[e.jsx(J,{size:11}),j]},j))}),e.jsxs("div",{className:"compare",children:[e.jsx(Ee,{run:r,title:"Original",runs:n,changed:c}),e.jsx(Ee,{run:i,title:"Fork",runs:n,changed:c})]})]})})]})}const Ht={agent:P,workflow:D,fork:J};function ls({runs:s,focused:t}){return e.jsxs("div",{className:"table",role:"table","aria-label":"Runs",children:[e.jsxs("div",{className:"tr thead",role:"row",children:[e.jsx("span",{role:"columnheader",children:"Status"}),e.jsx("span",{role:"columnheader",children:"Target"}),e.jsx("span",{role:"columnheader",children:"Input"}),e.jsx("span",{role:"columnheader",className:"td-right",children:"Tokens"}),e.jsx("span",{role:"columnheader",className:"td-right",children:"Cost"}),e.jsx("span",{role:"columnheader",className:"td-right",children:"Duration"}),e.jsx("span",{role:"columnheader",className:"td-right",children:"Started"})]}),s.map((n,r)=>{const i=Ht[n.kind],a=n.usage?n.usage.inputTokens+n.usage.outputTokens:void 0;return e.jsxs("a",{className:`tr ${t===r?"focused":""}`,href:S("runs",n.id),role:"row","data-testid":"run-row","data-index":r,children:[e.jsx("span",{role:"cell",children:e.jsx(U,{status:n.status})}),e.jsxs("span",{role:"cell",className:"td-target",children:[e.jsx(i,{size:14}),e.jsx("span",{className:"truncate",children:n.kind==="fork"?`fork of ${n.target}`:n.target})]}),e.jsx("span",{role:"cell",className:"truncate subtle",children:ne(n.input,140)}),e.jsx("span",{role:"cell",className:"td-right muted",children:a!==void 0?L(a):""}),e.jsx("span",{role:"cell",className:"td-right muted",children:n.usage?Y(n.usage.cost,n.usage.priced!==!1):""}),e.jsx("span",{role:"cell",className:"td-right muted",children:T((n.endedAt??Date.now())-n.startedAt)}),e.jsx("span",{role:"cell",className:"td-right muted",children:G(n.startedAt)})]},n.id)})]})}function oe({icon:s,label:t,value:n,foot:r}){return e.jsxs("div",{className:"stat",children:[e.jsxs("div",{className:"stat-label",children:[e.jsx(s,{size:13}),t]}),e.jsx("div",{className:"stat-value",children:n}),e.jsx("div",{className:"stat-foot",children:r})]})}function Jt({stats:s}){const t=s.byStatus.completed+s.byStatus.failed,n=t>0?s.byStatus.completed/t*100:void 0,r=s.activity.at(-1)?.runs??0;return e.jsxs("div",{className:"stats","data-testid":"stats",children:[e.jsx(oe,{icon:P,label:"Runs",value:Z(s.runs),foot:`${Z(r)} today`}),e.jsx(oe,{icon:Ts,label:"Success rate",value:n===void 0?"-":`${n>=99.95||n<.05?n.toFixed(0):n.toFixed(1)}%`,foot:`${Z(s.byStatus.failed)} failed`}),e.jsx(oe,{icon:Es,label:"Spend",value:Y(s.cost,s.priced),foot:`${Z(s.inputTokens+s.outputTokens)} tokens`}),e.jsx(oe,{icon:As,label:"Latency p50",value:s.duration?T(s.duration.p50):"-",foot:s.duration?`p95 ${T(s.duration.p95)}`:"no finished runs"})]})}function Vt({stats:s}){const t=Math.max(1,...s.activity.map(i=>i.runs)),n=s.activity[0],r=s.activity.at(-1);return e.jsxs("div",{className:"panel",children:[e.jsxs("div",{className:"panel-head",children:[e.jsx("div",{className:"panel-title",children:"Activity"}),e.jsxs("span",{className:"muted",children:["last ",s.activity.length," days"]})]}),e.jsxs("div",{className:"panel-body",children:[e.jsx("div",{className:"chart",role:"img","aria-label":"Runs per day",children:s.activity.map(i=>e.jsx("div",{className:"chart-col","data-tip":`${we(i.day)}: ${i.runs} run${i.runs===1?"":"s"}${i.failed?`, ${i.failed} failed`:""}`,children:e.jsx("div",{className:"chart-bar",style:{height:`${i.runs/t*100}%`},children:i.failed>0&&e.jsx("div",{className:"chart-bar-failed",style:{height:`${i.failed/Math.max(i.runs,1)*100}%`}})})},i.day))}),e.jsxs("div",{className:"chart-axis",children:[e.jsx("span",{children:n?we(n.day):""}),e.jsx("span",{children:r?"Today":""})]})]})]})}function qt({stats:s}){const t=[{key:"completed",label:"Completed"},{key:"failed",label:"Failed"},{key:"stopped",label:"Stopped"},{key:"running",label:"Running"},{key:"waiting",label:"Needs approval"}];return e.jsxs("div",{className:"panel",children:[e.jsx("div",{className:"panel-head",children:e.jsx("div",{className:"panel-title",children:"Outcomes"})}),e.jsx("div",{className:"panel-body breakdown",children:t.map(({key:n,label:r})=>{const i=s.byStatus[n],a=s.runs>0?i/s.runs*100:0;return e.jsxs("div",{className:"breakdown-row",children:[e.jsxs("div",{className:"breakdown-label",children:[e.jsx("span",{className:"subtle",children:r}),e.jsx("span",{className:"num",children:Z(i)})]}),e.jsx("div",{className:"meter",children:e.jsx("span",{"data-status":n,style:{width:`${a}%`}})})]},n)})})]})}function Ae(s,t){return`${Z(s)} ${t}${s===1?"":"s"}`}function Re(s,t,n){return s?.targets.find(r=>r.kind===t&&r.target===n)}function Xt(){const s=$(l=>l.host),t=$(l=>l.project),n=$(l=>l.stats),r=$(l=>l.runs),i=Object.values(r).filter(l=>!l.parentRunId).sort((l,o)=>o.startedAt-l.startedAt).slice(0,6);if(s.state!=="ready")return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[{label:"Overview"}]}),e.jsx("div",{className:"scroll",children:e.jsx(W,{icon:K,title:"Waiting for the project",children:"The studio shows the project once its registry loads."})})]});const{registry:a,memory:c}=s;return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[{label:"Overview"}]}),e.jsx("div",{className:"scroll",children:e.jsxs("div",{className:"page","data-testid":"overview",children:[e.jsxs("div",{className:"page-head",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"page-title",children:t}),e.jsxs("div",{className:"page-sub",children:[a.agents.length," agent",a.agents.length===1?"":"s",a.workflows.length>0&&`, ${a.workflows.length} workflow${a.workflows.length===1?"":"s"}`,a.swarms.length>0&&`, ${a.swarms.length} swarm${a.swarms.length===1?"":"s"}`,c==="studio"?", threads kept by the studio":", memory of the project"]})]}),a.agents[0]&&e.jsxs("a",{className:"btn btn-primary",href:S("agents",a.agents[0].key),children:[e.jsx(He,{size:14}),"Chat with ",a.agents[0].name]})]}),n?e.jsxs(e.Fragment,{children:[e.jsx(Jt,{stats:n}),e.jsxs("div",{className:"activity",children:[e.jsx(Vt,{stats:n}),e.jsx(qt,{stats:n})]})]}):e.jsx("div",{className:"skeleton",style:{height:96,borderRadius:12}}),e.jsx("h2",{className:"section-title",children:"Agents"}),a.agents.length===0?e.jsx("div",{className:"panel",children:e.jsxs(W,{icon:K,title:"No agents yet",children:["Export them as ",e.jsx("code",{children:"agents"})," from ",e.jsx("code",{children:"src/cogitator.ts"}),"."]})}):e.jsx("div",{className:"entities",children:a.agents.map(l=>{const o=Re(n,"agent",l.key);return e.jsxs("a",{className:"entity",href:S("agents",l.key),children:[e.jsxs("div",{className:"entity-head",children:[e.jsx("span",{className:"entity-icon",children:e.jsx(K,{size:15})}),e.jsxs("div",{style:{minWidth:0},children:[e.jsx("div",{className:"entity-name truncate",children:l.name}),e.jsx("div",{className:"muted mono truncate",children:be(l,a)})]})]}),e.jsx("div",{className:"entity-desc",children:l.description??l.instructions??"An agent of this project."}),e.jsxs("div",{className:"entity-foot",children:[e.jsxs("span",{children:[e.jsx(se,{size:12}),l.tools.length," tool",l.tools.length===1?"":"s"]}),e.jsxs("span",{children:[e.jsx(P,{size:12}),Ae(o?.runs??0,"run")]}),o&&e.jsx("span",{children:G(o.lastRunAt)})]})]},l.key)})}),a.workflows.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"section-title",children:"Workflows"}),e.jsx("div",{className:"entities",children:a.workflows.map(l=>{const o=Re(n,"workflow",l.key);return e.jsxs("a",{className:"entity",href:S("workflows",l.key),children:[e.jsxs("div",{className:"entity-head",children:[e.jsx("span",{className:"entity-icon",children:e.jsx(D,{size:15})}),e.jsxs("div",{style:{minWidth:0},children:[e.jsx("div",{className:"entity-name truncate",children:l.name}),e.jsx("div",{className:"muted mono truncate",children:l.nodes.join(" → ")})]})]}),e.jsxs("div",{className:"entity-foot",children:[e.jsxs("span",{children:[l.nodes.length," nodes"]}),e.jsxs("span",{children:[e.jsx(P,{size:12}),Ae(o?.runs??0,"run")]}),o&&e.jsx("span",{children:G(o.lastRunAt)})]})]},l.key)})})]}),e.jsxs("h2",{className:"section-title",children:["Recent runs",i.length>0&&e.jsxs("a",{className:"link",href:S("runs"),children:["All runs ",e.jsx(Ge,{size:12,style:{verticalAlign:-2}})]})]}),i.length===0?e.jsx("div",{className:"panel",children:e.jsx(W,{icon:P,title:"No runs yet",children:"Chat with an agent or run a workflow, every run shows up here with its trace and cost."})}):e.jsx(ls,{runs:i})]})})]})}function Yt(s){return typeof s=="string"&&(s.length>80||s.includes(`
8
- `))}function os({value:s,label:t}){const[n,r]=p.useState(!1);if(!s||typeof s!="object"||Array.isArray(s))return e.jsx(B,{label:t,value:s});const i=Object.entries(s);return e.jsxs("div",{className:"json state",children:[e.jsxs("div",{className:"json-head",children:[e.jsx("span",{children:t}),e.jsxs("span",{style:{display:"flex",alignItems:"center",gap:2},children:[e.jsxs("div",{className:"seg seg-icons",role:"group","aria-label":"View",children:[e.jsx("button",{type:"button","aria-pressed":!n,"aria-label":"Fields","data-tip":"Fields",onClick:()=>r(!1),children:e.jsx(Rs,{size:12})}),e.jsx("button",{type:"button","aria-pressed":n,"aria-label":"Raw JSON","data-tip":"Raw JSON",onClick:()=>r(!0),children:e.jsx(Os,{size:12})})]}),e.jsx(ae,{value:M(s),label:`Copy ${t.toLowerCase()}`})]})]}),n?e.jsx("pre",{children:M(s)}):e.jsxs("div",{className:"state-fields",children:[i.length===0&&e.jsx("div",{className:"muted",children:"Empty"}),i.map(([a,c])=>e.jsxs("div",{className:"state-field",children:[e.jsx("div",{className:"state-key",children:a}),Yt(c)?e.jsx("div",{className:"state-prose",children:e.jsx(te,{text:c})}):e.jsx("pre",{className:`state-value ${typeof c=="string"?"state-text":""}`,children:M(c)})]},a))]})]})}const Q=184,_=56,Qt=72,Oe=28,Ie={pending:"pending",running:"running",completed:"done",failed:"failed",skipped:"skipped"};function Zt(s){const t=new Map([[s.entryPoint,0]]);for(const a of s.nodes)for(const c of s.edges){const l=t.get(c.from);if(l!==void 0)for(const o of c.to)o!==c.from&&(t.get(o)??-1)<l+1&&l+1<s.nodes.length&&t.set(o,l+1)}for(const a of s.nodes)t.has(a)||t.set(a,0);const n=new Map;for(const a of s.nodes){const c=t.get(a)??0;n.set(c,[...n.get(c)??[],a])}const r=Math.max(...[...n.values()].map(a=>a.length),1),i=new Map;for(const[a,c]of n){const l=(r-c.length)*(_+Oe)/2;c.forEach((o,d)=>i.set(o,{x:a*(Q+Qt),y:l+d*(_+Oe)}))}return i}function en(s,t){return s.length>t?`${s.slice(0,t-1)}…`:s}function cs({workflow:s,nodes:t,selected:n,onSelect:r}){const i=Zt(s),a=Math.max(...[...i.values()].map(d=>d.x+Q),Q),c=Math.max(...[...i.values()].map(d=>d.y+_),_)+30,l=d=>t?.find(j=>j.name===d),o=d=>l(d)?.status??"pending";return e.jsxs("svg",{className:"workflow-graph",viewBox:`-2 -2 ${a+4} ${c+4}`,width:a+4,height:c+4,role:"group","aria-label":`Graph of ${s.name}`,"data-testid":"workflow-graph",children:[e.jsx("defs",{children:e.jsx("marker",{id:"arrow",viewBox:"0 0 10 10",refX:"9",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto-start-reverse",children:e.jsx("path",{d:"M 0 1 L 9 5 L 0 9 z",className:"edge-head"})})}),s.edges.flatMap(d=>d.to.map(j=>{const v=i.get(d.from),h=i.get(j);if(!v||!h)return null;const u=h.x<=v.x,x=v.x+Q,f=v.y+_/2,m=u?h.x+Q/2:h.x-2,g=u?h.y+_:h.y+_/2,w=(x+m)/2,y=u?`M ${x} ${f} C ${x+48} ${f+70}, ${m} ${g+56}, ${m} ${g+2}`:`M ${x} ${f} C ${w} ${f}, ${w} ${g}, ${m} ${g}`,k=o(d.from),b=o(j),A=k==="completed"&&b==="running"?"edge-live":k==="completed"&&b==="completed"?"edge-done":"";return e.jsx("path",{d:y,className:`edge edge-${d.type} ${A}`,markerEnd:"url(#arrow)"},`${d.from}-${j}`)})),s.nodes.map(d=>{const j=i.get(d);if(!j)return null;const v=l(d),h=v?.status??"pending",u=v?.duration!==void 0?`${Ie[h]} · ${T(v.duration)}`:Ie[h];return e.jsxs("g",{transform:`translate(${j.x}, ${j.y})`,className:`node node-${h} ${n===d?"node-selected":""}`,onClick:()=>r?.(d),onKeyDown:x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),r?.(d))},"data-testid":`node-${d}`,"data-status":h,role:"button",tabIndex:r?0:-1,"aria-pressed":n===d,"aria-label":`${d}, ${u}`,children:[e.jsx("title",{children:d}),e.jsx("rect",{className:"node-card",width:Q,height:_,rx:"10"}),e.jsx("circle",{className:"node-dot",cx:18,cy:_/2,r:4}),e.jsx("text",{className:"node-name",x:32,y:23,children:en(d,20)}),e.jsx("text",{className:"node-sub",x:32,y:40,children:u})]},d)})]})}function z({label:s,children:t}){return e.jsxs("div",{className:"prop",children:[e.jsx("span",{className:"prop-label",children:s}),e.jsx("span",{className:"prop-value",children:t})]})}function sn({run:s,runs:t}){const n=is(s,t),r=n.inputTokens+n.outputTokens,i=s.status==="running"||s.status==="waiting",[a,c]=p.useState(Date.now);return p.useEffect(()=>{if(!i)return;const l=setInterval(()=>c(Date.now()),500);return()=>clearInterval(l)},[i]),e.jsxs("aside",{className:"props","data-testid":"run-summary","aria-label":"Run properties",children:[e.jsx(z,{label:"Status",children:e.jsx(U,{status:s.status})}),e.jsx(z,{label:s.kind==="workflow"?"Workflow":"Agent",children:e.jsx("a",{href:s.kind==="workflow"?S("workflows",s.target):S("agents",s.target),children:s.target})}),s.model&&e.jsx(z,{label:"Model",children:e.jsx("span",{className:"mono truncate",children:s.model})}),e.jsx(z,{label:"Started",children:e.jsx("span",{"data-tip":Je(s.startedAt),children:G(s.startedAt)})}),e.jsx(z,{label:"Duration",children:T((s.endedAt??a)-s.startedAt)}),e.jsx(z,{label:"Cost",children:e.jsx("span",{"data-testid":"run-cost",children:Y(n.cost,n.priced)})}),e.jsxs(z,{label:"Tokens",children:[L(n.inputTokens)," in · ",L(n.outputTokens)," out"]}),r>0&&e.jsxs("div",{className:"token-bar","aria-hidden":"true",children:[e.jsx("span",{style:{width:`${n.inputTokens/r*100}%`}}),e.jsx("span",{style:{width:`${n.outputTokens/r*100}%`}})]}),(s.threadId||s.parentRunId||s.forkOf||s.rerunOf)&&e.jsx("div",{className:"props-sep"}),s.threadId&&s.kind==="agent"&&!s.parentRunId&&e.jsx(z,{label:"Thread",children:e.jsx("a",{href:S("agents",s.target,s.threadId),children:"Open the chat"})}),s.parentRunId&&e.jsx(z,{label:"Started by",children:e.jsx("a",{href:S("runs",s.parentRunId),children:"Parent run"})}),s.forkOf&&e.jsx(z,{label:"Fork of",children:e.jsxs("a",{href:S("compare",s.forkOf.runId,s.id),children:["Step ",s.forkOf.step,", compare"]})}),s.rerunOf&&e.jsx(z,{label:"Rerun of",children:e.jsxs("a",{href:S("runs",s.rerunOf.runId),children:["From ",s.rerunOf.fromNode]})}),e.jsx("div",{className:"props-sep"}),e.jsxs(z,{label:"Run id",children:[e.jsx("span",{className:"mono truncate muted",children:s.id}),e.jsx(ae,{value:s.id,label:"Copy run id"})]})]})}function ds(s){try{return{ok:!0,value:JSON.parse(s)}}catch{return{ok:!1}}}function tn(s){const t=ds(s);return t.ok?t.value:s}function nn({run:s}){const t=s.steps??[],n=y=>Object.fromEntries((y?.toolCalls??[]).map(k=>[k.name,M(k.result)])),[r,i]=p.useState(t.at(-1)?.index??0),a=t.find(y=>y.index===r),[c,l]=p.useState(s.input),[o,d]=p.useState(""),j=[...new Set(s.toolCalls.map(y=>y.name))],[v,h]=p.useState(()=>n(a)),[u,x]=p.useState(),[f,m]=p.useState(!1),g=y=>{i(y.index),h(n(y))};if(t.length===0)return null;const w=async()=>{x(void 0);const y={};for(const[k,b]of Object.entries(v)){if(!b.trim())continue;const A=a?.toolCalls.find(N=>N.name===k);if(A&&M(A.result)===b)continue;const re=ds(b);y[k]=re.ok?re.value:b}m(!0);try{const k=await E.fork(s.id,{step:r,...c!==s.input&&{input:c},...o.trim()&&{context:o.trim()},...Object.keys(y).length>0&&{toolResults:y}});C("compare",s.id,k.runId)}catch(k){x(V(k))}finally{m(!1)}};return e.jsxs("section",{className:"panel",id:"fork","data-testid":"fork-panel",children:[e.jsx("div",{className:"panel-head",children:e.jsxs("div",{className:"panel-title",children:[e.jsx(J,{size:14}),"Fork from a step"]})}),e.jsxs("div",{className:"panel-body",children:[e.jsx("p",{className:"panel-desc",children:"Go back to a step, change what the agent saw, and run on from there. The original stays as it is, and both are shown side by side."}),e.jsx("div",{className:"steps",role:"radiogroup","aria-label":"Step",children:t.map(y=>e.jsxs("button",{type:"button",className:`step ${y.index===r?"active":""}`,onClick:()=>g(y),role:"radio","aria-checked":y.index===r,"data-testid":`step-${y.index}`,children:[e.jsx("span",{className:"step-index",children:y.index}),y.label]},y.checkpointId))}),e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Input"}),e.jsx("textarea",{className:"input",rows:2,value:c,onChange:y=>l(y.target.value),"data-testid":"fork-input"})]}),e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Extra context for the agent"}),e.jsx("textarea",{className:"input",rows:2,placeholder:"Anything the agent should know from this step on",value:o,onChange:y=>d(y.target.value)})]}),j.map(y=>e.jsxs("label",{className:"field",children:[e.jsxs("span",{children:["Result of ",e.jsx("code",{children:y})," from this step on"]}),e.jsx("textarea",{className:"input mono",rows:3,value:v[y]??"",placeholder:"Leave empty to run the tool",onChange:k=>h({...v,[y]:k.target.value}),"data-testid":`fork-result-${y}`})]},y)),e.jsxs("button",{type:"button",className:"btn btn-primary",disabled:f,onClick:()=>{w()},"data-testid":"fork",children:[f?e.jsx("span",{className:"spinner"}):e.jsx(J,{size:14}),"Fork from step ",r]}),u&&e.jsx(I,{children:u})]})]})}function an({run:s,workflow:t}){const[n,r]=p.useState(),[i,a]=p.useState();if(!t)return e.jsx("section",{className:"panel",children:e.jsx(W,{icon:D,title:`No workflow ${s.target}`,children:"It is no longer in the registry, so its graph cannot be drawn."})});const c=s.nodes?.find(d=>d.name===n),l=s.status==="completed"||s.status==="failed",o=async()=>{if(n){a(void 0);try{const d=await E.rerun(s.id,n);C("runs",d.runId)}catch(d){a(V(d))}}};return e.jsxs("section",{className:"panel",children:[e.jsxs("div",{className:"panel-head",children:[e.jsxs("div",{className:"panel-title",children:[e.jsx(D,{size:14}),"Nodes"]}),e.jsx("span",{className:"muted",children:n?"":l&&s.workflowRunId?"Pick a node to read it or rerun from it":"Pick a node to read it"})]}),e.jsx("div",{className:"canvas",children:e.jsx(cs,{workflow:t,nodes:s.nodes,selected:n,onSelect:d=>r(n===d?void 0:d)})}),c&&e.jsxs("div",{className:"node-detail",children:[e.jsxs("div",{className:"node-detail-head",children:[e.jsx("strong",{children:c.name}),e.jsx(U,{status:c.status}),c.duration!==void 0&&e.jsx("span",{className:"muted",children:T(c.duration)}),e.jsx("span",{style:{flex:1}}),l&&s.workflowRunId&&e.jsxs("button",{type:"button",className:"btn btn-primary btn-sm",onClick:()=>{o()},"data-testid":"rerun",children:[e.jsx(Is,{size:13}),"Rerun from ",c.name]})]}),c.output!==void 0&&e.jsx(os,{label:"Output",value:c.output}),c.error&&e.jsx(I,{children:c.error}),c.output===void 0&&!c.error&&e.jsx("span",{className:"muted",children:"This node has no output in this run."})]}),i&&e.jsx("div",{style:{padding:"0 16px 16px"},children:e.jsx(I,{children:i})})]})}function rn({runId:s}){const t=$(h=>h.runs),n=$(h=>h.host),[r,i]=p.useState();p.useEffect(()=>{i(void 0),me(s).catch(h=>i(V(h)))},[s]);const a=t[s],c=[{label:"Runs",to:["runs"]}];if(!a)return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[...c,{label:s}]}),e.jsx("div",{className:"scroll",children:r?e.jsx(W,{icon:P,title:"Run not found",children:r}):e.jsxs("div",{className:"page",children:[e.jsx("div",{className:"skeleton",style:{height:28,width:240,marginBottom:24}}),e.jsx("div",{className:"skeleton",style:{height:320}})]})})]});const l=n.state==="ready"?n.registry.workflows.find(h=>h.key===a.target):void 0,o=a.forks.map(h=>t[h]).filter(h=>h!==void 0),d=a.kind!=="workflow"&&a.status==="completed"&&!a.parentRunId&&(a.steps?.length??0)>0,j=a.status==="running"||a.status==="waiting",v=a.kind==="workflow"?"Workflow run":a.kind==="fork"?"Fork":"Agent run";return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[...c,{label:`${a.target} · ${a.id.slice(-8)}`}],actions:e.jsxs(e.Fragment,{children:[j&&e.jsx("button",{type:"button",className:"btn btn-danger btn-sm",onClick:()=>{E.stop(a.id)},children:"Stop"}),a.threadId&&a.kind==="agent"&&!a.parentRunId&&e.jsxs("a",{className:"btn btn-secondary btn-sm",href:S("agents",a.target,a.threadId),children:[e.jsx(He,{size:13}),"Chat"]}),d&&e.jsxs("a",{className:"btn btn-secondary btn-sm",href:"#fork",onClick:h=>{h.preventDefault(),document.getElementById("fork")?.scrollIntoView({behavior:"smooth",block:"start"})},children:[e.jsx(J,{size:13}),"Fork"]})]})}),e.jsx("div",{className:"scroll",children:e.jsxs("div",{className:"page","data-testid":"run-view","data-status":a.status,children:[e.jsx("div",{className:"page-head",children:e.jsxs("div",{children:[e.jsx("h1",{className:"page-title",children:v}),e.jsxs("div",{className:"page-sub",children:[a.target," · started ",Je(a.startedAt)]})]})}),e.jsxs("div",{className:"run-layout",children:[e.jsxs("div",{className:"run-main",children:[e.jsx("section",{className:"panel",children:e.jsxs("div",{className:"panel-body io",children:[e.jsxs("div",{children:[e.jsx("div",{className:"io-label",children:"Input"}),e.jsx("div",{className:"io-input",children:a.input})]}),e.jsxs("div",{children:[e.jsx("div",{className:"io-label",children:j?"Output so far":"Output"}),a.output?a.kind==="workflow"?e.jsx(os,{label:"Final state",value:tn(a.output)}):e.jsx(te,{text:a.output}):e.jsx("span",{className:"muted",children:j?"Waiting for the first tokens":"No output"}),a.error&&e.jsx(I,{children:a.error})]})]})}),a.kind==="workflow"&&e.jsx(an,{run:a,workflow:l}),e.jsxs("section",{className:"panel",children:[e.jsxs("div",{className:"panel-head",children:[e.jsxs("div",{className:"panel-title",children:[e.jsx(Be,{size:14}),"Trace"]}),e.jsxs("div",{className:"wf-legend",children:[e.jsxs("span",{children:[e.jsx("i",{style:{background:"var(--bar-llm)"}}),"Model"]}),e.jsxs("span",{children:[e.jsx("i",{style:{background:"var(--bar-tool)"}}),"Tool"]}),e.jsxs("span",{children:[e.jsx("i",{style:{background:"var(--bar-run)"}}),"Run"]})]})]}),e.jsx("div",{style:{padding:"4px 0 8px"},children:e.jsx(rs,{run:a,runs:t})})]}),a.toolCalls.length>0&&e.jsxs("section",{className:"panel",children:[e.jsx("div",{className:"panel-head",children:e.jsxs("div",{className:"panel-title",children:[e.jsx(se,{size:14}),"Tool calls ",e.jsx("span",{className:"count",children:a.toolCalls.length})]})}),e.jsx("div",{className:"panel-body",style:{display:"grid",gap:8},children:a.toolCalls.map(h=>e.jsx(ts,{call:h},h.id))})]}),o.length>0&&e.jsxs("section",{className:"panel",children:[e.jsx("div",{className:"panel-head",children:e.jsxs("div",{className:"panel-title",children:[e.jsx(J,{size:14}),"Forks ",e.jsx("span",{className:"count",children:o.length})]})}),o.map(h=>e.jsxs("a",{className:"fork-row",href:S("compare",a.id,h.id),"data-testid":"fork-link",children:[e.jsx(U,{status:h.status}),e.jsxs("span",{children:["From step ",h.forkOf?.step]}),e.jsx("span",{className:"muted grow truncate",style:{flex:1},children:h.output?h.output.replace(/\s+/g," "):""}),e.jsx("span",{className:"muted",children:G(h.startedAt)})]},h.id))]}),d&&e.jsx(nn,{run:a})]}),e.jsx(sn,{run:a,runs:t})]})]})})]})}const ln=[{value:"",label:"All"},{value:"agent",label:"Chats"},{value:"workflow",label:"Workflows"},{value:"fork",label:"Forks"}];function on(){const s=$(g=>g.host),t=$(g=>g.runs),[n,r]=p.useState(""),[i,a]=p.useState(""),[c,l]=p.useState(""),[o,d]=p.useState(),[j,v]=p.useState(),[h,u]=p.useState(-1),x=Object.keys(t).length;p.useEffect(()=>{let g=!0;const w=setTimeout(()=>{E.runs({q:n,target:i,kind:c}).then(y=>{g&&(d(y.runs),v(void 0))}).catch(y=>g&&v(V(y)))},150);return()=>{g=!1,clearTimeout(w)}},[n,i,c,x]),p.useEffect(()=>u(-1),[n,i,c]);const f=s.state==="ready"?[...s.registry.agents.map(g=>g.key),...s.registry.workflows.map(g=>g.key)]:[],m=(o??[]).map(g=>t[g.id]??g);return ss(["j","k","ArrowDown","ArrowUp","Enter"],g=>{if(g.key==="Enter"){const k=m[h];k&&C("runs",k.id);return}const w=g.key==="j"||g.key==="ArrowDown"?1:-1,y=Math.min(Math.max(h+w,0),m.length-1);u(y),document.querySelector(`.tr[data-index="${y}"]`)?.scrollIntoView({block:"nearest"})}),e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[{label:"Runs"}]}),e.jsx("div",{className:"scroll",children:e.jsxs("div",{className:"page",children:[e.jsx("div",{className:"page-head",children:e.jsxs("div",{children:[e.jsx("h1",{className:"page-title",children:"Runs"}),e.jsx("div",{className:"page-sub",children:"Every chat, workflow run and fork, with its trace and cost."})]})}),e.jsxs("div",{className:"toolbar",children:[e.jsxs("label",{className:"input-icon",children:[e.jsx(ue,{size:14}),e.jsx("input",{className:"input",placeholder:"Search inputs, outputs and errors",value:n,onChange:g=>r(g.target.value),onKeyDown:g=>g.key==="Escape"&&g.currentTarget.blur(),"aria-label":"Search runs","data-testid":"search","data-search":!0}),e.jsx(R,{keys:["/"]})]}),e.jsx("div",{className:"seg",role:"group","aria-label":"Kind",children:ln.map(g=>e.jsx("button",{type:"button","aria-pressed":c===g.value,onClick:()=>l(g.value),children:g.label},g.value))}),e.jsxs("select",{className:"input select",value:i,onChange:g=>a(g.target.value),"aria-label":"Agent or workflow","data-testid":"filter-target",children:[e.jsx("option",{value:"",children:"Every agent and workflow"}),f.map(g=>e.jsx("option",{value:g,children:g},g))]})]}),j&&e.jsx(I,{children:j}),!o&&!j&&e.jsx("div",{className:"skeleton",style:{height:240}}),o&&m.length===0&&e.jsx("div",{className:"panel",children:e.jsx(W,{icon:P,title:n||i||c?"No runs match":"No runs yet",children:n||i||c?"Try other words or clear the filters.":"Chat with an agent or run a workflow to see it here."})}),m.length>0&&e.jsx(ls,{runs:m,focused:h})]})})]})}function cn(s){if(s.trim())try{JSON.parse(s);return}catch(t){return V(t)}}function dn({workflowKey:s}){const t=$(f=>f.host),n=$(f=>f.runs),r=t.state==="ready"?t.registry.workflows.find(f=>f.key===s):void 0,[i,a]=p.useState(""),[c,l]=p.useState(),[o,d]=p.useState(!1);p.useEffect(()=>{r&&a(M(r.initialState??{}))},[r?.key]),p.useEffect(()=>{ct({target:s,kind:"workflow"}).catch(()=>{})},[s]);const j=[{label:r?.name??s}];if(t.state!=="ready")return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:j}),e.jsx("div",{className:"scroll",children:e.jsx(W,{icon:D,title:"Waiting for the project"})})]});if(!r)return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:j}),e.jsx("div",{className:"scroll",children:e.jsx(W,{icon:D,title:`No workflow ${s}`,children:"It is not in the registry of this project anymore."})})]});const v=Object.values(n).filter(f=>f.kind==="workflow"&&f.target===s).sort((f,m)=>m.startedAt-f.startedAt),h=v[0],u=cn(i),x=async()=>{if(!(u||o)){l(void 0),d(!0);try{const f=await E.runWorkflow(s,i.trim()?JSON.parse(i):{});C("runs",f.runId)}catch(f){l(V(f))}finally{d(!1)}}};return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:j,actions:e.jsxs("button",{type:"button",className:"btn btn-primary btn-sm",disabled:!!u||o,onClick:()=>{x()},children:[e.jsx(he,{size:12,fill:"currentColor"}),"Run"]})}),e.jsx("div",{className:"scroll",children:e.jsxs("div",{className:"page",children:[e.jsx("div",{className:"page-head",children:e.jsxs("div",{children:[e.jsx("h1",{className:"page-title",children:r.name}),e.jsxs("div",{className:"page-sub",children:[r.nodes.length," nodes, starts at ",e.jsx("code",{children:r.entryPoint})]})]})}),e.jsxs("div",{className:"workflow-layout",children:[e.jsxs("section",{className:"panel",children:[e.jsxs("div",{className:"panel-head",children:[e.jsxs("div",{className:"panel-title",children:[e.jsx(D,{size:14}),"Graph"]}),h&&e.jsxs("a",{className:"link",href:S("runs",h.id),children:["Latest run, ",G(h.startedAt)]})]}),e.jsx("div",{className:"canvas",style:{minHeight:220},children:e.jsx(cs,{workflow:r,nodes:h?.nodes})})]}),e.jsxs("div",{className:"side-stack",children:[e.jsxs("section",{className:"panel",children:[e.jsxs("div",{className:"panel-head",children:[e.jsxs("div",{className:"panel-title",children:[e.jsx(he,{size:14}),"Run it"]}),e.jsx(R,{keys:[ke,"Enter"]})]}),e.jsxs("div",{className:"panel-body",children:[e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Input state (JSON)"}),e.jsx("textarea",{className:"input mono",rows:8,value:i,spellCheck:!1,onChange:f=>a(f.target.value),onKeyDown:f=>{(f.metaKey||f.ctrlKey)&&f.key==="Enter"&&(f.preventDefault(),x())},"aria-invalid":!!u,"data-testid":"workflow-input"})]}),u&&e.jsxs(I,{children:["Not JSON yet: ",u]}),e.jsxs("button",{type:"button",className:"btn btn-primary",style:{width:"100%",marginTop:u?12:0},disabled:!!u||o,onClick:()=>{x()},"data-testid":"run-workflow",children:[o?e.jsx("span",{className:"spinner"}):e.jsx(he,{size:12,fill:"currentColor"}),"Run ",r.name]}),c&&e.jsx(I,{children:c})]})]}),e.jsxs("section",{className:"panel",children:[e.jsx("div",{className:"panel-head",children:e.jsxs("div",{className:"panel-title",children:[e.jsx(P,{size:14}),"Runs ",e.jsx("span",{className:"count",children:v.length})]})}),v.length===0&&e.jsx("div",{className:"panel-body muted",children:"No runs yet. Run it to see each node work."}),v.slice(0,12).map(f=>e.jsxs("a",{className:"list-row",href:S("runs",f.id),children:[e.jsx(U,{status:f.status}),e.jsx("span",{className:"grow truncate",children:f.rerunOf?`Rerun from ${f.rerunOf.fromNode}`:"Run"}),e.jsx("span",{className:"muted num",children:T((f.endedAt??Date.now())-f.startedAt)}),e.jsx("span",{className:"muted",children:G(f.startedAt)})]},f.id)),v.length>12&&e.jsxs("a",{className:"list-row link",href:S("runs"),children:["All ",v.length," runs"]})]})]})]})]})})]})}function un(){const s=$(r=>r.host),t=$(r=>r.connected),n=$(r=>r.loaded);return!t&&n?e.jsxs("div",{className:"banner banner-warn",role:"status",children:[e.jsx(zs,{size:14}),e.jsx("span",{children:"Lost the connection to cogitator dev, reconnecting."})]}):s.state==="starting"?e.jsxs("div",{className:"banner",role:"status",children:[e.jsx(Me,{size:14,style:{animation:"spin 1s linear infinite"}}),e.jsx("span",{children:"Loading the project"})]}):s.state==="restarting"?e.jsxs("div",{className:"banner",role:"status","data-testid":"reloading",children:[e.jsx(Ds,{size:14,style:{animation:"spin 1s linear infinite"}}),e.jsxs("span",{children:["Reloading: ",s.reason]})]}):s.state==="failed"?e.jsxs("div",{className:"banner banner-error",role:"alert","data-testid":"host-error",children:[e.jsxs("div",{className:"banner-row",children:[e.jsx(Ue,{size:15}),"The project does not load"]}),e.jsx("pre",{children:s.error}),e.jsx("span",{children:"Fix the code and save, the studio reloads it."})]}):null}function hn({route:s}){const[t,n,r]=s;return t==="agents"&&n?e.jsx(Pt,{agentKey:n,threadId:r},n):t==="runs"&&n?e.jsx(rn,{runId:n},n):t==="runs"?e.jsx(on,{}):t==="compare"&&n&&r?e.jsx(Ut,{originalId:n,forkId:r},`${n}-${r}`):t==="workflows"&&n?e.jsx(dn,{workflowKey:n},n):e.jsx(Xt,{})}function pn(){const s=at(),[t,n]=p.useState(!1),[r,i]=p.useState(!1),a=p.useRef(0);p.useEffect(()=>lt(),[]);const c=p.useCallback(()=>{n(!1),i(!0)},[]);return es(l=>{if((l.metaKey||l.ctrlKey)&&l.key.toLowerCase()==="k"){l.preventDefault(),i(!1),n(o=>!o);return}if(!(l.metaKey||l.ctrlKey||l.altKey)&&!(Qe(l)||Ze()))if(l.key==="?")l.preventDefault(),c();else if(l.key==="/"){l.preventDefault();const o=document.querySelector("[data-search]");o?o.focus():n(!0)}else l.key==="g"?a.current=Date.now():Date.now()-a.current<900&&(a.current=0,l.key==="o"&&C(),l.key==="r"&&C("runs"))}),e.jsxs("div",{className:"app",children:[e.jsx(wt,{route:s,onSearch:()=>n(!0),onShortcuts:c}),e.jsxs("main",{className:"main",children:[e.jsx(un,{}),e.jsx(hn,{route:s})]}),t&&e.jsx(vt,{onClose:()=>n(!1),onShortcuts:c}),r&&e.jsx(yt,{onClose:()=>i(!1)})]})}const ze=document.getElementById("root");ze&&us.createRoot(ze).render(e.jsx(p.StrictMode,{children:e.jsx(pn,{})}));
7
+ `);return Ce(a,"\\(","\\)",i=>`$$${i}$$`)}).join("")}const Ct={bash:Zs,css:Qs,diff:Ys,go:Xs,java:qs,javascript:Vs,json:Js,markdown:Hs,python:Us,rust:Gs,shell:Bs,sql:_s,typescript:Ks,xml:Ws,yaml:Ps},Tt={bash:["sh","zsh"],xml:["html","svg"],markdown:["md"]};function fe(s){return typeof s=="string"||typeof s=="number"?String(s):Array.isArray(s)?s.map(fe).join(""):p.isValidElement(s)?fe(s.props.children):""}function Et(s){if(p.isValidElement(s))return/language-([\w+-]+)/.exec(s.props.className??"")?.[1]}const At={pre:({children:s})=>{const t=Array.isArray(s)?s[0]:s,n=Et(t);return e.jsxs("div",{className:"codeblock",children:[e.jsxs("div",{className:"codeblock-head",children:[e.jsx("span",{children:n??"text"}),e.jsx(ae,{value:fe(t).replace(/\n$/,""),label:"Copy code"})]}),e.jsx("pre",{children:s})]})},a:({href:s,children:t})=>e.jsx("a",{href:s,target:"_blank",rel:"noreferrer noopener",children:t})},Rt=[et,[st,{singleDollarTextMath:!1}]],Ot=[[Fs,{throwOnError:!1,strict:"ignore",errorColor:"var(--error)"}],[Ls,{detect:!1,languages:Ct,aliases:Tt,plainText:["math"]}]],te=p.memo(function({text:t}){return e.jsx("div",{className:"md",children:e.jsx(Ms,{remarkPlugins:Rt,rehypePlugins:Ot,components:At,children:$t(t)})})});function It(s){return s&&typeof s=="object"&&!Array.isArray(s)?Object.entries(s).map(([t,n])=>`${t}: ${typeof n=="string"?JSON.stringify(n):M(n)}`).join(", ").replace(/\s+/g," "):ne(M(s),120)}function ts({call:s}){const t=s.approval,n=t?.status==="waiting",[a,i]=p.useState(!!s.error),[r,c]=p.useState(""),[l,o]=p.useState(!1),[d,j]=p.useState(),v=s.result===void 0&&!s.error&&!n&&t?.status!=="rejected",h=async u=>{if(t){o(!0),j(void 0);try{await E.approve(t.id,u,u?void 0:r.trim()||void 0)}catch(x){j(q(x))}finally{o(!1)}}};return e.jsxs("div",{className:"tool","data-state":n?"waiting":s.error?"error":"done","data-open":a,"data-testid":"tool-call","data-tool":s.name,children:[e.jsxs("button",{type:"button",className:"tool-head",onClick:()=>i(!a),"aria-expanded":a,children:[e.jsx(ve,{size:13,className:"tool-chevron"}),e.jsx(se,{size:13}),e.jsx("span",{className:"tool-name",children:s.name}),e.jsx("span",{className:"tool-args",children:It(s.arguments)}),v&&e.jsx("span",{className:"spinner","aria-label":"running"}),n&&e.jsx(U,{status:"waiting"}),t&&t.status!=="waiting"&&e.jsx("span",{className:"status","data-status":t.status,title:t.reason,children:t.status==="approved"?"Approved":"Rejected"}),s.error&&e.jsx("span",{className:"tool-result tool-result-error",children:ne(s.error,60)}),s.error&&e.jsx(U,{status:"failed"}),s.result!==void 0&&!s.error&&e.jsxs("span",{className:"tool-result",children:["→ ",ne(M(s.result),60)]})]}),a&&e.jsxs("div",{className:"tool-body",children:[e.jsx(B,{label:"Arguments",value:s.arguments}),s.result!==void 0&&!(s.error&&s.result===null)&&e.jsx(B,{label:"Result",value:s.result}),t?.reason&&e.jsxs("div",{className:"notice",children:["Rejected because: ",t.reason]}),s.error&&e.jsx(I,{children:s.error})]}),n&&e.jsxs("div",{className:"approval","data-testid":"approval",children:[e.jsxs("div",{className:"approval-text",children:[e.jsx(Ke,{size:15}),s.name," needs your approval before it runs"]}),!a&&e.jsx(B,{label:"Arguments",value:s.arguments}),e.jsxs("div",{className:"approval-row",children:[e.jsx("input",{className:"input",placeholder:"Reason the model sees if you reject it (optional)",value:r,onChange:u=>c(u.target.value),onKeyDown:u=>u.key==="Enter"&&void h(!1)}),e.jsx("button",{type:"button",className:"btn btn-secondary",disabled:l,onClick:()=>{h(!1)},"data-testid":"reject",children:"Reject"}),e.jsx("button",{type:"button",className:"btn btn-primary",disabled:l,onClick:()=>{h(!0)},"data-testid":"approve",children:"Approve"})]}),d&&e.jsx(I,{children:d})]})]})}function zt({text:s,live:t}){const[n,a]=p.useState(t);return p.useEffect(()=>a(t),[t]),e.jsxs("div",{className:"reasoning","data-testid":"reasoning",children:[e.jsxs("button",{type:"button",className:"reasoning-toggle",onClick:()=>a(!n),"aria-expanded":n,children:[e.jsx(ve,{size:12,style:{transform:n?"rotate(90deg)":void 0,transition:"transform 0.15s"}}),t?"Reasoning":"Reasoned",t&&e.jsx("span",{className:"spinner",style:{width:10,height:10}})]}),n&&e.jsx("div",{className:"reasoning-text",children:e.jsx(te,{text:s})})]})}function Dt({run:s}){const t=s.status==="running"||s.status==="waiting",n=s.usage?s.usage.inputTokens+s.usage.outputTokens:void 0;return e.jsxs("div",{className:"turn","data-testid":"turn","data-run":s.id,"data-status":s.status,children:[e.jsx("div",{className:"msg-user",children:s.input}),e.jsxs("div",{className:"msg-assistant",children:[s.reasoning&&e.jsx(zt,{text:s.reasoning,live:s.status==="running"&&!s.output&&s.toolCalls.length===0}),s.toolCalls.map(a=>e.jsx(ts,{call:a},a.id)),s.output?e.jsxs("div",{"data-testid":"answer",children:[e.jsx(te,{text:s.output}),t&&e.jsx("span",{className:"cursor"})]}):t&&s.status==="running"?e.jsxs("div",{className:"msg-thinking",children:[e.jsx("span",{className:"spinner"})," Thinking"]}):null,s.error&&(s.status==="stopped"?e.jsxs("div",{className:"notice","data-testid":"run-error",children:[e.jsx(_e,{size:13}),s.error]}):e.jsx("div",{"data-testid":"run-error",children:e.jsx(I,{children:s.error})})),!(t&&!s.usage)&&e.jsxs("div",{className:"turn-meta",children:[e.jsx(mt,{status:s.status,size:14}),s.usage&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"sep",children:"·"}),e.jsx("span",{children:T(s.usage.duration)}),e.jsx("span",{className:"sep",children:"·"}),e.jsx("span",{children:Y(s.usage.cost,s.usage.priced!==!1)}),n!==void 0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"sep",children:"·"}),e.jsxs("span",{children:[L(n)," tokens"]})]})]}),s.children.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"sep",children:"·"}),e.jsxs("span",{children:[s.children.length," nested run",s.children.length===1?"":"s"]})]}),e.jsxs("span",{className:"turn-actions",children:[s.output&&e.jsx(ae,{value:s.output,label:"Copy answer"}),e.jsxs("a",{className:"btn btn-ghost btn-sm",href:S("runs",s.id),"data-testid":"trace-link",children:[e.jsx(Be,{size:13}),"Trace"]})]})]})]})]})}function Mt(s,t=new Date){const n=new Date(t);n.setHours(0,0,0,0);const a=864e5;return s>=n.getTime()?"Today":s>=n.getTime()-a?"Yesterday":s>=n.getTime()-6*a?"Previous 7 days":"Older"}function Ft({agent:s,threads:t,active:n}){const[a,i]=p.useState(""),r=t.filter(l=>l.title.toLowerCase().includes(a.trim().toLowerCase()));let c="";return e.jsxs("aside",{className:"threads","aria-label":"Threads",children:[e.jsxs("div",{className:"threads-head",children:[e.jsxs("button",{type:"button",className:"btn btn-secondary",onClick:()=>C("agents",s),"data-testid":"new-thread",children:[e.jsx(Pe,{size:14}),"New thread",e.jsx("span",{style:{marginLeft:"auto"},children:e.jsx(R,{keys:["N"]})})]}),t.length>4&&e.jsxs("label",{className:"input-icon",children:[e.jsx(ue,{size:13}),e.jsx("input",{className:"input",placeholder:"Filter threads",value:a,onChange:l=>i(l.target.value),style:{minHeight:30,padding:"4px 10px 4px 30px"}})]})]}),e.jsxs("div",{className:"threads-list",children:[r.length===0&&e.jsx("div",{className:"muted",style:{padding:"8px 10px"},children:t.length===0?"No threads yet.":"No thread matches."}),r.map(l=>{const o=Mt(l.updatedAt),d=o!==c;return c=o,e.jsxs("div",{children:[d&&e.jsx("div",{className:"thread-group",children:o}),e.jsxs("a",{href:S("agents",s,l.id),className:`thread ${l.id===n?"active":""}`,"aria-current":l.id===n?"page":void 0,"data-testid":"thread",children:[e.jsx("span",{className:"thread-title",children:l.title}),e.jsxs("span",{className:"thread-meta",children:[l.runs.length," turn",l.runs.length===1?"":"s"," ·"," ",G(l.updatedAt)]})]})]},l.id)})]})]})}function Lt({agent:s}){return e.jsxs("div",{className:"agent-intro",children:[e.jsx("div",{className:"agent-intro-mark",children:e.jsx(K,{size:20})}),e.jsx("h2",{children:s.name}),e.jsx("p",{children:s.description??"An agent of this project. Send a message to start a thread."}),s.tools.length>0&&e.jsx("div",{className:"agent-intro-tools",children:s.tools.map(t=>e.jsxs("span",{className:"chip","data-tip":t.description||t.name,children:[t.requiresApproval?e.jsx(Ke,{size:11}):e.jsx(se,{size:11}),t.name,t.requiresApproval&&e.jsx("span",{className:"chip-flag",children:"approval"})]},t.name))}),s.instructions&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"instructions-label",children:"Instructions"}),e.jsx("div",{className:"instructions",children:s.instructions})]})]})}function Pt({agentKey:s,threadId:t}){const n=$(N=>N.host),a=n.state==="ready"?n.memory:void 0,i=n.state==="ready"?n.registry.agents.find(N=>N.key===s):void 0,r=$(N=>N.threads),c=$(N=>N.runs),l=Object.values(r).filter(N=>N.agent===s).sort((N,H)=>H.updatedAt-N.updatedAt),o=t?r[t]:void 0,d=(o?.runs??[]).map(N=>c[N]).filter(N=>N!==void 0),j=d.find(N=>N.status==="running"||N.status==="waiting"),[v,h]=p.useState(""),[u,x]=p.useState(),[f,m]=p.useState(!1),g=p.useRef(null),w=p.useRef(null),y=p.useRef(!0);p.useEffect(()=>{t&&dt(t).catch(()=>{})},[t]),p.useEffect(()=>{y.current=!0,w.current?.focus()},[t]);const k=d.at(-1),b=`${d.length}:${k?.output?.length??0}:${k?.toolCalls.length??0}:${k?.status??""}`;if(p.useLayoutEffect(()=>{const N=g.current;N&&y.current&&(N.scrollTop=N.scrollHeight)},[b]),p.useLayoutEffect(()=>{const N=w.current;N&&(N.style.height="auto",N.style.height=`${Math.min(N.scrollHeight,240)}px`)},[v]),ss(["n","c"],N=>{N.key==="n"?C("agents",s):w.current?.focus()}),n.state!=="ready")return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[{label:"Agents"},{label:s}]}),e.jsx("div",{className:"scroll",children:e.jsx(W,{icon:K,title:"Waiting for the project"})})]});if(!i)return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[{label:"Agents"},{label:s}]}),e.jsx("div",{className:"scroll",children:e.jsx(W,{icon:K,title:`No agent ${s}`,children:"It is not in the registry of this project anymore."})})]});const A=async N=>{N?.preventDefault();const H=v.trim();if(!(!H||f||j)){m(!0),x(void 0),y.current=!0;try{const ie=await E.chat(s,H,t);h(""),ie.threadId!==t&&C("agents",s,ie.threadId)}catch(ie){x(q(ie))}finally{m(!1)}}},re=N=>{N.key==="Enter"&&!N.shiftKey&&!N.nativeEvent.isComposing?(N.preventDefault(),A()):N.key==="Escape"&&N.currentTarget.blur()};return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[{label:i.name,to:["agents",i.key]},...o?[{label:o.title}]:[{label:"New thread"}]],actions:e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"chip","data-tip":i.model?"Model of the agent":"Default model of the runtime",children:be(i,n.registry)}),e.jsxs("span",{className:"chip","data-tip":i.tools.map(N=>N.name).join(", ")||"No tools",children:[e.jsx(se,{size:11}),i.tools.length]})]})}),e.jsxs("div",{className:"agent-layout",children:[e.jsx(Ft,{agent:s,threads:l,active:t}),e.jsxs("section",{className:"chat","aria-label":`Chat with ${i.name}`,children:[e.jsx("div",{className:"chat-scroll",ref:g,onScroll:N=>{const H=N.currentTarget;y.current=H.scrollHeight-H.scrollTop-H.clientHeight<80},children:e.jsxs("div",{className:"chat-inner","data-testid":"messages",children:[a==="studio"&&d.length===0&&e.jsxs("div",{className:"notice chat-notice",children:[e.jsx(bs,{size:14}),e.jsx("span",{children:"The project has no memory configured, so the studio keeps the conversation of each thread for its runs."})]}),d.length===0&&e.jsx(Lt,{agent:i}),d.map(N=>e.jsx(Dt,{run:N},N.id))]})}),e.jsxs("form",{className:"composer-wrap",onSubmit:N=>{A(N)},children:[e.jsxs("div",{className:"composer",onMouseDown:N=>{N.target instanceof HTMLElement&&!N.target.closest("button, textarea")&&(N.preventDefault(),w.current?.focus())},children:[e.jsx("textarea",{ref:w,rows:1,placeholder:`Message ${i.name}`,value:v,onChange:N=>h(N.target.value),onKeyDown:re,"aria-label":`Message ${i.name}`,"data-testid":"chat-input"}),e.jsxs("div",{className:"composer-foot",children:[e.jsxs("div",{className:"composer-hint",children:[e.jsxs("span",{children:[e.jsx(R,{keys:["Enter"]})," send"]}),e.jsxs("span",{children:[e.jsx(R,{keys:["Shift","Enter"]})," new line"]})]}),j?e.jsxs("button",{type:"button",className:"btn btn-danger btn-sm",onClick:()=>{E.stop(j.id)},"data-testid":"stop",children:[e.jsx(_e,{size:11,fill:"currentColor"}),"Stop"]}):e.jsx("button",{type:"submit",className:"btn btn-primary btn-icon btn-sm",disabled:f||!v.trim(),"aria-label":"Send","data-testid":"send",children:e.jsx(ks,{size:15})})]})]}),u&&e.jsx("div",{style:{maxWidth:780,margin:"0 auto"},children:e.jsx(I,{children:u})})]})]})]})]})}const ns={run:K,llm:Ss,tool:se,agent:K,handoff:Ge,other:ws},Wt={run:"Agent run",llm:"Model call",tool:"Tool call",agent:"Agent",handoff:"Handoff",other:"Span"};function ge(s,t,n,a){const i=[],r=s.spans.find(o=>o.kind==="agent");i.push({key:`run-${s.id}`,depth:n,label:s.kind==="workflow"?s.target:s.agentName??s.target,kind:"run",start:r?.startTime??s.startedAt,end:r?.endTime??s.endedAt??a,status:s.status==="running"||s.status==="waiting"?"running":s.status==="completed"?"ok":"error",run:s,...r&&{span:r}});const c=s.children.map(o=>t[o]).filter(o=>o!==void 0),l=new Set;for(const o of s.spans)if(o.kind!=="agent"&&(i.push({key:o.id,depth:n+1,label:o.kind==="llm"?o.model??"model":o.name.replace(/^tool\./,""),kind:o.kind,start:o.startTime,end:o.endTime,status:o.status,span:o,run:s}),o.kind==="tool")){const d=o.attributes["tool.call_id"];for(const j of c)j.parentToolCallId&&j.parentToolCallId===d&&(l.add(j.id),i.push(...ge(j,t,n+2,a)))}for(const o of c)l.has(o.id)||i.push(...ge(o,t,n+1,a));return i}function as(s){return s.kind==="run"?s.run.usage?.priced===!1?void 0:s.run.usage?.cost:s.span?.cost}function Kt(s){if(s.span?.kind==="llm")return(s.span.inputTokens??0)+(s.span.outputTokens??0)}function Te(s){return typeof s=="number"&&Number.isFinite(s)?s:void 0}function _t(s){const t=s.span?.attributes["tool.call_id"];return s.run.toolCalls.find(n=>n.id===t)}const Bt=new Set(["llm.model","llm.input_tokens","llm.output_tokens","llm.cached_input_tokens","llm.reasoning_tokens","llm.iteration","llm.finish_reason","tool.name","tool.call_id","tool.arguments","tool.success","tool.error"]);function Gt({row:s,origin:t,root:n,onClose:a}){const i=s.run.kind==="workflow"&&s.kind==="run"?D:ns[s.kind],r=s.span?.attributes??{},c=Object.fromEntries(Object.entries(r).filter(([h])=>!Bt.has(h))),l=s.kind==="tool"?_t(s):void 0,o=as(s),d=s.span?.kind==="llm"?s.span:void 0,j=Te(r["llm.cached_input_tokens"]),v=Te(r["llm.reasoning_tokens"]);return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"inspector-backdrop",onMouseDown:a}),e.jsxs("aside",{className:"inspector","aria-label":"Span details","data-testid":"inspector","data-dialog":!0,children:[e.jsxs("div",{className:"inspector-head",children:[e.jsx(i,{size:16,style:{marginTop:2,color:"var(--text-3)",flexShrink:0}}),e.jsxs("div",{style:{flex:1,minWidth:0},children:[e.jsx("h3",{children:s.label}),e.jsx("div",{className:"inspector-kind",children:Wt[s.kind]})]}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-icon btn-sm",onClick:a,"aria-label":"Close",children:e.jsx(We,{size:15})})]}),e.jsxs("div",{className:"inspector-body",children:[e.jsxs("dl",{className:"kv",children:[e.jsx("dt",{children:"Duration"}),e.jsx("dd",{children:T(s.end-s.start)}),e.jsx("dt",{children:"Starts at"}),e.jsxs("dd",{children:["+",T(s.start-t)]}),s.kind==="run"&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Status"}),e.jsx("dd",{children:e.jsx(U,{status:s.run.status})}),s.run.model&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Model"}),e.jsx("dd",{className:"mono",children:s.run.model})]}),s.run.usage&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Tokens"}),e.jsxs("dd",{children:[L(s.run.usage.inputTokens)," in,"," ",L(s.run.usage.outputTokens)," out"]})]})]}),d&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Model"}),e.jsx("dd",{className:"mono",children:d.model??"-"}),e.jsx("dt",{children:"Input tokens"}),e.jsxs("dd",{children:[L(d.inputTokens),j!==void 0&&j>0&&e.jsxs("span",{className:"muted",children:[" (",L(j)," cached)"]})]}),e.jsx("dt",{children:"Output tokens"}),e.jsxs("dd",{children:[L(d.outputTokens),v!==void 0&&v>0&&e.jsxs("span",{className:"muted",children:[" (",L(v)," reasoning)"]})]}),r["llm.iteration"]!==void 0&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Iteration"}),e.jsx("dd",{children:String(r["llm.iteration"])})]}),r["llm.finish_reason"]!==void 0&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Finish reason"}),e.jsx("dd",{className:"mono",children:String(r["llm.finish_reason"])})]})]}),(s.kind==="llm"||s.kind==="run")&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Cost"}),e.jsx("dd",{children:Y(o,o!==void 0)})]}),s.kind==="tool"&&r["tool.call_id"]!==void 0&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Call id"}),e.jsx("dd",{className:"mono",children:String(r["tool.call_id"])})]})]}),s.kind==="run"&&s.run.id!==n.id&&e.jsxs("a",{className:"btn btn-secondary",href:S("runs",s.run.id),children:[e.jsx($s,{size:13}),"Open this run"]}),s.kind==="run"&&e.jsx(B,{label:"Input",value:s.run.input}),s.kind==="run"&&s.run.output&&e.jsxs("div",{children:[e.jsx("div",{className:"io-label",children:"Output"}),e.jsx(te,{text:s.run.output})]}),s.kind==="run"&&s.run.error&&e.jsx(I,{children:s.run.error}),s.kind==="tool"&&e.jsx(B,{label:"Arguments",value:l?.arguments??r["tool.arguments"]??null}),s.kind==="tool"&&l?.result!==void 0&&!(l.error&&l.result===null)&&e.jsx(B,{label:"Result",value:l.result}),s.kind==="tool"&&(l?.error??r["tool.error"])!==void 0&&e.jsx(I,{children:String(l?.error??r["tool.error"])}),Object.keys(c).length>0&&e.jsx(B,{label:"Attributes",value:c})]})]})]})}function rs({run:s,runs:t,compact:n=!1}){const[a,i]=p.useState(),[r,c]=p.useState(Date.now),l=s.status==="running"||s.status==="waiting";p.useEffect(()=>{if(!l)return;const x=setInterval(()=>c(Date.now()),250);return()=>clearInterval(x)},[l]);const o=ge(s,t,0,r),d=Math.min(...o.map(x=>x.start)),v=Math.max(...o.map(x=>x.end),d+1)-d,h=o.findIndex(x=>x.key===a),u=o[h];return p.useEffect(()=>{if(!u)return;const x=f=>{f.key==="Escape"?i(void 0):f.key==="ArrowDown"||f.key==="j"?(f.preventDefault(),i(o[Math.min(h+1,o.length-1)]?.key)):(f.key==="ArrowUp"||f.key==="k")&&(f.preventDefault(),i(o[Math.max(h-1,0)]?.key))};return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},[u,h,o]),e.jsxs("div",{className:"wf","data-testid":"waterfall",children:[e.jsxs("div",{className:"wf-row wf-head",children:[e.jsx("span",{children:"Span"}),e.jsxs("span",{className:"wf-axis",children:[e.jsx("span",{children:"0"}),e.jsx("span",{children:T(v/2)}),e.jsx("span",{children:T(v)})]}),e.jsx("span",{className:"wf-num",children:"Time"}),!n&&e.jsx("span",{className:"wf-num",children:"Tokens"}),!n&&e.jsx("span",{className:"wf-num",children:"Cost"})]}),o.map(x=>{const f=(x.start-d)/v*100,m=Math.max((x.end-x.start)/v*100,.5),g=Kt(x),w=as(x),y=x.kind==="run"&&x.run.kind==="workflow"?D:ns[x.kind];return e.jsxs("button",{type:"button",className:`wf-row ${a===x.key?"selected":""}`,onClick:()=>i(a===x.key?void 0:x.key),"data-testid":"trace-row","data-kind":x.kind,"aria-pressed":a===x.key,children:[e.jsxs("span",{className:"wf-label","data-kind":x.kind,title:x.label,children:[Array.from({length:x.depth},(k,b)=>e.jsx("span",{className:"wf-guide"},b)),e.jsx(y,{size:13}),e.jsx("span",{className:"truncate",children:x.label}),x.status==="error"&&e.jsx("span",{className:"wf-error",children:"failed"})]}),e.jsx("span",{className:"wf-track",children:e.jsx("span",{className:"wf-bar","data-kind":x.kind,"data-status":x.status,style:{left:`${f}%`,width:`${m}%`}})}),e.jsx("span",{className:"wf-num",children:T(x.end-x.start)}),!n&&e.jsx("span",{className:"wf-num",children:g!==void 0?L(g):""}),!n&&e.jsx("span",{className:"wf-num",children:w!==void 0?Y(w):""})]},x.key)}),u&&e.jsx(Gt,{row:u,origin:d,root:s,onClose:()=>i(void 0)})]})}function is(s,t){let n=0,a=0,i=0,r=!1;const c=l=>{if(l.usage)n+=l.usage.inputTokens,a+=l.usage.outputTokens,i+=l.usage.cost,r||=l.usage.priced!==!1;else for(const o of l.spans)o.kind==="llm"&&(n+=o.inputTokens??0,a+=o.outputTokens??0,i+=o.cost??0,r||=o.cost!==void 0);for(const o of l.children){const d=t[o];d&&(l.kind!=="workflow"||!l.usage)&&c(d)}};return c(s),{inputTokens:n,outputTokens:a,cost:i,priced:r}}function Ee({run:s,title:t,runs:n,changed:a}){const i=is(s,n);return e.jsxs("section",{className:"panel","data-testid":`compare-${t.toLowerCase()}`,children:[e.jsxs("div",{className:"panel-head",children:[e.jsxs("div",{className:"panel-title",children:[e.jsx("a",{href:S("runs",s.id),children:t}),e.jsx(U,{status:s.status})]}),e.jsxs("span",{className:"muted num",children:[Y(i.cost,i.priced)," ·"," ",T((s.endedAt??Date.now())-s.startedAt)]})]}),e.jsxs("div",{className:"compare-section",children:[e.jsx("h3",{children:"Input"}),e.jsx("div",{className:"io-input",children:s.input})]}),e.jsxs("div",{className:"compare-section",children:[e.jsx("h3",{children:"Tool calls"}),s.toolCalls.length===0&&e.jsx("span",{className:"muted",children:"None"}),s.toolCalls.map((r,c)=>e.jsxs("div",{className:`compare-call ${a.has(c)?"diverged":""}`,children:[e.jsxs("span",{className:"tool-name",children:[a.has(c)&&e.jsx(Ue,{size:12,color:"var(--warn)"}),r.name]}),e.jsx(B,{label:"Result",value:r.result??r.error??null})]},r.id))]}),e.jsxs("div",{className:"compare-section",children:[e.jsx("h3",{children:"Output"}),e.jsx("div",{"data-testid":"compare-output",children:s.output?e.jsx(te,{text:s.output}):e.jsx("span",{className:"muted",children:s.error??"None yet"})})]}),e.jsxs("div",{className:"compare-section",style:{padding:"14px 0 8px"},children:[e.jsx("h3",{style:{padding:"0 16px"},children:"Trace"}),e.jsx(rs,{run:s,runs:n,compact:!0})]})]})}function Ut({originalId:s,forkId:t}){const n=$(j=>j.runs);p.useEffect(()=>{me(s).catch(()=>{}),me(t).catch(()=>{})},[s,t]);const a=n[s],i=n[t],r=[{label:"Runs",to:["runs"]},...a?[{label:a.target,to:["runs",a.id]}]:[],{label:"Compare"}];if(!a||!i)return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:r}),e.jsx("div",{className:"scroll",children:e.jsx(W,{icon:Cs,title:"Loading both runs"})})]});const c=new Set,l=Math.max(a.toolCalls.length,i.toolCalls.length);for(let j=0;j<l;j++){const v=a.toolCalls[j],h=i.toolCalls[j];(v?.name!==h?.name||M(v?.result)!==M(h?.result))&&c.add(j)}const o=i.forkOf,d=[o?.input!==void 0&&"Input",o?.context!==void 0&&"Context",...Object.keys(o?.toolResults??{}).map(j=>`Result of ${j}`)].filter(j=>!!j);return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:r}),e.jsx("div",{className:"scroll",children:e.jsxs("div",{className:"page",style:{maxWidth:1400},"data-testid":"compare-view",children:[e.jsx("div",{className:"page-head",children:e.jsxs("div",{children:[e.jsxs("h1",{className:"page-title",children:["Fork at step ",o?.step??"?"]}),e.jsx("div",{className:"page-sub",children:c.size===0?"Both branches made the same tool calls.":`${c.size} tool call${c.size===1?"":"s"} differ between the branches, highlighted below.`})]})}),e.jsx("div",{className:"diff-chips",children:d.length===0?e.jsxs("span",{className:"chip",children:[e.jsx(J,{size:11}),"Nothing changed, a plain rerun"]}):d.map(j=>e.jsxs("span",{className:"chip",children:[e.jsx(J,{size:11}),j]},j))}),e.jsxs("div",{className:"compare",children:[e.jsx(Ee,{run:a,title:"Original",runs:n,changed:c}),e.jsx(Ee,{run:i,title:"Fork",runs:n,changed:c})]})]})})]})}const Ht={agent:P,workflow:D,fork:J};function ls({runs:s,focused:t}){return e.jsxs("div",{className:"table",role:"table","aria-label":"Runs",children:[e.jsxs("div",{className:"tr thead",role:"row",children:[e.jsx("span",{role:"columnheader",children:"Status"}),e.jsx("span",{role:"columnheader",children:"Target"}),e.jsx("span",{role:"columnheader",children:"Input"}),e.jsx("span",{role:"columnheader",className:"td-right",children:"Tokens"}),e.jsx("span",{role:"columnheader",className:"td-right",children:"Cost"}),e.jsx("span",{role:"columnheader",className:"td-right",children:"Duration"}),e.jsx("span",{role:"columnheader",className:"td-right",children:"Started"})]}),s.map((n,a)=>{const i=Ht[n.kind],r=n.usage?n.usage.inputTokens+n.usage.outputTokens:void 0;return e.jsxs("a",{className:`tr ${t===a?"focused":""}`,href:S("runs",n.id),role:"row","data-testid":"run-row","data-index":a,children:[e.jsx("span",{role:"cell",children:e.jsx(U,{status:n.status})}),e.jsxs("span",{role:"cell",className:"td-target",children:[e.jsx(i,{size:14}),e.jsx("span",{className:"truncate",children:n.kind==="fork"?`fork of ${n.target}`:n.target})]}),e.jsx("span",{role:"cell",className:"truncate subtle",children:ne(n.input,140)}),e.jsx("span",{role:"cell",className:"td-right muted",children:r!==void 0?L(r):""}),e.jsx("span",{role:"cell",className:"td-right muted",children:n.usage?Y(n.usage.cost,n.usage.priced!==!1):""}),e.jsx("span",{role:"cell",className:"td-right muted",children:T((n.endedAt??Date.now())-n.startedAt)}),e.jsx("span",{role:"cell",className:"td-right muted",children:G(n.startedAt)})]},n.id)})]})}function oe({icon:s,label:t,value:n,foot:a}){return e.jsxs("div",{className:"stat",children:[e.jsxs("div",{className:"stat-label",children:[e.jsx(s,{size:13}),t]}),e.jsx("div",{className:"stat-value",children:n}),e.jsx("div",{className:"stat-foot",children:a})]})}function Jt({stats:s}){const t=s.byStatus.completed+s.byStatus.failed,n=t>0?s.byStatus.completed/t*100:void 0,a=s.activity.at(-1)?.runs??0;return e.jsxs("div",{className:"stats","data-testid":"stats",children:[e.jsx(oe,{icon:P,label:"Runs",value:Z(s.runs),foot:`${Z(a)} today`}),e.jsx(oe,{icon:Ts,label:"Success rate",value:n===void 0?"-":`${n>=99.95||n<.05?n.toFixed(0):n.toFixed(1)}%`,foot:`${Z(s.byStatus.failed)} failed`}),e.jsx(oe,{icon:Es,label:"Spend",value:Y(s.cost,s.priced),foot:`${Z(s.inputTokens+s.outputTokens)} tokens`}),e.jsx(oe,{icon:As,label:"Latency p50",value:s.duration?T(s.duration.p50):"-",foot:s.duration?`p95 ${T(s.duration.p95)}`:"no finished runs"})]})}function Vt({stats:s}){const t=Math.max(1,...s.activity.map(i=>i.runs)),n=s.activity[0],a=s.activity.at(-1);return e.jsxs("div",{className:"panel",children:[e.jsxs("div",{className:"panel-head",children:[e.jsx("div",{className:"panel-title",children:"Activity"}),e.jsxs("span",{className:"muted",children:["last ",s.activity.length," days"]})]}),e.jsxs("div",{className:"panel-body",children:[e.jsx("div",{className:"chart",role:"img","aria-label":"Runs per day",children:s.activity.map(i=>e.jsx("div",{className:"chart-col","data-tip":`${we(i.day)}: ${i.runs} run${i.runs===1?"":"s"}${i.failed?`, ${i.failed} failed`:""}`,children:e.jsx("div",{className:"chart-bar",style:{height:`${i.runs/t*100}%`},children:i.failed>0&&e.jsx("div",{className:"chart-bar-failed",style:{height:`${i.failed/Math.max(i.runs,1)*100}%`}})})},i.day))}),e.jsxs("div",{className:"chart-axis",children:[e.jsx("span",{children:n?we(n.day):""}),e.jsx("span",{children:a?"Today":""})]})]})]})}function qt({stats:s}){const t=[{key:"completed",label:"Completed"},{key:"failed",label:"Failed"},{key:"stopped",label:"Stopped"},{key:"running",label:"Running"},{key:"waiting",label:"Needs approval"}];return e.jsxs("div",{className:"panel",children:[e.jsx("div",{className:"panel-head",children:e.jsx("div",{className:"panel-title",children:"Outcomes"})}),e.jsx("div",{className:"panel-body breakdown",children:t.map(({key:n,label:a})=>{const i=s.byStatus[n],r=s.runs>0?i/s.runs*100:0;return e.jsxs("div",{className:"breakdown-row",children:[e.jsxs("div",{className:"breakdown-label",children:[e.jsx("span",{className:"subtle",children:a}),e.jsx("span",{className:"num",children:Z(i)})]}),e.jsx("div",{className:"meter",children:e.jsx("span",{"data-status":n,style:{width:`${r}%`}})})]},n)})})]})}function Ae(s,t){return`${Z(s)} ${t}${s===1?"":"s"}`}function Re(s,t,n){return s?.targets.find(a=>a.kind===t&&a.target===n)}function Xt(){const s=$(l=>l.host),t=$(l=>l.project),n=$(l=>l.stats),a=$(l=>l.runs),i=Object.values(a).filter(l=>!l.parentRunId).sort((l,o)=>o.startedAt-l.startedAt).slice(0,6);if(s.state!=="ready")return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[{label:"Overview"}]}),e.jsx("div",{className:"scroll",children:e.jsx(W,{icon:K,title:"Waiting for the project",children:"The studio shows the project once its registry loads."})})]});const{registry:r,memory:c}=s;return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[{label:"Overview"}]}),e.jsx("div",{className:"scroll",children:e.jsxs("div",{className:"page","data-testid":"overview",children:[e.jsxs("div",{className:"page-head",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"page-title",children:t}),e.jsxs("div",{className:"page-sub",children:[r.agents.length," agent",r.agents.length===1?"":"s",r.workflows.length>0&&`, ${r.workflows.length} workflow${r.workflows.length===1?"":"s"}`,r.swarms.length>0&&`, ${r.swarms.length} swarm${r.swarms.length===1?"":"s"}`,c==="studio"?", threads kept by the studio":", memory of the project"]})]}),r.agents[0]&&e.jsxs("a",{className:"btn btn-primary",href:S("agents",r.agents[0].key),children:[e.jsx(He,{size:14}),"Chat with ",r.agents[0].name]})]}),n?e.jsxs(e.Fragment,{children:[e.jsx(Jt,{stats:n}),e.jsxs("div",{className:"activity",children:[e.jsx(Vt,{stats:n}),e.jsx(qt,{stats:n})]})]}):e.jsx("div",{className:"skeleton",style:{height:96,borderRadius:12}}),e.jsx("h2",{className:"section-title",children:"Agents"}),r.agents.length===0?e.jsx("div",{className:"panel",children:e.jsxs(W,{icon:K,title:"No agents yet",children:["Export them as ",e.jsx("code",{children:"agents"})," from ",e.jsx("code",{children:"src/cogitator.ts"}),"."]})}):e.jsx("div",{className:"entities",children:r.agents.map(l=>{const o=Re(n,"agent",l.key);return e.jsxs("a",{className:"entity",href:S("agents",l.key),children:[e.jsxs("div",{className:"entity-head",children:[e.jsx("span",{className:"entity-icon",children:e.jsx(K,{size:15})}),e.jsxs("div",{style:{minWidth:0},children:[e.jsx("div",{className:"entity-name truncate",children:l.name}),e.jsx("div",{className:"muted mono truncate",children:be(l,r)})]})]}),e.jsx("div",{className:"entity-desc",children:l.description??l.instructions??"An agent of this project."}),e.jsxs("div",{className:"entity-foot",children:[e.jsxs("span",{children:[e.jsx(se,{size:12}),l.tools.length," tool",l.tools.length===1?"":"s"]}),e.jsxs("span",{children:[e.jsx(P,{size:12}),Ae(o?.runs??0,"run")]}),o&&e.jsx("span",{children:G(o.lastRunAt)})]})]},l.key)})}),r.workflows.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"section-title",children:"Workflows"}),e.jsx("div",{className:"entities",children:r.workflows.map(l=>{const o=Re(n,"workflow",l.key);return e.jsxs("a",{className:"entity",href:S("workflows",l.key),children:[e.jsxs("div",{className:"entity-head",children:[e.jsx("span",{className:"entity-icon",children:e.jsx(D,{size:15})}),e.jsxs("div",{style:{minWidth:0},children:[e.jsx("div",{className:"entity-name truncate",children:l.name}),e.jsx("div",{className:"muted mono truncate",children:l.nodes.join(" → ")})]})]}),e.jsxs("div",{className:"entity-foot",children:[e.jsxs("span",{children:[l.nodes.length," nodes"]}),e.jsxs("span",{children:[e.jsx(P,{size:12}),Ae(o?.runs??0,"run")]}),o&&e.jsx("span",{children:G(o.lastRunAt)})]})]},l.key)})})]}),e.jsxs("h2",{className:"section-title",children:["Recent runs",i.length>0&&e.jsxs("a",{className:"link",href:S("runs"),children:["All runs ",e.jsx(Ge,{size:12,style:{verticalAlign:-2}})]})]}),i.length===0?e.jsx("div",{className:"panel",children:e.jsx(W,{icon:P,title:"No runs yet",children:"Chat with an agent or run a workflow, every run shows up here with its trace and cost."})}):e.jsx(ls,{runs:i})]})})]})}function Yt(s){return typeof s=="string"&&(s.length>80||s.includes(`
8
+ `))}function os({value:s,label:t}){const[n,a]=p.useState(!1);if(!s||typeof s!="object"||Array.isArray(s))return e.jsx(B,{label:t,value:s});const i=Object.entries(s);return e.jsxs("div",{className:"json state",children:[e.jsxs("div",{className:"json-head",children:[e.jsx("span",{children:t}),e.jsxs("span",{style:{display:"flex",alignItems:"center",gap:2},children:[e.jsxs("div",{className:"seg seg-icons",role:"group","aria-label":"View",children:[e.jsx("button",{type:"button","aria-pressed":!n,"aria-label":"Fields","data-tip":"Fields",onClick:()=>a(!1),children:e.jsx(Rs,{size:12})}),e.jsx("button",{type:"button","aria-pressed":n,"aria-label":"Raw JSON","data-tip":"Raw JSON",onClick:()=>a(!0),children:e.jsx(Os,{size:12})})]}),e.jsx(ae,{value:M(s),label:`Copy ${t.toLowerCase()}`})]})]}),n?e.jsx("pre",{children:M(s)}):e.jsxs("div",{className:"state-fields",children:[i.length===0&&e.jsx("div",{className:"muted",children:"Empty"}),i.map(([r,c])=>e.jsxs("div",{className:"state-field",children:[e.jsx("div",{className:"state-key",children:r}),Yt(c)?e.jsx("div",{className:"state-prose",children:e.jsx(te,{text:c})}):e.jsx("pre",{className:`state-value ${typeof c=="string"?"state-text":""}`,children:M(c)})]},r))]})]})}const Q=184,_=56,Qt=72,Oe=28,Ie={pending:"pending",running:"running",completed:"done",failed:"failed",skipped:"skipped"};function Zt(s){const t=new Map([[s.entryPoint,0]]);for(const r of s.nodes)for(const c of s.edges){const l=t.get(c.from);if(l!==void 0)for(const o of c.to)o!==c.from&&(t.get(o)??-1)<l+1&&l+1<s.nodes.length&&t.set(o,l+1)}for(const r of s.nodes)t.has(r)||t.set(r,0);const n=new Map;for(const r of s.nodes){const c=t.get(r)??0;n.set(c,[...n.get(c)??[],r])}const a=Math.max(...[...n.values()].map(r=>r.length),1),i=new Map;for(const[r,c]of n){const l=(a-c.length)*(_+Oe)/2;c.forEach((o,d)=>i.set(o,{x:r*(Q+Qt),y:l+d*(_+Oe)}))}return i}function en(s,t){return s.length>t?`${s.slice(0,t-1)}…`:s}function cs({workflow:s,nodes:t,selected:n,onSelect:a}){const i=Zt(s),r=Math.max(...[...i.values()].map(d=>d.x+Q),Q),c=Math.max(...[...i.values()].map(d=>d.y+_),_)+30,l=d=>t?.find(j=>j.name===d),o=d=>l(d)?.status??"pending";return e.jsxs("svg",{className:"workflow-graph",viewBox:`-2 -2 ${r+4} ${c+4}`,width:r+4,height:c+4,role:"group","aria-label":`Graph of ${s.name}`,"data-testid":"workflow-graph",children:[e.jsx("defs",{children:e.jsx("marker",{id:"arrow",viewBox:"0 0 10 10",refX:"9",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto-start-reverse",children:e.jsx("path",{d:"M 0 1 L 9 5 L 0 9 z",className:"edge-head"})})}),s.edges.flatMap(d=>d.to.map(j=>{const v=i.get(d.from),h=i.get(j);if(!v||!h)return null;const u=h.x<=v.x,x=v.x+Q,f=v.y+_/2,m=u?h.x+Q/2:h.x-2,g=u?h.y+_:h.y+_/2,w=(x+m)/2,y=u?`M ${x} ${f} C ${x+48} ${f+70}, ${m} ${g+56}, ${m} ${g+2}`:`M ${x} ${f} C ${w} ${f}, ${w} ${g}, ${m} ${g}`,k=o(d.from),b=o(j),A=k==="completed"&&b==="running"?"edge-live":k==="completed"&&b==="completed"?"edge-done":"";return e.jsx("path",{d:y,className:`edge edge-${d.type} ${A}`,markerEnd:"url(#arrow)"},`${d.from}-${j}`)})),s.nodes.map(d=>{const j=i.get(d);if(!j)return null;const v=l(d),h=v?.status??"pending",u=v?.duration!==void 0?`${Ie[h]} · ${T(v.duration)}`:Ie[h];return e.jsxs("g",{transform:`translate(${j.x}, ${j.y})`,className:`node node-${h} ${n===d?"node-selected":""}`,onClick:()=>a?.(d),onKeyDown:x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),a?.(d))},"data-testid":`node-${d}`,"data-status":h,role:"button",tabIndex:a?0:-1,"aria-pressed":n===d,"aria-label":`${d}, ${u}`,children:[e.jsx("title",{children:d}),e.jsx("rect",{className:"node-card",width:Q,height:_,rx:"10"}),e.jsx("circle",{className:"node-dot",cx:18,cy:_/2,r:4}),e.jsx("text",{className:"node-name",x:32,y:23,children:en(d,20)}),e.jsx("text",{className:"node-sub",x:32,y:40,children:u})]},d)})]})}function z({label:s,children:t}){return e.jsxs("div",{className:"prop",children:[e.jsx("span",{className:"prop-label",children:s}),e.jsx("span",{className:"prop-value",children:t})]})}function sn({run:s,runs:t}){const n=is(s,t),a=n.inputTokens+n.outputTokens,i=s.status==="running"||s.status==="waiting",[r,c]=p.useState(Date.now);return p.useEffect(()=>{if(!i)return;const l=setInterval(()=>c(Date.now()),500);return()=>clearInterval(l)},[i]),e.jsxs("aside",{className:"props","data-testid":"run-summary","aria-label":"Run properties",children:[e.jsx(z,{label:"Status",children:e.jsx(U,{status:s.status})}),e.jsx(z,{label:s.kind==="workflow"?"Workflow":"Agent",children:e.jsx("a",{href:s.kind==="workflow"?S("workflows",s.target):S("agents",s.target),children:s.target})}),s.model&&e.jsx(z,{label:"Model",children:e.jsx("span",{className:"mono truncate",children:s.model})}),e.jsx(z,{label:"Started",children:e.jsx("span",{"data-tip":Je(s.startedAt),children:G(s.startedAt)})}),e.jsx(z,{label:"Duration",children:T((s.endedAt??r)-s.startedAt)}),e.jsx(z,{label:"Cost",children:e.jsx("span",{"data-testid":"run-cost",children:Y(n.cost,n.priced)})}),e.jsxs(z,{label:"Tokens",children:[L(n.inputTokens)," in · ",L(n.outputTokens)," out"]}),a>0&&e.jsxs("div",{className:"token-bar","aria-hidden":"true",children:[e.jsx("span",{style:{width:`${n.inputTokens/a*100}%`}}),e.jsx("span",{style:{width:`${n.outputTokens/a*100}%`}})]}),(s.threadId||s.parentRunId||s.forkOf||s.rerunOf)&&e.jsx("div",{className:"props-sep"}),s.threadId&&s.kind==="agent"&&!s.parentRunId&&e.jsx(z,{label:"Thread",children:e.jsx("a",{href:S("agents",s.target,s.threadId),children:"Open the chat"})}),s.parentRunId&&e.jsx(z,{label:"Started by",children:e.jsx("a",{href:S("runs",s.parentRunId),children:"Parent run"})}),s.forkOf&&e.jsx(z,{label:"Fork of",children:e.jsxs("a",{href:S("compare",s.forkOf.runId,s.id),children:["Step ",s.forkOf.step,", compare"]})}),s.rerunOf&&e.jsx(z,{label:"Rerun of",children:e.jsxs("a",{href:S("runs",s.rerunOf.runId),children:["From ",s.rerunOf.fromNode]})}),e.jsx("div",{className:"props-sep"}),e.jsxs(z,{label:"Run id",children:[e.jsx("span",{className:"mono truncate muted",children:s.id}),e.jsx(ae,{value:s.id,label:"Copy run id"})]})]})}function ds(s){try{return{ok:!0,value:JSON.parse(s)}}catch{return{ok:!1}}}function tn(s){const t=ds(s);return t.ok?t.value:s}function nn({run:s}){const t=s.steps??[],n=y=>Object.fromEntries((y?.toolCalls??[]).map(k=>[k.name,M(k.result)])),[a,i]=p.useState(t.at(-1)?.index??0),r=t.find(y=>y.index===a),[c,l]=p.useState(s.input),[o,d]=p.useState(""),j=[...new Set(s.toolCalls.map(y=>y.name))],[v,h]=p.useState(()=>n(r)),[u,x]=p.useState(),[f,m]=p.useState(!1),g=y=>{i(y.index),h(n(y))};if(t.length===0)return null;const w=async()=>{x(void 0);const y={};for(const[k,b]of Object.entries(v)){if(!b.trim())continue;const A=r?.toolCalls.find(N=>N.name===k);if(A&&M(A.result)===b)continue;const re=ds(b);y[k]=re.ok?re.value:b}m(!0);try{const k=await E.fork(s.id,{step:a,...c!==s.input&&{input:c},...o.trim()&&{context:o.trim()},...Object.keys(y).length>0&&{toolResults:y}});C("compare",s.id,k.runId)}catch(k){x(q(k))}finally{m(!1)}};return e.jsxs("section",{className:"panel",id:"fork","data-testid":"fork-panel",children:[e.jsx("div",{className:"panel-head",children:e.jsxs("div",{className:"panel-title",children:[e.jsx(J,{size:14}),"Fork from a step"]})}),e.jsxs("div",{className:"panel-body",children:[e.jsx("p",{className:"panel-desc",children:"Go back to a step, change what the agent saw, and run on from there. The original stays as it is, and both are shown side by side."}),e.jsx("div",{className:"steps",role:"radiogroup","aria-label":"Step",children:t.map(y=>e.jsxs("button",{type:"button",className:`step ${y.index===a?"active":""}`,onClick:()=>g(y),role:"radio","aria-checked":y.index===a,"data-testid":`step-${y.index}`,children:[e.jsx("span",{className:"step-index",children:y.index}),y.label]},y.checkpointId))}),e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Input"}),e.jsx("textarea",{className:"input",rows:2,value:c,onChange:y=>l(y.target.value),"data-testid":"fork-input"})]}),e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Extra context for the agent"}),e.jsx("textarea",{className:"input",rows:2,placeholder:"Anything the agent should know from this step on",value:o,onChange:y=>d(y.target.value)})]}),j.map(y=>e.jsxs("label",{className:"field",children:[e.jsxs("span",{children:["Result of ",e.jsx("code",{children:y})," from this step on"]}),e.jsx("textarea",{className:"input mono",rows:3,value:v[y]??"",placeholder:"Leave empty to run the tool",onChange:k=>h({...v,[y]:k.target.value}),"data-testid":`fork-result-${y}`})]},y)),e.jsxs("button",{type:"button",className:"btn btn-primary",disabled:f,onClick:()=>{w()},"data-testid":"fork",children:[f?e.jsx("span",{className:"spinner"}):e.jsx(J,{size:14}),"Fork from step ",a]}),u&&e.jsx(I,{children:u})]})]})}function an({run:s,workflow:t}){const[n,a]=p.useState(),[i,r]=p.useState();if(!t)return e.jsx("section",{className:"panel",children:e.jsx(W,{icon:D,title:`No workflow ${s.target}`,children:"It is no longer in the registry, so its graph cannot be drawn."})});const c=s.nodes?.find(d=>d.name===n),l=s.status==="completed"||s.status==="failed",o=async()=>{if(n){r(void 0);try{const d=await E.rerun(s.id,n);C("runs",d.runId)}catch(d){r(q(d))}}};return e.jsxs("section",{className:"panel",children:[e.jsxs("div",{className:"panel-head",children:[e.jsxs("div",{className:"panel-title",children:[e.jsx(D,{size:14}),"Nodes"]}),e.jsx("span",{className:"muted",children:n?"":l&&s.workflowRunId?"Pick a node to read it or rerun from it":"Pick a node to read it"})]}),e.jsx("div",{className:"canvas",children:e.jsx(cs,{workflow:t,nodes:s.nodes,selected:n,onSelect:d=>a(n===d?void 0:d)})}),c&&e.jsxs("div",{className:"node-detail",children:[e.jsxs("div",{className:"node-detail-head",children:[e.jsx("strong",{children:c.name}),e.jsx(U,{status:c.status}),c.duration!==void 0&&e.jsx("span",{className:"muted",children:T(c.duration)}),e.jsx("span",{style:{flex:1}}),l&&s.workflowRunId&&e.jsxs("button",{type:"button",className:"btn btn-primary btn-sm",onClick:()=>{o()},"data-testid":"rerun",children:[e.jsx(Is,{size:13}),"Rerun from ",c.name]})]}),c.output!==void 0&&e.jsx(os,{label:"Output",value:c.output}),c.error&&e.jsx(I,{children:c.error}),c.output===void 0&&!c.error&&e.jsx("span",{className:"muted",children:"This node has no output in this run."})]}),i&&e.jsx("div",{style:{padding:"0 16px 16px"},children:e.jsx(I,{children:i})})]})}function rn({runId:s}){const t=$(h=>h.runs),n=$(h=>h.host),[a,i]=p.useState();p.useEffect(()=>{i(void 0),me(s).catch(h=>i(q(h)))},[s]);const r=t[s],c=[{label:"Runs",to:["runs"]}];if(!r)return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[...c,{label:s}]}),e.jsx("div",{className:"scroll",children:a?e.jsx(W,{icon:P,title:"Run not found",children:a}):e.jsxs("div",{className:"page",children:[e.jsx("div",{className:"skeleton",style:{height:28,width:240,marginBottom:24}}),e.jsx("div",{className:"skeleton",style:{height:320}})]})})]});const l=n.state==="ready"?n.registry.workflows.find(h=>h.key===r.target):void 0,o=r.forks.map(h=>t[h]).filter(h=>h!==void 0),d=r.kind!=="workflow"&&r.status==="completed"&&!r.parentRunId&&(r.steps?.length??0)>0,j=r.status==="running"||r.status==="waiting",v=r.kind==="workflow"?"Workflow run":r.kind==="fork"?"Fork":"Agent run";return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[...c,{label:`${r.target} · ${r.id.slice(-8)}`}],actions:e.jsxs(e.Fragment,{children:[j&&e.jsx("button",{type:"button",className:"btn btn-danger btn-sm",onClick:()=>{E.stop(r.id)},children:"Stop"}),r.threadId&&r.kind==="agent"&&!r.parentRunId&&e.jsxs("a",{className:"btn btn-secondary btn-sm",href:S("agents",r.target,r.threadId),children:[e.jsx(He,{size:13}),"Chat"]}),d&&e.jsxs("a",{className:"btn btn-secondary btn-sm",href:"#fork",onClick:h=>{h.preventDefault(),document.getElementById("fork")?.scrollIntoView({behavior:"smooth",block:"start"})},children:[e.jsx(J,{size:13}),"Fork"]})]})}),e.jsx("div",{className:"scroll",children:e.jsxs("div",{className:"page","data-testid":"run-view","data-status":r.status,children:[e.jsx("div",{className:"page-head",children:e.jsxs("div",{children:[e.jsx("h1",{className:"page-title",children:v}),e.jsxs("div",{className:"page-sub",children:[r.target," · started ",Je(r.startedAt)]})]})}),e.jsxs("div",{className:"run-layout",children:[e.jsxs("div",{className:"run-main",children:[e.jsx("section",{className:"panel",children:e.jsxs("div",{className:"panel-body io",children:[e.jsxs("div",{children:[e.jsx("div",{className:"io-label",children:"Input"}),e.jsx("div",{className:"io-input",children:r.input})]}),e.jsxs("div",{children:[e.jsx("div",{className:"io-label",children:j?"Output so far":"Output"}),r.output?r.kind==="workflow"?e.jsx(os,{label:"Final state",value:tn(r.output)}):e.jsx(te,{text:r.output}):e.jsx("span",{className:"muted",children:j?"Waiting for the first tokens":"No output"}),r.error&&e.jsx(I,{children:r.error})]})]})}),r.kind==="workflow"&&e.jsx(an,{run:r,workflow:l}),e.jsxs("section",{className:"panel",children:[e.jsxs("div",{className:"panel-head",children:[e.jsxs("div",{className:"panel-title",children:[e.jsx(Be,{size:14}),"Trace"]}),e.jsxs("div",{className:"wf-legend",children:[e.jsxs("span",{children:[e.jsx("i",{style:{background:"var(--bar-llm)"}}),"Model"]}),e.jsxs("span",{children:[e.jsx("i",{style:{background:"var(--bar-tool)"}}),"Tool"]}),e.jsxs("span",{children:[e.jsx("i",{style:{background:"var(--bar-run)"}}),"Run"]})]})]}),e.jsx("div",{style:{padding:"4px 0 8px"},children:e.jsx(rs,{run:r,runs:t})})]}),r.toolCalls.length>0&&e.jsxs("section",{className:"panel",children:[e.jsx("div",{className:"panel-head",children:e.jsxs("div",{className:"panel-title",children:[e.jsx(se,{size:14}),"Tool calls ",e.jsx("span",{className:"count",children:r.toolCalls.length})]})}),e.jsx("div",{className:"panel-body",style:{display:"grid",gap:8},children:r.toolCalls.map(h=>e.jsx(ts,{call:h},h.id))})]}),o.length>0&&e.jsxs("section",{className:"panel",children:[e.jsx("div",{className:"panel-head",children:e.jsxs("div",{className:"panel-title",children:[e.jsx(J,{size:14}),"Forks ",e.jsx("span",{className:"count",children:o.length})]})}),o.map(h=>e.jsxs("a",{className:"fork-row",href:S("compare",r.id,h.id),"data-testid":"fork-link",children:[e.jsx(U,{status:h.status}),e.jsxs("span",{children:["From step ",h.forkOf?.step]}),e.jsx("span",{className:"muted grow truncate",style:{flex:1},children:h.output?h.output.replace(/\s+/g," "):""}),e.jsx("span",{className:"muted",children:G(h.startedAt)})]},h.id))]}),d&&e.jsx(nn,{run:r})]}),e.jsx(sn,{run:r,runs:t})]})]})})]})}const ln=[{value:"",label:"All"},{value:"agent",label:"Chats"},{value:"workflow",label:"Workflows"},{value:"fork",label:"Forks"}];function on(){const s=$(g=>g.host),t=$(g=>g.runs),[n,a]=p.useState(""),[i,r]=p.useState(""),[c,l]=p.useState(""),[o,d]=p.useState(),[j,v]=p.useState(),[h,u]=p.useState(-1),x=Object.keys(t).length;p.useEffect(()=>{let g=!0;const w=setTimeout(()=>{E.runs({q:n,target:i,kind:c}).then(y=>{g&&(d(y.runs),v(void 0))}).catch(y=>g&&v(q(y)))},150);return()=>{g=!1,clearTimeout(w)}},[n,i,c,x]),p.useEffect(()=>u(-1),[n,i,c]);const f=s.state==="ready"?[...s.registry.agents.map(g=>g.key),...s.registry.workflows.map(g=>g.key)]:[],m=(o??[]).map(g=>t[g.id]??g);return ss(["j","k","ArrowDown","ArrowUp","Enter"],g=>{if(g.key==="Enter"){const k=m[h];k&&C("runs",k.id);return}const w=g.key==="j"||g.key==="ArrowDown"?1:-1,y=Math.min(Math.max(h+w,0),m.length-1);u(y),document.querySelector(`.tr[data-index="${y}"]`)?.scrollIntoView({block:"nearest"})}),e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:[{label:"Runs"}]}),e.jsx("div",{className:"scroll",children:e.jsxs("div",{className:"page",children:[e.jsx("div",{className:"page-head",children:e.jsxs("div",{children:[e.jsx("h1",{className:"page-title",children:"Runs"}),e.jsx("div",{className:"page-sub",children:"Every chat, workflow run and fork, with its trace and cost."})]})}),e.jsxs("div",{className:"toolbar",children:[e.jsxs("label",{className:"input-icon",children:[e.jsx(ue,{size:14}),e.jsx("input",{className:"input",placeholder:"Search inputs, outputs and errors",value:n,onChange:g=>a(g.target.value),onKeyDown:g=>g.key==="Escape"&&g.currentTarget.blur(),"aria-label":"Search runs","data-testid":"search","data-search":!0}),e.jsx(R,{keys:["/"]})]}),e.jsx("div",{className:"seg",role:"group","aria-label":"Kind",children:ln.map(g=>e.jsx("button",{type:"button","aria-pressed":c===g.value,onClick:()=>l(g.value),children:g.label},g.value))}),e.jsxs("select",{className:"input select",value:i,onChange:g=>r(g.target.value),"aria-label":"Agent or workflow","data-testid":"filter-target",children:[e.jsx("option",{value:"",children:"Every agent and workflow"}),f.map(g=>e.jsx("option",{value:g,children:g},g))]})]}),j&&e.jsx(I,{children:j}),!o&&!j&&e.jsx("div",{className:"skeleton",style:{height:240}}),o&&m.length===0&&e.jsx("div",{className:"panel",children:e.jsx(W,{icon:P,title:n||i||c?"No runs match":"No runs yet",children:n||i||c?"Try other words or clear the filters.":"Chat with an agent or run a workflow to see it here."})}),m.length>0&&e.jsx(ls,{runs:m,focused:h})]})})]})}function cn(s){if(s.trim())try{JSON.parse(s);return}catch(t){return q(t)}}function dn({workflowKey:s}){const t=$(f=>f.host),n=$(f=>f.runs),a=t.state==="ready"?t.registry.workflows.find(f=>f.key===s):void 0,[i,r]=p.useState(""),[c,l]=p.useState(),[o,d]=p.useState(!1);p.useEffect(()=>{a&&r(M(a.initialState??{}))},[a?.key]),p.useEffect(()=>{ct({target:s,kind:"workflow"}).catch(()=>{})},[s]);const j=[{label:a?.name??s}];if(t.state!=="ready")return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:j}),e.jsx("div",{className:"scroll",children:e.jsx(W,{icon:D,title:"Waiting for the project"})})]});if(!a)return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:j}),e.jsx("div",{className:"scroll",children:e.jsx(W,{icon:D,title:`No workflow ${s}`,children:"It is not in the registry of this project anymore."})})]});const v=Object.values(n).filter(f=>f.kind==="workflow"&&f.target===s).sort((f,m)=>m.startedAt-f.startedAt),h=v[0],u=cn(i),x=async()=>{if(!(u||o)){l(void 0),d(!0);try{const f=await E.runWorkflow(s,i.trim()?JSON.parse(i):{});C("runs",f.runId)}catch(f){l(q(f))}finally{d(!1)}}};return e.jsxs(e.Fragment,{children:[e.jsx(O,{crumbs:j,actions:e.jsxs("button",{type:"button",className:"btn btn-primary btn-sm",disabled:!!u||o,onClick:()=>{x()},children:[e.jsx(he,{size:12,fill:"currentColor"}),"Run"]})}),e.jsx("div",{className:"scroll",children:e.jsxs("div",{className:"page",children:[e.jsx("div",{className:"page-head",children:e.jsxs("div",{children:[e.jsx("h1",{className:"page-title",children:a.name}),e.jsxs("div",{className:"page-sub",children:[a.nodes.length," nodes, starts at ",e.jsx("code",{children:a.entryPoint})]})]})}),e.jsxs("div",{className:"workflow-layout",children:[e.jsxs("section",{className:"panel",children:[e.jsxs("div",{className:"panel-head",children:[e.jsxs("div",{className:"panel-title",children:[e.jsx(D,{size:14}),"Graph"]}),h&&e.jsxs("a",{className:"link",href:S("runs",h.id),children:["Latest run, ",G(h.startedAt)]})]}),e.jsx("div",{className:"canvas",style:{minHeight:220},children:e.jsx(cs,{workflow:a,nodes:h?.nodes})})]}),e.jsxs("div",{className:"side-stack",children:[e.jsxs("section",{className:"panel",children:[e.jsxs("div",{className:"panel-head",children:[e.jsxs("div",{className:"panel-title",children:[e.jsx(he,{size:14}),"Run it"]}),e.jsx(R,{keys:[ke,"Enter"]})]}),e.jsxs("div",{className:"panel-body",children:[e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Input state (JSON)"}),e.jsx("textarea",{className:"input mono",rows:8,value:i,spellCheck:!1,onChange:f=>r(f.target.value),onKeyDown:f=>{(f.metaKey||f.ctrlKey)&&f.key==="Enter"&&(f.preventDefault(),x())},"aria-invalid":!!u,"data-testid":"workflow-input"})]}),u&&e.jsxs(I,{children:["Not JSON yet: ",u]}),e.jsxs("button",{type:"button",className:"btn btn-primary",style:{width:"100%",marginTop:u?12:0},disabled:!!u||o,onClick:()=>{x()},"data-testid":"run-workflow",children:[o?e.jsx("span",{className:"spinner"}):e.jsx(he,{size:12,fill:"currentColor"}),"Run ",a.name]}),c&&e.jsx(I,{children:c})]})]}),e.jsxs("section",{className:"panel",children:[e.jsx("div",{className:"panel-head",children:e.jsxs("div",{className:"panel-title",children:[e.jsx(P,{size:14}),"Runs ",e.jsx("span",{className:"count",children:v.length})]})}),v.length===0&&e.jsx("div",{className:"panel-body muted",children:"No runs yet. Run it to see each node work."}),v.slice(0,12).map(f=>e.jsxs("a",{className:"list-row",href:S("runs",f.id),children:[e.jsx(U,{status:f.status}),e.jsx("span",{className:"grow truncate",children:f.rerunOf?`Rerun from ${f.rerunOf.fromNode}`:"Run"}),e.jsx("span",{className:"muted num",children:T((f.endedAt??Date.now())-f.startedAt)}),e.jsx("span",{className:"muted",children:G(f.startedAt)})]},f.id)),v.length>12&&e.jsxs("a",{className:"list-row link",href:S("runs"),children:["All ",v.length," runs"]})]})]})]})]})})]})}function un(){const s=$(a=>a.host),t=$(a=>a.connected),n=$(a=>a.loaded);return!t&&n?e.jsxs("div",{className:"banner banner-warn",role:"status",children:[e.jsx(zs,{size:14}),e.jsx("span",{children:"Lost the connection to cogitator dev, reconnecting."})]}):s.state==="starting"?e.jsxs("div",{className:"banner",role:"status",children:[e.jsx(Me,{size:14,style:{animation:"spin 1s linear infinite"}}),e.jsx("span",{children:"Loading the project"})]}):s.state==="restarting"?e.jsxs("div",{className:"banner",role:"status","data-testid":"reloading",children:[e.jsx(Ds,{size:14,style:{animation:"spin 1s linear infinite"}}),e.jsxs("span",{children:["Reloading: ",s.reason]})]}):s.state==="failed"?e.jsxs("div",{className:"banner banner-error",role:"alert","data-testid":"host-error",children:[e.jsxs("div",{className:"banner-row",children:[e.jsx(Ue,{size:15}),"The project does not load"]}),e.jsx("pre",{children:s.error}),e.jsx("span",{children:"Fix the code and save, the studio reloads it."})]}):null}function hn({route:s}){const[t,n,a]=s;return t==="agents"&&n?e.jsx(Pt,{agentKey:n,threadId:a},n):t==="runs"&&n?e.jsx(rn,{runId:n},n):t==="runs"?e.jsx(on,{}):t==="compare"&&n&&a?e.jsx(Ut,{originalId:n,forkId:a},`${n}-${a}`):t==="workflows"&&n?e.jsx(dn,{workflowKey:n},n):e.jsx(Xt,{})}function pn(){const s=at(),[t,n]=p.useState(!1),[a,i]=p.useState(!1),r=p.useRef(0);p.useEffect(()=>lt(),[]);const c=p.useCallback(()=>{n(!1),i(!0)},[]);return es(l=>{if((l.metaKey||l.ctrlKey)&&l.key.toLowerCase()==="k"){l.preventDefault(),i(!1),n(o=>!o);return}if(!(l.metaKey||l.ctrlKey||l.altKey)&&!(Qe(l)||Ze()))if(l.key==="?")l.preventDefault(),c();else if(l.key==="/"){l.preventDefault();const o=document.querySelector("[data-search]");o?o.focus():n(!0)}else l.key==="g"?r.current=Date.now():Date.now()-r.current<900&&(r.current=0,l.key==="o"&&C(),l.key==="r"&&C("runs"))}),e.jsxs("div",{className:"app",children:[e.jsx(wt,{route:s,onSearch:()=>n(!0),onShortcuts:c}),e.jsxs("main",{className:"main",children:[e.jsx(un,{}),e.jsx(hn,{route:s})]}),t&&e.jsx(vt,{onClose:()=>n(!1),onShortcuts:c}),a&&e.jsx(yt,{onClose:()=>i(!1)})]})}const ze=document.getElementById("root");ze&&us.createRoot(ze).render(e.jsx(p.StrictMode,{children:e.jsx(pn,{})}));
@@ -7,7 +7,7 @@
7
7
  <title>Cogitator Studio</title>
8
8
  <link rel="icon" type="image/svg+xml" href="./favicon.svg" />
9
9
  <script src="./theme.js"></script>
10
- <script type="module" crossorigin src="./assets/index-C4hZIqRf.js"></script>
10
+ <script type="module" crossorigin src="./assets/index-Dcfv691l.js"></script>
11
11
  <link rel="modulepreload" crossorigin href="./assets/react-Oh0PCTUB.js">
12
12
  <link rel="modulepreload" crossorigin href="./assets/icons-f6vmKzId.js">
13
13
  <link rel="modulepreload" crossorigin href="./assets/math-Dyab3dfo.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogitator-ai/studio",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Cogitator Studio: a local debugger for agent projects with chat, traces, costs, approvals, workflow runs and time-travel forks",
5
5
  "keywords": [
6
6
  "cogitator",
@@ -29,13 +29,13 @@
29
29
  "node": ">=22.12.0"
30
30
  },
31
31
  "dependencies": {
32
- "@cogitator-ai/core": "0.37.0",
33
- "@cogitator-ai/memory": "0.12.3",
34
- "@cogitator-ai/models": "18.3.0",
35
- "@cogitator-ai/types": "0.39.0"
32
+ "@cogitator-ai/core": "0.38.0",
33
+ "@cogitator-ai/memory": "0.12.4",
34
+ "@cogitator-ai/models": "18.4.0",
35
+ "@cogitator-ai/types": "0.40.0"
36
36
  },
37
37
  "peerDependencies": {
38
- "@cogitator-ai/workflows": ">=0.12.3",
38
+ "@cogitator-ai/workflows": ">=0.12.4",
39
39
  "tsx": ">=4.0.0"
40
40
  },
41
41
  "peerDependenciesMeta": {
@@ -47,7 +47,7 @@
47
47
  }
48
48
  },
49
49
  "devDependencies": {
50
- "@cogitator-ai/workflows": "0.12.3",
50
+ "@cogitator-ai/workflows": "0.12.4",
51
51
  "@fontsource-variable/geist": "^5.3.0",
52
52
  "@fontsource-variable/geist-mono": "^5.3.0",
53
53
  "@types/node": "^22.20.4",