agent-afk 5.108.0 → 5.108.2
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/dist/bundled-plugins/awa-bundled/skills/review/SKILL.md +13 -4
- package/dist/cli/commands/interactive/surface-setup.history-tracking.d.ts +5 -0
- package/dist/cli/commands/interactive/surface-setup.suggest-config.d.ts +25 -0
- package/dist/cli/input/slash-match.d.ts +13 -0
- package/dist/cli/input/suggest-prompt.d.ts +1 -0
- package/dist/cli/input/suggest-types.d.ts +1 -0
- package/dist/cli/input/trigger.d.ts +2 -0
- package/dist/cli/input/types.d.ts +1 -0
- package/dist/cli.mjs +659 -658
- package/dist/index.mjs +1 -1
- package/dist/telegram.mjs +1 -1
- package/dist/web-server/frontend/composer-value.d.ts +1 -0
- package/dist/web-server/frontend/composer-wiring.d.ts +7 -0
- package/dist/web-server/frontend/slash-autocomplete-render.d.ts +3 -0
- package/dist/web-server/frontend/slash-autocomplete.d.ts +39 -0
- package/dist/web-server/frontend/slash-highlight.d.ts +8 -0
- package/dist/web-server/routes.d.ts +5 -0
- package/dist/web-ui-assets/app.js +43 -43
- package/dist/web-ui-assets/approvals.css +45 -0
- package/dist/web-ui-assets/index.html +9 -1
- package/dist/web-ui-assets/styles.css +53 -48
- package/package.json +1 -1
|
@@ -239,14 +239,64 @@ html, body {
|
|
|
239
239
|
.tool-more:hover { color: var(--text); border-color: var(--accent); }
|
|
240
240
|
|
|
241
241
|
/* ── composer ────────────────────────────────────────────────────────────── */
|
|
242
|
-
.composer { border-top: 1px solid var(--border); background: var(--bg-raised); padding: 12px 20px; }
|
|
242
|
+
.composer { border-top: 1px solid var(--border); background: var(--bg-raised); padding: 12px 20px; position: relative; }
|
|
243
243
|
.composer.is-readonly { opacity: 0.6; }
|
|
244
|
+
|
|
245
|
+
/* Slash-command menu. Anchored to the composer and floated ABOVE it so opening
|
|
246
|
+
it never reflows the transcript or shifts the textarea under the cursor. */
|
|
247
|
+
.slash-menu {
|
|
248
|
+
position: absolute; bottom: 100%; left: 20px; right: 20px; z-index: 20;
|
|
249
|
+
max-height: 40vh; overflow-y: auto; margin-bottom: 6px;
|
|
250
|
+
background: var(--bg-raised); border: 1px solid var(--border);
|
|
251
|
+
border-radius: var(--radius); box-shadow: 0 8px 24px rgb(0 0 0 / 45%);
|
|
252
|
+
}
|
|
253
|
+
.slash-menu[hidden] { display: none; }
|
|
254
|
+
.slash-status {
|
|
255
|
+
position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
|
|
256
|
+
overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
|
|
257
|
+
}
|
|
258
|
+
.slash-row {
|
|
259
|
+
display: flex; align-items: baseline; gap: 8px;
|
|
260
|
+
padding: 6px 12px; cursor: pointer; font-size: 13px;
|
|
261
|
+
border-left: 2px solid transparent;
|
|
262
|
+
}
|
|
263
|
+
.slash-row.is-selected { background: var(--bg-sunken); border-left-color: var(--accent); }
|
|
264
|
+
.slash-name { font-family: var(--mono); color: var(--accent); white-space: nowrap; }
|
|
265
|
+
.slash-row.is-selected .slash-name { font-weight: 600; }
|
|
266
|
+
.slash-summary {
|
|
267
|
+
color: var(--text-dim); overflow: hidden;
|
|
268
|
+
text-overflow: ellipsis; white-space: nowrap;
|
|
269
|
+
}
|
|
270
|
+
.slash-badge {
|
|
271
|
+
font-size: 11px; color: var(--text-faint); border: 1px solid var(--border);
|
|
272
|
+
border-radius: 4px; padding: 0 5px; white-space: nowrap; flex: none;
|
|
273
|
+
}
|
|
244
274
|
.composer-row { display: flex; gap: 10px; align-items: flex-end; }
|
|
245
|
-
|
|
246
|
-
|
|
275
|
+
.prompt-wrap { flex: 1; position: relative; display: flex; }
|
|
276
|
+
|
|
277
|
+
/* Invariant: #prompt and .prompt-mirror paint the SAME string on top of each
|
|
278
|
+
other, so every metric that affects text layout must be declared once, here,
|
|
279
|
+
for both. Changing font, size, line-height, padding, or border width on one
|
|
280
|
+
alone makes the highlight ghost behind the caret. */
|
|
281
|
+
#prompt, .prompt-mirror {
|
|
247
282
|
border: 1px solid var(--border); border-radius: var(--radius);
|
|
248
283
|
padding: 10px 12px; font-family: var(--sans); font-size: 14px; line-height: 1.5;
|
|
284
|
+
white-space: pre-wrap; overflow-wrap: break-word;
|
|
285
|
+
}
|
|
286
|
+
#prompt {
|
|
287
|
+
flex: 1; resize: vertical; background: transparent; position: relative; z-index: 1;
|
|
288
|
+
}
|
|
289
|
+
#prompt.slash-highlight-active {
|
|
290
|
+
/* Text is transparent so the mirror shows through; the caret is not. */
|
|
291
|
+
color: transparent; caret-color: var(--text);
|
|
249
292
|
}
|
|
293
|
+
#prompt::placeholder { color: var(--text-faint); }
|
|
294
|
+
.prompt-mirror {
|
|
295
|
+
position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden;
|
|
296
|
+
background: var(--bg-sunken); color: var(--text); border-color: transparent;
|
|
297
|
+
}
|
|
298
|
+
.prompt-mirror .tok-known { color: var(--accent); }
|
|
299
|
+
.prompt-mirror .tok-slash { color: var(--text-faint); }
|
|
250
300
|
#prompt:focus { outline: none; border-color: var(--accent); }
|
|
251
301
|
#prompt:disabled { cursor: not-allowed; }
|
|
252
302
|
.send {
|
|
@@ -280,51 +330,6 @@ html, body {
|
|
|
280
330
|
.composer { padding: 10px 14px; }
|
|
281
331
|
}
|
|
282
332
|
|
|
283
|
-
/*
|
|
284
|
-
* Approvals.
|
|
285
|
-
*
|
|
286
|
-
* Invariant: a pending approval BLOCKS the agent's turn, so these cards must be
|
|
287
|
-
* impossible to miss — they sit directly above the composer (the region the
|
|
288
|
-
* operator is already looking at) rather than in the transcript, where new
|
|
289
|
-
* output would scroll them out of view while the turn stays stuck.
|
|
290
|
-
*/
|
|
291
|
-
.approvals:empty { display: none; }
|
|
292
|
-
.approvals {
|
|
293
|
-
border-top: 1px solid var(--border); background: var(--bg-sunken);
|
|
294
|
-
padding: 10px 16px; display: flex; flex-direction: column; gap: 8px;
|
|
295
|
-
max-height: 42vh; overflow-y: auto;
|
|
296
|
-
}
|
|
297
|
-
.approval-card {
|
|
298
|
-
border: 1px solid var(--warning); border-radius: var(--radius);
|
|
299
|
-
background: var(--bg-raised); padding: 11px 13px;
|
|
300
|
-
}
|
|
301
|
-
.approval-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
|
|
302
|
-
.approval-badge {
|
|
303
|
-
font-family: var(--mono); font-size: 10px; text-transform: uppercase;
|
|
304
|
-
letter-spacing: 0.06em; color: var(--warning);
|
|
305
|
-
border: 1px solid var(--warning); border-radius: 4px; padding: 1px 6px;
|
|
306
|
-
}
|
|
307
|
-
.approval-source { font-family: var(--mono); font-size: 10px; color: var(--text-faint); }
|
|
308
|
-
.approval-title { font-size: 13px; line-height: 1.5; color: var(--text); }
|
|
309
|
-
.approval-desc { font-size: 12px; line-height: 1.5; color: var(--text-dim); margin-top: 4px; }
|
|
310
|
-
.approval-input {
|
|
311
|
-
width: 100%; margin-top: 8px; padding: 7px 9px;
|
|
312
|
-
font-family: var(--mono); font-size: 12px;
|
|
313
|
-
color: var(--text); background: var(--bg-sunken);
|
|
314
|
-
border: 1px solid var(--border); border-radius: 6px;
|
|
315
|
-
}
|
|
316
|
-
.approval-input:focus { outline: none; border-color: var(--accent); }
|
|
317
|
-
.approval-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
|
|
318
|
-
.approval-btn {
|
|
319
|
-
font: inherit; font-size: 12px; cursor: pointer;
|
|
320
|
-
color: var(--text); background: var(--bg-sunken);
|
|
321
|
-
border: 1px solid var(--border); border-radius: 6px; padding: 5px 12px;
|
|
322
|
-
}
|
|
323
|
-
.approval-btn:hover { border-color: var(--text-dim); }
|
|
324
|
-
.approval-primary { color: var(--bg); background: var(--success); border-color: var(--success); }
|
|
325
|
-
.approval-primary:hover { filter: brightness(1.08); }
|
|
326
|
-
.approval-danger { color: var(--error); border-color: var(--error); background: transparent; }
|
|
327
|
-
.approval-danger:hover { background: rgba(248, 113, 113, 0.12); }
|
|
328
333
|
.stop {
|
|
329
334
|
font: inherit; font-size: 12px; cursor: pointer; white-space: nowrap;
|
|
330
335
|
color: var(--error); background: transparent;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-afk",
|
|
3
|
-
"version": "5.108.
|
|
3
|
+
"version": "5.108.2",
|
|
4
4
|
"description": "Open-source coding-agent harness you can actually change — own the loop (prompts, gates, routing, skills, terminal states), use any model, run long tasks while you're away.",
|
|
5
5
|
"main": "dist/index.mjs",
|
|
6
6
|
"types": "dist/index.d.ts",
|