okengine 0.18.4 → 0.19.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/AGENTS.md +18 -10
- package/README.md +2 -2
- package/package.json +51 -50
- package/site/content/docs/ai/index.mdx +25 -6
- package/site/content/docs/ai/llms-txt.mdx +1 -1
- package/site/content/docs/ai/meta.json +1 -1
- package/site/content/docs/ai/skills.mdx +4 -1
- package/site/content/docs/ai/try-it.mdx +58 -0
- package/site/content/docs/client/auth.mdx +208 -0
- package/site/content/docs/client/calling.mdx +451 -0
- package/site/content/docs/client/index.mdx +209 -0
- package/site/content/docs/client/live.mdx +234 -0
- package/site/content/docs/client/meta.json +5 -0
- package/site/content/docs/client/react.mdx +249 -0
- package/site/content/docs/elements/ai/agents.mdx +232 -0
- package/site/content/docs/elements/ai/index.mdx +341 -0
- package/site/content/docs/elements/ai/mcp.mdx +275 -0
- package/site/content/docs/elements/ai/meta.json +5 -0
- package/site/content/docs/elements/ai/models.mdx +283 -0
- package/site/content/docs/elements/ai/prompts.mdx +256 -0
- package/site/content/docs/elements/channel/email.mdx +266 -0
- package/site/content/docs/elements/channel/index.mdx +344 -0
- package/site/content/docs/elements/channel/meta.json +5 -0
- package/site/content/docs/elements/channel/push.mdx +218 -0
- package/site/content/docs/elements/channel/receipts.mdx +206 -0
- package/site/content/docs/elements/channel/sms.mdx +264 -0
- package/site/content/docs/elements/channel/whatsapp.mdx +220 -0
- package/site/content/docs/elements/clock/index.mdx +300 -0
- package/site/content/docs/elements/clock/meta.json +5 -0
- package/site/content/docs/elements/clock/schedules.mdx +508 -0
- package/site/content/docs/elements/clock/sleep.mdx +445 -0
- package/site/content/docs/elements/flow/consumers.mdx +707 -0
- package/site/content/docs/elements/flow/http.mdx +1080 -0
- package/site/content/docs/elements/flow/index.mdx +618 -0
- package/site/content/docs/elements/flow/meta.json +5 -0
- package/site/content/docs/elements/flow/routing.mdx +559 -0
- package/site/content/docs/elements/flow/workflows.mdx +640 -0
- package/site/content/docs/elements/gate/auth.mdx +371 -0
- package/site/content/docs/elements/gate/authorization.mdx +298 -0
- package/site/content/docs/elements/gate/index.mdx +418 -0
- package/site/content/docs/elements/gate/meta.json +5 -0
- package/site/content/docs/elements/gate/rate-limits.mdx +365 -0
- package/site/content/docs/elements/gate/rls.mdx +303 -0
- package/site/content/docs/elements/gate/tenancy.mdx +372 -0
- package/site/content/docs/elements/index.mdx +52 -11
- package/site/content/docs/elements/signal/broadcast.mdx +517 -0
- package/site/content/docs/elements/signal/index.mdx +352 -0
- package/site/content/docs/elements/signal/live.mdx +590 -0
- package/site/content/docs/elements/signal/meta.json +5 -0
- package/site/content/docs/elements/signal/once.mdx +596 -0
- package/site/content/docs/elements/store/files.mdx +659 -0
- package/site/content/docs/elements/store/index.mdx +310 -0
- package/site/content/docs/elements/store/kv.mdx +629 -0
- package/site/content/docs/elements/store/meta.json +5 -0
- package/site/content/docs/elements/store/search.mdx +946 -0
- package/site/content/docs/elements/store/sql.mdx +937 -0
- package/site/content/docs/elements/vault/config.mdx +256 -0
- package/site/content/docs/elements/vault/index.mdx +356 -0
- package/site/content/docs/elements/vault/meta.json +5 -0
- package/site/content/docs/elements/vault/rotation.mdx +273 -0
- package/site/content/docs/elements/vault/secrets.mdx +285 -0
- package/site/content/docs/index.mdx +78 -30
- package/site/content/docs/meta.json +11 -8
- package/site/content/docs/plugins/cors.mdx +2 -1
- package/site/content/docs/plugins/csrf.mdx +4 -1
- package/site/content/docs/plugins/headers.mdx +2 -1
- package/site/content/docs/plugins/ip-allowlist.mdx +2 -1
- package/site/content/docs/plugins/magic-link.mdx +6 -0
- package/site/content/docs/plugins/maintenance-mode.mdx +2 -1
- package/site/content/docs/plugins/oauth.mdx +1 -1
- package/site/content/docs/plugins/otp.mdx +12 -1
- package/site/content/docs/plugins/passkey.mdx +39 -15
- package/site/content/docs/plugins/two-factor.mdx +91 -34
- package/site/content/docs/plugins/username.mdx +1 -1
- package/site/content/docs/recipes/caddy.mdx +3 -3
- package/site/content/docs/recipes/index.mdx +18 -28
- package/site/content/docs/recipes/mailpit.mdx +1 -1
- package/site/content/docs/recipes/meilisearch.mdx +3 -3
- package/site/content/docs/recipes/meta.json +1 -4
- package/site/content/docs/recipes/nginx.mdx +2 -2
- package/site/content/docs/recipes/openrouter.mdx +283 -0
- package/site/content/docs/recipes/pgdog.mdx +3 -3
- package/site/content/docs/recipes/postgres.mdx +1 -2
- package/site/content/docs/recipes/rustfs.mdx +2 -2
- package/site/content/docs/recipes/traefik.mdx +3 -3
- package/site/content/docs/reference/cli.mdx +231 -0
- package/site/content/docs/reference/configuration.mdx +30 -10
- package/site/content/docs/reference/environment-variables.mdx +93 -20
- package/site/content/docs/reference/errors.mdx +132 -29
- package/site/content/docs/reference/fx.mdx +137 -73
- package/site/content/docs/reference/index.mdx +13 -21
- package/site/content/docs/reference/meta.json +4 -5
- package/site/content/docs/reference/okid.mdx +42 -17
- package/site/content/docs/reference/plugins.mdx +4 -3
- package/site/content/docs/reference/security.mdx +197 -0
- package/site/content/docs/understand/meta.json +5 -0
- package/site/content/docs/understand/the-anatomy.mdx +132 -0
- package/site/content/docs/understand/the-model.mdx +32 -0
- package/site/content/docs/understand/the-problem.mdx +74 -0
- package/site/content/docs/understand/the-vocabulary.mdx +26 -0
- package/src/auth/api-keys.ts +2 -1
- package/src/auth/bindings.ts +64 -16
- package/src/auth/gate-auth.test.ts +6 -1
- package/src/auth/identity.ts +152 -5
- package/src/auth/index.ts +29 -0
- package/src/auth/invites.ts +2 -1
- package/src/auth/method-context.ts +41 -0
- package/src/auth/oauth-as/crypto.ts +2 -1
- package/src/auth/oauth-as/stores.ts +2 -1
- package/src/auth/operator.ts +2 -1
- package/src/auth/sessions-jwt.test.ts +77 -0
- package/src/auth/sessions.ts +20 -4
- package/src/auth/tenants.ts +3 -2
- package/src/auth/two-factor-challenge.test.ts +61 -0
- package/src/auth/two-factor-challenge.ts +284 -0
- package/src/auth/verification.ts +5 -0
- package/src/bench/REPORT.md +49 -0
- package/src/bench/g03-signal-once.bench.ts +1 -1
- package/src/bench/g10-observability-contention.bench.ts +1 -1
- package/src/bench/g17-hybrid-search.bench.ts +572 -0
- package/src/bench/load-app.ts +2 -10
- package/src/cli/ai-setup/ai-setup.test.ts +331 -42
- package/src/cli/ai-setup/apply.ts +294 -52
- package/src/cli/ai-setup/catalog.ts +238 -1342
- package/src/cli/ai-setup/index.ts +14 -99
- package/src/cli/ai-setup/prompts.ts +60 -443
- package/src/cli/ask-seed.test.ts +96 -0
- package/src/cli/ask-seed.ts +82 -0
- package/src/cli/ask-vault-gaps.test.ts +84 -0
- package/src/cli/ask-vault-gaps.ts +146 -0
- package/src/cli/build.ts +2 -2
- package/src/cli/client-add.test.ts +26 -1
- package/src/cli/client-add.ts +106 -27
- package/src/cli/competitor-mention-removal.test.ts +1 -1
- package/src/cli/db-seed.ts +2 -0
- package/src/cli/db.ts +150 -11
- package/src/cli/dev.ts +119 -211
- package/src/cli/docker-clean.ts +2 -2
- package/src/cli/docker-cli.test.ts +1 -1
- package/src/cli/doctor-diff.ts +4 -2
- package/src/cli/doctor-pii.test.ts +1 -1
- package/src/cli/doctor.ts +14 -1
- package/src/cli/hero-meta.test.ts +4 -2
- package/src/cli/load-config.images.test.ts +8 -10
- package/src/cli/load-config.ts +1 -1
- package/src/cli/registry.ts +22 -10
- package/src/cli/replay.ts +3 -1
- package/src/cli/start.ts +1 -1
- package/src/cli/tui/keys.ts +2 -3
- package/src/client/auth/cookies.ts +74 -0
- package/src/client/auth/create-auth-client.ts +636 -0
- package/src/client/auth/denials.ts +99 -0
- package/src/client/auth/session.ts +283 -0
- package/src/client/auth.test.ts +251 -0
- package/src/client/auth.ts +39 -114
- package/src/client/create-with-session.ts +245 -0
- package/src/client/create.ts +51 -5
- package/src/client/index.ts +11 -1
- package/src/client/live.ts +11 -79
- package/src/client/notes-contract.test.ts +5 -10
- package/src/client/sse.ts +137 -0
- package/src/client/stream.ts +147 -0
- package/src/client/transport.test.ts +32 -0
- package/src/client/transport.ts +123 -26
- package/src/client/types.ts +118 -14
- package/src/client-react/index.ts +185 -24
- package/src/client-react/use-live-query.ts +13 -3
- package/src/compiler/aot.test.ts +7 -4
- package/src/compiler/effects-embed.test.ts +56 -0
- package/src/compiler/effects-fetch.test.ts +43 -0
- package/src/compiler/effects-infer.ts +58 -2
- package/src/compiler/extract.test.ts +258 -44
- package/src/compiler/extract.ts +566 -48
- package/src/compiler/fixtures/skyport/src/flows/bookings/index.ts +7 -4
- package/src/compiler/fixtures/skyport/src/flows/bookings/signals.ts +2 -8
- package/src/compiler/fixtures/skyport.expected.json +4 -4
- package/src/compiler/fixtures/triggers/five-triggers.ts +14 -10
- package/src/compiler/response.ts +2 -2
- package/src/compiler/search-writer-isolation.test.ts +40 -0
- package/src/config/index.ts +11 -0
- package/src/console/server/app.ts +17 -23
- package/src/console/server/bind.ts +4 -0
- package/src/console/server/console.test.ts +2 -2
- package/src/console/server/flows-invoke.test.ts +50 -34
- package/src/console/server/flows.ts +436 -255
- package/src/console/server/runs-ingest.test.ts +6 -3
- package/src/console/server/serve.ts +1 -1
- package/src/console/server/signals.test.ts +1 -5
- package/src/console/server/signals.ts +8 -6
- package/src/console/server/state.ts +6 -1
- package/src/console/server/store.ts +1 -1
- package/src/console/ui-next/dist/assets/FileExportIcon-Ck-5od4R.js +1 -0
- package/src/console/ui-next/dist/assets/MoreHorizontalCircle01Icon-gMNGsE37.js +1 -0
- package/src/console/ui-next/dist/assets/PlusSignIcon-CwG3nxfu.js +1 -0
- package/src/console/ui-next/dist/assets/UnavailableIcon-D9cvHVPr.js +1 -0
- package/src/console/ui-next/dist/assets/UserIcon-DaE2PB5_.js +1 -0
- package/src/console/ui-next/dist/assets/access-page-DFeymU07.js +4 -0
- package/src/console/ui-next/dist/assets/agent-disclosure-U1rdfblp.js +1 -0
- package/src/console/ui-next/dist/assets/cache-glyph-BeFJeqBG.js +1 -0
- package/src/console/ui-next/dist/assets/call-pii-button-CVAONPii.js +1 -0
- package/src/console/ui-next/dist/assets/collapsible-D2A6NJ-3.js +1 -0
- package/src/console/ui-next/dist/assets/copy-inline-button-CAYD18cr.js +1 -0
- package/src/console/ui-next/dist/assets/dagre.esm-B1_XeuLP.js +1 -0
- package/src/console/ui-next/dist/assets/detail-header-DVWNjWjg.js +1 -0
- package/src/console/ui-next/dist/assets/dropdown-menu-4h2LOVXM.js +1 -0
- package/src/console/ui-next/dist/assets/duration-tone-Cgk_h5ja.js +9 -0
- package/src/console/ui-next/dist/assets/element-icons-BI8cJgdh.js +1 -0
- package/src/console/ui-next/dist/assets/explorer-empty-CJs5A-wm.js +1 -0
- package/src/console/ui-next/dist/assets/flows-page-Dss7941e.js +1 -0
- package/src/console/ui-next/dist/assets/highlighted-json-MYZQtRnw.js +154 -0
- package/src/console/ui-next/dist/assets/http-method-Jrh39p7A.js +1 -0
- package/src/console/ui-next/dist/assets/index-D0zS5rKO.css +2 -0
- package/src/console/ui-next/dist/assets/index-DXP2dBIF.js +63 -0
- package/src/console/ui-next/dist/assets/observability-page-HvolXxTI.js +4 -0
- package/src/console/ui-next/dist/assets/react-dom-Ddte4I-Q.js +9 -0
- package/src/console/ui-next/dist/assets/replica-lag-CSh2dzrb.js +18 -0
- package/src/console/ui-next/dist/assets/request-meta-BatF8KrK.js +1 -0
- package/src/console/ui-next/dist/assets/shortcut-keys-3ILd8oGn.js +1 -0
- package/src/console/ui-next/dist/assets/{sql-BskegiFM.js → sql-BsFa4tDR.js} +1 -1
- package/src/console/ui-next/dist/assets/store-page-eiKiHnNe.js +41 -0
- package/src/console/ui-next/dist/assets/trace-detail-sheet-CZkMeKS-.js +2 -0
- package/src/console/ui-next/dist/assets/tree-expand-toggle-CW8y5A2h.js +55 -0
- package/src/console/ui-next/dist/assets/units-page-B_RWJrEO.js +1 -0
- package/src/console/ui-next/dist/assets/{use-vault-list-uk4WVboC.js → use-vault-list-CT4-gajj.js} +1 -1
- package/src/console/ui-next/dist/assets/vault-page-CWrg-A68.js +2 -0
- package/src/console/ui-next/dist/assets/xyflow-CSyC6ryz.css +1 -0
- package/src/console/ui-next/dist/assets/xyflow-yApv7D4e.js +7 -0
- package/src/console/ui-next/dist/index.html +6 -13
- package/src/console/ui-next/seed-invoke-host.ts +21 -18
- package/src/console/ui-next/src/client.ts +7 -2
- package/src/console/ui-next/src/features/flows/graph/element-map.ts +2 -0
- package/src/console/ui-next/src/features/flows/traces/effect-kind.ts +12 -2
- package/src/console/ui-next/src/features/flows/traces/effect-summary.ts +4 -0
- package/src/console/ui-next/src/features/flows/traces/trace-detail-sheet.tsx +8 -0
- package/src/console/ui-next/src/features/flows/traces/waterfall-bars.ts +4 -0
- package/src/console/ui-next/src/features/flows/traces/waterfall-tooltip.ts +9 -3
- package/src/console/ui-next/src/features/store/detail/reveal-cell.tsx +7 -11
- package/src/console/ui-next/src/features/store/detail/store-row-detail-sheet.tsx +2 -2
- package/src/console/ui-next/src/features/store/lib/fields-from-table.ts +2 -0
- package/src/console/ui-next/src/features/store/lib/grid-model.test.ts +25 -1
- package/src/console/ui-next/src/features/store/lib/grid-model.ts +36 -1
- package/src/console/ui-next/src/features/store/query/query-results.tsx +3 -3
- package/src/console/ui-next/src/features/units/detail/effects-summary.tsx +2 -0
- package/src/console/ui-next/src/features/units/lib/call-read-safe.ts +3 -1
- package/src/console/ui-next/src/features/units/lib/fields-from-schema.ts +6 -0
- package/src/docker/ai-model-status.test.ts +1 -12
- package/src/docker/ai-model-status.ts +10 -38
- package/src/docker/compose-up.test.ts +100 -0
- package/src/docker/compose-up.ts +292 -0
- package/src/docker/compose.ts +4 -14
- package/src/docker/derive.ts +9 -34
- package/src/docker/docker.test.ts +16 -261
- package/src/docker/images-config.test.ts +13 -25
- package/src/docker/index.ts +1 -24
- package/src/docker/recipes/index.ts +0 -23
- package/src/docker/recipes/pgdog.ts +6 -4
- package/src/docker/stack-id.test.ts +2 -2
- package/src/docker/stack-id.ts +0 -1
- package/src/docker/types.ts +2 -2
- package/src/drivers/ai-anthropic.ts +10 -0
- package/src/drivers/ai-openai-compatible.ts +34 -7
- package/src/drivers/ai-providers.test.ts +0 -107
- package/src/drivers/ai-stream.test.ts +0 -34
- package/src/drivers/ai-types.ts +17 -8
- package/src/drivers/channel-fcm.ts +6 -1
- package/src/drivers/channel-msegat.ts +6 -1
- package/src/drivers/channel-resend.ts +5 -1
- package/src/drivers/channel-smtp.ts +5 -1
- package/src/drivers/channel-sndr.ts +10 -1
- package/src/drivers/channel-taqnyat-mail.ts +5 -1
- package/src/drivers/channel-taqnyat-whatsapp.ts +6 -1
- package/src/drivers/channel-taqnyat.ts +6 -1
- package/src/drivers/channel-types.ts +10 -0
- package/src/drivers/channel-unifonic.ts +6 -1
- package/src/drivers/channel-wa-cloud.ts +6 -1
- package/src/drivers/channel-webpush.ts +6 -1
- package/src/drivers/external.ts +33 -0
- package/src/drivers/index.ts +0 -10
- package/src/drivers/meilisearch.ts +6 -0
- package/src/drivers/oauth-types.ts +4 -0
- package/src/drivers/postgres.test.ts +74 -3
- package/src/drivers/postgres.ts +175 -6
- package/src/drivers/signal-types.ts +5 -5
- package/src/drivers/types.ts +7 -0
- package/src/drivers/vault-types.ts +5 -0
- package/src/elements/ai/declare.ts +17 -4
- package/src/elements/ai/eval.ts +1 -1
- package/src/elements/ai/mcp-http.ts +1 -1
- package/src/elements/ai/pii.ts +1 -1
- package/src/elements/ai/providers.test.ts +289 -0
- package/src/elements/ai/providers.ts +169 -0
- package/src/elements/ai/runtime.ts +68 -5
- package/src/elements/ai/schema.ts +2 -2
- package/src/elements/ai.test.ts +7 -7
- package/src/elements/ai.ts +17 -1
- package/src/elements/channel/runtime.ts +105 -12
- package/src/elements/clock/cron-fields.test.ts +144 -0
- package/src/elements/clock/cron-fields.ts +185 -0
- package/src/elements/clock/declare.ts +247 -3
- package/src/elements/clock.ts +21 -1
- package/src/elements/index.ts +15 -0
- package/src/elements/signal/chaos-child.ts +1 -2
- package/src/elements/signal/declare.ts +65 -37
- package/src/elements/signal/delivery-modes.test.ts +11 -31
- package/src/elements/signal/dry-run-replay.test.ts +1 -7
- package/src/elements/signal/dry-run-write-isolation.test.ts +1 -7
- package/src/elements/signal/key-ordering.test.ts +6 -26
- package/src/elements/signal/lease-reclaim.test.ts +2 -6
- package/src/elements/signal/optional-emit.test.ts +6 -9
- package/src/elements/signal/order-lifecycle.test.ts +4 -17
- package/src/elements/signal/orphan-messages.test.ts +4 -15
- package/src/elements/signal/reconcile.test.ts +2 -2
- package/src/elements/signal/runtime.ts +1 -1
- package/src/elements/signal/schema-emit.test.ts +4 -8
- package/src/elements/signal.test.ts +24 -49
- package/src/elements/signal.ts +9 -2
- package/src/elements/store/domain-ddl.test.ts +1 -1
- package/src/elements/store/live-http.test.ts +9 -4
- package/src/elements/store/prepare-row.test.ts +123 -0
- package/src/elements/store/resource.ts +43 -12
- package/src/elements/store/schema-decl.ts +117 -0
- package/src/elements/store/search-backfill.ts +205 -0
- package/src/elements/store/search-bind.ts +66 -0
- package/src/elements/store/search-bm25.ts +78 -0
- package/src/elements/store/search-ddl.ts +156 -0
- package/src/elements/store/search-embed-flow.ts +141 -0
- package/src/elements/store/search-errors.ts +34 -0
- package/src/elements/store/search-fusion.ts +112 -0
- package/src/elements/store/search-lsh.ts +179 -0
- package/src/elements/store/search-runtime.ts +300 -0
- package/src/elements/store/search.test.ts +144 -0
- package/src/elements/store/sql-session.test.ts +1 -0
- package/src/elements/store/sql-session.ts +83 -3
- package/src/elements/store/table.ts +23 -2
- package/src/elements/store/upsert-app.test.ts +1 -3
- package/src/elements/store.ts +50 -0
- package/src/full.ts +4 -2
- package/src/http.ts +4 -1
- package/src/i18n/catalogs/ar.ts +14 -6
- package/src/i18n/catalogs/en.ts +14 -6
- package/src/index.ts +6 -1
- package/src/kernel/adopt-barrel-fresh.test.ts +7 -7
- package/src/kernel/adopt-routes.ts +9 -1
- package/src/kernel/app-auth.ts +5 -0
- package/src/kernel/app.ts +102 -9
- package/src/kernel/auto-cache.test.ts +6 -12
- package/src/kernel/auto-registry.test.ts +3 -3
- package/src/kernel/boot-bind/ai.test.ts +22 -19
- package/src/kernel/boot-bind/ai.ts +5 -43
- package/src/kernel/boot-bind/clock.ts +23 -5
- package/src/kernel/boot-bind/honor-config.test.ts +4 -4
- package/src/kernel/boot.test.ts +11 -6
- package/src/kernel/boot.ts +66 -16
- package/src/kernel/boundary-contract.ts +93 -0
- package/src/kernel/budget.test.ts +1 -1
- package/src/kernel/call.ts +89 -0
- package/src/kernel/capability.ts +6 -0
- package/src/kernel/client-descriptor.ts +123 -0
- package/src/kernel/clock-timezone.test.ts +80 -0
- package/src/kernel/correlation.test.ts +1 -1
- package/src/kernel/dry-run.ts +11 -8
- package/src/kernel/effects-stamping.test.ts +42 -9
- package/src/kernel/effects.test.ts +4 -2
- package/src/kernel/effects.ts +51 -9
- package/src/kernel/errors-channel.ts +17 -0
- package/src/kernel/errors-live-resume.ts +3 -2
- package/src/kernel/errors-tenant.ts +7 -4
- package/src/kernel/errors.registry-helpers.ts +96 -0
- package/src/kernel/errors.registry.test.ts +139 -25
- package/src/kernel/errors.ts +102 -23
- package/src/kernel/external-effects.test.ts +196 -0
- package/src/kernel/flow.test.ts +13 -4
- package/src/kernel/flow.ts +69 -71
- package/src/kernel/fx-ask-telemetry.test.ts +2 -2
- package/src/kernel/fx-dead-letters.test.ts +3 -3
- package/src/kernel/fx-fetch.ts +55 -0
- package/src/kernel/fx-live-stream.ts +2 -2
- package/src/kernel/fx-live.test.ts +8 -8
- package/src/kernel/fx.test.ts +17 -11
- package/src/kernel/fx.ts +180 -57
- package/src/kernel/horizontal-child.ts +1 -1
- package/src/kernel/http-query.test.ts +3 -6
- package/src/kernel/index.ts +13 -3
- package/src/kernel/instance-id.ts +1 -1
- package/src/kernel/instances.test.ts +40 -0
- package/src/kernel/instances.ts +47 -9
- package/src/kernel/live-http.test.ts +6 -7
- package/src/kernel/live-http.ts +6 -2
- package/src/kernel/live-resume.test.ts +1 -1
- package/src/kernel/mcp-tool.test.ts +3 -3
- package/src/kernel/on.ts +98 -4
- package/src/kernel/pipeline.test.ts +12 -15
- package/src/kernel/plugin-elements.test.ts +1 -1
- package/src/kernel/stamp-http.test.ts +3 -3
- package/src/kernel/triggers.ts +210 -95
- package/src/kernel-entry.ts +0 -1
- package/src/manifest/diff.ts +11 -1
- package/src/manifest/fixtures/skyport.excerpt.json +1 -1
- package/src/manifest/types.ts +46 -2
- package/src/mcp/docs-index.ts +3 -3
- package/src/mcp/docs-mcp.test.ts +2 -2
- package/src/mcp/docs-tools.ts +1 -1
- package/src/okid.test.ts +56 -0
- package/src/okid.ts +55 -11
- package/src/plugins/anonymous.ts +8 -4
- package/src/plugins/auth/shared.ts +27 -3
- package/src/plugins/auth-delivery.mailpit.integration.test.ts +1 -1
- package/src/plugins/auth-methods.security.test.ts +561 -23
- package/src/plugins/config-source.ts +1 -1
- package/src/plugins/csrf.test.ts +65 -0
- package/src/plugins/index.ts +2 -0
- package/src/plugins/magic-link.ts +36 -16
- package/src/plugins/oauth/shared.ts +3 -1
- package/src/plugins/oauth.ts +22 -14
- package/src/plugins/otp.ts +37 -21
- package/src/plugins/passkey-webauthn.ts +9 -6
- package/src/plugins/passkey.ts +98 -26
- package/src/plugins/pre-account-hijack.test.ts +223 -0
- package/src/plugins/two-factor.ts +466 -37
- package/src/plugins/username.ts +19 -7
- package/src/release/build-lib.ts +1 -0
- package/src/release/limits.ts +2 -2
- package/src/release/measure.ts +1 -1
- package/src/runs/collect.test.ts +0 -2
- package/src/runtime/json-code-block.test.ts +250 -20
- package/src/runtime/json-code-block.ts +1261 -41
- package/src/term.test.ts +1 -1
- package/src/test/create-test-app.test.ts +12 -12
- package/src/test/live-signals.test.ts +6 -6
- package/src/test/provisions.integration.test.ts +10 -14
- package/src/test/reset-element-registries.ts +1 -1
- package/src/test/tenant-isolation.test.ts +12 -6
- package/site/content/docs/deployment/docker-swarm.mdx +0 -164
- package/site/content/docs/deployment/docker.mdx +0 -227
- package/site/content/docs/deployment/index.mdx +0 -83
- package/site/content/docs/deployment/kubernetes.mdx +0 -176
- package/site/content/docs/deployment/meta.json +0 -5
- package/site/content/docs/deployment/reverse-proxy.mdx +0 -234
- package/site/content/docs/elements/ai.mdx +0 -385
- package/site/content/docs/elements/channel.mdx +0 -346
- package/site/content/docs/elements/clock.mdx +0 -244
- package/site/content/docs/elements/flow.mdx +0 -420
- package/site/content/docs/elements/gate.mdx +0 -436
- package/site/content/docs/elements/signal.mdx +0 -380
- package/site/content/docs/elements/store.mdx +0 -1099
- package/site/content/docs/elements/vault.mdx +0 -405
- package/site/content/docs/get-started/basic-usage.mdx +0 -173
- package/site/content/docs/get-started/index.mdx +0 -43
- package/site/content/docs/get-started/installation.mdx +0 -220
- package/site/content/docs/get-started/introduction.mdx +0 -132
- package/site/content/docs/get-started/meta.json +0 -13
- package/site/content/docs/get-started/project-structure.mdx +0 -925
- package/site/content/docs/get-started/testing.mdx +0 -328
- package/site/content/docs/get-started/why.mdx +0 -162
- package/site/content/docs/recipes/llama-cpp.mdx +0 -151
- package/site/content/docs/recipes/ollama.mdx +0 -142
- package/site/content/docs/recipes/sglang.mdx +0 -105
- package/site/content/docs/recipes/vllm.mdx +0 -106
- package/site/content/docs/reference/cli.md +0 -232
- package/site/content/docs/reference/client.mdx +0 -469
- package/site/content/docs/reference/security.md +0 -74
- package/src/cli/ai-setup/detect-ollama.ts +0 -213
- package/src/cli/ai-setup/recommend.test.ts +0 -225
- package/src/cli/ai-setup/recommend.ts +0 -225
- package/src/cli/dev-controls.test.ts +0 -122
- package/src/cli/dev-controls.ts +0 -164
- package/src/cli/tui/DevLive.tsx +0 -126
- package/src/console/ui-next/dist/assets/access-page-De7Lc2JC.js +0 -4
- package/src/console/ui-next/dist/assets/agent-disclosure-BP0Y0Sux.js +0 -1
- package/src/console/ui-next/dist/assets/cache-glyph-B5X-NM0-.js +0 -1
- package/src/console/ui-next/dist/assets/call-pii-button-ChAUiLo9.js +0 -1
- package/src/console/ui-next/dist/assets/collapsible-DGnOM2ph.js +0 -1
- package/src/console/ui-next/dist/assets/copy-inline-button-DBHhgHKP.js +0 -1
- package/src/console/ui-next/dist/assets/dagre.esm-ZwcdTuZZ.js +0 -1
- package/src/console/ui-next/dist/assets/detail-header-DhHM1iaZ.js +0 -1
- package/src/console/ui-next/dist/assets/dropdown-menu-_NjTEo5_.js +0 -1
- package/src/console/ui-next/dist/assets/duration-tone-sC3lGABz.js +0 -9
- package/src/console/ui-next/dist/assets/element-icons-BVXtRyd3.js +0 -1
- package/src/console/ui-next/dist/assets/explorer-empty-2uIhBu0_.js +0 -1
- package/src/console/ui-next/dist/assets/flows-page-RGy7VEA_.js +0 -1
- package/src/console/ui-next/dist/assets/highlighted-json-Awq7gYdu.js +0 -154
- package/src/console/ui-next/dist/assets/http-method-_UHM2ODJ.js +0 -1
- package/src/console/ui-next/dist/assets/index-Ck88Jmv8.css +0 -2
- package/src/console/ui-next/dist/assets/index-_rgpdVzo.js +0 -66
- package/src/console/ui-next/dist/assets/link-BX6Vqztd.js +0 -1
- package/src/console/ui-next/dist/assets/observability-page-Ds6pcnh-.js +0 -4
- package/src/console/ui-next/dist/assets/preload-helper-oH4irX4C.js +0 -1
- package/src/console/ui-next/dist/assets/react-D8E3mtu1.js +0 -1
- package/src/console/ui-next/dist/assets/react-dom-Bph1y7z7.js +0 -9
- package/src/console/ui-next/dist/assets/replica-lag-DKRrbvdo.js +0 -18
- package/src/console/ui-next/dist/assets/request-meta-DV0ywz7t.js +0 -1
- package/src/console/ui-next/dist/assets/shortcut-JQIZlWfm.js +0 -1
- package/src/console/ui-next/dist/assets/shortcut-keys-DKxNTe_m.js +0 -1
- package/src/console/ui-next/dist/assets/skeleton-D-czQJT6.js +0 -1
- package/src/console/ui-next/dist/assets/store-page-02xOiqIK.js +0 -41
- package/src/console/ui-next/dist/assets/trace-detail-sheet-B09O8rA6.js +0 -2
- package/src/console/ui-next/dist/assets/tree-expand-toggle-BtyhmWb4.js +0 -55
- package/src/console/ui-next/dist/assets/units-page-4rHOePuE.js +0 -1
- package/src/console/ui-next/dist/assets/useMutation-B8EO02Ej.js +0 -1
- package/src/console/ui-next/dist/assets/useRender-BE2A9BWC.js +0 -1
- package/src/console/ui-next/dist/assets/vault-page-DISPgxLM.js +0 -2
- package/src/console/ui-next/dist/assets/xyflow-D7n4g6go.js +0 -7
- package/src/console/ui-next/dist/assets/xyflow-DZ0Ws1xk.css +0 -1
- package/src/docker/ollama-pull.ts +0 -232
- package/src/docker/recipes/llama-cpp.ts +0 -298
- package/src/docker/recipes/ollama.ts +0 -44
- package/src/docker/recipes/sglang.ts +0 -55
- package/src/docker/recipes/vllm.ts +0 -44
- package/src/drivers/ai-ollama-tools.integration.test.ts +0 -109
- package/src/drivers/ai-ollama.integration.test.ts +0 -184
- package/src/drivers/ai-ollama.ts +0 -389
- package/src/drivers/ollama.ts +0 -14
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{r as t}from"./react-dom-Ddte4I-Q.js";import{A as n}from"./xyflow-yApv7D4e.js";import{Dr as r,Er as i,Or as a,Yi as o,br as s,fi as c,i as l,l as u,o as d,s as f,t as p,u as m,vr as h,x as g,xr as _,yr as v}from"./shortcut-keys-3ILd8oGn.js";import{c as y,i as b,o as x}from"./call-pii-button-CVAONPii.js";import{b as ee,d as S,f as C,l as w,p as T,s as E,u as D}from"./element-icons-BI8cJgdh.js";import{a as O,o as te}from"./collapsible-D2A6NJ-3.js";import{o as ne}from"./duration-tone-Cgk_h5ja.js";import{t as k}from"./highlighted-json-MYZQtRnw.js";import{t as A}from"./FileExportIcon-Ck-5od4R.js";import{X as j,c as re,l as ie,n as ae}from"./index-DXP2dBIF.js";var oe=[[`path`,{d:`M17.9998 15C17.9998 15 13.5809 9.00001 11.9998 9C10.4187 8.99999 5.99985 15 5.99985 15`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`0`}]],se=[[`path`,{d:`M7.5 17.2196C7.44458 16.0292 6.62155 16 5.50505 16C3.78514 16 3.5 16.406 3.5 18V20C3.5 21.594 3.78514 22 5.50505 22C6.62154 22 7.44458 21.9708 7.5 20.7804M20.5 16L18.7229 20.6947C18.3935 21.5649 18.2288 22 17.968 22C17.7071 22 17.5424 21.5649 17.213 20.6947L15.4359 16M12.876 16H11.6951C11.2231 16 10.9872 16 10.8011 16.0761C10.1672 16.3354 10.1758 16.9448 10.1758 17.5C10.1758 18.0553 10.1672 18.6647 10.8011 18.9239C10.9872 19 11.2232 19 11.6951 19C12.167 19 12.4029 19 12.5891 19.0761C13.2229 19.3354 13.2143 19.9447 13.2143 20.5C13.2143 21.0553 13.2229 21.6647 12.5891 21.9239C12.4029 22 12.167 22 11.6951 22H10.4089`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`0`}],[`path`,{d:`M20 13V10.6569C20 9.83935 20 9.4306 19.8478 9.06306C19.6955 8.69552 19.4065 8.40649 18.8284 7.82843L14.0919 3.09188C13.593 2.593 13.3436 2.34355 13.0345 2.19575C12.9702 2.165 12.9044 2.13772 12.8372 2.11401C12.5141 2 12.1614 2 11.4558 2C8.21082 2 6.58831 2 5.48933 2.88607C5.26731 3.06508 5.06508 3.26731 4.88607 3.48933C4 4.58831 4 6.21082 4 9.45584V13M13 2.5V3C13 5.82843 13 7.24264 13.8787 8.12132C14.7574 9 16.1716 9 19 9H19.5`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`1`}]],ce=[[`path`,{d:`M11 18.75C11.4142 18.75 11.75 18.4142 11.75 18C11.75 17.5858 11.4142 17.25 11 17.25V18V18.75ZM9 13.25C8.58579 13.25 8.25 13.5858 8.25 14C8.25 14.4142 8.58579 14.75 9 14.75V14V13.25ZM9 21.25C8.58579 21.25 8.25 21.5858 8.25 22C8.25 22.4142 8.58579 22.75 9 22.75V22V21.25ZM3 17.25C2.58579 17.25 2.25 17.5858 2.25 18C2.25 18.4142 2.58579 18.75 3 18.75V18V17.25ZM5 22.75C5.41421 22.75 5.75 22.4142 5.75 22C5.75 21.5858 5.41421 21.25 5 21.25V22V22.75ZM5 14.75C5.41421 14.75 5.75 14.4142 5.75 14C5.75 13.5858 5.41421 13.25 5 13.25V14V14.75ZM10 15H9.25V17H10H10.75V15H10ZM10 17H9.25C9.25 17.9665 10.0335 18.75 11 18.75V18V17.25C10.8619 17.25 10.75 17.1381 10.75 17H10ZM9 14V14.75C9.13807 14.75 9.25 14.8619 9.25 15H10H10.75C10.75 14.0335 9.9665 13.25 9 13.25V14ZM10 21H10.75V19H10H9.25V21H10ZM10 19H10.75C10.75 18.8619 10.8619 18.75 11 18.75V18V17.25C10.0335 17.25 9.25 18.0335 9.25 19H10ZM9 22V22.75C9.9665 22.75 10.75 21.9665 10.75 21H10H9.25C9.25 21.1381 9.13807 21.25 9 21.25V22ZM4 17H3.25C3.25 17.1381 3.13807 17.25 3 17.25V18V18.75C3.9665 18.75 4.75 17.9665 4.75 17H4ZM4 19H4.75C4.75 18.0335 3.9665 17.25 3 17.25V18V18.75C3.13807 18.75 3.25 18.8619 3.25 19H4ZM4 21H4.75V19H4H3.25V21H4ZM4 15H3.25V17H4H4.75V15H4ZM5 22V21.25C4.86193 21.25 4.75 21.1381 4.75 21H4H3.25C3.25 21.9665 4.0335 22.75 5 22.75V22ZM5 14V13.25C4.0335 13.25 3.25 14.0335 3.25 15H4H4.75C4.75 14.8619 4.86193 14.75 5 14.75V14Z`,fill:`currentColor`,key:`0`}],[`path`,{d:`M14 2.5V3C14 5.82843 14 7.24264 14.8787 8.12132C15.7574 9 17.1716 9 20 9H20.5`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`1`}],[`path`,{d:`M14 21.9991C17.1143 21.99 18.7653 21.8915 19.8284 20.8284C21 19.6569 21 17.7712 21 14V10.6569C21 9.83935 21 9.4306 20.8478 9.06306C20.6955 8.69552 20.4065 8.40649 19.8284 7.82843L15.0919 3.09188C14.593 2.593 14.3436 2.34355 14.0345 2.19575C13.9702 2.165 13.9044 2.13772 13.8372 2.11401C13.5141 2 13.1614 2 12.4558 2C9.21082 2 7.58831 2 6.48933 2.88607C6.26731 3.06508 6.06508 3.26731 5.88607 3.48933C5 4.58831 5 6.21082 5 9.45584V10`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`2`}]],M=[`console.store.list`];function le(){return o({queryKey:M,queryFn:async()=>{let e=await c();if(e.error)throw Error(e.error.code);if(!e.data)throw Error(`Empty store list`);return e.data}})}var N=e(t(),1),P=/\b(?:SELECT|FROM|WHERE|LEFT\s+JOIN|RIGHT\s+JOIN|INNER\s+JOIN|FULL\s+JOIN|CROSS\s+JOIN|JOIN|GROUP\s+BY|ORDER\s+BY|HAVING|LIMIT|OFFSET|UNION(?:\s+ALL)?|EXCEPT|INTERSECT|RETURNING)\b/gi,F=/\b(?:AND|OR|ON)\b/gi;function ue(e){let t=e.trim();if(t.length===0)return``;let n=I(t),r=[];for(let e of n){if(e.quoted){r.push(e.text);continue}let t=e.text.replace(/\s+/g,` `);t.length!==0&&r.push(t.replace(P,(e,t,n)=>t===0||n[t-1]===`
|
|
2
|
+
`?e.toUpperCase():`\n${e.toUpperCase()}`).replace(F,(e,t,n)=>t===0||n[t-1]===`
|
|
3
|
+
`?e.toUpperCase():`\n ${e.toUpperCase()}`))}return r.join(``).replace(/\n{3,}/g,`
|
|
4
|
+
|
|
5
|
+
`).replace(/[ \t]+\n/g,`
|
|
6
|
+
`).trim()}function I(e){let t=[],n=0,r=null;for(let i=0;i<e.length;i+=1){let a=e[i];if(r){if(a===r){if(e[i+1]===r){i+=1;continue}t.push({quoted:!0,text:e.slice(n,i+1)}),n=i+1,r=null}continue}(a===`'`||a===`"`||a==="`")&&(i>n&&t.push({quoted:!1,text:e.slice(n,i)}),r=a,n=i)}return n<e.length&&t.push({quoted:r!==null,text:e.slice(n)}),t}function L(e){let t=I(e),n=[],r=0,i=0;for(let a of t){if(!a.quoted)for(let t=0;t<a.text.length;t+=1){if(a.text[t]!==`;`)continue;let o=i+t+1;he(n,e,r,o),r=o}i+=a.text.length}return he(n,e,r,e.length),n}function R(e,t){let n=L(e);if(n.length===0)return null;let r=Math.max(0,Math.min(t,e.length));for(let e of n)if(r>=e.start&&r<=e.end)return e;return n[n.length-1]??null}function de(e,t,n,r){if(r===`all`)return L(e).map(e=>e.text);let i=Math.min(t,n),a=Math.max(t,n);if(a>i){let t=L(e.slice(i,a)).map(e=>e.text);if(t.length>0)return t}let o=R(e,i)?.text??e.trim();return o.length>0?[o]:[]}function z(e,t){let n=e.trim().replace(/;+\s*$/,``);return n.length===0||/^EXPLAIN\b/i.test(n)?n:t?`EXPLAIN ANALYZE ${n}`:`EXPLAIN ${n}`}var fe=new Set([`INSERT`,`UPDATE`,`DELETE`,`DROP`,`ALTER`,`CREATE`,`TRUNCATE`,`REPLACE`,`GRANT`,`REVOKE`,`VACUUM`,`COMMENT`,`COPY`,`CALL`,`REFRESH`,`MERGE`]);function B(e){let t=e.trim().replace(/;+\s*$/,``),n=V(t);return n===`EXPLAIN`?/\bANALYZE\b/i.test(t):n===`ANALYZE`||fe.has(n)}function pe(e){let t=e.trim().replace(/;+\s*$/,``);if(t.length===0)return!1;let n=V(t);if(n!==`SELECT`&&n!==`WITH`)return!1;for(let e of I(t))if(!e.quoted&&/\bLIMIT\b/i.test(e.text))return!1;return!0}function me(e,t){let n=Math.max(0,Math.min(t,e.length)),r=1;for(let t=0;t<n;t+=1)e[t]===`
|
|
7
|
+
`&&(r+=1);return r}function he(e,t,n,r){let i=t.slice(n,r);if(i.replace(/[;\s]/g,``).length===0)return;let a=n+(i.match(/^\s*/)?.[0]?.length??0);e.push({text:i.trim(),start:n,end:r,startLine:me(t,a)})}function ge(e){let t=V(e.trim().replace(/;+\s*$/,``));return t.length>0?t:`SQL`}function V(e){return/^([A-Za-z]+)/.exec(e)?.[1]?.toUpperCase()??``}var _e=`SELECT.FROM.WHERE.JOIN.LEFT JOIN.INNER JOIN.RIGHT JOIN.FULL JOIN.ON.AND.OR.ORDER BY.GROUP BY.HAVING.LIMIT.OFFSET.UNION.INSERT INTO.VALUES.UPDATE.SET.DELETE FROM.CREATE TABLE.CREATE INDEX.ALTER TABLE.DROP TABLE.TRUNCATE.EXPLAIN.EXPLAIN ANALYZE.BEGIN.COMMIT.ROLLBACK.GRANT.AS.DISTINCT.COUNT.LIKE.ILIKE.IN.IS NULL.IS NOT NULL.NOT.ASC.DESC.WITH.RETURNING.CASE.WHEN.THEN.ELSE.END`.split(`.`),ve=new Set([`FROM`,`JOIN`,`INTO`,`UPDATE`,`TABLE`]),ye=new Set([`SELECT`,`WHERE`,`SET`,`ON`,`BY`,`HAVING`,`AND`,`OR`,`RETURNING`]),be=/[A-Za-z0-9_]/;function xe(e,t,n,r=`sql`){let i=Math.max(0,Math.min(t,e.length));return r===`kv`?Ce(e,i,n):Me(e,i)?null:Se(e,i,n)}function Se(e,t,n){let r=Ee(e,t),i=r.prefix.toLowerCase(),a=r.qualifier,o=De(e,r.from),s=R(e,t),c=s?Oe(s.text,n):[],l=[];if(a!==null){let e=ke(n,a);if(!e)return null;for(let t of e.columns)U(t.name,i)&&l.push(Te(t,e.name));return H(r.from,t,l)}let u=o!==null&&ve.has(o),d=o!==null&&ye.has(o);if(u||!d&&i.length>0)for(let e of n)U(e.name,i)&&l.push({kind:`table`,label:e.name,insert:Ae(e.name),detail:`table`});if(d||!u&&i.length>0){let e=c.length>0?c:n.map(e=>e.name),t=new Set;for(let r of e){let e=ke(n,r);if(e)for(let n of e.columns){let r=`${e.name}.${n.name}`;!t.has(r)&&U(n.name,i)&&(t.add(r),l.push(Te(n,e.name)))}}if(c.length>0&&i.length>0){for(let r of n)if(!e.includes(r.name))for(let e of r.columns){let n=`${r.name}.${e.name}`;!t.has(n)&&U(e.name,i)&&(t.add(n),l.push(Te(e,r.name)))}}}if(i.length>0)for(let e of _e)U(e,i)&&l.push({kind:`keyword`,label:e,insert:e,detail:`keyword`});return H(r.from,t,l)}function Ce(e,t,n){let r=e.lastIndexOf(`
|
|
8
|
+
`,t-1)+1,i=e.slice(r,t);if(/^\s*(\/\/|#|--)/.test(i))return null;let a=Ee(e,t),o=a.prefix.toLowerCase(),s=e.slice(r,a.from).trim().toLowerCase(),c=[];if(s===`list`||s===`get`||s===`set`||s===`delete`||s===`ttl`||s===`set(`||s===`get(`||s===`list(`||s===`delete(`||s===`ttl(`){for(let e of n)U(e.name,o)&&c.push({kind:`namespace`,label:e.name,insert:`${e.name}:`,detail:`namespace`});return H(a.from,t,c)}if(s.length===0){for(let e of[`list`,`get`,`set`,`delete`,`ttl`])U(e,o)&&c.push({kind:`command`,label:e,insert:e===`set`?`set(`:`${e} `,detail:`command`});for(let e of n)U(e.name,o)&&c.push({kind:`namespace`,label:e.name,insert:e.name,detail:`namespace`})}return H(a.from,t,c)}function H(e,t,n){return n.length===0?null:(n.sort((e,t)=>{let n=we(e.kind)-we(t.kind);return n===0?e.label.localeCompare(t.label):n}),{from:e,to:t,items:n.slice(0,12)})}function we(e){return e===`table`||e===`namespace`?0:e===`column`||e===`command`?1:2}function Te(e,t){return{kind:`column`,label:e.name,insert:Ae(e.name),detail:e.type===`unknown`?t:`${t} · ${e.type}`,...e.pii===!0?{pii:!0}:{},...e.primaryKey===!0?{primaryKey:!0}:{},...e.references?{foreignKey:!0}:{}}}function Ee(e,t){let n=t;for(;n>0;){let t=e[n-1];if(t&&(be.test(t)||t===`"`)){--n;continue}break}let r=e.slice(n,t),i=null;if(n>0&&e[n-1]===`.`){let t=n-1,r=t;for(;r>0;){let t=e[r-1];if(t&&(be.test(t)||t===`"`)){--r;continue}break}i=je(e.slice(r,t))}return r.startsWith(`"`)&&(r=r.slice(1)),r.endsWith(`"`)&&(r=r.slice(0,-1)),{from:n,prefix:r,qualifier:i}}function De(e,t){let n=e.slice(0,t),r=null;for(let e of I(n)){if(e.quoted)continue;let t=e.text.toUpperCase().match(/[A-Z]+/g);t&&(r=t[t.length-1]??r)}return r}function Oe(e,t){let n=new Set(t.map(e=>e.name.toLowerCase())),r=[];for(let t of I(e)){if(!t.quoted)continue;let e=je(t.text);n.has(e.toLowerCase())&&!r.includes(e)&&r.push(e)}let i=/\b(?:FROM|JOIN|INTO|UPDATE)\s+("?[A-Za-z_][A-Za-z0-9_]*"?)/gi,a;for(;a=i.exec(e);){let e=je(a[1]??``);n.has(e.toLowerCase())&&!r.includes(e)&&r.push(e)}return r}function ke(e,t){let n=t.toLowerCase();return e.find(e=>e.name.toLowerCase()===n)}function U(e,t){return t.length===0||e.toLowerCase().startsWith(t)}function Ae(e){return`"${e.replaceAll(`"`,`""`)}"`}function je(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith("`")&&t.endsWith("`")?t.slice(1,-1):t}function Me(e,t){let n=0;for(let r of I(e)){let e=n+r.text.length;if(t>n&&t<=e&&r.quoted&&r.text.startsWith(`'`))return!0;n=e}return!1}var W=n();function Ne({items:e,active:t,top:n,left:r,onHover:a,onPick:o}){return(0,W.jsx)(`ul`,{id:`store-query-complete`,role:`listbox`,"data-slot":`store-query-complete`,className:`cn-menu-translucent absolute z-20 max-h-56 min-w-52 overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10`,style:{top:n,left:r},children:e.map((e,n)=>(0,W.jsx)(`li`,{children:(0,W.jsxs)(`button`,{type:`button`,role:`option`,id:`store-query-complete-${n}`,"aria-selected":n===t,"data-slot":`store-query-complete-item`,onMouseEnter:()=>a(n),onMouseDown:e=>{e.preventDefault(),o(n)},className:i(`flex w-full items-center gap-2 rounded-md px-1.5 py-1 text-left`,n===t?`bg-accent text-accent-foreground`:`text-foreground hover:bg-muted/70`),children:[(0,W.jsx)(x,{primaryKey:e.primaryKey,foreignKey:e.foreignKey}),(0,W.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[11px]`,children:e.label}),e.pii?(0,W.jsx)(`span`,{className:`shrink-0 rounded border border-sky-500/30 px-1 font-mono text-[8px] text-sky-700 dark:text-sky-400`,children:`PII`}):null,(0,W.jsx)(`span`,{className:`shrink-0 font-mono text-[9px] tracking-wide text-muted-foreground/70 uppercase`,children:e.kind===`column`?e.detail??`col`:e.kind})]})},`${e.kind}:${e.label}:${e.detail??``}`))})}function Pe(e,t){let n=getComputedStyle(e),r=document.createElement(`div`),i=[`boxSizing`,`width`,`fontFamily`,`fontSize`,`fontWeight`,`fontStyle`,`letterSpacing`,`textTransform`,`wordSpacing`,`textIndent`,`whiteSpace`,`wordWrap`,`lineHeight`,`paddingTop`,`paddingRight`,`paddingBottom`,`paddingLeft`,`borderTopWidth`,`borderRightWidth`,`borderBottomWidth`,`borderLeftWidth`];r.style.position=`absolute`,r.style.visibility=`hidden`,r.style.overflow=`hidden`,r.style.whiteSpace=`pre-wrap`,r.style.wordWrap=`break-word`;for(let e of i)r.style[e]=n[e];r.style.width=`${e.clientWidth}px`,r.textContent=e.value.slice(0,t);let a=document.createElement(`span`);a.textContent=e.value.slice(t)||`.`,r.appendChild(a),document.body.appendChild(r);let o=a.offsetTop-e.scrollTop,s=a.offsetLeft-e.scrollLeft;return document.body.removeChild(r),{top:o,left:s}}var Fe=new Set(`ABORT.ADD.ALL.ALTER.ANALYZE.AND.ANY.AS.ASC.BETWEEN.BEGIN.BY.CASCADE.CASE.CAST.CHECK.COALESCE.COLUMN.COMMIT.CONFLICT.CONSTRAINT.CREATE.CROSS.CURRENT.DEFAULT.DELETE.DESC.DISTINCT.DO.DROP.ELSE.END.EXCEPT.EXISTS.EXPLAIN.FALSE.FOREIGN.FROM.FULL.GRANT.GROUP.HAVING.IF.ILIKE.IN.INDEX.INNER.INSERT.INTERSECT.INTO.IS.JOIN.KEY.LATERAL.LEFT.LIKE.LIMIT.MATERIALIZED.NATURAL.NOT.NULL.NULLIF.OFFSET.ON.ONLY.OR.ORDER.OUTER.OVER.PARTITION.PRIMARY.RECURSIVE.REFERENCES.RETURNING.RIGHT.ROLLBACK.SELECT.SET.TABLE.THEN.TRUE.TRUNCATE.UNION.UNIQUE.UPDATE.USING.VALUES.VIEW.WHEN.WHERE.WITH`.split(`.`)),Ie=new Set([`TRUE`,`FALSE`,`NULL`]),Le=new Set([`list`,`get`,`set`,`delete`,`ttl`]),Re=new Set([`true`,`false`,`null`,`value`]),G=/[A-Za-z_\u0080-\uFFFF]/,ze=/[A-Za-z0-9_\u0080-\uFFFF]/;function Be(e,t){return t===`kv`?He(e):Ve(e)}function Ve(e){let t=[],n=0;for(;n<e.length;){let r=e[n]??``,i=e[n+1]??``;if(r===`-`&&i===`-`){n=K(e,n,t);continue}if(r===`/`&&i===`*`){n=Ue(e,n,t);continue}if(r===`'`||r===`"`||r==="`"){n=We(e,n,r,t,r===`'`?`string`:`ident`);continue}if(q(r)||r===`.`&&q(i)){n=Ge(e,n,t);continue}if(G.test(r)){let r=n;for(n+=1;n<e.length&&ze.test(e[n]??``);)n+=1;let i=e.slice(r,n),a=i.toUpperCase();Ie.has(a)?t.push({kind:`atom`,text:i}):Fe.has(a)?t.push({kind:`keyword`,text:i}):t.push({kind:`text`,text:i});continue}if(Ye(r)){let r=n;for(n+=1;n<e.length&&Ye(e[n]??``);)n+=1;t.push({kind:`operator`,text:e.slice(r,n)});continue}if(J(r)){t.push({kind:`punct`,text:r}),n+=1;continue}n=qe(e,n,t,(t,n)=>!Xe(t,e,n))}return Je(t)}function He(e){let t=[],n=0;for(;n<e.length;){let r=e[n]??``,i=e[n+1]??``;if(r===`/`&&i===`/`){n=K(e,n,t);continue}if(r===`#`){n=K(e,n,t);continue}if(r===`-`&&i===`-`){n=K(e,n,t);continue}if(r===`'`||r===`"`){n=We(e,n,r,t,`string`);continue}if(q(r)){n=Ke(e,n,t);continue}if(G.test(r)){let r=n;for(n+=1;n<e.length&&ze.test(e[n]??``);)n+=1;let i=e.slice(r,n),a=i.toLowerCase();Le.has(a)?t.push({kind:`command`,text:i}):Re.has(a)?t.push({kind:`atom`,text:i}):t.push({kind:`ident`,text:i});continue}if(r===`:`){t.push({kind:`punct`,text:r}),n+=1;continue}if(J(r)||r===`{`||r===`}`||r===`[`||r===`]`){t.push({kind:`punct`,text:r}),n+=1;continue}n=qe(e,n,t,(t,n)=>!(t===`/`||t===`#`||t===`'`||t===`"`||t===`-`&&e[n+1]===`-`||q(t)||G.test(t)||J(t)||t===`{`||t===`}`||t===`[`||t===`]`||t===`:`))}return Je(t)}function K(e,t,n){let r=t;for(;r<e.length&&e[r]!==`
|
|
9
|
+
`;)r+=1;return n.push({kind:`comment`,text:e.slice(t,r)}),r}function Ue(e,t,n){let r=t+2;for(;r<e.length&&(e[r]!==`*`||e[r+1]!==`/`);)r+=1;return r<e.length&&(r+=2),n.push({kind:`comment`,text:e.slice(t,r)}),r}function We(e,t,n,r,i){let a=t+1;for(;a<e.length;){if(e[a]===n){if(e[a+1]===n){a+=2;continue}a+=1;break}if(e[a]===`\\`&&n===`'`){a+=2;continue}a+=1}return r.push({kind:i,text:e.slice(t,a)}),a}function Ge(e,t,n){let r=t;for(e[r]===`.`&&(r+=1);r<e.length&&q(e[r]??``);)r+=1;if(e[r]===`.`&&q(e[r+1]??``))for(r+=1;r<e.length&&q(e[r]??``);)r+=1;let i=e[r];if(i===`e`||i===`E`){let t=r+1;if((e[t]===`+`||e[t]===`-`)&&(t+=1),q(e[t]??``))for(r=t+1;r<e.length&&q(e[r]??``);)r+=1}return n.push({kind:`number`,text:e.slice(t,r)}),r}function Ke(e,t,n){let r=Ge(e,t,n),i=n[n.length-1];if(!i)return r;let a=e[r];return a&&/[smhd]/i.test(a)&&!ze.test(e[r+1]??``)?(n[n.length-1]={kind:`number`,text:`${i.text}${a}`},r+1):r}function qe(e,t,n,r){let i=t;for(;i<e.length&&r(e[i]??``,i);)i+=1;return i===t?(n.push({kind:`text`,text:e[t]??``}),t+1):(n.push({kind:`text`,text:e.slice(t,i)}),i)}function Je(e){let t=[];for(let n of e){let e=t[t.length-1];e&&e.kind===n.kind?t[t.length-1]={kind:e.kind,text:`${e.text}${n.text}`}:t.push(n)}return t}function q(e){return e>=`0`&&e<=`9`}function Ye(e){return`+-*/%=<>!&|^~`.includes(e)}function J(e){return`(),;.`.includes(e)}function Xe(e,t,n){return!!(e===`'`||e===`"`||e==="`"||e===`-`&&t[n+1]===`-`||e===`/`&&t[n+1]===`*`||q(e)||e===`.`&&q(t[n+1]??``)||G.test(e)||Ye(e)||J(e))}var Ze={text:`text-foreground/90`,comment:`italic text-muted-foreground/55`,keyword:`text-rose-600 dark:text-rose-400`,command:`text-amber-600 dark:text-amber-400`,string:`text-sky-700 dark:text-sky-300`,ident:`text-teal-700 dark:text-teal-300`,number:`text-violet-600 dark:text-violet-400`,punct:`text-muted-foreground/80`,operator:`text-fuchsia-600 dark:text-fuchsia-400`,atom:`text-amber-700 dark:text-amber-300`};function Qe({code:e,language:t,className:n}){let r=Be(e,t);return(0,W.jsx)(`pre`,{"aria-hidden":!0,"data-slot":`store-query-highlight`,"data-language":t,className:i(`m-0 overflow-visible whitespace-pre font-mono text-xs leading-5 text-foreground/90`,n),children:r.map((e,t)=>(0,W.jsx)(`span`,{className:Ze[e.kind],children:e.text},`${t}-${e.kind}`))})}function $e({value:e,onChange:t,language:n,onRun:a,onRunAll:o,label:s,className:c,runLines:l=[],onRunLine:u,onCursorChange:d,editorRef:f,tables:p=[],facet:m=`sql`}){let h=(0,N.useRef)(null),g=(0,N.useRef)(null),_=(0,N.useRef)(null),[v,b]=(0,N.useState)(null),x=Math.max(e.split(`
|
|
10
|
+
`).length,1),ee=e.endsWith(`
|
|
11
|
+
`)?e:`${e}\n`,S=new Set(l);(0,N.useImperativeHandle)(f,()=>({insert(n){let r=h.current;if(b(null),!r){t(`${e}${n}`);return}let i=r.selectionStart,a=r.selectionEnd;t(`${e.slice(0,i)}${n}${e.slice(a)}`),requestAnimationFrame(()=>{let e=i+n.length;r.focus(),r.selectionStart=r.selectionEnd=e,d?.(e,e)})},focus(){h.current?.focus()}}));let C=()=>{let e=h.current;e&&(g.current&&(g.current.scrollTop=e.scrollTop),_.current&&(_.current.scrollTop=e.scrollTop,_.current.scrollLeft=e.scrollLeft))},w=()=>{let e=h.current;e&&d?.(e.selectionStart,e.selectionEnd)},T=(e,t)=>{requestAnimationFrame(()=>{e.focus(),e.selectionStart=e.selectionEnd=t,d?.(t,t)})},E=(e,t)=>{if(p.length===0){b(null);return}let n=e.selectionStart,r=xe(t,n,p,m);if(!r){b(null);return}let i=Pe(e,n);b({result:r,active:0,top:Math.min(i.top+20,Math.max(8,e.clientHeight-48)),left:Math.min(Math.max(8,i.left),Math.max(8,e.clientWidth-220))})},D=n=>{let r=h.current;if(!r||!v)return;let i=v.result.items[n];if(!i)return;let a=`${e.slice(0,v.result.from)}${i.insert}${e.slice(v.result.to)}`,o=v.result.from+i.insert.length;t(a),b(null),T(r,o)};return(0,W.jsxs)(`div`,{className:i(`flex min-h-0 flex-1 overflow-hidden bg-background`,c),"data-slot":`store-query-editor`,children:[(0,W.jsx)(`div`,{ref:g,"aria-hidden":!0,className:`shrink-0 overflow-hidden border-r border-border/50 bg-muted/15 py-3 pr-1.5 pl-1.5 font-mono text-xs leading-5 text-muted-foreground/70`,children:Array.from({length:x},(e,t)=>{let n=t+1,i=S.has(n);return(0,W.jsxs)(`div`,{className:`group/line flex h-5 items-center justify-end gap-0.5`,children:[i&&u?(0,W.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-label":`Run statement on line ${n}`,"data-slot":`store-query-gutter-run`,onClick:()=>u(n),className:`flex size-4 items-center justify-center rounded-sm text-emerald-600 opacity-70 hover:bg-emerald-500/15 hover:opacity-100 dark:text-emerald-400`,children:(0,W.jsx)(r,{icon:y,className:`size-2.5`})}):(0,W.jsx)(`span`,{className:`size-4`}),(0,W.jsx)(`span`,{className:`min-w-4 text-right`,children:n})]},n)})}),(0,W.jsxs)(`div`,{className:`relative min-h-0 min-w-0 flex-1`,children:[(0,W.jsx)(`div`,{ref:_,className:`pointer-events-none absolute inset-0 overflow-hidden`,children:(0,W.jsx)(Qe,{code:ee,language:n,className:`px-3 py-3 text-xs leading-5`})}),(0,W.jsx)(`textarea`,{ref:h,value:e,onChange:e=>{t(e.target.value),d?.(e.target.selectionStart,e.target.selectionEnd),E(e.target,e.target.value)},onScroll:C,onKeyDown:n=>{if((n.metaKey||n.ctrlKey)&&n.key===`Enter`){n.preventDefault(),b(null),n.shiftKey&&o?o():a();return}if(v){if(n.key===`ArrowDown`){n.preventDefault(),b(e=>e&&{...e,active:(e.active+1)%e.result.items.length});return}if(n.key===`ArrowUp`){n.preventDefault(),b(e=>e&&{...e,active:(e.active-1+e.result.items.length)%e.result.items.length});return}if(n.key===`Enter`||n.key===`Tab`){n.preventDefault(),D(v.active);return}if(n.key===`Escape`){n.preventDefault(),b(null);return}(n.key===`ArrowLeft`||n.key===`ArrowRight`)&&b(null)}if(n.key===`Tab`){n.preventDefault();let r=n.currentTarget,i=r.selectionStart,a=r.selectionEnd;t(`${e.slice(0,i)} ${e.slice(a)}`),T(r,i+2);return}n.key===`Escape`&&b(null)},onKeyUp:w,onClick:()=>{b(null),w()},onSelect:w,onBlur:()=>b(null),spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`,"aria-label":s,"aria-autocomplete":`list`,"aria-expanded":v!==null,"aria-controls":v?`store-query-complete`:void 0,"aria-activedescendant":v?`store-query-complete-${v.active}`:void 0,"data-slot":`store-query-input`,className:`absolute inset-0 h-full w-full resize-none overflow-auto bg-transparent px-3 py-3 font-mono text-xs leading-5 text-transparent caret-foreground outline-none`}),v?(0,W.jsx)(Ne,{items:v.result.items,active:v.active,top:v.top,left:v.left,onHover:e=>b(t=>t&&{...t,active:e}),onPick:D}):null]})]})}function et({value:e,label:t,onChange:n,onFocus:r,onIdle:a,dirty:o=!1,autoFocus:s=!1,placeholder:c=`Empty`,className:l}){let[u,d]=(0,N.useState)(e),f=(0,N.useRef)(null);(0,N.useEffect)(()=>{d(e)},[e]),(0,N.useEffect)(()=>{if(!s)return;let e=f.current;e&&(e.focus(),e.select())},[s]);let p=()=>{u!==e&&n(u)},m=()=>{p(),a?.()};return(0,W.jsx)(`input`,{ref:f,value:u,"aria-label":t,size:1,"data-dirty":o?`true`:void 0,onFocus:r,onChange:e=>d(e.target.value),onBlur:m,onKeyDown:t=>{if(t.key===`Enter`&&(t.metaKey||t.ctrlKey)){m();return}t.key===`Enter`?(t.preventDefault(),t.currentTarget.blur()):t.key===`Escape`&&(t.preventDefault(),d(e),a?.(),t.currentTarget.blur())},placeholder:c,className:i(`h-full w-full min-w-0 appearance-none rounded-none border-0 bg-transparent p-0`,`shadow-none outline-none ring-0`,`focus:bg-transparent focus:shadow-none focus:ring-0 focus:outline-none`,`focus-visible:shadow-none focus-visible:ring-0 focus-visible:outline-none`,`placeholder:text-muted-foreground/40`,o?`text-[#9a5b12] dark:text-[#e8c48a]`:`text-foreground`,l)})}function tt(e){try{return new TextEncoder().encode(JSON.stringify(e??null)).length}catch{return 0}}function nt(e){if(typeof e==`string`){let t=e.trim();return t===``?`—`:t}return typeof e!=`number`||!Number.isFinite(e)?`—`:e<=0?`0s`:e<6e4?`${Math.max(1,Math.round(e/1e3))}s`:e<36e5?`${Math.round(e/6e4)}m`:e<864e5?`${Math.round(e/36e5)}h`:`${Math.round(e/864e5)}d`}function rt(e){let t=e.trim();if(t===``||t===`—`||t===`none`)return null;if(/^(\d+)(ms|s|m|h|d)$/.test(t))return t}function it(e){if(typeof e!=`number`||!Number.isFinite(e)||e<0)return`—`;if(e<1024)return`${Math.round(e)} B`;if(e<1048576){let t=e/1024;return t<10?`${t.toFixed(1)} KB`:`${Math.round(t)} KB`}let t=e/1048576;return t<10?`${t.toFixed(1)} MB`:`${Math.round(t)} MB`}function at(e){let{facet:t,data:n,piiColumns:r=[],columnTypes:i={},columnDescriptions:a={},primaryKeyColumns:o=[]}=e,s=b(r),c=new Set(o);if(t===`sql`){let e=n.rows??[];return{columns:(e.length>0?Object.keys(e[0]??{}):Object.keys(i)).map(e=>({key:e,type:i[e]===`integer`?`integer`:`string`,editable:e!==`id`,pii:s.has(e),...c.has(e)?{primaryKey:!0}:{},...a[e]===void 0?{}:{description:a[e]}})),rows:e.map(e=>({id:ct(e),cells:e})),deleteKind:`ids`,editable:!0}}if(t===`kv`)return{columns:[{key:`key`,type:`string`,editable:!1,pii:!1},{key:`value`,type:`json`,editable:!0,pii:!1},{key:`ttl`,type:`number`,editable:!0,pii:!1,format:`ttl`},{key:`size`,type:`number`,editable:!1,pii:!1,format:`bytes`}],rows:(n.keys??[]).map(e=>({id:e.key,cells:{key:e.key,value:e.value,ttl:e.ttlMs??null,size:e.sizeBytes??tt(e.value)}})),deleteKind:`keys`,editable:!0};if(t===`files`)return{columns:[{key:`key`,type:`string`,editable:!1,pii:!1},{key:`size`,type:`number`,editable:!1,pii:!1,format:`bytes`},{key:`warnings`,type:`string`,editable:!1,pii:!1}],rows:(n.keys??[]).map(e=>({id:e.key,cells:{key:e.key,size:e.sizeBytes??0,warnings:e.warnings?.map(e=>e.message).join(`; `)??``}})),deleteKind:`keys`,editable:!1};let l=n.hits??[],u=st(l);return{columns:[{key:`id`,type:`string`,editable:!1,pii:!1},...u.map(e=>({key:e,type:`string`,editable:!1,pii:!1})),{key:`score`,type:`number`,editable:!1,pii:!1},...u.length===0?[{key:`meta`,type:`json`,editable:!1,pii:!1}]:[]],rows:l.map(e=>({id:e.id,cells:{id:e.id,score:e.score,...u.length===0?{meta:e.meta}:{},...Object.fromEntries(u.map(t=>[t,e.meta?.[t]]))}})),deleteKind:`ids`,editable:!1}}var ot=[`identifier`,`title`,`description`];function st(e){let t=new Set;for(let n of e)for(let[e,r]of Object.entries(n.meta??{}))e===`id`||/^\d+$/.test(e)||typeof r==`object`&&r||t.add(e);let n=[...t].filter(e=>!ot.includes(e)).sort();return[...ot.filter(e=>t.has(e)),...n]}function ct(e){let t=e.id??e.Id??e.name;return typeof t==`string`||typeof t==`number`||typeof t==`boolean`?String(t):``}function Y(e){if(e==null)return`—`;if(e instanceof Date)return e.toISOString();if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return`[unserializable]`}}function lt(e){return/(?:^|_)(at|time|timestamp)$/i.test(e)||/(?:At|Time|Timestamp)$/.test(e)}function X(e,t){if(t==null)return null;if(t instanceof Date)return t.toISOString();if(typeof t==`string`){if(!lt(e))return null;let n=Date.parse(t);return Number.isNaN(n)?null:new Date(n).toISOString()}return typeof t==`number`&&Number.isFinite(t)&<(e)?t<0xe8d4a51000||t>0x9184e72a000?null:new Date(t).toISOString():null}function ut(e,t){if(e.format===`ttl`)return nt(t);if(e.format===`bytes`)return it(t);let n=X(e.key,t);return n===null?Y(t):n}function Z(e){if(e==null)return null;if(typeof e==`object`)return e;if(typeof e!=`string`)return null;let t=e.trim();if(!(t.startsWith(`{`)||t.startsWith(`[`)))return null;try{let e=JSON.parse(t);if(typeof e==`object`&&e)return e}catch{return null}return null}function dt(e){let t=Z(e);if(t!==null)return{ok:!0,value:t};let n=e.trim();if(n===``)return{ok:!1,error:`JSON is empty`};try{return JSON.parse(n),{ok:!1,error:`JSON must be an object or array`}}catch{return{ok:!1,error:`Invalid JSON`}}}function ft(e){let t=Z(e);return t===null?[]:xt(t,``)}function pt(e,t){if(t===`object`)return`{}`;if(t===`array`)return`[]`;if(e==null)return``;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)??``}catch{return``}}function mt(e,t){if(e===`string`)return t;let n=t.trim();if(e===`number`){if(n===``)return null;let e=Number(n);return Number.isFinite(e)?e:t}if(e===`boolean`)return n===`true`?!0:n===`false`?!1:n===``?null:t;if(e===`null`){if(n===``||n===`null`)return null;if(n===`true`)return!0;if(n===`false`)return!1;let e=Number(n);return Number.isFinite(e)&&n!==``?e:t}if(e===`object`||e===`array`){if(n===``)return e===`array`?[]:{};try{return JSON.parse(n)}catch{return t}}return t}function ht(e,t,n){let r=_t(t);if(r.length===0)return n;let i=structuredClone(e),a=i;for(let e=0;e<r.length-1;e++){let t=r[e];if(!t)return i;a=vt(a,t)}let o=r[r.length-1];return o&&yt(a,o,n),i}function gt(e,t){if(Object.is(e,t))return!0;try{return JSON.stringify(e)===JSON.stringify(t)}catch{return!1}}function _t(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===`.`){n+=1;continue}if(r===`[`){let r=e.indexOf(`]`,n);if(r<0)break;t.push({type:`index`,index:Number(e.slice(n+1,r))}),n=r+1;continue}let i=n;for(;i<e.length&&e[i]!==`.`&&e[i]!==`[`;)i+=1;t.push({type:`key`,key:e.slice(n,i)}),n=i}return t}function vt(e,t){if(typeof e==`object`&&e)return t.type===`key`?e[t.key]:e[t.index]}function yt(e,t,n){if(typeof e==`object`&&e){if(t.type===`key`){e[t.key]=n;return}e[t.index]=n}}function bt(e){let t=Z(e);if(t!==null)try{return JSON.stringify(t,null,2)}catch{return`[unserializable]`}if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return`[unserializable]`}}function xt(e,t){if(typeof e==`object`&&e&&!Array.isArray(e)){let n=Object.entries(e);return n.length===0?t?[{path:t,value:e,kind:`object`}]:[]:n.flatMap(([e,n])=>xt(n,t?`${t}.${e}`:e))}return Array.isArray(e)?e.length===0?t?[{path:t,value:e,kind:`array`}]:[]:e.flatMap((e,n)=>xt(e,t?`${t}[${n}]`:`[${n}]`)):[{path:t||`(root)`,value:e,kind:St(e)}]}function St(e){return e===null?`null`:typeof e==`boolean`?`boolean`:typeof e==`number`?`number`:Array.isArray(e)?`array`:typeof e==`object`?`object`:`string`}var Ct=/[-ۿݐ-ݿࢠ-ࣿﭐ-﷿ﹰ-]/;function wt(e){return typeof e==`string`&&Ct.test(e)}function Tt({open:e,onOpenChange:t,rowId:n,column:o,storeRef:s,value:c,originalValue:h,editable:_=!1,onChange:v}){let[y,b]=(0,N.useState)(`table`),[x,S]=(0,N.useState)(!1),[C,w]=(0,N.useState)(``),[T,E]=(0,N.useState)(null),D=(0,N.useRef)(!1),O=_&&v!==void 0;(0,N.useEffect)(()=>{e&&(b(`table`),S(!1),E(null),D.current=!1)},[e,n,o]);let te=(0,N.useMemo)(()=>ft(c),[c]),ne=(0,N.useMemo)(()=>{let e=new Map;for(let t of ft(h??c))e.set(t.path,t.value);return e},[h,c]),k=(0,N.useMemo)(()=>bt(c),[c]),A=Z(c),j=te.length,re=Array.isArray(A),ie=C!==k;(0,N.useEffect)(()=>{D.current||(w(k),E(null))},[k]);let oe=(e,t)=>{v&&A!==null&&v(ht(A,e.path,mt(e.kind,t)))};return(0,W.jsx)(l,{open:e,onOpenChange:t,children:(0,W.jsxs)(d,{side:`right`,showOverlay:!1,className:`gap-0 p-0 data-[side=right]:sm:max-w-xl`,"data-slot":`json-value-sheet`,children:[(0,W.jsxs)(u,{className:`gap-2 border-b border-border/50`,children:[(0,W.jsxs)(`div`,{className:`flex flex-col gap-0.5 pr-8`,children:[(0,W.jsx)(m,{className:`text-sm`,children:(0,W.jsx)(`span`,{className:`font-mono`,children:n})}),(0,W.jsxs)(f,{className:`font-mono text-[11px]`,children:[s,(0,W.jsx)(`span`,{className:`text-border`,children:` · `}),o,j>0?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`text-border`,children:` · `}),j,` `,j===1?`field`:`fields`]}):null]})]}),(0,W.jsxs)(`div`,{className:`flex items-center gap-4`,role:`tablist`,"aria-label":`JSON value tabs`,children:[(0,W.jsx)(At,{active:y===`table`,onClick:()=>b(`table`),id:`table`,children:`Table`}),(0,W.jsx)(At,{active:y===`json`,onClick:()=>b(`json`),id:`json`,children:`JSON`})]})]}),(0,W.jsx)(`div`,{className:i(`flex min-h-0 flex-1 flex-col px-4 pb-2`,y===`json`?`overflow-hidden pt-3`:`overflow-y-auto`),children:y===`table`?j===0?(0,W.jsx)(`p`,{className:`px-1 py-8 text-center text-sm text-muted-foreground`,"data-slot":`json-value-empty`,children:re?`Empty array.`:`No fields.`}):(0,W.jsxs)(`table`,{className:`w-full table-fixed border-collapse`,"data-slot":`json-value-table`,children:[(0,W.jsxs)(`colgroup`,{children:[(0,W.jsx)(`col`,{className:`w-[30%]`}),(0,W.jsx)(`col`,{className:`w-12`}),(0,W.jsx)(`col`,{})]}),(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{className:`border-b border-border/60 text-left`,children:[(0,W.jsx)(`th`,{className:`sticky top-0 bg-popover py-2 pr-3 font-mono text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:`Field`}),(0,W.jsx)(`th`,{className:`sticky top-0 bg-popover py-2 pr-3 font-mono text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:`Type`}),(0,W.jsx)(`th`,{className:`sticky top-0 bg-popover py-2 font-mono text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:`Value`})]})}),(0,W.jsx)(`tbody`,{className:`divide-y divide-border/60`,children:te.map(e=>(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{className:`align-top py-1.5 pr-3`,children:(0,W.jsx)(`span`,{className:`block truncate font-mono text-[11px] font-medium text-muted-foreground`,title:e.path,children:e.path})}),(0,W.jsx)(`td`,{className:`align-top py-1.5 pr-3`,children:(0,W.jsx)(`span`,{className:`font-mono text-[9px] text-muted-foreground/60`,children:Ot(e.kind)})}),(0,W.jsx)(`td`,{className:i(`min-w-0 align-top py-1 font-mono text-[11px] break-words`,e.kind===`null`&&!O&&`text-muted-foreground/40`,e.kind===`number`&&`tabular-nums`,(e.kind===`object`||e.kind===`array`)&&!O&&`text-muted-foreground`),dir:wt(e.value)?`rtl`:`ltr`,children:O?(0,W.jsx)(et,{value:pt(e.value,e.kind),label:`Edit ${e.path}`,dirty:!gt(ne.get(e.path),e.value),onChange:t=>oe(e,t),className:`min-h-7 w-full px-0 font-mono text-[11px]`}):kt(e.value,e.kind)})]},e.path))})]}):(0,W.jsx)(Et,{pretty:k,draft:C,error:T,dirty:ie,editable:O,onDraftChange:e=>{w(e),T&&E(null)},onFocusChange:e=>{D.current=e},onCommit:()=>{if(!v)return;let e=dt(C);if(!e.ok){E(e.error);return}E(null),v(e.value)},onRevert:()=>{w(k),E(null)}})}),(0,W.jsxs)(`div`,{className:`mt-auto flex items-center justify-between gap-2 border-t border-border/50 px-4 py-2.5`,children:[O?(0,W.jsx)(`span`,{className:`inline-flex items-center gap-1.5 font-mono text-[10px] text-muted-foreground`,children:y===`json`?(0,W.jsxs)(W.Fragment,{children:[`Edit JSON · blur or`,(0,W.jsx)(p,{keys:ae(`↵`)}),`to apply`]}):`Click a value to edit · Changes to review`}):(0,W.jsx)(`span`,{}),(0,W.jsxs)(g,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{if(!navigator.clipboard)return;let e=y===`json`?C:k;navigator.clipboard.writeText(e).then(()=>{S(!0),window.setTimeout(()=>S(!1),1200)})},"data-slot":`json-value-copy`,children:[(0,W.jsx)(r,{icon:x?a:ee,className:`size-3.5`,"aria-hidden":!0}),x?`Copied`:`Copy JSON`]})]})]})})}function Et({pretty:e,draft:t,error:n,dirty:r,editable:a,onDraftChange:o,onFocusChange:s,onCommit:c,onRevert:l}){let u=(0,N.useRef)(null),d=(0,N.useRef)(null),f=(0,N.useRef)(null),p=(a?t:e).split(`
|
|
12
|
+
`);return(0,N.useEffect)(()=>{let e=d.current,t=f.current;e&&t!==null&&(e.selectionStart=e.selectionEnd=t,f.current=null)},[t]),(0,W.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-1.5`,"data-slot":`json-value-source`,children:[(0,W.jsx)(`div`,{className:i(`flex min-h-0 flex-1 overflow-hidden rounded-md border`,n?`border-destructive/50`:r?`border-amber-500/30`:`border-border/60`),children:a?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{ref:u,className:`shrink-0 overflow-hidden border-r border-border/40 bg-muted/30 px-1.5 py-2 text-right font-mono text-[10px] leading-5 text-muted-foreground/80`,"aria-hidden":!0,children:p.map((e,t)=>(0,W.jsx)(`div`,{children:t+1},t))}),(0,W.jsx)(`textarea`,{ref:d,value:t,spellCheck:!1,"aria-label":`JSON source`,"aria-invalid":n!==null,"data-slot":`json-value-editor`,onFocus:()=>s(!0),onBlur:()=>{s(!1),c()},onScroll:()=>{u.current&&d.current&&(u.current.scrollTop=d.current.scrollTop)},onChange:e=>o(e.target.value),onKeyDown:e=>{if(e.key===`Tab`){e.preventDefault();let n=e.currentTarget.selectionStart,r=e.currentTarget.selectionEnd;f.current=n+2,o(`${t.slice(0,n)} ${t.slice(r)}`);return}if(e.key===`Enter`&&(e.metaKey||e.ctrlKey)){e.preventDefault(),Dt(e.currentTarget);return}e.key===`Escape`&&(e.preventDefault(),l(),Dt(e.currentTarget))},className:i(`min-h-0 min-w-0 flex-1 resize-none bg-transparent px-2 py-2 font-mono text-[11px] leading-5`,`shadow-none outline-none ring-0 focus-visible:outline-none`,r?`text-[#9a5b12] dark:text-[#e8c48a]`:`text-foreground`)})]}):(0,W.jsx)(k,{json:e,dataSlot:`json-value-highlight`,className:`flex min-h-0 flex-1 overflow-auto`})}),n?(0,W.jsx)(`p`,{className:`text-[11px] text-destructive`,role:`alert`,"data-slot":`json-value-error`,children:n}):null]})}function Dt(e){e.blur()}function Ot(e){switch(e){case`number`:return`123`;case`boolean`:return`0/1`;case`null`:return`∅`;case`object`:case`array`:return`{ }`;default:return`abc`}}function kt(e,t){return t===`object`?`{}`:t===`array`?`[]`:Y(e)}function At({active:e,onClick:t,id:n,children:r}){return(0,W.jsx)(`button`,{type:`button`,role:`tab`,id:`json-tab-${n}`,"aria-selected":e,onClick:t,className:i(`px-2 py-1.5 text-[10px] font-semibold tracking-[0.08em] uppercase transition-colors hover:bg-muted/50`,e?`text-foreground`:`text-muted-foreground hover:text-foreground`),"data-slot":`json-tab-${n}`,children:r})}var jt=`[redacted]`;function Mt(e){let t={};for(let[n,r]of Object.entries(e))r!==`[redacted]`&&(t[n]=r);return t}function Nt(e){return e===jt}function Pt(e,t){if(e===`boolean`){let e=t.trim().toLowerCase();return e===`true`||e===`1`||e===`yes`||e===`on`?!0:e===`false`||e===`0`||e===`no`||e===`off`||e===``?!1:t}if(e===`integer`){let e=Number(t);return Number.isFinite(e)?Math.trunc(e):t}if(e===`number`){let e=Number(t);return Number.isFinite(e)?e:t}if(e===`json`)try{return JSON.parse(t)}catch{return t}return t}function Ft(e){let t={};for(let n of e)t[n.key]=n.key===`id`?crypto.randomUUID():``;return`id`in t||(t.id=crypto.randomUUID()),t}function It(e){return e.some(e=>e.key===`id`)?[...e]:[{key:`id`,type:`string`},...e]}function Lt(e,t){let n={},r=new Set;for(let i of e){r.add(i.key);let e=t[i.key]??``;e.trim()!==``&&(n[i.key]=Pt(i.type,e))}if(!r.has(`id`)){let e=t.id??``;e.trim()!==``&&(n.id=e.trim())}let i=Mt(n),a=i.id;return(typeof a!=`string`||a.length===0)&&typeof a!=`number`?{ok:!1,error:`id is required`}:{ok:!0,patch:i}}function Q(e){return{minRow:Math.min(e.anchor.row,e.head.row),maxRow:Math.max(e.anchor.row,e.head.row),minCol:Math.min(e.anchor.col,e.head.col),maxCol:Math.max(e.anchor.col,e.head.col)}}function Rt(e,t,n){let r=Q(e);return t>=r.minRow&&t<=r.maxRow&&n>=r.minCol&&n<=r.maxCol}function zt(e){let t=Q(e);return(t.maxRow-t.minRow+1)*(t.maxCol-t.minCol+1)}function Bt(e){let t=Q(e),n=[];for(let e=t.minRow;e<=t.maxRow;e++)for(let r=t.minCol;r<=t.maxCol;r++)n.push({row:e,col:r});return n}function Vt(e){if(!e)return[];let t=e.replace(/\r\n/g,`
|
|
13
|
+
`).replace(/\r/g,`
|
|
14
|
+
`).split(`
|
|
15
|
+
`);return t.length>1&&t[t.length-1]===``&&t.pop(),t.map(e=>e.split(` `))}function Ht(e){return e.map(e=>e.map(e=>e.replace(/[\t\r\n]+/g,` `)).join(` `)).join(`
|
|
16
|
+
`)}var Ut=[`id`,`key`];function Wt(e){if(e==null)return``;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return``}}function Gt(e){return/[",\r\n]/.test(e)?`"${e.replaceAll(`"`,`""`)}"`:e}function Kt(e,t){let n=[e.map(Gt).join(`,`)];for(let r of t)n.push(e.map((e,t)=>Gt(r[t]??``)).join(`,`));return n.join(`
|
|
17
|
+
`)}function qt(e){let t=e.replace(/^\uFEFF/,``),n=[],r=[],i=``,a=!1;for(let e=0;e<t.length;e++){let o=t[e];if(a){if(o===`"`){if(t[e+1]===`"`){i+=`"`,e+=1;continue}a=!1;continue}i+=o;continue}if(o===`"`){a=!0;continue}if(o===`,`){r.push(i),i=``;continue}if(o===`
|
|
18
|
+
`){r.push(i),i=``,n.push(r),r=[];continue}o!==`\r`&&(i+=o)}if(a)throw Error(`Unclosed CSV quote`);return(i.length>0||r.length>0)&&(r.push(i),n.push(r)),n}function Jt(e){let t=e[0];if(!t||t.length===0)return[];let n=[];for(let r of e.slice(1)){let e={},i=!1;for(let n=0;n<t.length;n++){let a=t[n]?.trim();a&&(e[a]=r[n]??``,i=!0)}i&&n.push(e)}return n}function Yt(e){let t=JSON.parse(e);if(!Array.isArray(t))throw Error(`JSON import must be an array of objects`);return t.map(e=>{if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`JSON import must be an array of objects`);let t={};for(let[n,r]of Object.entries(e))t[n]=Wt(r);return t})}function Xt(e){let t=e.trim();if(t.length===0)return[];if(t.startsWith(`[`)||t.startsWith(`{`))return Yt(t);let n=t.split(/\r?\n/,1)[0]??``;return n.includes(` `)&&!n.includes(`,`)?Jt(Vt(e)):Jt(qt(e))}function Zt(e){let t=0,n=[];for(let r of e.records){let i=Qt(r,e.rowIds);if(i===null){t+=1;continue}for(let[t,a]of Object.entries(r))Ut.includes(t)||a!==`[redacted]`&&e.writable(i,t)&&n.push({rowId:i,key:t,text:a})}return{hits:n,unmatched:t}}function Qt(e,t){for(let n of Ut){let r=e[n]?.trim();if(r&&t.has(r))return r}return null}function $t({rows:e,error:t,pending:n,meta:o,executed:c,executedLanguage:l=`sql`,storeRef:u=`sql:query`,collapsed:d=!1,onToggleCollapse:f,sets:p=[],activeSet:m=0,onSelectSet:g}){let[b,x]=(0,N.useState)(`table`),[E,ae]=(0,N.useState)(null),[M,le]=(0,N.useState)(null),P=(0,N.useMemo)(()=>en(e??[]),[e]),F=(0,N.useMemo)(()=>JSON.stringify(e??[],null,2),[e]),ue=(0,N.useMemo)(()=>!e||e.length===0?``:Kt(P,e.map(e=>P.map(t=>Wt(e[t])))),[e,P]),I=ie()??!1,L=(0,N.useRef)(n),[R,de]=(0,N.useState)(0);(0,N.useEffect)(()=>{L.current&&!n&&de(e=>e+1),L.current=n},[n]);let z=e=>{let t=e===`csv`?ue:F;navigator.clipboard&&t.length!==0&&navigator.clipboard.writeText(t).then(()=>{ae(e),window.setTimeout(()=>ae(null),1200)})},fe=e=>{let t=e===`csv`?ue:F;if(t.length===0)return;let n=new Blob([t],{type:e===`csv`?`text/csv`:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=e===`csv`?`query-results.csv`:`query-results.json`,i.click(),URL.revokeObjectURL(r)},B=e!==null&&e.length>0;return(0,W.jsxs)(`div`,{className:i(`flex min-h-0 flex-col overflow-hidden`,d?`shrink-0`:`h-full`),"data-slot":`store-query-results`,children:[(0,W.jsxs)(`div`,{className:i(h,d&&`border-t border-b-0`),children:[p.length>1?p.map((e,t)=>(0,W.jsxs)(`button`,{type:`button`,"aria-pressed":t===m,onClick:()=>g?.(t),className:i(s,`font-mono`,t===m?v:_),children:[t+1,` `,e.label]},`${e.label}-${t}`)):null,(0,W.jsx)($,{label:`Table`,icon:ne,active:b===`table`,onClick:()=>x(`table`)}),(0,W.jsx)($,{label:`JSON`,icon:O,active:b===`json`,onClick:()=>x(`json`)}),(0,W.jsx)($,{label:`Executed statement`,icon:A,active:b===`raw`,onClick:()=>x(`raw`)}),(0,W.jsx)(`span`,{className:`flex min-w-0 flex-1 items-center truncate px-2 text-[11px] text-muted-foreground`,children:t||(n?`Running…`:o??`No results yet. Run a query to see results here.`)}),(0,W.jsx)($,{label:E===`json`?`Copied`:`Copy JSON`,icon:E===`json`?a:ee,disabled:!B,onClick:()=>z(`json`)}),(0,W.jsx)($,{label:`Download JSON`,icon:ce,disabled:!B,onClick:()=>fe(`json`)}),(0,W.jsx)($,{label:E===`csv`?`Copied`:`Copy CSV`,icon:E===`csv`?a:se,disabled:!B,onClick:()=>z(`csv`)}),f?(0,W.jsx)($,{label:d?`Expand results`:`Collapse results`,icon:d?oe:te,expanded:!d,slot:`store-query-results-collapse`,onClick:f}):null]}),d?null:(0,W.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:n?(0,W.jsx)(`p`,{className:`px-3 py-8 text-center text-sm text-muted-foreground`,children:`Running…`}):(0,W.jsx)(re.div,{initial:R===0?!1:I?{opacity:0}:{opacity:0,transform:`translateY(4px)`},animate:I?{opacity:1}:{opacity:1,transform:`translateY(0px)`},transition:{duration:I?.12:.18,ease:j},children:t?(0,W.jsx)(`p`,{className:`px-3 py-4 font-mono text-xs leading-relaxed text-destructive`,role:`alert`,children:t}):e===null&&b!==`raw`?(0,W.jsx)(w,{className:`h-full min-h-40 border-0`,children:(0,W.jsxs)(S,{children:[(0,W.jsx)(C,{variant:`icon`,children:(0,W.jsx)(r,{icon:y,className:`size-4`})}),(0,W.jsx)(T,{children:`No results yet`}),(0,W.jsx)(D,{children:`Run a query to see results here.`})]})}):b===`raw`?c?(0,W.jsx)(`div`,{className:`p-3`,"data-slot":`store-query-raw`,children:(0,W.jsx)(Qe,{code:c,language:l,className:`text-xs leading-5`})}):(0,W.jsx)(`p`,{className:`px-3 py-8 text-center text-sm text-muted-foreground`,children:`Nothing executed yet.`}):b===`json`?(0,W.jsx)(k,{json:F,dataSlot:`store-query-json`,className:`min-h-full p-3`}):e&&e.length===0?(0,W.jsx)(`p`,{className:`px-3 py-8 text-center text-sm text-muted-foreground`,children:`Query returned 0 rows.`}):(0,W.jsxs)(`table`,{className:`w-full min-w-max border-collapse text-left text-[12px]`,children:[(0,W.jsx)(`thead`,{className:`sticky top-0 z-10 bg-background`,children:(0,W.jsx)(`tr`,{children:P.map(e=>(0,W.jsx)(`th`,{scope:`col`,className:`border-b border-border/60 px-3 py-1.5 font-mono text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:e},e))})}),(0,W.jsx)(`tbody`,{children:(e??[]).map((e,t)=>(0,W.jsx)(`tr`,{className:`border-b border-border/60 hover:bg-muted/50`,children:P.map(n=>{let r=e[n],i=Z(r)!==null;return(0,W.jsx)(`td`,{className:`max-w-xs truncate px-3 py-1.5 font-mono text-foreground/90`,children:i?(0,W.jsx)(`button`,{type:`button`,className:`max-w-full truncate text-left underline decoration-border/70 underline-offset-2 hover:text-foreground`,onClick:()=>le({rowId:String(t),column:n,value:r}),children:X(n,r)??Y(r)}):X(n,r)??Y(r)},n)})},t))})]})},R)}),(0,W.jsx)(Tt,{open:M!==null,onOpenChange:e=>{e||le(null)},rowId:M?.rowId??``,column:M?.column??``,storeRef:u,value:M?.value,editable:!1})]})}function en(e){let t=[],n=new Set;for(let r of e)for(let e of Object.keys(r))n.has(e)||(n.add(e),t.push(e));return t}function $({label:e,icon:t,active:n=!1,disabled:a=!1,expanded:o,slot:c,onClick:l}){return(0,W.jsx)(E,{label:e,className:`flex self-stretch`,children:(0,W.jsx)(`button`,{type:`button`,"aria-label":e,"aria-pressed":n||void 0,"aria-expanded":o,disabled:a,"data-slot":c,onClick:l,className:i(s,n?v:_,a&&`pointer-events-none opacity-40`),children:(0,W.jsx)(r,{icon:t,className:`size-3.5`})})})}function tn(e,t){let n=-1/0,r=null;for(let i of e)i.replicaLagMs!=null&&i.effects.some(e=>t.has(e.resource))&&i.startedAt>=n&&(n=i.startedAt,r=i.replicaLagMs);return r}export{tt as A,z as B,dt as C,X as D,ut as E,B as F,M as H,pe as I,L,et as M,$e as N,it as O,Qe as P,de as R,gt as S,Y as T,le as U,ue as V,oe as W,Pt as _,Xt as a,wt as b,zt as c,Bt as d,Vt as f,Nt as g,It as h,Zt as i,rt as j,nt as k,Q as l,Ft as m,$t as n,Kt as o,Lt as p,Wt as r,Ht as s,tn as t,Rt as u,Mt as v,at as w,Z as x,Tt as y,ge as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e}from"./xyflow-yApv7D4e.js";import{Dr as t,Er as n,ar as r,lr as i,mr as a,vr as o,wr as s}from"./shortcut-keys-3ILd8oGn.js";import{o as c}from"./http-method-Jrh39p7A.js";import{h as l,m as u,t as d}from"./element-icons-BI8cJgdh.js";import{d as f,i as p,u as m}from"./highlighted-json-MYZQtRnw.js";import{t as h}from"./UserIcon-DaE2PB5_.js";import{t as g}from"./UnavailableIcon-D9cvHVPr.js";var _=[[`path`,{d:`M13.5 13L17 9M14 15C14 16.1046 13.1046 17 12 17C10.8954 17 10 16.1046 10 15C10 13.8954 10.8954 13 12 13C13.1046 13 14 13.8954 14 15Z`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`0`}],[`path`,{d:`M6 12C6 8.68629 8.68629 6 12 6C13.0929 6 14.1175 6.29218 15 6.80269`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`1`}],[`path`,{d:`M2.50006 12.0001C2.50006 7.52172 2.50006 5.28255 3.8913 3.8913C5.28255 2.50006 7.52172 2.50006 12.0001 2.50006C16.4784 2.50006 18.7176 2.50006 20.1088 3.8913C21.5001 5.28255 21.5001 7.52172 21.5001 12.0001C21.5001 16.4784 21.5001 18.7176 20.1088 20.1088C18.7176 21.5001 16.4784 21.5001 12.0001 21.5001C7.52172 21.5001 5.28255 21.5001 3.8913 20.1088C2.50006 18.7176 2.50006 16.4784 2.50006 12.0001Z`,stroke:`currentColor`,strokeWidth:`1.5`,key:`2`}]],v=[[`path`,{d:`M5.0249 21C5.04385 19.2643 5.04366 17.5541 5.0366 15.9209M5.0366 15.9209C5.01301 10.4614 4.91276 5.86186 5.19475 4.04271C5.5611 1.67939 9.39301 3.82993 13.9703 5.59842L16.0328 6.48729C17.5508 7.1415 19.7187 8.30352 18.7662 9.66084C18.3738 10.22 17.56 10.8596 16.0575 11.567L5.0366 15.9209Z`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`0`}]],y=[[`path`,{d:`M16 16L11.6667 21.6535C11.1282 22.356 10.1188 21.9188 10.1188 20.9829V14.0301C10.1188 13.4695 9.72302 13.015 9.23474 13.015H5.88582C5.12506 13.015 4.71954 11.9851 5.22212 11.3294L7.7741 8`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`0`}],[`path`,{d:`M10 5.72714L12.4969 2.35038C13.0221 1.63999 14.0067 2.08215 14.0067 3.02843V10.059C14.0067 10.6258 14.3928 11.0854 14.8691 11.0854H18.1359C18.878 11.0854 19.2736 12.1268 18.7833 12.7898L17.8885 14`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`1`}],[`path`,{d:`M2 2L22 22`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`2`}]],b=[[`path`,{d:`M5.22576 11.3294L12.224 2.34651C12.7713 1.64397 13.7972 2.08124 13.7972 3.01707V9.96994C13.7972 10.5305 14.1995 10.985 14.6958 10.985H18.0996C18.8729 10.985 19.2851 12.0149 18.7742 12.6706L11.776 21.6535C11.2287 22.356 10.2028 21.9188 10.2028 20.9829V14.0301C10.2028 13.4695 9.80048 13.015 9.3042 13.015H5.90035C5.12711 13.015 4.71494 11.9851 5.22576 11.3294Z`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`0`}]],x=[[`path`,{d:`M8.5 15.5C8.63206 15.9782 8.89835 16.5 9.59365 16.5C10.7968 16.5 11.0976 15.5 12 12C12.9024 8.5 13.2032 7.5 14.4064 7.5C15.1016 7.5 15.3679 8.02179 15.5 8.5M10.5417 10.75H14.4064`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`0`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`1.5`,key:`1`}]],S=[[`path`,{d:`M2 11.4C2 10.2417 2.24173 10 3.4 10H20.6C21.7583 10 22 10.2417 22 11.4V12.6C22 13.7583 21.7583 14 20.6 14H3.4C2.24173 14 2 13.7583 2 12.6V11.4Z`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`0`}],[`path`,{d:`M2 3.4C2 2.24173 2.24173 2 3.4 2H20.6C21.7583 2 22 2.24173 22 3.4V4.6C22 5.75827 21.7583 6 20.6 6H3.4C2.24173 6 2 5.75827 2 4.6V3.4Z`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`1`}],[`path`,{d:`M2 19.4C2 18.2417 2.24173 18 3.4 18H20.6C21.7583 18 22 18.2417 22 19.4V20.6C22 21.7583 21.7583 22 20.6 22H3.4C2.24173 22 2 21.7583 2 20.6V19.4Z`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`2`}]],C=e();function w(e){if(!e.startsWith(`mcp:`))return null;let t=e.slice(4),n=t.indexOf(`/`);return n<=0||n===t.length-1?null:{server:t.slice(0,n),tool:t.slice(n+1)}}function T(e){return`mcp:${e}`}var E={flow:{accent:`#38BDF8`,glow:`rgba(56, 189, 248, 0.45)`,well:`rgba(56, 189, 248, 0.14)`},signal:{accent:`#FBBF24`,glow:`rgba(251, 191, 36, 0.4)`,well:`rgba(251, 191, 36, 0.14)`},store:{accent:`#34D399`,glow:`rgba(52, 211, 153, 0.45)`,well:`rgba(52, 211, 153, 0.14)`},clock:{accent:`#818CF8`,glow:`rgba(129, 140, 248, 0.45)`,well:`rgba(129, 140, 248, 0.14)`},gate:{accent:`#A78BFA`,glow:`rgba(167, 139, 250, 0.45)`,well:`rgba(167, 139, 250, 0.14)`},vault:{accent:`#94A3B8`,glow:`rgba(148, 163, 184, 0.4)`,well:`rgba(148, 163, 184, 0.14)`},channel:{accent:`#C084FC`,glow:`rgba(192, 132, 252, 0.45)`,well:`rgba(192, 132, 252, 0.14)`},ai:{accent:`#FB7185`,glow:`rgba(251, 113, 133, 0.45)`,well:`rgba(251, 113, 133, 0.14)`}},D={reads:`#2DD4BF`,writes:`#FB923C`,emits:`#FBBF24`,calls:`#60A5FA`,asks:`#FB7185`,sends:`#C084FC`,secrets:`#94A3B8`,gates:`#A78BFA`,trigger:`#FBBF24`,couple:`#64748B`},O={flow:{width:188,height:52},store:{width:168,height:48},signal:{width:168,height:48},ai:{width:168,height:48},clock:{width:168,height:48},gate:{width:168,height:48},vault:{width:168,height:48},channel:{width:168,height:48}},k={law:{width:140,height:140},hub:{width:56,height:56},type:{width:64,height:26},unit:{width:128,height:40}},A={cx:900,cy:900,elementRing:280,typeRing:418,typeRow:88,spokeRing:840},j={headerH:26,padX:10,padBottom:10},M={edge:0,unit:1,leaf:2},N=[`http`,`signal`,`cron`,`every`,`cdc`,`internal`],P={http:{icon:c,label:`HTTP`,wellClass:`border-sky-500/35 bg-sky-500/10 text-sky-600 dark:text-sky-400`},signal:{icon:d.signal.icon,label:`Signal`,wellClass:`border-amber-500/35 bg-amber-500/10 text-amber-700 dark:text-amber-400`},cron:{icon:f,label:`Cron`,wellClass:`border-violet-500/35 bg-violet-500/10 text-violet-700 dark:text-violet-400`},every:{icon:m,label:`Every`,wellClass:`border-teal-500/35 bg-teal-500/10 text-teal-700 dark:text-teal-400`},cdc:{icon:d.store.icon,label:`CDC`,wellClass:`border-emerald-500/35 bg-emerald-500/10 text-emerald-700 dark:text-emerald-400`},internal:{icon:x,label:`Call-only`,wellClass:`border-zinc-500/35 bg-zinc-500/10 text-zinc-600 dark:text-zinc-400`}};function F(e){return e?.http?`http`:e?.signal?`signal`:e?.cron?`cron`:e?.every?`every`:e?.cdc?`cdc`:`internal`}function ee(e){let t=F(e),n=P[t],r=null;return t===`http`&&e?.http?r=`${e.http.method} ${e.http.path}`:t===`signal`&&e?.signal?r=e.signal:t===`cron`&&e?.cron?r=e.cron:t===`every`&&e?.every?r=e.every:t===`cdc`&&e?.cdc&&(r=e.cdc.table),{kind:t,icon:n.icon,label:n.label,detail:r,wellClass:n.wellClass}}var I={policy:u,scope:l,rate:_,flag:v,public:h};function L(e,t,n){return t===`rate`||e.startsWith(`rate:`)?`rate`:e.startsWith(`flag:`)?`flag`:e===`public`?`public`:(n?.length??0)>0?`scope`:t===`policy`||t===`all`?`policy`:null}function R(e){return e?I[e]:u}function z(e,t){let n=t?.gates;return e.map(e=>{let t=n?.[e];return{name:e,kind:t?.kind??null,variant:L(e,t?.kind,t?.scopes),description:t?.description??null}})}var B=`#A78BFA`;function V({gate:e}){let n=e.variant??`undeclared`,r=[e.variant,e.description].filter(Boolean).join(` · `)||`undeclared`;return(0,C.jsxs)(`li`,{className:a,title:r,"data-slot":`trace-gate-row`,children:[(0,C.jsx)(t,{icon:R(e.variant),className:i,style:{color:B},"aria-hidden":!0}),(0,C.jsxs)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs`,children:[(0,C.jsx)(`span`,{className:`text-muted-foreground`,children:n}),(0,C.jsxs)(`span`,{className:`text-foreground/90`,children:[` `,e.name]})]})]})}function H({gates:e,heading:t=`Gates`}){return e.length===0?null:(0,C.jsxs)(`section`,{className:`flex flex-col`,"data-slot":`gate-list`,"aria-label":t,children:[(0,C.jsxs)(`div`,{className:o,children:[(0,C.jsx)(`h3`,{className:n(s,`flex items-center px-2`),children:t}),(0,C.jsx)(`span`,{className:n(r,`flex items-center`),children:e.length})]}),(0,C.jsx)(`ul`,{children:e.map(e=>(0,C.jsx)(V,{gate:e},e.name))})]})}var U={read:`Read`,write:`Write`,emit:`Emit`,send:`Send`,ask:`Ask`,embed:`Embed`,secret:`Secret`,call:`Call`,fetch:`Fetch`};function W(e,t){return`${t} ${t===1?{read:`read`,write:`write`,emit:`emit`,send:`send`,ask:`ask`,embed:`embed`,secret:`secret`,call:`call`,fetch:`fetch`}[e]:{read:`reads`,write:`writes`,emit:`emits`,send:`sends`,ask:`asks`,embed:`embeds`,secret:`secrets`,call:`calls`,fetch:`fetches`}[e]}`}function G(e){switch(e){case`read`:return D.reads;case`write`:return D.writes;case`emit`:return D.emits;case`call`:return D.calls;case`ask`:case`embed`:return D.asks;case`send`:case`fetch`:return D.sends;case`secret`:return D.secrets}}function K(e,t){if(t&&w(t))return d.ai.icon;switch(e){case`read`:case`write`:return d.store.icon;case`emit`:return d.signal.icon;case`call`:return d.flow.icon;case`ask`:case`embed`:return d.ai.icon;case`send`:case`fetch`:return d.channel.icon;case`secret`:return d.vault.icon}}var q=[`read`,`write`,`emit`,`call`,`ask`,`embed`,`send`,`fetch`,`secret`];function J(e){return e.startsWith(`sql:`)}function Y(e){return e.startsWith(`computed:`)}function X(e){let t=[{key:`duration`,label:p(e.durationMs),shortLabel:p(e.durationMs),variant:`duration`,detail:`Handler duration from the run ledger (${p(e.durationMs)}).`}];e.trigger===`http`&&t.push({key:`api`,label:`1 API call`,shortLabel:`1 API`,variant:`api`,detail:`HTTP trigger invocation for this run (not counted as an effect).`});let n=e.gates.length;n>0&&t.push({key:`gates`,label:`${n} ${n===1?`gate`:`gates`}`,shortLabel:`${n} gate${n===1?``:`s`}`,variant:`gate`,detail:`Evaluated on this run: ${e.gates.join(`, `)}.`});let r=e.effects.filter(e=>Y(e.resource)).length;r>0&&t.push({key:`cache`,label:`${r} cache ${r===1?`read`:`reads`}`,shortLabel:`${r} cache`,variant:`cache`,detail:`${r} effect${r===1?``:`s`} targeting computed:… cache keys.`});let i=e.effects.filter(e=>J(e.resource)).length;i>0&&t.push({key:`db`,label:`${i} DB ${i===1?`query`:`queries`}`,shortLabel:`${i} DB`,variant:`db`,detail:`${i} effect${i===1?``:`s`} targeting sql:… store resources.`});let a=te(e.effects);for(let e of q){let n=a.get(e)??0;n!==0&&t.push({key:e,label:W(e,n),shortLabel:W(e,n),variant:e,detail:`${n} non-SQL ${e} effect${n===1?``:`s`} on the run ledger.`})}let o=e.logs.length;return o>0&&t.push({key:`logs`,label:`${o} log ${o===1?`line`:`lines`}`,shortLabel:`${o} log${o===1?``:`s`}`,variant:`logs`,detail:`${o} ${o===1?`entry`:`entries`} in run.logs.`}),t}function Z(e){let t=w(e);return t?`Call ${t.server} → ${t.tool}`:null}function Q(e){return w(e)!==null}function $(e){return Y(e.resource)?`Cache read`:J(e.resource)?e.kind===`write`?`DB write`:`DB query`:e.kind===`call`&&Q(e.resource)?`MCP call`:{read:`Read`,write:`Write`,emit:`Emit`,send:`Send`,ask:`Ask`,embed:`Embed`,secret:`Secret`,call:`Call`,fetch:`Fetch`}[e.kind]}function te(e){let t=new Map;for(let n of e)J(n.resource)||Y(n.resource)||t.set(n.kind,(t.get(n.kind)??0)+1);return t}function ne(e){switch(e){case`hit`:return{icon:b,label:`Cache hit`,className:`text-sky-500 dark:text-sky-400`};case`miss`:return{icon:y,label:`Cache miss`,className:`text-amber-600 dark:text-amber-400`};case`none`:return{icon:g,label:`Cache not applicable`,className:`text-muted-foreground/40`}}}function re(e,t,n){let r=e?.flows?.[t],i=r?.trigger;return i?.http?{method:i.http.method,path:i.http.path,headline:`${i.http.method} ${i.http.path}`}:i?.signal?{method:null,path:null,headline:`Signal · ${i.signal}`}:i?.cron?{method:null,path:null,headline:`Cron · ${i.cron}`}:i?.every?{method:null,path:null,headline:`Every · ${i.every}`}:i?.cdc?{method:null,path:null,headline:`CDC · ${i.cdc.table}`}:n===`http`?{method:null,path:null,headline:`HTTP`}:n===`internal`||!r?.trigger?{method:null,path:null,headline:`Call-only`}:{method:null,path:null,headline:n}}export{w as C,T as S,b as T,A as _,Z as a,O as b,K as c,N as d,P as f,M as g,D as h,X as i,H as l,ee as m,ne as n,U as o,F as p,$ as r,G as s,re as t,z as u,k as v,S as w,j as x,E as y};
|