@monster-orange/den 0.4.11 → 0.4.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +169 -0
- package/README.md +7 -7
- package/docs/distributions.md +212 -12
- package/package.json +2 -1
- package/src/shared/agents/catalog.ts +77 -0
- package/src/shared/agents/default-pack/be-dev.md +1 -0
- package/src/shared/agents/default-pack/devops.md +1 -0
- package/src/shared/agents/default-pack/fe-dev.md +1 -0
- package/src/shared/agents/default-pack/orchestrator.md +3 -1
- package/src/shared/agents/default-pack/planner.md +1 -0
- package/src/shared/agents/default-pack/reviewer.md +1 -0
- package/src/shared/agents/default-pack/tester.md +16 -0
- package/src/shared/agents/default-pack/ux-designer.md +1 -0
- package/src/shared/agents/den-claude.ts +151 -17
- package/src/shared/agents/permissions.ts +108 -0
- package/src/shared/agents/persona-store.ts +286 -0
- package/src/shared/agents/personas.ts +116 -12
- package/src/shared/agents/records.ts +57 -0
- package/src/shared/agents/roles.ts +288 -0
- package/src/shared/agents/runtime.ts +49 -0
- package/src/shared/agents/session-name.ts +110 -0
- package/src/shared/agents/transcript-follow.ts +180 -0
- package/src/shared/den-config.ts +27 -1
- package/src/ui/cli/agent-ops.ts +578 -11
- package/src/ui/cli/agents-command.ts +12 -2
- package/src/ui/cli/env-probe.ts +4 -1
- package/src/ui/mcp/tools.ts +1 -1
- package/src/ui/server/agent-paths.ts +52 -0
- package/src/ui/server/agent-routes.ts +329 -19
- package/src/ui/server/agents-layout-pref.ts +43 -0
- package/src/ui/server/editor-open-pref.ts +41 -0
- package/src/ui/server/index.ts +22 -0
- package/src/ui/server/public/agent-start.js +3 -2
- package/src/ui/server/public/agents-page.js +1037 -67
- package/src/ui/server/public/agents-section.js +1 -1
- package/src/ui/server/public/agents.html +236 -20
- package/src/ui/server/public/header.js +2 -0
- package/src/ui/server/public/i18n/es.js +139 -0
- package/src/ui/server/public/i18n/ja.js +139 -0
- package/src/ui/server/public/persona-ui.css +539 -0
- package/src/ui/server/public/persona-ui.js +796 -0
- package/src/ui/server/public/settings-page.js +4 -9
- package/src/ui/server/public/settings-registry.js +66 -0
- package/src/ui/server/public/settings.html +1 -0
- package/src/ui/server/public/shell.js +137 -0
- package/src/ui/server/public/term-input.js +129 -0
- package/src/ui/server/public/topbar.js +22 -4
- package/src/ui/server/route-classes.ts +29 -0
- package/src/ui/server/session-routes.ts +34 -1
- package/src/ui/server/ui-assets.ts +8 -0
|
@@ -138,7 +138,7 @@ function rowHtml(r) {
|
|
|
138
138
|
? ` <span class="tbl-muted">· ${esc(r.model)}</span>`
|
|
139
139
|
: "";
|
|
140
140
|
return `<tr class="agent" data-agent="${esc(r.agent)}" data-state="${esc(r.state)}">
|
|
141
|
-
<th scope="row"
|
|
141
|
+
<th scope="row">${r.displayName ? `<span class="repo-name">${esc(r.displayName)}</span> <span class="tbl-muted">${esc(r.agent)}</span>` : `<span class="repo-name">${esc(r.agent)}</span>`}${persona}</th>
|
|
142
142
|
<td class="tbl-mono">${esc(r.runtime ?? "—")}${model}</td>
|
|
143
143
|
<td>${stateCell(r.state)}</td>
|
|
144
144
|
<td class="tbl-mono tbl-muted agent-cwd" title="${esc(r.cwd ?? "")}">${esc(r.cwd ?? "—")}</td>
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
})();
|
|
27
27
|
</script>
|
|
28
28
|
<link rel="stylesheet" href="/theme.css" id="theme-css" />
|
|
29
|
+
<link rel="stylesheet" href="/persona-ui.css" />
|
|
29
30
|
<link rel="stylesheet" href="/vendor/xterm.css" />
|
|
30
31
|
<title>__DEN_TITLE__ · Agents</title>
|
|
31
32
|
<style>
|
|
@@ -50,13 +51,26 @@
|
|
|
50
51
|
flex-direction: column;
|
|
51
52
|
overflow: hidden;
|
|
52
53
|
}
|
|
54
|
+
/* AG-4b: the main area is a column that fills the window between
|
|
55
|
+
the top bar and the runs dock (the body is the viewport's height,
|
|
56
|
+
the shell's column puts the dock at its foot); the list and the
|
|
57
|
+
panes take what is left, 14px above the dock. No 100vh guess. */
|
|
58
|
+
html body.den-has-shell {
|
|
59
|
+
height: 100%;
|
|
60
|
+
min-height: 0;
|
|
61
|
+
}
|
|
53
62
|
html body.den-has-shell > #den-content {
|
|
54
63
|
overflow: auto;
|
|
55
64
|
min-width: 0;
|
|
56
|
-
|
|
65
|
+
min-height: 0;
|
|
66
|
+
padding: 20px 24px 14px 24px;
|
|
57
67
|
font: 14px/1.45 var(--sans);
|
|
58
68
|
color: var(--text);
|
|
59
|
-
display:
|
|
69
|
+
display: flex;
|
|
70
|
+
flex-direction: column;
|
|
71
|
+
}
|
|
72
|
+
#den-content > .ph {
|
|
73
|
+
flex: none;
|
|
60
74
|
}
|
|
61
75
|
#den-content :focus-visible {
|
|
62
76
|
outline: 2px solid var(--accent);
|
|
@@ -94,9 +108,38 @@
|
|
|
94
108
|
.agx {
|
|
95
109
|
display: grid;
|
|
96
110
|
grid-template-columns: 300px minmax(0, 1fr);
|
|
111
|
+
grid-template-rows: minmax(0, 1fr);
|
|
97
112
|
gap: 14px;
|
|
98
|
-
|
|
99
|
-
height:
|
|
113
|
+
flex: 1;
|
|
114
|
+
min-height: 0;
|
|
115
|
+
}
|
|
116
|
+
/* The layout switch (AG-4b), the prototype's .seg. */
|
|
117
|
+
.seg {
|
|
118
|
+
display: inline-flex;
|
|
119
|
+
border: 1px solid var(--border);
|
|
120
|
+
border-radius: var(--radius-button);
|
|
121
|
+
overflow: hidden;
|
|
122
|
+
flex-wrap: wrap;
|
|
123
|
+
}
|
|
124
|
+
.seg button {
|
|
125
|
+
background: none;
|
|
126
|
+
border: 0;
|
|
127
|
+
padding: 6px 12px;
|
|
128
|
+
cursor: pointer;
|
|
129
|
+
color: var(--muted);
|
|
130
|
+
font: inherit;
|
|
131
|
+
}
|
|
132
|
+
.seg button[aria-pressed="true"] {
|
|
133
|
+
background: color-mix(in srgb, var(--accent) 16%, transparent);
|
|
134
|
+
color: var(--text);
|
|
135
|
+
font-weight: 500;
|
|
136
|
+
}
|
|
137
|
+
.agl .aghint {
|
|
138
|
+
padding: 10px 12px;
|
|
139
|
+
font-size: 12px;
|
|
140
|
+
color: var(--faint);
|
|
141
|
+
border-top: 1px solid var(--border);
|
|
142
|
+
margin-top: 6px;
|
|
100
143
|
}
|
|
101
144
|
.agl {
|
|
102
145
|
border: 1px solid var(--border);
|
|
@@ -245,6 +288,98 @@
|
|
|
245
288
|
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
246
289
|
grid-auto-rows: minmax(0, 1fr);
|
|
247
290
|
}
|
|
291
|
+
.agp.tabs {
|
|
292
|
+
grid-template-columns: minmax(0, 1fr);
|
|
293
|
+
grid-template-rows: auto minmax(0, 1fr);
|
|
294
|
+
gap: 0;
|
|
295
|
+
}
|
|
296
|
+
.agp > .pane[hidden] {
|
|
297
|
+
display: none;
|
|
298
|
+
}
|
|
299
|
+
.agp.tabs > .pane {
|
|
300
|
+
border-top-left-radius: 0;
|
|
301
|
+
}
|
|
302
|
+
/* The tab strip (the prototype's .agtabs): name, persona · workspace. */
|
|
303
|
+
.agtabs {
|
|
304
|
+
display: flex;
|
|
305
|
+
gap: 2px;
|
|
306
|
+
border-bottom: 1px solid var(--border);
|
|
307
|
+
overflow-x: auto;
|
|
308
|
+
min-width: 0;
|
|
309
|
+
}
|
|
310
|
+
.agtab-w {
|
|
311
|
+
position: relative;
|
|
312
|
+
display: inline-flex;
|
|
313
|
+
flex: none;
|
|
314
|
+
max-width: 280px;
|
|
315
|
+
}
|
|
316
|
+
.agtab {
|
|
317
|
+
display: inline-flex;
|
|
318
|
+
align-items: center;
|
|
319
|
+
gap: 6px;
|
|
320
|
+
min-width: 0;
|
|
321
|
+
border: 1px solid transparent;
|
|
322
|
+
border-bottom: 0;
|
|
323
|
+
background: none;
|
|
324
|
+
padding: 6px 28px 6px 10px;
|
|
325
|
+
border-radius: var(--radius-button) var(--radius-button) 0 0;
|
|
326
|
+
cursor: pointer;
|
|
327
|
+
color: var(--muted);
|
|
328
|
+
white-space: nowrap;
|
|
329
|
+
font: 13px var(--sans);
|
|
330
|
+
}
|
|
331
|
+
.agtab[hidden] {
|
|
332
|
+
display: none;
|
|
333
|
+
}
|
|
334
|
+
.agtab[aria-selected="true"] {
|
|
335
|
+
background: var(--surface);
|
|
336
|
+
border-color: var(--border);
|
|
337
|
+
color: var(--text);
|
|
338
|
+
margin-bottom: -1px;
|
|
339
|
+
}
|
|
340
|
+
.agtab .den-dot {
|
|
341
|
+
margin: 0;
|
|
342
|
+
}
|
|
343
|
+
.agtab .tn {
|
|
344
|
+
overflow: hidden;
|
|
345
|
+
text-overflow: ellipsis;
|
|
346
|
+
}
|
|
347
|
+
.agtab .tm {
|
|
348
|
+
color: var(--faint);
|
|
349
|
+
font-size: 11px;
|
|
350
|
+
overflow: hidden;
|
|
351
|
+
text-overflow: ellipsis;
|
|
352
|
+
}
|
|
353
|
+
.agtab-x {
|
|
354
|
+
position: absolute;
|
|
355
|
+
top: 0;
|
|
356
|
+
bottom: 0;
|
|
357
|
+
right: 4px;
|
|
358
|
+
display: flex;
|
|
359
|
+
align-items: center;
|
|
360
|
+
padding: 0 4px;
|
|
361
|
+
border: 0;
|
|
362
|
+
background: none;
|
|
363
|
+
cursor: pointer;
|
|
364
|
+
font: 13px var(--sans);
|
|
365
|
+
color: var(--faint);
|
|
366
|
+
}
|
|
367
|
+
.agtab-x:hover {
|
|
368
|
+
color: var(--bad);
|
|
369
|
+
}
|
|
370
|
+
.agtab-in {
|
|
371
|
+
font: 13px var(--sans);
|
|
372
|
+
width: 200px;
|
|
373
|
+
margin: 3px 28px 3px 6px;
|
|
374
|
+
padding: 2px 6px;
|
|
375
|
+
border: 1px solid var(--accent);
|
|
376
|
+
border-radius: var(--radius-button);
|
|
377
|
+
background: var(--bg);
|
|
378
|
+
color: var(--text);
|
|
379
|
+
}
|
|
380
|
+
.den-sr[hidden] {
|
|
381
|
+
display: none;
|
|
382
|
+
}
|
|
248
383
|
.pane {
|
|
249
384
|
display: grid;
|
|
250
385
|
grid-template-rows: auto minmax(0, 1fr);
|
|
@@ -292,6 +427,9 @@
|
|
|
292
427
|
gap: 6px;
|
|
293
428
|
flex: none;
|
|
294
429
|
}
|
|
430
|
+
.pane .bar2 .x [hidden] {
|
|
431
|
+
display: none;
|
|
432
|
+
}
|
|
295
433
|
/* The body: mono 12px/1.5 (xterm draws inside it). */
|
|
296
434
|
.pane .term {
|
|
297
435
|
min-height: 0;
|
|
@@ -301,6 +439,15 @@
|
|
|
301
439
|
color: var(--text);
|
|
302
440
|
overflow: hidden;
|
|
303
441
|
}
|
|
442
|
+
.pane .term {
|
|
443
|
+
display: grid;
|
|
444
|
+
grid-template: minmax(0, 1fr) / minmax(0, 1fr);
|
|
445
|
+
}
|
|
446
|
+
.pane .term .tbox {
|
|
447
|
+
min-height: 0;
|
|
448
|
+
min-width: 0;
|
|
449
|
+
overflow: hidden;
|
|
450
|
+
}
|
|
304
451
|
.pane .term .xterm {
|
|
305
452
|
height: 100%;
|
|
306
453
|
}
|
|
@@ -430,7 +577,8 @@
|
|
|
430
577
|
@media (max-width: 860px) {
|
|
431
578
|
.agx {
|
|
432
579
|
grid-template-columns: minmax(0, 1fr);
|
|
433
|
-
|
|
580
|
+
grid-template-rows: none;
|
|
581
|
+
flex: none;
|
|
434
582
|
}
|
|
435
583
|
.ph .act {
|
|
436
584
|
flex-wrap: wrap;
|
|
@@ -465,6 +613,32 @@
|
|
|
465
613
|
</div>
|
|
466
614
|
</div>
|
|
467
615
|
<div class="act">
|
|
616
|
+
<div class="seg" role="group" aria-label="Layout" data-layouts>
|
|
617
|
+
<button
|
|
618
|
+
type="button"
|
|
619
|
+
data-layout="focus"
|
|
620
|
+
aria-pressed="true"
|
|
621
|
+
aria-keyshortcuts="Control+Shift+1"
|
|
622
|
+
>
|
|
623
|
+
Focus
|
|
624
|
+
</button>
|
|
625
|
+
<button
|
|
626
|
+
type="button"
|
|
627
|
+
data-layout="tabs"
|
|
628
|
+
aria-pressed="false"
|
|
629
|
+
aria-keyshortcuts="Control+Shift+2"
|
|
630
|
+
>
|
|
631
|
+
Tabs
|
|
632
|
+
</button>
|
|
633
|
+
<button
|
|
634
|
+
type="button"
|
|
635
|
+
data-layout="tile"
|
|
636
|
+
aria-pressed="false"
|
|
637
|
+
aria-keyshortcuts="Control+Shift+3"
|
|
638
|
+
>
|
|
639
|
+
Tile
|
|
640
|
+
</button>
|
|
641
|
+
</div>
|
|
468
642
|
<button type="button" class="den-btn" id="ag-clear" hidden>
|
|
469
643
|
Clear stopped
|
|
470
644
|
</button>
|
|
@@ -483,22 +657,50 @@
|
|
|
483
657
|
></div>
|
|
484
658
|
<div id="agr" class="agempty"></div>
|
|
485
659
|
</div>
|
|
486
|
-
<dialog class="ag-dlg" id="ag-dlg" aria-labelledby="ag-dlg-h">
|
|
487
|
-
<form method="dialog" id="ag-form">
|
|
660
|
+
<dialog class="ag-dlg pe-dlg" id="ag-dlg" aria-labelledby="ag-dlg-h">
|
|
661
|
+
<form method="dialog" id="ag-form" novalidate>
|
|
488
662
|
<h2 id="ag-dlg-h">Start an agent</h2>
|
|
489
|
-
<
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
663
|
+
<div class="fld" id="ag-pfld">
|
|
664
|
+
<div class="fldh">
|
|
665
|
+
<span class="k" id="ag-p-t">Persona</span
|
|
666
|
+
><button
|
|
667
|
+
type="button"
|
|
668
|
+
class="lnk"
|
|
669
|
+
data-x="what"
|
|
670
|
+
id="ag-what-b"
|
|
671
|
+
aria-expanded="false"
|
|
672
|
+
aria-controls="ag-what"
|
|
673
|
+
>
|
|
674
|
+
What's a persona?</button
|
|
675
|
+
><span class="sp"></span
|
|
676
|
+
><button type="button" class="lnk" data-x="newp" id="ag-newp">
|
|
677
|
+
+ New persona
|
|
678
|
+
</button>
|
|
679
|
+
</div>
|
|
680
|
+
<div class="pdet" id="ag-what" hidden>
|
|
681
|
+
<div class="why" id="ag-what-p"></div>
|
|
682
|
+
</div>
|
|
683
|
+
<div id="ag-pfbar"></div>
|
|
684
|
+
<div
|
|
685
|
+
class="plist"
|
|
686
|
+
id="ag-persona"
|
|
687
|
+
role="radiogroup"
|
|
688
|
+
aria-label="Persona"
|
|
689
|
+
></div>
|
|
690
|
+
<div id="ag-detrow"></div>
|
|
691
|
+
</div>
|
|
692
|
+
<div class="two">
|
|
693
|
+
<label class="fld" id="ag-r-l"
|
|
694
|
+
><span id="ag-r-t">Runtime</span>
|
|
695
|
+
<select name="runtime" id="ag-runtime"></select
|
|
696
|
+
></label>
|
|
697
|
+
<label class="fld" id="ag-ws-l"
|
|
698
|
+
><span id="ag-ws-t">Workspace</span>
|
|
699
|
+
<select name="ws" id="ag-ws"></select
|
|
700
|
+
></label>
|
|
701
|
+
</div>
|
|
702
|
+
<p class="helpl warn" id="ag-r-fb" role="status" hidden></p>
|
|
703
|
+
<p class="helpl" id="ag-r-miss" hidden></p>
|
|
502
704
|
<p
|
|
503
705
|
class="ready"
|
|
504
706
|
id="ag-r-ready"
|
|
@@ -506,7 +708,21 @@
|
|
|
506
708
|
role="status"
|
|
507
709
|
hidden
|
|
508
710
|
></p>
|
|
711
|
+
<label class="fld" id="ag-task-l"
|
|
712
|
+
><span id="ag-task-t">First instruction (optional)</span>
|
|
713
|
+
<textarea id="ag-task" rows="4" maxlength="8000"></textarea>
|
|
714
|
+
</label>
|
|
715
|
+
<details id="ag-adv">
|
|
716
|
+
<summary id="ag-adv-s">Advanced: model and permissions</summary>
|
|
717
|
+
<div class="adv-body" id="ag-adv-b"></div>
|
|
718
|
+
</details>
|
|
719
|
+
<p id="ag-note">
|
|
720
|
+
Starts in the workspace folder. It keeps running if you close the
|
|
721
|
+
pane.
|
|
722
|
+
</p>
|
|
723
|
+
<p class="err" id="ag-err" role="alert" hidden></p>
|
|
509
724
|
<div class="btns">
|
|
725
|
+
<span class="sp"></span>
|
|
510
726
|
<button type="button" class="den-btn" id="ag-cancel">Cancel</button>
|
|
511
727
|
<button type="submit" class="den-btn primary" id="ag-go">
|
|
512
728
|
Start
|
|
@@ -877,6 +877,8 @@ function followScopeInUrl(value) {
|
|
|
877
877
|
async function _switchScope(value, focus, inView) {
|
|
878
878
|
if (value !== "all" && value !== focus && !(await _setFocus(value))) return;
|
|
879
879
|
if (inView) {
|
|
880
|
+
// A ?ws= page shows the pick after the reload, not its old ?ws=.
|
|
881
|
+
followScopeInUrl(value);
|
|
880
882
|
location.reload();
|
|
881
883
|
return;
|
|
882
884
|
}
|
|
@@ -327,6 +327,7 @@
|
|
|
327
327
|
"set.language": "Idioma",
|
|
328
328
|
"set.appearance.org-theme": "Tema predeterminado de la org",
|
|
329
329
|
"set.editor": "IDE predeterminado",
|
|
330
|
+
"set.editor.open": "Abrir enlaces de archivo en",
|
|
330
331
|
"set.editor_overrides": "IDE por lenguaje",
|
|
331
332
|
"set.terminal": "Terminal predeterminada",
|
|
332
333
|
"set.shell.pages": "Páginas",
|
|
@@ -341,6 +342,7 @@
|
|
|
341
342
|
"set.graph.panelWidth": "Panel de detalles",
|
|
342
343
|
"set.workspace.editor": "IDE de este espacio de trabajo",
|
|
343
344
|
"set.agents.runtimes": "Runtimes",
|
|
345
|
+
"set.agents.layout": "Disposición de la pestaña Agentes",
|
|
344
346
|
"set.cli.local_dev": "Entorno local",
|
|
345
347
|
"set.cli.cli_tabs": "Pestañas de terminal",
|
|
346
348
|
"set.cli.log_window_lines": "Líneas del panel de registros",
|
|
@@ -440,6 +442,126 @@
|
|
|
440
442
|
"ag.review": "Revisar",
|
|
441
443
|
"ag.resumedAll": "{n} agentes reanudados",
|
|
442
444
|
"ag.resumedAll.one": "{n} agente reanudado",
|
|
445
|
+
"pe.configFirst":
|
|
446
|
+
"Corrige primero la configuración: las personas se leen de ella.",
|
|
447
|
+
"ag.new.title": "Iniciar un agente",
|
|
448
|
+
"rt.missingLine": "No encontrados en esta máquina:",
|
|
449
|
+
"rt.install": "Instalar…",
|
|
450
|
+
// The Start dialog and personas (AG-10 to AG-13).
|
|
451
|
+
"ag.new.what": "¿Qué es una persona?",
|
|
452
|
+
"ag.new.details": "Detalles: {n}",
|
|
453
|
+
"ag.new.hide": "Ocultar detalles",
|
|
454
|
+
"ag.new.newP": "+ Nueva persona",
|
|
455
|
+
"ag.new.plain": "Sesión simple",
|
|
456
|
+
"ag.new.plainP":
|
|
457
|
+
"Una terminal en la carpeta del espacio de trabajo. Sin agente.",
|
|
458
|
+
"ag.new.task": "Primera instrucción (opcional)",
|
|
459
|
+
"ag.new.taskPh":
|
|
460
|
+
"p. ej., Toma la historia del estado vacío. Sigue el diseño y añade una prueba.",
|
|
461
|
+
"ag.new.adv": "Avanzado: modelo y permisos",
|
|
462
|
+
"ag.new.advNote":
|
|
463
|
+
"Los valores predeterminados vienen de la persona. Los cambios aquí solo afectan a esta sesión, y la sesión queda marcada en la lista.",
|
|
464
|
+
"ag.new.model": "Modelo",
|
|
465
|
+
"ag.new.modelDef": "Predeterminado de la persona ({m})",
|
|
466
|
+
"ag.new.ver": "Versión",
|
|
467
|
+
"ag.new.verDef": "Predeterminado de la persona ({v})",
|
|
468
|
+
"ag.new.note":
|
|
469
|
+
"Se inicia en la carpeta del espacio de trabajo. Sigue en ejecución si cierras el panel.",
|
|
470
|
+
"ag.new.started": "{p} iniciado en {w}",
|
|
471
|
+
"pm.ask": "Preguntar por todo",
|
|
472
|
+
"pm.edits": "Aprobar ediciones en el árbol de trabajo",
|
|
473
|
+
"pm.all": "Aprobar todo",
|
|
474
|
+
"pm.tag.ask": "pregunta por todo",
|
|
475
|
+
"pm.tag.edits": "aprueba ediciones",
|
|
476
|
+
"pm.tag.all": "aprueba todo",
|
|
477
|
+
"ov.runtime": "runtime: {r}",
|
|
478
|
+
"ov.model": "modelo: {m}",
|
|
479
|
+
"ov.latest": "más reciente",
|
|
480
|
+
"ov.tools": "herramientas propias",
|
|
481
|
+
"pe.what":
|
|
482
|
+
"Una persona es una configuración de agente guardada: un rol, sus instrucciones, un runtime y un modelo predeterminados, y lo que puede hacer sin preguntar. Puedes tener varias con el mismo rol, cada una con su nombre.",
|
|
483
|
+
"pe.preset": "Preajuste del rol",
|
|
484
|
+
"pe.extra": "Comandos permitidos adicionales",
|
|
485
|
+
"pe.extraS": "adicional",
|
|
486
|
+
"pe.extraP":
|
|
487
|
+
"Prefijos de comando simples, uno por línea. Sin patrones ni expresiones regulares. Den los traduce para cada runtime.",
|
|
488
|
+
"pe.allows": "Lo que esto permite en {r}",
|
|
489
|
+
"pe.ns": "no compatible con {r}",
|
|
490
|
+
"pe.nsMode": "{r} aún no acepta un modo de permisos de Den",
|
|
491
|
+
"pe.nsModel": "{r} no acepta un modelo de Den",
|
|
492
|
+
"pe.nsPat": "usa un prefijo simple, no un patrón",
|
|
493
|
+
"pe.nsBad": "no es un prefijo simple",
|
|
494
|
+
"pe.badCmd":
|
|
495
|
+
'"{c}" no es un prefijo de comando simple: usa letras, dígitos, espacios simples y . _ / : = @ % + , -',
|
|
496
|
+
"pe.raw": "Editar la configuración del runtime…",
|
|
497
|
+
"pe.rawLater":
|
|
498
|
+
"Abrir el archivo de configuración del runtime llegará más adelante.",
|
|
499
|
+
"pe.vendor": "específico del proveedor",
|
|
500
|
+
"pe.instr": "Instrucciones",
|
|
501
|
+
"pe.runtime": "Runtime predeterminado",
|
|
502
|
+
"pe.model": "Modelo",
|
|
503
|
+
"pe.ver": "Versión",
|
|
504
|
+
"pe.rtDefault": "el predeterminado del runtime",
|
|
505
|
+
"pe.perms": "Modo de permisos",
|
|
506
|
+
"pe.noneCmd": "ninguno",
|
|
507
|
+
"pe.loading": "Cargando…",
|
|
508
|
+
"pe.loadFail": "No se cargaron las personas.",
|
|
509
|
+
"pe.src.builtin": "integrado",
|
|
510
|
+
"pe.src.distribution": "distribución",
|
|
511
|
+
"pe.src.local": "mío",
|
|
512
|
+
"pe.src.hub": "hub",
|
|
513
|
+
"pe.src.builtin.p":
|
|
514
|
+
"Viene con Den. Solo lectura aquí; duplícalo para personalizarlo.",
|
|
515
|
+
"pe.src.distribution.p":
|
|
516
|
+
"Viene con tu distribución. Solo lectura aquí; duplícalo para personalizarlo.",
|
|
517
|
+
"pe.src.local.p": "Tuyo, en esta máquina.",
|
|
518
|
+
"pe.src.hub.p": "Compartido a través de Den Hub. Solo lectura aquí.",
|
|
519
|
+
"pe.new": "Nueva persona",
|
|
520
|
+
"pe.dupT": "Duplicar persona",
|
|
521
|
+
"pe.edit": "Editar persona",
|
|
522
|
+
"pe.dup": "Duplicar",
|
|
523
|
+
"pe.editB": "Editar",
|
|
524
|
+
"pe.view": "Ver",
|
|
525
|
+
"pe.save": "Guardar persona",
|
|
526
|
+
"pe.del": "Eliminar",
|
|
527
|
+
"pe.deleted": "{n} eliminado",
|
|
528
|
+
"pe.name": "Nombre",
|
|
529
|
+
"pe.nameP": "p. ej., Rita",
|
|
530
|
+
"pe.role": "Rol",
|
|
531
|
+
"pe.roleHelp":
|
|
532
|
+
"Un rol define la plantilla inicial de esta persona y permite que Den le asigne trabajo. No añade nada oculto a las instrucciones.",
|
|
533
|
+
"pe.desc": "Descripción de una línea",
|
|
534
|
+
"pe.cat": "Categoría",
|
|
535
|
+
"pe.copy": "{n} (copia)",
|
|
536
|
+
"pe.saved": "{n} guardado",
|
|
537
|
+
"pe.ro": "Solo lectura aquí. Duplícalo para tener tu propia copia.",
|
|
538
|
+
"pf.search": "Buscar personas por nombre, rol o descripción",
|
|
539
|
+
"pf.cat": "Categoría",
|
|
540
|
+
"pf.src": "Origen",
|
|
541
|
+
"pf.all": "Todos",
|
|
542
|
+
"pf.none": "Ninguna persona coincide. Quita los filtros o crea uno.",
|
|
543
|
+
"pf.clear": "Quitar filtros",
|
|
544
|
+
"cat.engineering": "Ingeniería",
|
|
545
|
+
"cat.design": "Diseño",
|
|
546
|
+
"cat.product": "Producto",
|
|
547
|
+
"cat.marketing": "Marketing",
|
|
548
|
+
"cat.operations": "Operaciones",
|
|
549
|
+
"rt.installed": "Instalados",
|
|
550
|
+
"rt.missing": "No instalados",
|
|
551
|
+
"rt.notInst": "{r} no instalado",
|
|
552
|
+
"rt.later": "más adelante",
|
|
553
|
+
"rt.fallback":
|
|
554
|
+
"El runtime predeterminado de {p}, {r}, no está instalado aquí, así que se inicia en {f}.",
|
|
555
|
+
"ver.latest": "más reciente",
|
|
556
|
+
"ver.latestP": "Más reciente (sigue la última versión)",
|
|
557
|
+
"ver.newer": "hay una más nueva",
|
|
558
|
+
"ver.newerP":
|
|
559
|
+
"Hay una versión más nueva de este modelo. Esta sigue fijada hasta que la cambies.",
|
|
560
|
+
"ver.newerOf": "Más nueva: {v}",
|
|
561
|
+
"ver.use": "Usar la más reciente",
|
|
562
|
+
"ver.pinned": "fijada {v}",
|
|
563
|
+
"ver.usedLatest": "{n} ahora sigue la versión más reciente",
|
|
564
|
+
"set.agents.personas": "Personas",
|
|
443
565
|
// The Agents tab (AG-4a-term, agents-page.js).
|
|
444
566
|
"n.agents": "Agentes",
|
|
445
567
|
"kind.agent": "Agente",
|
|
@@ -475,6 +597,23 @@
|
|
|
475
597
|
"ag.palStart": "Iniciar agente…",
|
|
476
598
|
"ag.cap":
|
|
477
599
|
"Hasta 4 paneles: se cerró el de {id} para hacer sitio (sigue en marcha)",
|
|
600
|
+
"ag.layout": "Disposición",
|
|
601
|
+
"ag.l.focus": "Enfoque",
|
|
602
|
+
"ag.l.tabs": "Pestañas",
|
|
603
|
+
"ag.l.tile": "Mosaico",
|
|
604
|
+
"ag.l.tip": "{name} ({key})",
|
|
605
|
+
"ag.hint.keys":
|
|
606
|
+
"⌃⇧1 / ⌃⇧2 / ⌃⇧3 cambian la disposición. ⌘ y clic (Ctrl y clic) abre un enlace o una ruta.",
|
|
607
|
+
"ag.pal.layout": "Disposición: {name}",
|
|
608
|
+
"ag.copied": "Copiado",
|
|
609
|
+
"ag.tabs": "Sesiones abiertas",
|
|
610
|
+
"ag.hint.focus":
|
|
611
|
+
"Un clic muestra una sesión. Mayús o ⌘ y clic la añade al lado.",
|
|
612
|
+
"ag.hint.tabs":
|
|
613
|
+
"Un clic abre una sesión en una pestaña. Doble clic en una pestaña para cambiarle el nombre.",
|
|
614
|
+
"ag.hint.tile": "Un clic añade una sesión al mosaico, hasta 4.",
|
|
615
|
+
"ag.renameTip": "Doble clic para cambiar el nombre",
|
|
616
|
+
"ag.renameName": "Cambiar el nombre de {id}",
|
|
478
617
|
"ag.rt.ready": "Inicia {name} {version} desde",
|
|
479
618
|
"ag.rt.readyNoVer": "Inicia {name} desde",
|
|
480
619
|
"ag.rt.notFound": "No se encontró {name}.",
|