@ag2/weave 0.3.0 → 0.5.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ > From 0.4.0 on, release notes live on GitHub Releases: https://github.com/ag2-space/weave/releases
2
+ > This file is frozen at 0.3.0 (the release job no longer commits to main).
3
+
1
4
  # [0.3.0](https://github.com/ag2-space/weave/compare/v0.2.0...v0.3.0) (2026-09-14)
2
5
 
3
6
  ### Features
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The AG2 stand mark per agent state, from the design kit
3
+ * (`kit-states/agents/air/states/svg/<state>-clean.svg`).
4
+ *
5
+ * Departures from the files on disk:
6
+ * 1. the plate's fill is `var(--agent-mark-plate, #6C4BE8)`, so the colour is
7
+ * a theme token rather than a rebuild. `off` keeps its own `opacity`
8
+ * dimming on top of whatever colour is set;
9
+ * 2. the artwork is scaled 1.15x about the viewBox centre while the plate
10
+ * stays full-bleed -- at rail size the kit's native ratio leaves the bubble
11
+ * too small to read. Change SCALE in the generator, not here. At 1.28x the
12
+ * right-edge margin measured 2.3%, so there is headroom but not much.
13
+ *
14
+ * Only working / needs_attention / available / offline are reachable from
15
+ * `space.ag2.presence`. `thinking` is the resting default the rail shows when
16
+ * presence says nothing; `warning` and `error` are drawn but have no driver yet
17
+ * and are reachable only through the preview override.
18
+ *
19
+ * `-clean` rather than drawn: the hand filter destroys strokes under ~3px.
20
+ * Each file keeps its own `<style>` (kit animations + reduced-motion
21
+ * fallbacks); those animate inner classes with `transform-box: view-box`, so
22
+ * their origins stay in viewBox coordinates and compose with the outer scale.
23
+ */
24
+ export declare type AgentMarkState = "needs_attention" | "working" | "available" | "offline" | "warning" | "error" | "thinking";
25
+ /** Set this CSS custom property to recolour the plate. */
26
+ export declare const AGENT_MARK_PLATE_VAR = "--agent-mark-plate";
27
+ export declare const AGENT_MARK_PLATE_DEFAULT = "#6C4BE8";
28
+ export declare const AGENT_STATE_MARKS: Record<AgentMarkState, string>;
@@ -2,3 +2,4 @@ export * from "./AgentTag";
2
2
  export * from "./AgentGlyph";
3
3
  export * from "./PeopleGlyph";
4
4
  export * from "./SkillGlyph";
5
+ export * from "./agentStateMarks";
@@ -1 +1,2 @@
1
1
  export * from "./Starfield";
2
+ export { StarfieldHost } from "./Starfield.css";
@@ -4,3 +4,5 @@ export * from "./Disclosure";
4
4
  export { Icon as CurrentIcon } from "./Icon";
5
5
  export type { IconName as CurrentIconName } from "./Icon";
6
6
  export * from "./palette";
7
+ export * from "./theme.css";
8
+ export * as currentPrimitives from "./primitives.css";
package/dist/index.js CHANGED
@@ -3895,6 +3895,24 @@ const SkillGlyph = ({
3895
3895
  ]
3896
3896
  }
3897
3897
  );
3898
+ const AGENT_MARK_PLATE_VAR = "--agent-mark-plate";
3899
+ const AGENT_MARK_PLATE_DEFAULT = "#6C4BE8";
3900
+ const AGENT_STATE_MARKS = {
3901
+ // attention-clean.svg
3902
+ needs_attention: '<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 64 64" fill="none"><defs><filter id="rough" x="-25%" y="-25%" width="150%" height="150%"><feTurbulence type="fractalNoise" baseFrequency="0.04" numOctaves="2" seed="4" result="n"/><feDisplacementMap in="SourceGraphic" in2="n" scale="2.2" xChannelSelector="R" yChannelSelector="G"/></filter></defs><style>/* AG2Space stand states — apply to the inline SVG */\n.gaze{animation:gaze 4.2s cubic-bezier(.6,0,.2,1) infinite}\n@keyframes gaze{0%,10%{transform:translate(0,0)}18%,34%{transform:translate(-1.9px,-1px)}\n 42%,58%{transform:translate(2.1px,.4px)}66%,84%{transform:translate(.8px,-1.4px)}92%,100%{transform:translate(0,0)}}\n.pulse{transform-box:view-box;transform-origin:32px 32px;animation:pulse 2.6s ease-out infinite}\n@keyframes pulse{0%{transform:scale(.86);opacity:.9}70%,100%{transform:scale(1.06);opacity:0}}\n.scribble{transform-box:view-box;transform-origin:22px 32px;animation:scribble 1.5s ease-in-out infinite}\n@keyframes scribble{0%,100%{transform:scaleX(.15);opacity:.55}50%{transform:scaleX(1);opacity:1}}\n.talk{animation:talk 1.6s ease-in-out infinite}\n.talk2{animation-delay:.22s;opacity:.5}\n@keyframes talk{0%,100%{opacity:.28}50%{opacity:1}}\n.zzz{animation:zzz 3.4s ease-in-out infinite}\n.zzz2{animation-delay:.8s}\n@keyframes zzz{0%{transform:translate(0,4px);opacity:0}35%{opacity:.95}100%{transform:translate(4px,-8px);opacity:0}}\n.attn{transform-box:view-box;transform-origin:32px 32px;animation:attn 3.2s cubic-bezier(.3,1.3,.4,1) infinite}\n@keyframes attn{0%,70%,100%{transform:rotate(0)}75%{transform:rotate(-5.5deg)}\n 81%{transform:rotate(4.5deg)}87%{transform:rotate(-2deg)}93%{transform:rotate(0)}}\n.flash{transform-box:view-box;transform-origin:32px 32px;animation:flash 3.2s ease-out infinite}\n@keyframes flash{0%,66%{opacity:0;transform:scale(.9)}73%{opacity:1;transform:scale(1)}\n 100%{opacity:0;transform:scale(1.14)}}\n.slowring{transform-box:view-box;transform-origin:32px 32px;animation:slowring 2.8s ease-in-out infinite}\n@keyframes slowring{0%,100%{opacity:.35}50%{opacity:1}}\n@media (prefers-reduced-motion: reduce){\n .gaze,.pulse,.scribble,.talk,.zzz,.attn,.flash,.slowring{animation:none}\n .gaze{transform:translate(2.1px,-1px)}.pulse{opacity:.6}.flash{opacity:1}\n .attn{transform:rotate(-4deg)}.talk,.scribble,.zzz{opacity:.9}}\n</style><g class="attn"><rect width="64" height="64" fill="var(--agent-mark-plate, #6C4BE8)"/><g transform="translate(32 32) scale(1.15) translate(-32 -32)"><rect class="flash" x="6" y="6" width="52" height="52" rx="15" fill="none" stroke="#FFCE3A" stroke-width="3"/><g transform="translate(-8.043 -9.470) scale(1.16)"><g stroke="#FFFFFF" stroke-width="3.1" stroke-linecap="round" stroke-linejoin="round"><path d="M17 22.5h30a6.5 6.5 0 0 1 6.5 6.5v7a6.5 6.5 0 0 1 -6.5 6.5H29l-8.5 6.5 1.5-6.6A6.6 6.6 0 0 1 16 36v-7a6.5 6.5 0 0 1 1-6.5z"/></g><rect x="19.5" y="26.25" width="25" height="9.5" rx="4.75" fill="#FFCE3A" transform="rotate(0 33 31)"/><g fill="#12212F"><circle cx="26.5" cy="31" r="3.808"/><circle cx="37.5" cy="31" r="3.808"/></g></g></g></g></svg>',
3903
+ // working-clean.svg
3904
+ working: '<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 64 64" fill="none"><defs><filter id="rough" x="-25%" y="-25%" width="150%" height="150%"><feTurbulence type="fractalNoise" baseFrequency="0.04" numOctaves="2" seed="4" result="n"/><feDisplacementMap in="SourceGraphic" in2="n" scale="2.2" xChannelSelector="R" yChannelSelector="G"/></filter></defs><style>/* AG2Space stand states — apply to the inline SVG */\n.gaze{animation:gaze 4.2s cubic-bezier(.6,0,.2,1) infinite}\n@keyframes gaze{0%,10%{transform:translate(0,0)}18%,34%{transform:translate(-1.9px,-1px)}\n 42%,58%{transform:translate(2.1px,.4px)}66%,84%{transform:translate(.8px,-1.4px)}92%,100%{transform:translate(0,0)}}\n.pulse{transform-box:view-box;transform-origin:32px 32px;animation:pulse 2.6s ease-out infinite}\n@keyframes pulse{0%{transform:scale(.86);opacity:.9}70%,100%{transform:scale(1.06);opacity:0}}\n.scribble{transform-box:view-box;transform-origin:22px 32px;animation:scribble 1.5s ease-in-out infinite}\n@keyframes scribble{0%,100%{transform:scaleX(.15);opacity:.55}50%{transform:scaleX(1);opacity:1}}\n.talk{animation:talk 1.6s ease-in-out infinite}\n.talk2{animation-delay:.22s;opacity:.5}\n@keyframes talk{0%,100%{opacity:.28}50%{opacity:1}}\n.zzz{animation:zzz 3.4s ease-in-out infinite}\n.zzz2{animation-delay:.8s}\n@keyframes zzz{0%{transform:translate(0,4px);opacity:0}35%{opacity:.95}100%{transform:translate(4px,-8px);opacity:0}}\n.attn{transform-box:view-box;transform-origin:32px 32px;animation:attn 3.2s cubic-bezier(.3,1.3,.4,1) infinite}\n@keyframes attn{0%,70%,100%{transform:rotate(0)}75%{transform:rotate(-5.5deg)}\n 81%{transform:rotate(4.5deg)}87%{transform:rotate(-2deg)}93%{transform:rotate(0)}}\n.flash{transform-box:view-box;transform-origin:32px 32px;animation:flash 3.2s ease-out infinite}\n@keyframes flash{0%,66%{opacity:0;transform:scale(.9)}73%{opacity:1;transform:scale(1)}\n 100%{opacity:0;transform:scale(1.14)}}\n.slowring{transform-box:view-box;transform-origin:32px 32px;animation:slowring 2.8s ease-in-out infinite}\n@keyframes slowring{0%,100%{opacity:.35}50%{opacity:1}}\n@media (prefers-reduced-motion: reduce){\n .gaze,.pulse,.scribble,.talk,.zzz,.attn,.flash,.slowring{animation:none}\n .gaze{transform:translate(2.1px,-1px)}.pulse{opacity:.6}.flash{opacity:1}\n .attn{transform:rotate(-4deg)}.talk,.scribble,.zzz{opacity:.9}}\n</style><rect width="64" height="64" fill="var(--agent-mark-plate, #6C4BE8)"/><g transform="translate(32 32) scale(1.15) translate(-32 -32)"><g transform="translate(-8.043 -9.470) scale(1.16)"><g stroke="#FFFFFF" stroke-width="3.1" stroke-linecap="round" stroke-linejoin="round"><path d="M17 22.5h30a6.5 6.5 0 0 1 6.5 6.5v7a6.5 6.5 0 0 1 -6.5 6.5H29l-8.5 6.5 1.5-6.6A6.6 6.6 0 0 1 16 36v-7a6.5 6.5 0 0 1 1-6.5z"/></g><rect x="19.5" y="26.25" width="25" height="9.5" rx="4.75" fill="#FFCE3A" transform="rotate(-4 33 31)"/><g fill="#12212F"><circle cx="26" cy="31" r="3.4"/><circle cx="38" cy="31" r="3.4"/></g><g class="scribble" stroke="#FFCE3A" stroke-width="3" stroke-linecap="round" fill="none"><path d="M22 40h14"/></g></g></g></svg>',
3905
+ // idle-clean.svg
3906
+ available: '<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 64 64" fill="none"><defs><filter id="rough" x="-25%" y="-25%" width="150%" height="150%"><feTurbulence type="fractalNoise" baseFrequency="0.04" numOctaves="2" seed="4" result="n"/><feDisplacementMap in="SourceGraphic" in2="n" scale="2.2" xChannelSelector="R" yChannelSelector="G"/></filter></defs><style>/* AG2Space stand states — apply to the inline SVG */\n.gaze{animation:gaze 4.2s cubic-bezier(.6,0,.2,1) infinite}\n@keyframes gaze{0%,10%{transform:translate(0,0)}18%,34%{transform:translate(-1.9px,-1px)}\n 42%,58%{transform:translate(2.1px,.4px)}66%,84%{transform:translate(.8px,-1.4px)}92%,100%{transform:translate(0,0)}}\n.pulse{transform-box:view-box;transform-origin:32px 32px;animation:pulse 2.6s ease-out infinite}\n@keyframes pulse{0%{transform:scale(.86);opacity:.9}70%,100%{transform:scale(1.06);opacity:0}}\n.scribble{transform-box:view-box;transform-origin:22px 32px;animation:scribble 1.5s ease-in-out infinite}\n@keyframes scribble{0%,100%{transform:scaleX(.15);opacity:.55}50%{transform:scaleX(1);opacity:1}}\n.talk{animation:talk 1.6s ease-in-out infinite}\n.talk2{animation-delay:.22s;opacity:.5}\n@keyframes talk{0%,100%{opacity:.28}50%{opacity:1}}\n.zzz{animation:zzz 3.4s ease-in-out infinite}\n.zzz2{animation-delay:.8s}\n@keyframes zzz{0%{transform:translate(0,4px);opacity:0}35%{opacity:.95}100%{transform:translate(4px,-8px);opacity:0}}\n.attn{transform-box:view-box;transform-origin:32px 32px;animation:attn 3.2s cubic-bezier(.3,1.3,.4,1) infinite}\n@keyframes attn{0%,70%,100%{transform:rotate(0)}75%{transform:rotate(-5.5deg)}\n 81%{transform:rotate(4.5deg)}87%{transform:rotate(-2deg)}93%{transform:rotate(0)}}\n.flash{transform-box:view-box;transform-origin:32px 32px;animation:flash 3.2s ease-out infinite}\n@keyframes flash{0%,66%{opacity:0;transform:scale(.9)}73%{opacity:1;transform:scale(1)}\n 100%{opacity:0;transform:scale(1.14)}}\n.slowring{transform-box:view-box;transform-origin:32px 32px;animation:slowring 2.8s ease-in-out infinite}\n@keyframes slowring{0%,100%{opacity:.35}50%{opacity:1}}\n@media (prefers-reduced-motion: reduce){\n .gaze,.pulse,.scribble,.talk,.zzz,.attn,.flash,.slowring{animation:none}\n .gaze{transform:translate(2.1px,-1px)}.pulse{opacity:.6}.flash{opacity:1}\n .attn{transform:rotate(-4deg)}.talk,.scribble,.zzz{opacity:.9}}\n</style><rect width="64" height="64" fill="var(--agent-mark-plate, #6C4BE8)"/><g transform="translate(32 32) scale(1.15) translate(-32 -32)"><g transform="translate(-8.043 -9.470) scale(1.16)"><g stroke="#FFFFFF" stroke-width="3.1" stroke-linecap="round" stroke-linejoin="round"><path d="M17 22.5h30a6.5 6.5 0 0 1 6.5 6.5v7a6.5 6.5 0 0 1 -6.5 6.5H29l-8.5 6.5 1.5-6.6A6.6 6.6 0 0 1 16 36v-7a6.5 6.5 0 0 1 1-6.5z"/></g><rect x="19.5" y="26.25" width="25" height="9.5" rx="4.75" fill="#FFCE3A" transform="rotate(-4 33 31)"/><g fill="#12212F"><circle cx="26" cy="31" r="3.4"/><circle cx="38" cy="31" r="3.4"/></g></g></g></svg>',
3907
+ // off-clean.svg — plate keeps opacity=".45"
3908
+ offline: '<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 64 64" fill="none"><defs><filter id="rough" x="-25%" y="-25%" width="150%" height="150%"><feTurbulence type="fractalNoise" baseFrequency="0.04" numOctaves="2" seed="4" result="n"/><feDisplacementMap in="SourceGraphic" in2="n" scale="2.2" xChannelSelector="R" yChannelSelector="G"/></filter></defs><style>/* AG2Space stand states — apply to the inline SVG */\n.gaze{animation:gaze 4.2s cubic-bezier(.6,0,.2,1) infinite}\n@keyframes gaze{0%,10%{transform:translate(0,0)}18%,34%{transform:translate(-1.9px,-1px)}\n 42%,58%{transform:translate(2.1px,.4px)}66%,84%{transform:translate(.8px,-1.4px)}92%,100%{transform:translate(0,0)}}\n.pulse{transform-box:view-box;transform-origin:32px 32px;animation:pulse 2.6s ease-out infinite}\n@keyframes pulse{0%{transform:scale(.86);opacity:.9}70%,100%{transform:scale(1.06);opacity:0}}\n.scribble{transform-box:view-box;transform-origin:22px 32px;animation:scribble 1.5s ease-in-out infinite}\n@keyframes scribble{0%,100%{transform:scaleX(.15);opacity:.55}50%{transform:scaleX(1);opacity:1}}\n.talk{animation:talk 1.6s ease-in-out infinite}\n.talk2{animation-delay:.22s;opacity:.5}\n@keyframes talk{0%,100%{opacity:.28}50%{opacity:1}}\n.zzz{animation:zzz 3.4s ease-in-out infinite}\n.zzz2{animation-delay:.8s}\n@keyframes zzz{0%{transform:translate(0,4px);opacity:0}35%{opacity:.95}100%{transform:translate(4px,-8px);opacity:0}}\n.attn{transform-box:view-box;transform-origin:32px 32px;animation:attn 3.2s cubic-bezier(.3,1.3,.4,1) infinite}\n@keyframes attn{0%,70%,100%{transform:rotate(0)}75%{transform:rotate(-5.5deg)}\n 81%{transform:rotate(4.5deg)}87%{transform:rotate(-2deg)}93%{transform:rotate(0)}}\n.flash{transform-box:view-box;transform-origin:32px 32px;animation:flash 3.2s ease-out infinite}\n@keyframes flash{0%,66%{opacity:0;transform:scale(.9)}73%{opacity:1;transform:scale(1)}\n 100%{opacity:0;transform:scale(1.14)}}\n.slowring{transform-box:view-box;transform-origin:32px 32px;animation:slowring 2.8s ease-in-out infinite}\n@keyframes slowring{0%,100%{opacity:.35}50%{opacity:1}}\n@media (prefers-reduced-motion: reduce){\n .gaze,.pulse,.scribble,.talk,.zzz,.attn,.flash,.slowring{animation:none}\n .gaze{transform:translate(2.1px,-1px)}.pulse{opacity:.6}.flash{opacity:1}\n .attn{transform:rotate(-4deg)}.talk,.scribble,.zzz{opacity:.9}}\n</style><rect width="64" height="64" fill="var(--agent-mark-plate, #6C4BE8)" opacity=".45"/><g transform="translate(32 32) scale(1.15) translate(-32 -32)"><g transform="translate(-8.043 -9.470) scale(1.16)"><g stroke="#FFFFFF" stroke-width="3.1" stroke-linecap="round" stroke-linejoin="round" opacity=".6"><path d="M17 22.5h30a6.5 6.5 0 0 1 6.5 6.5v7a6.5 6.5 0 0 1 -6.5 6.5H29l-8.5 6.5 1.5-6.6A6.6 6.6 0 0 1 16 36v-7a6.5 6.5 0 0 1 1-6.5z"/></g><g fill="#FFFFFF" opacity=".6"><circle cx="26" cy="31" r="3.4"/><circle cx="38" cy="31" r="3.4"/></g></g></g></svg>',
3909
+ // warning-clean.svg
3910
+ warning: '<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 64 64" fill="none"><defs><filter id="rough" x="-25%" y="-25%" width="150%" height="150%"><feTurbulence type="fractalNoise" baseFrequency="0.04" numOctaves="2" seed="4" result="n"/><feDisplacementMap in="SourceGraphic" in2="n" scale="2.2" xChannelSelector="R" yChannelSelector="G"/></filter></defs><style>/* AG2Space stand states — apply to the inline SVG */\n.gaze{animation:gaze 4.2s cubic-bezier(.6,0,.2,1) infinite}\n@keyframes gaze{0%,10%{transform:translate(0,0)}18%,34%{transform:translate(-1.9px,-1px)}\n 42%,58%{transform:translate(2.1px,.4px)}66%,84%{transform:translate(.8px,-1.4px)}92%,100%{transform:translate(0,0)}}\n.pulse{transform-box:view-box;transform-origin:32px 32px;animation:pulse 2.6s ease-out infinite}\n@keyframes pulse{0%{transform:scale(.86);opacity:.9}70%,100%{transform:scale(1.06);opacity:0}}\n.scribble{transform-box:view-box;transform-origin:22px 32px;animation:scribble 1.5s ease-in-out infinite}\n@keyframes scribble{0%,100%{transform:scaleX(.15);opacity:.55}50%{transform:scaleX(1);opacity:1}}\n.talk{animation:talk 1.6s ease-in-out infinite}\n.talk2{animation-delay:.22s;opacity:.5}\n@keyframes talk{0%,100%{opacity:.28}50%{opacity:1}}\n.zzz{animation:zzz 3.4s ease-in-out infinite}\n.zzz2{animation-delay:.8s}\n@keyframes zzz{0%{transform:translate(0,4px);opacity:0}35%{opacity:.95}100%{transform:translate(4px,-8px);opacity:0}}\n.attn{transform-box:view-box;transform-origin:32px 32px;animation:attn 3.2s cubic-bezier(.3,1.3,.4,1) infinite}\n@keyframes attn{0%,70%,100%{transform:rotate(0)}75%{transform:rotate(-5.5deg)}\n 81%{transform:rotate(4.5deg)}87%{transform:rotate(-2deg)}93%{transform:rotate(0)}}\n.flash{transform-box:view-box;transform-origin:32px 32px;animation:flash 3.2s ease-out infinite}\n@keyframes flash{0%,66%{opacity:0;transform:scale(.9)}73%{opacity:1;transform:scale(1)}\n 100%{opacity:0;transform:scale(1.14)}}\n.slowring{transform-box:view-box;transform-origin:32px 32px;animation:slowring 2.8s ease-in-out infinite}\n@keyframes slowring{0%,100%{opacity:.35}50%{opacity:1}}\n@media (prefers-reduced-motion: reduce){\n .gaze,.pulse,.scribble,.talk,.zzz,.attn,.flash,.slowring{animation:none}\n .gaze{transform:translate(2.1px,-1px)}.pulse{opacity:.6}.flash{opacity:1}\n .attn{transform:rotate(-4deg)}.talk,.scribble,.zzz{opacity:.9}}\n</style><rect width="64" height="64" fill="var(--agent-mark-plate, #6C4BE8)"/><g transform="translate(32 32) scale(1.15) translate(-32 -32)"><g transform="translate(-8.043 -9.470) scale(1.16)"><g stroke="#FFFFFF" stroke-width="3.1" stroke-linecap="round" stroke-linejoin="round"><path d="M17 22.5h30a6.5 6.5 0 0 1 6.5 6.5v7a6.5 6.5 0 0 1 -6.5 6.5H29l-8.5 6.5 1.5-6.6A6.6 6.6 0 0 1 16 36v-7a6.5 6.5 0 0 1 1-6.5z"/></g><g transform="rotate(-4 33 31)"><rect x="19.5" y="26.25" width="10.8" height="9.5" rx="4.75" fill="#E08A16"/><rect x="33.7" y="26.25" width="10.8" height="9.5" rx="4.75" fill="#E08A16"/></g><g fill="#12212F"><circle cx="26" cy="31" r="3.4"/><circle cx="38" cy="31" r="3.4"/></g></g><rect class="slowring" x="6" y="6" width="52" height="52" rx="15" fill="none" stroke="#E08A16" stroke-width="2.6"/></g></svg>',
3911
+ // error-clean.svg
3912
+ error: '<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 64 64" fill="none"><defs><filter id="rough" x="-25%" y="-25%" width="150%" height="150%"><feTurbulence type="fractalNoise" baseFrequency="0.04" numOctaves="2" seed="4" result="n"/><feDisplacementMap in="SourceGraphic" in2="n" scale="2.2" xChannelSelector="R" yChannelSelector="G"/></filter></defs><style>/* AG2Space stand states — apply to the inline SVG */\n.gaze{animation:gaze 4.2s cubic-bezier(.6,0,.2,1) infinite}\n@keyframes gaze{0%,10%{transform:translate(0,0)}18%,34%{transform:translate(-1.9px,-1px)}\n 42%,58%{transform:translate(2.1px,.4px)}66%,84%{transform:translate(.8px,-1.4px)}92%,100%{transform:translate(0,0)}}\n.pulse{transform-box:view-box;transform-origin:32px 32px;animation:pulse 2.6s ease-out infinite}\n@keyframes pulse{0%{transform:scale(.86);opacity:.9}70%,100%{transform:scale(1.06);opacity:0}}\n.scribble{transform-box:view-box;transform-origin:22px 32px;animation:scribble 1.5s ease-in-out infinite}\n@keyframes scribble{0%,100%{transform:scaleX(.15);opacity:.55}50%{transform:scaleX(1);opacity:1}}\n.talk{animation:talk 1.6s ease-in-out infinite}\n.talk2{animation-delay:.22s;opacity:.5}\n@keyframes talk{0%,100%{opacity:.28}50%{opacity:1}}\n.zzz{animation:zzz 3.4s ease-in-out infinite}\n.zzz2{animation-delay:.8s}\n@keyframes zzz{0%{transform:translate(0,4px);opacity:0}35%{opacity:.95}100%{transform:translate(4px,-8px);opacity:0}}\n.attn{transform-box:view-box;transform-origin:32px 32px;animation:attn 3.2s cubic-bezier(.3,1.3,.4,1) infinite}\n@keyframes attn{0%,70%,100%{transform:rotate(0)}75%{transform:rotate(-5.5deg)}\n 81%{transform:rotate(4.5deg)}87%{transform:rotate(-2deg)}93%{transform:rotate(0)}}\n.flash{transform-box:view-box;transform-origin:32px 32px;animation:flash 3.2s ease-out infinite}\n@keyframes flash{0%,66%{opacity:0;transform:scale(.9)}73%{opacity:1;transform:scale(1)}\n 100%{opacity:0;transform:scale(1.14)}}\n.slowring{transform-box:view-box;transform-origin:32px 32px;animation:slowring 2.8s ease-in-out infinite}\n@keyframes slowring{0%,100%{opacity:.35}50%{opacity:1}}\n@media (prefers-reduced-motion: reduce){\n .gaze,.pulse,.scribble,.talk,.zzz,.attn,.flash,.slowring{animation:none}\n .gaze{transform:translate(2.1px,-1px)}.pulse{opacity:.6}.flash{opacity:1}\n .attn{transform:rotate(-4deg)}.talk,.scribble,.zzz{opacity:.9}}\n</style><rect width="64" height="64" fill="var(--agent-mark-plate, #6C4BE8)"/><g transform="translate(32 32) scale(1.15) translate(-32 -32)"><g transform="translate(-8.043 -9.470) scale(1.16)"><g stroke="#FFFFFF" stroke-width="3.1" stroke-linecap="round" stroke-linejoin="round"><path d="M17 22.5h30a6.5 6.5 0 0 1 6.5 6.5v7a6.5 6.5 0 0 1 -6.5 6.5H29l-8.5 6.5 1.5-6.6A6.6 6.6 0 0 1 16 36v-7a6.5 6.5 0 0 1 1-6.5z"/></g><g transform="rotate(0 33 31)"><rect x="19.5" y="26.25" width="9" height="9.5" rx="4.75" fill="#E78899"/><rect x="35.5" y="28.65" width="9" height="9.5" rx="4.75" fill="#E78899"/></g><g stroke="#12212F" stroke-width="3" stroke-linecap="round"><path d="M22.6 31h6.8"/><path d="M34.6 31h6.8"/></g></g><rect x="4.5" y="4.5" width="55" height="55" rx="14" fill="none" stroke="#E78899" stroke-width="3.4"/></g></svg>',
3913
+ // thinking-clean.svg
3914
+ thinking: '<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 64 64" fill="none"><defs><filter id="rough" x="-25%" y="-25%" width="150%" height="150%"><feTurbulence type="fractalNoise" baseFrequency="0.04" numOctaves="2" seed="4" result="n"/><feDisplacementMap in="SourceGraphic" in2="n" scale="2.2" xChannelSelector="R" yChannelSelector="G"/></filter></defs><style>/* AG2Space stand states — apply to the inline SVG */\n.gaze{animation:gaze 4.2s cubic-bezier(.6,0,.2,1) infinite}\n@keyframes gaze{0%,10%{transform:translate(0,0)}18%,34%{transform:translate(-1.9px,-1px)}\n 42%,58%{transform:translate(2.1px,.4px)}66%,84%{transform:translate(.8px,-1.4px)}92%,100%{transform:translate(0,0)}}\n.pulse{transform-box:view-box;transform-origin:32px 32px;animation:pulse 2.6s ease-out infinite}\n@keyframes pulse{0%{transform:scale(.86);opacity:.9}70%,100%{transform:scale(1.06);opacity:0}}\n.scribble{transform-box:view-box;transform-origin:22px 32px;animation:scribble 1.5s ease-in-out infinite}\n@keyframes scribble{0%,100%{transform:scaleX(.15);opacity:.55}50%{transform:scaleX(1);opacity:1}}\n.talk{animation:talk 1.6s ease-in-out infinite}\n.talk2{animation-delay:.22s;opacity:.5}\n@keyframes talk{0%,100%{opacity:.28}50%{opacity:1}}\n.zzz{animation:zzz 3.4s ease-in-out infinite}\n.zzz2{animation-delay:.8s}\n@keyframes zzz{0%{transform:translate(0,4px);opacity:0}35%{opacity:.95}100%{transform:translate(4px,-8px);opacity:0}}\n.attn{transform-box:view-box;transform-origin:32px 32px;animation:attn 3.2s cubic-bezier(.3,1.3,.4,1) infinite}\n@keyframes attn{0%,70%,100%{transform:rotate(0)}75%{transform:rotate(-5.5deg)}\n 81%{transform:rotate(4.5deg)}87%{transform:rotate(-2deg)}93%{transform:rotate(0)}}\n.flash{transform-box:view-box;transform-origin:32px 32px;animation:flash 3.2s ease-out infinite}\n@keyframes flash{0%,66%{opacity:0;transform:scale(.9)}73%{opacity:1;transform:scale(1)}\n 100%{opacity:0;transform:scale(1.14)}}\n.slowring{transform-box:view-box;transform-origin:32px 32px;animation:slowring 2.8s ease-in-out infinite}\n@keyframes slowring{0%,100%{opacity:.35}50%{opacity:1}}\n@media (prefers-reduced-motion: reduce){\n .gaze,.pulse,.scribble,.talk,.zzz,.attn,.flash,.slowring{animation:none}\n .gaze{transform:translate(2.1px,-1px)}.pulse{opacity:.6}.flash{opacity:1}\n .attn{transform:rotate(-4deg)}.talk,.scribble,.zzz{opacity:.9}}\n</style><rect width="64" height="64" fill="var(--agent-mark-plate, #6C4BE8)"/><g transform="translate(32 32) scale(1.15) translate(-32 -32)"><g transform="translate(-8.043 -9.470) scale(1.16)"><g stroke="#FFFFFF" stroke-width="3.1" stroke-linecap="round" stroke-linejoin="round"><path d="M17 22.5h30a6.5 6.5 0 0 1 6.5 6.5v7a6.5 6.5 0 0 1 -6.5 6.5H29l-8.5 6.5 1.5-6.6A6.6 6.6 0 0 1 16 36v-7a6.5 6.5 0 0 1 1-6.5z"/></g><rect x="19.5" y="26.25" width="25" height="9.5" rx="4.75" fill="#FFCE3A" transform="rotate(-4 33 31)"/><g class="gaze" fill="#12212F"><circle cx="26" cy="31" r="3.4"/><circle cx="38" cy="31" r="3.4"/></g></g></g></svg>'
3915
+ };
3898
3916
  const TypingIndicator_css_ts_vanilla = "";
3899
3917
  var TypingDot = createRuntimeFn({ defaultClassName: "_1xj9jyp1 _8nex5a1 _8nex5a0", variantClassNames: { animated: { true: "_1xj9jyp2" }, size: { "300": "_1xj9jyp3", "400": "_1xj9jyp4" }, index: { "0": "_1xj9jyp5", "1": "_1xj9jyp6", "2": "_1xj9jyp7" } }, defaultVariants: { size: "400", animated: true }, compoundVariants: [] });
3900
3918
  const TypingIndicator = as(
@@ -4934,6 +4952,47 @@ var summary = "_9yk004l";
4934
4952
  var tones = { success: "_9yk0048", warning: "_9yk0049", info: "_9yk004a", critical: "_9yk004b", neutral: "_9yk004c" };
4935
4953
  var typeIcon = "_9yk004i";
4936
4954
  var verdictIcon = "_9yk0047";
4955
+ const primitives_css = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4956
+ __proto__: null,
4957
+ action,
4958
+ actionGroup,
4959
+ actionSection,
4960
+ author,
4961
+ authorMissing,
4962
+ authorName,
4963
+ badge,
4964
+ boundary,
4965
+ card,
4966
+ chevron,
4967
+ control,
4968
+ details,
4969
+ finding,
4970
+ findingBody,
4971
+ findingTitle,
4972
+ findingToggle,
4973
+ findings,
4974
+ header,
4975
+ hint,
4976
+ icon,
4977
+ identity,
4978
+ member,
4979
+ mentionLabel,
4980
+ mentions,
4981
+ meta,
4982
+ mono,
4983
+ overview,
4984
+ ownMention,
4985
+ ownedCard,
4986
+ paragraph,
4987
+ prLink,
4988
+ prRef,
4989
+ primaryAction,
4990
+ severity: severity$1,
4991
+ summary,
4992
+ tones,
4993
+ typeIcon,
4994
+ verdictIcon
4995
+ }, Symbol.toStringTag, { value: "Module" }));
4937
4996
  const fonts = "";
4938
4997
  const Context = createContext({
4939
4998
  mode: "light",
@@ -5251,6 +5310,9 @@ function ActionGroup({ actions, hint: hint$1 }) {
5251
5310
  ] });
5252
5311
  }
5253
5312
  export {
5313
+ AGENT_MARK_PLATE_DEFAULT,
5314
+ AGENT_MARK_PLATE_VAR,
5315
+ AGENT_STATE_MARKS,
5254
5316
  ActionGroup,
5255
5317
  AgentGlyph,
5256
5318
  AgentMark,
@@ -5332,6 +5394,7 @@ export {
5332
5394
  SplashScreen,
5333
5395
  StackedAvatar,
5334
5396
  Starfield,
5397
+ StarfieldHost,
5335
5398
  Switch,
5336
5399
  TABLET_BREAKPOINT,
5337
5400
  Text,
@@ -5346,9 +5409,13 @@ export {
5346
5409
  color,
5347
5410
  config,
5348
5411
  configClass,
5412
+ current,
5413
+ primitives_css as currentPrimitives,
5414
+ darkClass,
5349
5415
  getRelativeFixedPosition,
5350
5416
  getResizeObserverEntry,
5351
5417
  getScreenSize,
5418
+ lightClass,
5352
5419
  lightTheme,
5353
5420
  motion,
5354
5421
  mountAliveMark,