beast-agent 2.13.0 → 2.15.0

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.
@@ -1,4 +1,4 @@
1
- /* Beast Agent — monokrom tema: siyah + füme + beyaz */
1
+ /* Beast Agent — monokrom tema: siyah + füme + beyaz */
2
2
 
3
3
  :root {
4
4
  --bg: #f7f7f8;
@@ -112,6 +112,71 @@ body {
112
112
 
113
113
  #sessList { flex: 1; overflow-y: auto; padding: 4px 8px; }
114
114
 
115
+ /* ---------- İZLEYİCİLER paneli (sol kenar çubuğu — sohbet geçmişinin alt yarısı) ----------
116
+ Yalnız agent (chat) modunda görünür; IDE/Studio/Sandbox'ta sessList ile birlikte gizli. */
117
+ #watchPane {
118
+ display: none;
119
+ flex-direction: column;
120
+ height: 36%;
121
+ min-height: 120px;
122
+ border-top: 1px solid var(--border);
123
+ background: var(--panel);
124
+ }
125
+ body:not(.ide-mode):not(.studio-mode):not(.sandbox-mode) #watchPane { display: flex; }
126
+ #watchPaneHead {
127
+ flex: none;
128
+ display: flex;
129
+ align-items: center;
130
+ gap: 6px;
131
+ padding: 7px 10px;
132
+ border-bottom: 1px solid var(--border);
133
+ }
134
+ #watchPaneTitle { font-size: 10.5px; letter-spacing: 2px; color: var(--muted); font-weight: 800; }
135
+ #watchPaneHead button {
136
+ margin-left: auto;
137
+ background: none;
138
+ border: 1px solid var(--border);
139
+ border-radius: 7px;
140
+ color: var(--muted);
141
+ cursor: pointer;
142
+ font-size: 12px;
143
+ line-height: 1.2;
144
+ padding: 1px 7px;
145
+ }
146
+ #watchPaneHead button:hover { color: var(--text); background: var(--panel2); }
147
+ #watchPaneList { flex: 1; overflow-y: auto; padding: 4px; }
148
+ .wp-row {
149
+ display: flex;
150
+ align-items: center;
151
+ gap: 7px;
152
+ padding: 4px 6px;
153
+ border-radius: 6px;
154
+ cursor: pointer;
155
+ font-size: 12px;
156
+ white-space: nowrap;
157
+ overflow: hidden;
158
+ }
159
+ .wp-row:hover { background: var(--panel2); }
160
+ .wp-dot { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--ok); }
161
+ .wp-row.off .wp-dot { background: var(--muted); opacity: 0.5; }
162
+ .wp-main { flex: 1; min-width: 0; overflow: hidden; }
163
+ .wp-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; font-size: 12px; }
164
+ .wp-meta { color: var(--muted); font-size: 10px; overflow: hidden; text-overflow: ellipsis; }
165
+ .wp-btns { display: flex; gap: 4px; flex: none; }
166
+ .wp-btn {
167
+ background: none;
168
+ border: 1px solid var(--border);
169
+ border-radius: 6px;
170
+ color: var(--muted);
171
+ cursor: pointer;
172
+ font-size: 10px;
173
+ padding: 1px 5px;
174
+ line-height: 1.3;
175
+ }
176
+ .wp-btn:hover { color: var(--text); background: var(--panel2); }
177
+ .wp-btn.del:hover { color: var(--err); border-color: var(--err); }
178
+ .wp-empty { color: var(--muted); font-size: 11.5px; padding: 10px; }
179
+
115
180
  .sess {
116
181
  display: flex;
117
182
  align-items: center;
@@ -4127,3 +4192,330 @@ body.sandbox-mode #sandboxRow { display: flex; flex-direction: row; }
4127
4192
  font-weight: 700;
4128
4193
  pointer-events: none;
4129
4194
  }
4195
+
4196
+ /* ================= BEAST FINANCE MODU =================
4197
+ Studio/Sandbox'tan farklı düzen: SOL sidebar (sohbet geçmişi + izleyiciler)
4198
+ ve ORTA chat AYNI kalır; SAĞDA MT5 işlem paneli açılır. İki ajan:
4199
+ chat copilot'ı (aktif sohbet) + otonom TRADER (farklı API/model). */
4200
+
4201
+ #finPanel { display: none; }
4202
+
4203
+ body.finance-mode #main { position: relative; }
4204
+
4205
+ body.finance-mode #finPanel {
4206
+ display: flex;
4207
+ flex-direction: column;
4208
+ position: absolute;
4209
+ top: 46px;
4210
+ right: 0;
4211
+ bottom: 0;
4212
+ width: var(--finW, 400px);
4213
+ min-width: 320px;
4214
+ background: var(--bg);
4215
+ border-left: 1px solid var(--border);
4216
+ z-index: 40;
4217
+ }
4218
+
4219
+ /* chat alanı sağda panel payı kadar kırpılır */
4220
+ body.finance-mode #chatScroll,
4221
+ body.finance-mode #composerWrap { margin-right: var(--finW, 400px); }
4222
+
4223
+ #finBtn.on { background: var(--accent-dim); color: var(--accent); }
4224
+
4225
+ #finHead {
4226
+ flex: none;
4227
+ display: flex;
4228
+ align-items: center;
4229
+ gap: 7px;
4230
+ padding: 9px 12px;
4231
+ border-bottom: 1px solid var(--border);
4232
+ background: var(--panel);
4233
+ }
4234
+ #finTitle { font-size: 11px; font-weight: 800; letter-spacing: 1px; color: var(--accent); }
4235
+ #finTerm {
4236
+ font-size: 11px;
4237
+ color: var(--muted);
4238
+ max-width: 150px;
4239
+ white-space: nowrap;
4240
+ overflow: hidden;
4241
+ text-overflow: ellipsis;
4242
+ }
4243
+ #finHead button {
4244
+ background: none;
4245
+ border: none;
4246
+ color: var(--muted);
4247
+ font-size: 13px;
4248
+ cursor: pointer;
4249
+ padding: 3px 7px;
4250
+ border-radius: 6px;
4251
+ }
4252
+ #finHead button:hover { background: var(--panel2); color: var(--text); }
4253
+
4254
+ .fin-dot {
4255
+ flex: none;
4256
+ width: 9px;
4257
+ height: 9px;
4258
+ border-radius: 50%;
4259
+ background: var(--muted);
4260
+ }
4261
+ .fin-dot.on { background: #22c55e; box-shadow: 0 0 6px rgba(34, 197, 94, 0.7); }
4262
+ .fin-dot.off { background: #ef4444; }
4263
+ .fin-dot.busy { background: #eab308; box-shadow: 0 0 6px rgba(234, 179, 8, 0.7); }
4264
+
4265
+ #finBody {
4266
+ flex: 1;
4267
+ min-height: 0;
4268
+ overflow-y: auto;
4269
+ display: flex;
4270
+ flex-direction: column;
4271
+ gap: 8px;
4272
+ padding: 10px;
4273
+ }
4274
+
4275
+ .fin-card {
4276
+ flex: none;
4277
+ border: 1px solid var(--border);
4278
+ border-radius: 10px;
4279
+ background: var(--panel);
4280
+ padding: 9px 10px;
4281
+ }
4282
+ .fin-card.fin-grow { flex: 1 1 auto; min-height: 90px; display: flex; flex-direction: column; }
4283
+ .fin-card-title {
4284
+ font-size: 10px;
4285
+ font-weight: 800;
4286
+ letter-spacing: 1px;
4287
+ color: var(--muted);
4288
+ margin-bottom: 7px;
4289
+ display: flex;
4290
+ align-items: center;
4291
+ gap: 6px;
4292
+ }
4293
+
4294
+ .fin-grid {
4295
+ display: grid;
4296
+ grid-template-columns: 1fr 1fr;
4297
+ gap: 6px 10px;
4298
+ }
4299
+ .fin-kv { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
4300
+ .fin-kv span { font-size: 10px; color: var(--muted); }
4301
+ .fin-kv b { font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
4302
+
4303
+ .fin-row { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; }
4304
+ .fin-row:last-child { margin-bottom: 0; }
4305
+ .fin-row.fin-mini { gap: 6px; }
4306
+ .fin-row.fin-mini label { flex: none; font-size: 10px; color: var(--muted); min-width: 44px; }
4307
+ .fin-row.fin-mini input { width: 60px; }
4308
+ .fin-row input, .fin-row select {
4309
+ flex: 1;
4310
+ min-width: 0;
4311
+ background: var(--panel2);
4312
+ border: 1px solid var(--border);
4313
+ color: var(--text);
4314
+ font-size: 12px;
4315
+ padding: 4px 7px;
4316
+ border-radius: 6px;
4317
+ }
4318
+ .fin-row input:focus, .fin-row select:focus { border-color: var(--accent); outline: none; }
4319
+
4320
+ /* TRADE AJANI sembol seçme düğmesi — tıklayınca MT5 sembol seçici açılır */
4321
+ .fin-sym-select {
4322
+ flex: 1;
4323
+ min-width: 0;
4324
+ text-align: left;
4325
+ background: var(--panel2);
4326
+ border: 1px solid var(--border);
4327
+ color: var(--text);
4328
+ font-size: 12px;
4329
+ padding: 4px 8px;
4330
+ border-radius: 6px;
4331
+ cursor: pointer;
4332
+ white-space: nowrap;
4333
+ overflow: hidden;
4334
+ text-overflow: ellipsis;
4335
+ }
4336
+ .fin-sym-select:hover { border-color: var(--accent); color: var(--accent); }
4337
+ .fin-check {
4338
+ flex: 1;
4339
+ display: flex;
4340
+ align-items: center;
4341
+ gap: 6px;
4342
+ font-size: 11px;
4343
+ color: var(--text);
4344
+ cursor: pointer;
4345
+ min-width: 0;
4346
+ white-space: nowrap;
4347
+ overflow: hidden;
4348
+ text-overflow: ellipsis;
4349
+ }
4350
+ .fin-check input { flex: none; width: auto; }
4351
+ .fin-start {
4352
+ flex: none;
4353
+ background: var(--accent);
4354
+ border: none;
4355
+ color: #fff;
4356
+ font-size: 11px;
4357
+ font-weight: 700;
4358
+ padding: 6px 12px;
4359
+ border-radius: 7px;
4360
+ cursor: pointer;
4361
+ }
4362
+ .fin-start:hover { filter: brightness(1.1); }
4363
+ .fin-start.stop { background: #ef4444; }
4364
+
4365
+ #finTraderStatus {
4366
+ margin-top: 7px;
4367
+ font-size: 11px;
4368
+ color: var(--muted);
4369
+ white-space: nowrap;
4370
+ overflow: hidden;
4371
+ text-overflow: ellipsis;
4372
+ }
4373
+
4374
+ #finPosList, #finSymList { display: flex; flex-direction: column; gap: 5px; }
4375
+ .fin-empty { font-size: 11px; color: var(--muted); padding: 2px 0 4px; }
4376
+
4377
+ .fin-pos {
4378
+ display: flex;
4379
+ align-items: center;
4380
+ gap: 7px;
4381
+ font-size: 11px;
4382
+ background: var(--panel2);
4383
+ border: 1px solid var(--border);
4384
+ border-radius: 7px;
4385
+ padding: 5px 8px;
4386
+ }
4387
+ .fin-pos .fp-sym { font-weight: 700; min-width: 54px; }
4388
+ .fin-pos .fp-dir {
4389
+ flex: none;
4390
+ font-weight: 800;
4391
+ font-size: 9px;
4392
+ padding: 2px 5px;
4393
+ border-radius: 5px;
4394
+ letter-spacing: 0.5px;
4395
+ }
4396
+ .fin-pos .fp-dir.buy { background: rgba(34, 197, 94, 0.16); color: #22c55e; }
4397
+ .fin-pos .fp-dir.sell { background: rgba(239, 68, 68, 0.16); color: #ef4444; }
4398
+ .fin-pos .fp-meta { flex: 1; min-width: 0; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
4399
+ .fin-pos .fp-pl { font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
4400
+ .fin-pos .fp-pl.pos { color: #22c55e; }
4401
+ .fin-pos .fp-pl.neg { color: #ef4444; }
4402
+ .fin-pos .fp-close {
4403
+ flex: none;
4404
+ background: none;
4405
+ border: none;
4406
+ color: var(--muted);
4407
+ font-size: 12px;
4408
+ cursor: pointer;
4409
+ padding: 2px 5px;
4410
+ border-radius: 5px;
4411
+ }
4412
+ .fin-pos .fp-close:hover { background: rgba(239, 68, 68, 0.15); color: #ef4444; }
4413
+
4414
+ .fin-sym {
4415
+ display: flex;
4416
+ align-items: center;
4417
+ justify-content: space-between;
4418
+ gap: 7px;
4419
+ font-size: 11px;
4420
+ padding: 4px 6px;
4421
+ border-radius: 6px;
4422
+ background: var(--panel2);
4423
+ border: 1px solid var(--border);
4424
+ }
4425
+ .fin-sym .fs-name { font-weight: 700; }
4426
+ .fin-sym .fs-price { font-variant-numeric: tabular-nums; }
4427
+ .fin-sym .fs-up { color: #22c55e; }
4428
+ .fin-sym .fs-down { color: #ef4444; }
4429
+ .fin-sym .fs-spread { color: var(--muted); font-size: 10px; }
4430
+
4431
+ #finLog {
4432
+ flex: 1;
4433
+ min-height: 0;
4434
+ overflow-y: auto;
4435
+ font-family: Consolas, monospace;
4436
+ font-size: 10.5px;
4437
+ line-height: 1.55;
4438
+ color: var(--muted);
4439
+ white-space: pre-wrap;
4440
+ word-break: break-word;
4441
+ }
4442
+ #finLog .fin-log-new { color: var(--text); }
4443
+
4444
+ /* PİYASA başlığındaki sembol ekleme ikonu */
4445
+ .fin-card-title button {
4446
+ background: none;
4447
+ border: none;
4448
+ color: var(--muted);
4449
+ font-size: 13px;
4450
+ line-height: 1;
4451
+ cursor: pointer;
4452
+ padding: 1px 6px;
4453
+ border-radius: 5px;
4454
+ }
4455
+ .fin-card-title button:hover { background: var(--accent-dim); color: var(--accent); }
4456
+
4457
+ /* MT5 sembol seçici modalı */
4458
+ .fin-sym-dialog { width: 460px; max-width: calc(100vw - 40px); }
4459
+ .fin-sym-count { font-size: 11px; color: var(--muted); margin-left: auto; margin-right: 6px; }
4460
+ #finSymSearch {
4461
+ width: 100%;
4462
+ box-sizing: border-box;
4463
+ background: var(--panel2);
4464
+ border: 1px solid var(--border);
4465
+ color: var(--text);
4466
+ font-size: 12px;
4467
+ padding: 6px 9px;
4468
+ border-radius: 7px;
4469
+ margin-bottom: 8px;
4470
+ }
4471
+ #finSymSearch:focus { border-color: var(--accent); outline: none; }
4472
+ .fin-sym-dialog .mini-body {
4473
+ flex: 1;
4474
+ min-height: 0;
4475
+ display: flex;
4476
+ flex-direction: column;
4477
+ overflow: hidden;
4478
+ }
4479
+ #finSymPick {
4480
+ flex: 1;
4481
+ min-height: 0;
4482
+ overflow-y: auto;
4483
+ display: flex;
4484
+ flex-direction: column;
4485
+ gap: 3px;
4486
+ }
4487
+ .fin-sym-row {
4488
+ display: flex;
4489
+ align-items: center;
4490
+ gap: 8px;
4491
+ font-size: 12px;
4492
+ padding: 5px 8px;
4493
+ border-radius: 6px;
4494
+ cursor: pointer;
4495
+ border: 1px solid transparent;
4496
+ }
4497
+ .fin-sym-row:hover { background: var(--panel2); }
4498
+ .fin-sym-row.on { background: var(--accent-dim); border-color: var(--accent); }
4499
+ .fin-sym-row .fsr-check {
4500
+ flex: none;
4501
+ width: 14px;
4502
+ text-align: center;
4503
+ color: var(--accent);
4504
+ font-weight: 800;
4505
+ }
4506
+ .fin-sym-row .fsr-name { flex: none; min-width: 84px; font-weight: 700; color: var(--text); }
4507
+ .fin-sym-row .fsr-desc {
4508
+ flex: 1;
4509
+ min-width: 0;
4510
+ color: var(--muted);
4511
+ white-space: nowrap;
4512
+ overflow: hidden;
4513
+ text-overflow: ellipsis;
4514
+ }
4515
+ .fin-sym-hint {
4516
+ flex: none;
4517
+ margin-top: 8px;
4518
+ font-size: 10.5px;
4519
+ color: var(--muted);
4520
+ text-align: center;
4521
+ }