pika-plugin-ai 0.6.8

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../styles.css"],"sourcesContent":["/* ============================================================\n Color tokens (subset used by plugin-ai)\n ============================================================ */\n:root {\n --puck-color-azure-01: #00175d;\n --puck-color-azure-02: #002c77;\n --puck-color-azure-03: #014292;\n --puck-color-azure-04: #0158ad;\n --puck-color-azure-05: #3479be;\n --puck-color-azure-06: #6499cf;\n --puck-color-azure-08: #abc7e5;\n --puck-color-azure-10: #e7eef7;\n --puck-color-azure-11: #f3f6fb;\n --puck-color-azure-12: #f7faff;\n --puck-color-green-04: #0c680c;\n --puck-color-green-06: #2faa53;\n --puck-color-grey-01: #181818;\n --puck-color-grey-02: #292929;\n --puck-color-grey-03: #404040;\n --puck-color-grey-04: #5a5a5a;\n --puck-color-grey-05: #767676;\n --puck-color-grey-06: #949494;\n --puck-color-grey-07: #ababab;\n --puck-color-grey-08: #c3c3c3;\n --puck-color-grey-09: #dcdcdc;\n --puck-color-grey-10: #efefef;\n --puck-color-grey-11: #f5f5f5;\n --puck-color-grey-12: #fafafa;\n --puck-color-red-02: #6a0a10;\n --puck-color-red-03: #8a1422;\n --puck-color-red-04: #ac1f35;\n --puck-color-red-05: #bf5366;\n --puck-color-black: #000000;\n --puck-color-white: #ffffff;\n --puck-font-size-xxxs: 0.75rem;\n --puck-font-size-xxs: 0.875rem;\n --puck-font-size-xs: 1rem;\n --puck-font-size-s: 1.125rem;\n --puck-font-size-m: 1.3125rem;\n --puck-font-size-base: var(--puck-font-size-xs);\n --line-height-s: 1.333;\n --line-height-m: 1.5;\n}\n\n/* ============================================================\n Loader\n ============================================================ */\n\n@keyframes puck-ai-loader-spin {\n 0% { transform: rotate(0deg) scale(1); }\n 50% { transform: rotate(180deg) scale(0.8); }\n 100% { transform: rotate(360deg) scale(1); }\n}\n\n.puck-ai-loader {\n background: transparent;\n border-radius: 100%;\n border: 2px solid currentColor;\n border-bottom-color: transparent;\n display: inline-block;\n animation: puck-ai-loader-spin 1s 0s infinite linear;\n animation-fill-mode: both;\n}\n\n/* ============================================================\n Icon button\n ============================================================ */\n\n.puck-ai-icon-button {\n appearance: none;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: var(--puck-color-grey-08);\n padding: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n\n.puck-ai-icon-button:hover {\n background-color: var(--puck-color-azure-11);\n color: var(--puck-color-azure-04);\n}\n\n/* ============================================================\n Chat outer panel (outer wrapper)\n ============================================================ */\n\n.puck-ai-chat {\n background: white;\n height: 100%;\n display: flex;\n flex-direction: column;\n text-align: left;\n}\n\n.puck-ai-chat-header {\n align-items: center;\n display: flex;\n gap: 4px;\n padding: 4px 8px 4px 16px;\n font-weight: 600;\n border-bottom: 1px solid var(--puck-color-grey-09);\n flex-shrink: 0;\n}\n\n.puck-ai-chat-header-title {\n flex: 1;\n}\n\n@media (min-width: 638px) {\n .puck-ai-chat-header {\n padding: 12px 8px 12px 16px;\n }\n}\n\n/* Placeholder (shown when no messages, inside the chat body default slot) */\n.puck-ai-chat-placeholder {\n align-items: center;\n box-sizing: border-box;\n color: var(--puck-color-grey-06);\n display: none;\n justify-content: center;\n flex-direction: column;\n height: 100%;\n text-align: center;\n padding: 32px;\n gap: 8px;\n}\n\n@media (min-width: 638px) {\n .puck-ai-chat-placeholder {\n display: flex;\n }\n}\n\n.puck-ai-chat-actions {\n display: flex;\n gap: 8px;\n justify-content: center;\n flex-wrap: wrap;\n margin-top: 4px;\n}\n\n.puck-ai-chat-action,\n.puck-ai-chat-action-outlined {\n border: 1px solid var(--puck-color-azure-04);\n border-radius: 16px;\n padding: 4px 12px;\n font-size: 12px;\n cursor: pointer;\n}\n\n.puck-ai-chat-action {\n background: var(--puck-color-azure-04);\n color: white;\n}\n\n.puck-ai-chat-action:hover {\n opacity: 0.8;\n}\n\n.puck-ai-chat-action-outlined {\n background: transparent;\n color: var(--puck-color-azure-04);\n}\n\n.puck-ai-chat-action-outlined:hover {\n background: var(--puck-color-azure-11);\n}\n\n/* ============================================================\n ChatBody\n ============================================================ */\n\n.puck-ai-chatbody {\n --chat-background-color: white;\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n.puck-ai-chatbody-inner {\n background-color: var(--chat-background-color);\n display: flex;\n flex-direction: column;\n position: relative;\n /* flex: 1 + min-height: 0 allows the inner to shrink and scroll correctly */\n flex: 1;\n min-height: 0;\n}\n\n.puck-ai-chatbody--has-messages .puck-ai-chatbody-messages {\n display: flex;\n flex-direction: column-reverse;\n padding: 16px;\n overflow: auto;\n flex: 1;\n min-height: 0;\n}\n\n.puck-ai-chatbody-messages {\n flex: 1;\n min-height: 0;\n overflow: auto;\n}\n\n.puck-ai-chatbody-form {\n background-color: white;\n padding: 16px;\n flex-shrink: 0;\n}\n\n.puck-ai-chatbody--hide-input .puck-ai-chatbody-form {\n display: none;\n}\n\n.puck-ai-chatbody--has-messages .puck-ai-chatbody-form {\n border-top: 1px solid var(--puck-color-grey-09);\n}\n\n@media (min-width: 638px) {\n .puck-ai-chatbody-form {\n border-top: 1px solid var(--puck-color-grey-09);\n }\n}\n\n.puck-ai-chatbody-example-prompts {\n align-items: center;\n display: flex;\n flex-wrap: nowrap;\n gap: 6px;\n padding-top: 16px;\n width: 100%;\n overflow-x: auto;\n}\n\n.puck-ai-chatbody-example-prompt {\n align-items: center;\n background: white;\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 48px;\n cursor: pointer;\n display: flex;\n gap: 4px;\n font-size: var(--puck-font-size-xxxs);\n justify-content: center;\n padding: 6px 12px;\n text-wrap: nowrap;\n text-decoration: none;\n color: inherit;\n}\n\n.puck-ai-chatbody-example-prompt:hover {\n background: var(--puck-color-azure-11);\n border-color: var(--puck-color-azure-08);\n color: var(--puck-color-azure-04);\n}\n\n.puck-ai-chatbody-example-prompt-arrow {\n display: flex;\n margin-left: auto;\n}\n\n.puck-ai-chatbody-default {\n overflow-y: auto;\n flex-grow: 1;\n min-height: 0;\n}\n\n.puck-ai-chatbody--has-messages .puck-ai-chatbody-default {\n /* Remove from layout entirely so it doesn't steal height from the messages area */\n display: none;\n}\n\n.puck-ai-chatbody-loader {\n padding: 16px;\n padding-top: 0;\n}\n\n.puck-ai-chatbody-error {\n align-items: center;\n display: flex;\n gap: 8px;\n font-size: var(--puck-font-size-xxs);\n margin: 16px;\n}\n\n.puck-ai-chatbody-error-label {\n color: var(--puck-color-red-04);\n}\n\n.puck-ai-chatbody-error-action {\n margin-left: auto;\n}\n\n/* ============================================================\n ChatMessage\n ============================================================ */\n\n.puck-ai-chat-message {\n font-size: var(--puck-font-size-xs);\n line-height: var(--line-height-s);\n overflow-wrap: break-word;\n}\n\n.puck-ai-chat-message--user-role .puck-ai-chat-message-text {\n background: var(--puck-color-azure-10);\n border-radius: 16px;\n color: var(--puck-color-grey-03);\n margin-left: 24px;\n margin-bottom: 8px;\n margin-top: 8px;\n padding: 12px 16px;\n}\n\n.puck-ai-chat-message ul,\n.puck-ai-chat-message ol {\n list-style: decimal;\n margin: 0;\n margin-bottom: 12px;\n margin-top: 12px;\n padding-left: 32px;\n}\n\n.puck-ai-chat-message li {\n margin-bottom: 8px;\n margin-top: 8px;\n padding-left: 8px;\n}\n\n.puck-ai-chat-message h1,\n.puck-ai-chat-message h2,\n.puck-ai-chat-message h3,\n.puck-ai-chat-message h4,\n.puck-ai-chat-message h5,\n.puck-ai-chat-message h6 {\n font-weight: 600;\n}\n\n.puck-ai-chat-message p {\n margin-bottom: 8px;\n margin-top: 8px;\n}\n\n.puck-ai-chat-message--user-role .puck-ai-chat-message-text > *:first-of-type {\n margin-top: 0;\n}\n\n.puck-ai-chat-message--user-role .puck-ai-chat-message-text > *:last-of-type {\n margin-bottom: 0;\n}\n\n.puck-ai-chat-message a {\n color: var(--puck-color-azure-04);\n font-weight: 600;\n text-decoration: none;\n}\n\n.puck-ai-chat-message a:hover {\n color: var(--puck-color-azure-05);\n}\n\n.puck-ai-chat-message hr {\n border-top: none;\n border-bottom-color: var(--puck-color-grey-09);\n margin-bottom: 16px;\n margin-top: 16px;\n}\n\n.puck-ai-chat-message blockquote {\n margin-bottom: 8px;\n margin-top: 8px;\n margin-left: 0;\n border-left: 2px solid var(--puck-color-grey-09);\n padding-left: 16px;\n}\n\n.puck-ai-chat-message-data {\n background: var(--puck-color-grey-12);\n border: 1px solid var(--puck-color-grey-08);\n border-radius: 16px;\n color: var(--puck-color-grey-05);\n margin-right: 24px;\n padding: 8px 12px;\n margin-top: 4px;\n margin-bottom: 4px;\n}\n\n.puck-ai-chat-message-data-inner {\n align-items: center;\n display: flex;\n gap: 8px;\n}\n\n.puck-ai-chat-message-data-icon {\n display: flex;\n}\n\n.puck-ai-chat-message-file {\n margin-bottom: 8px;\n margin-top: 8px;\n}\n\n.puck-ai-chat-message-file--user {\n margin-left: 24px;\n}\n\n.puck-ai-chat-message-file-image {\n border-radius: 12px;\n display: block;\n max-height: 220px;\n max-width: 100%;\n object-fit: contain;\n}\n\n.puck-ai-chat-message-file--user .puck-ai-chat-message-file-image {\n background: var(--puck-color-azure-10);\n border: 1px solid var(--puck-color-azure-08);\n}\n\n.puck-ai-chat-message-file-caption {\n color: var(--puck-color-grey-05);\n display: block;\n font-size: var(--puck-font-size-xxxs);\n margin-top: 4px;\n}\n\n.puck-ai-chat-message-file--document {\n background: var(--puck-color-azure-10);\n border-radius: 12px;\n padding: 8px 12px;\n}\n\n.puck-ai-chat-message-file--document a {\n word-break: break-all;\n}\n\n.puck-ai-chat-message-reasoning {\n background: var(--puck-color-grey-11);\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 10px;\n color: var(--puck-color-grey-04);\n font-size: var(--puck-font-size-xxxs);\n margin-bottom: 8px;\n margin-top: 8px;\n padding: 6px 10px;\n}\n\n.puck-ai-chat-message-reasoning-summary {\n cursor: pointer;\n font-weight: 600;\n list-style: none;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.puck-ai-chat-message-reasoning-summary::-webkit-details-marker {\n display: none;\n}\n\n.puck-ai-chat-message-reasoning-streaming {\n display: inline-flex;\n align-items: center;\n}\n\n.puck-ai-chat-message-reasoning-body {\n border-top: 1px solid var(--puck-color-grey-09);\n margin-top: 8px;\n padding-top: 8px;\n}\n\n.puck-ai-chat-message-reasoning-body p {\n margin: 0 0 6px;\n}\n\n.puck-ai-chat-message-source {\n color: var(--puck-color-grey-05);\n font-size: var(--puck-font-size-xxxs);\n margin-bottom: 6px;\n margin-top: 6px;\n}\n\n.puck-ai-chat-message-source-meta {\n color: var(--puck-color-grey-07);\n margin-left: 6px;\n}\n\n.puck-ai-chat-message-step {\n border-top: 1px dashed var(--puck-color-grey-09);\n margin: 8px 0;\n opacity: 0.6;\n}\n\n.puck-ai-chat-message-tool {\n background: var(--puck-color-grey-12);\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 12px;\n margin-bottom: 8px;\n margin-top: 8px;\n margin-right: 24px;\n padding: 8px 12px;\n}\n\n.puck-ai-chat-message-tool-header {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.puck-ai-chat-message-tool-icon {\n color: var(--puck-color-grey-06);\n display: flex;\n}\n\n.puck-ai-chat-message-tool-name {\n font-weight: 600;\n color: var(--puck-color-grey-03);\n}\n\n.puck-ai-chat-message-tool-state {\n align-items: center;\n color: var(--puck-color-grey-05);\n display: inline-flex;\n font-size: var(--puck-font-size-xxxs);\n gap: 6px;\n margin-left: auto;\n}\n\n.puck-ai-chat-message-tool-error {\n color: var(--puck-color-red-04);\n font-size: var(--puck-font-size-xxxs);\n margin-top: 6px;\n}\n\n.puck-ai-chat-message-tool-details {\n margin-top: 8px;\n}\n\n.puck-ai-chat-message-tool-details summary {\n color: var(--puck-color-azure-04);\n cursor: pointer;\n font-size: var(--puck-font-size-xxxs);\n font-weight: 600;\n list-style: none;\n}\n\n.puck-ai-chat-message-tool-details summary::-webkit-details-marker {\n display: none;\n}\n\n.puck-ai-chat-message-tool-pre {\n background: var(--puck-color-grey-11);\n border-radius: 6px;\n font-size: 11px;\n line-height: 1.45;\n margin-top: 6px;\n max-height: 200px;\n overflow: auto;\n padding: 8px;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.puck-ai-chat-message-data-summary {\n color: var(--puck-color-grey-05);\n font-size: var(--puck-font-size-xxxs);\n margin-bottom: 6px;\n margin-top: 6px;\n}\n\n.puck-ai-chat-message-data-raw {\n margin-bottom: 6px;\n margin-top: 6px;\n}\n\n.puck-ai-chat-message-data-raw summary {\n color: var(--puck-color-grey-05);\n cursor: pointer;\n font-size: var(--puck-font-size-xxxs);\n list-style: none;\n}\n\n.puck-ai-chat-message-data-raw summary::-webkit-details-marker {\n display: none;\n}\n\n/* ============================================================\n Target component banner\n ============================================================ */\n\n.puck-ai-target-banner {\n align-items: center;\n background: var(--puck-color-azure-11);\n border: 1px solid var(--puck-color-azure-09);\n border-radius: 6px;\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-bottom: 8px;\n padding: 6px 10px;\n font-size: var(--puck-font-size-xxxs);\n line-height: 1.4;\n}\n\n.puck-ai-target-banner-label {\n color: var(--puck-color-azure-05);\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.puck-ai-target-banner-name {\n color: var(--puck-color-grey-02);\n font-weight: 600;\n}\n\n.puck-ai-target-banner-id {\n color: var(--puck-color-grey-05);\n font-family: var(--puck-font-family-monospaced, monospace);\n font-size: 11px;\n background: var(--puck-color-azure-10);\n border-radius: 3px;\n padding: 1px 4px;\n /* Truncate very long IDs */\n max-width: 140px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.puck-ai-target-banner-clear {\n appearance: none;\n background: transparent;\n border: none;\n border-radius: 50%;\n color: var(--puck-color-grey-06);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n line-height: 1;\n margin-left: auto;\n padding: 0 2px;\n flex-shrink: 0;\n}\n\n.puck-ai-target-banner-clear:hover {\n color: var(--puck-color-grey-02);\n}\n\n/* ============================================================\n PromptForm\n ============================================================ */\n\n.puck-ai-prompt-form {\n --radius: 9px;\n background-color: var(--puck-color-grey-09);\n border-radius: var(--radius);\n width: 100%;\n}\n\n.puck-ai-prompt-form-inner {\n border-radius: var(--radius);\n padding: 1px;\n position: relative;\n}\n\n.puck-ai-prompt-form--dark {\n background-color: var(--puck-color-grey-02);\n box-shadow: none;\n}\n\n@keyframes puck-ai-glow-loop {\n 0% { transform: translate(-50%, -50%) rotate(0deg); }\n 100% { transform: translate(-50%, -50%) rotate(360deg); }\n}\n\n.puck-ai-prompt-form--glow .puck-ai-prompt-form-glow {\n border: 2px solid transparent;\n border-radius: var(--radius);\n -webkit-mask: linear-gradient(transparent, transparent), linear-gradient(white, white);\n mask: linear-gradient(transparent, transparent), linear-gradient(white, white);\n -webkit-mask-clip: padding-box, border-box;\n mask-clip: padding-box, border-box;\n -webkit-mask-composite: intersect;\n mask-composite: intersect;\n pointer-events: none;\n position: absolute;\n inset: -1px;\n z-index: 0;\n overflow: hidden;\n}\n\n.puck-ai-prompt-form--glow .puck-ai-prompt-form-glow::after {\n background: radial-gradient(circle at center, var(--puck-color-azure-06), transparent 50%);\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n aspect-ratio: 1;\n width: 200%;\n animation: puck-ai-glow-loop 3s linear infinite;\n}\n\n.puck-ai-prompt-form-form-inner {\n background-color: white;\n border-radius: 8px;\n position: relative;\n}\n\n.puck-ai-prompt-form-input {\n background-color: transparent;\n border: none;\n display: block;\n resize: none;\n color: var(--puck-color-grey-03);\n padding: 12px 16px;\n padding-left: 16px;\n padding-right: 8px;\n padding-bottom: 4px;\n font-family: inherit;\n font-size: var(--puck-font-size-xs);\n line-height: var(--line-height-s);\n width: 100%;\n box-sizing: border-box;\n}\n\n.puck-ai-prompt-form-input:focus {\n outline: none;\n}\n\n.puck-ai-prompt-form-form-inner:has(.puck-ai-prompt-form-input:focus) {\n outline: 2px solid var(--puck-color-azure-04);\n}\n\n.puck-ai-prompt-form--dark .puck-ai-prompt-form-input {\n background-color: var(--puck-color-grey-01);\n color: var(--puck-color-grey-08);\n}\n\n.puck-ai-prompt-form--is-disabled .puck-ai-prompt-form-input {\n background-color: var(--puck-color-grey-12);\n cursor: not-allowed;\n}\n\n.puck-ai-prompt-form-actions {\n align-items: flex-end;\n cursor: text;\n display: flex;\n gap: 8px;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 6px;\n}\n\n.puck-ai-prompt-form-actions-left {\n align-items: center;\n cursor: auto;\n display: flex;\n padding-left: 8px;\n}\n\n.puck-ai-prompt-form-actions-right {\n cursor: auto;\n margin-left: auto;\n}\n\n.puck-ai-prompt-form-action-submit {\n background: var(--puck-color-azure-04);\n border-radius: 48px;\n border: 0;\n color: white;\n display: flex;\n align-items: center;\n justify-content: center;\n align-self: flex-end;\n padding: 4px;\n pointer-events: auto;\n cursor: pointer;\n}\n\n.puck-ai-prompt-form-action-submit:hover {\n background: var(--puck-color-azure-05);\n}\n\n.puck-ai-prompt-form--is-disabled .puck-ai-prompt-form-action-submit {\n background-color: var(--puck-color-grey-06);\n cursor: not-allowed;\n}\n\n.puck-ai-prompt-form--is-loading .puck-ai-prompt-form-action-submit {\n background-color: var(--puck-color-azure-06);\n cursor: not-allowed;\n}\n\n/* ─── Image attachment button ──────────────────────────────────────────────── */\n\n.puck-ai-image-attach-btn {\n align-items: center;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 6px;\n color: var(--puck-color-grey-05);\n cursor: pointer;\n display: flex;\n justify-content: center;\n padding: 5px;\n transition: background 80ms, color 80ms, border-color 80ms;\n}\n\n.puck-ai-image-attach-btn:hover {\n background: var(--puck-color-grey-11);\n border-color: var(--puck-color-grey-09);\n color: var(--puck-color-grey-02);\n}\n\n.puck-ai-image-attach-btn:disabled {\n color: var(--puck-color-grey-08);\n cursor: not-allowed;\n}\n\n/* ─── Drag-over state ───────────────────────────────────────────────────────── */\n\n.puck-ai-prompt-form--drag-over .puck-ai-prompt-form-form-inner {\n border-color: var(--puck-color-azure-05);\n background: var(--puck-color-azure-12);\n outline: 2px dashed var(--puck-color-azure-05);\n}\n\n/* ─── Image thumbnails strip ────────────────────────────────────────────────── */\n\n.puck-ai-image-thumbnails {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n padding: 8px 10px 0;\n}\n\n.puck-ai-image-thumbnail {\n position: relative;\n border-radius: 6px;\n overflow: hidden;\n width: 56px;\n height: 56px;\n border: 1px solid var(--puck-color-grey-09);\n flex-shrink: 0;\n}\n\n.puck-ai-image-thumbnail img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n.puck-ai-image-thumbnail-remove {\n position: absolute;\n top: 2px;\n right: 2px;\n background: rgba(0, 0, 0, 0.55);\n border: none;\n border-radius: 50%;\n color: #fff;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n padding: 0;\n opacity: 0;\n transition: opacity 120ms;\n}\n\n.puck-ai-image-thumbnail:hover .puck-ai-image-thumbnail-remove {\n opacity: 1;\n}\n\n/* ============================================================\n Toggle switch\n ============================================================ */\n\n.puck-ai-toggle {\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n height: 20px;\n position: relative;\n width: 36px;\n}\n\n.puck-ai-toggle-input {\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n}\n\n.puck-ai-toggle-slider {\n background: var(--puck-color-grey-08);\n border-radius: 20px;\n inset: 0;\n position: absolute;\n transition: background 120ms;\n}\n\n.puck-ai-toggle-slider::after {\n background: white;\n border-radius: 50%;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n content: '';\n height: 16px;\n left: 2px;\n position: absolute;\n top: 2px;\n transition: left 120ms;\n width: 16px;\n}\n\n.puck-ai-toggle-input:checked + .puck-ai-toggle-slider {\n background: var(--puck-color-azure-04);\n}\n\n.puck-ai-toggle-input:checked + .puck-ai-toggle-slider::after {\n left: 18px;\n}\n\n.puck-ai-toggle-input:focus-visible + .puck-ai-toggle-slider {\n outline: 2px solid var(--puck-color-azure-04);\n outline-offset: 2px;\n}\n\n.puck-ai-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.45;\n}\n\n.puck-ai-toggle--disabled .puck-ai-toggle-input:disabled + .puck-ai-toggle-slider {\n background: var(--puck-color-grey-08);\n}\n\n/* ============================================================\n Settings panel\n ============================================================ */\n\n.puck-ai-settings-scroll {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n}\n\n.puck-ai-settings {\n display: flex;\n flex-direction: column;\n gap: 24px;\n padding: 16px;\n}\n\n.puck-ai-settings-section {\n display: flex;\n flex-direction: column;\n}\n\n.puck-ai-settings-section-title {\n color: var(--puck-color-grey-05);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.06em;\n margin-bottom: 4px;\n text-transform: uppercase;\n}\n\n.puck-ai-settings-row {\n align-items: center;\n border-bottom: 1px solid var(--puck-color-grey-10);\n display: flex;\n gap: 12px;\n justify-content: space-between;\n padding: 10px 0;\n}\n\n.puck-ai-settings-row:last-child {\n border-bottom: none;\n}\n\n.puck-ai-settings-row--column {\n align-items: flex-start;\n flex-direction: column;\n gap: 8px;\n}\n\n.puck-ai-settings-label {\n color: var(--puck-color-grey-02);\n cursor: pointer;\n display: flex;\n flex-direction: column;\n font-size: var(--puck-font-size-xxxs);\n font-weight: 500;\n gap: 2px;\n}\n\n.puck-ai-settings-hint {\n color: var(--puck-color-grey-06);\n font-size: 11px;\n font-weight: 400;\n}\n\n.puck-ai-settings-select {\n appearance: none;\n background-color: var(--puck-color-grey-11);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23767676'/%3E%3C/svg%3E\");\n background-position: right 8px center;\n background-repeat: no-repeat;\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 6px;\n color: var(--puck-color-grey-02);\n cursor: pointer;\n flex-shrink: 0;\n font-family: inherit;\n font-size: var(--puck-font-size-xxxs);\n padding: 5px 28px 5px 8px;\n}\n\n.puck-ai-settings-select:focus {\n outline: 2px solid var(--puck-color-azure-04);\n outline-offset: 2px;\n}\n\n.puck-ai-settings-input-wrap {\n align-items: center;\n background: var(--puck-color-grey-12);\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 6px;\n display: flex;\n overflow: hidden;\n width: 100%;\n}\n\n.puck-ai-settings-input-wrap:focus-within {\n outline: 2px solid var(--puck-color-azure-04);\n outline-offset: 0;\n}\n\n.puck-ai-settings-input {\n background: transparent;\n border: none;\n color: var(--puck-color-grey-02);\n flex: 1;\n font-family: var(--puck-font-family-monospaced, monospace);\n font-size: 11px;\n min-width: 0;\n padding: 7px 8px;\n}\n\n.puck-ai-settings-input:focus {\n outline: none;\n}\n\n.puck-ai-settings-input-action {\n align-items: center;\n appearance: none;\n background: transparent;\n border: none;\n border-left: 1px solid var(--puck-color-grey-09);\n color: var(--puck-color-grey-06);\n cursor: pointer;\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n padding: 7px 8px;\n}\n\n.puck-ai-settings-input-action:hover {\n background: var(--puck-color-grey-11);\n color: var(--puck-color-grey-02);\n}\n\n.puck-ai-settings-link {\n color: var(--puck-color-azure-04);\n font-size: 11px;\n text-decoration: none;\n}\n\n.puck-ai-settings-link:hover {\n color: var(--puck-color-azure-05);\n text-decoration: underline;\n}\n\n.puck-ai-settings-clear-chat {\n align-items: center;\n align-self: flex-start;\n appearance: none;\n background: var(--puck-color-white);\n border: 1px solid var(--puck-color-red-04);\n border-radius: 6px;\n color: var(--puck-color-red-04);\n cursor: pointer;\n display: inline-flex;\n font-family: inherit;\n font-size: var(--puck-font-size-xxxs);\n font-weight: 600;\n gap: 8px;\n margin-top: 4px;\n padding: 8px 12px;\n}\n\n.puck-ai-settings-clear-chat:hover:not(:disabled) {\n background: var(--puck-color-grey-12);\n}\n\n.puck-ai-settings-clear-chat:focus-visible {\n outline: 2px solid var(--puck-color-azure-04);\n outline-offset: 2px;\n}\n\n.puck-ai-settings-clear-chat:disabled {\n cursor: not-allowed;\n opacity: 0.45;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,261 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { PuckAction, Data, Config, Plugin } from 'pika-editor-core';
3
+ import { CreateUIMessage, UIMessage, LanguageModelUsage, DataUIPart, ChatStatus } from 'ai';
4
+
5
+ interface AttachedImage {
6
+ /** Unique key for React lists */
7
+ id: string;
8
+ /** base64 data URL e.g. "data:image/png;base64,..." */
9
+ dataUrl: string;
10
+ /** Original file name */
11
+ name: string;
12
+ }
13
+ type _JSONSchema = boolean | JSONSchema;
14
+ type JSONSchema = {
15
+ [k: string]: unknown;
16
+ $schema?: string;
17
+ $id?: string;
18
+ $ref?: string;
19
+ $defs?: Record<string, JSONSchema>;
20
+ type?: "object" | "array" | "string" | "number" | "boolean" | "null" | "integer";
21
+ additionalItems?: _JSONSchema;
22
+ unevaluatedItems?: _JSONSchema;
23
+ prefixItems?: _JSONSchema[];
24
+ items?: _JSONSchema | _JSONSchema[];
25
+ contains?: _JSONSchema;
26
+ additionalProperties?: _JSONSchema;
27
+ unevaluatedProperties?: _JSONSchema;
28
+ properties?: Record<string, _JSONSchema>;
29
+ patternProperties?: Record<string, _JSONSchema>;
30
+ dependentSchemas?: Record<string, _JSONSchema>;
31
+ propertyNames?: _JSONSchema;
32
+ if?: _JSONSchema;
33
+ then?: _JSONSchema;
34
+ else?: _JSONSchema;
35
+ allOf?: JSONSchema[];
36
+ anyOf?: JSONSchema[];
37
+ oneOf?: JSONSchema[];
38
+ not?: _JSONSchema;
39
+ multipleOf?: number;
40
+ maximum?: number;
41
+ exclusiveMaximum?: number | boolean;
42
+ minimum?: number;
43
+ exclusiveMinimum?: number | boolean;
44
+ maxLength?: number;
45
+ minLength?: number;
46
+ pattern?: string;
47
+ maxItems?: number;
48
+ minItems?: number;
49
+ uniqueItems?: boolean;
50
+ maxContains?: number;
51
+ minContains?: number;
52
+ maxProperties?: number;
53
+ minProperties?: number;
54
+ required?: string[];
55
+ dependentRequired?: Record<string, string[]>;
56
+ enum?: Array<string | number | boolean | null>;
57
+ const?: string | number | boolean | null;
58
+ id?: string;
59
+ title?: string;
60
+ description?: string;
61
+ default?: unknown;
62
+ deprecated?: boolean;
63
+ readOnly?: boolean;
64
+ writeOnly?: boolean;
65
+ nullable?: boolean;
66
+ examples?: unknown[];
67
+ format?: string;
68
+ contentMediaType?: string;
69
+ contentEncoding?: string;
70
+ contentSchema?: JSONSchema;
71
+ _prefault?: unknown;
72
+ };
73
+ type ComponentAiParams = {
74
+ instructions?: string;
75
+ exclude?: boolean;
76
+ defaultZone?: {
77
+ allow?: string[];
78
+ disallow?: string[];
79
+ disabled?: boolean;
80
+ };
81
+ };
82
+ type FieldAiParams = {
83
+ instructions?: string;
84
+ exclude?: boolean;
85
+ required?: boolean;
86
+ stream?: boolean;
87
+ schema?: JSONSchema;
88
+ bind?: string;
89
+ };
90
+ type AddOperation = {
91
+ op: "add";
92
+ id: string;
93
+ index: number;
94
+ zone: string;
95
+ type: string;
96
+ props: object;
97
+ };
98
+ type UpdateOperation = {
99
+ op: "update";
100
+ id: string;
101
+ props: object;
102
+ };
103
+ type UpdateRootOperation = {
104
+ op: "updateRoot";
105
+ props: object;
106
+ };
107
+ type MoveOperation = {
108
+ op: "move";
109
+ zone: string;
110
+ id: string;
111
+ index: number;
112
+ };
113
+ type DeleteOperation = {
114
+ op: "delete";
115
+ id: string;
116
+ };
117
+ type DuplicateOperation = {
118
+ op: "duplicate";
119
+ id: string;
120
+ };
121
+ type ResetOperation = {
122
+ op: "reset";
123
+ };
124
+ type Operation = AddOperation | UpdateOperation | UpdateRootOperation | MoveOperation | DeleteOperation | DuplicateOperation | ResetOperation;
125
+ type ToolStatus = {
126
+ loading: boolean;
127
+ label: string;
128
+ error?: {
129
+ message: string;
130
+ };
131
+ };
132
+ type DataToolStatus = {
133
+ status: ToolStatus;
134
+ toolCallId: string;
135
+ };
136
+ type TokenUsage = {
137
+ inputTokens: number | undefined;
138
+ outputTokens: number | undefined;
139
+ totalTokens: number | undefined;
140
+ reasoningTokens?: number | undefined;
141
+ cachedInputTokens?: number | undefined;
142
+ };
143
+ type DataFinish = {
144
+ totalCost: number;
145
+ tokenUsage: TokenUsage;
146
+ };
147
+ type PuckDataParts = {
148
+ "new-chat-created": {
149
+ chatId: string;
150
+ };
151
+ "puck-actions": PuckAction[];
152
+ "build-op": Operation;
153
+ "tool-status": DataToolStatus;
154
+ "user-tool": {
155
+ toolCallId: string;
156
+ tools: {
157
+ name: string;
158
+ input: any;
159
+ }[];
160
+ };
161
+ "send-screenshot": {
162
+ id: string;
163
+ urls: {
164
+ [breakpoint: number]: string;
165
+ }[];
166
+ };
167
+ finish: DataFinish;
168
+ page: Data;
169
+ };
170
+ type PuckProviderMetadata = {
171
+ tokenUsage?: LanguageModelUsage;
172
+ };
173
+ type PuckMessage = UIMessage<PuckProviderMetadata, PuckDataParts>;
174
+ type RequestOptions = {
175
+ body?: {
176
+ chatId?: string;
177
+ trigger?: string;
178
+ messages?: PuckMessage[];
179
+ pageData?: Data;
180
+ config?: Config;
181
+ [key: string]: any;
182
+ };
183
+ headers?: HeadersInit;
184
+ credentials?: RequestCredentials;
185
+ };
186
+ type ThinkingLevel = "none" | "low" | "medium" | "high";
187
+ type AiSettings = {
188
+ thinkingLevel: ThinkingLevel;
189
+ urlContext: boolean;
190
+ googleSearch: boolean;
191
+ enterpriseWebSearch: boolean;
192
+ /**
193
+ * When a migration source URL is present, run Browser Rendering (Puppeteer/Worker) to capture
194
+ * a viewport screenshot and DOM bundle for the model. When off, migration URLs still enable
195
+ * URL context only — no `runBrowserMigrationPipeline` on the server.
196
+ */
197
+ browserCapture: boolean;
198
+ /**
199
+ * When migrating from a page URL, run the full browser pipeline (DOM bundle + structured IR).
200
+ * Slower and uses more Worker time; leave off for screenshot-only + Vertex url_context.
201
+ * Only applies when {@link AiSettings.browserCapture} is enabled.
202
+ */
203
+ pageMigrationIr: boolean;
204
+ figmaToken: string;
205
+ };
206
+ type AiPluginProps = {
207
+ host?: string;
208
+ chat?: {
209
+ onSubmit?: (prompt: string) => void;
210
+ examplePrompts?: {
211
+ label: string;
212
+ href?: string;
213
+ onClick?: () => void;
214
+ }[];
215
+ };
216
+ scrollTracking?: boolean;
217
+ prepareRequest?: (opts: RequestOptions) => RequestOptions | Promise<RequestOptions>;
218
+ settings?: {
219
+ storageKey?: string;
220
+ };
221
+ };
222
+ declare module "pika-editor-core" {
223
+ interface ComponentMetadata {
224
+ ai?: ComponentAiParams;
225
+ }
226
+ interface ComponentConfigExtensions {
227
+ ai?: ComponentAiParams;
228
+ }
229
+ interface FieldMetadata {
230
+ ai?: FieldAiParams;
231
+ }
232
+ interface BaseField {
233
+ ai?: FieldAiParams;
234
+ }
235
+ }
236
+ type TargetComponent = {
237
+ id: string;
238
+ type: string;
239
+ label?: string;
240
+ };
241
+ declare global {
242
+ interface Window {
243
+ __PUCK_AI: {
244
+ sendMessage: (message: CreateUIMessage<PuckMessage>) => void;
245
+ setMessages: (_messages: PuckMessage[]) => void;
246
+ processData: (_dataPart: DataUIPart<PuckDataParts>) => void;
247
+ setStatus: (_status: ChatStatus) => void;
248
+ setPrompt: (_value: string) => void;
249
+ setTargetComponent: (_target: TargetComponent | null) => void;
250
+ };
251
+ }
252
+ }
253
+ declare function Chat({ chat, host, prepareRequest, settings, }: {
254
+ chat?: AiPluginProps["chat"];
255
+ host?: string;
256
+ prepareRequest?: AiPluginProps["prepareRequest"];
257
+ settings?: AiPluginProps["settings"];
258
+ }): react_jsx_runtime.JSX.Element;
259
+ declare function createAiPlugin(opts?: AiPluginProps): Plugin;
260
+
261
+ export { type AddOperation, type AiPluginProps, type AiSettings, type AttachedImage, Chat, type ComponentAiParams, type DataToolStatus, type DeleteOperation, type DuplicateOperation, type FieldAiParams, type JSONSchema, type MoveOperation, type Operation, type PuckMessage, type RequestOptions, type ResetOperation, type TargetComponent, type ThinkingLevel, type ToolStatus, type UpdateOperation, type UpdateRootOperation, createAiPlugin, createAiPlugin as default };
@@ -0,0 +1,261 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { PuckAction, Data, Config, Plugin } from 'pika-editor-core';
3
+ import { CreateUIMessage, UIMessage, LanguageModelUsage, DataUIPart, ChatStatus } from 'ai';
4
+
5
+ interface AttachedImage {
6
+ /** Unique key for React lists */
7
+ id: string;
8
+ /** base64 data URL e.g. "data:image/png;base64,..." */
9
+ dataUrl: string;
10
+ /** Original file name */
11
+ name: string;
12
+ }
13
+ type _JSONSchema = boolean | JSONSchema;
14
+ type JSONSchema = {
15
+ [k: string]: unknown;
16
+ $schema?: string;
17
+ $id?: string;
18
+ $ref?: string;
19
+ $defs?: Record<string, JSONSchema>;
20
+ type?: "object" | "array" | "string" | "number" | "boolean" | "null" | "integer";
21
+ additionalItems?: _JSONSchema;
22
+ unevaluatedItems?: _JSONSchema;
23
+ prefixItems?: _JSONSchema[];
24
+ items?: _JSONSchema | _JSONSchema[];
25
+ contains?: _JSONSchema;
26
+ additionalProperties?: _JSONSchema;
27
+ unevaluatedProperties?: _JSONSchema;
28
+ properties?: Record<string, _JSONSchema>;
29
+ patternProperties?: Record<string, _JSONSchema>;
30
+ dependentSchemas?: Record<string, _JSONSchema>;
31
+ propertyNames?: _JSONSchema;
32
+ if?: _JSONSchema;
33
+ then?: _JSONSchema;
34
+ else?: _JSONSchema;
35
+ allOf?: JSONSchema[];
36
+ anyOf?: JSONSchema[];
37
+ oneOf?: JSONSchema[];
38
+ not?: _JSONSchema;
39
+ multipleOf?: number;
40
+ maximum?: number;
41
+ exclusiveMaximum?: number | boolean;
42
+ minimum?: number;
43
+ exclusiveMinimum?: number | boolean;
44
+ maxLength?: number;
45
+ minLength?: number;
46
+ pattern?: string;
47
+ maxItems?: number;
48
+ minItems?: number;
49
+ uniqueItems?: boolean;
50
+ maxContains?: number;
51
+ minContains?: number;
52
+ maxProperties?: number;
53
+ minProperties?: number;
54
+ required?: string[];
55
+ dependentRequired?: Record<string, string[]>;
56
+ enum?: Array<string | number | boolean | null>;
57
+ const?: string | number | boolean | null;
58
+ id?: string;
59
+ title?: string;
60
+ description?: string;
61
+ default?: unknown;
62
+ deprecated?: boolean;
63
+ readOnly?: boolean;
64
+ writeOnly?: boolean;
65
+ nullable?: boolean;
66
+ examples?: unknown[];
67
+ format?: string;
68
+ contentMediaType?: string;
69
+ contentEncoding?: string;
70
+ contentSchema?: JSONSchema;
71
+ _prefault?: unknown;
72
+ };
73
+ type ComponentAiParams = {
74
+ instructions?: string;
75
+ exclude?: boolean;
76
+ defaultZone?: {
77
+ allow?: string[];
78
+ disallow?: string[];
79
+ disabled?: boolean;
80
+ };
81
+ };
82
+ type FieldAiParams = {
83
+ instructions?: string;
84
+ exclude?: boolean;
85
+ required?: boolean;
86
+ stream?: boolean;
87
+ schema?: JSONSchema;
88
+ bind?: string;
89
+ };
90
+ type AddOperation = {
91
+ op: "add";
92
+ id: string;
93
+ index: number;
94
+ zone: string;
95
+ type: string;
96
+ props: object;
97
+ };
98
+ type UpdateOperation = {
99
+ op: "update";
100
+ id: string;
101
+ props: object;
102
+ };
103
+ type UpdateRootOperation = {
104
+ op: "updateRoot";
105
+ props: object;
106
+ };
107
+ type MoveOperation = {
108
+ op: "move";
109
+ zone: string;
110
+ id: string;
111
+ index: number;
112
+ };
113
+ type DeleteOperation = {
114
+ op: "delete";
115
+ id: string;
116
+ };
117
+ type DuplicateOperation = {
118
+ op: "duplicate";
119
+ id: string;
120
+ };
121
+ type ResetOperation = {
122
+ op: "reset";
123
+ };
124
+ type Operation = AddOperation | UpdateOperation | UpdateRootOperation | MoveOperation | DeleteOperation | DuplicateOperation | ResetOperation;
125
+ type ToolStatus = {
126
+ loading: boolean;
127
+ label: string;
128
+ error?: {
129
+ message: string;
130
+ };
131
+ };
132
+ type DataToolStatus = {
133
+ status: ToolStatus;
134
+ toolCallId: string;
135
+ };
136
+ type TokenUsage = {
137
+ inputTokens: number | undefined;
138
+ outputTokens: number | undefined;
139
+ totalTokens: number | undefined;
140
+ reasoningTokens?: number | undefined;
141
+ cachedInputTokens?: number | undefined;
142
+ };
143
+ type DataFinish = {
144
+ totalCost: number;
145
+ tokenUsage: TokenUsage;
146
+ };
147
+ type PuckDataParts = {
148
+ "new-chat-created": {
149
+ chatId: string;
150
+ };
151
+ "puck-actions": PuckAction[];
152
+ "build-op": Operation;
153
+ "tool-status": DataToolStatus;
154
+ "user-tool": {
155
+ toolCallId: string;
156
+ tools: {
157
+ name: string;
158
+ input: any;
159
+ }[];
160
+ };
161
+ "send-screenshot": {
162
+ id: string;
163
+ urls: {
164
+ [breakpoint: number]: string;
165
+ }[];
166
+ };
167
+ finish: DataFinish;
168
+ page: Data;
169
+ };
170
+ type PuckProviderMetadata = {
171
+ tokenUsage?: LanguageModelUsage;
172
+ };
173
+ type PuckMessage = UIMessage<PuckProviderMetadata, PuckDataParts>;
174
+ type RequestOptions = {
175
+ body?: {
176
+ chatId?: string;
177
+ trigger?: string;
178
+ messages?: PuckMessage[];
179
+ pageData?: Data;
180
+ config?: Config;
181
+ [key: string]: any;
182
+ };
183
+ headers?: HeadersInit;
184
+ credentials?: RequestCredentials;
185
+ };
186
+ type ThinkingLevel = "none" | "low" | "medium" | "high";
187
+ type AiSettings = {
188
+ thinkingLevel: ThinkingLevel;
189
+ urlContext: boolean;
190
+ googleSearch: boolean;
191
+ enterpriseWebSearch: boolean;
192
+ /**
193
+ * When a migration source URL is present, run Browser Rendering (Puppeteer/Worker) to capture
194
+ * a viewport screenshot and DOM bundle for the model. When off, migration URLs still enable
195
+ * URL context only — no `runBrowserMigrationPipeline` on the server.
196
+ */
197
+ browserCapture: boolean;
198
+ /**
199
+ * When migrating from a page URL, run the full browser pipeline (DOM bundle + structured IR).
200
+ * Slower and uses more Worker time; leave off for screenshot-only + Vertex url_context.
201
+ * Only applies when {@link AiSettings.browserCapture} is enabled.
202
+ */
203
+ pageMigrationIr: boolean;
204
+ figmaToken: string;
205
+ };
206
+ type AiPluginProps = {
207
+ host?: string;
208
+ chat?: {
209
+ onSubmit?: (prompt: string) => void;
210
+ examplePrompts?: {
211
+ label: string;
212
+ href?: string;
213
+ onClick?: () => void;
214
+ }[];
215
+ };
216
+ scrollTracking?: boolean;
217
+ prepareRequest?: (opts: RequestOptions) => RequestOptions | Promise<RequestOptions>;
218
+ settings?: {
219
+ storageKey?: string;
220
+ };
221
+ };
222
+ declare module "pika-editor-core" {
223
+ interface ComponentMetadata {
224
+ ai?: ComponentAiParams;
225
+ }
226
+ interface ComponentConfigExtensions {
227
+ ai?: ComponentAiParams;
228
+ }
229
+ interface FieldMetadata {
230
+ ai?: FieldAiParams;
231
+ }
232
+ interface BaseField {
233
+ ai?: FieldAiParams;
234
+ }
235
+ }
236
+ type TargetComponent = {
237
+ id: string;
238
+ type: string;
239
+ label?: string;
240
+ };
241
+ declare global {
242
+ interface Window {
243
+ __PUCK_AI: {
244
+ sendMessage: (message: CreateUIMessage<PuckMessage>) => void;
245
+ setMessages: (_messages: PuckMessage[]) => void;
246
+ processData: (_dataPart: DataUIPart<PuckDataParts>) => void;
247
+ setStatus: (_status: ChatStatus) => void;
248
+ setPrompt: (_value: string) => void;
249
+ setTargetComponent: (_target: TargetComponent | null) => void;
250
+ };
251
+ }
252
+ }
253
+ declare function Chat({ chat, host, prepareRequest, settings, }: {
254
+ chat?: AiPluginProps["chat"];
255
+ host?: string;
256
+ prepareRequest?: AiPluginProps["prepareRequest"];
257
+ settings?: AiPluginProps["settings"];
258
+ }): react_jsx_runtime.JSX.Element;
259
+ declare function createAiPlugin(opts?: AiPluginProps): Plugin;
260
+
261
+ export { type AddOperation, type AiPluginProps, type AiSettings, type AttachedImage, Chat, type ComponentAiParams, type DataToolStatus, type DeleteOperation, type DuplicateOperation, type FieldAiParams, type JSONSchema, type MoveOperation, type Operation, type PuckMessage, type RequestOptions, type ResetOperation, type TargetComponent, type ThinkingLevel, type ToolStatus, type UpdateOperation, type UpdateRootOperation, createAiPlugin, createAiPlugin as default };