Packages
flowstone_ai
0.1.0
FlowStone integration for altar_ai - AI-powered data pipeline assets. Provides FlowStone.AI.Resource for unified AI access and FlowStone.AI.Assets DSL helpers (classify_each, enrich_each, embed_each) with telemetry bridging.
Current section
Files
Jump to
Current section
Files
assets/flowstone_ai.svg
<svg width="256" height="256" viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="hexagon" d="M128 14 L218 66 L218 158 L128 210 L38 158 L38 66 Z"/>
<linearGradient id="shellGradient" x1="10%" y1="0%" x2="90%" y2="100%">
<stop offset="0%" stop-color="#0f1a32"/>
<stop offset="55%" stop-color="#0c1326"/>
<stop offset="100%" stop-color="#090f1f"/>
</linearGradient>
<radialGradient id="innerGlow" cx="32%" cy="24%" r="80%">
<stop offset="0%" stop-color="#224073" stop-opacity="0.85"/>
<stop offset="55%" stop-color="#14243f" stop-opacity="0.55"/>
<stop offset="100%" stop-color="#0a1225" stop-opacity="0.1"/>
</radialGradient>
<linearGradient id="edgeGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#7deaff"/>
<stop offset="50%" stop-color="#8ab1ff"/>
<stop offset="100%" stop-color="#5de6c7"/>
</linearGradient>
<linearGradient id="pipelineGradient" x1="12%" y1="12%" x2="88%" y2="88%">
<stop offset="0%" stop-color="#62f5e0"/>
<stop offset="35%" stop-color="#60cfff"/>
<stop offset="70%" stop-color="#7b84ff"/>
<stop offset="100%" stop-color="#6f4bff"/>
</linearGradient>
<linearGradient id="pipelineHighlight" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#e5fbff" stop-opacity="0.9"/>
<stop offset="100%" stop-color="#9ad5ff" stop-opacity="0"/>
</linearGradient>
<linearGradient id="nodeGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#f8fffd"/>
<stop offset="55%" stop-color="#8cf0db"/>
<stop offset="100%" stop-color="#7f8aff"/>
</linearGradient>
<radialGradient id="nodeHalo" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#92f0ff" stop-opacity="0.7"/>
<stop offset="100%" stop-color="#92f0ff" stop-opacity="0"/>
</radialGradient>
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="6" stdDeviation="8" flood-color="#05070f" flood-opacity="0.6"/>
</filter>
<filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="6" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<clipPath id="hexClip">
<use xlink:href="#hexagon"/>
</clipPath>
</defs>
<g filter="url(#shadow)">
<use xlink:href="#hexagon" fill="url(#shellGradient)"/>
<use xlink:href="#hexagon" fill="url(#innerGlow)"/>
<use xlink:href="#hexagon" fill="none" stroke="url(#edgeGradient)" stroke-width="5" stroke-linejoin="round" opacity="0.9"/>
</g>
<g clip-path="url(#hexClip)">
<g transform="translate(-8 -32)">
<path d="M66 150 C92 116 126 98 156 106 C188 116 204 148 190 176 C176 204 138 214 106 194 C80 178 76 144 94 122 C116 96 154 98 184 136" stroke="url(#pipelineGradient)" stroke-width="14" stroke-linecap="round" stroke-linejoin="round" fill="none" filter="url(#softGlow)"/>
<path d="M66 150 C92 116 126 98 156 106 C188 116 204 148 190 176 C176 204 138 214 106 194 C80 178 76 144 94 122 C116 96 154 98 184 136" stroke="url(#pipelineHighlight)" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.9"/>
<path d="M60 122 L104 96" stroke="#4da0f5" stroke-width="2" stroke-linecap="round" opacity="0.25"/>
<path d="M200 156 L156 196" stroke="#66e6cf" stroke-width="2" stroke-linecap="round" opacity="0.25"/>
<path d="M86 200 L142 216" stroke="#5ec3ff" stroke-width="2" stroke-linecap="round" opacity="0.2"/>
<path d="M162 74 L214 110" stroke="#7de6ff" stroke-width="2" stroke-linecap="round" opacity="0.18"/>
<g fill="url(#nodeGradient)" stroke="rgba(255,255,255,0.7)" stroke-width="2">
<circle cx="88" cy="142" r="9">
<animate attributeName="r" values="8;9;8" dur="4s" repeatCount="indefinite"/>
</circle>
<circle cx="124" cy="108" r="8"/>
<circle cx="156" cy="112" r="8"/>
<circle cx="184" cy="142" r="9"/>
<circle cx="150" cy="186" r="8"/>
<circle cx="114" cy="182" r="7"/>
</g>
<g fill="url(#nodeHalo)">
<circle cx="88" cy="142" r="16"/>
<circle cx="184" cy="142" r="16"/>
<circle cx="150" cy="186" r="14"/>
</g>
<path d="M42 130 L214 130" stroke="rgba(255,255,255,0.06)" stroke-width="3" stroke-linecap="round"/>
<path d="M64 84 L192 184" stroke="rgba(255,255,255,0.04)" stroke-width="3" stroke-linecap="round"/>
<path d="M110 60 L196 108 L196 170" fill="none" stroke="rgba(255,255,255,0.06)" stroke-width="2" stroke-linecap="round"/>
</g>
<use xlink:href="#hexagon" fill="none" stroke="rgba(255,255,255,0.08)" stroke-width="12"/>
</g>
<use xlink:href="#hexagon" fill="none" stroke="rgba(255,255,255,0.12)" stroke-width="1.4" stroke-linejoin="round"/>
</svg>