@auto-ai/agent 2.1.178 → 2.1.181

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/safe-a/404/index.html +1 -1
  2. package/dist/safe-a/404.html +1 -1
  3. package/dist/safe-a/_next/static/chunks/044a195f3374d4b6.js +1 -0
  4. package/dist/safe-a/_next/static/chunks/12fa90667e8fb0e3.js +1 -0
  5. package/dist/safe-a/_next/static/chunks/4682815462207a37.js +1 -0
  6. package/dist/safe-a/_next/static/chunks/{1721252e79141fe8.js → 5434628aad5e5bc3.js} +1 -1
  7. package/dist/safe-a/_next/static/chunks/5b44bdce5e5ebd06.js +1 -0
  8. package/dist/safe-a/_next/static/chunks/5b50a8c524507ee0.js +1 -0
  9. package/dist/safe-a/_next/static/chunks/66cdfa3e49dc50f3.js +1 -0
  10. package/dist/safe-a/_next/static/chunks/79e8fd2602ccb6b6.js +1 -0
  11. package/dist/safe-a/_next/static/chunks/{d2db030aed120d83.js → 7f341bc0fb5ff708.js} +1 -1
  12. package/dist/safe-a/_next/static/chunks/{d704441569a382a1.js → 8f31f818efd25c0f.js} +1 -1
  13. package/dist/safe-a/_next/static/chunks/9edf76a11bf93bcc.js +1 -0
  14. package/dist/safe-a/_next/static/chunks/b63afdaa820ddad4.js +1 -0
  15. package/dist/safe-a/_next/static/chunks/b9590be9854a83fb.js +1 -0
  16. package/dist/safe-a/_next/static/chunks/baed816b83bbd5b5.js +1 -0
  17. package/dist/safe-a/_next/static/chunks/dc7a9ce680ab0ce4.css +1 -0
  18. package/dist/safe-a/_next/static/chunks/dd98ccfeaf6ec72e.js +1 -0
  19. package/dist/safe-a/_next/static/chunks/e847138f5b487d3d.js +1 -0
  20. package/dist/safe-a/_next/static/chunks/f3c9f6b778f4cf1a.js +1 -0
  21. package/dist/safe-a/_next/static/chunks/fa686b4028e991a5.js +1 -0
  22. package/dist/safe-a/index.html +2 -2
  23. package/dist/safe-a/index.txt +25 -24
  24. package/dist/safe-a/manage/about/index.html +2 -2
  25. package/dist/safe-a/manage/about/index.txt +9 -9
  26. package/dist/safe-a/manage/env/index.html +2 -2
  27. package/dist/safe-a/manage/env/index.txt +11 -11
  28. package/dist/safe-a/manage/geelib/index.html +2 -2
  29. package/dist/safe-a/manage/geelib/index.txt +11 -11
  30. package/dist/safe-a/manage/general/index.html +2 -2
  31. package/dist/safe-a/manage/general/index.txt +9 -9
  32. package/dist/safe-a/manage/git/index.html +2 -2
  33. package/dist/safe-a/manage/git/index.txt +11 -11
  34. package/dist/safe-a/manage/im/index.html +2 -2
  35. package/dist/safe-a/manage/im/index.txt +11 -11
  36. package/dist/safe-a/manage/index.html +2 -2
  37. package/dist/safe-a/manage/index.txt +6 -6
  38. package/dist/safe-a/manage/library/index.html +2 -2
  39. package/dist/safe-a/manage/library/index.txt +9 -9
  40. package/dist/safe-a/manage/mcp/index.html +2 -2
  41. package/dist/safe-a/manage/mcp/index.txt +9 -9
  42. package/dist/safe-a/manage/permissions/index.html +2 -2
  43. package/dist/safe-a/manage/permissions/index.txt +9 -9
  44. package/dist/safe-a/manage/skills/index.html +2 -2
  45. package/dist/safe-a/manage/skills/index.txt +9 -9
  46. package/dist/safe-a/manage/system/index.html +2 -2
  47. package/dist/safe-a/manage/system/index.txt +11 -11
  48. package/dist/safe-a/manage/task/index.html +2 -2
  49. package/dist/safe-a/manage/task/index.txt +9 -9
  50. package/dist/safe-a/manage/teams/index.html +2 -2
  51. package/dist/safe-a/manage/teams/index.txt +9 -9
  52. package/dist/safe-a/manage/tools/index.html +2 -2
  53. package/dist/safe-a/manage/tools/index.txt +9 -9
  54. package/dist/ws-test/ws-test.css +20 -0
  55. package/dist/ws-test/ws-test.html +0 -8
  56. package/dist/ws-test/ws-test.js +59 -28
  57. package/mcps-runtime/claude-geelib-channel/.mcp.json +1 -1
  58. package/mcps-runtime/claude-tuitui-channel/.mcp.json +1 -1
  59. package/package.json +6 -6
  60. package/tools-runtime/code-tool/index.cjs +10 -0
  61. package/tools-runtime/code-tool/src/index.ts +10 -0
  62. package/tools-runtime/git-tool/index.cjs +3 -0
  63. package/tools-runtime/git-tool/src/index.ts +3 -0
  64. package/tools-runtime/schedule-tool/index.cjs +5 -0
  65. package/tools-runtime/schedule-tool/src/index.ts +5 -0
  66. package/dist/safe-a/_next/static/chunks/502da0e2a135cc22.js +0 -1
  67. package/dist/safe-a/_next/static/chunks/6d5e5ac594d15dfd.js +0 -1
  68. package/dist/safe-a/_next/static/chunks/7b13ca715faff5dc.js +0 -1
  69. package/dist/safe-a/_next/static/chunks/813a815fdbc5ebce.js +0 -1
  70. package/dist/safe-a/_next/static/chunks/86e1cbf0b14a37f8.js +0 -1
  71. package/dist/safe-a/_next/static/chunks/91e581bdbb23dee6.js +0 -1
  72. package/dist/safe-a/_next/static/chunks/9315f9edcdcc1021.js +0 -1
  73. package/dist/safe-a/_next/static/chunks/a279cf87db173848.js +0 -1
  74. package/dist/safe-a/_next/static/chunks/a844bb56dd3d3f9f.js +0 -1
  75. package/dist/safe-a/_next/static/chunks/a8500ff7cba0198b.js +0 -1
  76. package/dist/safe-a/_next/static/chunks/aee78ab0977d5e85.js +0 -1
  77. package/dist/safe-a/_next/static/chunks/bca3533d1768ff54.css +0 -1
  78. package/dist/safe-a/_next/static/chunks/d2f40ee7478ade79.js +0 -1
  79. package/dist/safe-a/_next/static/chunks/db2847a6d43bf625.js +0 -1
  80. package/dist/safe-a/_next/static/chunks/f7757520b309e691.js +0 -1
  81. /package/dist/safe-a/_next/static/{gFf2rYZ98YdyRGXddQWul → lFIeU18Tp_Ssux9DyeDmt}/_buildManifest.js +0 -0
  82. /package/dist/safe-a/_next/static/{gFf2rYZ98YdyRGXddQWul → lFIeU18Tp_Ssux9DyeDmt}/_clientMiddlewareManifest.json +0 -0
  83. /package/dist/safe-a/_next/static/{gFf2rYZ98YdyRGXddQWul → lFIeU18Tp_Ssux9DyeDmt}/_ssgManifest.js +0 -0
@@ -57,13 +57,11 @@
57
57
  const agentEnvAgentMdEditor = $('agentEnvAgentMdEditor')
58
58
  const llmProvidersSettingsBlock = $('llmProvidersSettingsBlock')
59
59
  const llmFormId = $('llmFormId')
60
- const llmFormName = $('llmFormName')
61
60
  const llmFormProvider = $('llmFormProvider')
62
61
  const llmFormBaseUrl = $('llmFormBaseUrl')
63
62
  const llmFormApiKey = $('llmFormApiKey')
64
63
  const llmFormAuthToken = $('llmFormAuthToken')
65
64
  const llmFormModelId = $('llmFormModelId')
66
- const llmFormModelLabel = $('llmFormModelLabel')
67
65
  const llmProvidersEmptyHint = $('llmProvidersEmptyHint')
68
66
  const llmProvidersList = $('llmProvidersList')
69
67
  const btnLlmProvidersAdd = $('btnLlmProvidersAdd')
@@ -5612,22 +5610,15 @@
5612
5610
  for (let i = 0; i < providers.length; i++) {
5613
5611
  const p = providers[i]
5614
5612
  const providerId = typeof p.id === 'string' ? p.id.trim() : ''
5615
- const providerName = typeof p.name === 'string' ? p.name.trim() : ''
5616
5613
  const models = Array.isArray(p.models) ? p.models : []
5617
5614
  for (let j = 0; j < models.length; j++) {
5618
5615
  const m = models[j]
5619
5616
  const modelId = typeof m.id === 'string' ? m.id.trim() : ''
5620
5617
  if (!modelId) continue
5621
- const label =
5622
- typeof m.label === 'string' && m.label.trim() ? m.label.trim() : undefined
5623
- const display = providerName
5624
- ? providerName + ' · ' + (label ? label : modelId)
5625
- : (label ? label : modelId)
5618
+ const display = providerId ? providerId + ' · ' + modelId : modelId
5626
5619
  apiModelRows.push({
5627
5620
  providerId,
5628
- providerName,
5629
5621
  id: modelId,
5630
- label,
5631
5622
  display,
5632
5623
  })
5633
5624
  }
@@ -5671,11 +5662,8 @@
5671
5662
  for (let i = 0; i < all.length; i++) {
5672
5663
  const x = all[i]
5673
5664
  const idHit = x.id.toLowerCase().indexOf(q) >= 0
5674
- const labelHit = x.label && x.label.toLowerCase().indexOf(q) >= 0
5675
- const providerHit =
5676
- x.providerName && x.providerName.toLowerCase().indexOf(q) >= 0
5677
5665
  const providerIdHit = x.providerId && x.providerId.toLowerCase().indexOf(q) >= 0
5678
- if (idHit || labelHit || providerHit || providerIdHit) {
5666
+ if (idHit || providerIdHit) {
5679
5667
  hit.push(x)
5680
5668
  if (hit.length >= 50) break
5681
5669
  }
@@ -6517,10 +6505,29 @@
6517
6505
  const t = row.t || {}
6518
6506
  return (t.displayName && t.displayName !== t.name ? t.displayName + ' · ' : '') + row.id
6519
6507
  }
6508
+ const formatToolDetail = function (t) {
6509
+ if (!t || typeof t !== 'object') return '—'
6510
+ const lines = []
6511
+ if (typeof t.summary === 'string' && t.summary.trim()) {
6512
+ lines.push(t.summary.trim())
6513
+ }
6514
+ if (Array.isArray(t.interfaces) && t.interfaces.length > 0) {
6515
+ const ifaceParts = []
6516
+ for (let i = 0; i < t.interfaces.length; i++) {
6517
+ const item = t.interfaces[i] || {}
6518
+ const name = typeof item.name === 'string' ? item.name.trim() : ''
6519
+ const purpose = typeof item.purpose === 'string' ? item.purpose.trim() : ''
6520
+ if (!name) continue
6521
+ ifaceParts.push(purpose ? name + ':' + purpose : name)
6522
+ }
6523
+ if (ifaceParts.length) lines.push(ifaceParts.join(';'))
6524
+ }
6525
+ return lines.length ? lines.join('\n') : '—'
6526
+ }
6520
6527
  const toolMatches = function (row, q) {
6521
6528
  if (!q) return true
6522
6529
  const t = row.t || {}
6523
- const pool = [row.id, toolLabel(row), t.searchHint || '']
6530
+ const pool = [row.id, toolLabel(row), t.searchHint || '', formatToolDetail(t)]
6524
6531
  if (Array.isArray(t.aliases)) {
6525
6532
  for (let i = 0; i < t.aliases.length; i++) pool.push(String(t.aliases[i] || ''))
6526
6533
  }
@@ -6562,6 +6569,12 @@
6562
6569
  const layer = row.t && row.t.layer === 'system' ? '系统' : row.t && row.t.layer === 'agent' ? 'Agent' : '—'
6563
6570
  typeTd.textContent = layer
6564
6571
  tr.appendChild(typeTd)
6572
+ const detailTd = document.createElement('td')
6573
+ detailTd.className = 'col-detail'
6574
+ const detailText = formatToolDetail(row.t)
6575
+ detailTd.textContent = detailText
6576
+ detailTd.title = detailText
6577
+ tr.appendChild(detailTd)
6565
6578
  const selected = pickerSelected.has(id)
6566
6579
  const buttons = [
6567
6580
  createManageRowBtn(selected ? '禁用' : '启用', selected ? 'is-on' : '', function () {
@@ -6596,7 +6609,7 @@
6596
6609
  }
6597
6610
  const renderToolsRows = function () {
6598
6611
  setPickerContentMode('table')
6599
- setPickerTableHead(['名称', '类型', '操作'])
6612
+ setPickerTableHead(['名称', '类型', '详细信息', '操作'])
6600
6613
  clearPickerTableBody()
6601
6614
  setPickerContentState('', false)
6602
6615
  const q = getPickerSearchQuery()
@@ -7740,7 +7753,6 @@
7740
7753
  const models = Array.isArray(p.models) ? p.models : []
7741
7754
  return {
7742
7755
  id: typeof p.id === 'string' ? p.id.trim() : '',
7743
- name: typeof p.name === 'string' ? p.name.trim() : '',
7744
7756
  baseUrl: typeof p.baseUrl === 'string' ? p.baseUrl.trim() : '',
7745
7757
  apiKey: typeof p.apiKey === 'string' ? p.apiKey : '',
7746
7758
  authToken: typeof p.authToken === 'string' ? p.authToken : '',
@@ -7748,7 +7760,6 @@
7748
7760
  models: models.map(function (m) {
7749
7761
  return {
7750
7762
  id: typeof m.id === 'string' ? m.id.trim() : '',
7751
- label: typeof m.label === 'string' ? m.label.trim() : '',
7752
7763
  }
7753
7764
  }),
7754
7765
  defaultModel: typeof p.defaultModel === 'string' ? p.defaultModel.trim() : '',
@@ -7758,13 +7769,11 @@
7758
7769
 
7759
7770
  function clearLlmProviderForm() {
7760
7771
  if (llmFormId) llmFormId.value = ''
7761
- if (llmFormName) llmFormName.value = ''
7762
7772
  if (llmFormProvider) llmFormProvider.value = 'openai'
7763
7773
  if (llmFormBaseUrl) llmFormBaseUrl.value = ''
7764
7774
  if (llmFormApiKey) llmFormApiKey.value = ''
7765
7775
  if (llmFormAuthToken) llmFormAuthToken.value = ''
7766
7776
  if (llmFormModelId) llmFormModelId.value = ''
7767
- if (llmFormModelLabel) llmFormModelLabel.value = ''
7768
7777
  }
7769
7778
 
7770
7779
  /**
@@ -7772,14 +7781,12 @@
7772
7781
  */
7773
7782
  function readLlmProviderFromForm() {
7774
7783
  const id = llmFormId ? String(llmFormId.value || '').trim() : ''
7775
- const name = llmFormName ? String(llmFormName.value || '').trim() : ''
7776
7784
  const provider =
7777
7785
  llmFormProvider && llmFormProvider.value === 'anthropic' ? 'anthropic' : 'openai'
7778
7786
  const baseUrl = llmFormBaseUrl ? String(llmFormBaseUrl.value || '').trim() : ''
7779
7787
  const apiKey = llmFormApiKey ? String(llmFormApiKey.value || '').trim() : ''
7780
7788
  const authToken = llmFormAuthToken ? String(llmFormAuthToken.value || '').trim() : ''
7781
7789
  const modelId = llmFormModelId ? String(llmFormModelId.value || '').trim() : ''
7782
- const modelLabel = llmFormModelLabel ? String(llmFormModelLabel.value || '').trim() : ''
7783
7790
  if (!id) return { ok: false, message: '请填写服务商 ID' }
7784
7791
  if (!/^[A-Za-z0-9_-]+$/.test(id)) {
7785
7792
  return { ok: false, message: '服务商 id 仅允许字母数字下划线中划线' }
@@ -7789,7 +7796,6 @@
7789
7796
  })) {
7790
7797
  return { ok: false, message: '服务商 id 已存在: ' + id }
7791
7798
  }
7792
- if (!name) return { ok: false, message: '请填写展示名称' }
7793
7799
  if (!baseUrl) return { ok: false, message: '请填写 Base URL' }
7794
7800
  if (!apiKey && !authToken) {
7795
7801
  return { ok: false, message: 'API Key 与 Auth Token 至少填写一项' }
@@ -7799,17 +7805,31 @@
7799
7805
  ok: true,
7800
7806
  entry: {
7801
7807
  id: id,
7802
- name: name,
7803
7808
  baseUrl: baseUrl,
7804
7809
  apiKey: apiKey,
7805
7810
  authToken: authToken,
7806
7811
  provider: provider,
7807
- models: [{ id: modelId, label: modelLabel }],
7812
+ models: [{ id: modelId }],
7808
7813
  defaultModel: modelId,
7809
7814
  },
7810
7815
  }
7811
7816
  }
7812
7817
 
7818
+ /**
7819
+ * 拼接服务商列表副标题:baseUrl + '.' + 默认模型 ID。
7820
+ */
7821
+ function formatLlmProviderListMeta(provider) {
7822
+ const baseUrl = String(provider.baseUrl || '').trim()
7823
+ const models = Array.isArray(provider.models) ? provider.models : []
7824
+ const modelId = String(
7825
+ provider.defaultModel || (models[0] && models[0].id) || '',
7826
+ ).trim()
7827
+ if (!baseUrl && !modelId) return ''
7828
+ if (!baseUrl) return modelId
7829
+ if (!modelId) return baseUrl
7830
+ return baseUrl + '.' + modelId
7831
+ }
7832
+
7813
7833
  function renderLlmProvidersList() {
7814
7834
  if (!llmProvidersList) return
7815
7835
  llmProvidersList.innerHTML = ''
@@ -7821,15 +7841,27 @@
7821
7841
  const li = document.createElement('li')
7822
7842
  li.className = 'llm-provider-list-item'
7823
7843
 
7844
+ const body = document.createElement('div')
7845
+ body.className = 'llm-provider-list-body'
7846
+
7824
7847
  const nameWrap = document.createElement('span')
7825
7848
  nameWrap.className = 'llm-provider-list-name'
7826
- nameWrap.textContent = p.name || p.id
7849
+ nameWrap.textContent = p.id
7827
7850
  if (i === 0) {
7828
7851
  const badge = document.createElement('span')
7829
7852
  badge.className = 'llm-provider-list-default'
7830
7853
  badge.textContent = '默认'
7831
7854
  nameWrap.appendChild(badge)
7832
7855
  }
7856
+ body.appendChild(nameWrap)
7857
+
7858
+ const metaText = formatLlmProviderListMeta(p)
7859
+ if (metaText) {
7860
+ const metaWrap = document.createElement('span')
7861
+ metaWrap.className = 'llm-provider-list-meta'
7862
+ metaWrap.textContent = metaText
7863
+ body.appendChild(metaWrap)
7864
+ }
7833
7865
 
7834
7866
  const removeBtn = document.createElement('button')
7835
7867
  removeBtn.type = 'button'
@@ -7840,7 +7872,7 @@
7840
7872
  renderLlmProvidersList()
7841
7873
  })
7842
7874
 
7843
- li.appendChild(nameWrap)
7875
+ li.appendChild(body)
7844
7876
  li.appendChild(removeBtn)
7845
7877
  llmProvidersList.appendChild(li)
7846
7878
  }
@@ -7868,7 +7900,6 @@
7868
7900
  }
7869
7901
  if (seenIds.has(id)) return '服务商 id 重复: ' + id
7870
7902
  seenIds.add(id)
7871
- if (!String(p.name || '').trim()) return '服务商 "' + id + '" 缺少展示名称'
7872
7903
  if (!String(p.baseUrl || '').trim()) return '服务商 "' + id + '" 缺少 baseUrl'
7873
7904
  if (p.provider !== 'anthropic' && p.provider !== 'openai') {
7874
7905
  return '服务商 "' + id + '" 协议类型非法'
@@ -10,7 +10,7 @@
10
10
  "GEELIB_PASSWD": "${GEELIB_PASSWD}",
11
11
  "GEELIB_BASE_URL": "${GEELIB_BASE_URL:-https://geelib.qihoo.net}",
12
12
  "GEELIB_SUB_ID": "${GEELIB_SUB_ID}",
13
- "GEELIB_STATE_DIR": "${WS_AGENTS_ROOT}/mcps-runtime/claude-geelib-channel/.state",
13
+ "GEELIB_STATE_DIR": "${WS_AGENTS_ROOT}/agent-runtime/${WS_AGENT_NAME}/channels/geelib/.state",
14
14
  "GEELIB_POLL_INTERVAL_MS": "${GEELIB_POLL_INTERVAL_MS:-60000}"
15
15
  }
16
16
  }
@@ -8,7 +8,7 @@
8
8
  "env": {
9
9
  "TUITUI_APP_ID": "${TUITUI_APP_ID}",
10
10
  "TUITUI_APP_SECRET": "${TUITUI_APP_SECRET}",
11
- "TUITUI_STATE_DIR": "${WS_AGENTS_ROOT}/mcps-runtime/claude-tuitui-channel/.state",
11
+ "TUITUI_STATE_DIR": "${WS_AGENTS_ROOT}/agent-runtime/${WS_AGENT_NAME}/channels/tuitui/.state",
12
12
  "TUITUI_DM_POLICY": "open",
13
13
  "TUITUI_GROUP_POLICY": "open",
14
14
  "TUITUI_REQUIRE_MENTION": "true",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@auto-ai/agent",
3
- "version": "2.1.178",
3
+ "version": "2.1.181",
4
4
  "description": "Auto AI Agent 网关 CLI(WebSocket,独立二进制,无需 Bun)",
5
5
  "type": "module",
6
6
  "maintainers": [
@@ -32,11 +32,11 @@
32
32
  "zod": "^4.3.6"
33
33
  },
34
34
  "optionalDependencies": {
35
- "@auto-ai/agent-linux-x64": "2.1.178",
36
- "@auto-ai/agent-linux-arm64": "2.1.178",
37
- "@auto-ai/agent-darwin-x64": "2.1.178",
38
- "@auto-ai/agent-darwin-arm64": "2.1.178",
39
- "@auto-ai/agent-win-x64": "2.1.178"
35
+ "@auto-ai/agent-linux-x64": "2.1.181",
36
+ "@auto-ai/agent-linux-arm64": "2.1.181",
37
+ "@auto-ai/agent-darwin-x64": "2.1.181",
38
+ "@auto-ai/agent-darwin-arm64": "2.1.181",
39
+ "@auto-ai/agent-win-x64": "2.1.181"
40
40
  },
41
41
  "scripts": {
42
42
  "prepare": "node ../../scripts/sync-launcher-env.js",
@@ -15079,6 +15079,16 @@ async function writeResult(toolResultsDir, payload) {
15079
15079
  var CodeTool = {
15080
15080
  name: "CodeTool",
15081
15081
  description: async () => "代码开发工作区:加载 code.md、读写仓库、record 沉淀、受控脚本",
15082
+ listInterfaces: [
15083
+ { name: "prepare", purpose: "确认 codeWorkDir" },
15084
+ { name: "inspect", purpose: "加载 code.md 与项目摘要" },
15085
+ { name: "read", purpose: "读取代码文件" },
15086
+ { name: "search", purpose: "在仓库内搜索内容" },
15087
+ { name: "apply", purpose: "受控补丁修改业务文件" },
15088
+ { name: "run", purpose: "执行 package.json scripts 白名单" },
15089
+ { name: "record", purpose: "增量更新 code.md" },
15090
+ { name: "status", purpose: "查看 git 简要状态" }
15091
+ ],
15082
15092
  prompt: async () => {
15083
15093
  let dir = "(未配置)";
15084
15094
  try {
@@ -93,6 +93,16 @@ export const CodeTool = {
93
93
  name: 'CodeTool',
94
94
  description: async () =>
95
95
  '代码开发工作区:加载 code.md、读写仓库、record 沉淀、受控脚本',
96
+ listInterfaces: [
97
+ { name: 'prepare', purpose: '确认 codeWorkDir' },
98
+ { name: 'inspect', purpose: '加载 code.md 与项目摘要' },
99
+ { name: 'read', purpose: '读取代码文件' },
100
+ { name: 'search', purpose: '在仓库内搜索内容' },
101
+ { name: 'apply', purpose: '受控补丁修改业务文件' },
102
+ { name: 'run', purpose: '执行 package.json scripts 白名单' },
103
+ { name: 'record', purpose: '增量更新 code.md' },
104
+ { name: 'status', purpose: '查看 git 简要状态' },
105
+ ],
96
106
  prompt: async () => {
97
107
  let dir = '(未配置)'
98
108
  try {
@@ -14941,6 +14941,9 @@ var GIT_TOOL_INPUT_SCHEMA = {
14941
14941
  var GitTool = {
14942
14942
  name: "GitTool",
14943
14943
  description: async () => "Execute arbitrary git command(s) from commands array",
14944
+ listInterfaces: [
14945
+ { name: "commands", purpose: "在 git 工作区内顺序执行命令序列" }
14946
+ ],
14944
14947
  prompt: async () => {
14945
14948
  const workDirBranchLines = await buildGitWorkDirBranchLines();
14946
14949
  const gitStatus = await buildGitStatusForPrompt();
@@ -349,6 +349,9 @@ const GIT_TOOL_INPUT_SCHEMA = {
349
349
  export const GitTool = {
350
350
  name: 'GitTool',
351
351
  description: async () => 'Execute arbitrary git command(s) from commands array',
352
+ listInterfaces: [
353
+ { name: 'commands', purpose: '在 git 工作区内顺序执行命令序列' },
354
+ ],
352
355
  prompt: async () => {
353
356
  const workDirBranchLines = await buildGitWorkDirBranchLines()
354
357
  const gitStatus = await buildGitStatusForPrompt()
@@ -14675,6 +14675,11 @@ var inputSchema = exports_external.discriminatedUnion("action", [
14675
14675
  var ScheduleTool = {
14676
14676
  name: "ScheduleTool",
14677
14677
  description: async () => "Create, delete, or list cron-scheduled prompts for the current WebSocket session (persisted; fired when WS is connected).",
14678
+ listInterfaces: [
14679
+ { name: "create", purpose: "创建定时或延时执行的 prompt 任务" },
14680
+ { name: "delete", purpose: "删除指定调度任务" },
14681
+ { name: "list", purpose: "列出当前 session 的调度任务" }
14682
+ ],
14678
14683
  prompt: async () => buildScheduleToolPrompt(),
14679
14684
  inputSchema,
14680
14685
  maxResultSizeChars: 50000,
@@ -329,6 +329,11 @@ export const ScheduleTool = {
329
329
  name: 'ScheduleTool',
330
330
  description: async () =>
331
331
  'Create, delete, or list cron-scheduled prompts for the current WebSocket session (persisted; fired when WS is connected).',
332
+ listInterfaces: [
333
+ { name: 'create', purpose: '创建定时或延时执行的 prompt 任务' },
334
+ { name: 'delete', purpose: '删除指定调度任务' },
335
+ { name: 'list', purpose: '列出当前 session 的调度任务' },
336
+ ],
332
337
  prompt: async () => buildScheduleToolPrompt(),
333
338
  inputSchema,
334
339
  maxResultSizeChars: 50_000,
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,28370,e=>{"use strict";e.s(["AgentEnvGroupSettingsView",()=>m],28370);var t=e.i(18050),r=e.i(85413),n=e.i(2839),l=e.i(19455),i=e.i(46412),o=e.i(71645),a=e.i(13354),s=e.i(87243),u=e.i(67327),d=e.i(44039),c=e.i(99650),f=e.i(18900),p=e.i(69051),g=e.i(65934);function m(e){let{group:m}=e,{loading:h,saving:b,groupFields:v,fieldValues:y,whentouseValue:A,setField:x,setWhentouseValue:w,reset:j,save:S}=function(e){let t=(0,g.useAppStore)(e=>e.wsUrl),r=(0,g.useAppStore)(e=>e.apiBase),n=(0,g.useAppStore)(e=>e.agentConfig),{currentAgent:l,loadAgentConfig:i}=(0,s.useSession)(),{sendReloadAgentConfig:m}=(0,u.useWebSocketSender)(),[h,b]=(0,o.useState)(!0),[v,y]=(0,o.useState)(!1),[A,x]=(0,o.useState)([]),[w,j]=(0,o.useState)({}),[S,C]=(0,o.useState)({}),[_,E]=(0,o.useState)(""),k=(0,o.useMemo)(()=>(0,d.groupAgentEnvSchemaByGroup)(A)[e],[A,e]),O=(0,o.useCallback)(e=>{C((0,d.buildGroupAgentEnvFieldValues)(e,k,w))},[k,w]),P=(0,o.useCallback)(e=>{E("string"==typeof e?e:"")},[]),R=(0,o.useCallback)(async()=>{try{let e=await (0,p.loadSystemEnv)(t,r,l()),n="string"==typeof e.content?e.content:"",i=(0,d.normalizeAgentEnvSchema)(e.schema),o=(0,f.parseEnvContentToMap)(n);x(i),j((0,d.buildProjectEnvFormDefaults)(i,o))}catch(e){a.appToast.error("加载环境变量表单配置失败:".concat(e instanceof Error?e.message:String(e))),x([]),j({})}},[t,r,l]),N=(0,o.useCallback)(async()=>{b(!0);try{await Promise.all([i(),R()])}finally{b(!1)}},[i,R]);(0,o.useEffect)(()=>{N()},[N]),(0,o.useEffect)(()=>{!h&&k.length&&O({...n.env})},[n.env,O,h,k.length]),(0,o.useEffect)(()=>{h||"system"!==e||P(n.whentouse)},[n.whentouse,e,h,P]);let z=(0,o.useCallback)((e,t)=>{C(r=>({...r,[e]:t}))},[]),M=(0,o.useCallback)(()=>{O({...n.env}),"system"===e&&P(n.whentouse)},[n.env,n.whentouse,e,O,P]),I=(0,o.useCallback)(async()=>{let n=(0,d.mergeGroupEnvIntoAgentEnv)(g.useAppStore.getState().agentConfig.env,k,S);y(!0);try{if("system"===e){let e=g.useAppStore.getState().agentConfig;g.useAppStore.getState().setAgentConfig({...e,whentouse:_})}await (0,c.persistAgentEnv)(t,r,l(),n,m),await i()}catch(e){a.appToast.error("保存环境变量失败:".concat(e instanceof Error?e.message:String(e)))}finally{y(!1)}},[k,S,_,e,t,r,l,m,i]);return{loading:h,saving:v,groupFields:k,fieldValues:S,whentouseValue:_,setField:z,setWhentouseValue:E,reset:M,save:I}}(m),C="system"===m||v.length>0;return(0,t.jsxs)("div",{className:"manage-page-content flex min-h-0 flex-1 flex-col rounded-xl border bg-[#fff] shadow-[var(--shadow-md)]",children:[(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-y-auto p-4",children:h?(0,t.jsx)(n.Loading,{className:"min-h-[240px]",text:"加载中…"}):C?(0,t.jsx)(i.AgentEnvGroupForm,{group:m,fields:v,fieldValues:y,whentouseValue:A,onFieldChange:x,onWhentouseChange:w}):(0,t.jsx)(r.Empty,{className:"min-h-[240px]",text:"暂无可配置项"})}),(0,t.jsxs)("div",{className:"flex shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] px-4 py-3",children:[(0,t.jsx)(l.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:h||b||!C,onClick:()=>j(),className:"cursor-pointer",children:"取消"}),(0,t.jsx)(l.Button,{type:"button",size:"lg",disabled:h||b||!C,onClick:()=>void S(),className:"cursor-pointer",children:b?"保存中…":"保存"})]})]})}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return l}});let n=e.r(71645);function l(e,t){let r=(0,n.useRef)(null),l=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=l.current;t&&(l.current=null,t())}else e&&(r.current=i(e,n)),t&&(l.current=i(t,n))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},88143,(e,t,r)=>{"use strict";function n(e){let{widthInt:t,heightInt:r,blurWidth:n,blurHeight:l,blurDataURL:i,objectFit:o}=e,a=n?40*n:t,s=l?40*l:r,u=a&&s?"viewBox='0 0 "+a+" "+s+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+u+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(u?"none":"contain"===o?"xMidYMid":"cover"===o?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+i+"'/%3E%3C/svg%3E"}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},87690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{VALID_LOADERS:function(){return n},imageConfigDefault:function(){return l}});let n=["default","imgix","cloudinary","akamai","custom"],l={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumResponseBody:5e7,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:void 0,unoptimized:!1}},8927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return s}}),e.r(33525);let n=e.r(88143),l=e.r(87690),i=["-moz-initial","fill","none","scale-down",void 0];function o(e){return void 0!==e.default}function a(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function s(e,t){var r,s;let u,d,c,{src:f,sizes:p,unoptimized:g=!1,priority:m=!1,loading:h,className:b,quality:v,width:y,height:A,fill:x=!1,style:w,overrideSrc:j,onLoad:S,onLoadingComplete:C,placeholder:_="empty",blurDataURL:E,fetchPriority:k,decoding:O="async",layout:P,objectFit:R,objectPosition:N,lazyBoundary:z,lazyRoot:M,...I}=e,{imgConf:T,showAltText:D,blurComplete:U,defaultLoader:G}=t,B=T||l.imageConfigDefault;if("allSizes"in B)u=B;else{let e=[...B.deviceSizes,...B.imageSizes].sort((e,t)=>e-t),t=B.deviceSizes.sort((e,t)=>e-t),n=null==(r=B.qualities)?void 0:r.sort((e,t)=>e-t);u={...B,allSizes:e,deviceSizes:t,qualities:n}}if(void 0===G)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let F=I.loader||G;delete I.loader,delete I.srcSet;let L="__next_img_default"in F;if(L){if("custom"===u.loader)throw Object.defineProperty(Error('Image with src "'+f+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=F;F=t=>{let{config:r,...n}=t;return e(n)}}if(P){"fill"===P&&(x=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[P];e&&(w={...w,...e});let t={responsive:"100vw",fill:"100vw"}[P];t&&!p&&(p=t)}let V="",W=a(y),q=a(A);if((s=f)&&"object"==typeof s&&(o(s)||void 0!==s.src)){let e=o(f)?f.default:f;if(!e.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!e.height||!e.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(d=e.blurWidth,c=e.blurHeight,E=E||e.blurDataURL,V=e.src,!x)if(W||q){if(W&&!q){let t=W/e.width;q=Math.round(e.height*t)}else if(!W&&q){let t=q/e.height;W=Math.round(e.width*t)}}else W=e.width,q=e.height}let H=!m&&("lazy"===h||void 0===h);(!(f="string"==typeof f?f:V)||f.startsWith("data:")||f.startsWith("blob:"))&&(g=!0,H=!1),u.unoptimized&&(g=!0),L&&!u.dangerouslyAllowSVG&&f.split("?",1)[0].endsWith(".svg")&&(g=!0);let K=a(v),J=Object.assign(x?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:R,objectPosition:N}:{},D?{}:{color:"transparent"},w),Y=U||"empty"===_?null:"blur"===_?'url("data:image/svg+xml;charset=utf-8,'+(0,n.getImageBlurSvg)({widthInt:W,heightInt:q,blurWidth:d,blurHeight:c,blurDataURL:E||"",objectFit:J.objectFit})+'")':'url("'+_+'")',X=i.includes(J.objectFit)?"fill"===J.objectFit?"100% 100%":"cover":J.objectFit,Q=Y?{backgroundSize:X,backgroundPosition:J.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},Z=function(e){let{config:t,src:r,unoptimized:n,width:l,quality:i,sizes:o,loader:a}=e;if(n)return{src:r,srcSet:void 0,sizes:void 0};let{widths:s,kind:u}=function(e,t,r){let{deviceSizes:n,allSizes:l}=e;if(r){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let n;n=e.exec(r);)t.push(parseInt(n[2]));if(t.length){let e=.01*Math.min(...t);return{widths:l.filter(t=>t>=n[0]*e),kind:"w"}}return{widths:l,kind:"w"}}return"number"!=typeof t?{widths:n,kind:"w"}:{widths:[...new Set([t,2*t].map(e=>l.find(t=>t>=e)||l[l.length-1]))],kind:"x"}}(t,l,o),d=s.length-1;return{sizes:o||"w"!==u?o:"100vw",srcSet:s.map((e,n)=>a({config:t,src:r,quality:i,width:e})+" "+("w"===u?e:n+1)+u).join(", "),src:a({config:t,src:r,quality:i,width:s[d]})}}({config:u,src:f,unoptimized:g,width:W,quality:K,sizes:p,loader:F});return{props:{...I,loading:H?"lazy":h,fetchPriority:k,width:W,height:q,decoding:O,className:b,style:{...J,...Q},sizes:Z.sizes,srcSet:Z.srcSet,src:j||Z.src},meta:{unoptimized:g,priority:m,placeholder:_,fill:x}}}},98879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let n=e.r(71645),l="undefined"==typeof window,i=l?()=>{}:n.useLayoutEffect,o=l?()=>{}:n.useEffect;function a(e){let{headManager:t,reduceComponentsToState:r}=e;function a(){if(t&&t.mountedInstances){let l=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(l,e))}}if(l){var s;null==t||null==(s=t.mountedInstances)||s.add(e.children),a()}return i(()=>{var r;return null==t||null==(r=t.mountedInstances)||r.add(e.children),()=>{var r;null==t||null==(r=t.mountedInstances)||r.delete(e.children)}}),i(()=>(t&&(t._pendingUpdate=a),()=>{t&&(t._pendingUpdate=a)})),o(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},58908,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"AmpStateContext",{enumerable:!0,get:function(){return n}});let n=e.r(55682)._(e.r(71645)).default.createContext({})},15986,(e,t,r)=>{"use strict";function n(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isInAmpMode",{enumerable:!0,get:function(){return n}})},25633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return m},defaultHead:function(){return c}});let n=e.r(55682),l=e.r(90809),i=e.r(18050),o=l._(e.r(71645)),a=n._(e.r(98879)),s=e.r(58908),u=e.r(42732),d=e.r(15986);function c(e){void 0===e&&(e=!1);let t=[(0,i.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,i.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===o.default.Fragment?e.concat(o.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let p=["name","httpEquiv","charSet","itemProp"];function g(e,t){let{inAmpMode:r}=t;return e.reduce(f,[]).reverse().concat(c(r).reverse()).filter(function(){let e=new Set,t=new Set,r=new Set,n={};return l=>{let i=!0,o=!1;if(l.key&&"number"!=typeof l.key&&l.key.indexOf("$")>0){o=!0;let t=l.key.slice(l.key.indexOf("$")+1);e.has(t)?i=!1:e.add(t)}switch(l.type){case"title":case"base":t.has(l.type)?i=!1:t.add(l.type);break;case"meta":for(let e=0,t=p.length;e<t;e++){let t=p[e];if(l.props.hasOwnProperty(t))if("charSet"===t)r.has(t)?i=!1:r.add(t);else{let e=l.props[t],r=n[t]||new Set;("name"!==t||!o)&&r.has(e)?i=!1:(r.add(e),n[t]=r)}}}return i}}()).reverse().map((e,t)=>{let r=e.key||t;return o.default.cloneElement(e,{key:r})})}let m=function(e){let{children:t}=e,r=(0,o.useContext)(s.AmpStateContext),n=(0,o.useContext)(u.HeadManagerContext);return(0,i.jsx)(a.default,{reduceComponentsToState:g,headManager:n,inAmpMode:(0,d.isInAmpMode)(r),children:t})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18556,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return i}});let n=e.r(55682)._(e.r(71645)),l=e.r(87690),i=n.default.createContext(l.imageConfigDefault)},65856,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return n}});let n=e.r(55682)._(e.r(71645)).default.createContext(null)},1948,(e,t,r)=>{"use strict";function n(e){var t;let{config:r,src:n,width:l,quality:i}=e,o=i||(null==(t=r.qualities)?void 0:t.reduce((e,t)=>Math.abs(t-75)<Math.abs(e-75)?t:e))||75;return r.path+"?url="+encodeURIComponent(n)+"&w="+l+"&q="+o+(n.startsWith("/_next/static/media/"),"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}}),n.__next_img_default=!0;let l=n},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return A}});let n=e.r(55682),l=e.r(90809),i=e.r(18050),o=l._(e.r(71645)),a=n._(e.r(74080)),s=n._(e.r(25633)),u=e.r(8927),d=e.r(87690),c=e.r(18556);e.r(33525);let f=e.r(65856),p=n._(e.r(1948)),g=e.r(18581),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/app/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,r,n,l,i,o){let a=null==e?void 0:e.src;e&&e["data-loaded-src"]!==a&&(e["data-loaded-src"]=a,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&l(!0),null==r?void 0:r.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,l=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>l,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{l=!0,t.stopPropagation()}})}(null==n?void 0:n.current)&&n.current(e)}}))}function b(e){return o.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let v=(0,o.forwardRef)((e,t)=>{let{src:r,srcSet:n,sizes:l,height:a,width:s,decoding:u,className:d,style:c,fetchPriority:f,placeholder:p,loading:m,unoptimized:v,fill:y,onLoadRef:A,onLoadingCompleteRef:x,setBlurComplete:w,setShowAltText:j,sizesInput:S,onLoad:C,onError:_,...E}=e,k=(0,o.useCallback)(e=>{e&&(_&&(e.src=e.src),e.complete&&h(e,p,A,x,w,v,S))},[r,p,A,x,w,_,v,S]),O=(0,g.useMergedRef)(t,k);return(0,i.jsx)("img",{...E,...b(f),loading:m,width:s,height:a,decoding:u,"data-nimg":y?"fill":"1",className:d,style:c,sizes:l,srcSet:n,src:r,ref:O,onLoad:e=>{h(e.currentTarget,p,A,x,w,v,S)},onError:e=>{j(!0),"empty"!==p&&w(!0),_&&_(e)}})});function y(e){let{isAppRouter:t,imgAttributes:r}=e,n={as:"image",imageSrcSet:r.srcSet,imageSizes:r.sizes,crossOrigin:r.crossOrigin,referrerPolicy:r.referrerPolicy,...b(r.fetchPriority)};return t&&a.default.preload?(a.default.preload(r.src,n),null):(0,i.jsx)(s.default,{children:(0,i.jsx)("link",{rel:"preload",href:r.srcSet?void 0:r.src,...n},"__nimg-"+r.src+r.srcSet+r.sizes)})}let A=(0,o.forwardRef)((e,t)=>{let r=(0,o.useContext)(f.RouterContext),n=(0,o.useContext)(c.ImageConfigContext),l=(0,o.useMemo)(()=>{var e;let t=m||n||d.imageConfigDefault,r=[...t.deviceSizes,...t.imageSizes].sort((e,t)=>e-t),l=t.deviceSizes.sort((e,t)=>e-t),i=null==(e=t.qualities)?void 0:e.sort((e,t)=>e-t);return{...t,allSizes:r,deviceSizes:l,qualities:i}},[n]),{onLoad:a,onLoadingComplete:s}=e,g=(0,o.useRef)(a);(0,o.useEffect)(()=>{g.current=a},[a]);let h=(0,o.useRef)(s);(0,o.useEffect)(()=>{h.current=s},[s]);let[b,A]=(0,o.useState)(!1),[x,w]=(0,o.useState)(!1),{props:j,meta:S}=(0,u.getImgProps)(e,{defaultLoader:p.default,imgConf:l,blurComplete:b,showAltText:x});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(v,{...j,unoptimized:S.unoptimized,placeholder:S.placeholder,fill:S.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:A,setShowAltText:w,sizesInput:e.sizes,ref:t}),S.priority?(0,i.jsx)(y,{isAppRouter:!r,imgAttributes:j}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return s},getImageProps:function(){return a}});let n=e.r(55682),l=e.r(8927),i=e.r(5500),o=n._(e.r(1948));function a(e){let{props:t}=(0,l.getImgProps)(e,{defaultLoader:o.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/app/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let s=i.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},85413,e=>{"use strict";e.s(["Empty",()=>i],85413);var t=e.i(18050),r=e.i(57688);let n={src:e.i(96920).default,width:973,height:482,blurWidth:8,blurHeight:4,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAj0lEQVR42gGEAHv/AAAAAAATGRcXg4uIgcjJycORlJOKDxEQDAAAAAAAAAAAAAQEBANfa2Zj5fTu9ff9+/7q8u7uc3p3cgoLCwkAAAAAAEJGRELH1M/S4/jw/tD25v7U9ef+1ubf4jg8OjAAAAAAAHqBfmqxvLiisMG7rK7GvLKxxb2wpbKtoVNYVlADAwMC5U08HYgBOJwAAAAASUVORK5CYII="};var l=e.i(75157);function i(e){let{text:i="暂无数据",className:o,showImage:a=!0,imageSrc:s=n,imageAlt:u="暂无数据",imageSize:d=180,imageClassName:c}=e,f="string"==typeof s?{width:d,height:d}:{width:s.width,height:s.height};return(0,t.jsxs)("div",{className:(0,l.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]",o),role:"status","aria-live":"polite",children:[a?(0,t.jsx)("span",{className:(0,l.cn)("block shrink-0",c),style:{width:d},children:(0,t.jsx)(r.default,{src:s,alt:u,width:f.width,height:f.height,unoptimized:!0,draggable:!1,sizes:"".concat(d,"px"),className:"h-auto w-full object-contain"})}):null,(0,t.jsx)("span",{children:i})]})}},93479,e=>{"use strict";e.s(["Input",()=>n]);var t=e.i(18050),r=e.i(75157);function n(e){let{className:n,type:l="text",size:i="default",...o}=e;return(0,t.jsx)("input",{type:l,"data-slot":"input","data-size":i,className:(0,r.cn)("h-9 w-full appearance-none rounded-md border border-solid border-border bg-transparent px-3 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--border-hover)] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none] data-[size=default]:h-9 data-[size=lg]:h-10 data-[size=sm]:h-7",n),...o})}},96920,e=>{e.v("/app/_next/static/media/no-data.48c973b9.png")},51239,e=>{e.v("/app/_next/static/media/data-loading.be8d921a.png")},2839,e=>{"use strict";e.s(["Loading",()=>o],2839);var t=e.i(18050),r=e.i(57688);let n={src:e.i(51239).default,width:951,height:482,blurWidth:8,blurHeight:4,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAj0lEQVR42gGEAHv/AAAAAAANERAObXJwYaGko5N/gYBwDg8PCgAAAAAAAAAAAAMEBAJic2xp2+3m7fL8+P7l6ujjUlhWTAYGBgUAAAAAADM3NTG6x8LB7fr1/vD89/7f9+3+wNXNzycpKB4AAAAAAJ+qpozL2dO/0NvWx9Td2c6gzrzRpcq8u2FpZk8CAgIBCRI7kCfNfAcAAAAASUVORK5CYII="};var l=e.i(87968),i=e.i(75157);function o(e){let{text:o="加载中",className:a,showImage:s=!0,imageSrc:u=n,imageAlt:d="加载中",imageSize:c=180,imageClassName:f}=e,p="string"==typeof u?{width:c,height:c}:{width:u.width,height:u.height};return(0,t.jsxs)("div",{className:(0,i.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]",a),role:"status","aria-live":"polite",children:[s?(0,t.jsx)("span",{className:(0,i.cn)("block shrink-0",f),style:{width:c},children:(0,t.jsx)(r.default,{src:u,alt:d,width:p.width,height:p.height,unoptimized:!0,draggable:!1,sizes:"".concat(c,"px"),className:"h-auto w-full object-contain"})}):null,(0,t.jsxs)("span",{className:"flex items-center",children:[(0,t.jsx)(l.Spinner,{className:"mr-2"}),o]})]})}},20783,e=>{"use strict";e.s(["composeRefs",()=>n,"useComposedRefs",()=>l]);var t=e.i(71645);function r(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function n(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return e=>{let n=!1,l=t.map(t=>{let l=r(t,e);return n||"function"!=typeof l||(n=!0),l});if(n)return()=>{for(let e=0;e<l.length;e++){let n=l[e];"function"==typeof n?n():r(t[e],null)}}}}function l(){for(var e=arguments.length,r=Array(e),l=0;l<e;l++)r[l]=arguments[l];return t.useCallback(n(...r),r)}},24687,e=>{"use strict";e.s(["Textarea",()=>n]);var t=e.i(18050),r=e.i(75157);function n(e){let{className:n,...l}=e;return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,r.cn)("flex min-h-20 w-full rounded-md border border-solid border-border bg-transparent px-3 py-2 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--border-hover)] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none]",n),...l})}},18900,69051,e=>{"use strict";function t(e){let t=null==e?"":String(e);return""===t?'""':/[\s#"'\\\n]/.test(t)||t!==t.trim()?'"'.concat(t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):t}function r(e){let t=String(e).split(/\r?\n/),r={},n=/^\s*(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)$/;for(let e=0;e<t.length;e++){let l=t[e],i=n.exec(l);i&&(r[i[1]]=function(e){let t=e.trimEnd();return t.length>=2&&'"'===t[0]&&'"'===t[t.length-1]?t.slice(1,-1).replace(/\\(.)/g,(e,t)=>"n"===t?"\n":'"'===t?'"':"\\"===t?"\\":"\\".concat(t)):t.length>=2&&"'"===t[0]&&"'"===t[t.length-1]?t.slice(1,-1):e}(i[2]))}return r}function n(e,r){let n=Array.isArray(e)?e:[],l=new Set;for(let e=0;e<n.length;e++){let t=n[e];t&&"object"==typeof t&&"string"==typeof t.key&&l.add(t.key)}let i=[];for(let e=0;e<n.length;e++){let l=n[e];if(!l||"object"!=typeof l||"string"!=typeof l.key)continue;let o=l.key;if(!Object.prototype.hasOwnProperty.call(r,o))continue;let a=r[o];null!=a&&""!==String(a).trim()&&i.push("".concat(o,"=").concat(t(String(a))))}let o=Object.keys(r).filter(e=>!l.has(e)).sort();for(let e=0;e<o.length;e++){let n=o[e],l=r[n];null!=l&&""!==String(l).trim()&&i.push("".concat(n,"=").concat(t(String(l))))}let a=i.join("\n");return a.length>0?"".concat(a,"\n"):""}e.s(["buildEnvFileContentFromForm",()=>n,"parseEnvContentToMap",()=>r],18900),e.s(["loadDemoSingleMessage",()=>u,"loadSystemEnv",()=>o,"saveSystemEnv",()=>a,"saveSystemMcpJson",()=>s],69051);var l=e.i(29250),i=e.i(36845);async function o(e,t,r){return(0,l.get)((0,i.buildSystemEnvApiUrl)(e,t,r))}async function a(e,t,r,n){await (0,l.patch)((0,i.buildSystemEnvApiUrl)(e,t,r),{content:n})}async function s(e,t,r,n){await (0,l.patch)((0,i.buildSystemMcpJsonApiUrl)(e,t,r),{content:n})}async function u(){return(0,l.get)("/api/demo/single-message")}},44039,99650,e=>{"use strict";e.s(["buildGroupAgentEnvFieldValues",()=>u,"buildProjectEnvFormDefaults",()=>i,"groupAgentEnvSchemaByGroup",()=>o,"mergeAgentEnvGroupLabels",()=>l,"mergeGroupEnvIntoAgentEnv",()=>s,"normalizeAgentEnvSchema",()=>n,"schemaKeySet",()=>a],44039);let t=["llm","git","geelib","tutui","system"],r={llm:"llm设置",git:"git设置",geelib:"geelib设置",tutui:"tutui设置",system:"系统设置"};function n(e){if(!Array.isArray(e))return[];let r=[];for(let n of e){if(!n||"object"!=typeof n)continue;let e="string"==typeof n.key?n.key.trim():"",l="string"==typeof n.group?n.group.trim():"";e&&t.includes(l)&&r.push({key:e,group:l,label:"string"==typeof n.label&&n.label.trim()?n.label.trim():e,placeholder:"string"==typeof n.placeholder?n.placeholder:""})}return r}function l(e){let n={...r};if(!e||"object"!=typeof e)return n;for(let r of t){let t=e[r];"string"==typeof t&&t.trim()&&(n[r]=t.trim())}return n}function i(e,t){let r={};for(let l of e){var n;r[l.key]=null!=(n=t[l.key])?n:""}return r}function o(e){let r={};for(let e of t)r[e]=[];for(let n of e)t.includes(n.group)&&r[n.group].push(n);return r}function a(e){return new Set(e.map(e=>e.key))}function s(e,t,r){let n={...e};for(let e of t){var l;let t=String(null!=(l=r[e.key])?l:"").trim();t?n[e.key]=t:delete n[e.key]}return n}function u(e,t,r){let n={};for(let l of t){let t=e[l.key];if("string"==typeof t&&t.length>0){n[l.key]=t;continue}let i=r[l.key];n[l.key]="string"==typeof i?i:""}return n}e.s(["persistAgentEnv",()=>g],99650);var d=e.i(13354),c=e.i(70074),f=e.i(82136),p=e.i(65934);async function g(e,t,r,n,l,i){var o,a,s,u;let g=p.useAppStore.getState(),m={tools:g.agentConfig.tools.slice(),disallowedTools:g.agentConfig.disallowedTools.slice(),mcpServers:g.agentConfig.mcpServers.slice(),skills:g.agentConfig.skills.slice(),agentTeams:g.agentConfig.agentTeams.slice(),model:g.agentConfig.model,rules:g.agentConfig.rules.slice(),effort:null!=(o=g.agentConfig.effort)?o:null,background:null!=(a=g.agentConfig.background)&&a,isolation:null!=(s=g.agentConfig.isolation)?s:"",whentouse:null!=(u=g.agentConfig.whentouse)?u:"",env:n,llmProviders:g.agentConfig.llmProviders.map(e=>({...e,models:e.models.map(e=>({...e}))})),...i};await (0,f.saveAgentConfig)(e,t,r,m),g.setAgentConfig({...m,env:{...n}}),p.useAppStore.getState().wsConnected&&l();let h=p.useAppStore.getState();h.setStatus("环境变量已保存"+(h.wsConnected?",已请求 worker 重新加载配置":""),(0,c.resolveInfoStatusClass)(h.bridgeReady,h.wsConnected)),d.appToast.success(h.wsConnected?"已保存到 agent.json,并已请求 worker 重新加载配置。":"已保存到 agent.json。重连 WebSocket 后子进程环境将同步。")}},46412,e=>{"use strict";e.s(["AgentEnvGroupForm",()=>u]);var t=e.i(18050),r=e.i(93479),n=e.i(24687),l=e.i(67489),i=e.i(75157);let o="__empty__",a=[{value:"anthropic",label:"anthropic"},{value:"openai",label:"openai"}],s=[{value:"1",label:"启用全部 MCP 常驻会话"},{value:"0",label:"禁用"}];function u(e){let{group:u,fields:d,fieldValues:c,whentouseValue:f,onFieldChange:p,onWhentouseChange:g}=e;return(0,t.jsxs)("div",{className:"divide-y divide-[var(--ds-border)]",children:["system"===u?(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsx)("label",{className:"text-[var(--ds-text)]",htmlFor:"agent-env-whentouse",children:"使用时机(whentouse)"}),(0,t.jsx)(n.Textarea,{id:"agent-env-whentouse",rows:3,spellCheck:!1,autoComplete:"off",placeholder:"输入该 agent 的使用时机描述","aria-label":"agent.json whentouse",className:"min-h-[88px] resize-y border-[var(--ds-border)] bg-[var(--ds-bg)] placeholder:text-[var(--text-placeholder)]",value:f,onChange:e=>g(e.target.value)})]}):null,d.map(e=>{let n="agent-env-field-".concat(e.key),u="string"==typeof c[e.key]?c[e.key]:"";if("LLM_PROVIDER"===e.key){let r="anthropic"===u||"openai"===u?u:"";return(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsx)("label",{className:"text-basic text-[var(--ds-text)]",htmlFor:n,children:e.label}),(0,t.jsxs)(l.Select,{value:r||o,onValueChange:t=>p(e.key,t===o?"":t),children:[(0,t.jsx)(l.SelectTrigger,{id:n,className:(0,i.cn)("h-10 w-full border-[var(--ds-border)] bg-[var(--ds-bg)]",!r&&"text-[var(--text-placeholder)]"),children:(0,t.jsx)(l.SelectValue,{placeholder:"请选择"})}),(0,t.jsxs)(l.SelectContent,{children:[(0,t.jsx)(l.SelectItem,{value:o,children:"请选择"}),a.map(e=>(0,t.jsx)(l.SelectItem,{value:e.value,children:e.label},e.value))]})]})]},e.key)}if("TUITUI_CHANNEL_SESSION"===e.key){let r="1"===u?"1":"0";return(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsx)("label",{className:"text-basic text-[var(--ds-text)]",htmlFor:n,children:e.label}),(0,t.jsxs)(l.Select,{value:r,onValueChange:t=>p(e.key,t),children:[(0,t.jsx)(l.SelectTrigger,{id:n,className:"h-10 w-full border-[var(--ds-border)] bg-[var(--ds-bg)]",children:(0,t.jsx)(l.SelectValue,{placeholder:"请选择"})}),(0,t.jsx)(l.SelectContent,{children:s.map(e=>(0,t.jsx)(l.SelectItem,{value:e.value,children:e.label},e.value))})]})]},e.key)}return(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsx)("label",{className:"text-[var(--ds-text)]",htmlFor:n,children:e.label}),(0,t.jsx)(r.Input,{id:n,type:"text",spellCheck:!1,autoComplete:"off",placeholder:e.placeholder,className:"h-10 border-[var(--ds-border)] bg-[var(--ds-bg)] placeholder:text-[var(--text-placeholder)]",value:u,onChange:t=>p(e.key,t.target.value)})]},e.key)})]})}}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,2839,e=>{"use strict";e.s(["Loading",()=>s],2839);var t=e.i(18050),r=e.i(57688);let n={src:e.i(51239).default,width:951,height:482,blurWidth:8,blurHeight:4,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAj0lEQVR42gGEAHv/AAAAAAANERAObXJwYaGko5N/gYBwDg8PCgAAAAAAAAAAAAMEBAJic2xp2+3m7fL8+P7l6ujjUlhWTAYGBgUAAAAAADM3NTG6x8LB7fr1/vD89/7f9+3+wNXNzycpKB4AAAAAAJ+qpozL2dO/0NvWx9Td2c6gzrzRpcq8u2FpZk8CAgIBCRI7kCfNfAcAAAAASUVORK5CYII="};var i=e.i(87968),a=e.i(75157);function s(e){let{text:s="加载中",className:l,showImage:o=!0,imageSrc:c=n,imageAlt:u="加载中",imageSize:d=180,imageClassName:p}=e,f="string"==typeof c?{width:d,height:d}:{width:c.width,height:c.height};return(0,t.jsxs)("div",{className:(0,a.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]",l),role:"status","aria-live":"polite",children:[o?(0,t.jsx)("span",{className:(0,a.cn)("block shrink-0",p),style:{width:d},children:(0,t.jsx)(r.default,{src:c,alt:u,width:f.width,height:f.height,unoptimized:!0,draggable:!1,sizes:"".concat(d,"px"),className:"h-auto w-full object-contain"})}):null,(0,t.jsxs)("span",{className:"flex items-center",children:[(0,t.jsx)(i.Spinner,{className:"mr-2"}),s]})]})}},96920,e=>{e.v("/app/_next/static/media/no-data.48c973b9.png")},51239,e=>{e.v("/app/_next/static/media/data-loading.be8d921a.png")},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(71645);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=a(e,n)),t&&(i.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},88143,(e,t,r)=>{"use strict";function n(e){let{widthInt:t,heightInt:r,blurWidth:n,blurHeight:i,blurDataURL:a,objectFit:s}=e,l=n?40*n:t,o=i?40*i:r,c=l&&o?"viewBox='0 0 "+l+" "+o+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+c+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(c?"none":"contain"===s?"xMidYMid":"cover"===s?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+a+"'/%3E%3C/svg%3E"}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},87690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{VALID_LOADERS:function(){return n},imageConfigDefault:function(){return i}});let n=["default","imgix","cloudinary","akamai","custom"],i={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumResponseBody:5e7,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:void 0,unoptimized:!1}},8927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return o}}),e.r(33525);let n=e.r(88143),i=e.r(87690),a=["-moz-initial","fill","none","scale-down",void 0];function s(e){return void 0!==e.default}function l(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function o(e,t){var r,o;let c,u,d,{src:p,sizes:f,unoptimized:m=!1,priority:g=!1,loading:h,className:b,quality:v,width:x,height:y,fill:A=!1,style:j,overrideSrc:w,onLoad:C,onLoadingComplete:S,placeholder:_="empty",blurDataURL:O,fetchPriority:E,decoding:M="async",layout:N,objectFit:P,objectPosition:k,lazyBoundary:R,lazyRoot:z,...I}=e,{imgConf:T,showAltText:D,blurComplete:B,defaultLoader:U}=t,L=T||i.imageConfigDefault;if("allSizes"in L)c=L;else{let e=[...L.deviceSizes,...L.imageSizes].sort((e,t)=>e-t),t=L.deviceSizes.sort((e,t)=>e-t),n=null==(r=L.qualities)?void 0:r.sort((e,t)=>e-t);c={...L,allSizes:e,deviceSizes:t,qualities:n}}if(void 0===U)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let J=I.loader||U;delete I.loader,delete I.srcSet;let G="__next_img_default"in J;if(G){if("custom"===c.loader)throw Object.defineProperty(Error('Image with src "'+p+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=J;J=t=>{let{config:r,...n}=t;return e(n)}}if(N){"fill"===N&&(A=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[N];e&&(j={...j,...e});let t={responsive:"100vw",fill:"100vw"}[N];t&&!f&&(f=t)}let F="",H=l(x),V=l(y);if((o=p)&&"object"==typeof o&&(s(o)||void 0!==o.src)){let e=s(p)?p.default:p;if(!e.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!e.height||!e.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(u=e.blurWidth,d=e.blurHeight,O=O||e.blurDataURL,F=e.src,!A)if(H||V){if(H&&!V){let t=H/e.width;V=Math.round(e.height*t)}else if(!H&&V){let t=V/e.height;H=Math.round(e.width*t)}}else H=e.width,V=e.height}let K=!g&&("lazy"===h||void 0===h);(!(p="string"==typeof p?p:F)||p.startsWith("data:")||p.startsWith("blob:"))&&(m=!0,K=!1),c.unoptimized&&(m=!0),G&&!c.dangerouslyAllowSVG&&p.split("?",1)[0].endsWith(".svg")&&(m=!0);let q=l(v),Y=Object.assign(A?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:P,objectPosition:k}:{},D?{}:{color:"transparent"},j),W=B||"empty"===_?null:"blur"===_?'url("data:image/svg+xml;charset=utf-8,'+(0,n.getImageBlurSvg)({widthInt:H,heightInt:V,blurWidth:u,blurHeight:d,blurDataURL:O||"",objectFit:Y.objectFit})+'")':'url("'+_+'")',X=a.includes(Y.objectFit)?"fill"===Y.objectFit?"100% 100%":"cover":Y.objectFit,Q=W?{backgroundSize:X,backgroundPosition:Y.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:W}:{},$=function(e){let{config:t,src:r,unoptimized:n,width:i,quality:a,sizes:s,loader:l}=e;if(n)return{src:r,srcSet:void 0,sizes:void 0};let{widths:o,kind:c}=function(e,t,r){let{deviceSizes:n,allSizes:i}=e;if(r){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let n;n=e.exec(r);)t.push(parseInt(n[2]));if(t.length){let e=.01*Math.min(...t);return{widths:i.filter(t=>t>=n[0]*e),kind:"w"}}return{widths:i,kind:"w"}}return"number"!=typeof t?{widths:n,kind:"w"}:{widths:[...new Set([t,2*t].map(e=>i.find(t=>t>=e)||i[i.length-1]))],kind:"x"}}(t,i,s),u=o.length-1;return{sizes:s||"w"!==c?s:"100vw",srcSet:o.map((e,n)=>l({config:t,src:r,quality:a,width:e})+" "+("w"===c?e:n+1)+c).join(", "),src:l({config:t,src:r,quality:a,width:o[u]})}}({config:c,src:p,unoptimized:m,width:H,quality:q,sizes:f,loader:J});return{props:{...I,loading:K?"lazy":h,fetchPriority:E,width:H,height:V,decoding:M,className:b,style:{...Y,...Q},sizes:$.sizes,srcSet:$.srcSet,src:w||$.src},meta:{unoptimized:m,priority:g,placeholder:_,fill:A}}}},98879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let n=e.r(71645),i="undefined"==typeof window,a=i?()=>{}:n.useLayoutEffect,s=i?()=>{}:n.useEffect;function l(e){let{headManager:t,reduceComponentsToState:r}=e;function l(){if(t&&t.mountedInstances){let i=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(i,e))}}if(i){var o;null==t||null==(o=t.mountedInstances)||o.add(e.children),l()}return a(()=>{var r;return null==t||null==(r=t.mountedInstances)||r.add(e.children),()=>{var r;null==t||null==(r=t.mountedInstances)||r.delete(e.children)}}),a(()=>(t&&(t._pendingUpdate=l),()=>{t&&(t._pendingUpdate=l)})),s(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},58908,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"AmpStateContext",{enumerable:!0,get:function(){return n}});let n=e.r(55682)._(e.r(71645)).default.createContext({})},15986,(e,t,r)=>{"use strict";function n(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isInAmpMode",{enumerable:!0,get:function(){return n}})},25633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return g},defaultHead:function(){return d}});let n=e.r(55682),i=e.r(90809),a=e.r(18050),s=i._(e.r(71645)),l=n._(e.r(98879)),o=e.r(58908),c=e.r(42732),u=e.r(15986);function d(e){void 0===e&&(e=!1);let t=[(0,a.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,a.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function p(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===s.default.Fragment?e.concat(s.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let f=["name","httpEquiv","charSet","itemProp"];function m(e,t){let{inAmpMode:r}=t;return e.reduce(p,[]).reverse().concat(d(r).reverse()).filter(function(){let e=new Set,t=new Set,r=new Set,n={};return i=>{let a=!0,s=!1;if(i.key&&"number"!=typeof i.key&&i.key.indexOf("$")>0){s=!0;let t=i.key.slice(i.key.indexOf("$")+1);e.has(t)?a=!1:e.add(t)}switch(i.type){case"title":case"base":t.has(i.type)?a=!1:t.add(i.type);break;case"meta":for(let e=0,t=f.length;e<t;e++){let t=f[e];if(i.props.hasOwnProperty(t))if("charSet"===t)r.has(t)?a=!1:r.add(t);else{let e=i.props[t],r=n[t]||new Set;("name"!==t||!s)&&r.has(e)?a=!1:(r.add(e),n[t]=r)}}}return a}}()).reverse().map((e,t)=>{let r=e.key||t;return s.default.cloneElement(e,{key:r})})}let g=function(e){let{children:t}=e,r=(0,s.useContext)(o.AmpStateContext),n=(0,s.useContext)(c.HeadManagerContext);return(0,a.jsx)(l.default,{reduceComponentsToState:m,headManager:n,inAmpMode:(0,u.isInAmpMode)(r),children:t})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18556,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return a}});let n=e.r(55682)._(e.r(71645)),i=e.r(87690),a=n.default.createContext(i.imageConfigDefault)},65856,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return n}});let n=e.r(55682)._(e.r(71645)).default.createContext(null)},1948,(e,t,r)=>{"use strict";function n(e){var t;let{config:r,src:n,width:i,quality:a}=e,s=a||(null==(t=r.qualities)?void 0:t.reduce((e,t)=>Math.abs(t-75)<Math.abs(e-75)?t:e))||75;return r.path+"?url="+encodeURIComponent(n)+"&w="+i+"&q="+s+(n.startsWith("/_next/static/media/"),"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return i}}),n.__next_img_default=!0;let i=n},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return y}});let n=e.r(55682),i=e.r(90809),a=e.r(18050),s=i._(e.r(71645)),l=n._(e.r(74080)),o=n._(e.r(25633)),c=e.r(8927),u=e.r(87690),d=e.r(18556);e.r(33525);let p=e.r(65856),f=n._(e.r(1948)),m=e.r(18581),g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/app/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,r,n,i,a,s){let l=null==e?void 0:e.src;e&&e["data-loaded-src"]!==l&&(e["data-loaded-src"]=l,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&i(!0),null==r?void 0:r.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,i=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}})}(null==n?void 0:n.current)&&n.current(e)}}))}function b(e){return s.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let v=(0,s.forwardRef)((e,t)=>{let{src:r,srcSet:n,sizes:i,height:l,width:o,decoding:c,className:u,style:d,fetchPriority:p,placeholder:f,loading:g,unoptimized:v,fill:x,onLoadRef:y,onLoadingCompleteRef:A,setBlurComplete:j,setShowAltText:w,sizesInput:C,onLoad:S,onError:_,...O}=e,E=(0,s.useCallback)(e=>{e&&(_&&(e.src=e.src),e.complete&&h(e,f,y,A,j,v,C))},[r,f,y,A,j,_,v,C]),M=(0,m.useMergedRef)(t,E);return(0,a.jsx)("img",{...O,...b(p),loading:g,width:o,height:l,decoding:c,"data-nimg":x?"fill":"1",className:u,style:d,sizes:i,srcSet:n,src:r,ref:M,onLoad:e=>{h(e.currentTarget,f,y,A,j,v,C)},onError:e=>{w(!0),"empty"!==f&&j(!0),_&&_(e)}})});function x(e){let{isAppRouter:t,imgAttributes:r}=e,n={as:"image",imageSrcSet:r.srcSet,imageSizes:r.sizes,crossOrigin:r.crossOrigin,referrerPolicy:r.referrerPolicy,...b(r.fetchPriority)};return t&&l.default.preload?(l.default.preload(r.src,n),null):(0,a.jsx)(o.default,{children:(0,a.jsx)("link",{rel:"preload",href:r.srcSet?void 0:r.src,...n},"__nimg-"+r.src+r.srcSet+r.sizes)})}let y=(0,s.forwardRef)((e,t)=>{let r=(0,s.useContext)(p.RouterContext),n=(0,s.useContext)(d.ImageConfigContext),i=(0,s.useMemo)(()=>{var e;let t=g||n||u.imageConfigDefault,r=[...t.deviceSizes,...t.imageSizes].sort((e,t)=>e-t),i=t.deviceSizes.sort((e,t)=>e-t),a=null==(e=t.qualities)?void 0:e.sort((e,t)=>e-t);return{...t,allSizes:r,deviceSizes:i,qualities:a}},[n]),{onLoad:l,onLoadingComplete:o}=e,m=(0,s.useRef)(l);(0,s.useEffect)(()=>{m.current=l},[l]);let h=(0,s.useRef)(o);(0,s.useEffect)(()=>{h.current=o},[o]);let[b,y]=(0,s.useState)(!1),[A,j]=(0,s.useState)(!1),{props:w,meta:C}=(0,c.getImgProps)(e,{defaultLoader:f.default,imgConf:i,blurComplete:b,showAltText:A});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(v,{...w,unoptimized:C.unoptimized,placeholder:C.placeholder,fill:C.fill,onLoadRef:m,onLoadingCompleteRef:h,setBlurComplete:y,setShowAltText:j,sizesInput:e.sizes,ref:t}),C.priority?(0,a.jsx)(x,{isAppRouter:!r,imgAttributes:w}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return o},getImageProps:function(){return l}});let n=e.r(55682),i=e.r(8927),a=e.r(5500),s=n._(e.r(1948));function l(e){let{props:t}=(0,i.getImgProps)(e,{defaultLoader:s.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/app/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let o=a.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},85413,e=>{"use strict";e.s(["Empty",()=>a],85413);var t=e.i(18050),r=e.i(57688);let n={src:e.i(96920).default,width:973,height:482,blurWidth:8,blurHeight:4,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAj0lEQVR42gGEAHv/AAAAAAATGRcXg4uIgcjJycORlJOKDxEQDAAAAAAAAAAAAAQEBANfa2Zj5fTu9ff9+/7q8u7uc3p3cgoLCwkAAAAAAEJGRELH1M/S4/jw/tD25v7U9ef+1ubf4jg8OjAAAAAAAHqBfmqxvLiisMG7rK7GvLKxxb2wpbKtoVNYVlADAwMC5U08HYgBOJwAAAAASUVORK5CYII="};var i=e.i(75157);function a(e){let{text:a="暂无数据",className:s,showImage:l=!0,imageSrc:o=n,imageAlt:c="暂无数据",imageSize:u=180,imageClassName:d}=e,p="string"==typeof o?{width:u,height:u}:{width:o.width,height:o.height};return(0,t.jsxs)("div",{className:(0,i.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]",s),role:"status","aria-live":"polite",children:[l?(0,t.jsx)("span",{className:(0,i.cn)("block shrink-0",d),style:{width:u},children:(0,t.jsx)(r.default,{src:o,alt:c,width:p.width,height:p.height,unoptimized:!0,draggable:!1,sizes:"".concat(u,"px"),className:"h-auto w-full object-contain"})}):null,(0,t.jsx)("span",{children:a})]})}},36413,e=>{"use strict";e.s(["StatusBadge",()=>l],36413);var t=e.i(18050),r=e.i(25913),n=e.i(75157);let i=(0,r.cva)("inline-flex shrink-0 items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-colors focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-white",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function a(e){let{className:r,variant:a,...s}=e;return(0,t.jsx)("span",{"data-slot":"badge",className:(0,n.cn)(i({variant:a}),r),...s})}let s={success:{root:"border-transparent bg-[var(--green-light)] text-[var(--green-dark)]",dot:"bg-[var(--ds-ok)]"},danger:{root:"border-transparent bg-[#fef2f2] text-[var(--ds-danger)]",dot:"bg-[var(--ds-danger)]"},default:{root:"border-transparent bg-[var(--surface-2)] text-[var(--ds-muted)]",dot:"bg-[var(--ds-muted)]"},progress:{root:"border-transparent bg-[color-mix(in_srgb,var(--blue)_12%,var(--surface-1))] text-[var(--blue)]",dot:"bg-[var(--blue)]"},warning:{root:"border-transparent bg-[color-mix(in_srgb,var(--amber)_14%,var(--surface-1))] text-[var(--amber)]",dot:"bg-[var(--amber)]"}};function l(e){let{tone:r="default",showDot:i=!0,dotClassName:l,className:o,children:c,...u}=e,d=s[r];return(0,t.jsxs)(a,{variant:"outline",className:(0,n.cn)("gap-1.5",d.root,o),...u,children:[i?(0,t.jsx)("span",{className:(0,n.cn)("size-1.5 shrink-0 rounded-full",d.dot,l),"aria-hidden":!0}):null,c]})}},55242,e=>{"use strict";e.s(["AppDialog",()=>a]);var t=e.i(18050),r=e.i(71645),n=e.i(76639),i=e.i(75157);function a(e){let{open:a,onOpenChange:s,title:l,children:o,footer:c,width:u="max-w-3xl",minHeight:d}=e,p=(0,r.useId)();return(0,t.jsx)(n.Dialog,{open:a,onOpenChange:s,children:(0,t.jsxs)(n.DialogContent,{"aria-labelledby":p,className:(0,i.cn)(u,d?"!min-h-[--min-h]":""),style:d?{"--min-h":d}:void 0,children:[(0,t.jsxs)(n.DialogHeader,{children:[(0,t.jsx)(n.DialogTitle,{id:p,children:l}),(0,t.jsx)(n.DialogClose,{"aria-label":"关闭"})]}),(0,t.jsx)(n.DialogBody,{className:"!px-4 !py-3",children:o}),c?(0,t.jsx)("div",{className:"flex flex-shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] bg-[var(--ds-sidebar)] px-4 py-3",children:c}):null]})})}},37991,e=>{"use strict";e.s(["McpManageView",()=>w],37991);var t=e.i(18050),r=e.i(71645),n=e.i(65934),i=e.i(87243),a=e.i(13354),s=e.i(50711),l=e.i(55242),o=e.i(92715),c=e.i(2839),u=e.i(36413),d=e.i(19455),p=e.i(94055),f=e.i(94197),m=e.i(36845),g=e.i(53925);function h(e){let{open:r,onOpenChange:n,wsUrl:i,apiBase:a,agent:s}=e;return(0,t.jsx)(g.ResourceImportDialog,{open:r,onOpenChange:n,title:"导入 MCP zip",description:"选择一个 zip 文件并导入到 mcp-runtime。",uploadUrl:(0,m.buildMcpRuntimeImportUrl)(i,a,s),resetKey:s})}var b=e.i(62427);function v(e){return(null!=e.packageId?String(e.packageId).trim():"")||e.id}function x(e){let{open:n,onOpenChange:i,itemId:s,source:o,wsUrl:c,apiBase:u,agent:p,onSaved:f}=e,[m,g]=(0,r.useState)(""),[h,v]=(0,r.useState)(!1),[x,y]=(0,r.useState)(!1),A="remote"===o?"remote":"runtime";(0,r.useEffect)(()=>{if(!n||!s.trim())return;let e=!1;return v(!0),g("加载中…"),(0,b.loadRuntimeMcpItemConfig)(c,u,p,s,A).then(t=>{if(e)return;let r=t.overlay;r&&"object"==typeof r&&!Array.isArray(r)?g(JSON.stringify(r,null,2)):g("{}")}).catch(t=>{e||(a.appToast.error("加载 MCP 配置失败:".concat(t instanceof Error?t.message:String(t))),i(!1))}).finally(()=>{e||v(!1)}),()=>{e=!0}},[n,s,c,u,p,A,i]);let j=(0,r.useCallback)(async()=>{let e;if(!s.trim())return;let t=m.trim();try{e=t?JSON.parse(t):{}}catch(e){a.appToast.error("JSON 解析失败:".concat(e instanceof Error?e.message:String(e)));return}if(!e||"object"!=typeof e||Array.isArray(e))return void a.appToast.error("配置必须是 JSON 对象");if("mcpServers"in e&&null!=e.mcpServers)return void a.appToast.error("请填写标准 server 配置(command/args/env),不要嵌套 mcpServers");let r=0===Object.keys(e).length;y(!0);try{r?await (0,b.clearRuntimeMcpItemConfig)(c,u,p,s,A):await (0,b.saveRuntimeMcpItemConfig)(c,u,p,s,A,e),a.appToast.success("MCP 配置已保存"),i(!1),null==f||f()}catch(e){a.appToast.error("保存失败:".concat(e instanceof Error?e.message:String(e)))}finally{y(!1)}},[s,m,c,u,p,A,i,f]);return(0,t.jsx)(l.AppDialog,{open:n,onOpenChange:i,title:"编辑 MCP 配置 · ".concat(s),width:"max-w-4xl",minHeight:"420px",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:x,onClick:()=>i(!1),children:"取消"}),(0,t.jsx)(d.Button,{type:"button",size:"lg",disabled:x||h,onClick:()=>void j(),children:"保存"})]}),children:(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] p-3 font-mono leading-6 text-[var(--ds-text)] outline-none focus-visible:ring-2",spellCheck:!1,value:m,disabled:h,onChange:e=>g(e.target.value)})})}var y=e.i(68499),A=e.i(72064),j=e.i(56708);function w(){let e=(0,n.useAppStore)(e=>e.wsUrl),m=(0,n.useAppStore)(e=>e.apiBase),g=(0,n.useAppStore)(e=>e.agentConfig),w=(0,n.useAppStore)(e=>e.setAgentConfig),{currentAgent:C,loadAgentConfig:S}=(0,i.useSession)(),_=(0,s.usePersistAgentConfigField)("mcpServers"),O=g.mcpServers,E=(0,r.useMemo)(()=>[...O].sort().join("\0"),[O]),[M,N]=(0,r.useState)([]),[P,k]=(0,r.useState)([]),[R,z]=(0,r.useState)(!1),[I,T]=(0,r.useState)(!1),[D,B]=(0,r.useState)(!1),[U,L]=(0,r.useState)(!1),[J,G]=(0,r.useState)(""),[F,H]=(0,r.useState)(!1),[V,K]=(0,r.useState)(""),[q,Y]=(0,r.useState)(),[W,X]=(0,r.useState)(!1);(0,r.useEffect)(()=>{S()},[S]);let Q=(0,r.useCallback)(async(e,t)=>{T(!0);try{await _(e,{silent:t})}finally{T(!1)}},[_]),$=(0,r.useCallback)(e=>M.find(t=>t.id===e),[M]),Z=(0,r.useCallback)(e=>{let t=$(e);K(e),Y(null==t?void 0:t.source),X(!0)},[$]),ee=(0,r.useCallback)(async()=>{N([]),z(!0);try{var t;let r=await (0,b.listMcpServers)(e,m,C());N((null!=(t=r.servers)?t:[]).map(e=>{var t,r,n;return{...e,id:e.name,label:e.name,description:null!=(r=null!=(t=e.description)?t:e.source)?r:"",source:null!=(n=e.source)?n:"",installed:!!e.installed,packageId:e.packageId}}))}catch(e){N([]),a.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{z(!1)}},[e,m,C]),et=(0,r.useCallback)(async t=>{var r;let n=$(t),i=null!=(r=null==n?void 0:n.source)?r:"";if("runtime"!==i&&"remote"!==i)return void a.appToast.error("基础MCP不可删除");if(await (0,y.confirmAlertDialog)({title:"确认删除 MCP?",description:"服务器名:".concat(t),confirmText:"删除",cancelText:"取消"}))try{if("remote"===i){let r=await (0,b.loadRemoteMcpJson)(e,m,C()),n={};try{n=JSON.parse(String(r.content||"{}"))}catch(e){n={mcpServers:{}}}(!n.mcpServers||Array.isArray(n.mcpServers)||"object"!=typeof n.mcpServers)&&(n.mcpServers={}),delete n.mcpServers[t],await (0,b.saveRemoteMcpJson)(e,m,C(),JSON.stringify(n,null,2))}else{let r=n?v(n):t;await (0,b.deleteRuntimeMcp)(e,m,C(),r)}let r=O.filter(e=>e!==t);k(e=>e.filter(e=>e!==t)),w({...g,mcpServers:r}),await Q(r,!0),await ee()}catch(e){a.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[$,e,m,C,O,g,w,Q,ee]);(0,r.useEffect)(()=>{ee()},[ee]),(0,r.useEffect)(()=>{k([...O])},[O,E]);let er=(0,r.useCallback)(async e=>{let t=[...new Set(e)].sort();w({...g,mcpServers:t}),await Q(t,!0)},[g,w,Q]),en=(0,r.useCallback)(async(e,t)=>{let r=t?[...new Set([...P,e])]:P.filter(t=>t!==e);k(r);try{await er(r),await ee()}catch(e){k(P),a.appToast.error("切换启用状态失败: ".concat(e))}},[P,er,ee]),ei=(0,r.useMemo)(()=>M.slice().sort((e,t)=>{var r,n;let i=String(null!=(r=e.source)?r:"").localeCompare(String(null!=(n=t.source)?n:""));if(0!==i)return i;let a=+!P.includes(e.id),s=+!P.includes(t.id);return a!==s?a-s:e.id.localeCompare(t.id)}),[M,P]),ea=(0,r.useCallback)(t=>{window.open((0,b.exportRuntimeMcpUrl)(e,m,C(),v(t)),"_blank","noopener")},[e,m,C]),es=(0,r.useCallback)(()=>{L(!0),G(""),(0,b.loadRemoteMcpJson)(e,m,C()).then(e=>{G("string"==typeof e.content?e.content:'{\n "mcpServers": {}\n}\n')}).catch(e=>{a.appToast.error("加载 mcp.json 失败:".concat(e instanceof Error?e.message:String(e))),L(!1)})},[e,m,C]),el=(0,r.useCallback)(async()=>{let t=function(e){let t,r=e.trim();if(!r)return"请输入 JSON 配置内容";try{t=JSON.parse(r)}catch(e){return"JSON 解析失败:".concat(e instanceof Error?e.message:String(e))}if(!t||"object"!=typeof t||Array.isArray(t))return"JSON 根节点必须是对象";let n=t.mcpServers;if(!n||"object"!=typeof n||Array.isArray(n))return"mcpServers 不能为空,且需包含至少一个 server";let i=Object.keys(n).filter(e=>e.trim());if(!i.length)return"mcpServers 不能为空,且需包含至少一个 server";let a=new Set;for(let e of i){let t=e.trim();!t||a.has(t)||a.add(t)}return a.size?null:"未解析到有效的 server 名称"}(J);if(t)return void a.appToast.error(t);H(!0);try{await (0,b.saveRemoteMcpJson)(e,m,C(),J.trim()),a.appToast.success("已保存全局 mcp.json。"),L(!1),await ee()}catch(e){a.appToast.error("保存 mcp.json 失败:".concat(e instanceof Error?e.message:String(e)))}finally{H(!1)}},[e,m,C,J,ee]),eo=[{key:"name",title:"名称",headerClassName:" text-[var(--ds-muted)]",cellClassName:" text-[var(--ds-text)]",render:e=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)("span",{children:e.label}),(0,t.jsx)(u.StatusBadge,{tone:e.disabled?"default":"success",children:e.disabled?"未启用":"启用"})]})},{key:"description",title:"详情",headerClassName:" text-[var(--ds-muted)]",cellClassName:" text-[var(--ds-text)]",render:e=>e.description||"-"},{key:"source",title:"来源",headerClassName:"w-[96px] text-[var(--ds-muted)]",cellClassName:"w-[96px] text-[var(--ds-text)]",render:e=>"remote"===e.source?"远程":"本地"},{key:"enabled",title:"启用/未启用",headerClassName:"w-14 w-[112px] text-right text-[var(--ds-muted)]",cellClassName:"w-[112px] py-2 text-right align-middle",render:e=>(0,t.jsx)("span",{className:"inline-flex justify-end",children:(0,t.jsx)(p.AccentSwitch,{checked:P.includes(e.id),disabled:I,onCheckedChange:t=>{en(e.id,t)},"aria-label":"选择 ".concat(e.label)})})},{key:"actions",title:"操作",headerClassName:"w-[168px] text-[var(--ds-muted)]",cellClassName:"w-[168px]",render:e=>{var r;let n=null!=(r=e.source)?r:"",i="runtime"===n,a="runtime"===n||"remote"===n;return(0,t.jsxs)("div",{className:"inline-flex items-center justify-end gap-1",children:[(0,t.jsx)(f.IconTooltipButton,{icon:"Download",label:i?"导出":"仅 runtime MCP 支持导出",ariaLabel:"导出 ".concat(e.label),disabled:I||!i,onClick:()=>ea(e)}),(0,t.jsx)(f.IconTooltipButton,{icon:"Edit",label:"编辑 MCP 配置",ariaLabel:"编辑 ".concat(e.label),disabled:I,onClick:()=>Z(e.id)}),(0,t.jsx)(f.IconTooltipButton,{icon:"Trash2",label:a?"删除":"基础MCP不可删除",tone:"danger",ariaLabel:"删除 ".concat(e.label),disabled:I||!a,onClick:()=>{et(e.id)},iconClassName:"text-red-500"})]})}}];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j.ManageChromeHeaderActions,{children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center",children:[(0,t.jsxs)(d.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:es,className:"mr-[12px]",children:[(0,t.jsx)(A.default,{name:"Edit",size:16,className:"align-middle"}),"编辑远程MCP"]}),(0,t.jsxs)(d.Button,{id:"btnAgentImportMcp",type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>B(!0),children:[(0,t.jsx)(A.default,{name:"Import",size:16,className:"align-middle"}),"导入本地MCP"]})]})}),(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-3",children:(0,t.jsx)("div",{className:"min-h-0",children:R?(0,t.jsx)(c.Loading,{text:"加载中",className:"min-h-[180px]"}):(0,t.jsx)(o.AppTable,{rows:ei,columns:eo,getRowKey:e=>e.id})})}),(0,t.jsx)(h,{open:D,onOpenChange:e=>{B(e),e||ee()},wsUrl:e,apiBase:m,agent:C()}),(0,t.jsx)(x,{open:W,onOpenChange:X,itemId:V,source:q,wsUrl:e,apiBase:m,agent:C(),onSaved:()=>{ee(),Q(g.mcpServers,!0)}}),(0,t.jsx)(l.AppDialog,{open:U,onOpenChange:L,title:"编辑全局MCP",width:"max-w-4xl",minHeight:"420px",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:F,onClick:()=>L(!1),children:"取消"}),(0,t.jsx)(d.Button,{type:"button",size:"lg",disabled:F,onClick:()=>void el(),children:"保存"})]}),children:(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] p-3 leading-6 text-[var(--ds-text)] outline-none focus-visible:ring-2",spellCheck:!1,value:J,onChange:e=>G(e.target.value)})})]})}}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,28370,e=>{"use strict";e.s(["AgentEnvGroupSettingsView",()=>m],28370);var t=e.i(18050),r=e.i(85413),n=e.i(2839),l=e.i(19455),i=e.i(46412),o=e.i(71645),a=e.i(13354),s=e.i(87243),u=e.i(67327),d=e.i(44039),c=e.i(99650),f=e.i(18900),p=e.i(69051),g=e.i(65934);function m(e){let{group:m}=e,{loading:h,saving:b,groupFields:v,fieldValues:y,whentouseValue:A,setField:x,setWhentouseValue:w,reset:j,save:S}=function(e){let t=(0,g.useAppStore)(e=>e.wsUrl),r=(0,g.useAppStore)(e=>e.apiBase),n=(0,g.useAppStore)(e=>e.agentConfig),{currentAgent:l,loadAgentConfig:i}=(0,s.useSession)(),{sendReloadAgentConfig:m}=(0,u.useWebSocketSender)(),[h,b]=(0,o.useState)(!0),[v,y]=(0,o.useState)(!1),[A,x]=(0,o.useState)([]),[w,j]=(0,o.useState)({}),[S,C]=(0,o.useState)({}),[_,E]=(0,o.useState)(""),k=(0,o.useMemo)(()=>(0,d.groupAgentEnvSchemaByGroup)(A)[e],[A,e]),O=(0,o.useCallback)(e=>{C((0,d.buildGroupAgentEnvFieldValues)(e,k,w))},[k,w]),P=(0,o.useCallback)(e=>{E("string"==typeof e?e:"")},[]),R=(0,o.useCallback)(async()=>{try{let e=await (0,p.loadSystemEnv)(t,r,l()),n="string"==typeof e.content?e.content:"",i=(0,d.normalizeAgentEnvSchema)(e.schema),o=(0,f.parseEnvContentToMap)(n);x(i),j((0,d.buildProjectEnvFormDefaults)(i,o))}catch(e){a.appToast.error("加载环境变量表单配置失败:".concat(e instanceof Error?e.message:String(e))),x([]),j({})}},[t,r,l]),N=(0,o.useCallback)(async()=>{b(!0);try{await Promise.all([i(),R()])}finally{b(!1)}},[i,R]);(0,o.useEffect)(()=>{N()},[N]),(0,o.useEffect)(()=>{!h&&k.length&&O({...n.env})},[n.env,O,h,k.length]),(0,o.useEffect)(()=>{h||"system"!==e||P(n.whentouse)},[n.whentouse,e,h,P]);let z=(0,o.useCallback)((e,t)=>{C(r=>({...r,[e]:t}))},[]),M=(0,o.useCallback)(()=>{O({...n.env}),"system"===e&&P(n.whentouse)},[n.env,n.whentouse,e,O,P]),I=(0,o.useCallback)(async()=>{let n=(0,d.mergeGroupEnvIntoAgentEnv)(g.useAppStore.getState().agentConfig.env,k,S);y(!0);try{if("system"===e){let e=g.useAppStore.getState().agentConfig;g.useAppStore.getState().setAgentConfig({...e,whentouse:_})}await (0,c.persistAgentEnv)(t,r,l(),n,m),await i()}catch(e){a.appToast.error("保存环境变量失败:".concat(e instanceof Error?e.message:String(e)))}finally{y(!1)}},[k,S,_,e,t,r,l,m,i]);return{loading:h,saving:v,groupFields:k,fieldValues:S,whentouseValue:_,setField:z,setWhentouseValue:E,reset:M,save:I}}(m),C="system"===m||v.length>0;return(0,t.jsxs)("div",{className:"manage-page-content flex min-h-0 flex-1 flex-col rounded-xl border bg-[#fff] shadow-[var(--shadow-md)]",children:[(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-y-auto p-4",children:h?(0,t.jsx)(n.Loading,{className:"min-h-[240px]",text:"加载中…"}):C?(0,t.jsx)(i.AgentEnvGroupForm,{group:m,fields:v,fieldValues:y,whentouseValue:A,onFieldChange:x,onWhentouseChange:w}):(0,t.jsx)(r.Empty,{className:"min-h-[240px]",text:"暂无可配置项"})}),(0,t.jsxs)("div",{className:"flex shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] px-4 py-3",children:[(0,t.jsx)(l.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:h||b||!C,onClick:()=>j(),className:"cursor-pointer",children:"取消"}),(0,t.jsx)(l.Button,{type:"button",size:"lg",disabled:h||b||!C,onClick:()=>void S(),className:"cursor-pointer",children:b?"保存中…":"保存"})]})]})}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return l}});let n=e.r(71645);function l(e,t){let r=(0,n.useRef)(null),l=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=l.current;t&&(l.current=null,t())}else e&&(r.current=i(e,n)),t&&(l.current=i(t,n))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},88143,(e,t,r)=>{"use strict";function n(e){let{widthInt:t,heightInt:r,blurWidth:n,blurHeight:l,blurDataURL:i,objectFit:o}=e,a=n?40*n:t,s=l?40*l:r,u=a&&s?"viewBox='0 0 "+a+" "+s+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+u+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(u?"none":"contain"===o?"xMidYMid":"cover"===o?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+i+"'/%3E%3C/svg%3E"}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},87690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{VALID_LOADERS:function(){return n},imageConfigDefault:function(){return l}});let n=["default","imgix","cloudinary","akamai","custom"],l={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumResponseBody:5e7,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:void 0,unoptimized:!1}},8927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return s}}),e.r(33525);let n=e.r(88143),l=e.r(87690),i=["-moz-initial","fill","none","scale-down",void 0];function o(e){return void 0!==e.default}function a(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function s(e,t){var r,s;let u,d,c,{src:f,sizes:p,unoptimized:g=!1,priority:m=!1,loading:h,className:b,quality:v,width:y,height:A,fill:x=!1,style:w,overrideSrc:j,onLoad:S,onLoadingComplete:C,placeholder:_="empty",blurDataURL:E,fetchPriority:k,decoding:O="async",layout:P,objectFit:R,objectPosition:N,lazyBoundary:z,lazyRoot:M,...I}=e,{imgConf:T,showAltText:D,blurComplete:U,defaultLoader:G}=t,B=T||l.imageConfigDefault;if("allSizes"in B)u=B;else{let e=[...B.deviceSizes,...B.imageSizes].sort((e,t)=>e-t),t=B.deviceSizes.sort((e,t)=>e-t),n=null==(r=B.qualities)?void 0:r.sort((e,t)=>e-t);u={...B,allSizes:e,deviceSizes:t,qualities:n}}if(void 0===G)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let F=I.loader||G;delete I.loader,delete I.srcSet;let L="__next_img_default"in F;if(L){if("custom"===u.loader)throw Object.defineProperty(Error('Image with src "'+f+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=F;F=t=>{let{config:r,...n}=t;return e(n)}}if(P){"fill"===P&&(x=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[P];e&&(w={...w,...e});let t={responsive:"100vw",fill:"100vw"}[P];t&&!p&&(p=t)}let V="",W=a(y),q=a(A);if((s=f)&&"object"==typeof s&&(o(s)||void 0!==s.src)){let e=o(f)?f.default:f;if(!e.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!e.height||!e.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(d=e.blurWidth,c=e.blurHeight,E=E||e.blurDataURL,V=e.src,!x)if(W||q){if(W&&!q){let t=W/e.width;q=Math.round(e.height*t)}else if(!W&&q){let t=q/e.height;W=Math.round(e.width*t)}}else W=e.width,q=e.height}let H=!m&&("lazy"===h||void 0===h);(!(f="string"==typeof f?f:V)||f.startsWith("data:")||f.startsWith("blob:"))&&(g=!0,H=!1),u.unoptimized&&(g=!0),L&&!u.dangerouslyAllowSVG&&f.split("?",1)[0].endsWith(".svg")&&(g=!0);let K=a(v),J=Object.assign(x?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:R,objectPosition:N}:{},D?{}:{color:"transparent"},w),Y=U||"empty"===_?null:"blur"===_?'url("data:image/svg+xml;charset=utf-8,'+(0,n.getImageBlurSvg)({widthInt:W,heightInt:q,blurWidth:d,blurHeight:c,blurDataURL:E||"",objectFit:J.objectFit})+'")':'url("'+_+'")',X=i.includes(J.objectFit)?"fill"===J.objectFit?"100% 100%":"cover":J.objectFit,Q=Y?{backgroundSize:X,backgroundPosition:J.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},Z=function(e){let{config:t,src:r,unoptimized:n,width:l,quality:i,sizes:o,loader:a}=e;if(n)return{src:r,srcSet:void 0,sizes:void 0};let{widths:s,kind:u}=function(e,t,r){let{deviceSizes:n,allSizes:l}=e;if(r){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let n;n=e.exec(r);)t.push(parseInt(n[2]));if(t.length){let e=.01*Math.min(...t);return{widths:l.filter(t=>t>=n[0]*e),kind:"w"}}return{widths:l,kind:"w"}}return"number"!=typeof t?{widths:n,kind:"w"}:{widths:[...new Set([t,2*t].map(e=>l.find(t=>t>=e)||l[l.length-1]))],kind:"x"}}(t,l,o),d=s.length-1;return{sizes:o||"w"!==u?o:"100vw",srcSet:s.map((e,n)=>a({config:t,src:r,quality:i,width:e})+" "+("w"===u?e:n+1)+u).join(", "),src:a({config:t,src:r,quality:i,width:s[d]})}}({config:u,src:f,unoptimized:g,width:W,quality:K,sizes:p,loader:F});return{props:{...I,loading:H?"lazy":h,fetchPriority:k,width:W,height:q,decoding:O,className:b,style:{...J,...Q},sizes:Z.sizes,srcSet:Z.srcSet,src:j||Z.src},meta:{unoptimized:g,priority:m,placeholder:_,fill:x}}}},98879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let n=e.r(71645),l="undefined"==typeof window,i=l?()=>{}:n.useLayoutEffect,o=l?()=>{}:n.useEffect;function a(e){let{headManager:t,reduceComponentsToState:r}=e;function a(){if(t&&t.mountedInstances){let l=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(l,e))}}if(l){var s;null==t||null==(s=t.mountedInstances)||s.add(e.children),a()}return i(()=>{var r;return null==t||null==(r=t.mountedInstances)||r.add(e.children),()=>{var r;null==t||null==(r=t.mountedInstances)||r.delete(e.children)}}),i(()=>(t&&(t._pendingUpdate=a),()=>{t&&(t._pendingUpdate=a)})),o(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},58908,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"AmpStateContext",{enumerable:!0,get:function(){return n}});let n=e.r(55682)._(e.r(71645)).default.createContext({})},15986,(e,t,r)=>{"use strict";function n(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isInAmpMode",{enumerable:!0,get:function(){return n}})},25633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return m},defaultHead:function(){return c}});let n=e.r(55682),l=e.r(90809),i=e.r(18050),o=l._(e.r(71645)),a=n._(e.r(98879)),s=e.r(58908),u=e.r(42732),d=e.r(15986);function c(e){void 0===e&&(e=!1);let t=[(0,i.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,i.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===o.default.Fragment?e.concat(o.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let p=["name","httpEquiv","charSet","itemProp"];function g(e,t){let{inAmpMode:r}=t;return e.reduce(f,[]).reverse().concat(c(r).reverse()).filter(function(){let e=new Set,t=new Set,r=new Set,n={};return l=>{let i=!0,o=!1;if(l.key&&"number"!=typeof l.key&&l.key.indexOf("$")>0){o=!0;let t=l.key.slice(l.key.indexOf("$")+1);e.has(t)?i=!1:e.add(t)}switch(l.type){case"title":case"base":t.has(l.type)?i=!1:t.add(l.type);break;case"meta":for(let e=0,t=p.length;e<t;e++){let t=p[e];if(l.props.hasOwnProperty(t))if("charSet"===t)r.has(t)?i=!1:r.add(t);else{let e=l.props[t],r=n[t]||new Set;("name"!==t||!o)&&r.has(e)?i=!1:(r.add(e),n[t]=r)}}}return i}}()).reverse().map((e,t)=>{let r=e.key||t;return o.default.cloneElement(e,{key:r})})}let m=function(e){let{children:t}=e,r=(0,o.useContext)(s.AmpStateContext),n=(0,o.useContext)(u.HeadManagerContext);return(0,i.jsx)(a.default,{reduceComponentsToState:g,headManager:n,inAmpMode:(0,d.isInAmpMode)(r),children:t})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18556,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return i}});let n=e.r(55682)._(e.r(71645)),l=e.r(87690),i=n.default.createContext(l.imageConfigDefault)},65856,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return n}});let n=e.r(55682)._(e.r(71645)).default.createContext(null)},1948,(e,t,r)=>{"use strict";function n(e){var t;let{config:r,src:n,width:l,quality:i}=e,o=i||(null==(t=r.qualities)?void 0:t.reduce((e,t)=>Math.abs(t-75)<Math.abs(e-75)?t:e))||75;return r.path+"?url="+encodeURIComponent(n)+"&w="+l+"&q="+o+(n.startsWith("/_next/static/media/"),"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}}),n.__next_img_default=!0;let l=n},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return A}});let n=e.r(55682),l=e.r(90809),i=e.r(18050),o=l._(e.r(71645)),a=n._(e.r(74080)),s=n._(e.r(25633)),u=e.r(8927),d=e.r(87690),c=e.r(18556);e.r(33525);let f=e.r(65856),p=n._(e.r(1948)),g=e.r(18581),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/app/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,r,n,l,i,o){let a=null==e?void 0:e.src;e&&e["data-loaded-src"]!==a&&(e["data-loaded-src"]=a,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&l(!0),null==r?void 0:r.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,l=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>l,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{l=!0,t.stopPropagation()}})}(null==n?void 0:n.current)&&n.current(e)}}))}function b(e){return o.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let v=(0,o.forwardRef)((e,t)=>{let{src:r,srcSet:n,sizes:l,height:a,width:s,decoding:u,className:d,style:c,fetchPriority:f,placeholder:p,loading:m,unoptimized:v,fill:y,onLoadRef:A,onLoadingCompleteRef:x,setBlurComplete:w,setShowAltText:j,sizesInput:S,onLoad:C,onError:_,...E}=e,k=(0,o.useCallback)(e=>{e&&(_&&(e.src=e.src),e.complete&&h(e,p,A,x,w,v,S))},[r,p,A,x,w,_,v,S]),O=(0,g.useMergedRef)(t,k);return(0,i.jsx)("img",{...E,...b(f),loading:m,width:s,height:a,decoding:u,"data-nimg":y?"fill":"1",className:d,style:c,sizes:l,srcSet:n,src:r,ref:O,onLoad:e=>{h(e.currentTarget,p,A,x,w,v,S)},onError:e=>{j(!0),"empty"!==p&&w(!0),_&&_(e)}})});function y(e){let{isAppRouter:t,imgAttributes:r}=e,n={as:"image",imageSrcSet:r.srcSet,imageSizes:r.sizes,crossOrigin:r.crossOrigin,referrerPolicy:r.referrerPolicy,...b(r.fetchPriority)};return t&&a.default.preload?(a.default.preload(r.src,n),null):(0,i.jsx)(s.default,{children:(0,i.jsx)("link",{rel:"preload",href:r.srcSet?void 0:r.src,...n},"__nimg-"+r.src+r.srcSet+r.sizes)})}let A=(0,o.forwardRef)((e,t)=>{let r=(0,o.useContext)(f.RouterContext),n=(0,o.useContext)(c.ImageConfigContext),l=(0,o.useMemo)(()=>{var e;let t=m||n||d.imageConfigDefault,r=[...t.deviceSizes,...t.imageSizes].sort((e,t)=>e-t),l=t.deviceSizes.sort((e,t)=>e-t),i=null==(e=t.qualities)?void 0:e.sort((e,t)=>e-t);return{...t,allSizes:r,deviceSizes:l,qualities:i}},[n]),{onLoad:a,onLoadingComplete:s}=e,g=(0,o.useRef)(a);(0,o.useEffect)(()=>{g.current=a},[a]);let h=(0,o.useRef)(s);(0,o.useEffect)(()=>{h.current=s},[s]);let[b,A]=(0,o.useState)(!1),[x,w]=(0,o.useState)(!1),{props:j,meta:S}=(0,u.getImgProps)(e,{defaultLoader:p.default,imgConf:l,blurComplete:b,showAltText:x});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(v,{...j,unoptimized:S.unoptimized,placeholder:S.placeholder,fill:S.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:A,setShowAltText:w,sizesInput:e.sizes,ref:t}),S.priority?(0,i.jsx)(y,{isAppRouter:!r,imgAttributes:j}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return s},getImageProps:function(){return a}});let n=e.r(55682),l=e.r(8927),i=e.r(5500),o=n._(e.r(1948));function a(e){let{props:t}=(0,l.getImgProps)(e,{defaultLoader:o.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/app/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let s=i.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},85413,e=>{"use strict";e.s(["Empty",()=>i],85413);var t=e.i(18050),r=e.i(57688);let n={src:e.i(96920).default,width:973,height:482,blurWidth:8,blurHeight:4,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAj0lEQVR42gGEAHv/AAAAAAATGRcXg4uIgcjJycORlJOKDxEQDAAAAAAAAAAAAAQEBANfa2Zj5fTu9ff9+/7q8u7uc3p3cgoLCwkAAAAAAEJGRELH1M/S4/jw/tD25v7U9ef+1ubf4jg8OjAAAAAAAHqBfmqxvLiisMG7rK7GvLKxxb2wpbKtoVNYVlADAwMC5U08HYgBOJwAAAAASUVORK5CYII="};var l=e.i(75157);function i(e){let{text:i="暂无数据",className:o,showImage:a=!0,imageSrc:s=n,imageAlt:u="暂无数据",imageSize:d=180,imageClassName:c}=e,f="string"==typeof s?{width:d,height:d}:{width:s.width,height:s.height};return(0,t.jsxs)("div",{className:(0,l.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]",o),role:"status","aria-live":"polite",children:[a?(0,t.jsx)("span",{className:(0,l.cn)("block shrink-0",c),style:{width:d},children:(0,t.jsx)(r.default,{src:s,alt:u,width:f.width,height:f.height,unoptimized:!0,draggable:!1,sizes:"".concat(d,"px"),className:"h-auto w-full object-contain"})}):null,(0,t.jsx)("span",{children:i})]})}},93479,e=>{"use strict";e.s(["Input",()=>n]);var t=e.i(18050),r=e.i(75157);function n(e){let{className:n,type:l="text",size:i="default",...o}=e;return(0,t.jsx)("input",{type:l,"data-slot":"input","data-size":i,className:(0,r.cn)("h-9 w-full appearance-none rounded-md border border-solid border-border bg-transparent px-3 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--border-hover)] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none] data-[size=default]:h-9 data-[size=lg]:h-10 data-[size=sm]:h-7",n),...o})}},96920,e=>{e.v("/app/_next/static/media/no-data.48c973b9.png")},51239,e=>{e.v("/app/_next/static/media/data-loading.be8d921a.png")},2839,e=>{"use strict";e.s(["Loading",()=>o],2839);var t=e.i(18050),r=e.i(57688);let n={src:e.i(51239).default,width:951,height:482,blurWidth:8,blurHeight:4,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAj0lEQVR42gGEAHv/AAAAAAANERAObXJwYaGko5N/gYBwDg8PCgAAAAAAAAAAAAMEBAJic2xp2+3m7fL8+P7l6ujjUlhWTAYGBgUAAAAAADM3NTG6x8LB7fr1/vD89/7f9+3+wNXNzycpKB4AAAAAAJ+qpozL2dO/0NvWx9Td2c6gzrzRpcq8u2FpZk8CAgIBCRI7kCfNfAcAAAAASUVORK5CYII="};var l=e.i(87968),i=e.i(75157);function o(e){let{text:o="加载中",className:a,showImage:s=!0,imageSrc:u=n,imageAlt:d="加载中",imageSize:c=180,imageClassName:f}=e,p="string"==typeof u?{width:c,height:c}:{width:u.width,height:u.height};return(0,t.jsxs)("div",{className:(0,i.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]",a),role:"status","aria-live":"polite",children:[s?(0,t.jsx)("span",{className:(0,i.cn)("block shrink-0",f),style:{width:c},children:(0,t.jsx)(r.default,{src:u,alt:d,width:p.width,height:p.height,unoptimized:!0,draggable:!1,sizes:"".concat(c,"px"),className:"h-auto w-full object-contain"})}):null,(0,t.jsxs)("span",{className:"flex items-center",children:[(0,t.jsx)(l.Spinner,{className:"mr-2"}),o]})]})}},24687,e=>{"use strict";e.s(["Textarea",()=>n]);var t=e.i(18050),r=e.i(75157);function n(e){let{className:n,...l}=e;return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,r.cn)("flex min-h-20 w-full rounded-md border border-solid border-border bg-transparent px-3 py-2 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--border-hover)] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none]",n),...l})}},20783,e=>{"use strict";e.s(["composeRefs",()=>n,"useComposedRefs",()=>l]);var t=e.i(71645);function r(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function n(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return e=>{let n=!1,l=t.map(t=>{let l=r(t,e);return n||"function"!=typeof l||(n=!0),l});if(n)return()=>{for(let e=0;e<l.length;e++){let n=l[e];"function"==typeof n?n():r(t[e],null)}}}}function l(){for(var e=arguments.length,r=Array(e),l=0;l<e;l++)r[l]=arguments[l];return t.useCallback(n(...r),r)}},18900,69051,e=>{"use strict";function t(e){let t=null==e?"":String(e);return""===t?'""':/[\s#"'\\\n]/.test(t)||t!==t.trim()?'"'.concat(t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):t}function r(e){let t=String(e).split(/\r?\n/),r={},n=/^\s*(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)$/;for(let e=0;e<t.length;e++){let l=t[e],i=n.exec(l);i&&(r[i[1]]=function(e){let t=e.trimEnd();return t.length>=2&&'"'===t[0]&&'"'===t[t.length-1]?t.slice(1,-1).replace(/\\(.)/g,(e,t)=>"n"===t?"\n":'"'===t?'"':"\\"===t?"\\":"\\".concat(t)):t.length>=2&&"'"===t[0]&&"'"===t[t.length-1]?t.slice(1,-1):e}(i[2]))}return r}function n(e,r){let n=Array.isArray(e)?e:[],l=new Set;for(let e=0;e<n.length;e++){let t=n[e];t&&"object"==typeof t&&"string"==typeof t.key&&l.add(t.key)}let i=[];for(let e=0;e<n.length;e++){let l=n[e];if(!l||"object"!=typeof l||"string"!=typeof l.key)continue;let o=l.key;if(!Object.prototype.hasOwnProperty.call(r,o))continue;let a=r[o];null!=a&&""!==String(a).trim()&&i.push("".concat(o,"=").concat(t(String(a))))}let o=Object.keys(r).filter(e=>!l.has(e)).sort();for(let e=0;e<o.length;e++){let n=o[e],l=r[n];null!=l&&""!==String(l).trim()&&i.push("".concat(n,"=").concat(t(String(l))))}let a=i.join("\n");return a.length>0?"".concat(a,"\n"):""}e.s(["buildEnvFileContentFromForm",()=>n,"parseEnvContentToMap",()=>r],18900),e.s(["loadDemoSingleMessage",()=>u,"loadSystemEnv",()=>o,"saveSystemEnv",()=>a,"saveSystemMcpJson",()=>s],69051);var l=e.i(29250),i=e.i(36845);async function o(e,t,r){return(0,l.get)((0,i.buildSystemEnvApiUrl)(e,t,r))}async function a(e,t,r,n){await (0,l.patch)((0,i.buildSystemEnvApiUrl)(e,t,r),{content:n})}async function s(e,t,r,n){await (0,l.patch)((0,i.buildSystemMcpJsonApiUrl)(e,t,r),{content:n})}async function u(){return(0,l.get)("/api/demo/single-message")}},46412,e=>{"use strict";e.s(["AgentEnvGroupForm",()=>u]);var t=e.i(18050),r=e.i(93479),n=e.i(24687),l=e.i(67489),i=e.i(75157);let o="__empty__",a=[{value:"anthropic",label:"anthropic"},{value:"openai",label:"openai"}],s=[{value:"1",label:"启用全部 MCP 常驻会话"},{value:"0",label:"禁用"}];function u(e){let{group:u,fields:d,fieldValues:c,whentouseValue:f,onFieldChange:p,onWhentouseChange:g}=e;return(0,t.jsxs)("div",{className:"divide-y divide-[var(--ds-border)]",children:["system"===u?(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsx)("label",{className:"text-[var(--ds-text)]",htmlFor:"agent-env-whentouse",children:"使用时机(whentouse)"}),(0,t.jsx)(n.Textarea,{id:"agent-env-whentouse",rows:3,spellCheck:!1,autoComplete:"off",placeholder:"输入该 agent 的使用时机描述","aria-label":"agent.json whentouse",className:"min-h-[88px] resize-y border-[var(--ds-border)] bg-[var(--ds-bg)] placeholder:text-[var(--text-placeholder)]",value:f,onChange:e=>g(e.target.value)})]}):null,d.map(e=>{let n="agent-env-field-".concat(e.key),u="string"==typeof c[e.key]?c[e.key]:"";if("LLM_PROVIDER"===e.key){let r="anthropic"===u||"openai"===u?u:"";return(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsx)("label",{className:"text-basic text-[var(--ds-text)]",htmlFor:n,children:e.label}),(0,t.jsxs)(l.Select,{value:r||o,onValueChange:t=>p(e.key,t===o?"":t),children:[(0,t.jsx)(l.SelectTrigger,{id:n,className:(0,i.cn)("h-10 w-full border-[var(--ds-border)] bg-[var(--ds-bg)]",!r&&"text-[var(--text-placeholder)]"),children:(0,t.jsx)(l.SelectValue,{placeholder:"请选择"})}),(0,t.jsxs)(l.SelectContent,{children:[(0,t.jsx)(l.SelectItem,{value:o,children:"请选择"}),a.map(e=>(0,t.jsx)(l.SelectItem,{value:e.value,children:e.label},e.value))]})]})]},e.key)}if("TUITUI_CHANNEL_SESSION"===e.key){let r="1"===u?"1":"0";return(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsx)("label",{className:"text-basic text-[var(--ds-text)]",htmlFor:n,children:e.label}),(0,t.jsxs)(l.Select,{value:r,onValueChange:t=>p(e.key,t),children:[(0,t.jsx)(l.SelectTrigger,{id:n,className:"h-10 w-full border-[var(--ds-border)] bg-[var(--ds-bg)]",children:(0,t.jsx)(l.SelectValue,{placeholder:"请选择"})}),(0,t.jsx)(l.SelectContent,{children:s.map(e=>(0,t.jsx)(l.SelectItem,{value:e.value,children:e.label},e.value))})]})]},e.key)}return(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsx)("label",{className:"text-[var(--ds-text)]",htmlFor:n,children:e.label}),(0,t.jsx)(r.Input,{id:n,type:"text",spellCheck:!1,autoComplete:"off",placeholder:e.placeholder,className:"h-10 border-[var(--ds-border)] bg-[var(--ds-bg)] placeholder:text-[var(--text-placeholder)]",value:u,onChange:t=>p(e.key,t.target.value)})]},e.key)})]})}},44039,99650,e=>{"use strict";e.s(["buildGroupAgentEnvFieldValues",()=>u,"buildProjectEnvFormDefaults",()=>i,"groupAgentEnvSchemaByGroup",()=>o,"mergeAgentEnvGroupLabels",()=>l,"mergeGroupEnvIntoAgentEnv",()=>s,"normalizeAgentEnvSchema",()=>n,"schemaKeySet",()=>a],44039);let t=["llm","git","geelib","tutui","system"],r={llm:"llm设置",git:"git设置",geelib:"geelib设置",tutui:"tutui设置",system:"系统设置"};function n(e){if(!Array.isArray(e))return[];let r=[];for(let n of e){if(!n||"object"!=typeof n)continue;let e="string"==typeof n.key?n.key.trim():"",l="string"==typeof n.group?n.group.trim():"";e&&t.includes(l)&&r.push({key:e,group:l,label:"string"==typeof n.label&&n.label.trim()?n.label.trim():e,placeholder:"string"==typeof n.placeholder?n.placeholder:""})}return r}function l(e){let n={...r};if(!e||"object"!=typeof e)return n;for(let r of t){let t=e[r];"string"==typeof t&&t.trim()&&(n[r]=t.trim())}return n}function i(e,t){let r={};for(let l of e){var n;r[l.key]=null!=(n=t[l.key])?n:""}return r}function o(e){let r={};for(let e of t)r[e]=[];for(let n of e)t.includes(n.group)&&r[n.group].push(n);return r}function a(e){return new Set(e.map(e=>e.key))}function s(e,t,r){let n={...e};for(let e of t){var l;let t=String(null!=(l=r[e.key])?l:"").trim();t?n[e.key]=t:delete n[e.key]}return n}function u(e,t,r){let n={};for(let l of t){let t=e[l.key];if("string"==typeof t&&t.length>0){n[l.key]=t;continue}let i=r[l.key];n[l.key]="string"==typeof i?i:""}return n}e.s(["persistAgentEnv",()=>g],99650);var d=e.i(13354),c=e.i(70074),f=e.i(82136),p=e.i(65934);async function g(e,t,r,n,l,i){var o,a,s,u;let g=p.useAppStore.getState(),m={tools:g.agentConfig.tools.slice(),disallowedTools:g.agentConfig.disallowedTools.slice(),mcpServers:g.agentConfig.mcpServers.slice(),skills:g.agentConfig.skills.slice(),agentTeams:g.agentConfig.agentTeams.slice(),model:g.agentConfig.model,rules:g.agentConfig.rules.slice(),effort:null!=(o=g.agentConfig.effort)?o:null,background:null!=(a=g.agentConfig.background)&&a,isolation:null!=(s=g.agentConfig.isolation)?s:"",whentouse:null!=(u=g.agentConfig.whentouse)?u:"",env:n,llmProviders:g.agentConfig.llmProviders.map(e=>({...e,models:e.models.map(e=>({...e}))})),...i};await (0,f.saveAgentConfig)(e,t,r,m),g.setAgentConfig({...m,env:{...n}}),p.useAppStore.getState().wsConnected&&l();let h=p.useAppStore.getState();h.setStatus("环境变量已保存"+(h.wsConnected?",已请求 worker 重新加载配置":""),(0,c.resolveInfoStatusClass)(h.bridgeReady,h.wsConnected)),d.appToast.success(h.wsConnected?"已保存到 agent.json,并已请求 worker 重新加载配置。":"已保存到 agent.json。重连 WebSocket 后子进程环境将同步。")}}]);