netra-artifacts 0.1.0-alpha.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 +25 -0
- package/LICENSE +21 -0
- package/README.md +239 -0
- package/dist/artifacts/artifactEnvelope.d.ts +46 -0
- package/dist/artifacts/artifactEnvelope.d.ts.map +1 -0
- package/dist/artifacts/artifactEnvelope.js +217 -0
- package/dist/artifacts/artifactEnvelope.js.map +1 -0
- package/dist/artifacts/artifactStatus.d.ts +9 -0
- package/dist/artifacts/artifactStatus.d.ts.map +1 -0
- package/dist/artifacts/artifactStatus.js +10 -0
- package/dist/artifacts/artifactStatus.js.map +1 -0
- package/dist/artifacts/artifactStore.d.ts +15 -0
- package/dist/artifacts/artifactStore.d.ts.map +1 -0
- package/dist/artifacts/artifactStore.js +35 -0
- package/dist/artifacts/artifactStore.js.map +1 -0
- package/dist/artifacts/htmlArtifact.d.ts +10 -0
- package/dist/artifacts/htmlArtifact.d.ts.map +1 -0
- package/dist/artifacts/htmlArtifact.js +20 -0
- package/dist/artifacts/htmlArtifact.js.map +1 -0
- package/dist/artifacts/index.d.ts +5 -0
- package/dist/artifacts/index.d.ts.map +1 -0
- package/dist/artifacts/index.js +5 -0
- package/dist/artifacts/index.js.map +1 -0
- package/dist/circuit-breaker/circuitBreaker.d.ts +35 -0
- package/dist/circuit-breaker/circuitBreaker.d.ts.map +1 -0
- package/dist/circuit-breaker/circuitBreaker.js +59 -0
- package/dist/circuit-breaker/circuitBreaker.js.map +1 -0
- package/dist/circuit-breaker/index.d.ts +3 -0
- package/dist/circuit-breaker/index.d.ts.map +1 -0
- package/dist/circuit-breaker/index.js +3 -0
- package/dist/circuit-breaker/index.js.map +1 -0
- package/dist/circuit-breaker/memoryCircuitStore.d.ts +24 -0
- package/dist/circuit-breaker/memoryCircuitStore.d.ts.map +1 -0
- package/dist/circuit-breaker/memoryCircuitStore.js +12 -0
- package/dist/circuit-breaker/memoryCircuitStore.js.map +1 -0
- package/dist/classifier/classifierPrompt.d.ts +7 -0
- package/dist/classifier/classifierPrompt.d.ts.map +1 -0
- package/dist/classifier/classifierPrompt.js +43 -0
- package/dist/classifier/classifierPrompt.js.map +1 -0
- package/dist/classifier/classifyMode.d.ts +21 -0
- package/dist/classifier/classifyMode.d.ts.map +1 -0
- package/dist/classifier/classifyMode.js +50 -0
- package/dist/classifier/classifyMode.js.map +1 -0
- package/dist/classifier/index.d.ts +4 -0
- package/dist/classifier/index.d.ts.map +1 -0
- package/dist/classifier/index.js +4 -0
- package/dist/classifier/index.js.map +1 -0
- package/dist/classifier/rules.d.ts +13 -0
- package/dist/classifier/rules.d.ts.map +1 -0
- package/dist/classifier/rules.js +118 -0
- package/dist/classifier/rules.js.map +1 -0
- package/dist/client/ArtifactChat.d.ts +15 -0
- package/dist/client/ArtifactChat.d.ts.map +1 -0
- package/dist/client/ArtifactChat.js +62 -0
- package/dist/client/ArtifactChat.js.map +1 -0
- package/dist/client/ArtifactMessage.d.ts +24 -0
- package/dist/client/ArtifactMessage.d.ts.map +1 -0
- package/dist/client/ArtifactMessage.js +29 -0
- package/dist/client/ArtifactMessage.js.map +1 -0
- package/dist/client/MarkdownMessage.d.ts +12 -0
- package/dist/client/MarkdownMessage.d.ts.map +1 -0
- package/dist/client/MarkdownMessage.js +141 -0
- package/dist/client/MarkdownMessage.js.map +1 -0
- package/dist/client/index.d.ts +8 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +8 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/useArtifactStream.d.ts +9 -0
- package/dist/client/useArtifactStream.d.ts.map +1 -0
- package/dist/client/useArtifactStream.js +210 -0
- package/dist/client/useArtifactStream.js.map +1 -0
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +4 -0
- package/dist/client.js.map +1 -0
- package/dist/constants/defaults.d.ts +17 -0
- package/dist/constants/defaults.d.ts.map +1 -0
- package/dist/constants/defaults.js +38 -0
- package/dist/constants/defaults.js.map +1 -0
- package/dist/constants/events.d.ts +16 -0
- package/dist/constants/events.d.ts.map +1 -0
- package/dist/constants/events.js +16 -0
- package/dist/constants/events.js.map +1 -0
- package/dist/constants/index.d.ts +4 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +4 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/sandbox.d.ts +19 -0
- package/dist/constants/sandbox.d.ts.map +1 -0
- package/dist/constants/sandbox.js +24 -0
- package/dist/constants/sandbox.js.map +1 -0
- package/dist/core/createArtifactResponse.d.ts +5 -0
- package/dist/core/createArtifactResponse.d.ts.map +1 -0
- package/dist/core/createArtifactResponse.js +16 -0
- package/dist/core/createArtifactResponse.js.map +1 -0
- package/dist/core/createArtifactStream.d.ts +9 -0
- package/dist/core/createArtifactStream.d.ts.map +1 -0
- package/dist/core/createArtifactStream.js +34 -0
- package/dist/core/createArtifactStream.js.map +1 -0
- package/dist/core/createIds.d.ts +3 -0
- package/dist/core/createIds.d.ts.map +1 -0
- package/dist/core/createIds.js +13 -0
- package/dist/core/createIds.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/lifecycle.d.ts +35 -0
- package/dist/core/lifecycle.d.ts.map +1 -0
- package/dist/core/lifecycle.js +81 -0
- package/dist/core/lifecycle.js.map +1 -0
- package/dist/core/parseArtifactEnvelope.d.ts +2 -0
- package/dist/core/parseArtifactEnvelope.d.ts.map +1 -0
- package/dist/core/parseArtifactEnvelope.js +3 -0
- package/dist/core/parseArtifactEnvelope.js.map +1 -0
- package/dist/errors/ArtifactParseError.d.ts +10 -0
- package/dist/errors/ArtifactParseError.d.ts.map +1 -0
- package/dist/errors/ArtifactParseError.js +10 -0
- package/dist/errors/ArtifactParseError.js.map +1 -0
- package/dist/errors/ClassificationError.d.ts +13 -0
- package/dist/errors/ClassificationError.d.ts.map +1 -0
- package/dist/errors/ClassificationError.js +13 -0
- package/dist/errors/ClassificationError.js.map +1 -0
- package/dist/errors/StreamError.d.ts +11 -0
- package/dist/errors/StreamError.d.ts.map +1 -0
- package/dist/errors/StreamError.js +11 -0
- package/dist/errors/StreamError.js.map +1 -0
- package/dist/errors/index.d.ts +4 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +4 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/iframe/HtmlArtifactCard.d.ts +9 -0
- package/dist/iframe/HtmlArtifactCard.d.ts.map +1 -0
- package/dist/iframe/HtmlArtifactCard.js +117 -0
- package/dist/iframe/HtmlArtifactCard.js.map +1 -0
- package/dist/iframe/HtmlArtifactCodeView.d.ts +7 -0
- package/dist/iframe/HtmlArtifactCodeView.d.ts.map +1 -0
- package/dist/iframe/HtmlArtifactCodeView.js +20 -0
- package/dist/iframe/HtmlArtifactCodeView.js.map +1 -0
- package/dist/iframe/HtmlArtifactModal.d.ts +16 -0
- package/dist/iframe/HtmlArtifactModal.d.ts.map +1 -0
- package/dist/iframe/HtmlArtifactModal.js +99 -0
- package/dist/iframe/HtmlArtifactModal.js.map +1 -0
- package/dist/iframe/HtmlArtifactPreview.d.ts +15 -0
- package/dist/iframe/HtmlArtifactPreview.d.ts.map +1 -0
- package/dist/iframe/HtmlArtifactPreview.js +214 -0
- package/dist/iframe/HtmlArtifactPreview.js.map +1 -0
- package/dist/iframe/HtmlArtifactToolbar.d.ts +20 -0
- package/dist/iframe/HtmlArtifactToolbar.d.ts.map +1 -0
- package/dist/iframe/HtmlArtifactToolbar.js +14 -0
- package/dist/iframe/HtmlArtifactToolbar.js.map +1 -0
- package/dist/iframe/iframeSizing.d.ts +22 -0
- package/dist/iframe/iframeSizing.d.ts.map +1 -0
- package/dist/iframe/iframeSizing.js +74 -0
- package/dist/iframe/iframeSizing.js.map +1 -0
- package/dist/iframe/iframeSrcDoc.d.ts +34 -0
- package/dist/iframe/iframeSrcDoc.d.ts.map +1 -0
- package/dist/iframe/iframeSrcDoc.js +236 -0
- package/dist/iframe/iframeSrcDoc.js.map +1 -0
- package/dist/iframe/index.d.ts +15 -0
- package/dist/iframe/index.d.ts.map +1 -0
- package/dist/iframe/index.js +9 -0
- package/dist/iframe/index.js.map +1 -0
- package/dist/iframe/styles.d.ts +10 -0
- package/dist/iframe/styles.d.ts.map +1 -0
- package/dist/iframe/styles.js +181 -0
- package/dist/iframe/styles.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/htmlArtifactPrompt.d.ts +15 -0
- package/dist/prompts/htmlArtifactPrompt.d.ts.map +1 -0
- package/dist/prompts/htmlArtifactPrompt.js +248 -0
- package/dist/prompts/htmlArtifactPrompt.js.map +1 -0
- package/dist/prompts/index.d.ts +4 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +4 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/markdownPrompt.d.ts +3 -0
- package/dist/prompts/markdownPrompt.d.ts.map +1 -0
- package/dist/prompts/markdownPrompt.js +10 -0
- package/dist/prompts/markdownPrompt.js.map +1 -0
- package/dist/prompts/systemPrompt.d.ts +3 -0
- package/dist/prompts/systemPrompt.d.ts.map +1 -0
- package/dist/prompts/systemPrompt.js +3 -0
- package/dist/prompts/systemPrompt.js.map +1 -0
- package/dist/sanitizer/dangerousPatterns.d.ts +41 -0
- package/dist/sanitizer/dangerousPatterns.d.ts.map +1 -0
- package/dist/sanitizer/dangerousPatterns.js +41 -0
- package/dist/sanitizer/dangerousPatterns.js.map +1 -0
- package/dist/sanitizer/index.d.ts +4 -0
- package/dist/sanitizer/index.d.ts.map +1 -0
- package/dist/sanitizer/index.js +4 -0
- package/dist/sanitizer/index.js.map +1 -0
- package/dist/sanitizer/sanitizeConfig.d.ts +4 -0
- package/dist/sanitizer/sanitizeConfig.d.ts.map +1 -0
- package/dist/sanitizer/sanitizeConfig.js +10 -0
- package/dist/sanitizer/sanitizeConfig.js.map +1 -0
- package/dist/sanitizer/sanitizeHtml.d.ts +20 -0
- package/dist/sanitizer/sanitizeHtml.d.ts.map +1 -0
- package/dist/sanitizer/sanitizeHtml.js +81 -0
- package/dist/sanitizer/sanitizeHtml.js.map +1 -0
- package/dist/server/config.d.ts +6 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +68 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/createArtifactStreamResponse.d.ts +9 -0
- package/dist/server/createArtifactStreamResponse.d.ts.map +1 -0
- package/dist/server/createArtifactStreamResponse.js +104 -0
- package/dist/server/createArtifactStreamResponse.js.map +1 -0
- package/dist/server/createHtmlArtifactStream.d.ts +30 -0
- package/dist/server/createHtmlArtifactStream.d.ts.map +1 -0
- package/dist/server/createHtmlArtifactStream.js +115 -0
- package/dist/server/createHtmlArtifactStream.js.map +1 -0
- package/dist/server/createMarkdownStream.d.ts +13 -0
- package/dist/server/createMarkdownStream.d.ts.map +1 -0
- package/dist/server/createMarkdownStream.js +27 -0
- package/dist/server/createMarkdownStream.js.map +1 -0
- package/dist/server/createSseResponse.d.ts +7 -0
- package/dist/server/createSseResponse.d.ts.map +1 -0
- package/dist/server/createSseResponse.js +11 -0
- package/dist/server/createSseResponse.js.map +1 -0
- package/dist/server/index.d.ts +12 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +12 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +3 -0
- package/dist/server.js.map +1 -0
- package/dist/stream/assembleDocument.d.ts +42 -0
- package/dist/stream/assembleDocument.d.ts.map +1 -0
- package/dist/stream/assembleDocument.js +104 -0
- package/dist/stream/assembleDocument.js.map +1 -0
- package/dist/stream/buffering.d.ts +37 -0
- package/dist/stream/buffering.d.ts.map +1 -0
- package/dist/stream/buffering.js +97 -0
- package/dist/stream/buffering.js.map +1 -0
- package/dist/stream/debounce.d.ts +12 -0
- package/dist/stream/debounce.d.ts.map +1 -0
- package/dist/stream/debounce.js +36 -0
- package/dist/stream/debounce.js.map +1 -0
- package/dist/stream/decoder.d.ts +17 -0
- package/dist/stream/decoder.d.ts.map +1 -0
- package/dist/stream/decoder.js +71 -0
- package/dist/stream/decoder.js.map +1 -0
- package/dist/stream/encoder.d.ts +12 -0
- package/dist/stream/encoder.d.ts.map +1 -0
- package/dist/stream/encoder.js +19 -0
- package/dist/stream/encoder.js.map +1 -0
- package/dist/stream/events.d.ts +20 -0
- package/dist/stream/events.d.ts.map +1 -0
- package/dist/stream/events.js +65 -0
- package/dist/stream/events.js.map +1 -0
- package/dist/stream/index.d.ts +9 -0
- package/dist/stream/index.d.ts.map +1 -0
- package/dist/stream/index.js +9 -0
- package/dist/stream/index.js.map +1 -0
- package/dist/stream/predictiveHtmlParser.d.ts +52 -0
- package/dist/stream/predictiveHtmlParser.d.ts.map +1 -0
- package/dist/stream/predictiveHtmlParser.js +252 -0
- package/dist/stream/predictiveHtmlParser.js.map +1 -0
- package/dist/stream/sse.d.ts +7 -0
- package/dist/stream/sse.d.ts.map +1 -0
- package/dist/stream/sse.js +33 -0
- package/dist/stream/sse.js.map +1 -0
- package/dist/types/artifact.d.ts +88 -0
- package/dist/types/artifact.d.ts.map +1 -0
- package/dist/types/artifact.js +2 -0
- package/dist/types/artifact.js.map +1 -0
- package/dist/types/client.d.ts +98 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/client.js +2 -0
- package/dist/types/client.js.map +1 -0
- package/dist/types/config.d.ts +23 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/errors.d.ts +9 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +2 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/server.d.ts +111 -0
- package/dist/types/server.d.ts.map +1 -0
- package/dist/types/server.js +2 -0
- package/dist/types/server.js.map +1 -0
- package/dist/types/stream.d.ts +60 -0
- package/dist/types/stream.d.ts.map +1 -0
- package/dist/types/stream.js +7 -0
- package/dist/types/stream.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/invariant.d.ts +6 -0
- package/dist/utils/invariant.d.ts.map +1 -0
- package/dist/utils/invariant.js +10 -0
- package/dist/utils/invariant.js.map +1 -0
- package/dist/utils/isBrowser.d.ts +3 -0
- package/dist/utils/isBrowser.d.ts.map +1 -0
- package/dist/utils/isBrowser.js +3 -0
- package/dist/utils/isBrowser.js.map +1 -0
- package/dist/utils/mergeConfig.d.ts +6 -0
- package/dist/utils/mergeConfig.d.ts.map +1 -0
- package/dist/utils/mergeConfig.js +17 -0
- package/dist/utils/mergeConfig.js.map +1 -0
- package/dist/utils/noop.d.ts +3 -0
- package/dist/utils/noop.d.ts.map +1 -0
- package/dist/utils/noop.js +3 -0
- package/dist/utils/noop.js.map +1 -0
- package/dist/utils/safeJsonParse.d.ts +7 -0
- package/dist/utils/safeJsonParse.d.ts.map +1 -0
- package/dist/utils/safeJsonParse.js +62 -0
- package/dist/utils/safeJsonParse.js.map +1 -0
- package/dist-cjs/artifacts/artifactEnvelope.js +224 -0
- package/dist-cjs/artifacts/artifactEnvelope.js.map +1 -0
- package/dist-cjs/artifacts/artifactStatus.js +14 -0
- package/dist-cjs/artifacts/artifactStatus.js.map +1 -0
- package/dist-cjs/artifacts/artifactStore.js +39 -0
- package/dist-cjs/artifacts/artifactStore.js.map +1 -0
- package/dist-cjs/artifacts/htmlArtifact.js +24 -0
- package/dist-cjs/artifacts/htmlArtifact.js.map +1 -0
- package/dist-cjs/artifacts/index.js +21 -0
- package/dist-cjs/artifacts/index.js.map +1 -0
- package/dist-cjs/circuit-breaker/circuitBreaker.js +63 -0
- package/dist-cjs/circuit-breaker/circuitBreaker.js.map +1 -0
- package/dist-cjs/circuit-breaker/index.js +19 -0
- package/dist-cjs/circuit-breaker/index.js.map +1 -0
- package/dist-cjs/circuit-breaker/memoryCircuitStore.js +16 -0
- package/dist-cjs/circuit-breaker/memoryCircuitStore.js.map +1 -0
- package/dist-cjs/classifier/classifierPrompt.js +47 -0
- package/dist-cjs/classifier/classifierPrompt.js.map +1 -0
- package/dist-cjs/classifier/classifyMode.js +53 -0
- package/dist-cjs/classifier/classifyMode.js.map +1 -0
- package/dist-cjs/classifier/index.js +20 -0
- package/dist-cjs/classifier/index.js.map +1 -0
- package/dist-cjs/classifier/rules.js +121 -0
- package/dist-cjs/classifier/rules.js.map +1 -0
- package/dist-cjs/client/ArtifactChat.js +98 -0
- package/dist-cjs/client/ArtifactChat.js.map +1 -0
- package/dist-cjs/client/ArtifactMessage.js +32 -0
- package/dist-cjs/client/ArtifactMessage.js.map +1 -0
- package/dist-cjs/client/MarkdownMessage.js +177 -0
- package/dist-cjs/client/MarkdownMessage.js.map +1 -0
- package/dist-cjs/client/index.js +20 -0
- package/dist-cjs/client/index.js.map +1 -0
- package/dist-cjs/client/useArtifactStream.js +246 -0
- package/dist-cjs/client/useArtifactStream.js.map +1 -0
- package/dist-cjs/client.js +20 -0
- package/dist-cjs/client.js.map +1 -0
- package/dist-cjs/constants/defaults.js +41 -0
- package/dist-cjs/constants/defaults.js.map +1 -0
- package/dist-cjs/constants/events.js +19 -0
- package/dist-cjs/constants/events.js.map +1 -0
- package/dist-cjs/constants/index.js +20 -0
- package/dist-cjs/constants/index.js.map +1 -0
- package/dist-cjs/constants/sandbox.js +27 -0
- package/dist-cjs/constants/sandbox.js.map +1 -0
- package/dist-cjs/core/createArtifactResponse.js +20 -0
- package/dist-cjs/core/createArtifactResponse.js.map +1 -0
- package/dist-cjs/core/createArtifactStream.js +37 -0
- package/dist-cjs/core/createArtifactStream.js.map +1 -0
- package/dist-cjs/core/createIds.js +17 -0
- package/dist-cjs/core/createIds.js.map +1 -0
- package/dist-cjs/core/index.js +22 -0
- package/dist-cjs/core/index.js.map +1 -0
- package/dist-cjs/core/lifecycle.js +86 -0
- package/dist-cjs/core/lifecycle.js.map +1 -0
- package/dist-cjs/core/parseArtifactEnvelope.js +8 -0
- package/dist-cjs/core/parseArtifactEnvelope.js.map +1 -0
- package/dist-cjs/errors/ArtifactParseError.js +14 -0
- package/dist-cjs/errors/ArtifactParseError.js.map +1 -0
- package/dist-cjs/errors/ClassificationError.js +17 -0
- package/dist-cjs/errors/ClassificationError.js.map +1 -0
- package/dist-cjs/errors/StreamError.js +15 -0
- package/dist-cjs/errors/StreamError.js.map +1 -0
- package/dist-cjs/errors/index.js +20 -0
- package/dist-cjs/errors/index.js.map +1 -0
- package/dist-cjs/iframe/HtmlArtifactCard.js +153 -0
- package/dist-cjs/iframe/HtmlArtifactCard.js.map +1 -0
- package/dist-cjs/iframe/HtmlArtifactCodeView.js +23 -0
- package/dist-cjs/iframe/HtmlArtifactCodeView.js.map +1 -0
- package/dist-cjs/iframe/HtmlArtifactModal.js +135 -0
- package/dist-cjs/iframe/HtmlArtifactModal.js.map +1 -0
- package/dist-cjs/iframe/HtmlArtifactPreview.js +250 -0
- package/dist-cjs/iframe/HtmlArtifactPreview.js.map +1 -0
- package/dist-cjs/iframe/HtmlArtifactToolbar.js +17 -0
- package/dist-cjs/iframe/HtmlArtifactToolbar.js.map +1 -0
- package/dist-cjs/iframe/iframeSizing.js +77 -0
- package/dist-cjs/iframe/iframeSizing.js.map +1 -0
- package/dist-cjs/iframe/iframeSrcDoc.js +241 -0
- package/dist-cjs/iframe/iframeSrcDoc.js.map +1 -0
- package/dist-cjs/iframe/index.js +22 -0
- package/dist-cjs/iframe/index.js.map +1 -0
- package/dist-cjs/iframe/styles.js +218 -0
- package/dist-cjs/iframe/styles.js.map +1 -0
- package/dist-cjs/index.js +52 -0
- package/dist-cjs/index.js.map +1 -0
- package/dist-cjs/package.json +3 -0
- package/dist-cjs/prompts/htmlArtifactPrompt.js +252 -0
- package/dist-cjs/prompts/htmlArtifactPrompt.js.map +1 -0
- package/dist-cjs/prompts/index.js +20 -0
- package/dist-cjs/prompts/index.js.map +1 -0
- package/dist-cjs/prompts/markdownPrompt.js +13 -0
- package/dist-cjs/prompts/markdownPrompt.js.map +1 -0
- package/dist-cjs/prompts/systemPrompt.js +6 -0
- package/dist-cjs/prompts/systemPrompt.js.map +1 -0
- package/dist-cjs/sanitizer/dangerousPatterns.js +44 -0
- package/dist-cjs/sanitizer/dangerousPatterns.js.map +1 -0
- package/dist-cjs/sanitizer/index.js +43 -0
- package/dist-cjs/sanitizer/index.js.map +1 -0
- package/dist-cjs/sanitizer/sanitizeConfig.js +13 -0
- package/dist-cjs/sanitizer/sanitizeConfig.js.map +1 -0
- package/dist-cjs/sanitizer/sanitizeHtml.js +86 -0
- package/dist-cjs/sanitizer/sanitizeHtml.js.map +1 -0
- package/dist-cjs/server/config.js +72 -0
- package/dist-cjs/server/config.js.map +1 -0
- package/dist-cjs/server/createArtifactStreamResponse.js +107 -0
- package/dist-cjs/server/createArtifactStreamResponse.js.map +1 -0
- package/dist-cjs/server/createHtmlArtifactStream.js +119 -0
- package/dist-cjs/server/createHtmlArtifactStream.js.map +1 -0
- package/dist-cjs/server/createMarkdownStream.js +31 -0
- package/dist-cjs/server/createMarkdownStream.js.map +1 -0
- package/dist-cjs/server/createSseResponse.js +14 -0
- package/dist-cjs/server/createSseResponse.js.map +1 -0
- package/dist-cjs/server/index.js +34 -0
- package/dist-cjs/server/index.js.map +1 -0
- package/dist-cjs/server.js +19 -0
- package/dist-cjs/server.js.map +1 -0
- package/dist-cjs/stream/assembleDocument.js +109 -0
- package/dist-cjs/stream/assembleDocument.js.map +1 -0
- package/dist-cjs/stream/buffering.js +102 -0
- package/dist-cjs/stream/buffering.js.map +1 -0
- package/dist-cjs/stream/debounce.js +39 -0
- package/dist-cjs/stream/debounce.js.map +1 -0
- package/dist-cjs/stream/decoder.js +75 -0
- package/dist-cjs/stream/decoder.js.map +1 -0
- package/dist-cjs/stream/encoder.js +24 -0
- package/dist-cjs/stream/encoder.js.map +1 -0
- package/dist-cjs/stream/events.js +69 -0
- package/dist-cjs/stream/events.js.map +1 -0
- package/dist-cjs/stream/index.js +25 -0
- package/dist-cjs/stream/index.js.map +1 -0
- package/dist-cjs/stream/predictiveHtmlParser.js +256 -0
- package/dist-cjs/stream/predictiveHtmlParser.js.map +1 -0
- package/dist-cjs/stream/sse.js +36 -0
- package/dist-cjs/stream/sse.js.map +1 -0
- package/dist-cjs/types/artifact.js +3 -0
- package/dist-cjs/types/artifact.js.map +1 -0
- package/dist-cjs/types/client.js +3 -0
- package/dist-cjs/types/client.js.map +1 -0
- package/dist-cjs/types/config.js +3 -0
- package/dist-cjs/types/config.js.map +1 -0
- package/dist-cjs/types/errors.js +3 -0
- package/dist-cjs/types/errors.js.map +1 -0
- package/dist-cjs/types/index.js +3 -0
- package/dist-cjs/types/index.js.map +1 -0
- package/dist-cjs/types/server.js +3 -0
- package/dist-cjs/types/server.js.map +1 -0
- package/dist-cjs/types/stream.js +8 -0
- package/dist-cjs/types/stream.js.map +1 -0
- package/dist-cjs/utils/index.js +22 -0
- package/dist-cjs/utils/index.js.map +1 -0
- package/dist-cjs/utils/invariant.js +13 -0
- package/dist-cjs/utils/invariant.js.map +1 -0
- package/dist-cjs/utils/isBrowser.js +6 -0
- package/dist-cjs/utils/isBrowser.js.map +1 -0
- package/dist-cjs/utils/mergeConfig.js +20 -0
- package/dist-cjs/utils/mergeConfig.js.map +1 -0
- package/dist-cjs/utils/noop.js +7 -0
- package/dist-cjs/utils/noop.js.map +1 -0
- package/dist-cjs/utils/safeJsonParse.js +65 -0
- package/dist-cjs/utils/safeJsonParse.js.map +1 -0
- package/package.json +115 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iframeSrcDoc.js","sourceRoot":"","sources":["../../src/iframe/iframeSrcDoc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ARTIFACT_CSS = exports.useArtifactStyles = exports.useIframeAutoSize = exports.resolveSandbox = exports.buildSrcDoc = exports.HtmlArtifactCodeView = exports.HtmlArtifactToolbar = exports.HtmlArtifactModal = exports.HtmlArtifactPreview = exports.HtmlArtifactCard = void 0;
|
|
4
|
+
var HtmlArtifactCard_js_1 = require("./HtmlArtifactCard.js");
|
|
5
|
+
Object.defineProperty(exports, "HtmlArtifactCard", { enumerable: true, get: function () { return HtmlArtifactCard_js_1.HtmlArtifactCard; } });
|
|
6
|
+
var HtmlArtifactPreview_js_1 = require("./HtmlArtifactPreview.js");
|
|
7
|
+
Object.defineProperty(exports, "HtmlArtifactPreview", { enumerable: true, get: function () { return HtmlArtifactPreview_js_1.HtmlArtifactPreview; } });
|
|
8
|
+
var HtmlArtifactModal_js_1 = require("./HtmlArtifactModal.js");
|
|
9
|
+
Object.defineProperty(exports, "HtmlArtifactModal", { enumerable: true, get: function () { return HtmlArtifactModal_js_1.HtmlArtifactModal; } });
|
|
10
|
+
var HtmlArtifactToolbar_js_1 = require("./HtmlArtifactToolbar.js");
|
|
11
|
+
Object.defineProperty(exports, "HtmlArtifactToolbar", { enumerable: true, get: function () { return HtmlArtifactToolbar_js_1.HtmlArtifactToolbar; } });
|
|
12
|
+
var HtmlArtifactCodeView_js_1 = require("./HtmlArtifactCodeView.js");
|
|
13
|
+
Object.defineProperty(exports, "HtmlArtifactCodeView", { enumerable: true, get: function () { return HtmlArtifactCodeView_js_1.HtmlArtifactCodeView; } });
|
|
14
|
+
var iframeSrcDoc_js_1 = require("./iframeSrcDoc.js");
|
|
15
|
+
Object.defineProperty(exports, "buildSrcDoc", { enumerable: true, get: function () { return iframeSrcDoc_js_1.buildSrcDoc; } });
|
|
16
|
+
Object.defineProperty(exports, "resolveSandbox", { enumerable: true, get: function () { return iframeSrcDoc_js_1.resolveSandbox; } });
|
|
17
|
+
var iframeSizing_js_1 = require("./iframeSizing.js");
|
|
18
|
+
Object.defineProperty(exports, "useIframeAutoSize", { enumerable: true, get: function () { return iframeSizing_js_1.useIframeAutoSize; } });
|
|
19
|
+
var styles_js_1 = require("./styles.js");
|
|
20
|
+
Object.defineProperty(exports, "useArtifactStyles", { enumerable: true, get: function () { return styles_js_1.useArtifactStyles; } });
|
|
21
|
+
Object.defineProperty(exports, "ARTIFACT_CSS", { enumerable: true, get: function () { return styles_js_1.ARTIFACT_CSS; } });
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/iframe/index.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAAhD,uHAAA,gBAAgB,OAAA;AACzB,mEAA+D;AAAtD,6HAAA,mBAAmB,OAAA;AAC5B,+DAA2D;AAAlD,yHAAA,iBAAiB,OAAA;AAC1B,mEAA+D;AAAtD,6HAAA,mBAAmB,OAAA;AAC5B,qEAAiE;AAAxD,+HAAA,oBAAoB,OAAA;AAC7B,qDAAgE;AAAvD,8GAAA,WAAW,OAAA;AAAE,iHAAA,cAAc,OAAA;AACpC,qDAAsD;AAA7C,oHAAA,iBAAiB,OAAA;AAC1B,yCAA8D;AAArD,8GAAA,iBAAiB,OAAA;AAAE,yGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.ARTIFACT_CSS = void 0;
|
|
38
|
+
exports.useArtifactStyles = useArtifactStyles;
|
|
39
|
+
const React = __importStar(require("react"));
|
|
40
|
+
const STYLE_ID = "aha-artifact-styles";
|
|
41
|
+
/**
|
|
42
|
+
* Self-contained, premium chrome styles for the artifact card. Injected once
|
|
43
|
+
* into <head> so components can use hover/focus/dark states without depending
|
|
44
|
+
* on the host app's CSS. Uses the CSS `light-dark()` function (the card sets
|
|
45
|
+
* `color-scheme: light dark`) so it adapts to the OS theme automatically.
|
|
46
|
+
*/
|
|
47
|
+
exports.ARTIFACT_CSS = `
|
|
48
|
+
.aha-scope{
|
|
49
|
+
color-scheme: light dark;
|
|
50
|
+
--aha-bg: light-dark(#fbfbfc, #0c0c0f);
|
|
51
|
+
--aha-elev: light-dark(#ffffff, #161619);
|
|
52
|
+
--aha-fg: light-dark(#15161a, #f4f4f6);
|
|
53
|
+
--aha-muted: light-dark(#6b7280, #9aa0ab);
|
|
54
|
+
--aha-faint: light-dark(#9ca3af, #6b7280);
|
|
55
|
+
--aha-hairline: light-dark(rgba(0,0,0,.07), rgba(255,255,255,.08));
|
|
56
|
+
--aha-ring: light-dark(oklch(0 0 0 / .08), oklch(1 0 0 / .11));
|
|
57
|
+
--aha-hover: light-dark(rgba(0,0,0,.05), rgba(255,255,255,.07));
|
|
58
|
+
--aha-accent: light-dark(#3b3bff, #8aa0ff);
|
|
59
|
+
font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
|
|
60
|
+
-webkit-font-smoothing: antialiased;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* The premium ring + border + layered shadow treatment (no flat white box). */
|
|
64
|
+
.aha-card{
|
|
65
|
+
position: relative;
|
|
66
|
+
border-radius: var(--aha-radius, 22px);
|
|
67
|
+
background: var(--aha-bg);
|
|
68
|
+
color: var(--aha-fg);
|
|
69
|
+
overflow: hidden;
|
|
70
|
+
box-shadow:
|
|
71
|
+
0 0 0 1px var(--aha-ring),
|
|
72
|
+
light-dark(oklch(0 0 0 / .04), oklch(0 0 0 / .20)) 0px 2px 2px -1px,
|
|
73
|
+
light-dark(oklch(0 0 0 / .035), oklch(0 0 0 / .22)) 0px 10px 20px -6px,
|
|
74
|
+
light-dark(oklch(0 0 0 / .05), oklch(0 0 0 / .35)) 0px 30px 60px -18px;
|
|
75
|
+
transition: box-shadow .25s ease, transform .25s ease;
|
|
76
|
+
}
|
|
77
|
+
.aha-card[data-variant="glass"]{
|
|
78
|
+
background: light-dark(rgba(255,255,255,.72), rgba(22,22,26,.66));
|
|
79
|
+
backdrop-filter: blur(20px) saturate(140%);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.aha-toolbar{
|
|
83
|
+
display:flex; align-items:center; gap:10px;
|
|
84
|
+
padding: 9px 10px 9px 14px;
|
|
85
|
+
background: light-dark(rgba(252,252,253,.82), rgba(20,20,24,.7));
|
|
86
|
+
backdrop-filter: blur(12px);
|
|
87
|
+
border-bottom: 1px solid var(--aha-hairline);
|
|
88
|
+
position: relative; z-index: 2;
|
|
89
|
+
}
|
|
90
|
+
.aha-dots{ display:inline-flex; gap:6px; margin-right:4px; }
|
|
91
|
+
.aha-dot{ width:11px; height:11px; border-radius:50%; }
|
|
92
|
+
.aha-title{
|
|
93
|
+
font-size:13px; font-weight:600; letter-spacing:-0.01em;
|
|
94
|
+
color: var(--aha-fg);
|
|
95
|
+
white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
|
|
96
|
+
min-width:0; flex: 0 1 auto;
|
|
97
|
+
}
|
|
98
|
+
.aha-stream-dot{
|
|
99
|
+
width:7px;height:7px;border-radius:50%;flex:none;
|
|
100
|
+
background:#22c55e; box-shadow:0 0 0 0 rgba(34,197,94,.55);
|
|
101
|
+
animation: aha-pulse 1.5s infinite;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.aha-seg{
|
|
105
|
+
display:inline-flex; padding:3px; gap:2px; border-radius:11px;
|
|
106
|
+
background: light-dark(rgba(0,0,0,.05), rgba(255,255,255,.06));
|
|
107
|
+
box-shadow: inset 0 0 0 1px var(--aha-ring);
|
|
108
|
+
}
|
|
109
|
+
.aha-seg button{
|
|
110
|
+
appearance:none; border:none; cursor:pointer;
|
|
111
|
+
font-size:12px; font-weight:600; letter-spacing:-0.01em;
|
|
112
|
+
padding:5px 13px; border-radius:8px; color: var(--aha-muted);
|
|
113
|
+
background:transparent; transition: all .15s ease;
|
|
114
|
+
}
|
|
115
|
+
.aha-seg button[data-active="true"]{
|
|
116
|
+
color: var(--aha-fg);
|
|
117
|
+
background: var(--aha-elev);
|
|
118
|
+
box-shadow: 0 1px 2px light-dark(rgba(0,0,0,.10), rgba(0,0,0,.4)), 0 0 0 .5px var(--aha-ring);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.aha-iconbtn{
|
|
122
|
+
display:inline-flex; align-items:center; justify-content:center;
|
|
123
|
+
width:32px; height:32px; border-radius:999px; flex:none;
|
|
124
|
+
border:none; cursor:pointer; padding:0;
|
|
125
|
+
color: var(--aha-muted); background:transparent;
|
|
126
|
+
transition: background .15s ease, color .15s ease, transform .1s ease;
|
|
127
|
+
}
|
|
128
|
+
.aha-iconbtn:hover{ background: var(--aha-hover); color: var(--aha-fg); }
|
|
129
|
+
.aha-iconbtn:active{ transform: scale(.94); }
|
|
130
|
+
|
|
131
|
+
/* Seamless ("camouflage") presentation: chromeless, transparent, inline. The
|
|
132
|
+
action row stays invisible until hover so the surface reads as native UI. */
|
|
133
|
+
.aha-seamless{ position:relative; }
|
|
134
|
+
.aha-seamless-actions{
|
|
135
|
+
position:absolute; top:8px; right:8px; z-index:4;
|
|
136
|
+
display:flex; gap:4px; padding:3px; border-radius:999px;
|
|
137
|
+
background: color-mix(in srgb, var(--aha-bg) 70%, transparent);
|
|
138
|
+
border:1px solid var(--aha-border);
|
|
139
|
+
backdrop-filter: blur(8px);
|
|
140
|
+
opacity:0; transform: translateY(-2px);
|
|
141
|
+
transition: opacity .18s ease, transform .18s ease;
|
|
142
|
+
}
|
|
143
|
+
.aha-seamless:hover .aha-seamless-actions,
|
|
144
|
+
.aha-seamless:focus-within .aha-seamless-actions{ opacity:1; transform: translateY(0); }
|
|
145
|
+
|
|
146
|
+
/* Streaming progress shimmer along the top edge of the preview. */
|
|
147
|
+
.aha-progress{
|
|
148
|
+
position:absolute; top:0; left:0; right:0; height:2px; z-index:3;
|
|
149
|
+
background: linear-gradient(90deg, transparent, var(--aha-accent), transparent);
|
|
150
|
+
background-size: 40% 100%;
|
|
151
|
+
animation: aha-progress 1.1s linear infinite;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.aha-frame{ display:block; width:100%; border:none; background:transparent; }
|
|
155
|
+
.aha-frame[data-fade="in"]{ animation: aha-fade .45s ease both; }
|
|
156
|
+
|
|
157
|
+
.aha-skel{
|
|
158
|
+
display:grid; gap:14px; padding:26px;
|
|
159
|
+
background: light-dark(linear-gradient(180deg,#fcfcfd,#f4f5f7), linear-gradient(180deg,#121215,#0d0d10));
|
|
160
|
+
}
|
|
161
|
+
.aha-skel .row{
|
|
162
|
+
height:16px; border-radius:8px;
|
|
163
|
+
background: light-dark(
|
|
164
|
+
linear-gradient(90deg, rgba(0,0,0,.05) 25%, rgba(0,0,0,.10) 37%, rgba(0,0,0,.05) 63%),
|
|
165
|
+
linear-gradient(90deg, rgba(255,255,255,.05) 25%, rgba(255,255,255,.10) 37%, rgba(255,255,255,.05) 63%));
|
|
166
|
+
background-size: 400% 100%;
|
|
167
|
+
animation: aha-shimmer 1.4s ease infinite;
|
|
168
|
+
opacity:0; animation-fill-mode: both;
|
|
169
|
+
}
|
|
170
|
+
/* Stagger the skeleton in so it reads as a layout being built up. */
|
|
171
|
+
.aha-skel .row:nth-child(1){ width:42%; animation-delay:0s,.0s; }
|
|
172
|
+
.aha-skel .row:nth-child(2){ width:88%; }
|
|
173
|
+
.aha-skel .row:nth-child(3){ width:74%; }
|
|
174
|
+
.aha-skel .row:nth-child(4){ height:130px; }
|
|
175
|
+
.aha-skel .row:nth-child(5){ width:60%; }
|
|
176
|
+
.aha-skel .row:nth-child(6){ width:80%; }
|
|
177
|
+
.aha-skel .row{ animation: aha-shimmer 1.4s ease infinite, aha-rise .5s ease both; }
|
|
178
|
+
.aha-skel .row:nth-child(2){ animation-delay: 0s, .07s; }
|
|
179
|
+
.aha-skel .row:nth-child(3){ animation-delay: 0s, .14s; }
|
|
180
|
+
.aha-skel .row:nth-child(4){ animation-delay: 0s, .21s; }
|
|
181
|
+
.aha-skel .row:nth-child(5){ animation-delay: 0s, .28s; }
|
|
182
|
+
.aha-skel .row:nth-child(6){ animation-delay: 0s, .35s; }
|
|
183
|
+
|
|
184
|
+
.aha-overlay{
|
|
185
|
+
display:flex; align-items:center; justify-content:center; text-align:center;
|
|
186
|
+
padding:24px; color: var(--aha-muted); font-size:13px;
|
|
187
|
+
background: light-dark(rgba(255,255,255,.82), rgba(12,12,15,.82));
|
|
188
|
+
backdrop-filter: blur(3px);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
@keyframes aha-pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 6px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
|
|
192
|
+
@keyframes aha-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
|
|
193
|
+
@keyframes aha-progress{0%{background-position:120% 0}100%{background-position:-20% 0}}
|
|
194
|
+
@keyframes aha-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
|
|
195
|
+
@keyframes aha-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
|
|
196
|
+
@media (prefers-reduced-motion: reduce){
|
|
197
|
+
.aha-frame[data-fade="in"], .aha-skel .row, .aha-progress, .aha-stream-dot{ animation: none !important; }
|
|
198
|
+
.aha-skel .row{ opacity:1; }
|
|
199
|
+
}
|
|
200
|
+
`;
|
|
201
|
+
let injected = false;
|
|
202
|
+
/** Inject the artifact stylesheet once per document. */
|
|
203
|
+
function useArtifactStyles() {
|
|
204
|
+
React.useEffect(() => {
|
|
205
|
+
if (injected || typeof document === "undefined")
|
|
206
|
+
return;
|
|
207
|
+
if (document.getElementById(STYLE_ID)) {
|
|
208
|
+
injected = true;
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
const el = document.createElement("style");
|
|
212
|
+
el.id = STYLE_ID;
|
|
213
|
+
el.textContent = exports.ARTIFACT_CSS;
|
|
214
|
+
document.head.appendChild(el);
|
|
215
|
+
injected = true;
|
|
216
|
+
}, []);
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/iframe/styles.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0Kb,8CAaC;AArLD,6CAA+B;AAE/B,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAEvC;;;;;GAKG;AACU,QAAA,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyJ3B,CAAC;AAEF,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,wDAAwD;AACxD,SAAgB,iBAAiB;IAC/B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QACxD,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC;QACjB,EAAE,CAAC,WAAW,GAAG,oBAAY,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9B,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.SSE_HEADERS = exports.createArtifactResponse = exports.createArtifactStream = exports.ArtifactLifecycle = exports.MessageLifecycle = exports.createArtifactId = exports.createMessageId = exports.defaultCircuitStore = exports.MemoryCircuitStore = exports.CircuitBreaker = exports.buildClassifierUserPrompt = exports.CLASSIFIER_SYSTEM_PROMPT = exports.classifyByRules = void 0;
|
|
18
|
+
/**
|
|
19
|
+
* Root entry — isomorphic exports only (no React, no AI SDK import), safe to
|
|
20
|
+
* pull into any environment. Use the `./server` and `./client` subpaths for
|
|
21
|
+
* the AI-SDK and React surfaces respectively.
|
|
22
|
+
*/
|
|
23
|
+
__exportStar(require("./types/index.js"), exports);
|
|
24
|
+
__exportStar(require("./stream/index.js"), exports);
|
|
25
|
+
__exportStar(require("./sanitizer/index.js"), exports);
|
|
26
|
+
__exportStar(require("./artifacts/index.js"), exports);
|
|
27
|
+
__exportStar(require("./constants/index.js"), exports);
|
|
28
|
+
__exportStar(require("./utils/index.js"), exports);
|
|
29
|
+
__exportStar(require("./errors/index.js"), exports);
|
|
30
|
+
__exportStar(require("./prompts/index.js"), exports);
|
|
31
|
+
// Heuristic classifier + prompt are dependency-free; the model-based
|
|
32
|
+
// `classifyMode` lives behind the `./server` entry (it imports the AI SDK).
|
|
33
|
+
var rules_js_1 = require("./classifier/rules.js");
|
|
34
|
+
Object.defineProperty(exports, "classifyByRules", { enumerable: true, get: function () { return rules_js_1.classifyByRules; } });
|
|
35
|
+
var classifierPrompt_js_1 = require("./classifier/classifierPrompt.js");
|
|
36
|
+
Object.defineProperty(exports, "CLASSIFIER_SYSTEM_PROMPT", { enumerable: true, get: function () { return classifierPrompt_js_1.CLASSIFIER_SYSTEM_PROMPT; } });
|
|
37
|
+
Object.defineProperty(exports, "buildClassifierUserPrompt", { enumerable: true, get: function () { return classifierPrompt_js_1.buildClassifierUserPrompt; } });
|
|
38
|
+
// Circuit breaker is isomorphic.
|
|
39
|
+
var index_js_1 = require("./circuit-breaker/index.js");
|
|
40
|
+
Object.defineProperty(exports, "CircuitBreaker", { enumerable: true, get: function () { return index_js_1.CircuitBreaker; } });
|
|
41
|
+
Object.defineProperty(exports, "MemoryCircuitStore", { enumerable: true, get: function () { return index_js_1.MemoryCircuitStore; } });
|
|
42
|
+
Object.defineProperty(exports, "defaultCircuitStore", { enumerable: true, get: function () { return index_js_1.defaultCircuitStore; } });
|
|
43
|
+
// Core stream/response helpers (framework-agnostic).
|
|
44
|
+
var index_js_2 = require("./core/index.js");
|
|
45
|
+
Object.defineProperty(exports, "createMessageId", { enumerable: true, get: function () { return index_js_2.createMessageId; } });
|
|
46
|
+
Object.defineProperty(exports, "createArtifactId", { enumerable: true, get: function () { return index_js_2.createArtifactId; } });
|
|
47
|
+
Object.defineProperty(exports, "MessageLifecycle", { enumerable: true, get: function () { return index_js_2.MessageLifecycle; } });
|
|
48
|
+
Object.defineProperty(exports, "ArtifactLifecycle", { enumerable: true, get: function () { return index_js_2.ArtifactLifecycle; } });
|
|
49
|
+
Object.defineProperty(exports, "createArtifactStream", { enumerable: true, get: function () { return index_js_2.createArtifactStream; } });
|
|
50
|
+
Object.defineProperty(exports, "createArtifactResponse", { enumerable: true, get: function () { return index_js_2.createArtifactResponse; } });
|
|
51
|
+
Object.defineProperty(exports, "SSE_HEADERS", { enumerable: true, get: function () { return index_js_2.SSE_HEADERS; } });
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,mDAAiC;AACjC,oDAAkC;AAClC,uDAAqC;AACrC,uDAAqC;AACrC,uDAAqC;AACrC,mDAAiC;AACjC,oDAAkC;AAClC,qDAAmC;AAEnC,qEAAqE;AACrE,4EAA4E;AAC5E,kDAAiF;AAAxE,2GAAA,eAAe,OAAA;AACxB,wEAG0C;AAFxC,+HAAA,wBAAwB,OAAA;AACxB,gIAAA,yBAAyB,OAAA;AAG3B,iCAAiC;AACjC,uDAIoC;AAHlC,0GAAA,cAAc,OAAA;AACd,8GAAA,kBAAkB,OAAA;AAClB,+GAAA,mBAAmB,OAAA;AAGrB,qDAAqD;AACrD,4CAUyB;AATvB,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAChB,4GAAA,gBAAgB,OAAA;AAChB,6GAAA,iBAAiB,OAAA;AACjB,gHAAA,oBAAoB,OAAA;AACpB,kHAAA,sBAAsB,OAAA;AACtB,uGAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HTML_ARTIFACT_SYSTEM_PROMPT = void 0;
|
|
4
|
+
exports.buildHtmlArtifactPrompt = buildHtmlArtifactPrompt;
|
|
5
|
+
const systemPrompt_js_1 = require("./systemPrompt.js");
|
|
6
|
+
const defaults_js_1 = require("../constants/defaults.js");
|
|
7
|
+
function buildOutputFormat(presentation) {
|
|
8
|
+
if (presentation === "seamless") {
|
|
9
|
+
return `You are answering in HTML_ARTIFACT mode. Output EXACTLY two sections and nothing else:
|
|
10
|
+
|
|
11
|
+
<assistant_message>
|
|
12
|
+
A short (1-2 sentence) chat message. Mention the aesthetic direction you chose, naturally.
|
|
13
|
+
</assistant_message>
|
|
14
|
+
|
|
15
|
+
<html_artifact title="A concise human-readable title">
|
|
16
|
+
<!DOCTYPE html>
|
|
17
|
+
<html lang="en" style="background:transparent;margin:0;padding:0;">
|
|
18
|
+
<head>
|
|
19
|
+
<meta charset="UTF-8" />
|
|
20
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
21
|
+
<title>...</title>
|
|
22
|
+
</head>
|
|
23
|
+
<body style="background:transparent;margin:0;padding:0;">
|
|
24
|
+
<!-- content with inline style attributes on elements; do not output any <style> tag -->
|
|
25
|
+
</body>
|
|
26
|
+
</html>
|
|
27
|
+
</html_artifact>`;
|
|
28
|
+
}
|
|
29
|
+
return `You are answering in HTML_ARTIFACT mode. Output EXACTLY two sections and nothing else:
|
|
30
|
+
|
|
31
|
+
<assistant_message>
|
|
32
|
+
A short (1-2 sentence) chat message. Mention the aesthetic direction you chose, naturally.
|
|
33
|
+
</assistant_message>
|
|
34
|
+
|
|
35
|
+
<html_artifact title="A concise human-readable title">
|
|
36
|
+
<!DOCTYPE html>
|
|
37
|
+
<html lang="en" style="margin:0;padding:0">
|
|
38
|
+
<head>
|
|
39
|
+
<meta charset="UTF-8" />
|
|
40
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
|
41
|
+
<title>...</title>
|
|
42
|
+
</head>
|
|
43
|
+
<body style="margin:0; /* declare your OWN design tokens + page background inline here (e.g. --bg/--fg/--accent), then set background + color from them. Pick the palette that best fits — light, dark, or vivid; never plain white-on-white */">
|
|
44
|
+
<!-- content with ALL styling inline via style="" on each element; no <style> tag. Make it fully responsive with intrinsic CSS (see responsive rules). -->
|
|
45
|
+
</body>
|
|
46
|
+
</html>
|
|
47
|
+
</html_artifact>`;
|
|
48
|
+
}
|
|
49
|
+
const HARD_RULES = `HARD RULES — the artifact renders in a sandboxed iframe with NO JavaScript:
|
|
50
|
+
- Output a COMPLETE, valid HTML document (<!DOCTYPE html>, <html>, <head>, <body>, meta charset, meta viewport).
|
|
51
|
+
- You are already in HTML_ARTIFACT mode. ALWAYS emit the <html_artifact> block. Never answer with explanation-only prose, even if the user says "check", "test", "show", "demo", or repeats the request messily.
|
|
52
|
+
- 100% static HTML + CSS. NO JavaScript, NO <script>, NO event handlers (onclick/onload/...), NO javascript: URLs, NO external JS.
|
|
53
|
+
- NO markdown code fences. NO prose outside <assistant_message>. NO placeholders ("data will load here") — PRECOMPUTE and write every value directly into the HTML.
|
|
54
|
+
- Reset body margins (body{margin:0}). Avoid fixed body heights and fixed/overlay positioning that breaks inside an iframe. Content flows top-to-bottom and is fully responsive.
|
|
55
|
+
- Semantic HTML and accessible labels (label/for, alt text, aria where helpful). Maintain strong color contrast.`;
|
|
56
|
+
function buildInlineOnlyRule() {
|
|
57
|
+
return `INLINE CSS ONLY — THIS IS A HARD CONSTRAINT FOR EVERY ARTIFACT (read carefully):
|
|
58
|
+
Any <style> tag you write is DELETED before the artifact renders. CSS placed in a <style> tag, a :root block, or any stylesheet rule WILL NOT APPLY and your design will appear broken/unstyled. The ONLY styling that survives is a style="" attribute on the element it affects. Keep markup bare-minimum.
|
|
59
|
+
|
|
60
|
+
ALLOWED:
|
|
61
|
+
- A style="" attribute on every element you want to style.
|
|
62
|
+
- CSS custom properties declared inline on <html style="--bg:...;--fg:...;..."> and referenced from descendants via var(), e.g. style="color:var(--fg)".
|
|
63
|
+
- Inline layout — this is how you make it responsive WITHOUT media queries:
|
|
64
|
+
- Fluid grid that reflows by itself: style="display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))"
|
|
65
|
+
- Wrapping rows / navs: style="display:flex;flex-wrap:wrap;gap:12px;align-items:center"
|
|
66
|
+
- Fluid type/space with clamp(): style="font-size:clamp(1.5rem,1rem+3vw,3rem)"
|
|
67
|
+
- Wide tables/timelines: wrap in style="overflow-x:auto" so they scroll instead of overflowing the page.
|
|
68
|
+
- SVG via presentation attributes (fill, stroke, …) and inline style="" on SVG nodes.
|
|
69
|
+
- <link> to Google Fonts in <head> (font loading only); apply font-family inline.
|
|
70
|
+
|
|
71
|
+
FORBIDDEN (none work without a stylesheet — never emit them):
|
|
72
|
+
- <style> tags anywhere. :root{} blocks. Class/ID/element/attribute CSS selectors.
|
|
73
|
+
- @media, @keyframes, @font-face, @supports, @container.
|
|
74
|
+
- Pseudo-classes/elements: :hover, :focus, :active, ::before, ::after, ::marker.
|
|
75
|
+
- "Utility classes" (Tailwind-style) — class="" does NOTHING here; style inline. Omit class attributes.
|
|
76
|
+
- A click-toggle "burger" menu (needs a stylesheet/JS). For navs, use a single wrapping/scrolling row instead (flex-wrap, or overflow-x:auto).
|
|
77
|
+
|
|
78
|
+
CONCRETE RESPONSIVE PATTERN (inline auto-fit grid — reflows from 3-up to 1-up by itself):
|
|
79
|
+
<div style="display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))">
|
|
80
|
+
<div style="padding:18px 20px;border-radius:16px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.10)">
|
|
81
|
+
<div style="font-size:13px;letter-spacing:.04em;color:var(--muted,rgba(255,255,255,.55))">Revenue</div>
|
|
82
|
+
<div style="font-size:clamp(24px,2vw+16px,34px);font-weight:700;color:var(--fg,#f4f4f8)">$48.9K</div>
|
|
83
|
+
<div style="font-size:13px;color:#34d399">▲ 4.2%</div>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
Every property is on the element. Do this for the entire artifact.`;
|
|
87
|
+
}
|
|
88
|
+
const DESIGN_DIRECTION = `DESIGN DIRECTION — make it genuinely beautiful, not generic. Avoid "AI slop" at all costs.
|
|
89
|
+
|
|
90
|
+
1. COMMIT TO A BOLD, COHESIVE AESTHETIC. Pick ONE clear direction that fits the content and execute it precisely. Examples to draw from (do not always pick the same one — vary across generations): editorial/magazine, refined luxury, brutalist/raw, retro-futuristic, organic/natural, soft pastel, industrial/utilitarian, art-deco/geometric, dark premium, warm minimal. Intentionality beats intensity.
|
|
91
|
+
|
|
92
|
+
2. DESIGN TOKENS FIRST. Declare your token system INLINE on <html style="--bg:...;--fg:...;--accent:...;--space:...;--radius:..."> (never a :root block or <style> tag) and reference everywhere via var(). A dominant color + 1-2 sharp accents, a spacing scale, radii, shadows. Pick light OR dark deliberately; do not default to white.
|
|
93
|
+
|
|
94
|
+
3. ANTI-SLOP — NEVER do these:
|
|
95
|
+
- NO purple/violet gradients on white (the #1 AI cliché).
|
|
96
|
+
- NO uniform rounded corners on everything; vary radii with intent.
|
|
97
|
+
- NO everything-centered layouts. Use real composition.
|
|
98
|
+
- NO generic system/Inter/Arial/Roboto-only typography.
|
|
99
|
+
|
|
100
|
+
4. SPATIAL COMPOSITION. Use asymmetry, overlap, a clear visual hierarchy, deliberate negative space OR controlled density. Break the grid intentionally. Strong type scale: large confident headings, comfortable body, small-caps/labels where fitting.
|
|
101
|
+
|
|
102
|
+
5. DEPTH & ATMOSPHERE. Don't settle for flat solid fills. Add tasteful depth: layered subtle gradients or gradient meshes (radial-gradient), soft grain/noise via SVG data-URI background, fine 1px hairlines, dramatic-but-tasteful shadows, glassmorphism only where it earns it. Keep it refined.
|
|
103
|
+
|
|
104
|
+
6. MOTION. CSS animation (@keyframes) and hover need a stylesheet, which isn't available (inline-only) — DO NOT rely on them. Win with strong STATIC craft: confident type scale, layered depth, gradients, shadows, precise spacing.
|
|
105
|
+
|
|
106
|
+
7. REAL CONTENT. Use realistic, specific, precomputed data (names, numbers, dates, copy). Never lorem ipsum, never "Item 1 / Item 2".
|
|
107
|
+
|
|
108
|
+
DATA VISUALS (no JS, no chart libraries): use SVG (paths, bars, polylines, arcs), CSS bars, conic-gradient donuts, linear-gradient progress, semantic tables, stat cards, timelines, funnels, comparison cards — all with precomputed values.
|
|
109
|
+
ACCORDIONS: native <details><summary>…</summary>…</details>, styled with CSS only.`;
|
|
110
|
+
function buildFontRule(allowExternalFonts) {
|
|
111
|
+
if (allowExternalFonts) {
|
|
112
|
+
return `TYPOGRAPHY — use DISTINCTIVE fonts (this is what separates premium from slop):
|
|
113
|
+
- Load fonts from Google Fonts only, via <link> in <head> (e.g. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=...&display=swap" rel="stylesheet">). Other external resources are blocked.
|
|
114
|
+
- Pair a CHARACTERFUL display/heading font with a clean, readable body font. Forbidden as primary fonts: Inter, Roboto, Arial, plain system stacks.
|
|
115
|
+
- Strong, varied pairings to consider (pick one that matches the aesthetic; vary across generations): "Fraunces" + "Inter Tight"; "Clash Display"-style → use "Bricolage Grotesque" + "Newsreader"; "Space Grotesk" + "Spline Sans" (use sparingly); "Instrument Serif" + "Geist"; "Libre Caslon Display" + "Public Sans"; "Sora" + "IBM Plex Sans"; "DM Serif Display" + "DM Sans"; "Syne" + "Manrope".
|
|
116
|
+
- LIMIT to AT MOST 3 font styles total per artifact (e.g. one display + one body, each in up to ~2 weights). Pick ONE pairing and commit; do not scatter many families/weights. Apply font-family inline on elements.
|
|
117
|
+
- Always include a robust fallback in font-family (serif/sans-serif). Set sensible font sizes with clamp() for fluid scaling.`;
|
|
118
|
+
}
|
|
119
|
+
return `TYPOGRAPHY: external fonts are disabled — build character through scale, weight, letter-spacing, and small-caps using this system stack only (at most 3 distinct text styles total):\nfont-family: ${defaults_js_1.SYSTEM_FONT_STACK};`;
|
|
120
|
+
}
|
|
121
|
+
function buildFormRule(allowForms) {
|
|
122
|
+
if (allowForms) {
|
|
123
|
+
return `FORMS: native HTML controls only (form, label, input, textarea, select, button) with native validation (required, pattern, min, max, type=email/tel/...). Style inputs to match the aesthetic — custom focus states, generous hit areas. No JavaScript validation.`;
|
|
124
|
+
}
|
|
125
|
+
return `FORMS: avoid interactive controls; present information as polished static content.`;
|
|
126
|
+
}
|
|
127
|
+
function buildStyleProfileRule(profile) {
|
|
128
|
+
if (!profile) {
|
|
129
|
+
return `STYLE PROFILE: none specified — YOU choose a bold, context-appropriate aesthetic and a distinctive color + type system. Do not play it safe and do not default to a light, centered, purple-on-white layout.`;
|
|
130
|
+
}
|
|
131
|
+
const parts = [];
|
|
132
|
+
if (profile.aesthetic)
|
|
133
|
+
parts.push(`aesthetic: ${profile.aesthetic}`);
|
|
134
|
+
if (profile.mood)
|
|
135
|
+
parts.push(`mood: ${profile.mood}`);
|
|
136
|
+
if (profile.density)
|
|
137
|
+
parts.push(`density: ${profile.density}`);
|
|
138
|
+
if (profile.radius)
|
|
139
|
+
parts.push(`base radius: ${profile.radius}`);
|
|
140
|
+
if (profile.font)
|
|
141
|
+
parts.push(`type feel: ${profile.font}`);
|
|
142
|
+
if (profile.colorScheme)
|
|
143
|
+
parts.push(`color scheme: ${profile.colorScheme}`);
|
|
144
|
+
if (profile.visualComplexity)
|
|
145
|
+
parts.push(`visual complexity: ${profile.visualComplexity}`);
|
|
146
|
+
return `STYLE PROFILE — honor these as the creative brief, then push further: ${parts.join(", ")}. Translate them into a concrete palette, type pairing, spacing, and motion. Make it feel intentionally designed for THIS content.`;
|
|
147
|
+
}
|
|
148
|
+
function buildThemeRule(theme, presentation) {
|
|
149
|
+
if (!theme)
|
|
150
|
+
return "";
|
|
151
|
+
const tokens = [];
|
|
152
|
+
if (theme.colorScheme)
|
|
153
|
+
tokens.push(`color scheme: ${theme.colorScheme}`);
|
|
154
|
+
if (theme.background)
|
|
155
|
+
tokens.push(`page background: ${theme.background}`);
|
|
156
|
+
if (theme.foreground)
|
|
157
|
+
tokens.push(`text/foreground: ${theme.foreground}`);
|
|
158
|
+
if (theme.primary)
|
|
159
|
+
tokens.push(`primary/brand: ${theme.primary}`);
|
|
160
|
+
if (theme.accent)
|
|
161
|
+
tokens.push(`accent: ${theme.accent}`);
|
|
162
|
+
if (theme.muted)
|
|
163
|
+
tokens.push(`muted text: ${theme.muted}`);
|
|
164
|
+
if (theme.border)
|
|
165
|
+
tokens.push(`borders/hairlines: ${theme.border}`);
|
|
166
|
+
if (theme.surface)
|
|
167
|
+
tokens.push(`surfaces/cards: ${theme.surface}`);
|
|
168
|
+
if (theme.radius)
|
|
169
|
+
tokens.push(`base radius: ${theme.radius}`);
|
|
170
|
+
if (theme.fontFamily)
|
|
171
|
+
tokens.push(`font family: ${theme.fontFamily}`);
|
|
172
|
+
if (presentation === "seamless") {
|
|
173
|
+
return `HOST THEME — this artifact is embedded INSIDE a host application, not shown standalone. Match the host's visual system precisely so it looks native and consistent. Put these host values directly into the <html style="..."> custom properties and stay strictly within this palette — do NOT introduce clashing or unrelated colors:
|
|
174
|
+
- ${tokens.join("\n- ")}${theme.notes ? `\n- brand notes: ${theme.notes}` : ""}
|
|
175
|
+
Use these values through inline style attributes only, e.g. style="color:var(--foreground);border-color:var(--border);background:rgba(255,255,255,0.045)". Do not create a :root block or <style> tag.`;
|
|
176
|
+
}
|
|
177
|
+
return `HOST THEME — this artifact is embedded INSIDE a host application, not shown standalone. Match the host's visual system precisely so it looks native and consistent. Build your :root tokens from these exact values and stay strictly within this palette — do NOT introduce clashing or unrelated colors:
|
|
178
|
+
- ${tokens.join("\n- ")}${theme.notes ? `\n- brand notes: ${theme.notes}` : ""}
|
|
179
|
+
These host values are also available inside the iframe as CSS variables: --background, --foreground, --primary, --accent, --muted, --border, --surface, --radius, --font. Prefer referencing them (e.g. color: var(--foreground)) so the artifact tracks the host theme. Apply your design craft WITHIN these constraints — cohesive, on-brand, never off-palette.`;
|
|
180
|
+
}
|
|
181
|
+
function buildPresentationRule(presentation) {
|
|
182
|
+
if (presentation !== "seamless")
|
|
183
|
+
return "";
|
|
184
|
+
return `SEAMLESS / EMBEDDED RENDERING (critical) — this artifact is dropped directly into the page flow as if it were native chat content:
|
|
185
|
+
- If the user asks to test/check/show "camouflage", "transparent background", "generative UI", or "all combinations", create a rich visual showcase of multiple UI combinations inside the transparent shell. Do not explain the property; demonstrate it visually.
|
|
186
|
+
- TRANSPARENT background everywhere at the top level: html{background:transparent} and body{background:transparent;margin:0}. NEVER paint a page/background color, white sheet, or gradient on html or body.
|
|
187
|
+
- For camouflage/seamless requests, put ALL styling directly on elements with inline style="" attributes. Do not output a <style> tag.
|
|
188
|
+
- Do NOT wrap the whole artifact in an outer card/sheet/panel/frame/border/box-shadow/"window". The single outermost element must have NO background of its own — the host surface shows through. (Inner cards/sections for actual content are fine and encouraged.)
|
|
189
|
+
- This is a DARK host UI. Use the host theme colors above: light text on the transparent dark surface. NEVER use a light/white background or dark-text-on-white — that would look like a pasted white box. If you need contrast, use subtle translucent surfaces (e.g. rgba(255,255,255,0.05)), not opaque white.
|
|
190
|
+
- Keep it compact and content-sized: no min-height:100vh, no full-viewport hero. Occupy only the height the content needs and flow inline.`;
|
|
191
|
+
}
|
|
192
|
+
function buildArtifactIdentityRule(presentation) {
|
|
193
|
+
if (presentation === "seamless") {
|
|
194
|
+
return `CAMOUFLAGE QUALITY BAR:
|
|
195
|
+
- The outer document and first wrapper must be transparent, but the artifact must still feel designed. Put the visual identity INSIDE the transparent shell: translucent panels, CSS/SVG charts, accent gradients, badges, cards, timelines, and dense real content.
|
|
196
|
+
- The artifact is its own custom object, not a copy of the host website. Host theme values are guardrails for contrast and embedding only; choose a distinct dark, premium artifact palette and composition when the request asks for a custom UI/artifact.
|
|
197
|
+
- Never use an opaque full-page white/light background. Never rely on the host page as the only design. The result should read as a polished artifact embedded in the chat, not a pasted webpage screenshot.`;
|
|
198
|
+
}
|
|
199
|
+
return `ARTIFACT QUALITY BAR: when rendering a standalone artifact, give it its own complete visual world: deliberate page background, palette, typography, composition, and data. It should not merely clone the host website theme unless explicitly requested.`;
|
|
200
|
+
}
|
|
201
|
+
const IMAGES_RULE = `IMAGES — when the design needs a photo/illustration (hero, avatar, card media, gallery, background), use Picsum random placeholders (the ONLY allowed external image host):
|
|
202
|
+
- URL: https://picsum.photos/{width}/{height} — e.g. <img src="https://picsum.photos/1920/1080" …>.
|
|
203
|
+
- For DIFFERENT images across multiple slots, add a unique seed: https://picsum.photos/seed/{word}/{width}/{height} (same seed = same image, so vary the word per slot, e.g. /seed/nova/800/600, /seed/atlas/800/600). For avatars use a square like /seed/amy/96/96.
|
|
204
|
+
- Request a size close to the rendered size (don't fetch 1920×1080 for a thumbnail) so it streams fast.
|
|
205
|
+
- Always responsive + shift-free: style="display:block;width:100%;height:auto;object-fit:cover" and set aspect-ratio (e.g. aspect-ratio:16/9 or 1/1). Give every image meaningful alt text.
|
|
206
|
+
- Do NOT hotlink any other image host; only picsum.photos.`;
|
|
207
|
+
const STREAMING_RULE = `STREAM-FRIENDLY OUTPUT (so the UI paints instantly and never blocks) — the artifact renders progressively as you stream it:
|
|
208
|
+
- Keep <head> TINY: only <meta> tags and (optionally) a single Google Fonts <link>. Put NOTHING in <head> that must finish before content shows — no big CSS block, no token sheet. A large head buffers the whole document before anything paints.
|
|
209
|
+
- ALL styling is inline on body elements, so each element paints the moment its tokens arrive. This is the main reason styling is inline, not just a constraint.
|
|
210
|
+
- Write the body TOP-TO-BOTTOM in visual order, most important content first (header → key content → details), so the very first streamed tokens already render something meaningful.
|
|
211
|
+
- Declare shared tokens once on <html style="--…"> (it streams first, in one short tag), then reference via var() inline below.`;
|
|
212
|
+
const RESPONSIVE_RULE = `FORCE RESPONSIVE — the artifact MUST look perfect at any width (the viewer can preview it at phone / tablet / desktop), with NO horizontal page overflow:
|
|
213
|
+
- Fluid & intrinsic (works inline, zero media queries): clamp() for type + spacing; repeat(auto-fit,minmax(min(100%,X),1fr)) for any grid of cards/stats/features; flex-wrap for rows and navs; %/fr/ch for sizing; gap (never margins) for rhythm.
|
|
214
|
+
- NEVER overflow horizontally: no fixed px widths on containers; use width:100%/max-width with min(100%,…). Long words → overflow-wrap:break-word. Wide tables/timelines/charts/carousels → wrap in a box with overflow-x:auto so THAT scrolls, not the page.
|
|
215
|
+
- Media: img/svg/video → max-width:100%; height:auto; display:block. Reserve space with aspect-ratio.
|
|
216
|
+
- Tap targets ≥ 44px. Use 100dvh/100svh (never 100vh) if a full-height region is truly needed; prefer content height.
|
|
217
|
+
- Result: fills its frame on desktop, reflows to one clean column on phones — automatically, no breakpoints, no burger toggle (use a wrapping/scrolling nav instead).`;
|
|
218
|
+
/** Build the HTML-artifact system prompt, tuned by style profile and flags. */
|
|
219
|
+
function buildHtmlArtifactPrompt(options = {}) {
|
|
220
|
+
const { styleProfile, allowExternalFonts = false, allowForms = true, theme, presentation, } = options;
|
|
221
|
+
return [
|
|
222
|
+
systemPrompt_js_1.BASE_SYSTEM_PROMPT,
|
|
223
|
+
"",
|
|
224
|
+
buildOutputFormat(presentation),
|
|
225
|
+
"",
|
|
226
|
+
HARD_RULES,
|
|
227
|
+
"",
|
|
228
|
+
buildInlineOnlyRule(),
|
|
229
|
+
"",
|
|
230
|
+
STREAMING_RULE,
|
|
231
|
+
"",
|
|
232
|
+
RESPONSIVE_RULE,
|
|
233
|
+
"",
|
|
234
|
+
IMAGES_RULE,
|
|
235
|
+
"",
|
|
236
|
+
DESIGN_DIRECTION,
|
|
237
|
+
"",
|
|
238
|
+
buildFontRule(allowExternalFonts),
|
|
239
|
+
buildFormRule(allowForms),
|
|
240
|
+
buildStyleProfileRule(styleProfile),
|
|
241
|
+
buildThemeRule(theme, presentation),
|
|
242
|
+
buildPresentationRule(presentation),
|
|
243
|
+
buildArtifactIdentityRule(presentation),
|
|
244
|
+
"",
|
|
245
|
+
"Think like a senior product designer with a strong point of view. Do not hold back — show what an exceptional, hand-crafted interface looks like — while honoring the host theme and rendering constraints above.",
|
|
246
|
+
]
|
|
247
|
+
.filter(Boolean)
|
|
248
|
+
.join("\n");
|
|
249
|
+
}
|
|
250
|
+
/** Default prompt with no style profile, system fonts, forms allowed. */
|
|
251
|
+
exports.HTML_ARTIFACT_SYSTEM_PROMPT = buildHtmlArtifactPrompt();
|
|
252
|
+
//# sourceMappingURL=htmlArtifactPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"htmlArtifactPrompt.js","sourceRoot":"","sources":["../../src/prompts/htmlArtifactPrompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./systemPrompt.js"), exports);
|
|
18
|
+
__exportStar(require("./markdownPrompt.js"), exports);
|
|
19
|
+
__exportStar(require("./htmlArtifactPrompt.js"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,sDAAoC;AACpC,0DAAwC"}
|