codexmate 0.1.8 → 0.1.10

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.
@@ -99,21 +99,6 @@ return function render(_ctx, _cache) {
99
99
  onPointerdown: $event => (_ctx.onMainTabPointerDown('usage', $event)),
100
100
  onClick: $event => (_ctx.onMainTabClick('usage', $event))
101
101
  }, _toDisplayString(_ctx.t('tab.usage')), 43 /* TEXT, CLASS, PROPS, NEED_HYDRATION */, ["tabindex", "aria-selected", "onPointerdown", "onClick"]),
102
- (_ctx.taskOrchestrationTabEnabled)
103
- ? (_openBlock(), _createElementBlock("button", {
104
- key: 0,
105
- type: "button",
106
- class: "top-tab top-tab-disabled",
107
- id: "tab-orchestration",
108
- role: "tab",
109
- "data-main-tab": "orchestration",
110
- tabindex: "-1",
111
- "aria-selected": "false",
112
- "aria-disabled": "true",
113
- disabled: "",
114
- title: _ctx.t('orchestration.rebuilding.body')
115
- }, _toDisplayString(_ctx.t('tab.orchestration')), 9 /* TEXT, PROPS */, ["title"]))
116
- : _createCommentVNode("v-if", true),
117
102
  _createElementVNode("button", {
118
103
  type: "button",
119
104
  class: _normalizeClass(["top-tab", { active: _ctx.isMainTabNavActive('market') }]),
@@ -430,34 +415,6 @@ return function render(_ctx, _cache) {
430
415
  ])
431
416
  ], 42 /* CLASS, PROPS, NEED_HYDRATION */, ["aria-current", "onPointerdown", "onClick"])
432
417
  ], 8 /* PROPS */, ["aria-label"]),
433
- (_ctx.taskOrchestrationTabEnabled)
434
- ? (_openBlock(), _createElementBlock("div", {
435
- key: 0,
436
- class: "side-section",
437
- role: "navigation",
438
- "aria-label": _ctx.t('side.orchestration')
439
- }, [
440
- _createElementVNode("div", { class: "side-section-title" }, _toDisplayString(_ctx.t('side.orchestration')), 1 /* TEXT */),
441
- _createElementVNode("button", {
442
- id: "side-tab-orchestration",
443
- "data-main-tab": "orchestration",
444
- class: "side-item side-item-disabled",
445
- "aria-disabled": "true",
446
- disabled: "",
447
- title: _ctx.t('orchestration.rebuilding.body')
448
- }, [
449
- _createElementVNode("span", {
450
- class: "side-item-icon",
451
- "aria-hidden": "true"
452
- }, "T"),
453
- _createElementVNode("div", { class: "side-item-title" }, _toDisplayString(_ctx.t('tab.orchestration')), 1 /* TEXT */),
454
- _createElementVNode("div", { class: "side-item-meta" }, [
455
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.rebuilding.status')), 1 /* TEXT */),
456
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.rebuilding.title')), 1 /* TEXT */)
457
- ])
458
- ], 8 /* PROPS */, ["title"])
459
- ], 8 /* PROPS */, ["aria-label"]))
460
- : _createCommentVNode("v-if", true),
461
418
  _createElementVNode("div", {
462
419
  class: "side-section",
463
420
  role: "navigation",
@@ -718,87 +675,61 @@ return function render(_ctx, _cache) {
718
675
  _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.sessionUsageSummaryCards[1] ? _ctx.sessionUsageSummaryCards[1].value : 0), 1 /* TEXT */)
719
676
  ])
720
677
  ]))
721
- : (!_ctx.sessionStandalone && _ctx.taskOrchestrationTabEnabled && _ctx.mainTab === 'orchestration')
678
+ : (!_ctx.sessionStandalone && _ctx.mainTab === 'market')
722
679
  ? (_openBlock(), _createElementBlock("div", {
723
680
  key: 4,
724
681
  class: "status-strip"
725
682
  }, [
726
683
  _createElementVNode("div", { class: "status-chip" }, [
727
- _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.engine')), 1 /* TEXT */),
728
- _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.taskOrchestration.selectedEngine === 'workflow' ? 'Workflow' : 'Codex'), 1 /* TEXT */)
729
- ]),
730
- _createElementVNode("div", { class: "status-chip" }, [
731
- _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.concurrency')), 1 /* TEXT */),
732
- _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.taskOrchestration.concurrency), 1 /* TEXT */)
684
+ _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.currentTarget')), 1 /* TEXT */),
685
+ _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.skillsTargetLabel), 1 /* TEXT */)
733
686
  ]),
734
687
  _createElementVNode("div", { class: "status-chip" }, [
735
- _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.running')), 1 /* TEXT */),
736
- _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.taskOrchestrationQueueStats.running), 1 /* TEXT */)
688
+ _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.localSkills')), 1 /* TEXT */),
689
+ _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.skillsList.length), 1 /* TEXT */)
737
690
  ]),
738
691
  _createElementVNode("div", { class: "status-chip" }, [
739
- _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.queued')), 1 /* TEXT */),
740
- _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.taskOrchestrationQueueStats.queued), 1 /* TEXT */)
692
+ _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.importable')), 1 /* TEXT */),
693
+ _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.skillsImportList.length), 1 /* TEXT */)
741
694
  ]),
742
695
  _createElementVNode("div", { class: "status-chip" }, [
743
- _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.runs')), 1 /* TEXT */),
744
- _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.taskOrchestration.runs.length), 1 /* TEXT */)
696
+ _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.importableDirect')), 1 /* TEXT */),
697
+ _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.skillsImportConfiguredCount), 1 /* TEXT */)
745
698
  ])
746
699
  ]))
747
- : (!_ctx.sessionStandalone && _ctx.mainTab === 'market')
700
+ : (!_ctx.sessionStandalone && _ctx.mainTab === 'docs')
748
701
  ? (_openBlock(), _createElementBlock("div", {
749
702
  key: 5,
750
703
  class: "status-strip"
751
704
  }, [
752
705
  _createElementVNode("div", { class: "status-chip" }, [
753
- _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.currentTarget')), 1 /* TEXT */),
754
- _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.skillsTargetLabel), 1 /* TEXT */)
706
+ _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.pm')), 1 /* TEXT */),
707
+ _createElementVNode("span", { class: "value" }, _toDisplayString(String(_ctx.installPackageManager || 'npm').toUpperCase()), 1 /* TEXT */)
755
708
  ]),
756
709
  _createElementVNode("div", { class: "status-chip" }, [
757
- _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.localSkills')), 1 /* TEXT */),
758
- _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.skillsList.length), 1 /* TEXT */)
710
+ _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.action')), 1 /* TEXT */),
711
+ _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.installCommandAction === 'update' ? _ctx.t('common.update') : (_ctx.installCommandAction === 'uninstall' ? _ctx.t('common.uninstall') : _ctx.t('common.install'))), 1 /* TEXT */)
759
712
  ]),
760
713
  _createElementVNode("div", { class: "status-chip" }, [
761
- _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.importable')), 1 /* TEXT */),
762
- _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.skillsImportList.length), 1 /* TEXT */)
763
- ]),
764
- _createElementVNode("div", { class: "status-chip" }, [
765
- _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.importableDirect')), 1 /* TEXT */),
766
- _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.skillsImportConfiguredCount), 1 /* TEXT */)
714
+ _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.registry')), 1 /* TEXT */),
715
+ _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.installRegistryPreview || 'npmmirror'), 1 /* TEXT */)
767
716
  ])
768
717
  ]))
769
- : (!_ctx.sessionStandalone && _ctx.mainTab === 'docs')
718
+ : (!_ctx.sessionStandalone)
770
719
  ? (_openBlock(), _createElementBlock("div", {
771
720
  key: 6,
772
- class: "status-strip"
721
+ class: "status-strip status-strip-placeholder",
722
+ "aria-hidden": "true"
773
723
  }, [
774
724
  _createElementVNode("div", { class: "status-chip" }, [
775
- _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.pm')), 1 /* TEXT */),
776
- _createElementVNode("span", { class: "value" }, _toDisplayString(String(_ctx.installPackageManager || 'npm').toUpperCase()), 1 /* TEXT */)
777
- ]),
778
- _createElementVNode("div", { class: "status-chip" }, [
779
- _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.action')), 1 /* TEXT */),
780
- _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.installCommandAction === 'update' ? _ctx.t('common.update') : (_ctx.installCommandAction === 'uninstall' ? _ctx.t('common.uninstall') : _ctx.t('common.install'))), 1 /* TEXT */)
781
- ]),
782
- _createElementVNode("div", { class: "status-chip" }, [
783
- _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.registry')), 1 /* TEXT */),
784
- _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.installRegistryPreview || 'npmmirror'), 1 /* TEXT */)
725
+ _createElementVNode("span", { class: "label" }, " "),
726
+ _createElementVNode("span", { class: "value" }, " ")
785
727
  ])
786
728
  ]))
787
- : (!_ctx.sessionStandalone)
788
- ? (_openBlock(), _createElementBlock("div", {
789
- key: 7,
790
- class: "status-strip status-strip-placeholder",
791
- "aria-hidden": "true"
792
- }, [
793
- _createElementVNode("div", { class: "status-chip" }, [
794
- _createElementVNode("span", { class: "label" }, " "),
795
- _createElementVNode("span", { class: "value" }, " ")
796
- ])
797
- ]))
798
- : _createCommentVNode("v-if", true),
729
+ : _createCommentVNode("v-if", true),
799
730
  (!_ctx.sessionStandalone && _ctx.mainTab === 'config' && _ctx.isProviderConfigMode && _ctx.forceCompactLayout && !_ctx.loading && !_ctx.initError && _ctx.displayProvidersList.length > 1)
800
731
  ? (_openBlock(), _createElementBlock("div", {
801
- key: 8,
732
+ key: 7,
802
733
  class: "provider-fast-switch"
803
734
  }, [
804
735
  _createElementVNode("label", {
@@ -1013,37 +944,6 @@ return function render(_ctx, _cache) {
1013
944
  ]))
1014
945
  : _createCommentVNode("v-if", true)
1015
946
  ], 8 /* PROPS */, ["onClick", "disabled"]),
1016
- (_ctx.taskOrchestrationTabEnabled)
1017
- ? (_openBlock(), _createElementBlock("button", {
1018
- key: 0,
1019
- type: "button",
1020
- class: "doctor-card",
1021
- onClick: $event => (_ctx.switchMainTab('orchestration')),
1022
- disabled: _ctx.loading || !!_ctx.initError
1023
- }, [
1024
- _createElementVNode("div", { class: "doctor-card-title" }, _toDisplayString(_ctx.t('dashboard.card.tasks')), 1 /* TEXT */),
1025
- _createElementVNode("div", { class: "doctor-card-meta" }, [
1026
- _createElementVNode("span", null, _toDisplayString(_ctx.taskOrchestration && _ctx.taskOrchestration.loading ? _ctx.t('dashboard.state.loading') : _ctx.t('dashboard.state.ready')), 1 /* TEXT */),
1027
- _createElementVNode("span", null, "·"),
1028
- _createElementVNode("span", null, _toDisplayString(_ctx.t('dashboard.tasks.queue', { running: _ctx.taskOrchestrationQueueStats.running, queued: _ctx.taskOrchestrationQueueStats.queued })), 1 /* TEXT */)
1029
- ]),
1030
- (_ctx.taskOrchestration && _ctx.taskOrchestration.planIssues && _ctx.taskOrchestration.planIssues.length)
1031
- ? (_openBlock(), _createElementBlock("div", {
1032
- key: 0,
1033
- class: "doctor-card-kv"
1034
- }, [
1035
- _createElementVNode("span", null, _toDisplayString(_ctx.t('dashboard.kv.blockers')), 1 /* TEXT */),
1036
- _createElementVNode("span", null, _toDisplayString(_ctx.taskOrchestration.planIssues.length), 1 /* TEXT */)
1037
- ]))
1038
- : (_openBlock(), _createElementBlock("div", {
1039
- key: 1,
1040
- class: "doctor-card-kv"
1041
- }, [
1042
- _createElementVNode("span", null, _toDisplayString(_ctx.t('dashboard.kv.runs')), 1 /* TEXT */),
1043
- _createElementVNode("span", null, _toDisplayString(_ctx.taskOrchestration && _ctx.taskOrchestration.runs ? _ctx.taskOrchestration.runs.length : 0), 1 /* TEXT */)
1044
- ]))
1045
- ], 8 /* PROPS */, ["onClick", "disabled"]))
1046
- : _createCommentVNode("v-if", true),
1047
947
  _createElementVNode("button", {
1048
948
  type: "button",
1049
949
  class: "doctor-card",
@@ -3292,7 +3192,63 @@ return function render(_ctx, _cache) {
3292
3192
  type: "button",
3293
3193
  onClick: _ctx.clearSessionFilters,
3294
3194
  disabled: _ctx.sessionsLoading
3295
- }, _toDisplayString(_ctx.t('common.resetFilters')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
3195
+ }, _toDisplayString(_ctx.t('common.resetFilters')), 9 /* TEXT, PROPS */, ["onClick", "disabled"]),
3196
+ (!_ctx.sessionBatchSelectMode)
3197
+ ? (_openBlock(), _createElementBlock("button", {
3198
+ key: 0,
3199
+ class: "btn-tool btn-tool-compact btn-tool-batch",
3200
+ type: "button",
3201
+ onClick: _ctx.enterSessionBatchSelectMode,
3202
+ disabled: _ctx.sessionsLoading,
3203
+ title: _ctx.t('sessions.batch.select')
3204
+ }, [
3205
+ (_openBlock(), _createElementBlock("svg", {
3206
+ viewBox: "0 0 24 24",
3207
+ fill: "none",
3208
+ stroke: "currentColor",
3209
+ "stroke-width": "2"
3210
+ }, [
3211
+ _createElementVNode("polyline", { points: "3 6 5 6 21 6" }),
3212
+ _createElementVNode("path", { d: "M7 6V4a2 2 0 012-2h6a2 2 0 012 2v2M10 11v6M14 11v6" }),
3213
+ _createElementVNode("path", { d: "M5 6l1 14a2 2 0 002 2h8a2 2 0 002-2l1-14" })
3214
+ ])),
3215
+ _createElementVNode("span", null, _toDisplayString(_ctx.t('sessions.batch.select')), 1 /* TEXT */)
3216
+ ], 8 /* PROPS */, ["onClick", "disabled", "title"]))
3217
+ : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [
3218
+ _createElementVNode("button", {
3219
+ class: "btn-tool btn-tool-compact",
3220
+ type: "button",
3221
+ onClick: _ctx.toggleSelectAllVisibleForBatch,
3222
+ disabled: _ctx.sessionsLoading,
3223
+ title: _ctx.isAllVisibleBatchSelected() ? _ctx.t('sessions.batch.unselectAll') : _ctx.t('sessions.batch.selectAll')
3224
+ }, _toDisplayString(_ctx.isAllVisibleBatchSelected() ? _ctx.t('sessions.batch.unselectAll') : _ctx.t('sessions.batch.selectAll')), 9 /* TEXT, PROPS */, ["onClick", "disabled", "title"]),
3225
+ _createElementVNode("button", {
3226
+ class: "btn-tool btn-tool-compact btn-tool-batch-delete",
3227
+ type: "button",
3228
+ onClick: _ctx.deleteSelectedSessions,
3229
+ disabled: _ctx.sessionsLoading || _ctx.sessionDeletingSelected || _ctx.getSelectedBatchCount() === 0,
3230
+ title: _ctx.getSelectedBatchCount() > 0 ? _ctx.t('sessions.batch.deleteSelectedN', { count: _ctx.getSelectedBatchCount() }) : _ctx.t('sessions.batch.emptySelection')
3231
+ }, [
3232
+ (_openBlock(), _createElementBlock("svg", {
3233
+ viewBox: "0 0 24 24",
3234
+ fill: "none",
3235
+ stroke: "currentColor",
3236
+ "stroke-width": "2"
3237
+ }, [
3238
+ _createElementVNode("polyline", { points: "3 6 5 6 21 6" }),
3239
+ _createElementVNode("path", { d: "M7 6V4a2 2 0 012-2h6a2 2 0 012 2v2M10 11v6M14 11v6" }),
3240
+ _createElementVNode("path", { d: "M5 6l1 14a2 2 0 002 2h8a2 2 0 002-2l1-14" })
3241
+ ])),
3242
+ _createElementVNode("span", null, _toDisplayString(_ctx.sessionDeletingSelected ? _ctx.t('sessions.batch.deletingSelected') : (_ctx.getSelectedBatchCount() > 0 ? _ctx.t('sessions.batch.deleteSelectedN', { count: _ctx.getSelectedBatchCount() }) : _ctx.t('sessions.batch.deleteSelected'))), 1 /* TEXT */)
3243
+ ], 8 /* PROPS */, ["onClick", "disabled", "title"]),
3244
+ _createElementVNode("button", {
3245
+ class: "btn-tool btn-tool-compact",
3246
+ type: "button",
3247
+ onClick: _ctx.exitSessionBatchSelectMode,
3248
+ disabled: _ctx.sessionDeletingSelected,
3249
+ title: _ctx.t('sessions.batch.exit')
3250
+ }, _toDisplayString(_ctx.t('sessions.batch.exit')), 9 /* TEXT, PROPS */, ["onClick", "disabled", "title"])
3251
+ ], 64 /* STABLE_FRAGMENT */))
3296
3252
  ])
3297
3253
  ]),
3298
3254
  (_ctx.hasActiveSessionFilters())
@@ -3339,7 +3295,7 @@ return function render(_ctx, _cache) {
3339
3295
  onScrollPassive: _ctx.onSessionListScroll
3340
3296
  }, [
3341
3297
  (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.visibleSessionsList, (session, __, ___, _cached) => {
3342
- const _memo = ([_ctx.activeSessionExportKey === _ctx.getSessionExportKey(session), session.messageCount, session.updatedAt, session.title, session.sourceLabel, session.cwd, _ctx.isSessionPinned(session), _ctx.sessionsLoading, session.match && session.match.count])
3298
+ const _memo = ([_ctx.activeSessionExportKey === _ctx.getSessionExportKey(session), session.messageCount, session.updatedAt, session.title, session.sourceLabel, session.cwd, _ctx.isSessionPinned(session), _ctx.sessionsLoading, session.match && session.match.count, _ctx.sessionBatchSelectMode, _ctx.isSessionSelectedForBatch(session)])
3343
3299
  if (_cached && _cached.el && _cached.key === session.source + '-' + session.sessionId + '-' + session.filePath && _isMemoSame(_cached, _memo)) return _cached
3344
3300
  const _item = (_openBlock(), _createElementBlock("div", {
3345
3301
  key: session.source + '-' + session.sessionId + '-' + session.filePath,
@@ -3347,7 +3303,9 @@ return function render(_ctx, _cache) {
3347
3303
  'session-item',
3348
3304
  {
3349
3305
  active: _ctx.activeSessionExportKey === _ctx.getSessionExportKey(session),
3350
- pinned: _ctx.isSessionPinned(session)
3306
+ pinned: _ctx.isSessionPinned(session),
3307
+ 'batch-selected': _ctx.sessionBatchSelectMode && _ctx.isSessionSelectedForBatch(session),
3308
+ 'batch-selectable': _ctx.sessionBatchSelectMode
3351
3309
  }
3352
3310
  ]),
3353
3311
  onClick: $event => (_ctx.selectSession(session)),
@@ -3360,6 +3318,24 @@ return function render(_ctx, _cache) {
3360
3318
  "aria-current": _ctx.activeSessionExportKey === _ctx.getSessionExportKey(session) ? 'true' : null
3361
3319
  }, [
3362
3320
  _createElementVNode("div", { class: "session-item-header" }, [
3321
+ (_ctx.sessionBatchSelectMode)
3322
+ ? (_openBlock(), _createElementBlock("label", {
3323
+ key: 0,
3324
+ class: "session-batch-check",
3325
+ onClick: _withModifiers(() => {}, ["stop"]),
3326
+ "data-session-key": _ctx.getSessionExportKey(session)
3327
+ }, [
3328
+ _createElementVNode("input", {
3329
+ type: "checkbox",
3330
+ checked: _ctx.isSessionSelectedForBatch(session),
3331
+ disabled: _ctx.sessionsLoading || _ctx.sessionDeletingSelected || _ctx.sessionDeleting[_ctx.getSessionExportKey(session)] || !_ctx.isSessionBatchSelectable(session),
3332
+ onChange: $event => (_ctx.toggleSessionSelectionForBatch(session)),
3333
+ onClick: _withModifiers(() => {}, ["stop"]),
3334
+ "aria-label": _ctx.t('sessions.batch.select')
3335
+ }, null, 40 /* PROPS, NEED_HYDRATION */, ["checked", "disabled", "onChange", "onClick", "aria-label"]),
3336
+ _createElementVNode("span", { class: "session-batch-check-mark" })
3337
+ ], 8 /* PROPS */, ["onClick", "data-session-key"]))
3338
+ : _createCommentVNode("v-if", true),
3363
3339
  _createElementVNode("div", { class: "session-item-main" }, [
3364
3340
  _createElementVNode("div", { class: "session-item-title" }, _toDisplayString(session.title || session.sessionId), 1 /* TEXT */),
3365
3341
  _createElementVNode("span", { class: "session-count-badge" }, _toDisplayString(session.messageCount == null ? '...' : session.messageCount), 1 /* TEXT */),
@@ -4376,1070 +4352,6 @@ return function render(_ctx, _cache) {
4376
4352
  ], 512 /* NEED_PATCH */), [
4377
4353
  [_vShow, _ctx.mainTab === 'usage']
4378
4354
  ]),
4379
- (_ctx.taskOrchestrationTabEnabled)
4380
- ? _withDirectives((_openBlock(), _createElementBlock("div", {
4381
- key: 0,
4382
- class: "mode-content",
4383
- id: "panel-orchestration",
4384
- "data-active": _ctx.mainTab === 'orchestration' ? 'true' : 'false',
4385
- role: "tabpanel",
4386
- "aria-labelledby": "tab-orchestration"
4387
- }, [
4388
- _createElementVNode("section", { class: "selector-section task-hero-card" }, [
4389
- _createElementVNode("div", { class: "task-hero-main" }, [
4390
- _createElementVNode("div", null, [
4391
- _createElementVNode("div", { class: "task-hero-kicker" }, _toDisplayString(_ctx.t('orchestration.hero.kicker')), 1 /* TEXT */),
4392
- _createElementVNode("div", { class: "selector-title" }, _toDisplayString(_ctx.t('orchestration.hero.title')), 1 /* TEXT */),
4393
- _createElementVNode("div", { class: "skills-panel-note task-hero-copy" }, _toDisplayString(_ctx.t('orchestration.hero.subtitle')), 1 /* TEXT */)
4394
- ]),
4395
- _createElementVNode("div", { class: "task-hero-actions settings-tab-actions task-header-actions" }, [
4396
- _createElementVNode("button", {
4397
- type: "button",
4398
- class: "btn-tool btn-tool-compact",
4399
- onClick: $event => (_ctx.loadTaskOrchestrationOverview({ forceRefresh: true, includeDetail: true })),
4400
- disabled: _ctx.taskOrchestration.loading
4401
- }, _toDisplayString(_ctx.taskOrchestration.loading ? _ctx.t('common.refreshing') : _ctx.t('common.refresh')), 9 /* TEXT, PROPS */, ["onClick", "disabled"]),
4402
- _createElementVNode("button", {
4403
- type: "button",
4404
- class: "btn-tool btn-tool-compact",
4405
- onClick: $event => (_ctx.resetTaskOrchestrationDraft()),
4406
- disabled: _ctx.taskOrchestration.running || _ctx.taskOrchestration.queueAdding || _ctx.taskOrchestration.planning
4407
- }, _toDisplayString(_ctx.t('orchestration.draft.reset')), 9 /* TEXT, PROPS */, ["onClick", "disabled"]),
4408
- _createElementVNode("button", {
4409
- type: "button",
4410
- class: "btn-tool btn-tool-compact",
4411
- onClick: $event => (_ctx.switchMainTab('dashboard')),
4412
- disabled: _ctx.loading || !!_ctx.initError
4413
- }, _toDisplayString(_ctx.t('dashboard.doctor.title')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
4414
- ])
4415
- ])
4416
- ]),
4417
- _createElementVNode("div", { class: "task-layout-grid task-layout-grid-primary task-quick-layout" }, [
4418
- _createElementVNode("section", { class: "selector-section task-compose-flow-card task-quick-card" }, [
4419
- _createElementVNode("aside", {
4420
- class: "task-project-sidebar",
4421
- "aria-label": _ctx.t('orchestration.workspace.aria')
4422
- }, [
4423
- _createElementVNode("div", { class: "task-project-sidebar-head" }, [
4424
- _createElementVNode("div", null, [
4425
- _createElementVNode("div", { class: "task-thread-card-label" }, _toDisplayString(_ctx.t('orchestration.workspace.title')), 1 /* TEXT */),
4426
- _createElementVNode("div", { class: "skills-panel-note" }, _toDisplayString(_ctx.t('orchestration.workspace.subtitle')), 1 /* TEXT */)
4427
- ]),
4428
- _createElementVNode("button", {
4429
- type: "button",
4430
- class: "btn-mini",
4431
- onClick: $event => (_ctx.loadTaskOrchestrationOverview({ forceRefresh: true, includeDetail: true })),
4432
- disabled: _ctx.taskOrchestration.loading
4433
- }, _toDisplayString(_ctx.taskOrchestration.loading ? _ctx.t('common.refreshing') : _ctx.t('common.refresh')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
4434
- ]),
4435
- _createElementVNode("div", {
4436
- class: "task-project-list",
4437
- "aria-label": _ctx.t('orchestration.workspace.selector')
4438
- }, [
4439
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.taskOrchestrationWorkspaceItems, (workspace) => {
4440
- return (_openBlock(), _createElementBlock("button", {
4441
- key: workspace.key,
4442
- type: "button",
4443
- class: _normalizeClass(['task-project-item', { active: workspace.active }]),
4444
- "aria-selected": workspace.active ? 'true' : 'false',
4445
- title: workspace.path ? _ctx.t('orchestration.workspace.pathHidden') : workspace.meta,
4446
- onClick: $event => (_ctx.selectTaskWorkspace(workspace.path))
4447
- }, [
4448
- _createElementVNode("span", { class: "task-project-item-title" }, _toDisplayString(workspace.label), 1 /* TEXT */),
4449
- _createElementVNode("span", { class: "task-project-item-meta" }, _toDisplayString(workspace.path ? _ctx.t('orchestration.workspace.pathHidden') : workspace.meta), 1 /* TEXT */),
4450
- _createElementVNode("span", { class: "task-project-item-stats" }, _toDisplayString(_ctx.t('orchestration.workspace.counts', { runs: workspace.runCount, queue: workspace.queueCount })), 1 /* TEXT */)
4451
- ], 10 /* CLASS, PROPS */, ["aria-selected", "title", "onClick"]))
4452
- }), 128 /* KEYED_FRAGMENT */))
4453
- ], 8 /* PROPS */, ["aria-label"]),
4454
- _createElementVNode("button", {
4455
- type: "button",
4456
- class: "btn-tool btn-primary task-project-new-session",
4457
- onClick: $event => (_ctx.startNewTaskWorkspaceSession())
4458
- }, _toDisplayString(_ctx.t('orchestration.workspace.newSession')), 9 /* TEXT, PROPS */, ["onClick"]),
4459
- _createElementVNode("div", { class: "task-session-inbox" }, [
4460
- _createElementVNode("div", { class: "task-session-inbox-head" }, [
4461
- _createElementVNode("span", { class: "task-readiness-title" }, _toDisplayString(_ctx.t('orchestration.workspace.sessions.title')), 1 /* TEXT */),
4462
- _createElementVNode("span", { class: "pill neutral" }, _toDisplayString(_ctx.taskOrchestrationWorkspaceSessions.length), 1 /* TEXT */)
4463
- ]),
4464
- (!_ctx.taskOrchestrationWorkspaceSessions.length)
4465
- ? (_openBlock(), _createElementBlock("div", {
4466
- key: 0,
4467
- class: "task-empty-state task-session-empty"
4468
- }, [
4469
- _createElementVNode("div", { class: "task-empty-title" }, _toDisplayString(_ctx.t('orchestration.workspace.sessions.empty.title')), 1 /* TEXT */),
4470
- _createElementVNode("div", { class: "task-empty-copy" }, _toDisplayString(_ctx.t('orchestration.workspace.sessions.empty.subtitle')), 1 /* TEXT */)
4471
- ]))
4472
- : _createCommentVNode("v-if", true),
4473
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.taskOrchestrationWorkspaceSessions.slice(0, 8), (session) => {
4474
- return (_openBlock(), _createElementBlock("button", {
4475
- key: session.id,
4476
- type: "button",
4477
- class: "task-session-inbox-item",
4478
- onClick: $event => (_ctx.continueTaskWorkspaceSession(session))
4479
- }, [
4480
- _createElementVNode("span", { class: "task-session-inbox-main" }, [
4481
- _createElementVNode("span", { class: "task-session-inbox-title" }, _toDisplayString(session.type === 'queue' ? _ctx.t('orchestration.workspace.sessions.queueTitle') : _ctx.t('orchestration.workspace.sessions.runTitle')), 1 /* TEXT */),
4482
- _createElementVNode("span", { class: "task-session-inbox-meta" }, _toDisplayString(_ctx.t('orchestration.workspace.sessions.detailsHidden')), 1 /* TEXT */)
4483
- ]),
4484
- _createElementVNode("span", {
4485
- class: _normalizeClass(['pill', _ctx.taskRunStatusTone(session.status)])
4486
- }, _toDisplayString(session.status), 3 /* TEXT, CLASS */)
4487
- ], 8 /* PROPS */, ["onClick"]))
4488
- }), 128 /* KEYED_FRAGMENT */))
4489
- ])
4490
- ], 8 /* PROPS */, ["aria-label"]),
4491
- _createElementVNode("div", { class: "task-quick-main" }, [
4492
- _createElementVNode("div", { class: "task-quick-copy" }, [
4493
- _createElementVNode("div", { class: "task-hero-kicker" }, _toDisplayString(_ctx.t('orchestration.quick.kicker')), 1 /* TEXT */),
4494
- _createElementVNode("div", { class: "selector-title task-quick-title" }, _toDisplayString(_ctx.t('orchestration.quick.title')), 1 /* TEXT */),
4495
- _createElementVNode("div", { class: "skills-panel-note task-hero-copy" }, _toDisplayString(_ctx.t('orchestration.quick.subtitle')), 1 /* TEXT */)
4496
- ]),
4497
- _createElementVNode("section", {
4498
- class: "task-agent-cockpit",
4499
- "aria-label": _ctx.t('orchestration.agent.aria')
4500
- }, [
4501
- _createElementVNode("div", { class: "task-agent-cockpit-head" }, [
4502
- _createElementVNode("div", null, [
4503
- _createElementVNode("div", { class: "task-hero-kicker" }, _toDisplayString(_ctx.t('orchestration.agent.kicker')), 1 /* TEXT */),
4504
- _createElementVNode("div", { class: "selector-title task-agent-title" }, _toDisplayString(_ctx.t('orchestration.agent.title')), 1 /* TEXT */),
4505
- _createElementVNode("div", { class: "skills-panel-note task-agent-copy" }, _toDisplayString(_ctx.t('orchestration.agent.subtitle')), 1 /* TEXT */)
4506
- ]),
4507
- _createElementVNode("span", {
4508
- class: _normalizeClass(['pill', _ctx.taskOrchestration.running || _ctx.taskOrchestration.planning ? 'warn' : (_ctx.taskOrchestrationSelectedRun && _ctx.taskOrchestrationSelectedRun.run ? _ctx.taskRunStatusTone(_ctx.taskOrchestrationSelectedRun.run.status) : 'neutral')])
4509
- }, _toDisplayString(_ctx.taskOrchestration.running ? _ctx.t('orchestration.agent.state.running') : (_ctx.taskOrchestration.planning ? _ctx.t('orchestration.agent.state.planning') : (_ctx.taskOrchestrationSelectedRun && _ctx.taskOrchestrationSelectedRun.run ? _ctx.taskOrchestrationSelectedRun.run.status : _ctx.t('orchestration.agent.state.ready')))), 3 /* TEXT, CLASS */)
4510
- ]),
4511
- _createElementVNode("div", { class: "task-agent-surface-grid" }, [
4512
- _createElementVNode("div", { class: "task-agent-surface-card" }, [
4513
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.agent.surface.workspace')), 1 /* TEXT */),
4514
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestrationWorkspacePath ? _ctx.t('orchestration.privacy.workspace.selected') : _ctx.t('orchestration.chat.context.workspace.auto')), 1 /* TEXT */)
4515
- ]),
4516
- _createElementVNode("div", { class: "task-agent-surface-card" }, [
4517
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.agent.surface.session')), 1 /* TEXT */),
4518
- _createElementVNode("strong", null, _toDisplayString((_ctx.taskOrchestration.threadId.trim() || (_ctx.taskOrchestrationSelectedRun && _ctx.taskOrchestrationSelectedRun.threadId)) ? _ctx.t('orchestration.privacy.thread.selected') : _ctx.t('orchestration.chat.context.thread.auto')), 1 /* TEXT */)
4519
- ]),
4520
- _createElementVNode("div", { class: "task-agent-surface-card" }, [
4521
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.agent.surface.mode')), 1 /* TEXT */),
4522
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestration.selectedEngine === 'workflow' ? _ctx.t('orchestration.engine.workflow') : _ctx.t('orchestration.engine.openaiChat')) + " · " + _toDisplayString(_ctx.taskOrchestration.runMode === 'dry-run' ? _ctx.t('orchestration.runMode.dryRun') : (_ctx.taskOrchestration.runMode === 'read' ? _ctx.t('orchestration.runMode.readOnly') : _ctx.t('orchestration.runMode.write'))), 1 /* TEXT */)
4523
- ]),
4524
- _createElementVNode("div", { class: "task-agent-surface-card" }, [
4525
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.agent.surface.trace')), 1 /* TEXT */),
4526
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestrationWorkspaceRuns.length) + " " + _toDisplayString(_ctx.t('orchestration.agent.surface.runs')) + " · " + _toDisplayString(_ctx.taskOrchestrationWorkspaceQueue.length) + " " + _toDisplayString(_ctx.t('orchestration.agent.surface.queue')), 1 /* TEXT */)
4527
- ])
4528
- ])
4529
- ], 8 /* PROPS */, ["aria-label"]),
4530
- _createElementVNode("div", { class: "task-quick-input-card task-chat-panel" }, [
4531
- _createElementVNode("div", {
4532
- class: "task-chat-thread",
4533
- role: "log",
4534
- "aria-label": _ctx.t('orchestration.chat.thread.aria')
4535
- }, [
4536
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.taskOrchestrationConversationMessages, (message) => {
4537
- return (_openBlock(), _createElementBlock("div", {
4538
- key: message.id,
4539
- class: _normalizeClass(['task-chat-bubble-row', message.role === 'user' ? 'is-user' : 'is-assistant'])
4540
- }, [
4541
- _createElementVNode("div", { class: "task-chat-bubble" }, [
4542
- _createElementVNode("div", { class: "task-chat-bubble-label" }, _toDisplayString(message.label), 1 /* TEXT */),
4543
- _createElementVNode("div", { class: "task-chat-bubble-text" }, _toDisplayString(message.text), 1 /* TEXT */),
4544
- (message.meta)
4545
- ? (_openBlock(), _createElementBlock("div", {
4546
- key: 0,
4547
- class: "task-chat-bubble-meta"
4548
- }, _toDisplayString(message.meta), 1 /* TEXT */))
4549
- : _createCommentVNode("v-if", true)
4550
- ])
4551
- ], 2 /* CLASS */))
4552
- }), 128 /* KEYED_FRAGMENT */)),
4553
- (_ctx.taskOrchestration.plan || _ctx.taskOrchestration.planIssues.length || _ctx.taskOrchestration.planWarnings.length || _ctx.taskOrchestration.lastError)
4554
- ? (_openBlock(), _createElementBlock("div", {
4555
- key: 0,
4556
- class: "task-chat-bubble-row is-user task-thread-plan-request"
4557
- }, [
4558
- _createElementVNode("div", { class: "task-chat-bubble" }, [
4559
- _createElementVNode("div", { class: "task-chat-bubble-label" }, "You · /plan"),
4560
- _createElementVNode("div", { class: "task-chat-bubble-text" }, "/plan " + _toDisplayString(_ctx.taskOrchestration.target), 1 /* TEXT */),
4561
- (_ctx.taskOrchestrationDraftMetrics.followUpCount)
4562
- ? (_openBlock(), _createElementBlock("div", {
4563
- key: 0,
4564
- class: "task-chat-bubble-meta"
4565
- }, _toDisplayString(_ctx.t('orchestration.chat.input.sequenceHint', { count: _ctx.taskOrchestrationDraftMetrics.followUpCount + 1 })), 1 /* TEXT */))
4566
- : _createCommentVNode("v-if", true)
4567
- ])
4568
- ]))
4569
- : _createCommentVNode("v-if", true),
4570
- (_ctx.taskOrchestration.plan || _ctx.taskOrchestration.planIssues.length || _ctx.taskOrchestration.planWarnings.length || _ctx.taskOrchestration.lastError)
4571
- ? (_openBlock(), _createElementBlock("section", {
4572
- key: 1,
4573
- class: "selector-section task-plan-card task-thread-message-card task-thread-plan-card"
4574
- }, [
4575
- _createElementVNode("div", { class: "task-thread-card-label" }, "AI · " + _toDisplayString(_ctx.t('orchestration.plan.title')), 1 /* TEXT */),
4576
- (_ctx.taskOrchestration.lastError)
4577
- ? (_openBlock(), _createElementBlock("div", {
4578
- key: 0,
4579
- class: "task-issue-item"
4580
- }, _toDisplayString(_ctx.taskOrchestration.lastError), 1 /* TEXT */))
4581
- : _createCommentVNode("v-if", true),
4582
- (_ctx.taskOrchestration.plan)
4583
- ? (_openBlock(), _createElementBlock("div", {
4584
- key: 1,
4585
- class: "task-thread-run-summary task-thread-plan-summary"
4586
- }, [
4587
- _createElementVNode("span", { class: "pill configured" }, "/plan"),
4588
- _createElementVNode("span", { class: "task-thread-run-summary-copy" }, _toDisplayString(_ctx.t('orchestration.chat.assistant.planSummary', { nodes: _ctx.taskOrchestration.plan.nodes.length, waves: _ctx.taskOrchestration.plan.waves.length })), 1 /* TEXT */)
4589
- ]))
4590
- : _createCommentVNode("v-if", true),
4591
- (_ctx.taskOrchestration.planIssues.length)
4592
- ? (_openBlock(), _createElementBlock("div", {
4593
- key: 2,
4594
- class: "task-issues-list"
4595
- }, [
4596
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.taskOrchestration.planIssues, (issue) => {
4597
- return (_openBlock(), _createElementBlock("div", {
4598
- key: issue.code + issue.message,
4599
- class: "task-issue-item"
4600
- }, _toDisplayString(issue.message), 1 /* TEXT */))
4601
- }), 128 /* KEYED_FRAGMENT */))
4602
- ]))
4603
- : _createCommentVNode("v-if", true),
4604
- (_ctx.taskOrchestration.planWarnings.length)
4605
- ? (_openBlock(), _createElementBlock("div", {
4606
- key: 3,
4607
- class: "task-warning-list"
4608
- }, [
4609
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.taskOrchestration.planWarnings, (warning) => {
4610
- return (_openBlock(), _createElementBlock("div", {
4611
- key: warning,
4612
- class: "task-warning-item"
4613
- }, _toDisplayString(warning), 1 /* TEXT */))
4614
- }), 128 /* KEYED_FRAGMENT */))
4615
- ]))
4616
- : _createCommentVNode("v-if", true),
4617
- (_ctx.taskOrchestration.plan)
4618
- ? (_openBlock(), _createElementBlock("details", {
4619
- key: 4,
4620
- class: "task-thread-run-details task-thread-plan-details"
4621
- }, [
4622
- _createElementVNode("summary", null, "Plan details"),
4623
- _createElementVNode("div", { class: "task-plan-summary-strip" }, [
4624
- _createElementVNode("div", { class: "task-plan-summary-item" }, [
4625
- _createElementVNode("span", { class: "task-plan-summary-label" }, _toDisplayString(_ctx.t('orchestration.plan.summary.nodes')), 1 /* TEXT */),
4626
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestration.plan.nodes.length), 1 /* TEXT */)
4627
- ]),
4628
- _createElementVNode("div", { class: "task-plan-summary-item" }, [
4629
- _createElementVNode("span", { class: "task-plan-summary-label" }, _toDisplayString(_ctx.t('orchestration.plan.summary.waves')), 1 /* TEXT */),
4630
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestration.plan.waves.length), 1 /* TEXT */)
4631
- ]),
4632
- _createElementVNode("div", { class: "task-plan-summary-item" }, [
4633
- _createElementVNode("span", { class: "task-plan-summary-label" }, _toDisplayString(_ctx.t('orchestration.plan.summary.engine')), 1 /* TEXT */),
4634
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestration.plan.engine), 1 /* TEXT */)
4635
- ]),
4636
- (_ctx.taskOrchestration.plan.threadId)
4637
- ? (_openBlock(), _createElementBlock("div", {
4638
- key: 0,
4639
- class: "task-plan-summary-item"
4640
- }, [
4641
- _createElementVNode("span", { class: "task-plan-summary-label" }, _toDisplayString(_ctx.t('orchestration.plan.summary.threadId')), 1 /* TEXT */),
4642
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestration.plan.threadId), 1 /* TEXT */)
4643
- ]))
4644
- : _createCommentVNode("v-if", true),
4645
- (_ctx.taskOrchestration.plan.cwd)
4646
- ? (_openBlock(), _createElementBlock("div", {
4647
- key: 1,
4648
- class: "task-plan-summary-item"
4649
- }, [
4650
- _createElementVNode("span", { class: "task-plan-summary-label" }, _toDisplayString(_ctx.t('orchestration.plan.summary.cwd')), 1 /* TEXT */),
4651
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestration.plan.cwd), 1 /* TEXT */)
4652
- ]))
4653
- : _createCommentVNode("v-if", true)
4654
- ]),
4655
- _createElementVNode("div", { class: "task-wave-list" }, [
4656
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.taskOrchestration.plan.waves, (wave) => {
4657
- return (_openBlock(), _createElementBlock("div", {
4658
- key: wave.label,
4659
- class: "task-wave-card"
4660
- }, [
4661
- _createElementVNode("div", { class: "task-wave-title" }, _toDisplayString(wave.label), 1 /* TEXT */),
4662
- _createElementVNode("div", { class: "task-wave-nodes" }, _toDisplayString(wave.nodeIds.join(', ')), 1 /* TEXT */)
4663
- ]))
4664
- }), 128 /* KEYED_FRAGMENT */))
4665
- ]),
4666
- _createElementVNode("div", { class: "task-node-list" }, [
4667
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.taskOrchestration.plan.nodes, (node) => {
4668
- return (_openBlock(), _createElementBlock("div", {
4669
- key: node.id,
4670
- class: "task-node-card"
4671
- }, [
4672
- _createElementVNode("div", { class: "task-node-head" }, [
4673
- _createElementVNode("div", null, [
4674
- _createElementVNode("div", { class: "task-node-title" }, _toDisplayString(node.title || node.id), 1 /* TEXT */),
4675
- _createElementVNode("div", { class: "task-node-meta" }, [
4676
- _createTextVNode(_toDisplayString(node.id) + " · " + _toDisplayString(node.kind), 1 /* TEXT */),
4677
- (node.workflowId)
4678
- ? (_openBlock(), _createElementBlock("span", { key: 0 }, " · " + _toDisplayString(node.workflowId), 1 /* TEXT */))
4679
- : _createCommentVNode("v-if", true)
4680
- ])
4681
- ]),
4682
- _createElementVNode("span", {
4683
- class: _normalizeClass(['pill', node.write ? 'configured' : 'empty'])
4684
- }, _toDisplayString(node.write ? _ctx.t('orchestration.plan.node.write') : _ctx.t('orchestration.plan.node.readOnly')), 3 /* TEXT, CLASS */)
4685
- ]),
4686
- _createElementVNode("div", { class: "task-node-deps" }, _toDisplayString(_ctx.t('orchestration.labels.dependencies')) + _toDisplayString(_ctx.formatTaskNodeDependencies(node)), 1 /* TEXT */)
4687
- ]))
4688
- }), 128 /* KEYED_FRAGMENT */))
4689
- ])
4690
- ]))
4691
- : _createCommentVNode("v-if", true)
4692
- ]))
4693
- : _createCommentVNode("v-if", true)
4694
- ], 8 /* PROPS */, ["aria-label"]),
4695
- _createElementVNode("div", { class: "task-thread-composer" }, [
4696
- _createElementVNode("label", { class: "task-quick-target-field task-chat-composer" }, [
4697
- _createElementVNode("span", { class: "selector-label" }, _toDisplayString(_ctx.t('orchestration.chat.input.label')), 1 /* TEXT */),
4698
- _createElementVNode("span", {
4699
- class: "task-composer-prompt-glyph",
4700
- "aria-hidden": "true"
4701
- }, "›"),
4702
- _withDirectives(_createElementVNode("textarea", {
4703
- "onUpdate:modelValue": $event => ((_ctx.taskOrchestration.chatDraft) = $event),
4704
- class: "task-textarea task-textarea-goal task-quick-target",
4705
- rows: "3",
4706
- placeholder: _ctx.t('orchestration.chat.input.placeholder'),
4707
- onKeydown: _withKeys(_withModifiers($event => (_ctx.submitTaskOrchestrationChatMessage()), ["exact","prevent"]), ["enter"])
4708
- }, null, 40 /* PROPS, NEED_HYDRATION */, ["onUpdate:modelValue", "placeholder", "onKeydown"]), [
4709
- [_vModelText, _ctx.taskOrchestration.chatDraft]
4710
- ]),
4711
- _createElementVNode("span", { class: "task-field-hint" }, _toDisplayString(_ctx.t('orchestration.chat.input.hint')), 1 /* TEXT */)
4712
- ]),
4713
- _createElementVNode("div", { class: "task-chat-send-row" }, [
4714
- _createElementVNode("div", { class: "task-chat-action-buttons task-chat-primary-action" }, [
4715
- _createElementVNode("button", {
4716
- type: "button",
4717
- class: "btn-tool btn-primary task-chat-primary-button",
4718
- onClick: $event => (_ctx.planAndRunTaskOrchestrationFromChat()),
4719
- disabled: _ctx.taskOrchestration.running || _ctx.taskOrchestration.planning || (!_ctx.taskOrchestration.target.trim() && !_ctx.taskOrchestration.chatDraft.trim())
4720
- }, _toDisplayString(_ctx.taskOrchestration.running ? _ctx.t('orchestration.actions.processing') : (_ctx.taskOrchestration.planning ? _ctx.t('orchestration.actions.planning') : _ctx.t('orchestration.chat.input.work'))), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
4721
- ]),
4722
- _createElementVNode("span", { class: "task-field-hint" }, _toDisplayString(_ctx.taskOrchestrationDraftMetrics.hasTarget ? _ctx.t('orchestration.chat.input.sequenceHint', { count: _ctx.taskOrchestrationDraftMetrics.followUpCount + 2 }) : _ctx.t('orchestration.chat.input.workHint')), 1 /* TEXT */)
4723
- ]),
4724
- _createElementVNode("div", { class: "task-chat-execute-caption" }, _toDisplayString(_ctx.t('orchestration.chat.input.workCaption')), 1 /* TEXT */),
4725
- _createElementVNode("div", {
4726
- class: "task-chat-context-row task-chat-context-row-primary",
4727
- role: "group",
4728
- "aria-label": _ctx.t('orchestration.chat.context.aria')
4729
- }, [
4730
- _createElementVNode("span", { class: "task-chat-context-chip task-chat-context-chip-strong" }, [
4731
- _createElementVNode("small", null, _toDisplayString(_ctx.t('orchestration.plan.summary.cwd')), 1 /* TEXT */),
4732
- _createElementVNode("strong", null, _toDisplayString((_ctx.taskOrchestrationWorkspacePath || _ctx.taskOrchestration.workspacePath.trim()) ? _ctx.t('orchestration.privacy.workspace.selected') : _ctx.t('orchestration.chat.context.workspace.auto')), 1 /* TEXT */)
4733
- ]),
4734
- _createElementVNode("span", { class: "task-chat-context-chip task-chat-context-chip-strong" }, [
4735
- _createElementVNode("small", null, _toDisplayString(_ctx.t('orchestration.plan.summary.threadId')), 1 /* TEXT */),
4736
- _createElementVNode("strong", null, _toDisplayString((_ctx.taskOrchestration.threadId.trim() || (_ctx.taskOrchestrationSelectedRun && _ctx.taskOrchestrationSelectedRun.threadId)) ? _ctx.t('orchestration.privacy.thread.selected') : _ctx.t('orchestration.chat.context.thread.auto')), 1 /* TEXT */)
4737
- ]),
4738
- _createElementVNode("span", { class: "task-chat-context-chip" }, _toDisplayString(_ctx.taskOrchestrationDraftMetrics.hasTarget ? _ctx.t('orchestration.chat.context.sequence.value', { count: _ctx.taskOrchestrationDraftMetrics.requestCount }) : _ctx.t('orchestration.chat.context.sequence.empty')), 1 /* TEXT */),
4739
- _createElementVNode("span", { class: "task-chat-context-chip" }, _toDisplayString(_ctx.taskOrchestration.runMode === 'dry-run' ? _ctx.t('orchestration.runMode.dryRun') : (_ctx.taskOrchestration.runMode === 'read' ? _ctx.t('orchestration.runMode.readOnly') : _ctx.t('orchestration.runMode.write') )), 1 /* TEXT */),
4740
- _createElementVNode("button", {
4741
- type: "button",
4742
- class: "task-chat-context-chip task-chat-context-action",
4743
- onClick: $event => (_ctx.taskOrchestration.settingsOpen = true)
4744
- }, _toDisplayString(_ctx.t('orchestration.advanced.open')), 9 /* TEXT, PROPS */, ["onClick"])
4745
- ], 8 /* PROPS */, ["aria-label"]),
4746
- _createElementVNode("div", { class: "task-action-caption" }, _toDisplayString(_ctx.t('orchestration.quick.caption')), 1 /* TEXT */)
4747
- ])
4748
- ])
4749
- ]),
4750
- _createElementVNode("aside", { class: "task-quick-side-card" }, [
4751
- _createElementVNode("section", { class: "selector-section task-workbench-card task-side-workbench-card" }, [
4752
- _createElementVNode("div", { class: "task-thread-card-label" }, _toDisplayString(_ctx.t('orchestration.workbench.title')), 1 /* TEXT */),
4753
- _createElementVNode("div", { class: "task-thread-run-summary" }, [
4754
- (_ctx.taskOrchestrationSelectedRun && _ctx.taskOrchestrationSelectedRun.run)
4755
- ? (_openBlock(), _createElementBlock("span", {
4756
- key: 0,
4757
- class: _normalizeClass(['pill', _ctx.taskRunStatusTone(_ctx.taskOrchestrationSelectedRun.run.status)])
4758
- }, _toDisplayString(_ctx.taskOrchestrationSelectedRun.run.status), 3 /* TEXT, CLASS */))
4759
- : (_ctx.taskOrchestrationWorkspaceRuns.length)
4760
- ? (_openBlock(), _createElementBlock("span", {
4761
- key: 1,
4762
- class: _normalizeClass(['pill', _ctx.taskRunStatusTone(_ctx.taskOrchestrationWorkspaceRuns[0].status)])
4763
- }, _toDisplayString(_ctx.taskOrchestrationWorkspaceRuns[0].status), 3 /* TEXT, CLASS */))
4764
- : (_ctx.taskOrchestrationWorkspaceQueue.length)
4765
- ? (_openBlock(), _createElementBlock("span", {
4766
- key: 2,
4767
- class: "pill neutral"
4768
- }, _toDisplayString(_ctx.t('orchestration.workbench.queueCount', { count: _ctx.taskOrchestrationWorkspaceQueue.length })), 1 /* TEXT */))
4769
- : (_openBlock(), _createElementBlock("span", {
4770
- key: 3,
4771
- class: "pill empty"
4772
- }, _toDisplayString(_ctx.t('orchestration.workbench.ready')), 1 /* TEXT */)),
4773
- (_ctx.taskOrchestrationSelectedRun && _ctx.taskOrchestrationSelectedRun.run)
4774
- ? (_openBlock(), _createElementBlock("span", {
4775
- key: 4,
4776
- class: "task-thread-run-summary-copy"
4777
- }, _toDisplayString(_ctx.taskOrchestrationSelectedRun.run.summary || _ctx.taskOrchestrationSelectedRun.run.runId || _ctx.taskOrchestration.selectedRunId), 1 /* TEXT */))
4778
- : (_ctx.taskOrchestrationWorkspaceRuns.length)
4779
- ? (_openBlock(), _createElementBlock("span", {
4780
- key: 5,
4781
- class: "task-thread-run-summary-copy"
4782
- }, _toDisplayString(_ctx.taskOrchestrationWorkspaceRuns[0].summary || _ctx.taskOrchestrationWorkspaceRuns[0].runId), 1 /* TEXT */))
4783
- : (_ctx.taskOrchestrationWorkspaceQueue.length)
4784
- ? (_openBlock(), _createElementBlock("span", {
4785
- key: 6,
4786
- class: "task-thread-run-summary-copy"
4787
- }, _toDisplayString(_ctx.taskOrchestrationWorkspaceQueue[0].title || _ctx.taskOrchestrationWorkspaceQueue[0].target || _ctx.taskOrchestrationWorkspaceQueue[0].taskId), 1 /* TEXT */))
4788
- : (_openBlock(), _createElementBlock("span", {
4789
- key: 7,
4790
- class: "task-thread-run-summary-copy"
4791
- }, _toDisplayString(_ctx.t('orchestration.workbench.subtitle')), 1 /* TEXT */))
4792
- ]),
4793
- _createElementVNode("details", {
4794
- class: "task-thread-run-details",
4795
- open: ""
4796
- }, [
4797
- _createElementVNode("summary", null, _toDisplayString(_ctx.t('orchestration.agent.trace.title')), 1 /* TEXT */),
4798
- _createElementVNode("div", { class: "settings-tab-actions task-header-actions task-thread-detail-actions" }, [
4799
- _createElementVNode("button", {
4800
- type: "button",
4801
- class: "btn-tool btn-tool-compact",
4802
- onClick: $event => (_ctx.loadTaskOrchestrationOverview({ forceRefresh: true, includeDetail: true })),
4803
- disabled: _ctx.taskOrchestration.loading
4804
- }, _toDisplayString(_ctx.taskOrchestration.loading ? _ctx.t('common.refreshing') : _ctx.t('common.refresh')), 9 /* TEXT, PROPS */, ["onClick", "disabled"]),
4805
- (_ctx.taskOrchestrationWorkspaceQueue.length)
4806
- ? (_openBlock(), _createElementBlock("button", {
4807
- key: 0,
4808
- type: "button",
4809
- class: "btn-tool btn-tool-compact",
4810
- onClick: $event => (_ctx.startTaskQueueRunner()),
4811
- disabled: _ctx.taskOrchestration.queueStarting
4812
- }, _toDisplayString(_ctx.taskOrchestration.queueStarting ? _ctx.t('orchestration.queue.starting') : _ctx.t('orchestration.queue.start')), 9 /* TEXT, PROPS */, ["onClick", "disabled"]))
4813
- : _createCommentVNode("v-if", true)
4814
- ]),
4815
- _createElementVNode("div", { class: "task-agent-trace-grid" }, [
4816
- _createElementVNode("div", { class: "task-agent-trace-card" }, [
4817
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.agent.trace.plan')), 1 /* TEXT */),
4818
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestration.plan ? _ctx.taskOrchestration.plan.nodes.length : 0), 1 /* TEXT */)
4819
- ]),
4820
- _createElementVNode("div", { class: "task-agent-trace-card" }, [
4821
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.agent.trace.queue')), 1 /* TEXT */),
4822
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestrationWorkspaceQueue.length), 1 /* TEXT */)
4823
- ]),
4824
- _createElementVNode("div", { class: "task-agent-trace-card" }, [
4825
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.agent.trace.runs')), 1 /* TEXT */),
4826
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestrationWorkspaceRuns.length), 1 /* TEXT */)
4827
- ]),
4828
- _createElementVNode("div", { class: "task-agent-trace-card" }, [
4829
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.agent.trace.nodes')), 1 /* TEXT */),
4830
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestrationSelectedRunNodes.length), 1 /* TEXT */)
4831
- ])
4832
- ]),
4833
- ((_ctx.taskOrchestrationWorkspaceQueue.length ? 1 : 0) + (_ctx.taskOrchestrationWorkspaceRuns.length ? 1 : 0) + ((_ctx.taskOrchestration.selectedRunId || _ctx.taskOrchestration.selectedRunError) ? 1 : 0) > 1)
4834
- ? (_openBlock(), _createElementBlock("div", {
4835
- key: 0,
4836
- class: "task-workbench-tabs",
4837
- role: "group",
4838
- "aria-label": _ctx.t('orchestration.workbench.tabs.aria')
4839
- }, [
4840
- (_ctx.taskOrchestrationWorkspaceQueue.length)
4841
- ? (_openBlock(), _createElementBlock("button", {
4842
- key: 0,
4843
- type: "button",
4844
- class: _normalizeClass(["task-workbench-tab", { active: _ctx.taskOrchestration.workspaceTab === 'queue' }]),
4845
- onClick: $event => (_ctx.taskOrchestration.workspaceTab = 'queue')
4846
- }, _toDisplayString(_ctx.t('orchestration.workbench.tabs.queue', { count: _ctx.taskOrchestrationWorkspaceQueue.length })), 11 /* TEXT, CLASS, PROPS */, ["onClick"]))
4847
- : _createCommentVNode("v-if", true),
4848
- (_ctx.taskOrchestrationWorkspaceRuns.length)
4849
- ? (_openBlock(), _createElementBlock("button", {
4850
- key: 1,
4851
- type: "button",
4852
- class: _normalizeClass(["task-workbench-tab", { active: _ctx.taskOrchestration.workspaceTab === 'runs' }]),
4853
- onClick: $event => (_ctx.taskOrchestration.workspaceTab = 'runs')
4854
- }, _toDisplayString(_ctx.t('orchestration.workbench.tabs.runs', { count: _ctx.taskOrchestrationWorkspaceRuns.length })), 11 /* TEXT, CLASS, PROPS */, ["onClick"]))
4855
- : _createCommentVNode("v-if", true),
4856
- (_ctx.taskOrchestration.selectedRunId || _ctx.taskOrchestration.selectedRunError)
4857
- ? (_openBlock(), _createElementBlock("button", {
4858
- key: 2,
4859
- type: "button",
4860
- class: _normalizeClass(["task-workbench-tab", { active: _ctx.taskOrchestration.workspaceTab === 'detail' }]),
4861
- onClick: $event => (_ctx.taskOrchestration.workspaceTab = 'detail')
4862
- }, _toDisplayString(_ctx.t('orchestration.workbench.tabs.detail')), 11 /* TEXT, CLASS, PROPS */, ["onClick"]))
4863
- : _createCommentVNode("v-if", true)
4864
- ], 8 /* PROPS */, ["aria-label"]))
4865
- : _createCommentVNode("v-if", true),
4866
- ((_ctx.taskOrchestrationWorkspaceQueue.length && _ctx.taskOrchestration.workspaceTab === 'queue') || (!_ctx.taskOrchestrationWorkspaceRuns.length && !_ctx.taskOrchestration.selectedRunId && !_ctx.taskOrchestration.selectedRunError))
4867
- ? (_openBlock(), _createElementBlock("div", {
4868
- key: 1,
4869
- class: "task-workbench-panel"
4870
- }, [
4871
- (!_ctx.taskOrchestrationWorkspaceQueue.length)
4872
- ? (_openBlock(), _createElementBlock("div", {
4873
- key: 0,
4874
- class: "task-empty-state"
4875
- }, [
4876
- _createElementVNode("div", { class: "task-empty-title" }, _toDisplayString(_ctx.t('orchestration.queue.empty.title')), 1 /* TEXT */),
4877
- _createElementVNode("div", { class: "task-empty-copy" }, _toDisplayString(_ctx.t('orchestration.queue.empty.subtitle')), 1 /* TEXT */)
4878
- ]))
4879
- : (_openBlock(), _createElementBlock("div", {
4880
- key: 1,
4881
- class: "task-runtime-list"
4882
- }, [
4883
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.taskOrchestrationWorkspaceQueue, (item) => {
4884
- return (_openBlock(), _createElementBlock("div", {
4885
- key: item.taskId,
4886
- class: _normalizeClass(['task-runtime-item', { active: item.lastRunId && _ctx.taskOrchestration.selectedRunId === item.lastRunId, clickable: !!item.lastRunId }]),
4887
- role: item.lastRunId ? 'button' : null,
4888
- tabindex: item.lastRunId ? 0 : -1,
4889
- "aria-disabled": item.lastRunId ? null : 'true',
4890
- onClick: $event => (item.lastRunId ? (_ctx.taskOrchestration.workspaceTab = 'detail', _ctx.selectTaskRun(item.lastRunId)) : null),
4891
- onKeydown: [
4892
- _withKeys(_withModifiers($event => (item.lastRunId ? (_ctx.taskOrchestration.workspaceTab = 'detail', _ctx.selectTaskRun(item.lastRunId)) : null), ["self","prevent"]), ["enter"]),
4893
- _withKeys(_withModifiers($event => (item.lastRunId ? (_ctx.taskOrchestration.workspaceTab = 'detail', _ctx.selectTaskRun(item.lastRunId)) : null), ["self","prevent"]), ["space"])
4894
- ]
4895
- }, [
4896
- _createElementVNode("div", { class: "task-runtime-item-main" }, [
4897
- _createElementVNode("div", { class: "task-runtime-item-title" }, _toDisplayString(item.title || item.target || item.taskId), 1 /* TEXT */),
4898
- _createElementVNode("div", { class: "task-runtime-item-meta" }, _toDisplayString(item.taskId) + " · " + _toDisplayString(item.updatedAt || item.createdAt), 1 /* TEXT */),
4899
- (item.threadId || item.cwd)
4900
- ? (_openBlock(), _createElementBlock("div", {
4901
- key: 0,
4902
- class: "task-runtime-item-meta"
4903
- }, [
4904
- (item.threadId)
4905
- ? (_openBlock(), _createElementBlock("span", { key: 0 }, _toDisplayString(_ctx.t('orchestration.plan.summary.threadId')) + ": " + _toDisplayString(item.threadId), 1 /* TEXT */))
4906
- : _createCommentVNode("v-if", true),
4907
- (item.threadId && item.cwd)
4908
- ? (_openBlock(), _createElementBlock("span", { key: 1 }, " · "))
4909
- : _createCommentVNode("v-if", true),
4910
- (item.cwd)
4911
- ? (_openBlock(), _createElementBlock("span", { key: 2 }, _toDisplayString(_ctx.t('orchestration.plan.summary.cwd')) + ": " + _toDisplayString(item.cwd), 1 /* TEXT */))
4912
- : _createCommentVNode("v-if", true)
4913
- ]))
4914
- : _createCommentVNode("v-if", true),
4915
- (item.lastSummary)
4916
- ? (_openBlock(), _createElementBlock("div", {
4917
- key: 1,
4918
- class: "task-runtime-item-summary"
4919
- }, _toDisplayString(item.lastSummary), 1 /* TEXT */))
4920
- : _createCommentVNode("v-if", true)
4921
- ]),
4922
- _createElementVNode("div", { class: "task-runtime-item-actions" }, [
4923
- _createElementVNode("span", {
4924
- class: _normalizeClass(['pill', _ctx.taskRunStatusTone(item.status || item.runStatus)])
4925
- }, _toDisplayString(item.status || item.runStatus), 3 /* TEXT, CLASS */),
4926
- (_ctx.isTaskRunActive(item.status || item.runStatus))
4927
- ? (_openBlock(), _createElementBlock("button", {
4928
- key: 0,
4929
- type: "button",
4930
- class: "btn-mini",
4931
- onClick: _withModifiers($event => (_ctx.cancelTaskRunFromUi(item.taskId)), ["stop"])
4932
- }, _toDisplayString(_ctx.t('common.cancel')), 9 /* TEXT, PROPS */, ["onClick"]))
4933
- : _createCommentVNode("v-if", true)
4934
- ])
4935
- ], 42 /* CLASS, PROPS, NEED_HYDRATION */, ["role", "tabindex", "aria-disabled", "onClick", "onKeydown"]))
4936
- }), 128 /* KEYED_FRAGMENT */))
4937
- ]))
4938
- ]))
4939
- : (_ctx.taskOrchestration.workspaceTab === 'runs' || (!_ctx.taskOrchestrationWorkspaceQueue.length && _ctx.taskOrchestrationWorkspaceRuns.length && !_ctx.taskOrchestration.selectedRunId && !_ctx.taskOrchestration.selectedRunError))
4940
- ? (_openBlock(), _createElementBlock("div", {
4941
- key: 2,
4942
- class: "task-workbench-panel"
4943
- }, [
4944
- (!_ctx.taskOrchestrationWorkspaceRuns.length)
4945
- ? (_openBlock(), _createElementBlock("div", {
4946
- key: 0,
4947
- class: "task-empty-state"
4948
- }, [
4949
- _createElementVNode("div", { class: "task-empty-title" }, _toDisplayString(_ctx.t('orchestration.runs.empty.title')), 1 /* TEXT */),
4950
- _createElementVNode("div", { class: "task-empty-copy" }, _toDisplayString(_ctx.t('orchestration.runs.empty.subtitle')), 1 /* TEXT */)
4951
- ]))
4952
- : (_openBlock(), _createElementBlock("div", {
4953
- key: 1,
4954
- class: "task-runtime-list"
4955
- }, [
4956
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.taskOrchestrationWorkspaceRuns, (item) => {
4957
- return (_openBlock(), _createElementBlock("button", {
4958
- key: item.runId,
4959
- type: "button",
4960
- class: _normalizeClass(['task-runtime-item', { active: _ctx.taskOrchestration.selectedRunId === item.runId }]),
4961
- onClick: $event => {_ctx.taskOrchestration.workspaceTab = 'detail'; _ctx.selectTaskRun(item.runId)}
4962
- }, [
4963
- _createElementVNode("div", { class: "task-runtime-item-main" }, [
4964
- _createElementVNode("div", { class: "task-runtime-item-title" }, _toDisplayString(item.title || item.taskId || item.runId), 1 /* TEXT */),
4965
- _createElementVNode("div", { class: "task-runtime-item-meta" }, _toDisplayString(item.runId) + " · " + _toDisplayString(item.durationMs || 0) + "ms", 1 /* TEXT */),
4966
- (item.threadId || item.cwd)
4967
- ? (_openBlock(), _createElementBlock("div", {
4968
- key: 0,
4969
- class: "task-runtime-item-meta"
4970
- }, [
4971
- (item.threadId)
4972
- ? (_openBlock(), _createElementBlock("span", { key: 0 }, _toDisplayString(_ctx.t('orchestration.plan.summary.threadId')) + ": " + _toDisplayString(item.threadId), 1 /* TEXT */))
4973
- : _createCommentVNode("v-if", true),
4974
- (item.threadId && item.cwd)
4975
- ? (_openBlock(), _createElementBlock("span", { key: 1 }, " · "))
4976
- : _createCommentVNode("v-if", true),
4977
- (item.cwd)
4978
- ? (_openBlock(), _createElementBlock("span", { key: 2 }, _toDisplayString(_ctx.t('orchestration.plan.summary.cwd')) + ": " + _toDisplayString(item.cwd), 1 /* TEXT */))
4979
- : _createCommentVNode("v-if", true)
4980
- ]))
4981
- : _createCommentVNode("v-if", true),
4982
- (item.summary)
4983
- ? (_openBlock(), _createElementBlock("div", {
4984
- key: 1,
4985
- class: "task-runtime-item-summary"
4986
- }, _toDisplayString(item.summary), 1 /* TEXT */))
4987
- : _createCommentVNode("v-if", true)
4988
- ]),
4989
- _createElementVNode("div", { class: "task-runtime-item-actions" }, [
4990
- _createElementVNode("span", {
4991
- class: _normalizeClass(['pill', _ctx.taskRunStatusTone(item.status)])
4992
- }, _toDisplayString(item.status), 3 /* TEXT, CLASS */)
4993
- ])
4994
- ], 10 /* CLASS, PROPS */, ["onClick"]))
4995
- }), 128 /* KEYED_FRAGMENT */))
4996
- ]))
4997
- ]))
4998
- : (_openBlock(), _createElementBlock("div", {
4999
- key: 3,
5000
- class: "task-workbench-panel"
5001
- }, [
5002
- _createElementVNode("div", { class: "task-detail-toolbar settings-tab-actions" }, [
5003
- _createElementVNode("button", {
5004
- type: "button",
5005
- class: "btn-tool btn-tool-compact",
5006
- onClick: $event => (_ctx.taskOrchestration.selectedRunId ? _ctx.loadTaskRunDetail(_ctx.taskOrchestration.selectedRunId) : null),
5007
- disabled: !_ctx.taskOrchestration.selectedRunId || _ctx.taskOrchestration.selectedRunLoading
5008
- }, _toDisplayString(_ctx.taskOrchestration.selectedRunLoading ? _ctx.t('common.refreshing') : _ctx.t('orchestration.detail.refresh')), 9 /* TEXT, PROPS */, ["onClick", "disabled"]),
5009
- _createElementVNode("button", {
5010
- type: "button",
5011
- class: "btn-tool btn-tool-compact",
5012
- onClick: $event => (_ctx.retryTaskRunFromUi(_ctx.taskOrchestration.selectedRunId)),
5013
- disabled: !_ctx.taskOrchestration.selectedRunId || _ctx.taskOrchestration.retrying
5014
- }, _toDisplayString(_ctx.taskOrchestration.retrying ? _ctx.t('orchestration.detail.retrying') : _ctx.t('orchestration.detail.retry')), 9 /* TEXT, PROPS */, ["onClick", "disabled"]),
5015
- _createElementVNode("button", {
5016
- type: "button",
5017
- class: "btn-tool btn-tool-compact",
5018
- onClick: _ctx.continueTaskThreadFromUi,
5019
- disabled: !_ctx.taskOrchestrationSelectedRun
5020
- }, _toDisplayString(_ctx.t('orchestration.detail.continueThread')), 9 /* TEXT, PROPS */, ["onClick", "disabled"]),
5021
- (_ctx.taskOrchestrationSelectedRun && _ctx.taskOrchestrationSelectedRun.run && _ctx.isTaskRunActive(_ctx.taskOrchestrationSelectedRun.run.status))
5022
- ? (_openBlock(), _createElementBlock("button", {
5023
- key: 0,
5024
- type: "button",
5025
- class: "btn-tool btn-tool-compact",
5026
- onClick: $event => (_ctx.cancelTaskRunFromUi(_ctx.taskOrchestration.selectedRunId))
5027
- }, _toDisplayString(_ctx.t('common.cancel')), 9 /* TEXT, PROPS */, ["onClick"]))
5028
- : _createCommentVNode("v-if", true)
5029
- ]),
5030
- (_ctx.taskOrchestration.selectedRunError)
5031
- ? (_openBlock(), _createElementBlock("div", {
5032
- key: 0,
5033
- class: "task-issue-item"
5034
- }, _toDisplayString(_ctx.taskOrchestration.selectedRunError), 1 /* TEXT */))
5035
- : _createCommentVNode("v-if", true),
5036
- (!_ctx.taskOrchestrationSelectedRun)
5037
- ? (_openBlock(), _createElementBlock("div", {
5038
- key: 1,
5039
- class: "task-empty-state"
5040
- }, [
5041
- _createElementVNode("div", { class: "task-empty-title" }, _toDisplayString(_ctx.t('orchestration.detail.empty.title')), 1 /* TEXT */),
5042
- _createElementVNode("div", { class: "task-empty-copy" }, _toDisplayString(_ctx.t('orchestration.detail.empty.subtitle')), 1 /* TEXT */)
5043
- ]))
5044
- : (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [
5045
- _createElementVNode("div", { class: "task-detail-summary-strip" }, [
5046
- _createElementVNode("div", { class: "task-plan-summary-item" }, [
5047
- _createElementVNode("span", { class: "task-plan-summary-label" }, _toDisplayString(_ctx.t('orchestration.detail.summary.status')), 1 /* TEXT */),
5048
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestrationSelectedRun.run.status), 1 /* TEXT */)
5049
- ]),
5050
- _createElementVNode("div", { class: "task-plan-summary-item" }, [
5051
- _createElementVNode("span", { class: "task-plan-summary-label" }, _toDisplayString(_ctx.t('orchestration.detail.summary.duration')), 1 /* TEXT */),
5052
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestrationSelectedRun.run.durationMs || 0) + "ms", 1 /* TEXT */)
5053
- ]),
5054
- _createElementVNode("div", { class: "task-plan-summary-item" }, [
5055
- _createElementVNode("span", { class: "task-plan-summary-label" }, _toDisplayString(_ctx.t('orchestration.detail.summary.nodes')), 1 /* TEXT */),
5056
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestrationSelectedRunNodes.length), 1 /* TEXT */)
5057
- ]),
5058
- _createElementVNode("div", { class: "task-plan-summary-item" }, [
5059
- _createElementVNode("span", { class: "task-plan-summary-label" }, _toDisplayString(_ctx.t('orchestration.detail.summary.summary')), 1 /* TEXT */),
5060
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestrationSelectedRun.run.summary || _ctx.t('common.none')), 1 /* TEXT */)
5061
- ]),
5062
- (_ctx.taskOrchestrationSelectedRun.threadId)
5063
- ? (_openBlock(), _createElementBlock("div", {
5064
- key: 0,
5065
- class: "task-plan-summary-item"
5066
- }, [
5067
- _createElementVNode("span", { class: "task-plan-summary-label" }, _toDisplayString(_ctx.t('orchestration.plan.summary.threadId')), 1 /* TEXT */),
5068
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestrationSelectedRun.threadId), 1 /* TEXT */)
5069
- ]))
5070
- : _createCommentVNode("v-if", true),
5071
- (_ctx.taskOrchestrationSelectedRun.cwd)
5072
- ? (_openBlock(), _createElementBlock("div", {
5073
- key: 1,
5074
- class: "task-plan-summary-item"
5075
- }, [
5076
- _createElementVNode("span", { class: "task-plan-summary-label" }, _toDisplayString(_ctx.t('orchestration.plan.summary.cwd')), 1 /* TEXT */),
5077
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestrationSelectedRun.cwd), 1 /* TEXT */)
5078
- ]))
5079
- : _createCommentVNode("v-if", true)
5080
- ]),
5081
- (_ctx.taskOrchestrationSelectedRun.run.error)
5082
- ? (_openBlock(), _createElementBlock("div", {
5083
- key: 0,
5084
- class: "task-issue-item"
5085
- }, _toDisplayString(_ctx.taskOrchestrationSelectedRun.run.error), 1 /* TEXT */))
5086
- : _createCommentVNode("v-if", true),
5087
- _createElementVNode("div", { class: "task-node-list" }, [
5088
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.taskOrchestrationSelectedRunNodes, (node) => {
5089
- return (_openBlock(), _createElementBlock("div", {
5090
- key: node.id,
5091
- class: "task-node-card task-node-card-detail"
5092
- }, [
5093
- _createElementVNode("div", { class: "task-node-head" }, [
5094
- _createElementVNode("div", null, [
5095
- _createElementVNode("div", { class: "task-node-title" }, _toDisplayString(node.title || node.id), 1 /* TEXT */),
5096
- _createElementVNode("div", { class: "task-node-meta" }, _toDisplayString(_ctx.t('orchestration.detail.node.meta', { id: node.id, attempts: (node.attemptCount || 0), autoFix: (node.autoFixRounds || 0) })), 1 /* TEXT */)
5097
- ]),
5098
- _createElementVNode("span", {
5099
- class: _normalizeClass(['pill', _ctx.taskRunStatusTone(node.status)])
5100
- }, _toDisplayString(node.status), 3 /* TEXT, CLASS */)
5101
- ]),
5102
- (node.summary)
5103
- ? (_openBlock(), _createElementBlock("div", {
5104
- key: 0,
5105
- class: "task-runtime-item-summary"
5106
- }, _toDisplayString(node.summary), 1 /* TEXT */))
5107
- : _createCommentVNode("v-if", true),
5108
- (node.error && node.error !== node.summary)
5109
- ? (_openBlock(), _createElementBlock("div", {
5110
- key: 1,
5111
- class: "task-node-deps"
5112
- }, _toDisplayString(_ctx.t('orchestration.labels.error')) + _toDisplayString(node.error), 1 /* TEXT */))
5113
- : _createCommentVNode("v-if", true),
5114
- _createElementVNode("div", { class: "task-node-deps" }, _toDisplayString(_ctx.t('orchestration.labels.dependencies')) + _toDisplayString(_ctx.formatTaskNodeDependencies(node)), 1 /* TEXT */),
5115
- (node.output && typeof node.output === 'object')
5116
- ? (_openBlock(), _createElementBlock("div", {
5117
- key: 2,
5118
- class: "task-node-output-card"
5119
- }, [
5120
- _createElementVNode("div", { class: "task-node-output-head" }, [
5121
- _createElementVNode("strong", null, _toDisplayString(_ctx.t('orchestration.detail.node.output')), 1 /* TEXT */),
5122
- (node.output.provider || node.output.model)
5123
- ? (_openBlock(), _createElementBlock("span", {
5124
- key: 0,
5125
- class: "task-node-output-meta"
5126
- }, [
5127
- _createTextVNode(_toDisplayString(node.output.provider || ''), 1 /* TEXT */),
5128
- (node.output.provider && node.output.model)
5129
- ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [
5130
- _createTextVNode(" · ")
5131
- ], 64 /* STABLE_FRAGMENT */))
5132
- : _createCommentVNode("v-if", true),
5133
- _createTextVNode(_toDisplayString(node.output.model || ''), 1 /* TEXT */)
5134
- ]))
5135
- : _createCommentVNode("v-if", true)
5136
- ]),
5137
- _createElementVNode("div", { class: "task-node-output-facts" }, [
5138
- (node.output.endpoint)
5139
- ? (_openBlock(), _createElementBlock("span", { key: 0 }, _toDisplayString(_ctx.t('orchestration.detail.node.endpoint')) + _toDisplayString(node.output.endpoint), 1 /* TEXT */))
5140
- : _createCommentVNode("v-if", true),
5141
- (node.output.status)
5142
- ? (_openBlock(), _createElementBlock("span", { key: 1 }, "HTTP " + _toDisplayString(node.output.status), 1 /* TEXT */))
5143
- : _createCommentVNode("v-if", true),
5144
- (node.output.durationMs)
5145
- ? (_openBlock(), _createElementBlock("span", { key: 2 }, _toDisplayString(node.output.durationMs) + "ms", 1 /* TEXT */))
5146
- : _createCommentVNode("v-if", true)
5147
- ]),
5148
- _createElementVNode("pre", { class: "task-log-block task-output-block" }, _toDisplayString(_ctx.formatTaskNodeOutputText(node)), 1 /* TEXT */),
5149
- (node.output.materializedFiles && node.output.materializedFiles.length)
5150
- ? (_openBlock(), _createElementBlock("div", {
5151
- key: 0,
5152
- class: "task-materialized-files"
5153
- }, [
5154
- _createElementVNode("div", { class: "task-node-deps" }, _toDisplayString(_ctx.t('orchestration.detail.node.materializedFiles')), 1 /* TEXT */),
5155
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(node.output.materializedFiles, (file) => {
5156
- return (_openBlock(), _createElementBlock("div", {
5157
- key: file.path || file.relativePath,
5158
- class: "task-materialized-file"
5159
- }, _toDisplayString(file.relativePath || file.path) + " · " + _toDisplayString(file.bytes || 0) + " bytes", 1 /* TEXT */))
5160
- }), 128 /* KEYED_FRAGMENT */))
5161
- ]))
5162
- : _createCommentVNode("v-if", true),
5163
- (node.output.workspaceFiles && node.output.workspaceFiles.length)
5164
- ? (_openBlock(), _createElementBlock("div", {
5165
- key: 1,
5166
- class: "task-materialized-files task-workspace-files"
5167
- }, [
5168
- _createElementVNode("div", { class: "task-node-deps" }, _toDisplayString(_ctx.t('orchestration.detail.node.workspaceFiles')), 1 /* TEXT */),
5169
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(node.output.workspaceFiles, (file) => {
5170
- return (_openBlock(), _createElementBlock("div", {
5171
- key: file.path || file.relativePath,
5172
- class: "task-materialized-file"
5173
- }, _toDisplayString([String(file.operation || '').trim().toUpperCase(), String(file.relativePath || file.path || '').trim(), Number.isFinite(Number(file.bytes)) ? (Number(file.bytes) + ' bytes') : '', typeof file.existed === 'boolean' ? (file.existed ? 'existed' : 'new') : ''].filter(Boolean).join(' · ')), 1 /* TEXT */))
5174
- }), 128 /* KEYED_FRAGMENT */))
5175
- ]))
5176
- : _createCommentVNode("v-if", true)
5177
- ]))
5178
- : _createCommentVNode("v-if", true),
5179
- _createElementVNode("pre", { class: "task-log-block" }, _toDisplayString(_ctx.formatTaskNodeLogs(node.logs)), 1 /* TEXT */)
5180
- ]))
5181
- }), 128 /* KEYED_FRAGMENT */))
5182
- ])
5183
- ], 64 /* STABLE_FRAGMENT */))
5184
- ]))
5185
- ])
5186
- ]),
5187
- _createElementVNode("details", {
5188
- class: "selector-section task-side-settings-card task-advanced-panel task-quick-advanced",
5189
- open: _ctx.taskOrchestration.settingsOpen,
5190
- onToggle: $event => (_ctx.taskOrchestration.settingsOpen = $event.target.open)
5191
- }, [
5192
- _createElementVNode("summary", { class: "task-advanced-summary" }, _toDisplayString(_ctx.t('orchestration.advanced.title')), 1 /* TEXT */),
5193
- _createElementVNode("div", { class: "task-action-row-right task-action-row-right-prominent task-codex-queue-action" }, [
5194
- _createElementVNode("button", {
5195
- type: "button",
5196
- class: "btn-tool",
5197
- onClick: $event => (_ctx.queueTaskOrchestrationAndStart()),
5198
- disabled: _ctx.taskOrchestration.queueAdding || _ctx.taskOrchestration.queueStarting || _ctx.taskOrchestration.planning || !_ctx.taskOrchestration.target.trim()
5199
- }, _toDisplayString((_ctx.taskOrchestration.queueAdding || _ctx.taskOrchestration.queueStarting) ? _ctx.t('orchestration.actions.processing') : _ctx.t('orchestration.actions.queueAndStart')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
5200
- ]),
5201
- _createElementVNode("div", { class: "selector-grid task-composer-grid task-composer-grid-secondary" }, [
5202
- _createElementVNode("label", { class: "selector-field task-field-wide" }, [
5203
- _createElementVNode("span", { class: "selector-label" }, _toDisplayString(_ctx.t('orchestration.fields.title')), 1 /* TEXT */),
5204
- _withDirectives(_createElementVNode("input", {
5205
- "onUpdate:modelValue": $event => ((_ctx.taskOrchestration.title) = $event),
5206
- class: "model-input",
5207
- type: "text",
5208
- placeholder: _ctx.t('orchestration.fields.title.placeholder')
5209
- }, null, 8 /* PROPS */, ["onUpdate:modelValue", "placeholder"]), [
5210
- [_vModelText, _ctx.taskOrchestration.title]
5211
- ])
5212
- ]),
5213
- _createElementVNode("label", { class: "selector-field" }, [
5214
- _createElementVNode("span", { class: "selector-label" }, _toDisplayString(_ctx.t('orchestration.fields.engine')), 1 /* TEXT */),
5215
- _withDirectives(_createElementVNode("select", {
5216
- "onUpdate:modelValue": $event => ((_ctx.taskOrchestration.selectedEngine) = $event),
5217
- class: "provider-fast-switch-select",
5218
- onChange: $event => (_ctx.taskOrchestration.selectedEngine === 'workflow' ? null : _ctx.taskOrchestration.workflowIdsText = '')
5219
- }, [
5220
- _createElementVNode("option", { value: "openai-chat" }, _toDisplayString(_ctx.t('orchestration.engine.openaiChat')), 1 /* TEXT */),
5221
- _createElementVNode("option", { value: "workflow" }, _toDisplayString(_ctx.t('orchestration.engine.workflow')), 1 /* TEXT */)
5222
- ], 40 /* PROPS, NEED_HYDRATION */, ["onUpdate:modelValue", "onChange"]), [
5223
- [_vModelSelect, _ctx.taskOrchestration.selectedEngine]
5224
- ])
5225
- ]),
5226
- _createElementVNode("label", { class: "selector-field" }, [
5227
- _createElementVNode("span", { class: "selector-label" }, _toDisplayString(_ctx.t('orchestration.fields.runMode')), 1 /* TEXT */),
5228
- _withDirectives(_createElementVNode("select", {
5229
- "onUpdate:modelValue": $event => ((_ctx.taskOrchestration.runMode) = $event),
5230
- class: "provider-fast-switch-select"
5231
- }, [
5232
- _createElementVNode("option", { value: "write" }, _toDisplayString(_ctx.t('orchestration.runMode.write')), 1 /* TEXT */),
5233
- _createElementVNode("option", { value: "read" }, _toDisplayString(_ctx.t('orchestration.runMode.readOnly')), 1 /* TEXT */),
5234
- _createElementVNode("option", { value: "dry-run" }, _toDisplayString(_ctx.t('orchestration.runMode.dryRun')), 1 /* TEXT */)
5235
- ], 8 /* PROPS */, ["onUpdate:modelValue"]), [
5236
- [_vModelSelect, _ctx.taskOrchestration.runMode]
5237
- ])
5238
- ]),
5239
- _createElementVNode("label", { class: "selector-field task-field-wide" }, [
5240
- _createElementVNode("span", { class: "selector-label" }, _toDisplayString(_ctx.t('orchestration.fields.notes')), 1 /* TEXT */),
5241
- _withDirectives(_createElementVNode("textarea", {
5242
- "onUpdate:modelValue": $event => ((_ctx.taskOrchestration.notes) = $event),
5243
- class: "task-textarea",
5244
- rows: "3",
5245
- placeholder: _ctx.t('orchestration.fields.notes.placeholder')
5246
- }, null, 8 /* PROPS */, ["onUpdate:modelValue", "placeholder"]), [
5247
- [_vModelText, _ctx.taskOrchestration.notes]
5248
- ]),
5249
- _createElementVNode("span", { class: "task-field-hint" }, _toDisplayString(_ctx.t('orchestration.fields.notes.hint')), 1 /* TEXT */)
5250
- ]),
5251
- _createElementVNode("label", { class: "selector-field task-field-wide" }, [
5252
- _createElementVNode("span", { class: "selector-label" }, _toDisplayString(_ctx.t('orchestration.fields.workspacePath')), 1 /* TEXT */),
5253
- _withDirectives(_createElementVNode("input", {
5254
- "onUpdate:modelValue": $event => ((_ctx.taskOrchestration.workspacePath) = $event),
5255
- class: "model-input",
5256
- type: "text",
5257
- placeholder: _ctx.t('orchestration.fields.workspacePath.placeholder')
5258
- }, null, 8 /* PROPS */, ["onUpdate:modelValue", "placeholder"]), [
5259
- [_vModelText, _ctx.taskOrchestration.workspacePath]
5260
- ]),
5261
- _createElementVNode("span", { class: "task-field-hint" }, _toDisplayString(_ctx.t('orchestration.fields.workspacePath.hint')), 1 /* TEXT */)
5262
- ]),
5263
- _createElementVNode("label", { class: "selector-field" }, [
5264
- _createElementVNode("span", { class: "selector-label" }, _toDisplayString(_ctx.t('orchestration.fields.threadId')), 1 /* TEXT */),
5265
- _withDirectives(_createElementVNode("input", {
5266
- "onUpdate:modelValue": $event => ((_ctx.taskOrchestration.threadId) = $event),
5267
- class: "model-input",
5268
- type: "text",
5269
- placeholder: _ctx.t('orchestration.fields.threadId.placeholder')
5270
- }, null, 8 /* PROPS */, ["onUpdate:modelValue", "placeholder"]), [
5271
- [_vModelText, _ctx.taskOrchestration.threadId]
5272
- ]),
5273
- _createElementVNode("span", { class: "task-field-hint" }, _toDisplayString(_ctx.t('orchestration.fields.threadId.hint')), 1 /* TEXT */)
5274
- ]),
5275
- _createElementVNode("label", { class: "selector-field task-field-wide" }, [
5276
- _createElementVNode("span", { class: "selector-label" }, _toDisplayString(_ctx.t('orchestration.fields.followUps')), 1 /* TEXT */),
5277
- _withDirectives(_createElementVNode("textarea", {
5278
- "onUpdate:modelValue": $event => ((_ctx.taskOrchestration.followUpsText) = $event),
5279
- class: "task-textarea",
5280
- rows: "3",
5281
- placeholder: _ctx.t('orchestration.fields.followUps.placeholder')
5282
- }, null, 8 /* PROPS */, ["onUpdate:modelValue", "placeholder"]), [
5283
- [_vModelText, _ctx.taskOrchestration.followUpsText]
5284
- ])
5285
- ]),
5286
- _createElementVNode("label", { class: "selector-field" }, [
5287
- _createElementVNode("span", { class: "selector-label" }, _toDisplayString(_ctx.t('orchestration.fields.concurrency')), 1 /* TEXT */),
5288
- _withDirectives(_createElementVNode("input", {
5289
- "onUpdate:modelValue": $event => ((_ctx.taskOrchestration.concurrency) = $event),
5290
- class: "model-input",
5291
- type: "number",
5292
- min: "1",
5293
- max: "8"
5294
- }, null, 8 /* PROPS */, ["onUpdate:modelValue"]), [
5295
- [_vModelText, _ctx.taskOrchestration.concurrency]
5296
- ]),
5297
- _createElementVNode("span", { class: "task-field-hint" }, _toDisplayString(_ctx.t('orchestration.fields.concurrency.hint')), 1 /* TEXT */)
5298
- ]),
5299
- _createElementVNode("label", { class: "selector-field" }, [
5300
- _createElementVNode("span", { class: "selector-label" }, _toDisplayString(_ctx.t('orchestration.fields.autoFixRounds')), 1 /* TEXT */),
5301
- _withDirectives(_createElementVNode("input", {
5302
- "onUpdate:modelValue": $event => ((_ctx.taskOrchestration.autoFixRounds) = $event),
5303
- class: "model-input",
5304
- type: "number",
5305
- min: "0",
5306
- max: "5"
5307
- }, null, 8 /* PROPS */, ["onUpdate:modelValue"]), [
5308
- [_vModelText, _ctx.taskOrchestration.autoFixRounds]
5309
- ]),
5310
- _createElementVNode("span", { class: "task-field-hint" }, _toDisplayString(_ctx.t('orchestration.fields.autoFixRounds.hint')), 1 /* TEXT */)
5311
- ]),
5312
- (_ctx.taskOrchestration.selectedEngine === 'workflow')
5313
- ? (_openBlock(), _createElementBlock("label", {
5314
- key: 0,
5315
- class: "selector-field task-field-wide"
5316
- }, [
5317
- _createElementVNode("span", { class: "selector-label" }, _toDisplayString(_ctx.t('orchestration.fields.workflowIds')), 1 /* TEXT */),
5318
- _withDirectives(_createElementVNode("textarea", {
5319
- "onUpdate:modelValue": $event => ((_ctx.taskOrchestration.workflowIdsText) = $event),
5320
- class: "task-textarea",
5321
- rows: "3",
5322
- placeholder: _ctx.t('orchestration.fields.workflowIds.placeholder')
5323
- }, null, 8 /* PROPS */, ["onUpdate:modelValue", "placeholder"]), [
5324
- [_vModelText, _ctx.taskOrchestration.workflowIdsText]
5325
- ]),
5326
- _createElementVNode("span", { class: "task-field-hint" }, _toDisplayString(_ctx.t('orchestration.fields.workflowIds.hint', { count: _ctx.taskOrchestration.workflows.length })), 1 /* TEXT */),
5327
- (_ctx.taskOrchestration.workflows.length)
5328
- ? (_openBlock(), _createElementBlock("div", {
5329
- key: 0,
5330
- class: "task-workflow-suggestions"
5331
- }, [
5332
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.taskOrchestration.workflows, (workflow) => {
5333
- return (_openBlock(), _createElementBlock("button", {
5334
- key: workflow.id || workflow.name,
5335
- type: "button",
5336
- class: "task-workflow-chip",
5337
- onClick: $event => (_ctx.appendTaskWorkflowId(workflow.id || workflow.name))
5338
- }, [
5339
- _createElementVNode("span", null, _toDisplayString(workflow.name || workflow.id), 1 /* TEXT */),
5340
- (workflow.stepCount)
5341
- ? (_openBlock(), _createElementBlock("small", { key: 0 }, _toDisplayString(_ctx.t('orchestration.workflow.stepCount', { count: workflow.stepCount })), 1 /* TEXT */))
5342
- : _createCommentVNode("v-if", true)
5343
- ], 8 /* PROPS */, ["onClick"]))
5344
- }), 128 /* KEYED_FRAGMENT */))
5345
- ]))
5346
- : _createCommentVNode("v-if", true)
5347
- ]))
5348
- : _createCommentVNode("v-if", true)
5349
- ])
5350
- ], 40 /* PROPS, NEED_HYDRATION */, ["open", "onToggle"]),
5351
- _createElementVNode("div", { class: "task-provider-status-card" }, [
5352
- _createElementVNode("div", { class: "task-readiness-title" }, _toDisplayString(_ctx.t('orchestration.openai.status.title')), 1 /* TEXT */),
5353
- _createElementVNode("div", { class: "task-readiness-copy" }, _toDisplayString(_ctx.t('orchestration.openai.status.subtitle')), 1 /* TEXT */),
5354
- (_ctx.taskOrchestration.openAiChatStatus)
5355
- ? (_openBlock(), _createElementBlock("div", {
5356
- key: 0,
5357
- class: "task-provider-status-grid"
5358
- }, [
5359
- _createElementVNode("div", { class: "task-provider-status-row" }, [
5360
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.openai.status.provider')), 1 /* TEXT */),
5361
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestration.openAiChatStatus.providerName ? _ctx.t('orchestration.openai.status.configured') : _ctx.t('orchestration.openai.status.notSet')), 1 /* TEXT */)
5362
- ]),
5363
- _createElementVNode("div", { class: "task-provider-status-row" }, [
5364
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.openai.status.model')), 1 /* TEXT */),
5365
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestration.openAiChatStatus.model ? _ctx.t('orchestration.openai.status.configured') : _ctx.t('orchestration.openai.status.notSet')), 1 /* TEXT */)
5366
- ]),
5367
- _createElementVNode("div", { class: "task-provider-status-row task-provider-status-row-wide" }, [
5368
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.openai.status.endpoint')), 1 /* TEXT */),
5369
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestration.openAiChatStatus.endpoint ? _ctx.t('orchestration.openai.status.configured') : _ctx.t('orchestration.openai.status.notSet')), 1 /* TEXT */)
5370
- ]),
5371
- _createElementVNode("div", { class: "task-provider-status-row" }, [
5372
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.openai.status.apiKey')), 1 /* TEXT */),
5373
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestration.openAiChatStatus.hasApiKey ? _ctx.t('orchestration.openai.status.configured') : _ctx.t('orchestration.openai.status.missing')), 1 /* TEXT */)
5374
- ]),
5375
- _createElementVNode("div", { class: "task-provider-status-row" }, [
5376
- _createElementVNode("span", null, _toDisplayString(_ctx.t('orchestration.openai.status.headers')), 1 /* TEXT */),
5377
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestration.openAiChatStatus.hasExtraHeaders ? _ctx.t('orchestration.openai.status.configured') : _ctx.t('orchestration.openai.status.notSet')), 1 /* TEXT */)
5378
- ])
5379
- ]))
5380
- : (_openBlock(), _createElementBlock("div", {
5381
- key: 1,
5382
- class: "task-readiness-copy"
5383
- }, _toDisplayString(_ctx.t('orchestration.openai.status.notLoaded')), 1 /* TEXT */)),
5384
- (_ctx.taskOrchestration.openAiChatStatus && _ctx.taskOrchestration.openAiChatStatus.error)
5385
- ? (_openBlock(), _createElementBlock("div", {
5386
- key: 2,
5387
- class: "task-issue-item task-provider-status-error"
5388
- }, _toDisplayString(_ctx.taskOrchestration.openAiChatStatus.error), 1 /* TEXT */))
5389
- : _createCommentVNode("v-if", true),
5390
- _createElementVNode("button", {
5391
- type: "button",
5392
- class: "btn-tool btn-tool-compact task-provider-config-button",
5393
- onClick: $event => (_ctx.openTaskOpenAiChatConfig())
5394
- }, _toDisplayString(_ctx.t('orchestration.openai.status.configure')), 9 /* TEXT, PROPS */, ["onClick"])
5395
- ]),
5396
- _createElementVNode("div", { class: "task-readiness-head" }, [
5397
- _createElementVNode("div", null, [
5398
- _createElementVNode("div", { class: "task-readiness-title" }, _toDisplayString(_ctx.t('orchestration.quick.checklist.title')), 1 /* TEXT */),
5399
- _createElementVNode("div", { class: "task-readiness-copy" }, _toDisplayString(_ctx.t('orchestration.quick.checklist.subtitle')), 1 /* TEXT */)
5400
- ])
5401
- ]),
5402
- _createElementVNode("div", { class: "task-readiness-grid task-quick-checklist" }, [
5403
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.taskOrchestrationDraftChecklist, (item) => {
5404
- return (_openBlock(), _createElementBlock("div", {
5405
- key: item.key,
5406
- class: _normalizeClass(['task-readiness-item', { done: item.done }])
5407
- }, [
5408
- _createElementVNode("strong", null, _toDisplayString(item.label), 1 /* TEXT */),
5409
- _createElementVNode("span", null, _toDisplayString(item.detail), 1 /* TEXT */)
5410
- ], 2 /* CLASS */))
5411
- }), 128 /* KEYED_FRAGMENT */))
5412
- ]),
5413
- _createElementVNode("div", { class: "task-quick-status-card" }, [
5414
- _createElementVNode("div", { class: "task-plan-summary-label" }, _toDisplayString(_ctx.t('orchestration.quick.status.title')), 1 /* TEXT */),
5415
- _createElementVNode("strong", null, _toDisplayString(_ctx.taskOrchestrationDraftReadiness.title), 1 /* TEXT */),
5416
- _createElementVNode("span", null, _toDisplayString(_ctx.taskOrchestrationDraftReadiness.summary), 1 /* TEXT */)
5417
- ])
5418
- ])
5419
- ])
5420
- ]),
5421
- (!(_ctx.taskOrchestration.plan || _ctx.taskOrchestration.planIssues.length || _ctx.taskOrchestration.planWarnings.length || _ctx.taskOrchestration.lastError || _ctx.taskOrchestrationWorkspaceQueue.length || _ctx.taskOrchestrationWorkspaceRuns.length || _ctx.taskOrchestration.selectedRunId || _ctx.taskOrchestration.selectedRunError))
5422
- ? (_openBlock(), _createElementBlock("section", {
5423
- key: 0,
5424
- class: "selector-section task-stage-card"
5425
- }, [
5426
- _createElementVNode("div", { class: "task-stage-empty" }, [
5427
- _createElementVNode("div", null, [
5428
- _createElementVNode("div", { class: "selector-title" }, _toDisplayString(_ctx.t('orchestration.stage.title')), 1 /* TEXT */),
5429
- _createElementVNode("div", { class: "skills-panel-note" }, _toDisplayString(_ctx.t('orchestration.stage.subtitle')), 1 /* TEXT */)
5430
- ]),
5431
- _createElementVNode("div", { class: "task-stage-strip" }, [
5432
- _createElementVNode("div", { class: "task-stage-pill" }, _toDisplayString(_ctx.t('orchestration.stage.pill.target')), 1 /* TEXT */),
5433
- _createElementVNode("div", { class: "task-stage-pill" }, _toDisplayString(_ctx.t('orchestration.stage.pill.preview')), 1 /* TEXT */),
5434
- _createElementVNode("div", { class: "task-stage-pill" }, _toDisplayString(_ctx.t('orchestration.stage.pill.run')), 1 /* TEXT */)
5435
- ])
5436
- ])
5437
- ]))
5438
- : _createCommentVNode("v-if", true)
5439
- ], 8 /* PROPS */, ["data-active"])), [
5440
- [_vShow, _ctx.mainTab === 'orchestration']
5441
- ])
5442
- : _createCommentVNode("v-if", true),
5443
4355
  _withDirectives(_createElementVNode("div", {
5444
4356
  class: "mode-content docs-mode-content",
5445
4357
  id: "panel-docs",
@@ -6979,7 +5891,7 @@ return function render(_ctx, _cache) {
6979
5891
  _createCommentVNode(" Prompts editor "),
6980
5892
  (_ctx.mainTab === 'prompts')
6981
5893
  ? (_openBlock(), _createElementBlock("div", {
6982
- key: 1,
5894
+ key: 0,
6983
5895
  class: "mode-content mode-cards",
6984
5896
  id: "panel-prompts",
6985
5897
  role: "tabpanel",
@@ -7637,12 +6549,12 @@ return function render(_ctx, _cache) {
7637
6549
  _createCommentVNode(" 加载状态 "),
7638
6550
  (_ctx.loading && _ctx.mainTab !== 'usage')
7639
6551
  ? (_openBlock(), _createElementBlock("div", {
7640
- key: 2,
6552
+ key: 1,
7641
6553
  class: "state-message"
7642
6554
  }, _toDisplayString(_ctx.t('app.loadingConfig')), 1 /* TEXT */))
7643
6555
  : (_ctx.initError)
7644
6556
  ? (_openBlock(), _createElementBlock("div", {
7645
- key: 3,
6557
+ key: 2,
7646
6558
  class: "state-message error"
7647
6559
  }, [
7648
6560
  _createCommentVNode(" 错误状态 "),