@agent-native/creative-context 0.1.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/README.md +108 -0
- package/agent-native.package.json +104 -0
- package/dist/actions/confirm-canonical-logo.d.ts +6 -0
- package/dist/actions/confirm-canonical-logo.d.ts.map +1 -0
- package/dist/actions/confirm-canonical-logo.js +19 -0
- package/dist/actions/confirm-canonical-logo.js.map +1 -0
- package/dist/actions/continue-context-import.d.ts +7 -0
- package/dist/actions/continue-context-import.d.ts.map +1 -0
- package/dist/actions/continue-context-import.js +10 -0
- package/dist/actions/continue-context-import.js.map +1 -0
- package/dist/actions/creative-context-a2a.d.ts +10 -0
- package/dist/actions/creative-context-a2a.d.ts.map +1 -0
- package/dist/actions/creative-context-a2a.js +66 -0
- package/dist/actions/creative-context-a2a.js.map +1 -0
- package/dist/actions/get-brand-profile.d.ts +33 -0
- package/dist/actions/get-brand-profile.d.ts.map +1 -0
- package/dist/actions/get-brand-profile.js +13 -0
- package/dist/actions/get-brand-profile.js.map +1 -0
- package/dist/actions/get-context-import-status.d.ts +22 -0
- package/dist/actions/get-context-import-status.d.ts.map +1 -0
- package/dist/actions/get-context-import-status.js +12 -0
- package/dist/actions/get-context-import-status.js.map +1 -0
- package/dist/actions/get-context-item.d.ts +2 -0
- package/dist/actions/get-context-item.d.ts.map +1 -0
- package/dist/actions/get-context-item.js +2 -0
- package/dist/actions/get-context-item.js.map +1 -0
- package/dist/actions/get-context-pack.d.ts +7 -0
- package/dist/actions/get-context-pack.d.ts.map +1 -0
- package/dist/actions/get-context-pack.js +12 -0
- package/dist/actions/get-context-pack.js.map +1 -0
- package/dist/actions/get-creative-context.d.ts +119 -0
- package/dist/actions/get-creative-context.d.ts.map +1 -0
- package/dist/actions/get-creative-context.js +112 -0
- package/dist/actions/get-creative-context.js.map +1 -0
- package/dist/actions/index.d.ts +3 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +63 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/actions/infer-brand-dna.d.ts +52 -0
- package/dist/actions/infer-brand-dna.d.ts.map +1 -0
- package/dist/actions/infer-brand-dna.js +13 -0
- package/dist/actions/infer-brand-dna.js.map +1 -0
- package/dist/actions/list-canonical-logo-candidates.d.ts +9 -0
- package/dist/actions/list-canonical-logo-candidates.d.ts.map +1 -0
- package/dist/actions/list-canonical-logo-candidates.js +82 -0
- package/dist/actions/list-canonical-logo-candidates.js.map +1 -0
- package/dist/actions/list-context-connections.d.ts +22 -0
- package/dist/actions/list-context-connections.d.ts.map +1 -0
- package/dist/actions/list-context-connections.js +43 -0
- package/dist/actions/list-context-connections.js.map +1 -0
- package/dist/actions/list-context-packs.d.ts +10 -0
- package/dist/actions/list-context-packs.d.ts.map +1 -0
- package/dist/actions/list-context-packs.js +16 -0
- package/dist/actions/list-context-packs.js.map +1 -0
- package/dist/actions/list-context-sources.d.ts +12 -0
- package/dist/actions/list-context-sources.d.ts.map +1 -0
- package/dist/actions/list-context-sources.js +20 -0
- package/dist/actions/list-context-sources.js.map +1 -0
- package/dist/actions/list-context-suggestions.d.ts +13 -0
- package/dist/actions/list-context-suggestions.d.ts.map +1 -0
- package/dist/actions/list-context-suggestions.js +28 -0
- package/dist/actions/list-context-suggestions.js.map +1 -0
- package/dist/actions/manage-brand-profile.d.ts +28 -0
- package/dist/actions/manage-brand-profile.d.ts.map +1 -0
- package/dist/actions/manage-brand-profile.js +47 -0
- package/dist/actions/manage-brand-profile.js.map +1 -0
- package/dist/actions/manage-context-pack.d.ts +33 -0
- package/dist/actions/manage-context-pack.d.ts.map +1 -0
- package/dist/actions/manage-context-pack.js +65 -0
- package/dist/actions/manage-context-pack.js.map +1 -0
- package/dist/actions/manage-context-source.d.ts +51 -0
- package/dist/actions/manage-context-source.d.ts.map +1 -0
- package/dist/actions/manage-context-source.js +137 -0
- package/dist/actions/manage-context-source.js.map +1 -0
- package/dist/actions/manage-layout-template.d.ts +13 -0
- package/dist/actions/manage-layout-template.d.ts.map +1 -0
- package/dist/actions/manage-layout-template.js +43 -0
- package/dist/actions/manage-layout-template.js.map +1 -0
- package/dist/actions/preview-context-import.d.ts +23 -0
- package/dist/actions/preview-context-import.d.ts.map +1 -0
- package/dist/actions/preview-context-import.js +57 -0
- package/dist/actions/preview-context-import.js.map +1 -0
- package/dist/actions/process-context-purge.d.ts +22 -0
- package/dist/actions/process-context-purge.d.ts.map +1 -0
- package/dist/actions/process-context-purge.js +19 -0
- package/dist/actions/process-context-purge.js.map +1 -0
- package/dist/actions/propose-brand-dna.d.ts +15 -0
- package/dist/actions/propose-brand-dna.d.ts.map +1 -0
- package/dist/actions/propose-brand-dna.js +19 -0
- package/dist/actions/propose-brand-dna.js.map +1 -0
- package/dist/actions/propose-canonical-logo.d.ts +9 -0
- package/dist/actions/propose-canonical-logo.d.ts.map +1 -0
- package/dist/actions/propose-canonical-logo.js +16 -0
- package/dist/actions/propose-canonical-logo.js.map +1 -0
- package/dist/actions/publish-brand-dna.d.ts +13 -0
- package/dist/actions/publish-brand-dna.d.ts.map +1 -0
- package/dist/actions/publish-brand-dna.js +23 -0
- package/dist/actions/publish-brand-dna.js.map +1 -0
- package/dist/actions/recommend-context-roots.d.ts +14 -0
- package/dist/actions/recommend-context-roots.d.ts.map +1 -0
- package/dist/actions/recommend-context-roots.js +22 -0
- package/dist/actions/recommend-context-roots.js.map +1 -0
- package/dist/actions/record-context-feedback.d.ts +10 -0
- package/dist/actions/record-context-feedback.d.ts.map +1 -0
- package/dist/actions/record-context-feedback.js +14 -0
- package/dist/actions/record-context-feedback.js.map +1 -0
- package/dist/actions/review-context-items.d.ts +35 -0
- package/dist/actions/review-context-items.d.ts.map +1 -0
- package/dist/actions/review-context-items.js +65 -0
- package/dist/actions/review-context-items.js.map +1 -0
- package/dist/actions/run-embedding-bakeoff.d.ts +15 -0
- package/dist/actions/run-embedding-bakeoff.d.ts.map +1 -0
- package/dist/actions/run-embedding-bakeoff.js +72 -0
- package/dist/actions/run-embedding-bakeoff.js.map +1 -0
- package/dist/actions/search-creative-context.d.ts +75 -0
- package/dist/actions/search-creative-context.d.ts.map +1 -0
- package/dist/actions/search-creative-context.js +41 -0
- package/dist/actions/search-creative-context.js.map +1 -0
- package/dist/actions/set-brand-dna.d.ts +15 -0
- package/dist/actions/set-brand-dna.d.ts.map +1 -0
- package/dist/actions/set-brand-dna.js +19 -0
- package/dist/actions/set-brand-dna.js.map +1 -0
- package/dist/actions/start-context-enrichment.d.ts +10 -0
- package/dist/actions/start-context-enrichment.d.ts.map +1 -0
- package/dist/actions/start-context-enrichment.js +46 -0
- package/dist/actions/start-context-enrichment.js.map +1 -0
- package/dist/actions/start-context-import.d.ts +9 -0
- package/dist/actions/start-context-import.d.ts.map +1 -0
- package/dist/actions/start-context-import.js +36 -0
- package/dist/actions/start-context-import.js.map +1 -0
- package/dist/client/CreativeContextChip.d.ts +13 -0
- package/dist/client/CreativeContextChip.d.ts.map +1 -0
- package/dist/client/CreativeContextChip.js +45 -0
- package/dist/client/CreativeContextChip.js.map +1 -0
- package/dist/client/CreativeContextPanel.d.ts +131 -0
- package/dist/client/CreativeContextPanel.d.ts.map +1 -0
- package/dist/client/CreativeContextPanel.js +778 -0
- package/dist/client/CreativeContextPanel.js.map +1 -0
- package/dist/client/CreativeContextSettingsLink.d.ts +4 -0
- package/dist/client/CreativeContextSettingsLink.d.ts.map +1 -0
- package/dist/client/CreativeContextSettingsLink.js +8 -0
- package/dist/client/CreativeContextSettingsLink.js.map +1 -0
- package/dist/client/actions.d.ts +256 -0
- package/dist/client/actions.d.ts.map +1 -0
- package/dist/client/actions.js +89 -0
- package/dist/client/actions.js.map +1 -0
- package/dist/client/agent-tab.d.ts +9 -0
- package/dist/client/agent-tab.d.ts.map +1 -0
- package/dist/client/agent-tab.js +32 -0
- package/dist/client/agent-tab.js.map +1 -0
- package/dist/client/application-state.d.ts +22 -0
- package/dist/client/application-state.d.ts.map +1 -0
- package/dist/client/application-state.js +88 -0
- package/dist/client/application-state.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/messages.d.ts +5 -0
- package/dist/client/messages.d.ts.map +1 -0
- package/dist/client/messages.js +1059 -0
- package/dist/client/messages.js.map +1 -0
- package/dist/connectors/context.d.ts +9 -0
- package/dist/connectors/context.d.ts.map +1 -0
- package/dist/connectors/context.js +59 -0
- package/dist/connectors/context.js.map +1 -0
- package/dist/connectors/document-parser.d.ts +2 -0
- package/dist/connectors/document-parser.d.ts.map +1 -0
- package/dist/connectors/document-parser.js +2 -0
- package/dist/connectors/document-parser.js.map +1 -0
- package/dist/connectors/figma-native.d.ts +18 -0
- package/dist/connectors/figma-native.d.ts.map +1 -0
- package/dist/connectors/figma-native.js +883 -0
- package/dist/connectors/figma-native.js.map +1 -0
- package/dist/connectors/figma.d.ts +10 -0
- package/dist/connectors/figma.d.ts.map +1 -0
- package/dist/connectors/figma.js +166 -0
- package/dist/connectors/figma.js.map +1 -0
- package/dist/connectors/google-slides-native.d.ts +58 -0
- package/dist/connectors/google-slides-native.d.ts.map +1 -0
- package/dist/connectors/google-slides-native.js +1118 -0
- package/dist/connectors/google-slides-native.js.map +1 -0
- package/dist/connectors/google-slides.d.ts +15 -0
- package/dist/connectors/google-slides.d.ts.map +1 -0
- package/dist/connectors/google-slides.js +896 -0
- package/dist/connectors/google-slides.js.map +1 -0
- package/dist/connectors/index.d.ts +20 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +44 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/manual.d.ts +9 -0
- package/dist/connectors/manual.d.ts.map +1 -0
- package/dist/connectors/manual.js +91 -0
- package/dist/connectors/manual.js.map +1 -0
- package/dist/connectors/normalize.d.ts +35 -0
- package/dist/connectors/normalize.d.ts.map +1 -0
- package/dist/connectors/normalize.js +216 -0
- package/dist/connectors/normalize.js.map +1 -0
- package/dist/connectors/notion.d.ts +10 -0
- package/dist/connectors/notion.d.ts.map +1 -0
- package/dist/connectors/notion.js +393 -0
- package/dist/connectors/notion.js.map +1 -0
- package/dist/connectors/private-artifacts.d.ts +39 -0
- package/dist/connectors/private-artifacts.d.ts.map +1 -0
- package/dist/connectors/private-artifacts.js +175 -0
- package/dist/connectors/private-artifacts.js.map +1 -0
- package/dist/connectors/provider-response.d.ts +20 -0
- package/dist/connectors/provider-response.d.ts.map +1 -0
- package/dist/connectors/provider-response.js +98 -0
- package/dist/connectors/provider-response.js.map +1 -0
- package/dist/connectors/recommendations.d.ts +25 -0
- package/dist/connectors/recommendations.d.ts.map +1 -0
- package/dist/connectors/recommendations.js +172 -0
- package/dist/connectors/recommendations.js.map +1 -0
- package/dist/connectors/registry.d.ts +10 -0
- package/dist/connectors/registry.d.ts.map +1 -0
- package/dist/connectors/registry.js +34 -0
- package/dist/connectors/registry.js.map +1 -0
- package/dist/connectors/rendered-page.d.ts +101 -0
- package/dist/connectors/rendered-page.d.ts.map +1 -0
- package/dist/connectors/rendered-page.js +504 -0
- package/dist/connectors/rendered-page.js.map +1 -0
- package/dist/connectors/smart-defaults.d.ts +9 -0
- package/dist/connectors/smart-defaults.d.ts.map +1 -0
- package/dist/connectors/smart-defaults.js +72 -0
- package/dist/connectors/smart-defaults.js.map +1 -0
- package/dist/connectors/types.d.ts +79 -0
- package/dist/connectors/types.d.ts.map +1 -0
- package/dist/connectors/types.js +2 -0
- package/dist/connectors/types.js.map +1 -0
- package/dist/connectors/upload.d.ts +9 -0
- package/dist/connectors/upload.d.ts.map +1 -0
- package/dist/connectors/upload.js +440 -0
- package/dist/connectors/upload.js.map +1 -0
- package/dist/connectors/website.d.ts +20 -0
- package/dist/connectors/website.d.ts.map +1 -0
- package/dist/connectors/website.js +616 -0
- package/dist/connectors/website.js.map +1 -0
- package/dist/embeddings/index.d.ts +3 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +3 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/embeddings/providers.d.ts +7 -0
- package/dist/embeddings/providers.d.ts.map +1 -0
- package/dist/embeddings/providers.js +176 -0
- package/dist/embeddings/providers.js.map +1 -0
- package/dist/embeddings/types.d.ts +19 -0
- package/dist/embeddings/types.d.ts.map +1 -0
- package/dist/embeddings/types.js +2 -0
- package/dist/embeddings/types.js.map +1 -0
- package/dist/eval/acceptance-fixtures.d.ts +3 -0
- package/dist/eval/acceptance-fixtures.d.ts.map +1 -0
- package/dist/eval/acceptance-fixtures.js +84 -0
- package/dist/eval/acceptance-fixtures.js.map +1 -0
- package/dist/eval/acceptance.d.ts +114 -0
- package/dist/eval/acceptance.d.ts.map +1 -0
- package/dist/eval/acceptance.js +260 -0
- package/dist/eval/acceptance.js.map +1 -0
- package/dist/eval/fixtures.d.ts +16 -0
- package/dist/eval/fixtures.d.ts.map +1 -0
- package/dist/eval/fixtures.js +119 -0
- package/dist/eval/fixtures.js.map +1 -0
- package/dist/eval/index.d.ts +63 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +174 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/background-worker.d.ts +31 -0
- package/dist/jobs/background-worker.d.ts.map +1 -0
- package/dist/jobs/background-worker.js +315 -0
- package/dist/jobs/background-worker.js.map +1 -0
- package/dist/jobs/import-runner.d.ts +3 -0
- package/dist/jobs/import-runner.d.ts.map +1 -0
- package/dist/jobs/import-runner.js +613 -0
- package/dist/jobs/import-runner.js.map +1 -0
- package/dist/jobs/index.d.ts +9 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +8 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/progress.d.ts +3 -0
- package/dist/jobs/progress.d.ts.map +1 -0
- package/dist/jobs/progress.js +30 -0
- package/dist/jobs/progress.js.map +1 -0
- package/dist/jobs/rebuild.d.ts +13 -0
- package/dist/jobs/rebuild.d.ts.map +1 -0
- package/dist/jobs/rebuild.js +178 -0
- package/dist/jobs/rebuild.js.map +1 -0
- package/dist/jobs/server-worker.d.ts +16 -0
- package/dist/jobs/server-worker.d.ts.map +1 -0
- package/dist/jobs/server-worker.js +252 -0
- package/dist/jobs/server-worker.js.map +1 -0
- package/dist/jobs/store-adapter.d.ts +3 -0
- package/dist/jobs/store-adapter.d.ts.map +1 -0
- package/dist/jobs/store-adapter.js +37 -0
- package/dist/jobs/store-adapter.js.map +1 -0
- package/dist/jobs/types.d.ts +138 -0
- package/dist/jobs/types.d.ts.map +1 -0
- package/dist/jobs/types.js +2 -0
- package/dist/jobs/types.js.map +1 -0
- package/dist/jobs/worker.d.ts +27 -0
- package/dist/jobs/worker.d.ts.map +1 -0
- package/dist/jobs/worker.js +90 -0
- package/dist/jobs/worker.js.map +1 -0
- package/dist/media-url.d.ts +7 -0
- package/dist/media-url.d.ts.map +1 -0
- package/dist/media-url.js +15 -0
- package/dist/media-url.js.map +1 -0
- package/dist/native-artifact-reassembly.d.ts +25 -0
- package/dist/native-artifact-reassembly.d.ts.map +1 -0
- package/dist/native-artifact-reassembly.js +262 -0
- package/dist/native-artifact-reassembly.js.map +1 -0
- package/dist/native-artifact.d.ts +88 -0
- package/dist/native-artifact.d.ts.map +1 -0
- package/dist/native-artifact.js +86 -0
- package/dist/native-artifact.js.map +1 -0
- package/dist/schema/index.d.ts +5519 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +374 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/migrations.d.ts +10 -0
- package/dist/schema/migrations.d.ts.map +1 -0
- package/dist/schema/migrations.js +253 -0
- package/dist/schema/migrations.js.map +1 -0
- package/dist/search/fusion.d.ts +15 -0
- package/dist/search/fusion.d.ts.map +1 -0
- package/dist/search/fusion.js +25 -0
- package/dist/search/fusion.js.map +1 -0
- package/dist/search/mode.d.ts +4 -0
- package/dist/search/mode.d.ts.map +1 -0
- package/dist/search/mode.js +13 -0
- package/dist/search/mode.js.map +1 -0
- package/dist/search/postgres-fts.d.ts +22 -0
- package/dist/search/postgres-fts.d.ts.map +1 -0
- package/dist/search/postgres-fts.js +83 -0
- package/dist/search/postgres-fts.js.map +1 -0
- package/dist/server/brand-context.d.ts +15 -0
- package/dist/server/brand-context.d.ts.map +1 -0
- package/dist/server/brand-context.js +149 -0
- package/dist/server/brand-context.js.map +1 -0
- package/dist/server/context.d.ts +77 -0
- package/dist/server/context.d.ts.map +1 -0
- package/dist/server/context.js +63 -0
- package/dist/server/context.js.map +1 -0
- package/dist/server/enrichment.d.ts +23 -0
- package/dist/server/enrichment.d.ts.map +1 -0
- package/dist/server/enrichment.js +136 -0
- package/dist/server/enrichment.js.map +1 -0
- package/dist/server/generation-artifact-access.d.ts +21 -0
- package/dist/server/generation-artifact-access.d.ts.map +1 -0
- package/dist/server/generation-artifact-access.js +111 -0
- package/dist/server/generation-artifact-access.js.map +1 -0
- package/dist/server/generation-context.d.ts +204 -0
- package/dist/server/generation-context.d.ts.map +1 -0
- package/dist/server/generation-context.js +310 -0
- package/dist/server/generation-context.js.map +1 -0
- package/dist/server/index.d.ts +22 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +96 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/isolated-a2a.d.ts +172 -0
- package/dist/server/isolated-a2a.d.ts.map +1 -0
- package/dist/server/isolated-a2a.js +310 -0
- package/dist/server/isolated-a2a.js.map +1 -0
- package/dist/server/media.d.ts +15 -0
- package/dist/server/media.d.ts.map +1 -0
- package/dist/server/media.js +93 -0
- package/dist/server/media.js.map +1 -0
- package/dist/server/prompt-provider.d.ts +5 -0
- package/dist/server/prompt-provider.d.ts.map +1 -0
- package/dist/server/prompt-provider.js +59 -0
- package/dist/server/prompt-provider.js.map +1 -0
- package/dist/server/public-serialization.d.ts +160 -0
- package/dist/server/public-serialization.d.ts.map +1 -0
- package/dist/server/public-serialization.js +108 -0
- package/dist/server/public-serialization.js.map +1 -0
- package/dist/server/resource-paths.d.ts +3 -0
- package/dist/server/resource-paths.d.ts.map +1 -0
- package/dist/server/resource-paths.js +5 -0
- package/dist/server/resource-paths.js.map +1 -0
- package/dist/server/retrieval.d.ts +78 -0
- package/dist/server/retrieval.d.ts.map +1 -0
- package/dist/server/retrieval.js +443 -0
- package/dist/server/retrieval.js.map +1 -0
- package/dist/server/untrusted-reference.d.ts +8 -0
- package/dist/server/untrusted-reference.d.ts.map +1 -0
- package/dist/server/untrusted-reference.js +19 -0
- package/dist/server/untrusted-reference.js.map +1 -0
- package/dist/store/brand.d.ts +47 -0
- package/dist/store/brand.d.ts.map +1 -0
- package/dist/store/brand.js +360 -0
- package/dist/store/brand.js.map +1 -0
- package/dist/store/content.d.ts +120 -0
- package/dist/store/content.d.ts.map +1 -0
- package/dist/store/content.js +1437 -0
- package/dist/store/content.js.map +1 -0
- package/dist/store/generation.d.ts +28 -0
- package/dist/store/generation.d.ts.map +1 -0
- package/dist/store/generation.js +140 -0
- package/dist/store/generation.js.map +1 -0
- package/dist/store/helpers.d.ts +12 -0
- package/dist/store/helpers.d.ts.map +1 -0
- package/dist/store/helpers.js +41 -0
- package/dist/store/helpers.js.map +1 -0
- package/dist/store/index.d.ts +10 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +10 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/inference.d.ts +57 -0
- package/dist/store/inference.d.ts.map +1 -0
- package/dist/store/inference.js +279 -0
- package/dist/store/inference.js.map +1 -0
- package/dist/store/jobs.d.ts +80 -0
- package/dist/store/jobs.d.ts.map +1 -0
- package/dist/store/jobs.js +428 -0
- package/dist/store/jobs.js.map +1 -0
- package/dist/store/packs.d.ts +33 -0
- package/dist/store/packs.d.ts.map +1 -0
- package/dist/store/packs.js +321 -0
- package/dist/store/packs.js.map +1 -0
- package/dist/store/purge.d.ts +16 -0
- package/dist/store/purge.d.ts.map +1 -0
- package/dist/store/purge.js +256 -0
- package/dist/store/purge.js.map +1 -0
- package/dist/store/sources.d.ts +76 -0
- package/dist/store/sources.d.ts.map +1 -0
- package/dist/store/sources.js +538 -0
- package/dist/store/sources.js.map +1 -0
- package/dist/store/suggestions.d.ts +28 -0
- package/dist/store/suggestions.d.ts.map +1 -0
- package/dist/store/suggestions.js +250 -0
- package/dist/store/suggestions.js.map +1 -0
- package/dist/types.d.ts +493 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/vector/index.d.ts +2 -0
- package/dist/vector/index.d.ts.map +1 -0
- package/dist/vector/index.js +2 -0
- package/dist/vector/index.js.map +1 -0
- package/dist/vector/pgvector.d.ts +28 -0
- package/dist/vector/pgvector.d.ts.map +1 -0
- package/dist/vector/pgvector.js +117 -0
- package/dist/vector/pgvector.js.map +1 -0
- package/docs/evaluation.md +92 -0
- package/docs/llms-full.txt +168 -0
- package/docs/llms.txt +76 -0
- package/docs/skills/creative-context/SKILL.md +74 -0
- package/package.json +91 -0
- package/src/actions/agent-input-schemas.spec.ts +46 -0
- package/src/actions/confirm-canonical-logo.ts +20 -0
- package/src/actions/continue-context-import.ts +12 -0
- package/src/actions/creative-context-a2a.spec.ts +64 -0
- package/src/actions/creative-context-a2a.ts +88 -0
- package/src/actions/get-brand-profile.ts +16 -0
- package/src/actions/get-context-import-status.ts +13 -0
- package/src/actions/get-context-item.ts +1 -0
- package/src/actions/get-context-pack.ts +14 -0
- package/src/actions/get-creative-context.spec.ts +315 -0
- package/src/actions/get-creative-context.ts +148 -0
- package/src/actions/index.ts +65 -0
- package/src/actions/infer-brand-dna.ts +15 -0
- package/src/actions/list-canonical-logo-candidates.ts +121 -0
- package/src/actions/list-context-connections.spec.ts +23 -0
- package/src/actions/list-context-connections.ts +51 -0
- package/src/actions/list-context-packs.ts +17 -0
- package/src/actions/list-context-sources.ts +21 -0
- package/src/actions/list-context-suggestions.ts +30 -0
- package/src/actions/manage-brand-profile.ts +58 -0
- package/src/actions/manage-context-pack.ts +75 -0
- package/src/actions/manage-context-source.ts +154 -0
- package/src/actions/manage-layout-template.ts +51 -0
- package/src/actions/preview-context-import.spec.ts +64 -0
- package/src/actions/preview-context-import.ts +61 -0
- package/src/actions/process-context-purge.ts +25 -0
- package/src/actions/propose-brand-dna.ts +22 -0
- package/src/actions/propose-canonical-logo.ts +19 -0
- package/src/actions/publish-brand-dna.ts +25 -0
- package/src/actions/recommend-context-roots.ts +24 -0
- package/src/actions/record-context-feedback.ts +16 -0
- package/src/actions/review-context-items.ts +69 -0
- package/src/actions/run-embedding-bakeoff.ts +90 -0
- package/src/actions/search-creative-context.ts +47 -0
- package/src/actions/set-brand-dna.ts +22 -0
- package/src/actions/start-context-enrichment.ts +50 -0
- package/src/actions/start-context-import.ts +37 -0
- package/src/client/CreativeContextChip.tsx +162 -0
- package/src/client/CreativeContextPanel.tsx +2442 -0
- package/src/client/CreativeContextSettingsLink.tsx +30 -0
- package/src/client/actions.ts +438 -0
- package/src/client/agent-tab.tsx +58 -0
- package/src/client/application-state.spec.ts +41 -0
- package/src/client/application-state.ts +130 -0
- package/src/client/index.ts +62 -0
- package/src/client/messages.ts +1240 -0
- package/src/client/source-config.spec.ts +152 -0
- package/src/connectors/connectors.spec.ts +778 -0
- package/src/connectors/context.ts +83 -0
- package/src/connectors/document-parser.ts +5 -0
- package/src/connectors/figma-native.ts +1192 -0
- package/src/connectors/figma-native.visual.spec.ts +221 -0
- package/src/connectors/figma.spec.ts +812 -0
- package/src/connectors/figma.ts +257 -0
- package/src/connectors/fixtures/google-slides-native.json +353 -0
- package/src/connectors/google-slides-native.spec.ts +804 -0
- package/src/connectors/google-slides-native.ts +1656 -0
- package/src/connectors/google-slides-native.visual.spec.ts +119 -0
- package/src/connectors/google-slides.ts +1172 -0
- package/src/connectors/index.ts +103 -0
- package/src/connectors/manual.ts +132 -0
- package/src/connectors/normalize.ts +277 -0
- package/src/connectors/notion.ts +529 -0
- package/src/connectors/private-artifacts.spec.ts +95 -0
- package/src/connectors/private-artifacts.ts +248 -0
- package/src/connectors/provider-response.ts +144 -0
- package/src/connectors/recommendations.ts +237 -0
- package/src/connectors/registry.ts +48 -0
- package/src/connectors/rendered-page.ts +705 -0
- package/src/connectors/smart-defaults.spec.ts +135 -0
- package/src/connectors/smart-defaults.ts +87 -0
- package/src/connectors/types.ts +115 -0
- package/src/connectors/upload.spec.ts +175 -0
- package/src/connectors/upload.ts +548 -0
- package/src/connectors/website.spec.ts +509 -0
- package/src/connectors/website.ts +777 -0
- package/src/embeddings/index.ts +2 -0
- package/src/embeddings/providers.spec.ts +73 -0
- package/src/embeddings/providers.ts +228 -0
- package/src/embeddings/types.ts +24 -0
- package/src/eval/acceptance-fixtures.ts +97 -0
- package/src/eval/acceptance.spec.ts +92 -0
- package/src/eval/acceptance.ts +371 -0
- package/src/eval/connectors-golden.spec.ts +421 -0
- package/src/eval/eval.spec.ts +166 -0
- package/src/eval/fixtures/README.md +17 -0
- package/src/eval/fixtures/figma-brand-system-v1.json +140 -0
- package/src/eval/fixtures/figma-brand-system-v2.json +127 -0
- package/src/eval/fixtures/launch-hero.png +0 -0
- package/src/eval/fixtures/launch-system-v1.pptx +0 -0
- package/src/eval/fixtures/launch-system-v2.pptx +0 -0
- package/src/eval/fixtures/notion-brand-root.json +218 -0
- package/src/eval/fixtures/pricing-hero.png +0 -0
- package/src/eval/fixtures/rendered-brand-page.html +76 -0
- package/src/eval/fixtures.spec.ts +43 -0
- package/src/eval/fixtures.ts +136 -0
- package/src/eval/index.ts +291 -0
- package/src/eval/library-flow.acceptance.spec.tsx +141 -0
- package/src/index.ts +4 -0
- package/src/jobs/background-worker.ts +423 -0
- package/src/jobs/import-runner.spec.ts +582 -0
- package/src/jobs/import-runner.ts +792 -0
- package/src/jobs/index.ts +40 -0
- package/src/jobs/progress.ts +37 -0
- package/src/jobs/rebuild.ts +245 -0
- package/src/jobs/server-worker.spec.ts +159 -0
- package/src/jobs/server-worker.ts +344 -0
- package/src/jobs/store-adapter.ts +52 -0
- package/src/jobs/types.ts +147 -0
- package/src/jobs/worker.ts +152 -0
- package/src/manifest.spec.ts +26 -0
- package/src/media-url.ts +17 -0
- package/src/native-artifact-reassembly.spec.ts +386 -0
- package/src/native-artifact-reassembly.ts +406 -0
- package/src/native-artifact.ts +102 -0
- package/src/schema/index.ts +411 -0
- package/src/schema/migrations.spec.ts +41 -0
- package/src/schema/migrations.ts +258 -0
- package/src/search/fusion.spec.ts +21 -0
- package/src/search/fusion.ts +39 -0
- package/src/search/mode.spec.ts +28 -0
- package/src/search/mode.ts +21 -0
- package/src/search/postgres-fts.spec.ts +71 -0
- package/src/search/postgres-fts.ts +112 -0
- package/src/server/brand-context.spec.ts +43 -0
- package/src/server/brand-context.ts +160 -0
- package/src/server/context.ts +162 -0
- package/src/server/enrichment.ts +163 -0
- package/src/server/generation-artifact-access.ts +216 -0
- package/src/server/generation-context-a2a.spec.ts +131 -0
- package/src/server/generation-context-off.spec.ts +213 -0
- package/src/server/generation-context.spec.ts +124 -0
- package/src/server/generation-context.ts +493 -0
- package/src/server/index.ts +135 -0
- package/src/server/isolated-a2a.spec.ts +164 -0
- package/src/server/isolated-a2a.ts +413 -0
- package/src/server/media.spec.ts +92 -0
- package/src/server/media.ts +117 -0
- package/src/server/prompt-provider.spec.ts +78 -0
- package/src/server/prompt-provider.ts +73 -0
- package/src/server/public-serialization.spec.ts +149 -0
- package/src/server/public-serialization.ts +130 -0
- package/src/server/resource-paths.spec.ts +9 -0
- package/src/server/resource-paths.ts +5 -0
- package/src/server/retrieval-vector.spec.ts +180 -0
- package/src/server/retrieval.ts +587 -0
- package/src/server/untrusted-reference.spec.ts +22 -0
- package/src/server/untrusted-reference.ts +24 -0
- package/src/store/access.integration.spec.ts +1922 -0
- package/src/store/brand.ts +477 -0
- package/src/store/content.ts +1900 -0
- package/src/store/generation.ts +226 -0
- package/src/store/helpers.ts +53 -0
- package/src/store/index.ts +9 -0
- package/src/store/inference.spec.ts +84 -0
- package/src/store/inference.ts +339 -0
- package/src/store/invariants.spec.ts +119 -0
- package/src/store/jobs.ts +672 -0
- package/src/store/packs.ts +466 -0
- package/src/store/purge.ts +321 -0
- package/src/store/sources.spec.ts +102 -0
- package/src/store/sources.ts +708 -0
- package/src/store/suggestions.ts +333 -0
- package/src/types.ts +571 -0
- package/src/vector/index.ts +1 -0
- package/src/vector/pgvector.spec.ts +98 -0
- package/src/vector/pgvector.ts +164 -0
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
export const creativeContextMigrations = [
|
|
2
|
+
{
|
|
3
|
+
version: 1,
|
|
4
|
+
name: "creative-context-foundation",
|
|
5
|
+
sql: `
|
|
6
|
+
CREATE TABLE IF NOT EXISTS creative_context_sources (
|
|
7
|
+
id TEXT PRIMARY KEY, name TEXT NOT NULL, kind TEXT NOT NULL,
|
|
8
|
+
external_ref TEXT, connection_id TEXT, container_owner_verified_at TEXT,
|
|
9
|
+
config TEXT NOT NULL DEFAULT '{}',
|
|
10
|
+
upstream_access TEXT NOT NULL DEFAULT 'unknown', status TEXT NOT NULL DEFAULT 'active',
|
|
11
|
+
health_status TEXT NOT NULL DEFAULT 'stale',
|
|
12
|
+
sync_cursor TEXT, item_count INTEGER NOT NULL DEFAULT 0,
|
|
13
|
+
restricted_item_count INTEGER NOT NULL DEFAULT 0, last_synced_at TEXT, last_error TEXT,
|
|
14
|
+
created_at TEXT NOT NULL, updated_at TEXT NOT NULL,
|
|
15
|
+
owner_email TEXT NOT NULL DEFAULT 'local@localhost', org_id TEXT,
|
|
16
|
+
visibility TEXT NOT NULL DEFAULT 'private'
|
|
17
|
+
);
|
|
18
|
+
CREATE TABLE IF NOT EXISTS creative_context_source_shares (
|
|
19
|
+
id TEXT PRIMARY KEY, resource_id TEXT NOT NULL, principal_type TEXT NOT NULL,
|
|
20
|
+
principal_id TEXT NOT NULL, role TEXT NOT NULL DEFAULT 'viewer',
|
|
21
|
+
created_by TEXT NOT NULL, created_at TEXT NOT NULL
|
|
22
|
+
);
|
|
23
|
+
CREATE TABLE IF NOT EXISTS creative_context_source_audit (
|
|
24
|
+
id TEXT PRIMARY KEY, source_id TEXT NOT NULL, operation TEXT NOT NULL,
|
|
25
|
+
actor_email TEXT NOT NULL, details TEXT NOT NULL DEFAULT '{}', created_at TEXT NOT NULL,
|
|
26
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
27
|
+
);
|
|
28
|
+
CREATE TABLE IF NOT EXISTS creative_context_items (
|
|
29
|
+
id TEXT PRIMARY KEY, source_id TEXT NOT NULL, external_id TEXT NOT NULL,
|
|
30
|
+
kind TEXT NOT NULL, title TEXT NOT NULL, canonical_url TEXT, mime_type TEXT,
|
|
31
|
+
current_version_id TEXT NOT NULL, current_content_hash TEXT NOT NULL,
|
|
32
|
+
status TEXT NOT NULL DEFAULT 'active', upstream_access TEXT NOT NULL DEFAULT 'unknown',
|
|
33
|
+
curation_status TEXT NOT NULL DEFAULT 'review', curation_rank TEXT NOT NULL DEFAULT 'normal',
|
|
34
|
+
starred INTEGER NOT NULL DEFAULT 0, inventory_state TEXT NOT NULL DEFAULT 'discovered',
|
|
35
|
+
index_state TEXT NOT NULL DEFAULT 'pending', tags TEXT NOT NULL DEFAULT '[]',
|
|
36
|
+
colors TEXT NOT NULL DEFAULT '[]',
|
|
37
|
+
sort_order INTEGER NOT NULL DEFAULT 0, parent_item_id TEXT,
|
|
38
|
+
provenance TEXT NOT NULL DEFAULT '{}', thumbnail_blob_ref TEXT,
|
|
39
|
+
metadata TEXT NOT NULL DEFAULT '{}', created_at TEXT NOT NULL, updated_at TEXT NOT NULL,
|
|
40
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
41
|
+
);
|
|
42
|
+
CREATE TABLE IF NOT EXISTS creative_context_item_versions (
|
|
43
|
+
id TEXT PRIMARY KEY, item_id TEXT NOT NULL, version_number INTEGER NOT NULL,
|
|
44
|
+
content_hash TEXT NOT NULL, title TEXT NOT NULL, content TEXT NOT NULL, summary TEXT,
|
|
45
|
+
mime_type TEXT, source_modified_at TEXT, source_version TEXT, raw_snapshot_blob_ref TEXT,
|
|
46
|
+
parse_status TEXT NOT NULL DEFAULT 'parsed', parse_error TEXT,
|
|
47
|
+
metadata TEXT NOT NULL DEFAULT '{}', created_at TEXT NOT NULL,
|
|
48
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
49
|
+
);
|
|
50
|
+
CREATE TABLE IF NOT EXISTS creative_context_chunks (
|
|
51
|
+
id TEXT PRIMARY KEY, item_id TEXT NOT NULL, item_version_id TEXT NOT NULL,
|
|
52
|
+
ordinal INTEGER NOT NULL, kind TEXT NOT NULL DEFAULT 'text', text TEXT NOT NULL,
|
|
53
|
+
start_offset INTEGER, end_offset INTEGER, token_count INTEGER,
|
|
54
|
+
metadata TEXT NOT NULL DEFAULT '{}', created_at TEXT NOT NULL,
|
|
55
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
56
|
+
);
|
|
57
|
+
CREATE TABLE IF NOT EXISTS creative_context_media (
|
|
58
|
+
id TEXT PRIMARY KEY, item_id TEXT NOT NULL, item_version_id TEXT NOT NULL,
|
|
59
|
+
kind TEXT NOT NULL, mime_type TEXT, access_mode TEXT NOT NULL DEFAULT 'public',
|
|
60
|
+
url TEXT, storage_key TEXT, provenance_url TEXT, alt_text TEXT, caption TEXT,
|
|
61
|
+
caption_status TEXT NOT NULL DEFAULT 'pending', ocr_text TEXT,
|
|
62
|
+
palette TEXT NOT NULL DEFAULT '[]', content_hash TEXT,
|
|
63
|
+
width INTEGER, height INTEGER, duration_ms INTEGER, metadata TEXT NOT NULL DEFAULT '{}',
|
|
64
|
+
created_at TEXT NOT NULL, owner_email TEXT NOT NULL, org_id TEXT
|
|
65
|
+
);
|
|
66
|
+
CREATE TABLE IF NOT EXISTS creative_context_edges (
|
|
67
|
+
id TEXT PRIMARY KEY, from_item_id TEXT NOT NULL, from_item_version_id TEXT NOT NULL,
|
|
68
|
+
to_item_id TEXT, to_item_version_id TEXT, to_external_id TEXT, relation TEXT NOT NULL,
|
|
69
|
+
metadata TEXT NOT NULL DEFAULT '{}', created_at TEXT NOT NULL,
|
|
70
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
71
|
+
);
|
|
72
|
+
CREATE TABLE IF NOT EXISTS creative_context_brand_profiles (
|
|
73
|
+
id TEXT PRIMARY KEY, name TEXT NOT NULL, description TEXT, current_dna_version_id TEXT,
|
|
74
|
+
created_at TEXT NOT NULL, updated_at TEXT NOT NULL,
|
|
75
|
+
owner_email TEXT NOT NULL DEFAULT 'local@localhost', org_id TEXT,
|
|
76
|
+
visibility TEXT NOT NULL DEFAULT 'private'
|
|
77
|
+
);
|
|
78
|
+
CREATE TABLE IF NOT EXISTS creative_context_brand_profile_shares (
|
|
79
|
+
id TEXT PRIMARY KEY, resource_id TEXT NOT NULL, principal_type TEXT NOT NULL,
|
|
80
|
+
principal_id TEXT NOT NULL, role TEXT NOT NULL DEFAULT 'viewer',
|
|
81
|
+
created_by TEXT NOT NULL, created_at TEXT NOT NULL
|
|
82
|
+
);
|
|
83
|
+
CREATE TABLE IF NOT EXISTS creative_context_brand_profile_audit (
|
|
84
|
+
id TEXT PRIMARY KEY, profile_id TEXT NOT NULL, operation TEXT NOT NULL,
|
|
85
|
+
actor_email TEXT NOT NULL, details TEXT NOT NULL DEFAULT '{}', created_at TEXT NOT NULL,
|
|
86
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
87
|
+
);
|
|
88
|
+
CREATE TABLE IF NOT EXISTS creative_context_brand_dna_versions (
|
|
89
|
+
id TEXT PRIMARY KEY, profile_id TEXT NOT NULL, version_number INTEGER NOT NULL,
|
|
90
|
+
payload TEXT NOT NULL, content_hash TEXT NOT NULL, status TEXT NOT NULL DEFAULT 'draft',
|
|
91
|
+
created_at TEXT NOT NULL, owner_email TEXT NOT NULL, org_id TEXT
|
|
92
|
+
);
|
|
93
|
+
CREATE TABLE IF NOT EXISTS creative_context_brand_dna_evidence (
|
|
94
|
+
id TEXT PRIMARY KEY, dna_version_id TEXT NOT NULL, item_id TEXT NOT NULL,
|
|
95
|
+
item_version_id TEXT NOT NULL, created_at TEXT NOT NULL,
|
|
96
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
97
|
+
);
|
|
98
|
+
CREATE TABLE IF NOT EXISTS creative_context_embedding_sets (
|
|
99
|
+
id TEXT PRIMARY KEY, name TEXT NOT NULL, provider TEXT NOT NULL, family TEXT NOT NULL,
|
|
100
|
+
model TEXT NOT NULL, version TEXT NOT NULL,
|
|
101
|
+
dimensions INTEGER NOT NULL, metric TEXT NOT NULL DEFAULT 'cosine',
|
|
102
|
+
status TEXT NOT NULL DEFAULT 'active', metadata TEXT NOT NULL DEFAULT '{}',
|
|
103
|
+
created_at TEXT NOT NULL, owner_email TEXT NOT NULL, org_id TEXT
|
|
104
|
+
);
|
|
105
|
+
CREATE TABLE IF NOT EXISTS creative_context_embeddings (
|
|
106
|
+
id TEXT PRIMARY KEY, embedding_set_id TEXT NOT NULL, family TEXT NOT NULL,
|
|
107
|
+
model TEXT NOT NULL, version TEXT NOT NULL, item_id TEXT NOT NULL,
|
|
108
|
+
item_version_id TEXT NOT NULL, chunk_id TEXT, target_type TEXT NOT NULL,
|
|
109
|
+
target_id TEXT NOT NULL, vector_key TEXT NOT NULL,
|
|
110
|
+
dimensions INTEGER NOT NULL, checksum TEXT, created_at TEXT NOT NULL,
|
|
111
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
112
|
+
);
|
|
113
|
+
CREATE TABLE IF NOT EXISTS creative_context_packs (
|
|
114
|
+
id TEXT PRIMARY KEY, name TEXT NOT NULL, description TEXT, derived_from_pack_id TEXT,
|
|
115
|
+
brand_dna_version_id TEXT, context_mode TEXT NOT NULL DEFAULT 'manual',
|
|
116
|
+
request TEXT NOT NULL DEFAULT '{}', archived_at TEXT, created_at TEXT NOT NULL,
|
|
117
|
+
owner_email TEXT NOT NULL DEFAULT 'local@localhost', org_id TEXT,
|
|
118
|
+
visibility TEXT NOT NULL DEFAULT 'private'
|
|
119
|
+
);
|
|
120
|
+
CREATE TABLE IF NOT EXISTS creative_context_pack_shares (
|
|
121
|
+
id TEXT PRIMARY KEY, resource_id TEXT NOT NULL, principal_type TEXT NOT NULL,
|
|
122
|
+
principal_id TEXT NOT NULL, role TEXT NOT NULL DEFAULT 'viewer',
|
|
123
|
+
created_by TEXT NOT NULL, created_at TEXT NOT NULL
|
|
124
|
+
);
|
|
125
|
+
CREATE TABLE IF NOT EXISTS creative_context_pack_members (
|
|
126
|
+
id TEXT PRIMARY KEY, pack_id TEXT NOT NULL, item_id TEXT NOT NULL,
|
|
127
|
+
item_version_id TEXT NOT NULL, ordinal INTEGER NOT NULL, reason TEXT, score REAL,
|
|
128
|
+
score_metadata TEXT NOT NULL DEFAULT '{}', created_at TEXT NOT NULL,
|
|
129
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
130
|
+
);
|
|
131
|
+
CREATE TABLE IF NOT EXISTS creative_context_pack_pins (
|
|
132
|
+
id TEXT PRIMARY KEY, pack_id TEXT NOT NULL, created_at TEXT NOT NULL,
|
|
133
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
134
|
+
);
|
|
135
|
+
CREATE TABLE IF NOT EXISTS creative_context_jobs (
|
|
136
|
+
id TEXT PRIMARY KEY, source_id TEXT, kind TEXT NOT NULL, status TEXT NOT NULL DEFAULT 'queued',
|
|
137
|
+
mode TEXT, progress_current INTEGER NOT NULL DEFAULT 0, progress_total INTEGER,
|
|
138
|
+
attempts INTEGER NOT NULL DEFAULT 0, lease_owner TEXT, lease_token TEXT, lease_expires_at TEXT,
|
|
139
|
+
next_resume_at TEXT, budget TEXT, checkpoint TEXT, request TEXT NOT NULL DEFAULT '{}', result TEXT, error TEXT,
|
|
140
|
+
created_at TEXT NOT NULL, started_at TEXT, completed_at TEXT,
|
|
141
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
142
|
+
);
|
|
143
|
+
CREATE TABLE IF NOT EXISTS creative_context_feedback (
|
|
144
|
+
id TEXT PRIMARY KEY, item_id TEXT NOT NULL, item_version_id TEXT NOT NULL,
|
|
145
|
+
signal TEXT NOT NULL, note TEXT, created_at TEXT NOT NULL,
|
|
146
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
147
|
+
);
|
|
148
|
+
CREATE TABLE IF NOT EXISTS creative_context_suggestions (
|
|
149
|
+
id TEXT PRIMARY KEY, kind TEXT NOT NULL, status TEXT NOT NULL DEFAULT 'proposed',
|
|
150
|
+
profile_id TEXT, item_id TEXT NOT NULL, item_version_id TEXT NOT NULL,
|
|
151
|
+
reason TEXT, payload TEXT NOT NULL DEFAULT '{}', created_at TEXT NOT NULL,
|
|
152
|
+
updated_at TEXT NOT NULL, owner_email TEXT NOT NULL, org_id TEXT
|
|
153
|
+
);
|
|
154
|
+
CREATE TABLE IF NOT EXISTS creative_context_generation_records (
|
|
155
|
+
id TEXT PRIMARY KEY, app_id TEXT NOT NULL, artifact_type TEXT NOT NULL,
|
|
156
|
+
artifact_id TEXT NOT NULL, context_mode TEXT NOT NULL, context_pack_id TEXT,
|
|
157
|
+
element_provenance TEXT NOT NULL DEFAULT '[]', created_at TEXT NOT NULL,
|
|
158
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
159
|
+
);
|
|
160
|
+
`,
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
version: 2,
|
|
164
|
+
name: "creative-context-hot-path-indexes",
|
|
165
|
+
sql: `
|
|
166
|
+
CREATE UNIQUE INDEX IF NOT EXISTS creative_context_items_source_external_uidx
|
|
167
|
+
ON creative_context_items (source_id, external_id);
|
|
168
|
+
CREATE UNIQUE INDEX IF NOT EXISTS creative_context_versions_item_number_uidx
|
|
169
|
+
ON creative_context_item_versions (item_id, version_number);
|
|
170
|
+
CREATE UNIQUE INDEX IF NOT EXISTS creative_context_chunks_version_ordinal_uidx
|
|
171
|
+
ON creative_context_chunks (item_version_id, ordinal);
|
|
172
|
+
CREATE UNIQUE INDEX IF NOT EXISTS creative_context_dna_profile_version_uidx
|
|
173
|
+
ON creative_context_brand_dna_versions (profile_id, version_number);
|
|
174
|
+
CREATE UNIQUE INDEX IF NOT EXISTS creative_context_pack_members_pack_item_uidx
|
|
175
|
+
ON creative_context_pack_members (pack_id, item_id);
|
|
176
|
+
CREATE UNIQUE INDEX IF NOT EXISTS creative_context_pack_pins_pack_owner_uidx
|
|
177
|
+
ON creative_context_pack_pins (pack_id, owner_email);
|
|
178
|
+
CREATE UNIQUE INDEX IF NOT EXISTS creative_context_embeddings_target_uidx
|
|
179
|
+
ON creative_context_embeddings (embedding_set_id, target_type, target_id);
|
|
180
|
+
CREATE INDEX IF NOT EXISTS creative_context_sources_owner_org_updated_idx
|
|
181
|
+
ON creative_context_sources (owner_email, org_id, updated_at);
|
|
182
|
+
CREATE INDEX IF NOT EXISTS creative_context_source_shares_lookup_idx
|
|
183
|
+
ON creative_context_source_shares (resource_id, principal_type, principal_id);
|
|
184
|
+
CREATE INDEX IF NOT EXISTS creative_context_items_source_state_idx
|
|
185
|
+
ON creative_context_items (source_id, upstream_access, curation_status);
|
|
186
|
+
CREATE INDEX IF NOT EXISTS creative_context_versions_item_created_idx
|
|
187
|
+
ON creative_context_item_versions (item_id, created_at);
|
|
188
|
+
CREATE INDEX IF NOT EXISTS creative_context_chunks_item_version_idx
|
|
189
|
+
ON creative_context_chunks (item_id, item_version_id);
|
|
190
|
+
CREATE INDEX IF NOT EXISTS creative_context_media_item_version_idx
|
|
191
|
+
ON creative_context_media (item_id, item_version_id);
|
|
192
|
+
CREATE INDEX IF NOT EXISTS creative_context_media_content_hash_idx
|
|
193
|
+
ON creative_context_media (content_hash);
|
|
194
|
+
CREATE INDEX IF NOT EXISTS creative_context_edges_from_version_idx
|
|
195
|
+
ON creative_context_edges (from_item_id, from_item_version_id);
|
|
196
|
+
CREATE INDEX IF NOT EXISTS creative_context_brand_profiles_owner_org_updated_idx
|
|
197
|
+
ON creative_context_brand_profiles (owner_email, org_id, updated_at);
|
|
198
|
+
CREATE INDEX IF NOT EXISTS creative_context_brand_profile_shares_lookup_idx
|
|
199
|
+
ON creative_context_brand_profile_shares (resource_id, principal_type, principal_id);
|
|
200
|
+
CREATE INDEX IF NOT EXISTS creative_context_dna_evidence_version_idx
|
|
201
|
+
ON creative_context_brand_dna_evidence (dna_version_id, item_version_id);
|
|
202
|
+
CREATE INDEX IF NOT EXISTS creative_context_embeddings_set_version_idx
|
|
203
|
+
ON creative_context_embeddings (embedding_set_id, item_version_id);
|
|
204
|
+
CREATE INDEX IF NOT EXISTS creative_context_packs_owner_org_created_idx
|
|
205
|
+
ON creative_context_packs (owner_email, org_id, created_at);
|
|
206
|
+
CREATE INDEX IF NOT EXISTS creative_context_pack_shares_lookup_idx
|
|
207
|
+
ON creative_context_pack_shares (resource_id, principal_type, principal_id);
|
|
208
|
+
CREATE INDEX IF NOT EXISTS creative_context_pack_members_pack_ordinal_idx
|
|
209
|
+
ON creative_context_pack_members (pack_id, ordinal);
|
|
210
|
+
CREATE INDEX IF NOT EXISTS creative_context_jobs_status_lease_idx
|
|
211
|
+
ON creative_context_jobs (status, next_resume_at, lease_expires_at);
|
|
212
|
+
CREATE INDEX IF NOT EXISTS creative_context_jobs_owner_created_idx
|
|
213
|
+
ON creative_context_jobs (owner_email, org_id, created_at);
|
|
214
|
+
CREATE INDEX IF NOT EXISTS creative_context_suggestions_owner_status_idx
|
|
215
|
+
ON creative_context_suggestions (owner_email, status, created_at);
|
|
216
|
+
CREATE INDEX IF NOT EXISTS creative_context_generation_artifact_idx
|
|
217
|
+
ON creative_context_generation_records (app_id, artifact_type, artifact_id, created_at);
|
|
218
|
+
`,
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
version: 3,
|
|
222
|
+
name: "creative-context-brand-profile-audit",
|
|
223
|
+
sql: `
|
|
224
|
+
CREATE TABLE IF NOT EXISTS creative_context_brand_profile_audit (
|
|
225
|
+
id TEXT PRIMARY KEY, profile_id TEXT NOT NULL, operation TEXT NOT NULL,
|
|
226
|
+
actor_email TEXT NOT NULL, details TEXT NOT NULL DEFAULT '{}', created_at TEXT NOT NULL,
|
|
227
|
+
owner_email TEXT NOT NULL, org_id TEXT
|
|
228
|
+
);
|
|
229
|
+
CREATE INDEX IF NOT EXISTS creative_context_brand_profile_audit_lookup_idx
|
|
230
|
+
ON creative_context_brand_profile_audit (profile_id, created_at);
|
|
231
|
+
`,
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
version: 4,
|
|
235
|
+
name: "creative-context-job-deduplication",
|
|
236
|
+
sql: `
|
|
237
|
+
ALTER TABLE creative_context_jobs ADD COLUMN dedupe_key TEXT;
|
|
238
|
+
CREATE UNIQUE INDEX IF NOT EXISTS creative_context_jobs_dedupe_uidx
|
|
239
|
+
ON creative_context_jobs (dedupe_key);
|
|
240
|
+
`,
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
version: 5,
|
|
244
|
+
name: "creative-context-tenant-job-deduplication",
|
|
245
|
+
sql: `
|
|
246
|
+
ALTER TABLE creative_context_jobs ADD COLUMN dedupe_scope TEXT;
|
|
247
|
+
ALTER TABLE creative_context_jobs ADD COLUMN scoped_dedupe_key TEXT;
|
|
248
|
+
CREATE UNIQUE INDEX IF NOT EXISTS creative_context_jobs_scoped_dedupe_uidx
|
|
249
|
+
ON creative_context_jobs (dedupe_scope, scoped_dedupe_key);
|
|
250
|
+
`,
|
|
251
|
+
},
|
|
252
|
+
];
|
|
253
|
+
//# sourceMappingURL=migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/schema/migrations.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,yBAAyB,GAA+B;IACnE;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,6BAA6B;QACnC,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2JJ;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,mCAAmC;QACzC,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqDJ;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,sCAAsC;QAC5C,GAAG,EAAE;;;;;;;;KAQJ;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,oCAAoC;QAC1C,GAAG,EAAE;;;;KAIJ;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,2CAA2C;QACjD,GAAG,EAAE;;;;;KAKJ;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface RankedCandidate<T> {
|
|
2
|
+
key: string;
|
|
3
|
+
value: T;
|
|
4
|
+
score: number;
|
|
5
|
+
reason?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface FusedCandidate<T> extends RankedCandidate<T> {
|
|
8
|
+
laneRanks: Record<string, number>;
|
|
9
|
+
reasons: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare function reciprocalRankFusion<T>(lanes: Readonly<Record<string, readonly RankedCandidate<T>[]>>, options?: {
|
|
12
|
+
rankConstant?: number;
|
|
13
|
+
limit?: number;
|
|
14
|
+
}): FusedCandidate<T>[];
|
|
15
|
+
//# sourceMappingURL=fusion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fusion.d.ts","sourceRoot":"","sources":["../../src/search/fusion.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9D,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,cAAc,CAAC,CAAC,CAAC,EAAE,CAuBrB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function reciprocalRankFusion(lanes, options = {}) {
|
|
2
|
+
const rankConstant = Math.max(1, options.rankConstant ?? 60);
|
|
3
|
+
const fused = new Map();
|
|
4
|
+
for (const [lane, candidates] of Object.entries(lanes)) {
|
|
5
|
+
candidates.forEach((candidate, index) => {
|
|
6
|
+
const rank = index + 1;
|
|
7
|
+
const current = fused.get(candidate.key) ?? {
|
|
8
|
+
...candidate,
|
|
9
|
+
score: 0,
|
|
10
|
+
laneRanks: {},
|
|
11
|
+
reasons: [],
|
|
12
|
+
};
|
|
13
|
+
current.score += 1 / (rankConstant + rank);
|
|
14
|
+
current.laneRanks[lane] = rank;
|
|
15
|
+
if (candidate.reason && !current.reasons.includes(candidate.reason)) {
|
|
16
|
+
current.reasons.push(candidate.reason);
|
|
17
|
+
}
|
|
18
|
+
fused.set(candidate.key, current);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return [...fused.values()]
|
|
22
|
+
.sort((a, b) => b.score - a.score || a.key.localeCompare(b.key))
|
|
23
|
+
.slice(0, Math.max(1, options.limit ?? 40));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=fusion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fusion.js","sourceRoot":"","sources":["../../src/search/fusion.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,oBAAoB,CAClC,KAA8D,EAC9D,OAAO,GAA8C,EAAE;IAEvD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI;gBAC1C,GAAG,SAAS;gBACZ,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,EAAE;aACZ,CAAC;YACF,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;YAC3C,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;SACvB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAC/D,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type SearchMatchMode } from "@agent-native/core/search-utils";
|
|
2
|
+
export declare function shouldUsePostgresFts(matchMode: SearchMatchMode | undefined): matchMode is "allTerms" | "anyTerm" | "phrase" | undefined;
|
|
3
|
+
export declare function matchesCreativeSearchMode(value: string, query: string, matchMode: SearchMatchMode): boolean;
|
|
4
|
+
//# sourceMappingURL=mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/search/mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,iCAAiC,CAAC;AAEzC,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,8DAE1E;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,eAAe,GACzB,OAAO,CAOT"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { matchesSearchMode, } from "@agent-native/core/search-utils";
|
|
2
|
+
export function shouldUsePostgresFts(matchMode) {
|
|
3
|
+
return matchMode !== "regex";
|
|
4
|
+
}
|
|
5
|
+
export function matchesCreativeSearchMode(value, query, matchMode) {
|
|
6
|
+
if (matchMode !== "phrase") {
|
|
7
|
+
return matchesSearchMode(value, query, matchMode);
|
|
8
|
+
}
|
|
9
|
+
const normalizedValue = value.toLocaleLowerCase().replace(/\s+/g, " ");
|
|
10
|
+
const normalizedQuery = query.trim().toLocaleLowerCase().replace(/\s+/g, " ");
|
|
11
|
+
return Boolean(normalizedQuery) && normalizedValue.includes(normalizedQuery);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/search/mode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAElB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,UAAU,oBAAoB,CAAC,SAAsC;IACzE,OAAO,SAAS,KAAK,OAAO,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAa,EACb,KAAa,EACb,SAA0B;IAE1B,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,eAAe,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9E,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { DbExec } from "@agent-native/core/db";
|
|
2
|
+
export interface PostgresFtsHit {
|
|
3
|
+
chunkId: string;
|
|
4
|
+
itemVersionId: string;
|
|
5
|
+
score: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function ensurePostgresFts(db: DbExec): Promise<boolean>;
|
|
8
|
+
export declare function upsertPostgresFtsDocument(db: DbExec, input: {
|
|
9
|
+
chunkId: string;
|
|
10
|
+
itemVersionId: string;
|
|
11
|
+
title: string;
|
|
12
|
+
summary?: string | null;
|
|
13
|
+
body: string;
|
|
14
|
+
updatedAt?: string;
|
|
15
|
+
}): Promise<boolean>;
|
|
16
|
+
export declare function queryPostgresFts(db: DbExec, input: {
|
|
17
|
+
query: string;
|
|
18
|
+
allowedChunkIds?: readonly string[];
|
|
19
|
+
limit?: number;
|
|
20
|
+
}): Promise<PostgresFtsHit[]>;
|
|
21
|
+
export declare function deletePostgresFtsDocuments(db: DbExec, chunkIds: readonly string[]): Promise<number>;
|
|
22
|
+
//# sourceMappingURL=postgres-fts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-fts.d.ts","sourceRoot":"","sources":["../../src/search/postgres-fts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAKpD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAcpE;AAED,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACA,OAAO,CAAC,OAAO,CAAC,CA4BlB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IACL,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,cAAc,EAAE,CAAC,CAuB3B;AAED,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,OAAO,CAAC,MAAM,CAAC,CASjB"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { isPostgres } from "@agent-native/core/db";
|
|
2
|
+
const FTS_TABLE = "creative_context_search_documents";
|
|
3
|
+
export async function ensurePostgresFts(db) {
|
|
4
|
+
if (!isPostgres())
|
|
5
|
+
return false;
|
|
6
|
+
await db.execute(`
|
|
7
|
+
CREATE TABLE IF NOT EXISTS ${FTS_TABLE} (
|
|
8
|
+
chunk_id TEXT PRIMARY KEY,
|
|
9
|
+
item_version_id TEXT NOT NULL,
|
|
10
|
+
document TSVECTOR NOT NULL,
|
|
11
|
+
updated_at TEXT NOT NULL
|
|
12
|
+
)
|
|
13
|
+
`);
|
|
14
|
+
await db.execute(`CREATE INDEX IF NOT EXISTS creative_context_search_documents_gin ON ${FTS_TABLE} USING GIN (document)`);
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
export async function upsertPostgresFtsDocument(db, input) {
|
|
18
|
+
if (!(await ensurePostgresFts(db)))
|
|
19
|
+
return false;
|
|
20
|
+
await db.execute({
|
|
21
|
+
sql: `
|
|
22
|
+
INSERT INTO ${FTS_TABLE} (chunk_id, item_version_id, document, updated_at)
|
|
23
|
+
VALUES (
|
|
24
|
+
?,
|
|
25
|
+
?,
|
|
26
|
+
setweight(to_tsvector('simple', ?), 'A') ||
|
|
27
|
+
setweight(to_tsvector('simple', ?), 'B') ||
|
|
28
|
+
setweight(to_tsvector('simple', ?), 'C'),
|
|
29
|
+
?
|
|
30
|
+
)
|
|
31
|
+
ON CONFLICT (chunk_id) DO UPDATE SET
|
|
32
|
+
item_version_id = EXCLUDED.item_version_id,
|
|
33
|
+
document = EXCLUDED.document,
|
|
34
|
+
updated_at = EXCLUDED.updated_at
|
|
35
|
+
`,
|
|
36
|
+
args: [
|
|
37
|
+
input.chunkId,
|
|
38
|
+
input.itemVersionId,
|
|
39
|
+
input.title,
|
|
40
|
+
input.summary ?? "",
|
|
41
|
+
input.body,
|
|
42
|
+
input.updatedAt ?? new Date().toISOString(),
|
|
43
|
+
],
|
|
44
|
+
});
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
export async function queryPostgresFts(db, input) {
|
|
48
|
+
if (!isPostgres() || input.allowedChunkIds?.length === 0)
|
|
49
|
+
return [];
|
|
50
|
+
await ensurePostgresFts(db);
|
|
51
|
+
const placeholders = input.allowedChunkIds?.map(() => "?").join(", ");
|
|
52
|
+
const accessClause = placeholders ? `chunk_id IN (${placeholders}) AND` : "";
|
|
53
|
+
const limit = Math.max(1, Math.min(200, Math.floor(input.limit ?? 40)));
|
|
54
|
+
const result = await db.execute({
|
|
55
|
+
sql: `
|
|
56
|
+
SELECT chunk_id, item_version_id,
|
|
57
|
+
ts_rank_cd(document, websearch_to_tsquery('simple', ?)) AS score
|
|
58
|
+
FROM ${FTS_TABLE}
|
|
59
|
+
WHERE ${accessClause}
|
|
60
|
+
document @@ websearch_to_tsquery('simple', ?)
|
|
61
|
+
ORDER BY score DESC, chunk_id ASC
|
|
62
|
+
LIMIT ?
|
|
63
|
+
`,
|
|
64
|
+
args: [input.query, ...(input.allowedChunkIds ?? []), input.query, limit],
|
|
65
|
+
});
|
|
66
|
+
return result.rows.map((row) => ({
|
|
67
|
+
chunkId: String(row.chunk_id),
|
|
68
|
+
itemVersionId: String(row.item_version_id),
|
|
69
|
+
score: Number(row.score),
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
export async function deletePostgresFtsDocuments(db, chunkIds) {
|
|
73
|
+
if (!isPostgres() || chunkIds.length === 0)
|
|
74
|
+
return 0;
|
|
75
|
+
await ensurePostgresFts(db);
|
|
76
|
+
const placeholders = chunkIds.map(() => "?").join(", ");
|
|
77
|
+
const result = await db.execute({
|
|
78
|
+
sql: `DELETE FROM ${FTS_TABLE} WHERE chunk_id IN (${placeholders})`,
|
|
79
|
+
args: [...chunkIds],
|
|
80
|
+
});
|
|
81
|
+
return result.rowsAffected;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=postgres-fts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-fts.js","sourceRoot":"","sources":["../../src/search/postgres-fts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface PublishedBrandContextInput {
|
|
2
|
+
profileId: string;
|
|
3
|
+
dnaVersionId: string;
|
|
4
|
+
colors?: unknown;
|
|
5
|
+
fonts?: unknown;
|
|
6
|
+
numericScales?: unknown;
|
|
7
|
+
voiceDescriptors?: unknown;
|
|
8
|
+
layoutPatterns?: unknown;
|
|
9
|
+
logos?: unknown;
|
|
10
|
+
terminology?: unknown;
|
|
11
|
+
exclusions?: unknown;
|
|
12
|
+
inventory?: unknown;
|
|
13
|
+
}
|
|
14
|
+
export declare function compilePublishedBrandContext(input: PublishedBrandContextInput): string;
|
|
15
|
+
//# sourceMappingURL=brand-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand-context.d.ts","sourceRoot":"","sources":["../../src/server/brand-context.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA2GD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,0BAA0B,GAChC,MAAM,CAuBR"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
const HEX_COLOR = /^#[0-9a-f]{6}(?:[0-9a-f]{2})?$/i;
|
|
2
|
+
const SAFE_TOKEN = /^[\p{L}\p{N}][\p{L}\p{N} ._+\-/]{0,79}$/u;
|
|
3
|
+
const VOICE_DESCRIPTORS = new Set([
|
|
4
|
+
"bold",
|
|
5
|
+
"casual",
|
|
6
|
+
"concise",
|
|
7
|
+
"direct",
|
|
8
|
+
"formal",
|
|
9
|
+
"optimistic",
|
|
10
|
+
"playful",
|
|
11
|
+
"restrained",
|
|
12
|
+
"technical",
|
|
13
|
+
"warm",
|
|
14
|
+
]);
|
|
15
|
+
function safeToken(value) {
|
|
16
|
+
if (typeof value !== "string")
|
|
17
|
+
return null;
|
|
18
|
+
const normalized = value.trim().replace(/\s+/g, " ");
|
|
19
|
+
return SAFE_TOKEN.test(normalized) ? normalized : null;
|
|
20
|
+
}
|
|
21
|
+
function stringArray(value, limit = 30) {
|
|
22
|
+
if (!Array.isArray(value))
|
|
23
|
+
return [];
|
|
24
|
+
return value
|
|
25
|
+
.map(safeToken)
|
|
26
|
+
.filter((entry) => Boolean(entry))
|
|
27
|
+
.slice(0, limit);
|
|
28
|
+
}
|
|
29
|
+
function structuredColors(value) {
|
|
30
|
+
if (!Array.isArray(value))
|
|
31
|
+
return [];
|
|
32
|
+
return value
|
|
33
|
+
.map((entry) => {
|
|
34
|
+
if (typeof entry === "string") {
|
|
35
|
+
const value = entry.toUpperCase();
|
|
36
|
+
return HEX_COLOR.test(value) ? { value } : null;
|
|
37
|
+
}
|
|
38
|
+
if (!entry || typeof entry !== "object")
|
|
39
|
+
return null;
|
|
40
|
+
const record = entry;
|
|
41
|
+
const value = typeof record.value === "string" ? record.value.toUpperCase() : "";
|
|
42
|
+
if (!HEX_COLOR.test(value))
|
|
43
|
+
return null;
|
|
44
|
+
return {
|
|
45
|
+
...(safeToken(record.name) ? { name: safeToken(record.name) } : {}),
|
|
46
|
+
...(safeToken(record.role) ? { role: safeToken(record.role) } : {}),
|
|
47
|
+
value,
|
|
48
|
+
};
|
|
49
|
+
})
|
|
50
|
+
.filter((entry) => Boolean(entry))
|
|
51
|
+
.slice(0, 40);
|
|
52
|
+
}
|
|
53
|
+
function structuredFonts(value) {
|
|
54
|
+
if (!Array.isArray(value))
|
|
55
|
+
return [];
|
|
56
|
+
return value
|
|
57
|
+
.map((entry) => {
|
|
58
|
+
if (typeof entry === "string") {
|
|
59
|
+
const family = safeToken(entry);
|
|
60
|
+
return family ? { family } : null;
|
|
61
|
+
}
|
|
62
|
+
if (!entry || typeof entry !== "object")
|
|
63
|
+
return null;
|
|
64
|
+
const record = entry;
|
|
65
|
+
const family = safeToken(record.family);
|
|
66
|
+
if (!family)
|
|
67
|
+
return null;
|
|
68
|
+
const weight = Number(record.weight);
|
|
69
|
+
return {
|
|
70
|
+
family,
|
|
71
|
+
...(safeToken(record.role) ? { role: safeToken(record.role) } : {}),
|
|
72
|
+
...(Number.isInteger(weight) && weight >= 100 && weight <= 1000
|
|
73
|
+
? { weight }
|
|
74
|
+
: {}),
|
|
75
|
+
};
|
|
76
|
+
})
|
|
77
|
+
.filter((entry) => Boolean(entry))
|
|
78
|
+
.slice(0, 20);
|
|
79
|
+
}
|
|
80
|
+
function numericScales(value) {
|
|
81
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
82
|
+
return {};
|
|
83
|
+
const result = {};
|
|
84
|
+
for (const [key, raw] of Object.entries(value)) {
|
|
85
|
+
const name = safeToken(key);
|
|
86
|
+
if (!name || !Array.isArray(raw))
|
|
87
|
+
continue;
|
|
88
|
+
const values = raw
|
|
89
|
+
.map(Number)
|
|
90
|
+
.filter((entry) => Number.isFinite(entry) && entry >= 0 && entry <= 10000)
|
|
91
|
+
.slice(0, 20);
|
|
92
|
+
if (values.length)
|
|
93
|
+
result[name] = values;
|
|
94
|
+
}
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
function structuredTerminology(value) {
|
|
98
|
+
if (!Array.isArray(value))
|
|
99
|
+
return [];
|
|
100
|
+
return value
|
|
101
|
+
.map((entry) => {
|
|
102
|
+
if (!entry || typeof entry !== "object")
|
|
103
|
+
return null;
|
|
104
|
+
const record = entry;
|
|
105
|
+
const use = safeToken(record.use);
|
|
106
|
+
if (!use)
|
|
107
|
+
return null;
|
|
108
|
+
const avoid = safeToken(record.avoid);
|
|
109
|
+
return { use, ...(avoid ? { avoid } : {}) };
|
|
110
|
+
})
|
|
111
|
+
.filter((entry) => Boolean(entry))
|
|
112
|
+
.slice(0, 40);
|
|
113
|
+
}
|
|
114
|
+
function structuredInventory(value) {
|
|
115
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
116
|
+
return {};
|
|
117
|
+
const result = {};
|
|
118
|
+
for (const [key, raw] of Object.entries(value)) {
|
|
119
|
+
const name = safeToken(key);
|
|
120
|
+
const count = Number(raw);
|
|
121
|
+
if (name && Number.isInteger(count) && count >= 0 && count <= 10_000_000) {
|
|
122
|
+
result[name] = count;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return result;
|
|
126
|
+
}
|
|
127
|
+
export function compilePublishedBrandContext(input) {
|
|
128
|
+
const voiceDescriptors = stringArray(input.voiceDescriptors).filter((value) => VOICE_DESCRIPTORS.has(value.toLowerCase()));
|
|
129
|
+
const data = {
|
|
130
|
+
profileId: safeToken(input.profileId) ?? "published-profile",
|
|
131
|
+
dnaVersionId: safeToken(input.dnaVersionId) ?? "published-version",
|
|
132
|
+
colors: structuredColors(input.colors),
|
|
133
|
+
fonts: structuredFonts(input.fonts),
|
|
134
|
+
numericScales: numericScales(input.numericScales),
|
|
135
|
+
voiceDescriptors,
|
|
136
|
+
layoutPatterns: stringArray(input.layoutPatterns),
|
|
137
|
+
logos: stringArray(input.logos),
|
|
138
|
+
terminology: structuredTerminology(input.terminology),
|
|
139
|
+
exclusions: stringArray(input.exclusions),
|
|
140
|
+
inventory: structuredInventory(input.inventory),
|
|
141
|
+
};
|
|
142
|
+
return [
|
|
143
|
+
`<brand-context profile-id=${JSON.stringify(data.profileId)} dna-version-id=${JSON.stringify(data.dnaVersionId)}>`,
|
|
144
|
+
JSON.stringify(data),
|
|
145
|
+
"Use approved company examples before generating new creative work. Search creative context for 2-5 task-relevant examples, keep style/layout examples separate from factual evidence, and preserve the resulting context pack as provenance.",
|
|
146
|
+
"</brand-context>",
|
|
147
|
+
].join("\n");
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=brand-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand-context.js","sourceRoot":"","sources":["../../src/server/brand-context.ts"],"names":[],"mappings":"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"}
|