@pixelzx/genesis 2026.6.21 → 2026.6.24

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 (74) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/.buildstamp +1 -1
  3. package/dist/build-info.json +3 -3
  4. package/dist/cli-startup-metadata.json +1 -1
  5. package/dist/{command-registry-BGb_Uwan.js → command-registry-9isdLVPT.js} +2 -2
  6. package/dist/{command-registry-DMgJTE4K.js → command-registry-Cz7IG6fj.js} +2 -2
  7. package/dist/{command-registry-core-nZQMcxbV.js → command-registry-core-YTbOUvAw.js} +2 -2
  8. package/dist/{completion-cli-BCc1OonY.js → completion-cli-56xGCg11.js} +2 -2
  9. package/dist/{config-cli-BZaYp_Ui.js → config-cli-D4puIeCQ.js} +1 -1
  10. package/dist/control-ui/assets/{agents-BoHSZPvB.js → agents-JV9Lrpaq.js} +402 -333
  11. package/dist/control-ui/assets/canvas-BGheLorj.js +274 -0
  12. package/dist/control-ui/assets/{channel-config-extras-BmGwfDPL.js → channel-config-extras-BlcntHgk.js} +2 -2
  13. package/dist/control-ui/assets/channels-D_T7jf1i.js +196 -0
  14. package/dist/control-ui/assets/cron-C-vhYdn2.js +250 -0
  15. package/dist/control-ui/assets/{de-ChvNzaWx.js → de-hbyceFeJ.js} +1 -1
  16. package/dist/control-ui/assets/{debug-CuUlTIAC.js → debug-C_P-kmLV.js} +8 -8
  17. package/dist/control-ui/assets/{es-CrSDgcQ5.js → es-1Cx1cu-Y.js} +1 -1
  18. package/dist/control-ui/assets/{fr-BRwXxDjE.js → fr-VgMPipri.js} +1 -1
  19. package/dist/control-ui/assets/{i18n-Dr_ijwId.js → i18n-DLwqUqi0.js} +2 -2
  20. package/dist/control-ui/assets/{id-D6SwOJ8N.js → id-BjXuhykW.js} +1 -1
  21. package/dist/control-ui/assets/index-CtXQ8kx6.css +1 -0
  22. package/dist/control-ui/assets/index-or46Cf5v.js +5900 -0
  23. package/dist/control-ui/assets/{instances-BIg5DC8B.js → instances-B2yScyQI.js} +19 -19
  24. package/dist/control-ui/assets/{ja-JP-COtC4IfH.js → ja-JP-DWb-BMAl.js} +1 -1
  25. package/dist/control-ui/assets/{ko-BzeSxEM4.js → ko-Dp3UE5m2.js} +1 -1
  26. package/dist/control-ui/assets/{logs-BYrqUHTd.js → logs-BiUk-w3p.js} +6 -6
  27. package/dist/control-ui/assets/mcp-Cvo6FOST.js +380 -0
  28. package/dist/control-ui/assets/{memory-Dxu2hVW_.js → memory-EzZxvhx5.js} +11 -11
  29. package/dist/control-ui/assets/{models-DmHuwChH.js → models-CHjUP5zU.js} +26 -26
  30. package/dist/control-ui/assets/{nodes-BAHmvdL1.js → nodes-CINI4_nb.js} +86 -86
  31. package/dist/control-ui/assets/{pl-BFGaZC1a.js → pl-UrfXg6LL.js} +1 -1
  32. package/dist/control-ui/assets/plugins-x9HNTykY.js +259 -0
  33. package/dist/control-ui/assets/presenter-DwZ-RSJ8.js +2 -0
  34. package/dist/control-ui/assets/{pt-BR-B2QYSEq3.js → pt-BR-Cqsb5BcT.js} +1 -1
  35. package/dist/control-ui/assets/sessions-DnMfNBmX.js +56 -0
  36. package/dist/control-ui/assets/skills-B7wdMvcb.js +294 -0
  37. package/dist/control-ui/assets/skills-shared-C4nHDuFm.js +11 -0
  38. package/dist/control-ui/assets/{th-CB7L1SFv.js → th-C_U0alhW.js} +1 -1
  39. package/dist/control-ui/assets/{tr-jlhb5DaE.js → tr-BHgpQnZM.js} +1 -1
  40. package/dist/control-ui/assets/{uk-BrLj30-c.js → uk-C_GhiUmQ.js} +1 -1
  41. package/dist/control-ui/assets/wallet-Ds1hW8CM.js +302 -0
  42. package/dist/control-ui/assets/{zh-CN-BvMSlZSV.js → zh-CN-BNYbiW4p.js} +1 -1
  43. package/dist/control-ui/assets/{zh-TW-DvNvr4gT.js → zh-TW-DJ7rxwhV.js} +1 -1
  44. package/dist/control-ui/index.html +3 -4
  45. package/dist/entry.js +1 -1
  46. package/dist/extensions/skill-workshop/genesis.plugin.json +2 -1
  47. package/dist/extensions/skill-workshop/index.js +1 -1
  48. package/dist/{gateway-cli-CPCS4XTI.js → gateway-cli-CeEdXZHU.js} +1 -1
  49. package/dist/index.js +1 -1
  50. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  51. package/dist/postinstall-inventory.json +50 -50
  52. package/dist/{program-D6Z9HYd5.js → program-0N-JnVM6.js} +1 -1
  53. package/dist/{register.subclis-CUxlv4Y7.js → register.subclis-D0ogazCL.js} +2 -2
  54. package/dist/{register.subclis-DPpkGluG.js → register.subclis-DPK0ga6y.js} +1 -1
  55. package/dist/{register.subclis-core-hOQqRXcI.js → register.subclis-core-DIGnTWFD.js} +1 -1
  56. package/dist/{run-main-By1VNkmf.js → run-main-kPIaMJwz.js} +4 -4
  57. package/dist/{runtime-schema-BR36tJn9.js → runtime-schema-CFPgELGN.js} +1 -1
  58. package/dist/{server-C7yMa7AQ.js → server-HNGA0Ig0.js} +1 -1
  59. package/dist/{server-plugin-bootstrap-CWHfoBJK.js → server-plugin-bootstrap-BXJURCLA.js} +1 -1
  60. package/dist/{server-plugin-bootstrap-C2EOYVsD.js → server-plugin-bootstrap-CNJ_xwIU.js} +1 -1
  61. package/dist/{server.impl-CNE0SpyS.js → server.impl-DuIzmQsq.js} +2 -2
  62. package/package.json +1 -1
  63. package/dist/control-ui/assets/canvas-DkuTKNbN.js +0 -269
  64. package/dist/control-ui/assets/channels-v0P0irqY.js +0 -463
  65. package/dist/control-ui/assets/cron-DD6CAXar.js +0 -933
  66. package/dist/control-ui/assets/format-BOO4MheD.js +0 -9
  67. package/dist/control-ui/assets/index-CYO6b4V3.js +0 -6314
  68. package/dist/control-ui/assets/index-a2bnKy1Z.css +0 -1
  69. package/dist/control-ui/assets/mcp-CfklVyVu.js +0 -373
  70. package/dist/control-ui/assets/plugins-CaVRS7jh.js +0 -273
  71. package/dist/control-ui/assets/sessions-TU5OCoQU.js +0 -306
  72. package/dist/control-ui/assets/skills-CC23LxGO.js +0 -323
  73. package/dist/control-ui/assets/skills-shared-BHZ4ntcf.js +0 -11
  74. package/dist/control-ui/assets/wallet-DggW1ZUc.js +0 -285
@@ -0,0 +1,294 @@
1
+ import{d as e,l as t,r as n}from"./i18n-DLwqUqi0.js";import{t as r}from"./string-coerce-LCfkQHEZ.js";import{A as i,f as a,l as o,o as s}from"./index-or46Cf5v.js";import{n as c,r as l,t as u}from"./skills-shared-C4nHDuFm.js";function d(e){return e?s(e,window.location.href):null}function f(e){!(e instanceof HTMLDialogElement)||e.open||queueMicrotask(()=>{!e.isConnected||e.open||e.showModal()})}var p=`grid-template-columns: 1fr 90px;`;function m(e){return e.disabled?`muted`:e.eligible?`ok`:`warn`}function h(i){let a=i.report?.skills??[],s=a.filter(e=>!e.disabled).length,c=r(i.filter),l=c?a.filter(e=>r([e.name,e.description,e.source].join(` `)).includes(c)):a,u=i.detailKey?a.find(e=>e.skillKey===i.detailKey)??null:null;return e`
2
+ <section class="card" style="border: none; background: transparent; padding: 0;">
3
+ <div class="row" style="justify-content: space-between; align-items: flex-start; gap: 16px;">
4
+ <div>
5
+ <div class="view-title">Skills</div>
6
+ <div class="view-sub">${a.length} installed · ${s} enabled</div>
7
+ </div>
8
+ <div class="data-table-search" style="width: 220px; flex: none;">
9
+ ${o.search}
10
+ <input
11
+ type="search"
12
+ .value=${i.filter}
13
+ placeholder="Search skills"
14
+ @input=${e=>i.onFilterChange(e.target.value)}
15
+ />
16
+ </div>
17
+ </div>
18
+
19
+ ${i.error?e`<div class="callout danger" style="margin-top: 16px;">${i.error}</div>`:t}
20
+ ${l.length===0?e`
21
+ <div class="muted" style="padding: 16px;">
22
+ ${!i.connected&&!i.report?`Not connected to gateway.`:i.loading?n(`common.loading`):`No skills found.`}
23
+ </div>
24
+ `:e`
25
+ <div class="table" style="margin-top: 20px;">
26
+ <div class="table-head" style=${p}>
27
+ <span>SKILL</span>
28
+ <span>ENABLED</span>
29
+ </div>
30
+ ${l.map(e=>g(e,i))}
31
+ </div>
32
+ `}
33
+
34
+ <details class="card" style="margin-top: 24px;">
35
+ <summary
36
+ style="cursor: pointer; font-weight: 600; display: flex; align-items: center; gap: 8px;"
37
+ >
38
+ <span class="btn__icon">${o.plus}</span> Add skill from ClawHub
39
+ </summary>
40
+ <div style="margin-top: 16px;">
41
+ <div style="display: flex; align-items: center; gap: 12px; flex-wrap: wrap;">
42
+ <label class="field" style="flex: 1; min-width: 180px;">
43
+ <input
44
+ .value=${i.clawhubQuery}
45
+ @input=${e=>i.onClawHubQueryChange(e.target.value)}
46
+ placeholder="Search ClawHub skills…"
47
+ autocomplete="off"
48
+ name="clawhub-search"
49
+ />
50
+ </label>
51
+ <button
52
+ class="btn btn--sm"
53
+ ?disabled=${!i.connected||i.clawhubSearchLoading}
54
+ @click=${()=>i.onClawHubQueryChange(``)}
55
+ >
56
+ Browse
57
+ </button>
58
+ ${i.clawhubSearchLoading?e`<span class="muted">Searching…</span>`:t}
59
+ </div>
60
+ ${i.clawhubSearchError?e`<div class="callout danger" style="margin-top: 8px;">
61
+ ${i.clawhubSearchError}
62
+ </div>`:t}
63
+ ${i.clawhubInstallMessage?e`<div
64
+ class="callout ${i.clawhubInstallMessage.kind===`error`?`danger`:`success`}"
65
+ style="margin-top: 8px;"
66
+ >
67
+ ${i.clawhubInstallMessage.text}
68
+ </div>`:t}
69
+ ${_(i)}
70
+ </div>
71
+ </details>
72
+ </section>
73
+
74
+ ${u?y(u,i):t}
75
+ ${i.clawhubDetailSlug?v(i):t}
76
+ `}function g(n,r){let a=r.busyKey===n.skillKey;return e`
77
+ <div
78
+ class="table-row"
79
+ style="cursor: pointer; ${p}"
80
+ @click=${()=>r.onDetailOpen(n.skillKey)}
81
+ >
82
+ <div style="display: flex; flex-direction: column; gap: 2px; min-width: 0;">
83
+ <span
84
+ style="font-family: var(--mono); color: var(--text); display: flex; align-items: center; gap: 8px;"
85
+ >
86
+ ${n.emoji?e`<span>${n.emoji}</span>`:t}${n.name}
87
+ </span>
88
+ <span class="muted" style="font-size: 13px; overflow: hidden; text-overflow: ellipsis;">
89
+ ${i(n.description,140)}
90
+ </span>
91
+ </div>
92
+ <label class="skill-toggle-wrap" @click=${e=>e.stopPropagation()}>
93
+ <input
94
+ type="checkbox"
95
+ class="skill-toggle"
96
+ .checked=${!n.disabled}
97
+ ?disabled=${a}
98
+ @change=${e=>{e.stopPropagation(),r.onToggle(n.skillKey,n.disabled)}}
99
+ />
100
+ </label>
101
+ </div>
102
+ `}function _(n){let r=n.clawhubResults;return r?r.length===0?e`<div class="muted" style="margin-top: 8px;">No skills found on ClawHub.</div>`:e`
103
+ <div class="list" style="margin-top: 8px;">
104
+ ${r.map(r=>e`
105
+ <div
106
+ class="list-item list-item-clickable"
107
+ @click=${()=>n.onClawHubDetailOpen(r.slug)}
108
+ >
109
+ <div class="list-main">
110
+ <div class="list-title">${r.displayName}</div>
111
+ <div class="list-sub">${r.summary?i(r.summary,120):r.slug}</div>
112
+ </div>
113
+ <div class="list-meta" style="display: flex; align-items: center; gap: 8px;">
114
+ ${r.version?e`<span class="muted" style="font-size: 12px;">v${r.version}</span>`:t}
115
+ <button
116
+ class="btn btn--sm"
117
+ ?disabled=${n.clawhubInstallSlug!==null}
118
+ @click=${e=>{e.stopPropagation(),n.onClawHubInstall(r.slug)}}
119
+ >
120
+ ${n.clawhubInstallSlug===r.slug?`Installing…`:`Install`}
121
+ </button>
122
+ </div>
123
+ </div>
124
+ `)}
125
+ </div>
126
+ `:e`<div class="muted" style="margin-top: 8px;">
127
+ Search or browse ClawHub to install registry skills.
128
+ </div>`}function v(r){let i=r.clawhubDetail;return e`
129
+ <dialog
130
+ class="md-preview-dialog"
131
+ ${a(f)}
132
+ @click=${e=>{let t=e.currentTarget;e.target===t&&t.close()}}
133
+ @close=${r.onClawHubDetailClose}
134
+ >
135
+ <div class="md-preview-dialog__panel">
136
+ <div class="md-preview-dialog__header">
137
+ <div class="md-preview-dialog__title">
138
+ ${i?.skill?.displayName??r.clawhubDetailSlug}
139
+ </div>
140
+ <button
141
+ class="btn btn--sm"
142
+ @click=${e=>{e.currentTarget.closest(`dialog`)?.close()}}
143
+ >
144
+ Close
145
+ </button>
146
+ </div>
147
+ <div class="md-preview-dialog__body" style="display: grid; gap: 16px;">
148
+ ${r.clawhubDetailLoading?e`<div class="muted">${n(`common.loading`)}</div>`:r.clawhubDetailError?e`<div class="callout danger">${r.clawhubDetailError}</div>`:i?.skill?e`
149
+ <div style="font-size: 14px; line-height: 1.5;">
150
+ ${i.skill.summary??``}
151
+ </div>
152
+ ${i.owner?.displayName?e`<div class="muted" style="font-size: 13px;">
153
+ By
154
+ ${i.owner.displayName}${i.owner.handle?e` (@${i.owner.handle})`:t}
155
+ </div>`:t}
156
+ ${i.latestVersion?e`<div class="muted" style="font-size: 13px;">
157
+ Latest: v${i.latestVersion.version}
158
+ </div>`:t}
159
+ ${i.latestVersion?.changelog?e`<div
160
+ style="font-size: 13px; border-top: 1px solid var(--border); padding-top: 12px; white-space: pre-wrap;"
161
+ >
162
+ ${i.latestVersion.changelog}
163
+ </div>`:t}
164
+ ${i.metadata?.os?e`<div class="muted" style="font-size: 12px;">
165
+ Platforms: ${i.metadata.os.join(`, `)}
166
+ </div>`:t}
167
+ <button
168
+ class="btn primary"
169
+ ?disabled=${r.clawhubInstallSlug!==null}
170
+ @click=${()=>{r.clawhubDetailSlug&&r.onClawHubInstall(r.clawhubDetailSlug)}}
171
+ >
172
+ ${r.clawhubInstallSlug===r.clawhubDetailSlug?`Installing…`:`Install ${i.skill.displayName}`}
173
+ </button>
174
+ `:e`<div class="muted">Skill not found.</div>`}
175
+ </div>
176
+ </div>
177
+ </dialog>
178
+ `}function y(n,r){let i=r.busyKey===n.skillKey,o=r.edits[n.skillKey]??``,s=r.messages[n.skillKey]??null,p=n.install.length>0&&n.missing.bins.length>0,h=!!(n.bundled&&n.source!==`genesis-bundled`),g=u(n),_=c(n);return e`
179
+ <dialog
180
+ class="md-preview-dialog"
181
+ ${a(f)}
182
+ @click=${e=>{let t=e.currentTarget;e.target===t&&t.close()}}
183
+ @close=${r.onDetailClose}
184
+ >
185
+ <div class="md-preview-dialog__panel">
186
+ <div class="md-preview-dialog__header">
187
+ <div
188
+ class="md-preview-dialog__title"
189
+ style="display: flex; align-items: center; gap: 8px;"
190
+ >
191
+ <span class="statusDot ${m(n)}"></span>
192
+ ${n.emoji?e`<span style="font-size: 18px;">${n.emoji}</span>`:t}
193
+ <span>${n.name}</span>
194
+ </div>
195
+ <button
196
+ class="btn btn--sm"
197
+ @click=${e=>{e.currentTarget.closest(`dialog`)?.close()}}
198
+ >
199
+ Close
200
+ </button>
201
+ </div>
202
+ <div class="md-preview-dialog__body" style="display: grid; gap: 16px;">
203
+ <div>
204
+ <div style="font-size: 14px; line-height: 1.5; color: var(--text);">
205
+ ${n.description}
206
+ </div>
207
+ ${l({skill:n,showBundledBadge:h})}
208
+ </div>
209
+
210
+ ${g.length>0?e`
211
+ <div
212
+ class="callout"
213
+ style="border-color: var(--warn-subtle); background: var(--warn-subtle); color: var(--warn);"
214
+ >
215
+ <div style="font-weight: 600; margin-bottom: 4px;">Missing requirements</div>
216
+ <div>${g.join(`, `)}</div>
217
+ </div>
218
+ `:t}
219
+ ${_.length>0?e`
220
+ <div class="muted" style="font-size: 13px;">Reason: ${_.join(`, `)}</div>
221
+ `:t}
222
+
223
+ <div style="display: flex; align-items: center; gap: 12px;">
224
+ <label class="skill-toggle-wrap">
225
+ <input
226
+ type="checkbox"
227
+ class="skill-toggle"
228
+ .checked=${!n.disabled}
229
+ ?disabled=${i}
230
+ @change=${()=>r.onToggle(n.skillKey,n.disabled)}
231
+ />
232
+ </label>
233
+ <span style="font-size: 13px; font-weight: 500;">
234
+ ${n.disabled?`Disabled`:`Enabled`}
235
+ </span>
236
+ ${p?e`<button
237
+ class="btn"
238
+ ?disabled=${i}
239
+ @click=${()=>r.onInstall(n.skillKey,n.name,n.install[0].id)}
240
+ >
241
+ ${i?`Installing…`:n.install[0].label}
242
+ </button>`:t}
243
+ </div>
244
+
245
+ ${s?e`<div class="callout ${s.kind===`error`?`danger`:`success`}">
246
+ ${s.message}
247
+ </div>`:t}
248
+ ${n.primaryEnv?e`
249
+ <div style="display: grid; gap: 8px;">
250
+ <div class="field">
251
+ <span
252
+ >API key
253
+ <span class="muted" style="font-weight: normal; font-size: 0.88em;"
254
+ >(${n.primaryEnv})</span
255
+ ></span
256
+ >
257
+ <input
258
+ type="password"
259
+ .value=${o}
260
+ @input=${e=>r.onEdit(n.skillKey,e.target.value)}
261
+ />
262
+ </div>
263
+ ${(()=>{let r=d(n.homepage);return r?e`<div class="muted" style="font-size: 13px;">
264
+ Get your key:
265
+ <a href="${r}" target="_blank" rel="noopener noreferrer"
266
+ >${n.homepage}</a
267
+ >
268
+ </div>`:t})()}
269
+ <button
270
+ class="btn primary"
271
+ ?disabled=${i}
272
+ @click=${()=>r.onSaveKey(n.skillKey)}
273
+ >
274
+ Save key
275
+ </button>
276
+ </div>
277
+ `:t}
278
+
279
+ <div
280
+ style="border-top: 1px solid var(--border); padding-top: 12px; display: grid; gap: 6px; font-size: 12px; color: var(--muted);"
281
+ >
282
+ <div><span style="font-weight: 600;">Source:</span> ${n.source}</div>
283
+ <div style="font-family: var(--mono); word-break: break-all;">${n.filePath}</div>
284
+ ${(()=>{let r=d(n.homepage);return r?e`<div>
285
+ <a href="${r}" target="_blank" rel="noopener noreferrer"
286
+ >${n.homepage}</a
287
+ >
288
+ </div>`:t})()}
289
+ </div>
290
+ </div>
291
+ </div>
292
+ </dialog>
293
+ `}export{h as renderSkills};
294
+ //# sourceMappingURL=skills-B7wdMvcb.js.map
@@ -0,0 +1,11 @@
1
+ import{d as e,l as t}from"./i18n-DLwqUqi0.js";function n(e){return[...e.missing.bins.map(e=>`bin:${e}`),...e.missing.env.map(e=>`env:${e}`),...e.missing.config.map(e=>`config:${e}`),...e.missing.os.map(e=>`os:${e}`)]}function r(e){let t=[];return e.disabled&&t.push(`disabled`),e.blockedByAllowlist&&t.push(`blocked by allowlist`),t}function i(n){let r=n.skill,i=!!n.showBundledBadge;return e`
2
+ <div class="chip-row" style="margin-top: 6px;">
3
+ <span class="chip">${r.source}</span>
4
+ ${i?e` <span class="chip">bundled</span> `:t}
5
+ <span class="chip ${r.eligible?`chip-ok`:`chip-warn`}">
6
+ ${r.eligible?`eligible`:`blocked`}
7
+ </span>
8
+ ${r.disabled?e` <span class="chip chip-warn">disabled</span> `:t}
9
+ </div>
10
+ `}export{r as n,i as r,n as t};
11
+ //# sourceMappingURL=skills-shared-C4nHDuFm.js.map
@@ -1,2 +1,2 @@
1
1
  var e={common:{health:`สถานะ`,ok:`ตกลง`,yes:`ใช่`,no:`ไม่`,active:`ใช้งานอยู่`,loading:`กำลังโหลด…`,refreshing:`กำลังรีเฟรช…`,online:`ออนไลน์`,offline:`ออฟไลน์`,connect:`เชื่อมต่อ`,connected:`เชื่อมต่อแล้ว`,refresh:`รีเฟรช`,reload:`โหลดใหม่`,probe:`ตรวจสอบ`,call:`โทร`,confirm:`ยืนยัน`,cancel:`ยกเลิก`,unselect:`ยกเลิกการเลือก`,enabled:`เปิดใช้งาน`,disabled:`ปิดใช้งาน`,na:`n/a`,configured:`กำหนดค่าแล้ว`,running:`กำลังทำงาน`,linked:`เชื่อมโยงแล้ว`,mode:`โหมด`,baseUrl:`Base URL`,lastStart:`เริ่มต้นล่าสุด`,lastProbe:`ตรวจสอบล่าสุด`,lastInbound:`ขาเข้าล่าสุด`,lastConnect:`เชื่อมต่อล่าสุด`,lastMessage:`ข้อความล่าสุด`,authAge:`อายุการยืนยันตัวตน`,credential:`ข้อมูลรับรอง`,audience:`กลุ่มเป้าหมาย`,publicKey:`Public Key`,probeOk:`ตรวจสอบสำเร็จ`,probeFailed:`ตรวจสอบล้มเหลว`,reloadConfig:`โหลด Config ใหม่`,loadConfig:`โหลด config`,loadApprovals:`โหลด approvals`,settingsSections:`ส่วนการตั้งค่า`,version:`เวอร์ชัน`,docs:`เอกสาร`,theme:`ธีม`,resources:`ทรัพยากร`,search:`ค้นหา`,save:`บันทึก`,saving:`กำลังบันทึก…`,saveAndPublish:`บันทึกและเผยแพร่`,importing:`กำลังนำเข้า…`,importFromRelays:`นำเข้าจาก Relays`,showAdvanced:`แสดงขั้นสูง`,hideAdvanced:`ซ่อนขั้นสูง`,unsavedChanges:`คุณมีการเปลี่ยนแปลงที่ยังไม่ได้บันทึก`,secondsAgo:`{count} วินาทีที่แล้ว`,working:`กำลังดำเนินการ…`,showQr:`แสดง QR`,relink:`เชื่อมโยงใหม่`,waitForScan:`รอการสแกน`,logout:`ออกจากระบบ`},channels:{health:{title:`สถานะช่องทาง`,subtitle:`ภาพรวมสถานะของช่องทางจากเกตเวย์`,noSnapshotYet:`ยังไม่มีภาพรวมสถานะ`},generic:{subtitle:`สถานะและการกำหนดค่าของช่องทาง`},wizard:{addChannel:`Add channel`,toolbarSubtitle:`Add or update channel accounts with the guided setup flow.`,title:`Channel setup`,subtitle:`Answer each prompt to update genesis.json.`,continue:`Continue`,doneTitle:`Channel setup`,errorTitle:`Channel setup failed`},gatewayUrlConfirmation:{title:`เปลี่ยน Gateway URL`,subtitle:`การดำเนินการนี้จะเชื่อมต่อใหม่ไปยังเซิร์ฟเวอร์เกตเวย์อื่น`,warning:`ยืนยันเฉพาะเมื่อคุณเชื่อถือ URL นี้เท่านั้น URL ที่เป็นอันตรายอาจทำให้ระบบของคุณถูกโจมตีได้`},nostr:{profile:`โปรไฟล์`,editProfile:`แก้ไขโปรไฟล์`,profilePicture:`รูปโปรไฟล์`,noProfile:`ยังไม่ได้ตั้งค่าโปรไฟล์`,noProfileHint:`คลิก "Edit Profile" เพื่อเพิ่มชื่อ ประวัติ และรูปโปรไฟล์ของคุณ`,name:`ชื่อ`,displayName:`ชื่อที่แสดง`,about:`เกี่ยวกับ`,advanced:`ขั้นสูง`,profilePicturePreview:`ตัวอย่างรูปโปรไฟล์`,account:`บัญชี`,username:`ชื่อผู้ใช้`,usernameHelp:`ชื่อผู้ใช้แบบสั้น (เช่น satoshi)`,bio:`ประวัติ`,bioPlaceholder:`บอกผู้คนเกี่ยวกับตัวคุณ...`,bioHelp:`ประวัติโดยย่อหรือคำอธิบาย`,displayNameHelp:`ชื่อที่แสดงแบบเต็มของคุณ`,avatarUrl:`Avatar URL`,avatarHelp:`URL HTTPS ไปยังรูปโปรไฟล์ของคุณ`,bannerUrl:`Banner URL`,bannerHelp:`URL HTTPS ไปยังรูปแบนเนอร์`,website:`เว็บไซต์`,websiteHelp:`เว็บไซต์ส่วนตัวของคุณ`,nip05Identifier:`ตัวระบุ NIP-05`,nip05Help:`ตัวระบุที่ตรวจสอบได้ (เช่น you@domain.com)`,lightningAddress:`Lightning Address`,lightningHelp:`ที่อยู่ Lightning สำหรับทิป (LUD-16)`}},nodes:{binding:{loadConfigHint:`โหลด config เพื่อแก้ไขการผูก`,formModeHint:`สลับแท็บ Config เป็นโหมด Form เพื่อแก้ไขการผูกที่นี่`,execNodeBinding:`การผูกโหนด exec`,execNodeBindingSubtitle:`ปักหมุดเอเจนต์ไปยังโหนดที่ระบุเมื่อใช้ exec host=node`,defaultBinding:`การผูกค่าเริ่มต้น`,defaultBindingHint:`ใช้เมื่อเอเจนต์ไม่ได้แทนที่การผูกโหนด`,node:`โหนด`}},instances:{title:`อินสแตนซ์ที่เชื่อมต่อ`,subtitle:`สัญญาณแสดงสถานะจากเกตเวย์และไคลเอนต์`,showHosts:`แสดงโฮสต์และ IP`,hideHosts:`ซ่อนโฮสต์และ IP`,toggleHostVisibility:`สลับการแสดงโฮสต์`,noInstances:`ยังไม่มีการรายงานอินสแตนซ์`,lastInput:`อินพุตล่าสุด {time}`,reason:`เหตุผล {reason}`},agentTools:{connectedSource:`เชื่อมต่อแล้ว: {id}`,connected:`เชื่อมต่อแล้ว`,channelSource:`ช่องทาง: {id}`,channel:`ช่องทาง`,builtIn:`มีมาในระบบ`},nav:{chat:`แชต`,control:`ควบคุม`,agent:`เอเจนต์`,tools:`Tools`,settings:`การตั้งค่า`,expand:`ขยายแถบด้านข้าง`,collapse:`ย่อแถบด้านข้าง`,resize:`ปรับขนาดแถบด้านข้าง`},tabs:{agents:`เอเจนต์`,overview:`ภาพรวม`,canvas:`Canvas`,channels:`ช่องทาง`,instances:`อินสแตนซ์`,sessions:`เซสชัน`,usage:`การใช้งาน`,wallet:`Wallet`,cron:`งาน Cron`,skills:`ทักษะ`,mcp:`MCP`,plugins:`Plugins`,models:`Models`,memory:`Memory`,nodes:`โหนด`,chat:`แชต`,config:`Config`,communications:`การสื่อสาร`,appearance:`ลักษณะที่ปรากฏ`,automation:`ระบบอัตโนมัติ`,infrastructure:`โครงสร้างพื้นฐาน`,aiAgents:`AI และเอเจนต์`,debug:`ดีบัก`,logs:`บันทึก`,dreams:`การฝัน`},subtitles:{agents:`เวิร์กสเปซ เครื่องมือ และข้อมูลประจำตัว`,overview:`สถานะ จุดเข้าใช้งาน และความพร้อมใช้งาน`,canvas:`Hosted Canvas documents and rich previews.`,channels:`ช่องทางและการตั้งค่า`,instances:`ไคลเอนต์และโหนดที่เชื่อมต่อ`,sessions:`เซสชันที่ใช้งานอยู่และค่าเริ่มต้น`,usage:`การใช้งาน API และค่าใช้จ่าย`,wallet:`Addresses, balances, and wallet settings.`,cron:`การปลุกและการทำงานตามรอบ`,skills:`ทักษะและคีย์ API`,mcp:`Manage Model Context Protocol servers for this Gateway.`,plugins:`Install and manage Gateway plugins.`,models:`Model catalog and providers.`,memory:`Agentic memory store.`,nodes:`อุปกรณ์ที่จับคู่และคำสั่ง`,chat:`แชตเกตเวย์สำหรับการดำเนินการอย่างรวดเร็ว`,config:`แก้ไข genesis.json`,communications:`ช่องทาง ข้อความ และการตั้งค่าเสียง`,appearance:`ธีม UI และการตั้งค่าตัวช่วยเริ่มต้น`,automation:`คำสั่ง hooks cron และ plugins`,infrastructure:`การตั้งค่าเกตเวย์ เว็บ เบราว์เซอร์ และสื่อ`,aiAgents:`เอเจนต์ โมเดล ทักษะ เครื่องมือ หน่วยความจำ เซสชัน`,debug:`สแนปช็อต เหตุการณ์ และ RPC`,logs:`บันทึกเกตเวย์แบบสด`,dreams:`การฝันของหน่วยความจำ การรวมข้อมูล และการสะท้อนคิด`},memoryView:{empty:`No memories stored yet.`,noAgent:`No agent selected. Open an agent to view its memory.`,colMemory:`Memory`,colDetail:`Detail`},modelsView:{empty:`No models available.`,colModel:`Model`,colProvider:`Provider`,colContext:`Context`,colReasoning:`Reasoning`,colModels:`Models`,colStatus:`Status`,reasoning:`Reasoning`,connected:`Connected`,tabModels:`Models`,tabProviders:`Providers`},mcpView:{title:`MCP Servers`,subtitle:`Manage Model Context Protocol servers available to this Gateway.`,add:{title:`Add MCP server`,tabPreset:`Presets`,tabLink:`By link`,tabJson:`By JSON`,token:{label:`Auth token`,placeholder:`Paste an access token`,hint:`Optional. Sent as the Authorization: Bearer header with every request.`},preset:{intro:`Pick a popular MCP server to add in one step.`,selected:`Configure {label}`,oauthNote:`Uses OAuth. Save, then click Connect to authorize in your browser.`,tokenDocs:`Where do I get a token?`,save:`Add server`},link:{label:`Server URL`,placeholder:`https://mcp.example.com`,fetch:`Fetch metadata`,fetching:`Fetching…`,previewTitle:`Server preview`,save:`Save server`,cancel:`Cancel`,unsupportedTitle:`No metadata found`,unsupportedHint:`We could not detect a remote MCP server at that URL. Switch to the JSON tab to add it manually.`,nameLabel:`Server name`,transportLabel:`Transport`},json:{nameLabel:`Name`,namePlaceholder:`context7`,configLabel:`Config (JSON)`,configHint:`Use url + transport for remote (HTTP/SSE) servers, or command + args for local stdio servers.`,save:`Save server`,saveAs:`Save as new`,update:`Update server`}},list:{empty:`No MCP servers configured yet.`,emptyHint:`Use the form above to add a server.`,count:`{count} server{s}`,oauthRequired:`OAuth required`,connected:`Authenticated`,notConnected:`Not connected`,connect:`Connect`,reconnect:`Reconnect`,disconnect:`Sign out`,edit:`Edit`,delete:`Delete`,testing:`Testing…`,test:`Test`,testOk:`Server responded.`,testFailed:`Server did not respond.`,transportHttp:`HTTP`,transportStdio:`stdio`},oauth:{title:`Connect to {name}`,subtitle:`Genesis will open the authorization page in a new tab.`,open:`Open authorization page`,waiting:`Waiting for callback…`,success:`Connected to {name}.`,failed:`OAuth failed: {message}`,cancelled:`Authorization was cancelled.`,missingMetadata:`Server does not advertise OAuth metadata. Provide a bearer token in the JSON tab.`,manualTitle:`Manual entry`,manualHint:`Paste the access token your provider gave you.`}},canvasView:{workspaceTitle:`Document workspace`,workspaceSubtitle:`Create, upload, update, and reopen hosted Canvas documents.`,recentTitle:`Recent documents`,recentSubtitle:`Latest hosted Canvas manifests.`,previewTitle:`Canvas preview`,source:{file:`File`,html:`HTML`,url:`URL`,path:`Path`},fields:{file:`File`,html:`Inline HTML`,url:`URL`,path:`Gateway-local path`,title:`Title`,id:`Document ID`,height:`Preferred height`,kind:`Kind`,entryUrl:`Entry URL`},actions:{create:`Create`,update:`Update`,reset:`Reset`,open:`Open`},status:{gateway:`Gateway`,host:`Host`,sandbox:`Sandbox`,externalEmbeds:`External embeds`,loading:`Loading documents…`,noDocuments:`No hosted documents yet.`,noPreview:`No preview loaded.`,saving:`Saving Canvas document…`,saved:`Saved {id}.`,selected:`Selected {id}.`},errors:{notConnected:`Connect to the gateway first.`,sourceRequired:`Choose a source before saving.`,fileRequired:`Choose a file to upload.`,idRequired:`Document ID is required for updates.`,untrustedUrl:`Only trusted Canvas URLs under /__genesis__/canvas or /__genesis__/a2ui can be embedded here.`}},overview:{access:{title:`การเข้าถึงเกตเวย์`,subtitle:`ตำแหน่งที่แดชบอร์ดเชื่อมต่อและวิธีการยืนยันตัวตน`,wsUrl:`WebSocket URL`,token:`Gateway Token`,password:`รหัสผ่าน (ไม่จัดเก็บ)`,passwordPlaceholder:`รหัสผ่านของระบบหรือรหัสผ่านที่ใช้ร่วมกัน`,sessionKey:`Session Key เริ่มต้น`,language:`ภาษา`,connectHint:`คลิก Connect เพื่อใช้การเปลี่ยนแปลงการเชื่อมต่อ`,trustedProxy:`ยืนยันตัวตนผ่านพร็อกซีที่เชื่อถือได้`,showToken:`แสดงโทเค็น`,hideToken:`ซ่อนโทเค็น`,toggleTokenVisibility:`สลับการแสดงโทเค็น`,showPassword:`แสดงรหัสผ่าน`,hidePassword:`ซ่อนรหัสผ่าน`,togglePasswordVisibility:`สลับการแสดงรหัสผ่าน`},snapshot:{title:`ภาพรวมสถานะ`,subtitle:`ข้อมูลการจับมือกับเกตเวย์ล่าสุด`,status:`สถานะ`,uptime:`เวลาทำงาน`,tickInterval:`ช่วงเวลา Tick`,lastChannelsRefresh:`รีเฟรช Channels ล่าสุด`,channelsHint:`ใช้ Channels เพื่อเชื่อมโยง WhatsApp, Telegram, Discord, Signal หรือ iMessage`},wallet:{title:`Wallet`,subtitle:`Public addresses from the local encrypted wallet.`,empty:`No wallet keystore found. Run genesis wallet init or genesis wallet import.`,noAccounts:`Wallet keystore exists, but no public accounts were found.`,copyAddress:`Copy address`,manage:`Manage`},stats:{instances:`อินสแตนซ์`,instancesHint:`สัญญาณแสดงสถานะในช่วง 5 นาทีล่าสุด`,sessions:`เซสชัน`,sessionsHint:`คีย์เซสชันล่าสุดที่เกตเวย์ติดตาม`,cron:`Cron`,cronNext:`ปลุกครั้งถัดไป {time}`},notes:{title:`บันทึก`,subtitle:`การเตือนความจำอย่างรวดเร็วสำหรับการตั้งค่าควบคุมระยะไกล`,tailscaleTitle:`Tailscale serve`,tailscaleText:`ควรใช้โหมด serve เพื่อให้เกตเวย์อยู่บน loopback พร้อมการยืนยันตัวตนผ่าน tailnet`,sessionTitle:`สุขอนามัยของเซสชัน`,sessionText:`ใช้ /new หรือ sessions.patch เพื่อรีเซ็ตบริบท`,cronTitle:`การเตือนความจำของ Cron`,cronText:`ใช้เซสชันแบบแยกสำหรับการทำงานตามรอบ`},auth:{required:`เกตเวย์นี้ต้องมีการยืนยันตัวตน เพิ่มโทเค็นหรือรหัสผ่าน แล้วคลิก Connect`,failed:`การยืนยันตัวตนล้มเหลว คัดลอก URL ที่มีโทเค็นอีกครั้งด้วย {command} หรืออัปเดตโทเค็น แล้วคลิก Connect`},pairing:{hint:`อุปกรณ์นี้ต้องได้รับการอนุมัติการจับคู่จากโฮสต์เกตเวย์`,scopeUpgradeTitle:`การอัปเกรดขอบเขตรอการอนุมัติ`,scopeUpgradeSummary:`อุปกรณ์นี้จับคู่แล้ว แต่ขอบเขตที่กว้างขึ้นตามที่ร้องขอกำลังรอการอนุมัติ`,roleUpgradeTitle:`การอัปเกรดบทบาทรอการอนุมัติ`,roleUpgradeSummary:`อุปกรณ์นี้จับคู่แล้ว แต่การเปลี่ยนแปลงบทบาทที่ร้องขอกำลังรอการอนุมัติ`,metadataUpgradeTitle:`การเปลี่ยนแปลงข้อมูลเมตาของอุปกรณ์รอการอนุมัติ`,metadataUpgradeSummary:`อุปกรณ์นี้จับคู่แล้ว แต่การเปลี่ยนแปลงข้อมูลเมตากำลังรอการอนุมัติ`,mobileHint:`ใช้งานบนมือถืออยู่หรือไม่? คัดลอก URL แบบเต็ม (รวม #token=...) จาก genesis dashboard --no-open บนเดสก์ท็อปของคุณ`,docsTitle:`เอกสารการจับคู่อุปกรณ์ (เปิดในแท็บใหม่)`,docsLink:`เอกสาร: การจับคู่อุปกรณ์`},insecure:{hint:`หน้านี้เป็น HTTP ดังนั้นเบราว์เซอร์จึงบล็อกข้อมูลประจำตัวของอุปกรณ์ ใช้ HTTPS (Tailscale Serve) หรือเปิด {url} บนโฮสต์เกตเวย์`,stayHttp:`หากจำเป็นต้องใช้ HTTP ต่อไป ให้ตั้งค่า {config} (ใช้โทเค็นเท่านั้น)`},connection:{title:`วิธีเชื่อมต่อ`,step1:`เริ่มเกตเวย์บนเครื่องโฮสต์ของคุณ:`,step2:`รับ URL แดชบอร์ดที่มีโทเค็น:`,step3:`วาง WebSocket URL และโทเค็นด้านบน หรือเปิด URL ที่มีโทเค็นโดยตรง`,step4:`หรือสร้างโทเค็นที่ใช้ซ้ำได้:`,docsHint:`สำหรับการเข้าถึงระยะไกล แนะนำให้ใช้ Tailscale Serve `,docsLink:`อ่านเอกสาร →`,authDocsTitle:`เอกสารการยืนยันตัวตนของ Control UI (เปิดในแท็บใหม่)`,authDocsLink:`เอกสาร: การยืนยันตัวตนของ Control UI`,tailscaleDocsTitle:`เอกสาร Tailscale Serve (เปิดในแท็บใหม่)`,tailscaleDocsLink:`เอกสาร: Tailscale Serve`,insecureHttpDocsTitle:`เอกสาร HTTP ที่ไม่ปลอดภัย (เปิดในแท็บใหม่)`,insecureHttpDocsLink:`เอกสาร: HTTP ที่ไม่ปลอดภัย`},cards:{cost:`ค่าใช้จ่าย`,skills:`ทักษะ`,recentSessions:`เซสชันล่าสุด`,modelAuth:`การยืนยันตัวตนของโมเดล`,modelAuthOk:`{count} ใช้งานได้`,modelAuthExpired:`{count} หมดอายุแล้ว`,modelAuthExpiring:`{count} ใกล้หมดอายุ`,modelAuthProviders:`{count} ผู้ให้บริการ`,modelAuthUsageLeft:`เหลือ {pct}%`,modelAuthExpiresIn:`หมดอายุ {when}`,modelAuthAttentionExpiredTitle:`การยืนยันตัวตนของโมเดลหมดอายุแล้ว`,modelAuthAttentionExpiringTitle:`การยืนยันตัวตนของโมเดลกำลังจะหมดอายุเร็ว ๆ นี้`,modelAuthAttentionExpiredDesc:`{providers} — ยืนยันตัวตนใหม่ด้วย genesis models auth`,modelAuthAttentionExpiringEntry:`{provider} ({when})`},attention:{title:`ต้องให้ความสนใจ`},eventLog:{title:`บันทึกเหตุการณ์`},logTail:{title:`บันทึกเกตเวย์`},quickActions:{newSession:`เซสชันใหม่`,automation:`ระบบอัตโนมัติ`,refreshAll:`รีเฟรชทั้งหมด`,terminal:`เทอร์มินัล`},palette:{placeholder:`พิมพ์คำสั่ง…`,noResults:`ไม่พบผลลัพธ์`}},wallet:{title:`Wallet`,subtitle:`Local wallet addresses, balances, and safety state.`,refreshBalances:`Refresh balances`,configure:`Wallet config`,lastUpdated:`Updated {time}`,status:{title:`Status`,enabled:`Enabled`,keystore:`Keystore`,accounts:`Accounts`,primary:`Primary`,present:`Present`,missing:`Missing`,locked:`Locked`,available:`Available`,notSet:`Not set`},accounts:{title:`Accounts`,subtitle:`Public wallet accounts from the gateway.`,emptyMissing:`No wallet keystore found.`,emptyNoAccounts:`Wallet keystore exists, but no public accounts were found.`,accountId:`Account ID`,network:`Network`,derivation:`Derivation`,balance:`Balance`,balanceUnavailable:`Balance unavailable`,primary:`Primary`,copyAddress:`Copy address`},tokens:{title:`Tokens`,subtitle:`Configured EVM token balances from the gateway.`,balance:`Token balance`,empty:`No configured EVM token balances found.`,refreshHint:`Refresh balances to load configured EVM token balances.`,copyContract:`Copy token contract`},nfts:{title:`NFTs`,subtitle:`Configured EVM NFT collections and tracked token IDs.`,balance:`Collection balance`,tokens:`Tokens`,empty:`No configured EVM NFT holdings found.`,refreshHint:`Refresh balances to load configured EVM NFT holdings.`,noTrackedTokens:`No tracked token IDs owned or configured`,copyContract:`Copy NFT contract`},recoveryPhrase:{title:`Secret Recovery Phrase`,subtitle:`Create or import one phrase that derives every local chain account.`,safety:`The gateway encrypts the phrase locally. Existing phrases are never revealed; a generated phrase is shown once so you can back it up.`,mode:`Recovery phrase mode`,generate:`Generate`,import:`Import`,phraseLabel:`Secret recovery phrase`,phrasePlaceholder:`word1 word2 word3 ...`,passphrase:`Wallet passphrase`,confirmPassphrase:`Confirm passphrase`,passphraseOptional:`Wallet passphrase (optional)`,confirmPassphraseOptional:`Confirm passphrase (optional)`,overwrite:`Replace the existing encrypted wallet`,generateAction:`Generate wallet`,importAction:`Import phrase`,generatedTitle:`Generated phrase, shown once`,copyGenerated:`Copy generated phrase`,successGenerated:`Wallet created from one generated phrase.`,successImported:`Wallet updated from the imported phrase.`},warnings:{title:`Warnings`}},dreaming:{tabs:{scene:`ฉาก`,diary:`ไดอารี`,advanced:`ขั้นสูง`},header:{refresh:`รีเฟรช`,refreshing:`กำลังรีเฟรช…`,on:`เปิดการฝัน`,off:`ปิดการฝัน`},status:{active:`การฝันกำลังทำงาน`,idle:`การฝันไม่ได้ทำงาน`,promotedSuffix:`เลื่อนระดับแล้ว`,nextSweepPrefix:`กวาดครั้งถัดไป`},scene:{backfill:`เติมข้อมูลย้อนหลัง`,dedupeDiary:`ลบรายการซ้ำในไดอารี`,reset:`รีเซ็ต`,clearGrounded:`ล้างที่เล่นซ้ำแล้ว`,repairCache:`ซ่อมแซม Dream Cache`,working:`กำลังดำเนินการ…`},phase:{light:`ตื้น`,deep:`ลึก`,rem:`REM`,off:`ปิด`},advanced:{eyebrow:`ตรวจสอบ`,title:`การตรวจสอบบันทึกประจำวัน`,description:`ตรวจสอบสิ่งที่มาจากบันทึกประจำวัน สิ่งที่กำลังรอการเลื่อนระดับ และสิ่งที่เพิ่งได้รับการเลื่อนระดับล่าสุด`,summaryFromDailyLog:`จากบันทึกประจำวัน`,summaryWaiting:`กำลังรอ`,summaryPromotedToday:`เลื่อนระดับวันนี้`,stagedTitle:`จากบันทึกประจำวัน`,stagedDescription:`ผู้สมัครสำหรับการเล่นซ้ำที่ดึงมาจากรายการบันทึกประจำวันเก่า`,shortTermTitle:`กำลังรอการเลื่อนระดับ`,shortTermDescription:`ผู้สมัครระยะสั้นปัจจุบันที่กำลังรอพัฒนาเป็นความทรงจำจริง`,sortRecent:`ล่าสุด`,sortSignals:`การสนับสนุนที่แข็งแกร่งที่สุด`,originDailyLog:`เล่นซ้ำแล้ว`,originLive:`สด`,originMixed:`ผสม`,promotedTitle:`การเลื่อนระดับล่าสุด`,promotedDescription:`รายการที่ผ่านการเลื่อนระดับแล้ว`,emptyGrounded:`ขณะนี้ยังไม่มีรายการเล่นซ้ำแบบ grounded ที่จัดเตรียมไว้`,emptyShortTerm:`ไม่มีรายการระยะสั้นให้ตรวจสอบ`,emptyPromoted:`ไม่มีการเลื่อนระดับล่าสุดให้ตรวจสอบ`,updatedPrefix:`อัปเดต`},stats:{shortTerm:`ระยะสั้น`,grounded:`Grounded`,signals:`สัญญาณ`,promoted:`เลื่อนระดับแล้ว`,phaseHits:`การตรงกับเฟส`},trace:{shortTerm:`ระยะสั้น`,grounded:`Grounded`,signals:`สัญญาณ`,promoted:`เลื่อนระดับแล้ว`,groundedLed:`นำโดย grounded`,emptyShortTerm:`ไม่มีรายการระยะสั้นที่ใช้งานอยู่`,emptyGrounded:`ไม่มีรายการ grounded ที่จัดเตรียมไว้`,emptySignals:`ไม่มีสัญญาณที่ใช้งานอยู่`,emptyPromoted:`ยังไม่มีสิ่งใดได้รับการเลื่อนระดับในวันนี้`},diary:{title:`ไดอารีความฝัน`,noDreamsYet:`ยังไม่มีความฝัน`,noDreamsHint:`ความฝันจะแสดงที่นี่หลังจากรอบการฝันครั้งแรกทำงานเสร็จ`,waitingTitle:`ไดอารีกำลังรออยู่`,waitingHint:`รายการบันทึกเชิงบรรยายจะแสดงหลังจากรอบการฝันถัดไป`,older:`เก่ากว่า`,newer:`ใหม่กว่า`,reload:`โหลดใหม่`,reloading:`กำลังโหลดใหม่…`},phrases:{consolidatingMemories:`กำลังรวมความทรงจำ…`,tidyingKnowledgeGraph:`กำลังจัดระเบียบกราฟความรู้…`,replayingConversations:`กำลังเล่นซ้ำบทสนทนาของวันนี้…`,weavingShortTerm:`กำลังถักทอความจำระยะสั้นเป็นระยะยาว…`,defragmentingMindPalace:`กำลังจัดเรียง mind palace ใหม่…`,filingLooseThoughts:`กำลังจัดเก็บความคิดที่กระจัดกระจาย…`,connectingDots:`กำลังเชื่อมโยงจุดที่ห่างไกล…`,compostingContext:`กำลังย่อยสลายหน้าต่างบริบทเก่า…`,alphabetizingSubconscious:`กำลังเรียงจิตใต้สำนึกตามตัวอักษร…`,promotingHunches:`กำลังเลื่อนระดับลางสังหรณ์ที่มีแวว…`,forgettingNoise:`กำลังลืมสิ่งที่ไม่สำคัญ…`,dreamingEmbeddings:`กำลังฝันใน embeddings…`,reorganizingAttic:`กำลังจัดระเบียบห้องใต้หลังคาแห่งความทรงจำ…`,indexingDay:`กำลังจัดทำดัชนีของวันอย่างแผ่วเบา…`,nurturingInsights:`กำลังบ่มเพาะความเข้าใจที่เพิ่งก่อตัว…`,simmeringIdeas:`กำลังเคี่ยวความคิดที่ยังไม่เป็นรูปเป็นร่าง…`,whisperingVectorStore:`กำลังกระซิบกับ vector store…`}},usage:{page:{subtitle:`ดูว่าโทเค็นถูกใช้ไปที่ไหน เซสชันพุ่งขึ้นเมื่อใด และอะไรเป็นตัวขับเคลื่อนค่าใช้จ่าย`},common:{emptyValue:`—`,unknown:`ไม่ทราบ`},loading:{title:`ภาพรวมการใช้งาน`,badge:`กำลังโหลด`},metrics:{tokens:`โทเค็น`,cost:`ค่าใช้จ่าย`,session:`เซสชัน`,sessions:`เซสชัน`},presets:{today:`วันนี้`,last7d:`7 วัน`,last30d:`30 วัน`},filters:{title:`ตัวกรอง`,to:`ถึง`,startDate:`วันที่เริ่มต้น`,endDate:`วันที่สิ้นสุด`,timeZone:`เขตเวลา`,timeZoneLocal:`ท้องถิ่น`,timeZoneUtc:`UTC`,pin:`ปักหมุด`,pinned:`ปักหมุดแล้ว`,unpin:`เลิกปักหมุดตัวกรอง`,selectAll:`เลือกทั้งหมด`,clear:`ล้าง`,clearAll:`ล้างทั้งหมด`,remove:`ลบตัวกรอง`,all:`ทั้งหมด`,days:`วัน`,hours:`ชั่วโมง`,session:`เซสชัน`,agent:`เอเจนต์`,channel:`ช่องทาง`,provider:`Provider`,model:`Model`,tool:`Tool`,daysCount:`{count} วัน`,hoursCount:`{count} ชั่วโมง`,sessionsCount:`{count} เซสชัน`},query:{placeholder:`กรองเซสชัน (เช่น key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)`,apply:`กรอง (ฝั่งไคลเอนต์)`,matching:`ตรงกัน {shown} จาก {total} เซสชัน`,inRange:`{total} เซสชันในช่วงนี้`,tip:`เคล็ดลับ: ใช้ตัวกรองหรือคลิกแท่งกราฟเพื่อปรับช่วงวันให้ละเอียดขึ้น`},export:{label:`ส่งออก`,sessionsCsv:`เซสชัน CSV`,dailyCsv:`CSV รายวัน`,json:`JSON`},empty:{title:`เริ่มต้นด้วยช่วงวันที่`,subtitle:`โหลดข้อมูลการใช้งานเพื่อเปรียบเทียบค่าใช้จ่าย ตรวจสอบเซสชัน และเจาะลึกไทม์ไลน์ได้โดยไม่ต้องออกจากแดชบอร์ด`,hint:`เลือกช่วงวันที่แล้วคลิก Refresh เพื่อโหลดข้อมูลการใช้งาน`,noData:`ไม่มีข้อมูล`,featureOverview:`การ์ดภาพรวม`,featureSessions:`การจัดอันดับเซสชัน`,featureTimeline:`เจาะลึกไทม์ไลน์`},daily:{title:`การใช้งานรายวัน`,total:`รวม`,byType:`ตามประเภท`,tokensTitle:`การใช้โทเค็นรายวัน`,costTitle:`ค่าใช้จ่ายรายวัน`},breakdown:{output:`เอาต์พุต`,input:`อินพุต`,cacheWrite:`การเขียน Cache`,cacheRead:`การอ่าน Cache`,total:`รวม`,tokensByType:`โทเค็นตามประเภท`,costByType:`ค่าใช้จ่ายตามประเภท`},overview:{title:`ภาพรวมการใช้งาน`,messages:`ข้อความ`,messagesHint:`จำนวนข้อความของผู้ใช้และผู้ช่วยทั้งหมดในช่วงที่เลือก`,messagesAbbrev:`ข้อความ`,user:`ผู้ใช้`,assistant:`ผู้ช่วย`,toolCalls:`การเรียกใช้ Tool`,toolCallsHint:`จำนวนการเรียกใช้ tool ทั้งหมดในทุกเซสชัน`,toolsUsed:`tools ที่ใช้`,errors:`ข้อผิดพลาด`,errorsHint:`จำนวนข้อผิดพลาดของข้อความและ tool ทั้งหมดในช่วงที่เลือก`,toolResults:`ผลลัพธ์ของ tool`,avgTokens:`โทเค็นเฉลี่ย / ข้อความ`,avgTokensHint:`จำนวนโทเค็นเฉลี่ยต่อข้อความในช่วงนี้`,avgCost:`ค่าใช้จ่ายเฉลี่ย / ข้อความ`,avgCostHint:`ค่าใช้จ่ายเฉลี่ยต่อข้อความเมื่อผู้ให้บริการรายงานค่าใช้จ่าย`,avgCostHintMissing:`ค่าใช้จ่ายเฉลี่ยต่อข้อความเมื่อผู้ให้บริการรายงานค่าใช้จ่าย ข้อมูลค่าใช้จ่ายขาดหายไปสำหรับบางหรือทุกเซสชันในช่วงนี้`,acrossMessages:`จาก {count} ข้อความ`,sessions:`เซสชัน`,sessionsHint:`เซสชันที่ไม่ซ้ำกันในช่วงที่เลือก`,sessionsInRange:`จาก {count} ในช่วงนี้`,throughput:`อัตราการประมวลผล`,throughputHint:`อัตราการประมวลผลแสดงโทเค็นต่อนาทีในช่วงเวลาที่ใช้งาน ยิ่งสูงยิ่งดี`,tokensPerMinute:`tok/min`,perMinute:`/ นาที`,errorRate:`อัตราข้อผิดพลาด`,errorHint:`อัตราข้อผิดพลาด = ข้อผิดพลาด / ข้อความทั้งหมด ยิ่งต่ำยิ่งดี`,avgSession:`เซสชันเฉลี่ย`,cacheHitRate:`อัตราการใช้งานแคชสำเร็จ`,cacheHint:`อัตราการใช้งานแคชสำเร็จ = การอ่านแคช / (อินพุต + การอ่านแคช) ยิ่งสูงยิ่งดี`,cached:`แคชแล้ว`,prompt:`พรอมป์ต์`,calls:`การเรียก`,topModels:`โมเดลยอดนิยม`,topProviders:`ผู้ให้บริการยอดนิยม`,topTools:`Tool ยอดนิยม`,topAgents:`เอเจนต์ยอดนิยม`,topChannels:`ช่องทางยอดนิยม`,peakErrorDays:`วันที่เกิดข้อผิดพลาดสูงสุด`,peakErrorHours:`ชั่วโมงที่เกิดข้อผิดพลาดสูงสุด`,noModelData:`ไม่มีข้อมูลโมเดล`,noProviderData:`ไม่มีข้อมูลผู้ให้บริการ`,noToolCalls:`ไม่มีการเรียกใช้ Tool`,noAgentData:`ไม่มีข้อมูลเอเจนต์`,noChannelData:`ไม่มีข้อมูลช่องทาง`,noErrorData:`ไม่มีข้อมูลข้อผิดพลาด`},sessions:{title:`เซสชัน`,shown:`แสดง {count}`,total:`ทั้งหมด {count}`,avg:`เฉลี่ย`,all:`ทั้งหมด`,recent:`ดูล่าสุด`,recentShort:`ล่าสุด`,sort:`เรียงลำดับ`,ascending:`น้อยไปมาก`,descending:`มากไปน้อย`,clearSelection:`ล้างการเลือก`,noRecent:`ไม่มีเซสชันล่าสุด`,noneInRange:`ไม่มีเซสชันในช่วงนี้`,more:`อีก +{count}`,selected:`เลือกแล้ว ({count})`,copy:`คัดลอก`,copyName:`คัดลอกชื่อเซสชัน`,limitReached:`กำลังแสดง 1,000 เซสชันแรก จำกัดช่วงวันที่ให้แคบลงเพื่อดูผลลัพธ์ทั้งหมด`},details:{noUsageData:`ไม่มีข้อมูลการใช้งานสำหรับเซสชันนี้`,duration:`ระยะเวลา`,modelMix:`สัดส่วนโมเดล`,filtered:`(กรองแล้ว)`,close:`ปิดรายละเอียดเซสชัน`,noTimeline:`ไม่มีข้อมูลไทม์ไลน์`,noDataInRange:`ไม่มีข้อมูลในช่วงนี้`,usageOverTime:`การใช้งานตามเวลา`,reset:`รีเซ็ต`,perTurn:`ต่อเทิร์น`,cumulative:`สะสม`,turnRange:`เทิร์น {start}–{end} จาก {total}`,assistantOutputTokens:`โทเค็นเอาต์พุตของผู้ช่วย`,userToolInputTokens:`โทเค็นอินพุตของผู้ใช้ + tool`,tokensWrittenToCache:`โทเค็นที่เขียนลงแคช`,tokensReadFromCache:`โทเค็นที่อ่านจากแคช`,noContextData:`ไม่มีข้อมูลบริบท`,systemPromptBreakdown:`รายละเอียดพรอมป์ต์ระบบ`,collapse:`ยุบ`,collapseAll:`ยุบทั้งหมด`,expandAll:`ขยายทั้งหมด`,baseContextPerMessage:`บริบทพื้นฐานต่อข้อความ`,system:`ระบบ`,systemShort:`ระบบ`,skills:`ทักษะ`,tools:`Tools`,files:`ไฟล์`,ofInput:`ของอินพุต`,of:`ของ`,timelineFiltered:`กรองไทม์ไลน์แล้ว`,conversation:`บทสนทนา`,noMessages:`ไม่มีข้อความ`,tool:`Tool`,toolResult:`ผลลัพธ์ของ Tool`,hasTools:`มี tools`,searchConversation:`ค้นหาในบทสนทนา`,you:`คุณ`,noMessagesMatch:`ไม่มีข้อความที่ตรงกับตัวกรอง`},mosaic:{title:`กิจกรรมตามเวลา`,subtitleEmpty:`การประมาณค่าต้องใช้เวลาประทับของเซสชัน`,subtitle:`ประมาณจากช่วงเวลาของเซสชัน (กิจกรรมแรก/ล่าสุด) เขตเวลา: {zone}`,noTimelineData:`ยังไม่มีข้อมูลไทม์ไลน์`,dayOfWeek:`วันในสัปดาห์`,midnight:`เที่ยงคืน`,fourAm:`4am`,eightAm:`8am`,noon:`เที่ยงวัน`,fourPm:`4pm`,eightPm:`8pm`,legend:`ความหนาแน่นของโทเค็น ต่ำ → สูง`,sun:`อา.`,mon:`จ.`,tue:`อ.`,wed:`พ.`,thu:`พฤ.`,fri:`ศ.`,sat:`ส.`}},login:{subtitle:`Gateway Dashboard`,passwordPlaceholder:`ไม่บังคับ`,showToken:`แสดงโทเค็น`,hideToken:`ซ่อนโทเค็น`,toggleTokenVisibility:`สลับการแสดงโทเค็น`,showPassword:`แสดงรหัสผ่าน`,hidePassword:`ซ่อนรหัสผ่าน`,togglePasswordVisibility:`สลับการแสดงรหัสผ่าน`},chat:{disconnected:`ตัดการเชื่อมต่อจากเกตเวย์แล้ว`,refreshTitle:`รีเฟรชข้อมูลแชต`,focusToggle:`สลับโหมดโฟกัส (ซ่อนแถบด้านข้าง + ส่วนหัวหน้า)`,hideCronSessions:`ซ่อนเซสชัน cron`,showCronSessions:`แสดงเซสชัน cron`,showCronSessionsHidden:`แสดงเซสชัน cron (ซ่อนอยู่ {count})`,onboardingDisabled:`ปิดใช้งานระหว่างการตั้งค่า`},languages:{en:`อังกฤษ`,zhCN:`简体中文 (จีนตัวย่อ)`,zhTW:`繁體中文 (จีนตัวเต็ม)`,ptBR:`Português (โปรตุเกสแบบบราซิล)`,de:`Deutsch (เยอรมัน)`,es:`Español (สเปน)`,jaJP:`日本語 (ญี่ปุ่น)`,ko:`한국어 (เกาหลี)`,fr:`Français (ฝรั่งเศส)`,tr:`Türkçe (ตุรกี)`,uk:`Українська (ยูเครน)`,id:`Bahasa Indonesia (อินโดนีเซีย)`,pl:`Polski (โปแลนด์)`,th:`ไทย (ไทย)`},cron:{summary:{enabled:`เปิดใช้งาน`,yes:`ใช่`,no:`ไม่`,jobs:`งาน`,nextWake:`ปลุกครั้งถัดไป`,refreshing:`กำลังรีเฟรช...`,refresh:`รีเฟรช`},jobs:{title:`งาน`,subtitle:`งานตามกำหนดเวลาทั้งหมดที่จัดเก็บไว้ในเกตเวย์`,shownOf:`แสดง {shown} จาก {total}`,searchJobs:`ค้นหางาน`,searchPlaceholder:`ชื่อ คำอธิบาย หรือเอเจนต์`,enabled:`เปิดใช้งาน`,schedule:`กำหนดเวลา`,lastRun:`ทำงานล่าสุด`,all:`ทั้งหมด`,sort:`เรียงลำดับ`,nextRun:`ทำงานครั้งถัดไป`,recentlyUpdated:`อัปเดตล่าสุด`,name:`ชื่อ`,direction:`ทิศทาง`,ascending:`น้อยไปมาก`,descending:`มากไปน้อย`,reset:`รีเซ็ต`,noMatching:`ไม่พบงานที่ตรงกัน`,loading:`กำลังโหลด...`,loadMore:`โหลดงานเพิ่มเติม`},runs:{title:`ประวัติการทำงาน`,subtitleAll:`การทำงานล่าสุดในทุกงาน`,subtitleJob:`การทำงานล่าสุดสำหรับ {title}`,scope:`ขอบเขต`,allJobs:`ทุกงาน`,selectedJob:`งานที่เลือก`,searchRuns:`ค้นหาการทำงาน`,searchPlaceholder:`สรุป ข้อผิดพลาด หรืองาน`,newestFirst:`ใหม่สุดก่อน`,oldestFirst:`เก่าสุดก่อน`,status:`สถานะ`,delivery:`การส่ง`,clear:`ล้าง`,allStatuses:`ทุกสถานะ`,allDelivery:`การส่งทั้งหมด`,selectJobHint:`เลือกงานเพื่อตรวจสอบประวัติการทำงาน`,noMatching:`ไม่พบการทำงานที่ตรงกัน`,loadMore:`โหลดการทำงานเพิ่มเติม`,runStatusOk:`ตกลง`,runStatusError:`ข้อผิดพลาด`,runStatusSkipped:`ข้ามแล้ว`,runStatusUnknown:`ไม่ทราบ`,deliveryDelivered:`ส่งแล้ว`,deliveryNotDelivered:`ยังไม่ส่ง`,deliveryUnknown:`ไม่ทราบ`,deliveryNotRequested:`ไม่ได้ร้องขอ`},form:{editJob:`แก้ไขงาน`,newJob:`งานใหม่`,updateSubtitle:`อัปเดตงานตามกำหนดเวลาที่เลือก`,createSubtitle:`สร้างการปลุกหรืองานรันของเอเจนต์ตามกำหนดเวลา`,required:`จำเป็น`,requiredSr:`จำเป็น`,basics:`พื้นฐาน`,basicsSub:`ตั้งชื่อ เลือกผู้ช่วย และกำหนดสถานะการเปิดใช้งาน`,fieldName:`ชื่อ`,description:`คำอธิบาย`,agentId:`Agent ID`,namePlaceholder:`สรุปตอนเช้า`,descriptionPlaceholder:`บริบทเพิ่มเติมสำหรับงานนี้ (ไม่บังคับ)`,agentPlaceholder:`main หรือ ops`,agentHelp:`เริ่มพิมพ์เพื่อเลือกเอเจนต์ที่รู้จัก หรือป้อนเอเจนต์แบบกำหนดเอง`,schedule:`กำหนดเวลา`,scheduleSub:`ควบคุมเวลาที่งานนี้จะทำงาน`,every:`ทุก`,at:`เวลา`,cronOption:`Cron`,runAt:`ทำงานเมื่อ`,unit:`หน่วย`,minutes:`นาที`,hours:`ชั่วโมง`,days:`วัน`,expression:`นิพจน์`,expressionPlaceholder:`0 7 * * *`,everyAmountPlaceholder:`30`,timezoneOptional:`Timezone (ไม่บังคับ)`,timezonePlaceholder:`America/Los_Angeles`,timezoneHelp:`เลือก timezone ที่ใช้ทั่วไป หรือป้อน timezone IANA ที่ถูกต้องใดก็ได้`,jitterHelp:`ต้องการ jitter หรือไม่? ใช้ ขั้นสูง → Stagger window / Stagger unit`,execution:`การทำงาน`,executionSub:`เลือกเวลาที่จะปลุก และกำหนดว่างานนี้ควรทำอะไร`,session:`เซสชัน`,main:`หลัก`,isolated:`แยก`,sessionHelp:`Main จะโพสต์เหตุการณ์ของระบบ ส่วน Isolated จะรันเทิร์นของเอเจนต์แบบเฉพาะ`,wakeMode:`โหมดปลุก`,now:`ตอนนี้`,nextHeartbeat:`heartbeat ถัดไป`,wakeModeHelp:`Now จะทริกเกอร์ทันที ส่วน Next heartbeat จะรอรอบถัดไป`,payloadKind:`ต้องการให้รันอะไร?`,systemEvent:`โพสต์ข้อความไปยังไทม์ไลน์หลัก`,agentTurn:`รันงานของผู้ช่วย (แยก)`,systemEventHelp:`ส่งข้อความของคุณไปยังไทม์ไลน์หลักของเกตเวย์ (เหมาะสำหรับการเตือน/ทริกเกอร์)`,agentTurnHelp:`เริ่มการทำงานของผู้ช่วยในเซสชันของตัวเองโดยใช้พรอมป์ต์ของคุณ`,timeoutSeconds:`หมดเวลา (วินาที)`,timeoutPlaceholder:`ไม่บังคับ เช่น 90`,timeoutHelp:`ไม่บังคับ เว้นว่างไว้เพื่อใช้พฤติกรรมการหมดเวลาเริ่มต้นของเกตเวย์สำหรับการรันนี้`,mainTimelineMessage:`ข้อความในไทม์ไลน์หลัก`,assistantTaskPrompt:`พรอมป์ต์งานของผู้ช่วย`,deliverySection:`การส่ง`,deliverySub:`เลือกตำแหน่งที่จะส่งสรุปผลการทำงาน`,resultDelivery:`การส่งผลลัพธ์`,announceDefault:`ประกาศสรุป (ค่าเริ่มต้น)`,webhookPost:`Webhook POST`,noneInternal:`ไม่มี (ภายใน)`,deliveryHelp:`Announce จะโพสต์สรุปไปยังแชต ส่วน None จะเก็บการทำงานไว้ภายใน`,webhookUrl:`Webhook URL`,channel:`ช่องทาง`,webhookPlaceholder:`https://example.com/cron`,channelHelp:`เลือกช่องทางที่เชื่อมต่อซึ่งจะได้รับสรุป`,webhookHelp:`ส่งสรุปผลการทำงานไปยังปลายทาง webhook`,to:`ถึง`,toPlaceholder:`+1555... หรือ chat id`,toHelp:`ตัวเลือกแทนที่ผู้รับ (chat id, โทรศัพท์ หรือ user id)`,advanced:`ขั้นสูง`,advancedHelp:`ตัวเลือกแทนที่สำหรับการรับประกันการส่ง, schedule jitter และการควบคุมโมเดล`,deleteAfterRun:`ลบหลังทำงาน`,deleteAfterRunHelp:`เหมาะที่สุดสำหรับการเตือนแบบครั้งเดียวที่ควรล้างออกอัตโนมัติ`,clearAgentOverride:`ล้างการแทนที่เอเจนต์`,clearAgentHelp:`บังคับให้งานนี้ใช้ผู้ช่วยเริ่มต้นของเกตเวย์`,exactTiming:`เวลาที่แม่นยำ (ไม่มี stagger)`,exactTimingHelp:`ทำงานตามขอบเขต cron ที่แน่นอนโดยไม่มีการกระจายเวลา`,staggerWindow:`หน้าต่าง stagger`,staggerUnit:`หน่วย stagger`,staggerPlaceholder:`30`,seconds:`วินาที`,model:`โมเดล`,modelPlaceholder:`openai/gpt-5.2`,modelHelp:`เริ่มพิมพ์เพื่อเลือกโมเดลที่รู้จัก หรือป้อนโมเดลแบบกำหนดเอง`,thinking:`Thinking`,thinkingPlaceholder:`low`,thinkingHelp:`ใช้ระดับที่แนะนำ หรือป้อนค่าที่เฉพาะเจาะจงกับผู้ให้บริการ`,bestEffortDelivery:`การส่งแบบพยายามอย่างดีที่สุด`,bestEffortHelp:`อย่าทำให้งานล้มเหลวหากการส่งล้มเหลว`,cantAddYet:`ยังไม่สามารถเพิ่มงานได้`,fillRequired:`กรอกข้อมูลในช่องที่จำเป็นด้านล่างเพื่อเปิดใช้งานการส่ง`,fixFields:`แก้ไข {count} ช่องเพื่อดำเนินการต่อ`,fixFieldsPlural:`แก้ไข {count} ช่องเพื่อดำเนินการต่อ`,saving:`กำลังบันทึก...`,saveChanges:`บันทึกการเปลี่ยนแปลง`,addJob:`เพิ่มงาน`,cancel:`ยกเลิก`},jobList:{allJobs:`ทุกงาน`,selectJob:`(เลือกงาน)`,enabled:`เปิดใช้งาน`,disabled:`ปิดใช้งาน`,edit:`แก้ไข`,clone:`โคลน`,disable:`ปิดใช้งาน`,enable:`เปิดใช้งาน`,run:`รัน`,history:`ประวัติ`,remove:`ลบ`},jobDetail:{system:`ระบบ`,prompt:`พรอมป์ต์`,delivery:`การส่ง`,agent:`เอเจนต์`},jobState:{status:`สถานะ`,next:`ถัดไป`,last:`ล่าสุด`},runEntry:{noSummary:`ไม่มีสรุป`,runAt:`รันเมื่อ`,openRunChat:`เปิดแชตการรัน`,next:`ถัดไป {rel}`,due:`ครบกำหนด {rel}`},errors:{nameRequired:`ต้องระบุชื่อ`,scheduleAtInvalid:`ป้อนวันที่/เวลาที่ถูกต้อง`,everyAmountInvalid:`ช่วงเวลาต้องมากกว่า 0`,cronExprRequired:`ต้องระบุ Cron expression`,staggerAmountInvalid:`Stagger ต้องมากกว่า 0`,systemTextRequired:`ต้องระบุข้อความระบบ`,agentMessageRequired:`ต้องระบุข้อความของเอเจนต์`,timeoutInvalid:`หากกำหนดค่าไว้ timeout ต้องมากกว่า 0 วินาที`,webhookUrlRequired:`ต้องระบุ Webhook URL`,webhookUrlInvalid:`Webhook URL ต้องขึ้นต้นด้วย http:// หรือ https://`,invalidRunTime:`เวลารันไม่ถูกต้อง`,invalidIntervalAmount:`จำนวนช่วงเวลาไม่ถูกต้อง`,cronExprRequiredShort:`ต้องระบุ Cron expression`,invalidStaggerAmount:`จำนวน stagger ไม่ถูกต้อง`,systemEventTextRequired:`ต้องระบุข้อความเหตุการณ์ของระบบ`,agentMessageRequiredShort:`ต้องระบุข้อความของเอเจนต์`,nameRequiredShort:`ต้องระบุชื่อ`}}};export{e as th};
2
- //# sourceMappingURL=th-CB7L1SFv.js.map
2
+ //# sourceMappingURL=th-C_U0alhW.js.map
@@ -1,2 +1,2 @@
1
1
  var e={common:{health:`Sağlık`,ok:`Tamam`,yes:`Evet`,no:`Hayır`,active:`Etkin`,loading:`Yükleniyor…`,refreshing:`Yenileniyor…`,online:`Çevrimiçi`,offline:`Çevrimdışı`,connect:`Bağlan`,connected:`Bağlandı`,refresh:`Yenile`,reload:`Yeniden yükle`,probe:`Sına`,call:`Ara`,confirm:`Onayla`,cancel:`İptal`,unselect:`Seçimi kaldır`,enabled:`Etkin`,disabled:`Devre dışı`,na:`yok`,configured:`Yapılandırıldı`,running:`Çalışıyor`,linked:`Bağlandı`,mode:`Mod`,baseUrl:`Temel URL`,lastStart:`Son başlatma`,lastProbe:`Son sınama`,lastInbound:`Son gelen`,lastConnect:`Son bağlantı`,lastMessage:`Son mesaj`,authAge:`Kimlik doğrulama süresi`,credential:`Kimlik bilgisi`,audience:`Hedef kitle`,publicKey:`Açık Anahtar`,probeOk:`Sınama başarılı`,probeFailed:`Sınama başarısız`,reloadConfig:`Yapılandırmayı Yeniden Yükle`,loadConfig:`Yapılandırmayı yükle`,loadApprovals:`Onayları yükle`,settingsSections:`Ayar bölümleri`,version:`Sürüm`,docs:`Dokümanlar`,theme:`Tema`,resources:`Kaynaklar`,search:`Ara`,save:`Kaydet`,saving:`Kaydediliyor…`,saveAndPublish:`Kaydet ve Yayımla`,importing:`İçe aktarılıyor…`,importFromRelays:`Aktarıcılardan içe aktar`,showAdvanced:`Gelişmişi Göster`,hideAdvanced:`Gelişmişi Gizle`,unsavedChanges:`Kaydedilmemiş değişiklikleriniz var`,secondsAgo:`{count} sn önce`,working:`Çalışıyor…`,showQr:`QR'ı Göster`,relink:`Yeniden bağla`,waitForScan:`Tarama için bekle`,logout:`Çıkış yap`},channels:{health:{title:`Kanal durumu`,subtitle:`Gateway'den alınan kanal durumu anlık görüntüleri.`,noSnapshotYet:`Henüz anlık görüntü yok.`},generic:{subtitle:`Kanal durumu ve yapılandırması.`},wizard:{addChannel:`Add channel`,toolbarSubtitle:`Add or update channel accounts with the guided setup flow.`,title:`Channel setup`,subtitle:`Answer each prompt to update genesis.json.`,continue:`Continue`,doneTitle:`Channel setup`,errorTitle:`Channel setup failed`},gatewayUrlConfirmation:{title:`Gateway URL'sini Değiştir`,subtitle:`Bu işlem farklı bir gateway sunucusuna yeniden bağlanacaktır`,warning:`Yalnızca bu URL'ye güveniyorsanız onaylayın. Kötü amaçlı URL'ler sisteminizi tehlikeye atabilir.`},nostr:{profile:`Profil`,editProfile:`Profili Düzenle`,profilePicture:`Profil resmi`,noProfile:`Profil ayarlanmadı.`,noProfileHint:`"Profili Düzenle" seçeneğine tıklayarak adınızı, biyografinizi ve avatarınızı ekleyin.`,name:`Ad`,displayName:`Görünen Ad`,about:`Hakkında`,advanced:`Gelişmiş`,profilePicturePreview:`Profil resmi önizlemesi`,account:`Hesap`,username:`Kullanıcı adı`,usernameHelp:`Kısa kullanıcı adı (ör. satoshi)`,bio:`Biyografi`,bioPlaceholder:`İnsanlara kendinizden bahsedin...`,bioHelp:`Kısa bir biyografi veya açıklama`,displayNameHelp:`Tam görünen adınız`,avatarUrl:`Avatar URL'si`,avatarHelp:`Profil resminizin HTTPS URL'si`,bannerUrl:`Banner URL'si`,bannerHelp:`Bir banner görselinin HTTPS URL'si`,website:`Web sitesi`,websiteHelp:`Kişisel web siteniz`,nip05Identifier:`NIP-05 Tanımlayıcısı`,nip05Help:`Doğrulanabilir tanımlayıcı (ör. siz@alanadi.com)`,lightningAddress:`Lightning Adresi`,lightningHelp:`Bahşişler için Lightning adresi (LUD-16)`}},nodes:{binding:{loadConfigHint:`Bağlamaları düzenlemek için yapılandırmayı yükleyin.`,formModeHint:`Bağlamaları burada düzenlemek için Yapılandırma sekmesini Form moduna alın.`,execNodeBinding:`Exec düğüm bağlaması`,execNodeBindingSubtitle:`exec host=node kullanırken agent'ları belirli bir düğüme sabitleyin.`,defaultBinding:`Varsayılan bağlama`,defaultBindingHint:`Agent'lar bir düğüm bağlamasını geçersiz kılmadığında kullanılır.`,node:`Düğüm`}},instances:{title:`Bağlı Örnekler`,subtitle:`Gateway ve istemcilerden gelen varlık işaretçileri.`,showHosts:`Ana bilgisayarları ve IP'leri göster`,hideHosts:`Ana bilgisayarları ve IP'leri gizle`,toggleHostVisibility:`Ana bilgisayar görünürlüğünü değiştir`,noInstances:`Henüz bildirilmiş örnek yok.`,lastInput:`Son giriş {time}`,reason:`Neden {reason}`},agentTools:{connectedSource:`Bağlı: {id}`,connected:`Bağlı`,channelSource:`Kanal: {id}`,channel:`Kanal`,builtIn:`Yerleşik`},nav:{chat:`Sohbet`,control:`Kontrol`,agent:`Aracı`,tools:`Tools`,settings:`Ayarlar`,expand:`Kenar çubuğunu genişlet`,collapse:`Kenar çubuğunu daralt`,resize:`Kenar çubuğunu yeniden boyutlandır`},tabs:{agents:`Aracılar`,overview:`Genel Bakış`,canvas:`Canvas`,channels:`Kanallar`,instances:`Örnekler`,sessions:`Oturumlar`,usage:`Kullanım`,wallet:`Wallet`,cron:`Cron İşleri`,skills:`Skills`,mcp:`MCP`,plugins:`Plugins`,models:`Models`,memory:`Memory`,nodes:`Düğümler`,chat:`Sohbet`,config:`Yapılandırma`,communications:`İletişim`,appearance:`Görünüm`,automation:`Otomasyon`,infrastructure:`Altyapı`,aiAgents:`AI ve Aracılar`,debug:`Hata Ayıklama`,logs:`Günlükler`,dreams:`Düşler`},subtitles:{agents:`Çalışma alanları, araçlar, kimlikler.`,overview:`Durum, giriş noktaları, sağlık.`,canvas:`Hosted Canvas documents and rich previews.`,channels:`Kanallar ve ayarlar.`,instances:`Bağlı istemciler ve düğümler.`,sessions:`Etkin oturumlar ve varsayılanlar.`,usage:`API kullanımı ve maliyetler.`,wallet:`Addresses, balances, and wallet settings.`,cron:`Uyandırmalar ve yinelenen çalıştırmalar.`,skills:`Skills ve API anahtarları.`,mcp:`Manage Model Context Protocol servers for this Gateway.`,plugins:`Install and manage Gateway plugins.`,models:`Model catalog and providers.`,memory:`Agentic memory store.`,nodes:`Eşleştirilmiş cihazlar ve komutlar.`,chat:`Hızlı müdahaleler için Gateway sohbeti.`,config:`genesis.json dosyasını düzenleyin.`,communications:`Kanallar, mesajlar ve ses ayarları.`,appearance:`Tema, UI ve kurulum sihirbazı ayarları.`,automation:`Komutlar, kancalar, cron ve eklentiler.`,infrastructure:`Gateway, web, tarayıcı ve medya ayarları.`,aiAgents:`Aracılar, modeller, Skills, araçlar, bellek, oturum.`,debug:`Anlık görüntüler, olaylar, RPC.`,logs:`Canlı Gateway günlükleri.`,dreams:`Uyku sırasında bellek birleştirme.`},memoryView:{empty:`No memories stored yet.`,noAgent:`No agent selected. Open an agent to view its memory.`,colMemory:`Memory`,colDetail:`Detail`},modelsView:{empty:`No models available.`,colModel:`Model`,colProvider:`Provider`,colContext:`Context`,colReasoning:`Reasoning`,colModels:`Models`,colStatus:`Status`,reasoning:`Reasoning`,connected:`Connected`,tabModels:`Models`,tabProviders:`Providers`},mcpView:{title:`MCP Servers`,subtitle:`Manage Model Context Protocol servers available to this Gateway.`,add:{title:`Add MCP server`,tabPreset:`Presets`,tabLink:`By link`,tabJson:`By JSON`,token:{label:`Auth token`,placeholder:`Paste an access token`,hint:`Optional. Sent as the Authorization: Bearer header with every request.`},preset:{intro:`Pick a popular MCP server to add in one step.`,selected:`Configure {label}`,oauthNote:`Uses OAuth. Save, then click Connect to authorize in your browser.`,tokenDocs:`Where do I get a token?`,save:`Add server`},link:{label:`Server URL`,placeholder:`https://mcp.example.com`,fetch:`Fetch metadata`,fetching:`Fetching…`,previewTitle:`Server preview`,save:`Save server`,cancel:`Cancel`,unsupportedTitle:`No metadata found`,unsupportedHint:`We could not detect a remote MCP server at that URL. Switch to the JSON tab to add it manually.`,nameLabel:`Server name`,transportLabel:`Transport`},json:{nameLabel:`Name`,namePlaceholder:`context7`,configLabel:`Config (JSON)`,configHint:`Use url + transport for remote (HTTP/SSE) servers, or command + args for local stdio servers.`,save:`Save server`,saveAs:`Save as new`,update:`Update server`}},list:{empty:`No MCP servers configured yet.`,emptyHint:`Use the form above to add a server.`,count:`{count} server{s}`,oauthRequired:`OAuth required`,connected:`Authenticated`,notConnected:`Not connected`,connect:`Connect`,reconnect:`Reconnect`,disconnect:`Sign out`,edit:`Edit`,delete:`Delete`,testing:`Testing…`,test:`Test`,testOk:`Server responded.`,testFailed:`Server did not respond.`,transportHttp:`HTTP`,transportStdio:`stdio`},oauth:{title:`Connect to {name}`,subtitle:`Genesis will open the authorization page in a new tab.`,open:`Open authorization page`,waiting:`Waiting for callback…`,success:`Connected to {name}.`,failed:`OAuth failed: {message}`,cancelled:`Authorization was cancelled.`,missingMetadata:`Server does not advertise OAuth metadata. Provide a bearer token in the JSON tab.`,manualTitle:`Manual entry`,manualHint:`Paste the access token your provider gave you.`}},canvasView:{workspaceTitle:`Document workspace`,workspaceSubtitle:`Create, upload, update, and reopen hosted Canvas documents.`,recentTitle:`Recent documents`,recentSubtitle:`Latest hosted Canvas manifests.`,previewTitle:`Canvas preview`,source:{file:`File`,html:`HTML`,url:`URL`,path:`Path`},fields:{file:`File`,html:`Inline HTML`,url:`URL`,path:`Gateway-local path`,title:`Title`,id:`Document ID`,height:`Preferred height`,kind:`Kind`,entryUrl:`Entry URL`},actions:{create:`Create`,update:`Update`,reset:`Reset`,open:`Open`},status:{gateway:`Gateway`,host:`Host`,sandbox:`Sandbox`,externalEmbeds:`External embeds`,loading:`Loading documents…`,noDocuments:`No hosted documents yet.`,noPreview:`No preview loaded.`,saving:`Saving Canvas document…`,saved:`Saved {id}.`,selected:`Selected {id}.`},errors:{notConnected:`Connect to the gateway first.`,sourceRequired:`Choose a source before saving.`,fileRequired:`Choose a file to upload.`,idRequired:`Document ID is required for updates.`,untrustedUrl:`Only trusted Canvas URLs under /__genesis__/canvas or /__genesis__/a2ui can be embedded here.`}},overview:{access:{title:`Gateway Erişimi`,subtitle:`Kontrol panelinin nereye bağlandığı ve nasıl kimlik doğruladığı.`,wsUrl:`WebSocket URL'si`,token:`Gateway Token`,password:`Parola (saklanmaz)`,passwordPlaceholder:`sistem veya paylaşılan parola`,sessionKey:`Varsayılan Oturum Anahtarı`,language:`Dil`,connectHint:`Bağlantı değişikliklerini uygulamak için Bağlan'a tıklayın.`,trustedProxy:`Güvenilir proxy üzerinden kimlik doğrulandı.`,showToken:`Token'ı göster`,hideToken:`Token'ı gizle`,toggleTokenVisibility:`Token görünürlüğünü değiştir`,showPassword:`Parolayı göster`,hidePassword:`Parolayı gizle`,togglePasswordVisibility:`Parola görünürlüğünü değiştir`},snapshot:{title:`Anlık Görüntü`,subtitle:`En son gateway el sıkışma bilgileri.`,status:`Durum`,uptime:`Çalışma Süresi`,tickInterval:`Tick Aralığı`,lastChannelsRefresh:`Son Kanal Yenilemesi`,channelsHint:`WhatsApp, Telegram, Discord, Signal veya iMessage bağlamak için Kanallar'ı kullanın.`},wallet:{title:`Wallet`,subtitle:`Public addresses from the local encrypted wallet.`,empty:`No wallet keystore found. Run genesis wallet init or genesis wallet import.`,noAccounts:`Wallet keystore exists, but no public accounts were found.`,copyAddress:`Copy address`,manage:`Manage`},stats:{instances:`Örnekler`,instancesHint:`Son 5 dakikadaki varlık işaretçileri.`,sessions:`Oturumlar`,sessionsHint:`Gateway tarafından izlenen son oturum anahtarları.`,cron:`Cron`,cronNext:`Sonraki uyandırma {time}`},notes:{title:`Notlar`,subtitle:`Uzaktan kontrol kurulumları için hızlı hatırlatmalar.`,tailscaleTitle:`Tailscale serve`,tailscaleText:`Gateway’i tailnet kimlik doğrulamasıyla loopback üzerinde tutmak için serve modunu tercih edin.`,sessionTitle:`Oturum hijyeni`,sessionText:`Bağlamı sıfırlamak için /new veya sessions.patch kullanın.`,cronTitle:`Cron hatırlatmaları`,cronText:`Yinelenen çalıştırmalar için yalıtılmış oturumlar kullanın.`},auth:{required:`Bu Gateway kimlik doğrulama gerektiriyor. Bir token veya parola ekleyin, ardından Bağlan'a tıklayın.`,failed:`Kimlik doğrulama başarısız oldu. {command} ile token içeren URL'yi yeniden kopyalayın veya token'ı güncelleyin, ardından Bağlan'a tıklayın.`},pairing:{hint:`Bu cihazın Gateway ana bilgisayarından eşleştirme onayı alması gerekiyor.`,scopeUpgradeTitle:`Kapsam yükseltmesi onay bekliyor.`,scopeUpgradeSummary:`Bu cihaz zaten eşleştirilmiş, ancak istenen daha geniş kapsam onay bekliyor.`,roleUpgradeTitle:`Rol yükseltmesi onay bekliyor.`,roleUpgradeSummary:`Bu cihaz zaten eşleştirilmiş, ancak istenen rol değişikliği onay bekliyor.`,metadataUpgradeTitle:`Cihaz meta veri değişikliği onay bekliyor.`,metadataUpgradeSummary:`Bu cihaz zaten eşleştirilmiş, ancak meta veri değişikliği onay bekliyor.`,mobileHint:`Mobilde misiniz? Masaüstünüzde genesis dashboard --no-open komutundan tam URL'yi (#token=... dahil) kopyalayın.`,docsTitle:`Cihaz eşleştirme belgeleri (yeni sekmede açılır)`,docsLink:`Belgeler: Cihaz eşleştirme`},insecure:{hint:`Bu sayfa HTTP olduğu için tarayıcı cihaz kimliğini engelliyor. HTTPS (Tailscale Serve) kullanın veya Gateway ana bilgisayarında {url} adresini açın.`,stayHttp:`HTTP kullanmaya devam etmeniz gerekiyorsa, {config} ayarlayın (yalnızca token).`},connection:{title:`Nasıl bağlanılır`,step1:`Ana bilgisayarınızda Gateway’i başlatın:`,step2:`Token içeren bir kontrol paneli URL'si alın:`,step3:`Yukarıya WebSocket URL'sini ve token'ı yapıştırın veya token içeren URL'yi doğrudan açın.`,step4:`Ya da yeniden kullanılabilir bir token oluşturun:`,docsHint:`Uzaktan erişim için Tailscale Serve önerilir. `,docsLink:`Dokümanları oku →`,authDocsTitle:`Control UI kimlik doğrulama belgeleri (yeni sekmede açılır)`,authDocsLink:`Belgeler: Control UI kimlik doğrulama`,tailscaleDocsTitle:`Tailscale Serve belgeleri (yeni sekmede açılır)`,tailscaleDocsLink:`Belgeler: Tailscale Serve`,insecureHttpDocsTitle:`Güvenli olmayan HTTP belgeleri (yeni sekmede açılır)`,insecureHttpDocsLink:`Belgeler: Güvenli olmayan HTTP`},cards:{cost:`Maliyet`,skills:`Skills`,recentSessions:`Son Oturumlar`,modelAuth:`Model Kimlik Doğrulaması`,modelAuthOk:`{count} tamam`,modelAuthExpired:`{count} süresi dolmuş`,modelAuthExpiring:`{count} süresi yakında dolacak`,modelAuthProviders:`{count} sağlayıcı`,modelAuthUsageLeft:`%{pct} kaldı`,modelAuthExpiresIn:`{when} süresi doluyor`,modelAuthAttentionExpiredTitle:`Model kimlik doğrulamasının süresi doldu`,modelAuthAttentionExpiringTitle:`Model kimlik doğrulamasının süresi yakında dolacak`,modelAuthAttentionExpiredDesc:`{providers} — genesis models auth ile yeniden kimlik doğrulayın`,modelAuthAttentionExpiringEntry:`{provider} ({when})`},attention:{title:`Dikkat`},eventLog:{title:`Olay Günlüğü`},logTail:{title:`Gateway Günlükleri`},quickActions:{newSession:`Yeni Oturum`,automation:`Otomasyon`,refreshAll:`Tümünü Yenile`,terminal:`Terminal`},palette:{placeholder:`Bir komut yazın…`,noResults:`Sonuç yok`}},wallet:{title:`Wallet`,subtitle:`Local wallet addresses, balances, and safety state.`,refreshBalances:`Refresh balances`,configure:`Wallet config`,lastUpdated:`Updated {time}`,status:{title:`Status`,enabled:`Enabled`,keystore:`Keystore`,accounts:`Accounts`,primary:`Primary`,present:`Present`,missing:`Missing`,locked:`Locked`,available:`Available`,notSet:`Not set`},accounts:{title:`Accounts`,subtitle:`Public wallet accounts from the gateway.`,emptyMissing:`No wallet keystore found.`,emptyNoAccounts:`Wallet keystore exists, but no public accounts were found.`,accountId:`Account ID`,network:`Network`,derivation:`Derivation`,balance:`Balance`,balanceUnavailable:`Balance unavailable`,primary:`Primary`,copyAddress:`Copy address`},tokens:{title:`Tokens`,subtitle:`Configured EVM token balances from the gateway.`,balance:`Token balance`,empty:`No configured EVM token balances found.`,refreshHint:`Refresh balances to load configured EVM token balances.`,copyContract:`Copy token contract`},nfts:{title:`NFTs`,subtitle:`Configured EVM NFT collections and tracked token IDs.`,balance:`Collection balance`,tokens:`Tokens`,empty:`No configured EVM NFT holdings found.`,refreshHint:`Refresh balances to load configured EVM NFT holdings.`,noTrackedTokens:`No tracked token IDs owned or configured`,copyContract:`Copy NFT contract`},recoveryPhrase:{title:`Secret Recovery Phrase`,subtitle:`Create or import one phrase that derives every local chain account.`,safety:`The gateway encrypts the phrase locally. Existing phrases are never revealed; a generated phrase is shown once so you can back it up.`,mode:`Recovery phrase mode`,generate:`Generate`,import:`Import`,phraseLabel:`Secret recovery phrase`,phrasePlaceholder:`word1 word2 word3 ...`,passphrase:`Wallet passphrase`,confirmPassphrase:`Confirm passphrase`,passphraseOptional:`Wallet passphrase (optional)`,confirmPassphraseOptional:`Confirm passphrase (optional)`,overwrite:`Replace the existing encrypted wallet`,generateAction:`Generate wallet`,importAction:`Import phrase`,generatedTitle:`Generated phrase, shown once`,copyGenerated:`Copy generated phrase`,successGenerated:`Wallet created from one generated phrase.`,successImported:`Wallet updated from the imported phrase.`},warnings:{title:`Warnings`}},dreaming:{tabs:{scene:`Sahne`,diary:`Günlük`,advanced:`Gelişmiş`},header:{refresh:`Yenile`,refreshing:`Yenileniyor…`,on:`Dreaming Açık`,off:`Dreaming Kapalı`},status:{active:`Dreaming Etkin`,idle:`Dreaming Boşta`,promotedSuffix:`yükseltildi`,nextSweepPrefix:`sonraki tarama`},scene:{backfill:`Geri doldur`,dedupeDiary:`Yinelenen Günlüğü Temizle`,reset:`Sıfırla`,clearGrounded:`Temellendirilmişleri Temizle`,repairCache:`Rüya Önbelleğini Onar`,working:`Çalışıyor…`},phase:{light:`Hafif`,deep:`Derin`,rem:`REM`,off:`kapalı`},advanced:{eyebrow:`İncele`,title:`Günlük Kayıt İncelemesi`,description:`Günlük kayıttan nelerin geldiğini, nelerin terfi etmeyi beklediğini ve yakın zamanda nelerin terfi ettiğini inceleyin.`,summaryFromDailyLog:`günlük kayıttan`,summaryWaiting:`bekliyor`,summaryPromotedToday:`bugün terfi etti`,stagedTitle:`Günlük Kayıttan`,stagedDescription:`Eski günlük kayıt girdilerinden alınan yeniden oynatma adayları.`,shortTermTitle:`Terfi Etmeyi Bekleyenler`,shortTermDescription:`Gerçek belleğe yükselmeyi bekleyen mevcut kısa vadeli adaylar.`,sortRecent:`En yeni`,sortSignals:`En güçlü destek`,originDailyLog:`yeniden oynatıldı`,originLive:`canlı`,originMixed:`karma`,promotedTitle:`Son Terfiler`,promotedDescription:`Terfi sürecini zaten tamamlamış öğeler.`,emptyGrounded:`Şu anda aşamalandırılmış grounded replay girdisi yok.`,emptyShortTerm:`İncelenecek kısa vadeli girdi yok.`,emptyPromoted:`İncelenecek son terfi yok.`,updatedPrefix:`güncellendi`},stats:{shortTerm:`Kısa vadeli`,grounded:`Temellendirililmiş`,signals:`Sinyaller`,promoted:`Yükseltilenler`,phaseHits:`Aşama İsabetleri`},trace:{shortTerm:`Kısa vadeli`,grounded:`Temellendirilmiş`,signals:`Sinyaller`,promoted:`Yükseltilenler`,groundedLed:`grounded-led`,emptyShortTerm:`Etkin kısa vadeli öğe yok.`,emptyGrounded:`Hazırlanmış temellendirilmiş öğe yok.`,emptySignals:`Etkin sinyal yok.`,emptyPromoted:`Bugün henüz hiçbir şey yükseltilmedi.`},diary:{title:`Rüya Günlüğü`,noDreamsYet:`Henüz rüya yok`,noDreamsHint:`İlk dreaming döngüsü çalıştıktan sonra rüyalar burada görünecek.`,waitingTitle:`Günlük bekliyor`,waitingHint:`Anlatı girişleri bir sonraki dreaming döngüsünden sonra görünecek.`,older:`Daha eski`,newer:`Daha yeni`,reload:`Yeniden yükle`,reloading:`Yeniden yükleniyor…`},phrases:{consolidatingMemories:`anılar pekiştiriliyor…`,tidyingKnowledgeGraph:`bilgi grafiği düzenleniyor…`,replayingConversations:`bugünün konuşmaları yeniden oynatılıyor…`,weavingShortTerm:`kısa vadeli hafıza uzun vadeli hafızaya işleniyor…`,defragmentingMindPalace:`zihin sarayı birleştiriliyor…`,filingLooseThoughts:`dağınık düşünceler dosyalanıyor…`,connectingDots:`uzaktaki noktalar birleştiriliyor…`,compostingContext:`eski bağlam pencereleri kompost ediliyor…`,alphabetizingSubconscious:`bilinçaltı alfabetik olarak sıralanıyor…`,promotingHunches:`umut veren sezgiler yükseltiliyor…`,forgettingNoise:`önemsiz olanlar unutuluyor…`,dreamingEmbeddings:`embedding'lerde rüya görülüyor…`,reorganizingAttic:`hafıza tavan arası yeniden düzenleniyor…`,indexingDay:`gün usulca dizinleniyor…`,nurturingInsights:`filizlenen içgörüler besleniyor…`,simmeringIdeas:`yarı şekillenmiş fikirler demleniyor…`,whisperingVectorStore:`vector store'a fısıldanıyor…`}},usage:{page:{subtitle:`Token'ların nereye gittiğini, oturumların ne zaman arttığını ve maliyeti neyin belirlediğini görün.`},common:{emptyValue:`—`,unknown:`bilinmiyor`},loading:{title:`Kullanım Genel Bakışı`,badge:`Yükleniyor`},metrics:{tokens:`Tokenlar`,cost:`Maliyet`,session:`oturum`,sessions:`oturumlar`},presets:{today:`Bugün`,last7d:`7g`,last30d:`30g`},filters:{title:`Filtreler`,to:`ile`,startDate:`Başlangıç tarihi`,endDate:`Bitiş tarihi`,timeZone:`Saat dilimi`,timeZoneLocal:`Yerel`,timeZoneUtc:`UTC`,pin:`Sabitle`,pinned:`Sabitlendi`,unpin:`Filtre sabitlemesini kaldır`,selectAll:`Tümünü Seç`,clear:`Temizle`,clearAll:`Tümünü Temizle`,remove:`Filtreyi kaldır`,all:`Tümü`,days:`Günler`,hours:`Saatler`,session:`Oturum`,agent:`Aracı`,channel:`Kanal`,provider:`Sağlayıcı`,model:`Model`,tool:`Araç`,daysCount:`{count} gün`,hoursCount:`{count} saat`,sessionsCount:`{count} oturum`},query:{placeholder:`Oturumları filtrele (örn. key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)`,apply:`Filtrele (istemci tarafında)`,matching:`{shown} / {total} oturum eşleşiyor`,inRange:`Aralıkta {total} oturum var`,tip:`İpucu: günleri daraltmak için filtreleri kullanın veya çubuklara tıklayın.`},export:{label:`Dışa aktar`,sessionsCsv:`Oturumlar CSV`,dailyCsv:`Günlük CSV`,json:`JSON`},empty:{title:`Bir tarih aralığıyla başlayın`,subtitle:`Kontrol panelinden ayrılmadan maliyetleri karşılaştırmak, oturumları incelemek ve zaman çizelgelerinde ayrıntıya inmek için kullanım verilerini yükleyin.`,hint:`Kullanımı yüklemek için bir tarih aralığı seçin ve Yenile'ye tıklayın.`,noData:`Veri yok`,featureOverview:`Genel bakış kartları`,featureSessions:`Oturum sıralaması`,featureTimeline:`Zaman çizelgesi ayrıntısı`},daily:{title:`Günlük Kullanım`,total:`Toplam`,byType:`Türe Göre`,tokensTitle:`Günlük Token Kullanımı`,costTitle:`Günlük Maliyet`},breakdown:{output:`Çıktı`,input:`Girdi`,cacheWrite:`Önbellek Yazma`,cacheRead:`Önbellek Okuma`,total:`Toplam`,tokensByType:`Türe Göre Tokenlar`,costByType:`Türe Göre Maliyet`},overview:{title:`Kullanım Genel Bakışı`,messages:`Mesajlar`,messagesHint:`Aralıktaki toplam kullanıcı ve asistan mesajları.`,messagesAbbrev:`msg`,user:`kullanıcı`,assistant:`asistan`,toolCalls:`Araç Çağrıları`,toolCallsHint:`Oturumlar genelindeki toplam araç çağrısı sayısı.`,toolsUsed:`kullanılan araçlar`,errors:`Hatalar`,errorsHint:`Aralıktaki toplam mesaj ve araç hataları.`,toolResults:`araç sonuçları`,avgTokens:`Ort. Token / Mesaj`,avgTokensHint:`Bu aralıktaki mesaj başına ortalama token.`,avgCost:`Ort. Maliyet / Mesaj`,avgCostHint:`Sağlayıcılar maliyet bildirdiğinde mesaj başına ortalama maliyet.`,avgCostHintMissing:`Sağlayıcılar maliyet bildirdiğinde mesaj başına ortalama maliyet. Bu aralıktaki bazı veya tüm oturumlar için maliyet verisi eksik.`,acrossMessages:`{count} mesaj genelinde`,sessions:`Oturumlar`,sessionsHint:`Aralıktaki farklı oturumlar.`,sessionsInRange:`aralıkta {count} içinden`,throughput:`Verim`,throughputHint:`Verim, etkin süre boyunca dakika başına token sayısını gösterir. Daha yüksek olması daha iyidir.`,tokensPerMinute:`tok/dk`,perMinute:`/ dk`,errorRate:`Hata Oranı`,errorHint:`Hata oranı = hatalar / toplam mesajlar. Daha düşük olması daha iyidir.`,avgSession:`ort. oturum`,cacheHitRate:`Önbellek İsabet Oranı`,cacheHint:`Önbellek isabet oranı = önbellek okuma / (girdi + önbellek okuma). Daha yüksek olması daha iyidir.`,cached:`önbellekten`,prompt:`istem`,calls:`çağrı`,topModels:`En Çok Kullanılan Modeller`,topProviders:`En Çok Kullanılan Sağlayıcılar`,topTools:`En Çok Kullanılan Araçlar`,topAgents:`En Çok Kullanılan Aracılar`,topChannels:`En Çok Kullanılan Kanallar`,peakErrorDays:`En Yoğun Hata Günleri`,peakErrorHours:`En Yoğun Hata Saatleri`,noModelData:`Model verisi yok`,noProviderData:`Sağlayıcı verisi yok`,noToolCalls:`Araç çağrısı yok`,noAgentData:`Aracı verisi yok`,noChannelData:`Kanal verisi yok`,noErrorData:`Hata verisi yok`},sessions:{title:`Oturumlar`,shown:`{count} gösteriliyor`,total:`toplam {count}`,avg:`ort.`,all:`Tümü`,recent:`Son görüntülenenler`,recentShort:`Son`,sort:`Sırala`,ascending:`Artan`,descending:`Azalan`,clearSelection:`Seçimi Temizle`,noRecent:`Son oturum yok`,noneInRange:`Aralıkta oturum yok`,more:`+{count} daha`,selected:`Seçili ({count})`,copy:`Kopyala`,copyName:`Oturum adını kopyala`,limitReached:`İlk 1.000 oturum gösteriliyor. Tam sonuçlar için tarih aralığını daraltın.`},details:{noUsageData:`Bu oturum için kullanım verisi yok.`,duration:`Süre`,modelMix:`Model Dağılımı`,filtered:`(filtrelendi)`,close:`Oturum ayrıntılarını kapat`,noTimeline:`Zaman çizelgesi verisi yok`,noDataInRange:`Aralıkta veri yok`,usageOverTime:`Zaman İçinde Kullanım`,reset:`Sıfırla`,perTurn:`Tur Başına`,cumulative:`Kümülatif`,turnRange:`{total} içinden {start}–{end}. turlar`,assistantOutputTokens:`Asistan çıktı tokenları`,userToolInputTokens:`Kullanıcı + araç girdi tokenları`,tokensWrittenToCache:`Önbelleğe yazılan tokenlar`,tokensReadFromCache:`Önbellekten okunan tokenlar`,noContextData:`Bağlam verisi yok`,systemPromptBreakdown:`Sistem İstemi Dağılımı`,collapse:`Daralt`,collapseAll:`Tümünü Daralt`,expandAll:`Tümünü Genişlet`,baseContextPerMessage:`Mesaj başına temel bağlam`,system:`Sistem`,systemShort:`Sis`,skills:`Skills`,tools:`Araçlar`,files:`Dosyalar`,ofInput:`girdinin`,of:`/`,timelineFiltered:`zaman çizelgesi filtrelendi`,conversation:`Konuşma`,noMessages:`Mesaj yok`,tool:`Araç`,toolResult:`Araç sonucu`,hasTools:`Araç içeriyor`,searchConversation:`Konuşmada ara`,you:`Siz`,noMessagesMatch:`Filtrelerle eşleşen mesaj yok.`},mosaic:{title:`Zamana Göre Etkinlik`,subtitleEmpty:`Tahminler için oturum zaman damgaları gerekir.`,subtitle:`Oturum aralıklarından tahmin edilir (ilk/son etkinlik). Saat dilimi: {zone}.`,noTimelineData:`Henüz zaman çizelgesi verisi yok.`,dayOfWeek:`Haftanın Günü`,midnight:`Gece yarısı`,fourAm:`04:00`,eightAm:`08:00`,noon:`Öğlen`,fourPm:`16:00`,eightPm:`20:00`,legend:`Düşük → Yüksek token yoğunluğu`,sun:`Paz`,mon:`Pzt`,tue:`Sal`,wed:`Çar`,thu:`Per`,fri:`Cum`,sat:`Cmt`}},login:{subtitle:`Gateway Kontrol Paneli`,passwordPlaceholder:`isteğe bağlı`,showToken:`Tokenı göster`,hideToken:`Tokenı gizle`,toggleTokenVisibility:`Token görünürlüğünü değiştir`,showPassword:`Parolayı göster`,hidePassword:`Parolayı gizle`,togglePasswordVisibility:`Parola görünürlüğünü değiştir`},chat:{disconnected:`Gateway bağlantısı kesildi.`,refreshTitle:`Sohbet verilerini yenile`,focusToggle:`Odak modunu aç/kapat (kenar çubuğunu + sayfa başlığını gizle)`,hideCronSessions:`Cron oturumlarını gizle`,showCronSessions:`Cron oturumlarını göster`,showCronSessionsHidden:`Cron oturumlarını göster ({count} gizli)`,onboardingDisabled:`Kurulum sırasında devre dışı`},languages:{en:`İngilizce`,zhCN:`简体中文 (Basitleştirilmiş Çince)`,zhTW:`繁體中文 (Geleneksel Çince)`,ptBR:`Português (Brezilya Portekizcesi)`,de:`Deutsch (Almanca)`,es:`Español (İspanyolca)`,jaJP:`日本語 (Japonca)`,ko:`한국어 (Korece)`,fr:`Français (Fransızca)`,tr:`Türkçe (Türkçe)`,uk:`Українська (Ukraynaca)`,id:`Bahasa Indonesia (Endonezce)`,pl:`Polski (Lehçe)`,th:`ไทย (Tayca)`},cron:{summary:{enabled:`Etkin`,yes:`Evet`,no:`Hayır`,jobs:`İşler`,nextWake:`Sonraki uyandırma`,refreshing:`Yenileniyor...`,refresh:`Yenile`},jobs:{title:`İşler`,subtitle:`Gateway'de depolanan tüm zamanlanmış işler.`,shownOf:`{shown} / {total} gösteriliyor`,searchJobs:`İşlerde ara`,searchPlaceholder:`Ad, açıklama veya aracı`,enabled:`Etkin`,schedule:`Zamanlama`,lastRun:`Son çalıştırma`,all:`Tümü`,sort:`Sırala`,nextRun:`Sonraki çalıştırma`,recentlyUpdated:`Son güncellenenler`,name:`Ad`,direction:`Yön`,ascending:`Artan`,descending:`Azalan`,reset:`Sıfırla`,noMatching:`Eşleşen iş yok.`,loading:`Yükleniyor...`,loadMore:`Daha fazla iş yükle`},runs:{title:`Çalıştırma geçmişi`,subtitleAll:`Tüm işler genelindeki en son çalıştırmalar.`,subtitleJob:`{title} için en son çalıştırmalar.`,scope:`Kapsam`,allJobs:`Tüm işler`,selectedJob:`Seçili iş`,searchRuns:`Çalıştırmalarda ara`,searchPlaceholder:`Özet, hata veya iş`,newestFirst:`En yeniden eskiye`,oldestFirst:`En eskiden yeniye`,status:`Durum`,delivery:`Teslimat`,clear:`Temizle`,allStatuses:`Tüm durumlar`,allDelivery:`Tüm teslimatlar`,selectJobHint:`Çalıştırma geçmişini incelemek için bir iş seçin.`,noMatching:`Eşleşen çalıştırma yok.`,loadMore:`Daha fazla çalıştırma yükle`,runStatusOk:`Tamam`,runStatusError:`Hata`,runStatusSkipped:`Atlandı`,runStatusUnknown:`Bilinmiyor`,deliveryDelivered:`Teslim edildi`,deliveryNotDelivered:`Teslim edilmedi`,deliveryUnknown:`Bilinmiyor`,deliveryNotRequested:`Talep edilmedi`},form:{editJob:`İşi Düzenle`,newJob:`Yeni İş`,updateSubtitle:`Seçili zamanlanmış işi güncelleyin.`,createSubtitle:`Zamanlanmış bir uyandırma veya aracı çalıştırması oluşturun.`,required:`Gerekli`,requiredSr:`gerekli`,basics:`Temel Bilgiler`,basicsSub:`Ad verin, asistanı seçin ve etkin durumunu ayarlayın.`,fieldName:`Ad`,description:`Açıklama`,agentId:`Aracı Kimliği`,namePlaceholder:`Sabah özeti`,descriptionPlaceholder:`Bu iş için isteğe bağlı bağlam`,agentPlaceholder:`main veya ops`,agentHelp:`Bilinen bir aracı seçmek için yazmaya başlayın veya özel bir aracı girin.`,schedule:`Zamanlama`,scheduleSub:`Bu işin ne zaman çalışacağını kontrol edin.`,every:`Her`,at:`Saat`,cronOption:`Cron`,runAt:`Çalıştırma zamanı`,unit:`Birim`,minutes:`Dakika`,hours:`Saat`,days:`Gün`,expression:`İfade`,expressionPlaceholder:`0 7 * * *`,everyAmountPlaceholder:`30`,timezoneOptional:`Saat dilimi (isteğe bağlı)`,timezonePlaceholder:`America/Los_Angeles`,timezoneHelp:`Yaygın bir saat dilimi seçin veya geçerli herhangi bir IANA saat dilimi girin.`,jitterHelp:`Jitter mı gerekiyor? Gelişmiş → Dağıtma penceresi / Dağıtma birimi kullanın.`,execution:`Çalıştırma`,executionSub:`Ne zaman uyandırılacağını ve bu işin ne yapacağını seçin.`,session:`Oturum`,main:`Ana`,isolated:`Yalıtılmış`,sessionHelp:`Ana, bir sistem olayı gönderir. Yalıtılmış, ayrılmış bir aracı turu çalıştırır.`,wakeMode:`Uyandırma modu`,now:`Şimdi`,nextHeartbeat:`Sonraki heartbeat`,wakeModeHelp:`Şimdi hemen tetikler. Sonraki heartbeat, bir sonraki döngüyü bekler.`,payloadKind:`Ne çalıştırılsın?`,systemEvent:`Ana zaman çizelgesine mesaj gönder`,agentTurn:`Asistan görevini çalıştır (yalıtılmış)`,systemEventHelp:`Metninizi gateway ana zaman çizelgesine gönderir (hatırlatıcılar/tetikleyiciler için uygundur).`,agentTurnHelp:`İsteminizi kullanarak kendi oturumunda bir asistan çalıştırması başlatır.`,timeoutSeconds:`Zaman aşımı (saniye)`,timeoutPlaceholder:`İsteğe bağlı, örn. 90`,timeoutHelp:`İsteğe bağlı. Bu çalıştırma için Gateway varsayılan zaman aşımı davranışını kullanmak üzere boş bırakın.`,mainTimelineMessage:`Ana zaman çizelgesi mesajı`,assistantTaskPrompt:`Asistan görev istemi`,deliverySection:`Teslimat`,deliverySub:`Çalıştırma özetlerinin nereye gönderileceğini seçin.`,resultDelivery:`Sonuç teslimatı`,announceDefault:`Özeti duyur (varsayılan)`,webhookPost:`Webhook POST`,noneInternal:`Yok (dahili)`,deliveryHelp:`Duyur, özeti sohbete gönderir. Yok, çalıştırmayı dahili tutar.`,webhookUrl:`Webhook URL'si`,channel:`Kanal`,webhookPlaceholder:`https://example.com/cron`,channelHelp:`Özetin hangi bağlı kanala gönderileceğini seçin.`,webhookHelp:`Çalıştırma özetlerini bir webhook uç noktasına gönderin.`,to:`Kime`,toPlaceholder:`+1555... veya sohbet kimliği`,toHelp:`İsteğe bağlı alıcı geçersiz kılma (sohbet kimliği, telefon veya kullanıcı kimliği).`,advanced:`Gelişmiş`,advancedHelp:`Teslimat garantileri, zamanlama jitter'ı ve model kontrolleri için isteğe bağlı geçersiz kılmalar.`,deleteAfterRun:`Çalıştırmadan sonra sil`,deleteAfterRunHelp:`Otomatik olarak temizlenmesi gereken tek seferlik hatırlatıcılar için en uygunudur.`,clearAgentOverride:`Aracı geçersiz kılmasını temizle`,clearAgentHelp:`Bu işi Gateway varsayılan asistanını kullanmaya zorlayın.`,exactTiming:`Tam zamanlama (dağıtma yok)`,exactTimingHelp:`Yayılma olmadan tam cron sınırlarında çalıştırın.`,staggerWindow:`Dağıtma penceresi`,staggerUnit:`Dağıtma birimi`,staggerPlaceholder:`30`,seconds:`Saniye`,model:`Model`,modelPlaceholder:`openai/gpt-5.2`,modelHelp:`Bilinen bir model seçmek için yazmaya başlayın veya özel bir model girin.`,thinking:`Düşünme`,thinkingPlaceholder:`low`,thinkingHelp:`Önerilen bir seviye kullanın veya sağlayıcıya özgü bir değer girin.`,bestEffortDelivery:`Elinden gelen teslimat`,bestEffortHelp:`Teslimatın kendisi başarısız olursa işi başarısız sayma.`,cantAddYet:`Henüz iş eklenemiyor`,fillRequired:`Göndermeyi etkinleştirmek için aşağıdaki gerekli alanları doldurun.`,fixFields:`Devam etmek için {count} alanı düzeltin.`,fixFieldsPlural:`Devam etmek için {count} alanı düzeltin.`,saving:`Kaydediliyor...`,saveChanges:`Değişiklikleri kaydet`,addJob:`İş ekle`,cancel:`İptal`},jobList:{allJobs:`tüm işler`,selectJob:`(bir iş seçin)`,enabled:`etkin`,disabled:`devre dışı`,edit:`Düzenle`,clone:`Kopyala`,disable:`Devre dışı bırak`,enable:`Etkinleştir`,run:`Çalıştır`,history:`Geçmiş`,remove:`Kaldır`},jobDetail:{system:`Sistem`,prompt:`İstem`,delivery:`Teslimat`,agent:`Aracı`},jobState:{status:`Durum`,next:`Sonraki`,last:`Son`},runEntry:{noSummary:`Özet yok.`,runAt:`Çalıştırma zamanı`,openRunChat:`Çalıştırma sohbetini aç`,next:`Sonraki {rel}`,due:`Süresi {rel}`},errors:{nameRequired:`Ad gerekli.`,scheduleAtInvalid:`Geçerli bir tarih/saat girin.`,everyAmountInvalid:`Aralık 0'dan büyük olmalıdır.`,cronExprRequired:`Cron ifadesi gerekli.`,staggerAmountInvalid:`Dağıtma 0'dan büyük olmalıdır.`,systemTextRequired:`Sistem metni gerekli.`,agentMessageRequired:`Aracı mesajı gerekli.`,timeoutInvalid:`Ayarlanırsa zaman aşımı 0 saniyeden büyük olmalıdır.`,webhookUrlRequired:`Webhook URL gerekli.`,webhookUrlInvalid:`Webhook URL http:// veya https:// ile başlamalıdır.`,invalidRunTime:`Geçersiz çalıştırma zamanı.`,invalidIntervalAmount:`Geçersiz aralık miktarı.`,cronExprRequiredShort:`Cron ifadesi gerekli.`,invalidStaggerAmount:`Geçersiz dağıtma miktarı.`,systemEventTextRequired:`Sistem olayı metni gerekli.`,agentMessageRequiredShort:`Aracı mesajı gerekli.`,nameRequiredShort:`Ad gerekli.`}}};export{e as tr};
2
- //# sourceMappingURL=tr-jlhb5DaE.js.map
2
+ //# sourceMappingURL=tr-BHgpQnZM.js.map