@tutti-os/agent-gui 0.0.83 → 0.0.85
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/agent-conversation/index.js +1 -1
- package/dist/app/renderer/agentactivity.css +72 -137
- package/dist/{chunk-XCO6DDLR.js → chunk-FIH7IYLX.js} +5 -4
- package/dist/chunk-FIH7IYLX.js.map +1 -0
- package/dist/index.js +1866 -1282
- package/dist/index.js.map +1 -1
- package/package.json +15 -13
- package/dist/chunk-XCO6DDLR.js.map +0 -1
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
projectAgentConversationVM,
|
|
7
7
|
reconcileProjectedAgentConversationVM,
|
|
8
8
|
useProjectedAgentConversation
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-FIH7IYLX.js";
|
|
10
10
|
import "../chunk-HUNUSBQQ.js";
|
|
11
11
|
import "../chunk-PSLAWU25.js";
|
|
12
12
|
import "../chunk-CXJEQQR5.js";
|
|
@@ -8893,29 +8893,6 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
|
|
|
8893
8893
|
color: var(--brand-primary, var(--tutti-purple));
|
|
8894
8894
|
}
|
|
8895
8895
|
|
|
8896
|
-
.agent-gui-node__provider-rail-avatar:has(
|
|
8897
|
-
> .agent-gui-node__provider-rail-launchpad-icon
|
|
8898
|
-
),
|
|
8899
|
-
.agent-gui-node__provider-rail-tile:hover:not(:disabled)
|
|
8900
|
-
.agent-gui-node__provider-rail-avatar:has(
|
|
8901
|
-
> .agent-gui-node__provider-rail-launchpad-icon
|
|
8902
|
-
) {
|
|
8903
|
-
border-color: transparent;
|
|
8904
|
-
background: transparent;
|
|
8905
|
-
}
|
|
8906
|
-
|
|
8907
|
-
.agent-gui-node__provider-rail-tile[data-selected="true"]
|
|
8908
|
-
.agent-gui-node__provider-rail-avatar:has(
|
|
8909
|
-
> .agent-gui-node__provider-rail-launchpad-icon
|
|
8910
|
-
),
|
|
8911
|
-
.agent-gui-node__provider-rail-tile[data-selected="true"]:hover:not(:disabled)
|
|
8912
|
-
.agent-gui-node__provider-rail-avatar:has(
|
|
8913
|
-
> .agent-gui-node__provider-rail-launchpad-icon
|
|
8914
|
-
) {
|
|
8915
|
-
border-color: var(--tutti-purple);
|
|
8916
|
-
background: var(--transparency-block);
|
|
8917
|
-
}
|
|
8918
|
-
|
|
8919
8896
|
.agent-gui-node__provider-rail-avatar-icon {
|
|
8920
8897
|
width: 18px;
|
|
8921
8898
|
height: 18px;
|
|
@@ -8950,114 +8927,6 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
|
|
|
8950
8927
|
object-fit: cover;
|
|
8951
8928
|
}
|
|
8952
8929
|
|
|
8953
|
-
.agent-gui-node__provider-rail-launchpad-icon {
|
|
8954
|
-
box-sizing: border-box;
|
|
8955
|
-
display: grid;
|
|
8956
|
-
width: 28px;
|
|
8957
|
-
height: 28px;
|
|
8958
|
-
grid-template-columns: repeat(2, 1fr);
|
|
8959
|
-
gap: 2px;
|
|
8960
|
-
padding: 1px;
|
|
8961
|
-
border: 0;
|
|
8962
|
-
border-radius: 6px;
|
|
8963
|
-
background: transparent;
|
|
8964
|
-
}
|
|
8965
|
-
|
|
8966
|
-
.agent-gui-node__provider-rail-launchpad-item {
|
|
8967
|
-
display: grid;
|
|
8968
|
-
min-width: 0;
|
|
8969
|
-
min-height: 0;
|
|
8970
|
-
place-items: center;
|
|
8971
|
-
overflow: hidden;
|
|
8972
|
-
background: var(--background-fronted);
|
|
8973
|
-
border-radius: 4px;
|
|
8974
|
-
box-shadow: 0 0 0 0.5px color-mix(in srgb, var(--line-2) 70%, transparent);
|
|
8975
|
-
transition: opacity 140ms ease;
|
|
8976
|
-
}
|
|
8977
|
-
|
|
8978
|
-
.agent-gui-node__provider-rail-launchpad-icon img {
|
|
8979
|
-
width: 100%;
|
|
8980
|
-
height: 100%;
|
|
8981
|
-
object-fit: cover;
|
|
8982
|
-
}
|
|
8983
|
-
|
|
8984
|
-
.agent-gui-node__empty-hero-launchpad-icon {
|
|
8985
|
-
/* Size to the strip's actual content and stay centered. A fixed width narrower
|
|
8986
|
-
than the icons left-anchors the overflow, dragging the "centered" selected
|
|
8987
|
-
agent off to one side. */
|
|
8988
|
-
width: fit-content;
|
|
8989
|
-
max-width: 100%;
|
|
8990
|
-
height: 48px;
|
|
8991
|
-
border: 0;
|
|
8992
|
-
border-radius: 0;
|
|
8993
|
-
background: transparent;
|
|
8994
|
-
box-shadow: none;
|
|
8995
|
-
overflow: visible;
|
|
8996
|
-
color: var(--tutti-purple);
|
|
8997
|
-
animation: agent-gui-empty-hero-enter 260ms cubic-bezier(0.16, 1, 0.3, 1) 40ms
|
|
8998
|
-
both;
|
|
8999
|
-
}
|
|
9000
|
-
|
|
9001
|
-
/* Hero launchpad: agents laid out as one centered horizontal group while
|
|
9002
|
-
neighbours fade away from the selected agent. Scoped to the hero so the left
|
|
9003
|
-
rail "All" tile (a single composed image) is unaffected. */
|
|
9004
|
-
.agent-gui-node__empty-hero-launchpad-icon
|
|
9005
|
-
.agent-gui-node__provider-rail-launchpad-icon {
|
|
9006
|
-
display: flex;
|
|
9007
|
-
width: max-content;
|
|
9008
|
-
max-width: 100%;
|
|
9009
|
-
height: 48px;
|
|
9010
|
-
align-items: center;
|
|
9011
|
-
justify-content: center;
|
|
9012
|
-
gap: 10px;
|
|
9013
|
-
padding: 0;
|
|
9014
|
-
border-radius: 0;
|
|
9015
|
-
background: transparent;
|
|
9016
|
-
overflow: visible;
|
|
9017
|
-
}
|
|
9018
|
-
|
|
9019
|
-
.agent-gui-node__empty-hero-launchpad-icon
|
|
9020
|
-
.agent-gui-node__provider-rail-launchpad-item {
|
|
9021
|
-
flex: 0 0 auto;
|
|
9022
|
-
width: 36px;
|
|
9023
|
-
height: 36px;
|
|
9024
|
-
border-radius: 9px;
|
|
9025
|
-
transition:
|
|
9026
|
-
opacity 220ms ease,
|
|
9027
|
-
transform 220ms cubic-bezier(0.16, 1, 0.3, 1),
|
|
9028
|
-
box-shadow 220ms ease;
|
|
9029
|
-
}
|
|
9030
|
-
|
|
9031
|
-
.agent-gui-node__empty-hero-launchpad-icon
|
|
9032
|
-
.agent-gui-node__provider-rail-launchpad-item[data-provider-active="true"] {
|
|
9033
|
-
transform: scale(1.14);
|
|
9034
|
-
box-shadow: 0 0 0 1.5px var(--tutti-purple);
|
|
9035
|
-
}
|
|
9036
|
-
|
|
9037
|
-
/* Clickable agent switchers: reset native button chrome, keep the same box, and
|
|
9038
|
-
give a hover/focus affordance so the strip reads as interactive. */
|
|
9039
|
-
button.agent-gui-node__provider-rail-launchpad-item {
|
|
9040
|
-
padding: 0;
|
|
9041
|
-
border: 0;
|
|
9042
|
-
cursor: pointer;
|
|
9043
|
-
appearance: none;
|
|
9044
|
-
-webkit-appearance: none;
|
|
9045
|
-
}
|
|
9046
|
-
|
|
9047
|
-
.agent-gui-node__empty-hero-launchpad-icon
|
|
9048
|
-
button.agent-gui-node__provider-rail-launchpad-item:hover:not(
|
|
9049
|
-
[data-provider-active="true"]
|
|
9050
|
-
) {
|
|
9051
|
-
opacity: 1 !important;
|
|
9052
|
-
transform: scale(1.08);
|
|
9053
|
-
}
|
|
9054
|
-
|
|
9055
|
-
.agent-gui-node__empty-hero-launchpad-icon
|
|
9056
|
-
button.agent-gui-node__provider-rail-launchpad-item:focus-visible {
|
|
9057
|
-
outline: none;
|
|
9058
|
-
box-shadow: 0 0 0 1.5px var(--tutti-purple);
|
|
9059
|
-
}
|
|
9060
|
-
|
|
9061
8930
|
.agent-gui-node__provider-rail-tile[data-loading="true"]
|
|
9062
8931
|
.agent-gui-node__provider-rail-avatar {
|
|
9063
8932
|
background: linear-gradient(
|
|
@@ -9105,12 +8974,13 @@ button.agent-gui-node__provider-rail-launchpad-item {
|
|
|
9105
8974
|
place-items: center;
|
|
9106
8975
|
}
|
|
9107
8976
|
|
|
9108
|
-
/* The
|
|
9109
|
-
slot
|
|
8977
|
+
/* The coverflow carousel needs a wider, taller stage than the single-icon
|
|
8978
|
+
slot; keep it centered in the hero column. */
|
|
9110
8979
|
.agent-gui-node__empty-hero-icon-slot:has(
|
|
9111
|
-
> .agent-gui-node__empty-hero-
|
|
8980
|
+
> .agent-gui-node__empty-hero-carousel
|
|
9112
8981
|
) {
|
|
9113
|
-
width:
|
|
8982
|
+
width: min(400px, 100%);
|
|
8983
|
+
height: auto;
|
|
9114
8984
|
}
|
|
9115
8985
|
|
|
9116
8986
|
.agent-gui-node__empty-hero-icon-effect {
|
|
@@ -9179,6 +9049,66 @@ button.agent-gui-node__provider-rail-launchpad-item {
|
|
|
9179
9049
|
object-fit: contain;
|
|
9180
9050
|
}
|
|
9181
9051
|
|
|
9052
|
+
/* Empty-hero agent carousel ("All" tab): a three.js ring of same-sized agent
|
|
9053
|
+
tiles (see agentGuiHeroCarouselScene.ts). Tiles farther around the ring
|
|
9054
|
+
genuinely shrink and fade with perspective; visuals live on the canvas,
|
|
9055
|
+
while visually-hidden buttons keep the switcher reachable by keyboard,
|
|
9056
|
+
screen readers, and DOM tests. */
|
|
9057
|
+
.agent-gui-node__empty-hero-carousel {
|
|
9058
|
+
position: relative;
|
|
9059
|
+
width: 100%;
|
|
9060
|
+
height: 112px;
|
|
9061
|
+
outline: none;
|
|
9062
|
+
touch-action: pan-y;
|
|
9063
|
+
animation: agent-gui-empty-hero-enter 260ms cubic-bezier(0.16, 1, 0.3, 1) 40ms
|
|
9064
|
+
both;
|
|
9065
|
+
}
|
|
9066
|
+
|
|
9067
|
+
.agent-gui-node__empty-hero-carousel:has(:focus-visible) {
|
|
9068
|
+
border-radius: 12px;
|
|
9069
|
+
box-shadow: 0 0 0 1.5px var(--tutti-purple);
|
|
9070
|
+
}
|
|
9071
|
+
|
|
9072
|
+
.agent-gui-node__empty-hero-carousel-canvas {
|
|
9073
|
+
display: block;
|
|
9074
|
+
width: 100%;
|
|
9075
|
+
height: 100%;
|
|
9076
|
+
opacity: 0;
|
|
9077
|
+
transition: opacity 120ms ease-out;
|
|
9078
|
+
|
|
9079
|
+
/* Fade-out mask: a horizontal band dissolves tiles toward the stage sides
|
|
9080
|
+
(the fully-transparent stops sit where the outermost tiles ride, not at
|
|
9081
|
+
the canvas edges), intersected with a vertical band so tiles sinking
|
|
9082
|
+
down the wheel melt away instead of being cut by the canvas bottom. */
|
|
9083
|
+
mask-image:
|
|
9084
|
+
linear-gradient(
|
|
9085
|
+
90deg,
|
|
9086
|
+
transparent 12%,
|
|
9087
|
+
#000 36%,
|
|
9088
|
+
#000 64%,
|
|
9089
|
+
transparent 88%
|
|
9090
|
+
),
|
|
9091
|
+
linear-gradient(180deg, #000 0%, #000 70%, transparent 96%);
|
|
9092
|
+
mask-composite: intersect;
|
|
9093
|
+
}
|
|
9094
|
+
|
|
9095
|
+
.agent-gui-node__empty-hero-carousel[data-icons-ready="true"]
|
|
9096
|
+
> .agent-gui-node__empty-hero-carousel-canvas {
|
|
9097
|
+
opacity: 1;
|
|
9098
|
+
}
|
|
9099
|
+
|
|
9100
|
+
.agent-gui-node__empty-hero-carousel-item {
|
|
9101
|
+
position: absolute;
|
|
9102
|
+
overflow: hidden;
|
|
9103
|
+
width: 1px;
|
|
9104
|
+
height: 1px;
|
|
9105
|
+
margin: -1px;
|
|
9106
|
+
padding: 0;
|
|
9107
|
+
border: 0;
|
|
9108
|
+
clip-path: inset(50%);
|
|
9109
|
+
white-space: nowrap;
|
|
9110
|
+
}
|
|
9111
|
+
|
|
9182
9112
|
.agent-gui-node__empty-hero-title {
|
|
9183
9113
|
margin: 0;
|
|
9184
9114
|
text-align: center;
|
|
@@ -9203,11 +9133,16 @@ button.agent-gui-node__provider-rail-launchpad-item {
|
|
|
9203
9133
|
|
|
9204
9134
|
/* Gate gap is 8px; add 16px so the icon-to-title spacing is 24px. */
|
|
9205
9135
|
.agent-gui-node__empty-provider-gate > .agent-gui-node__empty-hero-icon-effect,
|
|
9206
|
-
.agent-gui-node__empty-provider-gate
|
|
9207
|
-
> .agent-gui-node__empty-hero-launchpad-icon {
|
|
9136
|
+
.agent-gui-node__empty-provider-gate > .agent-gui-node__empty-hero-carousel {
|
|
9208
9137
|
margin-bottom: 16px;
|
|
9209
9138
|
}
|
|
9210
9139
|
|
|
9140
|
+
/* Keep the gate's carousel the same width as the ready hero's so the ring
|
|
9141
|
+
doesn't jump when selection lands on an unavailable agent. */
|
|
9142
|
+
.agent-gui-node__empty-provider-gate > .agent-gui-node__empty-hero-carousel {
|
|
9143
|
+
max-width: min(400px, 100%);
|
|
9144
|
+
}
|
|
9145
|
+
|
|
9211
9146
|
.agent-gui-node__empty-provider-gate-description {
|
|
9212
9147
|
max-width: 420px;
|
|
9213
9148
|
margin: 0;
|
|
@@ -5239,6 +5239,7 @@ function firstPresentString6(...values) {
|
|
|
5239
5239
|
// shared/agentConversation/projection/agentConversationProjection.ts
|
|
5240
5240
|
var RENDER_IRRELEVANT_TRANSCRIPT_ROW_FIELDS = /* @__PURE__ */ new Set(["occurredAtUnixMs"]);
|
|
5241
5241
|
var CODEX_SKILLS_CONTEXT_BUDGET_NOTICE_FRAGMENT = "skill descriptions were shortened to fit the 2% skills context budget";
|
|
5242
|
+
var CODEX_MODEL_METADATA_FALLBACK_NOTICE_FRAGMENT = "defaulting to fallback metadata";
|
|
5242
5243
|
function projectAgentConversationVM(detail, options = {}) {
|
|
5243
5244
|
const rows = [];
|
|
5244
5245
|
const turns = detail.turns;
|
|
@@ -5409,7 +5410,7 @@ function dropCodexRuntimeDiagnosticNotices(rows) {
|
|
|
5409
5410
|
continue;
|
|
5410
5411
|
}
|
|
5411
5412
|
const messages = row.messages.filter(
|
|
5412
|
-
(message) => !
|
|
5413
|
+
(message) => !isCodexRuntimeDiagnosticNotice(message)
|
|
5413
5414
|
);
|
|
5414
5415
|
if (messages.length === 0 && row.thinking.length === 0) {
|
|
5415
5416
|
continue;
|
|
@@ -5422,7 +5423,7 @@ function dropCodexRuntimeDiagnosticNotices(rows) {
|
|
|
5422
5423
|
}
|
|
5423
5424
|
return filteredRows;
|
|
5424
5425
|
}
|
|
5425
|
-
function
|
|
5426
|
+
function isCodexRuntimeDiagnosticNotice(message) {
|
|
5426
5427
|
const notice = message.systemNotice;
|
|
5427
5428
|
if (!notice || notice.noticeKind !== "warning") {
|
|
5428
5429
|
return false;
|
|
@@ -5431,7 +5432,7 @@ function isCodexSkillsContextBudgetNotice(message) {
|
|
|
5431
5432
|
return false;
|
|
5432
5433
|
}
|
|
5433
5434
|
const text = [notice.title, notice.detail, message.body].filter(Boolean).join("\n").toLowerCase();
|
|
5434
|
-
return text.includes(CODEX_SKILLS_CONTEXT_BUDGET_NOTICE_FRAGMENT);
|
|
5435
|
+
return text.includes(CODEX_SKILLS_CONTEXT_BUDGET_NOTICE_FRAGMENT) || text.includes(CODEX_MODEL_METADATA_FALLBACK_NOTICE_FRAGMENT);
|
|
5435
5436
|
}
|
|
5436
5437
|
function dropRedundantErrorWarningNotices(rows) {
|
|
5437
5438
|
const turnsWithVisibleError = /* @__PURE__ */ new Set();
|
|
@@ -15479,4 +15480,4 @@ export {
|
|
|
15479
15480
|
AgentConversationFlow,
|
|
15480
15481
|
useProjectedAgentConversation
|
|
15481
15482
|
};
|
|
15482
|
-
//# sourceMappingURL=chunk-
|
|
15483
|
+
//# sourceMappingURL=chunk-FIH7IYLX.js.map
|