@worca/app 1.1.1 → 1.2.0-rc.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/README.md +23 -1
- package/package.json +1 -1
- package/src/cli/worca-cc.mjs +247 -27
- package/src/core/artifacts.mjs +10 -2
- package/src/core/ask/attachment-kind.mjs +95 -0
- package/src/core/ask/events.mjs +42 -3
- package/src/core/ask/follow.mjs +10 -4
- package/src/core/ask/limits.mjs +6 -3
- package/src/core/ask/prompt.mjs +37 -12
- package/src/core/ask/spawn.mjs +6 -3
- package/src/core/ask/store.mjs +89 -11
- package/src/core/ask/tool-deps.mjs +27 -3
- package/src/core/ask/tools.mjs +41 -10
- package/src/core/ask/turn.mjs +58 -12
- package/src/core/chat/command-router.mjs +8 -4
- package/src/core/chat/notifier.mjs +6 -1
- package/src/core/chat/renderers.mjs +15 -8
- package/src/core/claude-runner.mjs +120 -18
- package/src/core/config.mjs +46 -3
- package/src/core/db.mjs +92 -9
- package/src/core/failure-policy.mjs +201 -0
- package/src/core/graph/scheduler.mjs +8 -1
- package/src/core/host-guard.mjs +271 -0
- package/src/core/model-env.mjs +68 -0
- package/src/core/orchestrator.mjs +128 -35
- package/src/core/plugin-shim.mjs +3 -3
- package/src/core/run-harness.mjs +410 -61
- package/src/core/settings.mjs +76 -1
- package/src/core/ui-instance.mjs +235 -0
- package/ui/public/app.js +259 -39
- package/ui/public/ask-model.mjs +60 -7
- package/ui/public/ask-panel.mjs +314 -65
- package/ui/public/index.html +42 -0
- package/ui/public/style.css +28 -0
- package/ui/server.mjs +377 -80
package/ui/public/style.css
CHANGED
|
@@ -305,6 +305,7 @@ body.view-history .topnav{margin:12px 32px 0;flex:0 0 auto;}
|
|
|
305
305
|
.field > label .opt,.field .opt{color:var(--ink-3);font-weight:500;font-style:normal;}
|
|
306
306
|
.hint{display:block;color:var(--ink-3);font-size:12px;margin-top:7px;line-height:1.45;}
|
|
307
307
|
.hint.err{color:var(--red-ink);}
|
|
308
|
+
.hint.warn{color:var(--amber-ink);}
|
|
308
309
|
|
|
309
310
|
.input,.select,.textarea,.ta-hl-back,
|
|
310
311
|
input[type="text"],input[type="number"],textarea,select{
|
|
@@ -367,6 +368,14 @@ input[type="file"]{font-size:12.5px;color:var(--ink-3);background:transparent;bo
|
|
|
367
368
|
.add-project{margin-top:10px;display:flex;flex-direction:column;gap:9px;padding:14px;
|
|
368
369
|
border:1.5px solid var(--line-2);border-radius:var(--r-ctrl);background:var(--field);}
|
|
369
370
|
.add-project-actions{display:flex;gap:9px;justify-content:flex-end;}
|
|
371
|
+
/* Settings → Chat history: a text-style destructive action so its label sits on
|
|
372
|
+
the same left edge as the "Chat history" heading and the counts line under it
|
|
373
|
+
(a pill's inner padding indented the text). Same shape as .hd-cmt-btn. */
|
|
374
|
+
.ask-history-delete{border:none;background:none;padding:0;color:var(--red-ink);
|
|
375
|
+
font:600 12.5px var(--sans);cursor:pointer;line-height:1.45;}
|
|
376
|
+
.ask-history-delete:hover:not(:disabled){text-decoration:underline;}
|
|
377
|
+
.ask-history-delete:disabled{opacity:.45;cursor:not-allowed;}
|
|
378
|
+
.ask-history-delete:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:3px;}
|
|
370
379
|
/* path row (input + trailing button) — shared by add-project, project modal, plugin add */
|
|
371
380
|
.path-row{display:flex;gap:9px;align-items:center;}
|
|
372
381
|
.path-row input{flex:1 1 auto;min-width:0;}
|
|
@@ -1551,6 +1560,12 @@ fieldset.source legend{font-weight:600;font-size:13px;padding:0 6px;color:var(--
|
|
|
1551
1560
|
In the v2 card it is a direct child of .h-meta on its own line. */
|
|
1552
1561
|
.hist-pausenote{font-size:11.5px;font-weight:600;color:var(--amber-ink);}
|
|
1553
1562
|
.hist-pausenote.total{color:var(--red-ink);}
|
|
1563
|
+
.hist-pausenote.error{color:var(--red-ink);}
|
|
1564
|
+
.pause-error-banner{border-radius:var(--r-ctrl);padding:12px 14px;margin-top:12px;font-size:13px;background:var(--red-bg);color:var(--red-ink);}
|
|
1565
|
+
.pause-error-banner b{display:block;margin-bottom:4px;}
|
|
1566
|
+
.pause-error-banner .peb-text{color:var(--ink);font-family:var(--mono);font-size:12px;word-break:break-word;}
|
|
1567
|
+
.pause-error-banner .peb-hint{color:var(--ink-2);margin-top:6px;}
|
|
1568
|
+
.hd-banners .pause-error-banner,.rd-banners .pause-error-banner{align-self:stretch;margin:0;}
|
|
1554
1569
|
|
|
1555
1570
|
@media (max-width:1080px){
|
|
1556
1571
|
.stat-row{grid-template-columns:repeat(2,1fr);}
|
|
@@ -2815,6 +2830,13 @@ body.rail-collapsed .ask-dock{left:76px;}
|
|
|
2815
2830
|
.ask-header-logo{width:20px;height:20px;border-radius:50%;}
|
|
2816
2831
|
.ask-title{font-weight:600;font-size:13px;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
|
2817
2832
|
.ask-header-spacer,.ask-composer-spacer,.ask-activity-spacer,.ask-card-actions-spacer{flex:1 1 auto;}
|
|
2833
|
+
.ask-scope-btn{display:inline-flex;align-items:center;gap:5px;max-width:180px;height:30px;flex:none;padding:0 9px;
|
|
2834
|
+
border:1px solid var(--line);border-radius:999px;background:none;color:var(--ink-3);
|
|
2835
|
+
font:inherit;font-size:11.5px;cursor:pointer;}
|
|
2836
|
+
.ask-scope-btn:hover{background:var(--field);color:var(--ink);}
|
|
2837
|
+
.ask-scope-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
|
|
2838
|
+
.ask-scope-btn.is-pinned{color:var(--ink);border-color:var(--line-2);font-weight:600;}
|
|
2839
|
+
.ask-scope-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
|
2818
2840
|
.ask-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;
|
|
2819
2841
|
border:0;border-radius:9px;background:transparent;color:var(--ink-2);cursor:pointer;transition:.15s;}
|
|
2820
2842
|
.ask-icon-btn:hover{background:var(--field);color:var(--ink);}
|
|
@@ -2827,6 +2849,8 @@ body.rail-collapsed .ask-dock{left:76px;}
|
|
|
2827
2849
|
background:var(--field);color:var(--ink);font-size:13.5px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;}
|
|
2828
2850
|
.ask-user-pills{justify-content:flex-end;margin-top:0;}
|
|
2829
2851
|
.ask-attachment-pill{padding-right:12px;}
|
|
2852
|
+
.ask-attachment-thumb-link{display:inline-block;line-height:0;}
|
|
2853
|
+
.ask-attachment-thumb{max-width:180px;max-height:130px;border-radius:8px;border:1px solid var(--line);display:block;}
|
|
2830
2854
|
|
|
2831
2855
|
.ask-activity{border-left:1.5px solid var(--line);padding:2px 0 2px 14px;display:flex;flex-direction:column;gap:7px;}
|
|
2832
2856
|
.ask-activity-head{display:flex;align-items:center;gap:9px;min-width:0;}
|
|
@@ -2933,6 +2957,8 @@ body.rail-collapsed .ask-dock{left:76px;}
|
|
|
2933
2957
|
.ask-card-members-src summary{font-weight:600;font-size:10.5px;color:var(--ink-3);cursor:pointer;}
|
|
2934
2958
|
.ask-card-members-src-list{display:flex;flex-direction:column;gap:8px;margin-top:8px;}
|
|
2935
2959
|
.ask-card-err{font-size:12px;color:var(--red-ink);min-height:0;}
|
|
2960
|
+
.ask-card-scope-warn{font-size:12px;color:var(--amber-ink);background:var(--amber-wash);
|
|
2961
|
+
border:1px solid var(--amber-line);border-radius:8px;padding:6px 9px;}
|
|
2936
2962
|
.ask-card-err:empty{display:none;}
|
|
2937
2963
|
.ask-card-actions{display:flex;align-items:center;gap:8px;}
|
|
2938
2964
|
.ask-card-open-np{border:0;background:transparent;padding:0;color:var(--blue-ink);font-family:inherit;
|
|
@@ -2964,6 +2990,7 @@ body.rail-collapsed .ask-dock{left:76px;}
|
|
|
2964
2990
|
.ask-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 8px 5px 9px;border:1px solid var(--line);
|
|
2965
2991
|
border-radius:8px;background:var(--field);color:var(--ink-2);font-family:var(--mono);font-size:11px;max-width:240px;}
|
|
2966
2992
|
.ask-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
|
2993
|
+
.ask-chip-thumb{width:24px;height:24px;object-fit:cover;border-radius:4px;flex:none;}
|
|
2967
2994
|
.ask-chip-x{border:0;background:transparent;color:var(--ink-3);cursor:pointer;font-family:inherit;
|
|
2968
2995
|
font-size:13px;line-height:1;padding:1px 4px;border-radius:5px;transition:.15s;}
|
|
2969
2996
|
.ask-chip-x:hover{background:var(--line);color:var(--ink);}
|
|
@@ -3003,6 +3030,7 @@ body.rail-collapsed .ask-dock{left:76px;}
|
|
|
3003
3030
|
.ask-pop{position:absolute;z-index:3;background:var(--panel);border:1px solid var(--line-2);
|
|
3004
3031
|
padding:6px;box-shadow:0 12px 34px rgba(25,25,27,.12);border-radius:16px;}
|
|
3005
3032
|
.ask-pop-threads{top:46px;right:76px;width:326px;}
|
|
3033
|
+
.ask-pop-scope{left:16px;bottom:44px;width:300px;max-height:min(420px,70%);overflow-y:auto;}
|
|
3006
3034
|
.ask-pop-model{right:30px;bottom:42px;width:292px;border-radius:18px;}
|
|
3007
3035
|
.ask-pop-runinfo{right:96px;bottom:44px;width:326px;z-index:4;}
|
|
3008
3036
|
.ask-pop-caption,.ask-pop-caption-row .ask-pop-caption{padding:8px 10px 6px;font-weight:600;font-size:10px;
|