@astrasyncai/verification-gateway 4.5.1 → 5.0.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.
Files changed (140) hide show
  1. package/README.md +1 -1
  2. package/dist/adapter-interface/interface.d.mts +2 -2
  3. package/dist/adapter-interface/interface.d.ts +2 -2
  4. package/dist/adapters/express.d.mts +2 -2
  5. package/dist/adapters/express.d.ts +2 -2
  6. package/dist/adapters/express.js +11 -33
  7. package/dist/adapters/express.js.map +1 -1
  8. package/dist/adapters/express.mjs +11 -33
  9. package/dist/adapters/express.mjs.map +1 -1
  10. package/dist/adapters/mcp.d.mts +2 -2
  11. package/dist/adapters/mcp.d.ts +2 -2
  12. package/dist/adapters/mcp.js +28 -65
  13. package/dist/adapters/mcp.js.map +1 -1
  14. package/dist/adapters/mcp.mjs +27 -64
  15. package/dist/adapters/mcp.mjs.map +1 -1
  16. package/dist/adapters/nextjs.d.mts +2 -2
  17. package/dist/adapters/nextjs.d.ts +2 -2
  18. package/dist/adapters/nextjs.js +9 -30
  19. package/dist/adapters/nextjs.js.map +1 -1
  20. package/dist/adapters/nextjs.mjs +9 -30
  21. package/dist/adapters/nextjs.mjs.map +1 -1
  22. package/dist/adapters/sdk.d.mts +2 -2
  23. package/dist/adapters/sdk.d.ts +2 -2
  24. package/dist/adapters/sdk.js +8 -124
  25. package/dist/adapters/sdk.js.map +1 -1
  26. package/dist/adapters/sdk.mjs +8 -122
  27. package/dist/adapters/sdk.mjs.map +1 -1
  28. package/dist/agent/index.d.mts +2 -2
  29. package/dist/agent/index.d.ts +2 -2
  30. package/dist/agent/index.js +1 -1
  31. package/dist/agent/index.js.map +1 -1
  32. package/dist/agent/index.mjs +1 -1
  33. package/dist/agent/index.mjs.map +1 -1
  34. package/dist/bin/astrasync-claude-hook.js +63 -41
  35. package/dist/bin/astrasync-codex-hook.js +63 -41
  36. package/dist/bin/astrasync-guard.js +63 -41
  37. package/dist/bin/astrasync.js +75 -48
  38. package/dist/browser/background.js +63 -41
  39. package/dist/browser/background.js.map +1 -1
  40. package/dist/browser/background.mjs +63 -41
  41. package/dist/browser/background.mjs.map +1 -1
  42. package/dist/browser/browser-adapter.d.mts +2 -2
  43. package/dist/browser/browser-adapter.d.ts +2 -2
  44. package/dist/claude-code/claude-code-adapter.d.mts +2 -2
  45. package/dist/claude-code/claude-code-adapter.d.ts +2 -2
  46. package/dist/cli/index.d.mts +2 -2
  47. package/dist/cli/index.d.ts +2 -2
  48. package/dist/cli/index.js +33 -6
  49. package/dist/cli/index.js.map +1 -1
  50. package/dist/cli/index.mjs +33 -6
  51. package/dist/cli/index.mjs.map +1 -1
  52. package/dist/codex/index.d.mts +2 -2
  53. package/dist/codex/index.d.ts +2 -2
  54. package/dist/codex/index.js +63 -41
  55. package/dist/codex/index.js.map +1 -1
  56. package/dist/codex/index.mjs +63 -41
  57. package/dist/codex/index.mjs.map +1 -1
  58. package/dist/cursor/cursor-adapter.d.mts +2 -2
  59. package/dist/cursor/cursor-adapter.d.ts +2 -2
  60. package/dist/cursor/extension.d.mts +2 -2
  61. package/dist/cursor/extension.d.ts +2 -2
  62. package/dist/cursor/extension.js +63 -41
  63. package/dist/cursor/extension.js.map +1 -1
  64. package/dist/cursor/extension.mjs +63 -41
  65. package/dist/cursor/extension.mjs.map +1 -1
  66. package/dist/edge-config.d.mts +1 -1
  67. package/dist/edge-config.d.ts +1 -1
  68. package/dist/edge-config.js +1 -1
  69. package/dist/edge-config.js.map +1 -1
  70. package/dist/edge-config.mjs +1 -1
  71. package/dist/edge-config.mjs.map +1 -1
  72. package/dist/edge-core/index.d.mts +1 -3
  73. package/dist/edge-core/index.d.ts +1 -3
  74. package/dist/edge-core/index.js +11 -33
  75. package/dist/edge-core/index.js.map +1 -1
  76. package/dist/edge-core/index.mjs +11 -33
  77. package/dist/edge-core/index.mjs.map +1 -1
  78. package/dist/{express-DaqL11tx.d.ts → express-B5lWuemA.d.ts} +1 -1
  79. package/dist/{express-CR6F3njD.d.mts → express-Dm-snUuY.d.mts} +1 -1
  80. package/dist/gateway/gateway.d.mts +2 -2
  81. package/dist/gateway/gateway.d.ts +2 -2
  82. package/dist/gateway/gateway.js +63 -41
  83. package/dist/gateway/gateway.js.map +1 -1
  84. package/dist/gateway/gateway.mjs +63 -41
  85. package/dist/gateway/gateway.mjs.map +1 -1
  86. package/dist/git-trigger/git-hooks.d.mts +2 -2
  87. package/dist/git-trigger/git-hooks.d.ts +2 -2
  88. package/dist/{index-Cub7lK-T.d.mts → index-B5k_vUmK.d.mts} +1 -1
  89. package/dist/{index-BfIxCYIZ.d.ts → index-BOzM6xUq.d.mts} +1 -2
  90. package/dist/{index-CwAh7Tln.d.mts → index-dRfxUdFA.d.ts} +1 -2
  91. package/dist/{index-B5Ts1WtM.d.ts → index-y8xToocF.d.ts} +1 -1
  92. package/dist/index.d.mts +10 -10
  93. package/dist/index.d.ts +10 -10
  94. package/dist/index.js +30 -217
  95. package/dist/index.js.map +1 -1
  96. package/dist/index.mjs +30 -210
  97. package/dist/index.mjs.map +1 -1
  98. package/dist/local-evaluator/evaluator.d.mts +2 -2
  99. package/dist/local-evaluator/evaluator.d.ts +2 -2
  100. package/dist/local-evaluator/evaluator.js +22 -7
  101. package/dist/local-evaluator/evaluator.js.map +1 -1
  102. package/dist/local-evaluator/evaluator.mjs +22 -7
  103. package/dist/local-evaluator/evaluator.mjs.map +1 -1
  104. package/dist/{mcp-BgBJu4Jl.d.mts → mcp-DgsyQiQq.d.mts} +53 -52
  105. package/dist/{mcp--DgKOwfu.d.ts → mcp-OosmAcKf.d.ts} +53 -52
  106. package/dist/{nextjs-DlX6xwbU.d.mts → nextjs-B1sBdEav.d.mts} +1 -1
  107. package/dist/{nextjs-DL6uE1ye.d.ts → nextjs-DoRmhV_Z.d.ts} +1 -1
  108. package/dist/registration/index.d.mts +5 -1
  109. package/dist/registration/index.d.ts +5 -1
  110. package/dist/registration/index.js +1 -1
  111. package/dist/registration/index.js.map +1 -1
  112. package/dist/registration/index.mjs +1 -1
  113. package/dist/registration/index.mjs.map +1 -1
  114. package/dist/sdk-B83N3xKc.d.mts +142 -0
  115. package/dist/sdk-H_9BTNBS.d.ts +142 -0
  116. package/dist/transport/index.d.mts +2 -2
  117. package/dist/transport/index.d.ts +2 -2
  118. package/dist/transport/index.js +1 -1
  119. package/dist/transport/index.js.map +1 -1
  120. package/dist/transport/index.mjs +1 -1
  121. package/dist/transport/index.mjs.map +1 -1
  122. package/dist/{types-DwSfO7Sb.d.ts → types-BK2POWNc.d.ts} +23 -50
  123. package/dist/{types-C0zfSXMB.d.mts → types-CJjZvPr9.d.mts} +23 -50
  124. package/dist/{types-C7Rb-w0d.d.mts → types-CXf3q4kZ.d.ts} +14 -3
  125. package/dist/{types-nIh3HtuA.d.ts → types-DQmop7ZW.d.mts} +14 -3
  126. package/dist/ui/index.d.mts +2 -17
  127. package/dist/ui/index.d.ts +2 -17
  128. package/dist/ui/index.js +1 -43
  129. package/dist/ui/index.js.map +1 -1
  130. package/dist/ui/index.mjs +1 -42
  131. package/dist/ui/index.mjs.map +1 -1
  132. package/dist/verify.d.mts +3 -4
  133. package/dist/verify.d.ts +3 -4
  134. package/dist/verify.js +8 -28
  135. package/dist/verify.js.map +1 -1
  136. package/dist/verify.mjs +8 -28
  137. package/dist/verify.mjs.map +1 -1
  138. package/package.json +1 -1
  139. package/dist/sdk-Bbh9B_dw.d.mts +0 -215
  140. package/dist/sdk-C6SASmsh.d.ts +0 -215
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/index.ts","../../src/ui/verification-interstitial.tsx","../../src/ui/credential-prompt.tsx","../../src/ui/guidance.tsx"],"sourcesContent":["/**\n * AstraSync Verification Gateway UI Components\n *\n * React components for displaying verification status and guidance.\n */\n\nexport { VerificationInterstitial, useVerificationInterstitial } from './verification-interstitial';\n/** @deprecated Renamed VerificationInterstitial in 4.1.0; alias removed next major. */\nexport { VerificationInterstitial as CommerceShield } from './verification-interstitial';\n/** @deprecated Renamed useVerificationInterstitial in 4.1.0; alias removed next major. */\nexport { useVerificationInterstitial as useCommerceShield } from './verification-interstitial';\nexport { CredentialPrompt, useCredentialPrompt } from './credential-prompt';\nexport { GuidanceCard, TrustLevelBadge, AccessLevelIndicator, DenialReasons } from './guidance';\n\nexport type { VerificationInterstitialProps } from '../types';\n/** @deprecated Renamed VerificationInterstitialProps in 4.1.0; alias removed next major. */\nexport type { VerificationInterstitialProps as CommerceShieldProps } from '../types';\nexport type { CredentialPromptProps } from './credential-prompt';\nexport type {\n GuidanceCardProps,\n TrustLevelBadgeProps,\n AccessLevelIndicatorProps,\n DenialReasonsProps,\n} from './guidance';\n","/**\n * AstraSync Verification Interstitial Component\n *\n * A React component that displays a verification overlay for unverified agents.\n * Shows guidance on how to register and get verified access.\n *\n * Renamed from `CommerceShield` in 4.1.0; the old names are re-exported as\n * deprecated aliases from `./index` until the next major.\n */\n\nimport React from 'react';\nimport type { VerificationInterstitialProps, VerificationResult } from '../types';\n\n/**\n * Default styles for the verification interstitial\n */\nconst defaultStyles = {\n overlay: {\n position: 'fixed' as const,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(26, 26, 46, 0.95)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 9999,\n padding: '20px',\n },\n container: {\n backgroundColor: 'rgba(255, 255, 255, 0.95)',\n borderRadius: '16px',\n boxShadow: '0 25px 50px -12px rgba(0, 0, 0, 0.5)',\n maxWidth: '480px',\n width: '100%',\n padding: '40px',\n textAlign: 'center' as const,\n },\n icon: {\n fontSize: '48px',\n marginBottom: '20px',\n },\n title: {\n fontSize: '24px',\n fontWeight: 700,\n color: '#1a1a2e',\n marginBottom: '16px',\n },\n message: {\n color: '#4a5568',\n lineHeight: 1.6,\n marginBottom: '24px',\n },\n stepsContainer: {\n textAlign: 'left' as const,\n backgroundColor: '#f7fafc',\n borderRadius: '8px',\n padding: '20px',\n marginBottom: '24px',\n },\n stepsTitle: {\n fontSize: '14px',\n fontWeight: 600,\n color: '#2d3748',\n marginBottom: '12px',\n },\n stepsList: {\n paddingLeft: '20px',\n color: '#4a5568',\n margin: 0,\n },\n stepItem: {\n marginBottom: '8px',\n },\n buttonsContainer: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '12px',\n },\n buttonBase: {\n display: 'inline-block',\n padding: '14px 24px',\n borderRadius: '8px',\n fontWeight: 600,\n textDecoration: 'none',\n cursor: 'pointer',\n border: 'none',\n fontSize: '16px',\n transition: 'all 0.2s',\n },\n buttonPrimary: {\n background: 'linear-gradient(135deg, #6366f1 0%, #4f46e5 100%)',\n color: 'white',\n },\n buttonSecondary: {\n backgroundColor: '#e2e8f0',\n color: '#4a5568',\n },\n footer: {\n marginTop: '24px',\n fontSize: '14px',\n color: '#718096',\n },\n footerLink: {\n color: '#6366f1',\n textDecoration: 'none',\n },\n};\n\n/**\n * Verification interstitial overlay component. Shown to unverified agents\n * (the user-visible title remains \"AstraSync Agent Verification\").\n */\nexport function VerificationInterstitial({\n visible,\n result,\n onRegister,\n onGuestAccess,\n onDismiss,\n title = 'AstraSync Agent Verification',\n message,\n allowGuestAccess = true,\n className,\n}: VerificationInterstitialProps): JSX.Element | null {\n if (!visible) {\n return null;\n }\n\n const displayMessage =\n message ||\n result?.guidance?.message ||\n \"This site verifies AI agents before granting access. We noticed you're visiting without AstraSync credentials.\";\n\n const registrationUrl =\n result?.guidance?.registrationUrl || 'https://astrasync.ai/agents/register';\n const docsUrl = result?.guidance?.documentationUrl || 'https://astrasync.ai/docs/agent-access';\n\n const steps = result?.guidance?.steps || [\n 'Register at astrasync.ai/agents/register',\n 'Create and register your agent',\n 'Add your ASTRA-ID to request headers',\n 'Refresh this page',\n ];\n\n const handleRegisterClick = () => {\n if (onRegister) {\n onRegister();\n } else {\n window.location.href = registrationUrl;\n }\n };\n\n const handleGuestClick = () => {\n if (onGuestAccess) {\n onGuestAccess();\n } else if (onDismiss) {\n onDismiss();\n }\n };\n\n return (\n <div\n style={defaultStyles.overlay}\n className={className}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"verification-interstitial-title\"\n >\n <div style={defaultStyles.container}>\n <div style={defaultStyles.icon} aria-hidden=\"true\">\n 🛡️\n </div>\n\n <h1 id=\"verification-interstitial-title\" style={defaultStyles.title}>\n {title}\n </h1>\n\n <p style={defaultStyles.message}>{displayMessage}</p>\n\n <div style={defaultStyles.stepsContainer}>\n <h3 style={defaultStyles.stepsTitle}>To get verified access:</h3>\n <ol style={defaultStyles.stepsList}>\n {steps.map((step, index) => (\n <li key={index} style={defaultStyles.stepItem}>\n {step}\n </li>\n ))}\n </ol>\n </div>\n\n <div style={defaultStyles.buttonsContainer}>\n <button\n onClick={handleRegisterClick}\n style={{ ...defaultStyles.buttonBase, ...defaultStyles.buttonPrimary }}\n >\n Register Now\n </button>\n\n {allowGuestAccess && (\n <button\n onClick={handleGuestClick}\n style={{ ...defaultStyles.buttonBase, ...defaultStyles.buttonSecondary }}\n >\n Continue as Guest (Limited)\n </button>\n )}\n </div>\n\n <p style={defaultStyles.footer}>\n Learn more:{' '}\n <a\n href={docsUrl}\n style={defaultStyles.footerLink}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Agent Access Documentation\n </a>\n </p>\n </div>\n </div>\n );\n}\n\n/**\n * Hook to manage verification-interstitial visibility\n */\nexport function useVerificationInterstitial(verificationResult: VerificationResult | null) {\n const [visible, setVisible] = React.useState(false);\n const [dismissed, setDismissed] = React.useState(false);\n\n React.useEffect(() => {\n if (verificationResult && !dismissed) {\n // Show the interstitial if either axis failed (identity or policy)\n // or access level is 'none' or 'restricted'.\n const shouldShow =\n !verificationResult.identityVerified ||\n !verificationResult.policyAllowed ||\n verificationResult.accessLevel === 'none' ||\n verificationResult.accessLevel === 'restricted';\n\n setVisible(shouldShow);\n }\n }, [verificationResult, dismissed]);\n\n const dismiss = React.useCallback(() => {\n setDismissed(true);\n setVisible(false);\n }, []);\n\n const reset = React.useCallback(() => {\n setDismissed(false);\n }, []);\n\n return {\n visible,\n dismiss,\n reset,\n result: verificationResult,\n };\n}\n","/**\n * AstraSync Credential Prompt Component\n *\n * A React component for prompting users to enter their agent credentials.\n * Useful for single-page applications where agents may provide credentials interactively.\n */\n\nimport React, { useState, useCallback } from 'react';\nimport type { AgentCredentials } from '../types';\n\n/**\n * Credential prompt props\n */\nexport interface CredentialPromptProps {\n /** Whether the prompt is visible */\n visible: boolean;\n /** Callback when credentials are submitted */\n onSubmit: (credentials: AgentCredentials) => void;\n /** Callback when prompt is dismissed */\n onDismiss?: () => void;\n /** Title text */\n title?: string;\n /** Description text */\n description?: string;\n /** Whether to show API key input */\n showApiKey?: boolean;\n /** Whether to show JWT input */\n showJwt?: boolean;\n /** Loading state */\n loading?: boolean;\n /** Error message to display */\n error?: string;\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Default styles for the credential prompt\n */\nconst defaultStyles = {\n overlay: {\n position: 'fixed' as const,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 9999,\n padding: '20px',\n },\n container: {\n backgroundColor: 'white',\n borderRadius: '12px',\n boxShadow: '0 20px 40px rgba(0, 0, 0, 0.3)',\n maxWidth: '400px',\n width: '100%',\n padding: '32px',\n },\n title: {\n fontSize: '20px',\n fontWeight: 600,\n color: '#1a1a2e',\n marginBottom: '8px',\n },\n description: {\n fontSize: '14px',\n color: '#64748b',\n marginBottom: '24px',\n lineHeight: 1.5,\n },\n form: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '16px',\n },\n inputGroup: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '6px',\n },\n label: {\n fontSize: '14px',\n fontWeight: 500,\n color: '#374151',\n },\n input: {\n padding: '12px',\n borderRadius: '8px',\n border: '1px solid #d1d5db',\n fontSize: '14px',\n outline: 'none',\n transition: 'border-color 0.2s',\n },\n error: {\n backgroundColor: '#fef2f2',\n color: '#dc2626',\n padding: '12px',\n borderRadius: '8px',\n fontSize: '14px',\n marginBottom: '16px',\n },\n buttonContainer: {\n display: 'flex',\n gap: '12px',\n marginTop: '8px',\n },\n button: {\n flex: 1,\n padding: '12px 16px',\n borderRadius: '8px',\n fontWeight: 600,\n fontSize: '14px',\n cursor: 'pointer',\n transition: 'all 0.2s',\n border: 'none',\n },\n buttonPrimary: {\n backgroundColor: '#4f46e5',\n color: 'white',\n },\n buttonSecondary: {\n backgroundColor: '#f1f5f9',\n color: '#475569',\n },\n buttonDisabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n};\n\n/**\n * Credential prompt component\n */\nexport function CredentialPrompt({\n visible,\n onSubmit,\n onDismiss,\n title = 'Enter Agent Credentials',\n description = 'Provide your AstraSync agent credentials to verify your identity.',\n showApiKey = true,\n showJwt = false,\n loading = false,\n error,\n className,\n}: CredentialPromptProps): JSX.Element | null {\n const [astraId, setAstraId] = useState('');\n const [apiKey, setApiKey] = useState('');\n const [jwt, setJwt] = useState('');\n\n const handleSubmit = useCallback((e: React.FormEvent) => {\n e.preventDefault();\n\n const credentials: AgentCredentials = {};\n\n if (astraId.trim()) {\n credentials.astraId = astraId.trim();\n }\n if (apiKey.trim()) {\n credentials.apiKey = apiKey.trim();\n }\n if (jwt.trim()) {\n credentials.jwt = jwt.trim();\n }\n\n onSubmit(credentials);\n }, [astraId, apiKey, jwt, onSubmit]);\n\n const handleKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === 'Escape' && onDismiss) {\n onDismiss();\n }\n }, [onDismiss]);\n\n if (!visible) {\n return null;\n }\n\n const isValid = astraId.trim() || apiKey.trim() || jwt.trim();\n\n return (\n <div\n style={defaultStyles.overlay}\n className={className}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"credential-prompt-title\"\n onKeyDown={handleKeyDown}\n >\n <div style={defaultStyles.container}>\n <h2 id=\"credential-prompt-title\" style={defaultStyles.title}>\n {title}\n </h2>\n\n <p style={defaultStyles.description}>\n {description}\n </p>\n\n {error && (\n <div style={defaultStyles.error} role=\"alert\">\n {error}\n </div>\n )}\n\n <form onSubmit={handleSubmit} style={defaultStyles.form}>\n <div style={defaultStyles.inputGroup}>\n <label htmlFor=\"astra-id\" style={defaultStyles.label}>\n ASTRA-ID\n </label>\n <input\n id=\"astra-id\"\n type=\"text\"\n value={astraId}\n onChange={(e) => setAstraId(e.target.value)}\n placeholder=\"ASTRA-xxx or ASTRAD-xxx\"\n style={defaultStyles.input}\n disabled={loading}\n />\n </div>\n\n {showApiKey && (\n <div style={defaultStyles.inputGroup}>\n <label htmlFor=\"api-key\" style={defaultStyles.label}>\n API Key (optional)\n </label>\n <input\n id=\"api-key\"\n type=\"password\"\n value={apiKey}\n onChange={(e) => setApiKey(e.target.value)}\n placeholder=\"Your API key\"\n style={defaultStyles.input}\n disabled={loading}\n />\n </div>\n )}\n\n {showJwt && (\n <div style={defaultStyles.inputGroup}>\n <label htmlFor=\"jwt\" style={defaultStyles.label}>\n JWT Token (optional)\n </label>\n <input\n id=\"jwt\"\n type=\"password\"\n value={jwt}\n onChange={(e) => setJwt(e.target.value)}\n placeholder=\"Your JWT token\"\n style={defaultStyles.input}\n disabled={loading}\n />\n </div>\n )}\n\n <div style={defaultStyles.buttonContainer}>\n {onDismiss && (\n <button\n type=\"button\"\n onClick={onDismiss}\n style={{ ...defaultStyles.button, ...defaultStyles.buttonSecondary }}\n disabled={loading}\n >\n Cancel\n </button>\n )}\n\n <button\n type=\"submit\"\n style={{\n ...defaultStyles.button,\n ...defaultStyles.buttonPrimary,\n ...((!isValid || loading) ? defaultStyles.buttonDisabled : {}),\n }}\n disabled={!isValid || loading}\n >\n {loading ? 'Verifying...' : 'Verify'}\n </button>\n </div>\n </form>\n </div>\n </div>\n );\n}\n\n/**\n * Hook to manage credential prompt state\n */\nexport function useCredentialPrompt() {\n const [visible, setVisible] = useState(false);\n const [credentials, setCredentials] = useState<AgentCredentials | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const show = useCallback(() => {\n setVisible(true);\n setError(null);\n }, []);\n\n const hide = useCallback(() => {\n setVisible(false);\n setError(null);\n setLoading(false);\n }, []);\n\n const submit = useCallback((creds: AgentCredentials) => {\n setCredentials(creds);\n setLoading(true);\n setError(null);\n }, []);\n\n const setSubmitError = useCallback((err: string) => {\n setError(err);\n setLoading(false);\n }, []);\n\n const complete = useCallback(() => {\n setVisible(false);\n setLoading(false);\n setError(null);\n }, []);\n\n return {\n visible,\n credentials,\n loading,\n error,\n show,\n hide,\n submit,\n setError: setSubmitError,\n complete,\n };\n}\n","/**\n * AstraSync Guidance Components\n *\n * React components for displaying guidance information to unverified agents.\n * Provides helpful information on how to register and get verified.\n */\n\nimport React from 'react';\nimport type { GuidanceInfo, TrustLevel } from '../types';\n\n/**\n * Guidance card props\n */\nexport interface GuidanceCardProps {\n /** Guidance information */\n guidance: GuidanceInfo;\n /** Card title */\n title?: string;\n /** Whether to show as compact inline */\n compact?: boolean;\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Trust level badge props\n */\nexport interface TrustLevelBadgeProps {\n /** Trust level */\n level: TrustLevel;\n /** Trust score */\n score?: number;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Access level indicator props\n */\nexport interface AccessLevelIndicatorProps {\n /** Current access level */\n accessLevel: string;\n /** Required access level */\n requiredLevel?: string;\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Default styles\n */\nconst styles = {\n card: {\n backgroundColor: '#f8fafc',\n border: '1px solid #e2e8f0',\n borderRadius: '12px',\n padding: '24px',\n maxWidth: '480px',\n },\n cardCompact: {\n backgroundColor: '#fefce8',\n border: '1px solid #fef08a',\n borderRadius: '8px',\n padding: '16px',\n },\n cardTitle: {\n fontSize: '18px',\n fontWeight: 600,\n color: '#1e293b',\n marginBottom: '12px',\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n },\n cardMessage: {\n fontSize: '14px',\n color: '#475569',\n lineHeight: 1.6,\n marginBottom: '16px',\n },\n stepsList: {\n listStyle: 'none',\n padding: 0,\n margin: 0,\n },\n stepItem: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n marginBottom: '12px',\n fontSize: '14px',\n color: '#334155',\n },\n stepNumber: {\n backgroundColor: '#e0e7ff',\n color: '#4338ca',\n width: '24px',\n height: '24px',\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '12px',\n fontWeight: 600,\n flexShrink: 0,\n },\n links: {\n display: 'flex',\n gap: '16px',\n marginTop: '16px',\n paddingTop: '16px',\n borderTop: '1px solid #e2e8f0',\n },\n link: {\n color: '#4f46e5',\n textDecoration: 'none',\n fontSize: '14px',\n fontWeight: 500,\n },\n badge: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '4px',\n padding: '4px 8px',\n borderRadius: '9999px',\n fontWeight: 600,\n fontSize: '12px',\n },\n badgeSm: {\n padding: '2px 6px',\n fontSize: '10px',\n },\n badgeLg: {\n padding: '6px 12px',\n fontSize: '14px',\n },\n badgeBronze: {\n backgroundColor: '#fef3c7',\n color: '#92400e',\n },\n badgeSilver: {\n backgroundColor: '#e5e7eb',\n color: '#374151',\n },\n badgeGold: {\n backgroundColor: '#fef9c3',\n color: '#854d0e',\n },\n badgePlatinum: {\n backgroundColor: '#e0e7ff',\n color: '#3730a3',\n },\n indicator: {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n fontSize: '14px',\n },\n indicatorDot: {\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n },\n indicatorAllowed: {\n backgroundColor: '#22c55e',\n },\n indicatorDenied: {\n backgroundColor: '#ef4444',\n },\n indicatorLimited: {\n backgroundColor: '#f59e0b',\n },\n};\n\n/**\n * Guidance card component\n */\nexport function GuidanceCard({\n guidance,\n title = 'How to Get Verified',\n compact = false,\n className,\n}: GuidanceCardProps): JSX.Element {\n const cardStyle = compact ? styles.cardCompact : styles.card;\n\n return (\n <div style={cardStyle} className={className}>\n <h3 style={styles.cardTitle}>\n <span>💡</span>\n {title}\n </h3>\n\n <p style={styles.cardMessage}>{guidance.message}</p>\n\n {guidance.steps && guidance.steps.length > 0 && (\n <ol style={styles.stepsList}>\n {guidance.steps.map((step, index) => (\n <li key={index} style={styles.stepItem}>\n <span style={styles.stepNumber}>{index + 1}</span>\n <span>{step}</span>\n </li>\n ))}\n </ol>\n )}\n\n <div style={styles.links}>\n <a\n href={guidance.registrationUrl}\n style={styles.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Register →\n </a>\n <a\n href={guidance.documentationUrl}\n style={styles.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Documentation →\n </a>\n </div>\n </div>\n );\n}\n\n/**\n * Trust level badge component\n */\nexport function TrustLevelBadge({\n level,\n score,\n size = 'md',\n className,\n}: TrustLevelBadgeProps): JSX.Element {\n const levelColors = {\n BRONZE: styles.badgeBronze,\n SILVER: styles.badgeSilver,\n GOLD: styles.badgeGold,\n PLATINUM: styles.badgePlatinum,\n };\n\n const sizeStyles = {\n sm: styles.badgeSm,\n md: {},\n lg: styles.badgeLg,\n };\n\n const levelEmojis = {\n BRONZE: '🥉',\n SILVER: '🥈',\n GOLD: '🥇',\n PLATINUM: '💎',\n };\n\n return (\n <span\n style={{\n ...styles.badge,\n ...levelColors[level],\n ...sizeStyles[size],\n }}\n className={className}\n >\n <span>{levelEmojis[level]}</span>\n <span>{level}</span>\n {score !== undefined && <span>({score})</span>}\n </span>\n );\n}\n\n/**\n * Access level indicator component\n */\nexport function AccessLevelIndicator({\n accessLevel,\n requiredLevel,\n className,\n}: AccessLevelIndicatorProps): JSX.Element {\n const getStatus = () => {\n if (accessLevel === 'none' || accessLevel === 'restricted') {\n return 'denied';\n }\n if (requiredLevel) {\n const levels = ['none', 'restricted', 'read-only', 'standard', 'full', 'internal'];\n const currentIndex = levels.indexOf(accessLevel);\n const requiredIndex = levels.indexOf(requiredLevel);\n if (currentIndex < requiredIndex) {\n return 'limited';\n }\n }\n return 'allowed';\n };\n\n const status = getStatus();\n const statusColors = {\n allowed: styles.indicatorAllowed,\n denied: styles.indicatorDenied,\n limited: styles.indicatorLimited,\n };\n\n const statusLabels = {\n allowed: 'Access Granted',\n denied: 'Access Denied',\n limited: 'Limited Access',\n };\n\n return (\n <div style={styles.indicator} className={className}>\n <span style={{ ...styles.indicatorDot, ...statusColors[status] }} />\n <span>{statusLabels[status]}</span>\n <span style={{ color: '#94a3b8' }}>({accessLevel})</span>\n </div>\n );\n}\n\n/**\n * Denial reasons list component\n */\nexport interface DenialReasonsProps {\n reasons: string[];\n className?: string;\n}\n\nexport function DenialReasons({ reasons, className }: DenialReasonsProps): JSX.Element {\n if (reasons.length === 0) {\n return <></>;\n }\n\n return (\n <div\n style={{\n backgroundColor: '#fef2f2',\n border: '1px solid #fecaca',\n borderRadius: '8px',\n padding: '16px',\n }}\n className={className}\n >\n <h4\n style={{\n fontSize: '14px',\n fontWeight: 600,\n color: '#dc2626',\n marginBottom: '8px',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n }}\n >\n <span>⚠️</span>\n Access Denied\n </h4>\n <ul\n style={{\n margin: 0,\n paddingLeft: '20px',\n color: '#991b1b',\n fontSize: '14px',\n }}\n >\n {reasons.map((reason, index) => (\n <li key={index} style={{ marginBottom: '4px' }}>\n {reason}\n </li>\n ))}\n </ul>\n </div>\n );\n}\n"],"mappings":"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","names":["React","import_react","import_jsx_runtime","defaultStyles","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../src/ui/index.ts","../../src/ui/verification-interstitial.tsx","../../src/ui/credential-prompt.tsx","../../src/ui/guidance.tsx"],"sourcesContent":["/**\n * AstraSync Verification Gateway UI Components\n *\n * React components for displaying verification status and guidance.\n */\n\nexport { VerificationInterstitial, useVerificationInterstitial } from './verification-interstitial';\n/** @deprecated Renamed VerificationInterstitial in 4.1.0; alias removed next major. */\nexport { VerificationInterstitial as CommerceShield } from './verification-interstitial';\n/** @deprecated Renamed useVerificationInterstitial in 4.1.0; alias removed next major. */\nexport { useVerificationInterstitial as useCommerceShield } from './verification-interstitial';\nexport { CredentialPrompt, useCredentialPrompt } from './credential-prompt';\nexport { GuidanceCard, TrustLevelBadge, DenialReasons } from './guidance';\n\nexport type { VerificationInterstitialProps } from '../types';\n/** @deprecated Renamed VerificationInterstitialProps in 4.1.0; alias removed next major. */\nexport type { VerificationInterstitialProps as CommerceShieldProps } from '../types';\nexport type { CredentialPromptProps } from './credential-prompt';\nexport type { GuidanceCardProps, TrustLevelBadgeProps, DenialReasonsProps } from './guidance';\n","/**\n * AstraSync Verification Interstitial Component\n *\n * A React component that displays a verification overlay for unverified agents.\n * Shows guidance on how to register and get verified access.\n *\n * Renamed from `CommerceShield` in 4.1.0; the old names are re-exported as\n * deprecated aliases from `./index` until the next major.\n */\n\nimport React from 'react';\nimport type { VerificationInterstitialProps, VerificationResult } from '../types';\n\n/**\n * Default styles for the verification interstitial\n */\nconst defaultStyles = {\n overlay: {\n position: 'fixed' as const,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(26, 26, 46, 0.95)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 9999,\n padding: '20px',\n },\n container: {\n backgroundColor: 'rgba(255, 255, 255, 0.95)',\n borderRadius: '16px',\n boxShadow: '0 25px 50px -12px rgba(0, 0, 0, 0.5)',\n maxWidth: '480px',\n width: '100%',\n padding: '40px',\n textAlign: 'center' as const,\n },\n icon: {\n fontSize: '48px',\n marginBottom: '20px',\n },\n title: {\n fontSize: '24px',\n fontWeight: 700,\n color: '#1a1a2e',\n marginBottom: '16px',\n },\n message: {\n color: '#4a5568',\n lineHeight: 1.6,\n marginBottom: '24px',\n },\n stepsContainer: {\n textAlign: 'left' as const,\n backgroundColor: '#f7fafc',\n borderRadius: '8px',\n padding: '20px',\n marginBottom: '24px',\n },\n stepsTitle: {\n fontSize: '14px',\n fontWeight: 600,\n color: '#2d3748',\n marginBottom: '12px',\n },\n stepsList: {\n paddingLeft: '20px',\n color: '#4a5568',\n margin: 0,\n },\n stepItem: {\n marginBottom: '8px',\n },\n buttonsContainer: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '12px',\n },\n buttonBase: {\n display: 'inline-block',\n padding: '14px 24px',\n borderRadius: '8px',\n fontWeight: 600,\n textDecoration: 'none',\n cursor: 'pointer',\n border: 'none',\n fontSize: '16px',\n transition: 'all 0.2s',\n },\n buttonPrimary: {\n background: 'linear-gradient(135deg, #6366f1 0%, #4f46e5 100%)',\n color: 'white',\n },\n buttonSecondary: {\n backgroundColor: '#e2e8f0',\n color: '#4a5568',\n },\n footer: {\n marginTop: '24px',\n fontSize: '14px',\n color: '#718096',\n },\n footerLink: {\n color: '#6366f1',\n textDecoration: 'none',\n },\n};\n\n/**\n * Verification interstitial overlay component. Shown to unverified agents\n * (the user-visible title remains \"AstraSync Agent Verification\").\n */\nexport function VerificationInterstitial({\n visible,\n result,\n onRegister,\n onGuestAccess,\n onDismiss,\n title = 'AstraSync Agent Verification',\n message,\n allowGuestAccess = true,\n className,\n}: VerificationInterstitialProps): JSX.Element | null {\n if (!visible) {\n return null;\n }\n\n const displayMessage =\n message ||\n result?.guidance?.message ||\n \"This site verifies AI agents before granting access. We noticed you're visiting without AstraSync credentials.\";\n\n const registrationUrl =\n result?.guidance?.registrationUrl || 'https://astrasync.ai/agents/register';\n const docsUrl = result?.guidance?.documentationUrl || 'https://astrasync.ai/docs/agent-access';\n\n const steps = result?.guidance?.steps || [\n 'Register at astrasync.ai/agents/register',\n 'Create and register your agent',\n 'Add your ASTRA-ID to request headers',\n 'Refresh this page',\n ];\n\n const handleRegisterClick = () => {\n if (onRegister) {\n onRegister();\n } else {\n window.location.href = registrationUrl;\n }\n };\n\n const handleGuestClick = () => {\n if (onGuestAccess) {\n onGuestAccess();\n } else if (onDismiss) {\n onDismiss();\n }\n };\n\n return (\n <div\n style={defaultStyles.overlay}\n className={className}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"verification-interstitial-title\"\n >\n <div style={defaultStyles.container}>\n <div style={defaultStyles.icon} aria-hidden=\"true\">\n 🛡️\n </div>\n\n <h1 id=\"verification-interstitial-title\" style={defaultStyles.title}>\n {title}\n </h1>\n\n <p style={defaultStyles.message}>{displayMessage}</p>\n\n <div style={defaultStyles.stepsContainer}>\n <h3 style={defaultStyles.stepsTitle}>To get verified access:</h3>\n <ol style={defaultStyles.stepsList}>\n {steps.map((step, index) => (\n <li key={index} style={defaultStyles.stepItem}>\n {step}\n </li>\n ))}\n </ol>\n </div>\n\n <div style={defaultStyles.buttonsContainer}>\n <button\n onClick={handleRegisterClick}\n style={{ ...defaultStyles.buttonBase, ...defaultStyles.buttonPrimary }}\n >\n Register Now\n </button>\n\n {allowGuestAccess && (\n <button\n onClick={handleGuestClick}\n style={{ ...defaultStyles.buttonBase, ...defaultStyles.buttonSecondary }}\n >\n Continue as Guest (Limited)\n </button>\n )}\n </div>\n\n <p style={defaultStyles.footer}>\n Learn more:{' '}\n <a\n href={docsUrl}\n style={defaultStyles.footerLink}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Agent Access Documentation\n </a>\n </p>\n </div>\n </div>\n );\n}\n\n/**\n * Hook to manage verification-interstitial visibility\n */\nexport function useVerificationInterstitial(verificationResult: VerificationResult | null) {\n const [visible, setVisible] = React.useState(false);\n const [dismissed, setDismissed] = React.useState(false);\n\n React.useEffect(() => {\n if (verificationResult && !dismissed) {\n // Show the interstitial if either axis failed (identity or policy).\n const shouldShow = !verificationResult.identityVerified || !verificationResult.policyAllowed;\n\n setVisible(shouldShow);\n }\n }, [verificationResult, dismissed]);\n\n const dismiss = React.useCallback(() => {\n setDismissed(true);\n setVisible(false);\n }, []);\n\n const reset = React.useCallback(() => {\n setDismissed(false);\n }, []);\n\n return {\n visible,\n dismiss,\n reset,\n result: verificationResult,\n };\n}\n","/**\n * AstraSync Credential Prompt Component\n *\n * A React component for prompting users to enter their agent credentials.\n * Useful for single-page applications where agents may provide credentials interactively.\n */\n\nimport React, { useState, useCallback } from 'react';\nimport type { AgentCredentials } from '../types';\n\n/**\n * Credential prompt props\n */\nexport interface CredentialPromptProps {\n /** Whether the prompt is visible */\n visible: boolean;\n /** Callback when credentials are submitted */\n onSubmit: (credentials: AgentCredentials) => void;\n /** Callback when prompt is dismissed */\n onDismiss?: () => void;\n /** Title text */\n title?: string;\n /** Description text */\n description?: string;\n /** Whether to show API key input */\n showApiKey?: boolean;\n /** Whether to show JWT input */\n showJwt?: boolean;\n /** Loading state */\n loading?: boolean;\n /** Error message to display */\n error?: string;\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Default styles for the credential prompt\n */\nconst defaultStyles = {\n overlay: {\n position: 'fixed' as const,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 9999,\n padding: '20px',\n },\n container: {\n backgroundColor: 'white',\n borderRadius: '12px',\n boxShadow: '0 20px 40px rgba(0, 0, 0, 0.3)',\n maxWidth: '400px',\n width: '100%',\n padding: '32px',\n },\n title: {\n fontSize: '20px',\n fontWeight: 600,\n color: '#1a1a2e',\n marginBottom: '8px',\n },\n description: {\n fontSize: '14px',\n color: '#64748b',\n marginBottom: '24px',\n lineHeight: 1.5,\n },\n form: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '16px',\n },\n inputGroup: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '6px',\n },\n label: {\n fontSize: '14px',\n fontWeight: 500,\n color: '#374151',\n },\n input: {\n padding: '12px',\n borderRadius: '8px',\n border: '1px solid #d1d5db',\n fontSize: '14px',\n outline: 'none',\n transition: 'border-color 0.2s',\n },\n error: {\n backgroundColor: '#fef2f2',\n color: '#dc2626',\n padding: '12px',\n borderRadius: '8px',\n fontSize: '14px',\n marginBottom: '16px',\n },\n buttonContainer: {\n display: 'flex',\n gap: '12px',\n marginTop: '8px',\n },\n button: {\n flex: 1,\n padding: '12px 16px',\n borderRadius: '8px',\n fontWeight: 600,\n fontSize: '14px',\n cursor: 'pointer',\n transition: 'all 0.2s',\n border: 'none',\n },\n buttonPrimary: {\n backgroundColor: '#4f46e5',\n color: 'white',\n },\n buttonSecondary: {\n backgroundColor: '#f1f5f9',\n color: '#475569',\n },\n buttonDisabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n};\n\n/**\n * Credential prompt component\n */\nexport function CredentialPrompt({\n visible,\n onSubmit,\n onDismiss,\n title = 'Enter Agent Credentials',\n description = 'Provide your AstraSync agent credentials to verify your identity.',\n showApiKey = true,\n showJwt = false,\n loading = false,\n error,\n className,\n}: CredentialPromptProps): JSX.Element | null {\n const [astraId, setAstraId] = useState('');\n const [apiKey, setApiKey] = useState('');\n const [jwt, setJwt] = useState('');\n\n const handleSubmit = useCallback((e: React.FormEvent) => {\n e.preventDefault();\n\n const credentials: AgentCredentials = {};\n\n if (astraId.trim()) {\n credentials.astraId = astraId.trim();\n }\n if (apiKey.trim()) {\n credentials.apiKey = apiKey.trim();\n }\n if (jwt.trim()) {\n credentials.jwt = jwt.trim();\n }\n\n onSubmit(credentials);\n }, [astraId, apiKey, jwt, onSubmit]);\n\n const handleKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === 'Escape' && onDismiss) {\n onDismiss();\n }\n }, [onDismiss]);\n\n if (!visible) {\n return null;\n }\n\n const isValid = astraId.trim() || apiKey.trim() || jwt.trim();\n\n return (\n <div\n style={defaultStyles.overlay}\n className={className}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"credential-prompt-title\"\n onKeyDown={handleKeyDown}\n >\n <div style={defaultStyles.container}>\n <h2 id=\"credential-prompt-title\" style={defaultStyles.title}>\n {title}\n </h2>\n\n <p style={defaultStyles.description}>\n {description}\n </p>\n\n {error && (\n <div style={defaultStyles.error} role=\"alert\">\n {error}\n </div>\n )}\n\n <form onSubmit={handleSubmit} style={defaultStyles.form}>\n <div style={defaultStyles.inputGroup}>\n <label htmlFor=\"astra-id\" style={defaultStyles.label}>\n ASTRA-ID\n </label>\n <input\n id=\"astra-id\"\n type=\"text\"\n value={astraId}\n onChange={(e) => setAstraId(e.target.value)}\n placeholder=\"ASTRA-xxx or ASTRAD-xxx\"\n style={defaultStyles.input}\n disabled={loading}\n />\n </div>\n\n {showApiKey && (\n <div style={defaultStyles.inputGroup}>\n <label htmlFor=\"api-key\" style={defaultStyles.label}>\n API Key (optional)\n </label>\n <input\n id=\"api-key\"\n type=\"password\"\n value={apiKey}\n onChange={(e) => setApiKey(e.target.value)}\n placeholder=\"Your API key\"\n style={defaultStyles.input}\n disabled={loading}\n />\n </div>\n )}\n\n {showJwt && (\n <div style={defaultStyles.inputGroup}>\n <label htmlFor=\"jwt\" style={defaultStyles.label}>\n JWT Token (optional)\n </label>\n <input\n id=\"jwt\"\n type=\"password\"\n value={jwt}\n onChange={(e) => setJwt(e.target.value)}\n placeholder=\"Your JWT token\"\n style={defaultStyles.input}\n disabled={loading}\n />\n </div>\n )}\n\n <div style={defaultStyles.buttonContainer}>\n {onDismiss && (\n <button\n type=\"button\"\n onClick={onDismiss}\n style={{ ...defaultStyles.button, ...defaultStyles.buttonSecondary }}\n disabled={loading}\n >\n Cancel\n </button>\n )}\n\n <button\n type=\"submit\"\n style={{\n ...defaultStyles.button,\n ...defaultStyles.buttonPrimary,\n ...((!isValid || loading) ? defaultStyles.buttonDisabled : {}),\n }}\n disabled={!isValid || loading}\n >\n {loading ? 'Verifying...' : 'Verify'}\n </button>\n </div>\n </form>\n </div>\n </div>\n );\n}\n\n/**\n * Hook to manage credential prompt state\n */\nexport function useCredentialPrompt() {\n const [visible, setVisible] = useState(false);\n const [credentials, setCredentials] = useState<AgentCredentials | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const show = useCallback(() => {\n setVisible(true);\n setError(null);\n }, []);\n\n const hide = useCallback(() => {\n setVisible(false);\n setError(null);\n setLoading(false);\n }, []);\n\n const submit = useCallback((creds: AgentCredentials) => {\n setCredentials(creds);\n setLoading(true);\n setError(null);\n }, []);\n\n const setSubmitError = useCallback((err: string) => {\n setError(err);\n setLoading(false);\n }, []);\n\n const complete = useCallback(() => {\n setVisible(false);\n setLoading(false);\n setError(null);\n }, []);\n\n return {\n visible,\n credentials,\n loading,\n error,\n show,\n hide,\n submit,\n setError: setSubmitError,\n complete,\n };\n}\n","/**\n * AstraSync Guidance Components\n *\n * React components for displaying guidance information to unverified agents.\n * Provides helpful information on how to register and get verified.\n */\n\nimport React from 'react';\nimport type { GuidanceInfo, TrustLevel } from '../types';\n\n/**\n * Guidance card props\n */\nexport interface GuidanceCardProps {\n /** Guidance information */\n guidance: GuidanceInfo;\n /** Card title */\n title?: string;\n /** Whether to show as compact inline */\n compact?: boolean;\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Trust level badge props\n */\nexport interface TrustLevelBadgeProps {\n /** Trust level */\n level: TrustLevel;\n /** Trust score */\n score?: number;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Default styles\n */\nconst styles = {\n card: {\n backgroundColor: '#f8fafc',\n border: '1px solid #e2e8f0',\n borderRadius: '12px',\n padding: '24px',\n maxWidth: '480px',\n },\n cardCompact: {\n backgroundColor: '#fefce8',\n border: '1px solid #fef08a',\n borderRadius: '8px',\n padding: '16px',\n },\n cardTitle: {\n fontSize: '18px',\n fontWeight: 600,\n color: '#1e293b',\n marginBottom: '12px',\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n },\n cardMessage: {\n fontSize: '14px',\n color: '#475569',\n lineHeight: 1.6,\n marginBottom: '16px',\n },\n stepsList: {\n listStyle: 'none',\n padding: 0,\n margin: 0,\n },\n stepItem: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n marginBottom: '12px',\n fontSize: '14px',\n color: '#334155',\n },\n stepNumber: {\n backgroundColor: '#e0e7ff',\n color: '#4338ca',\n width: '24px',\n height: '24px',\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '12px',\n fontWeight: 600,\n flexShrink: 0,\n },\n links: {\n display: 'flex',\n gap: '16px',\n marginTop: '16px',\n paddingTop: '16px',\n borderTop: '1px solid #e2e8f0',\n },\n link: {\n color: '#4f46e5',\n textDecoration: 'none',\n fontSize: '14px',\n fontWeight: 500,\n },\n badge: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '4px',\n padding: '4px 8px',\n borderRadius: '9999px',\n fontWeight: 600,\n fontSize: '12px',\n },\n badgeSm: {\n padding: '2px 6px',\n fontSize: '10px',\n },\n badgeLg: {\n padding: '6px 12px',\n fontSize: '14px',\n },\n badgeBronze: {\n backgroundColor: '#fef3c7',\n color: '#92400e',\n },\n badgeSilver: {\n backgroundColor: '#e5e7eb',\n color: '#374151',\n },\n badgeGold: {\n backgroundColor: '#fef9c3',\n color: '#854d0e',\n },\n badgePlatinum: {\n backgroundColor: '#e0e7ff',\n color: '#3730a3',\n },\n indicator: {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n fontSize: '14px',\n },\n indicatorDot: {\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n },\n indicatorAllowed: {\n backgroundColor: '#22c55e',\n },\n indicatorDenied: {\n backgroundColor: '#ef4444',\n },\n indicatorLimited: {\n backgroundColor: '#f59e0b',\n },\n};\n\n/**\n * Guidance card component\n */\nexport function GuidanceCard({\n guidance,\n title = 'How to Get Verified',\n compact = false,\n className,\n}: GuidanceCardProps): JSX.Element {\n const cardStyle = compact ? styles.cardCompact : styles.card;\n\n return (\n <div style={cardStyle} className={className}>\n <h3 style={styles.cardTitle}>\n <span>💡</span>\n {title}\n </h3>\n\n <p style={styles.cardMessage}>{guidance.message}</p>\n\n {guidance.steps && guidance.steps.length > 0 && (\n <ol style={styles.stepsList}>\n {guidance.steps.map((step, index) => (\n <li key={index} style={styles.stepItem}>\n <span style={styles.stepNumber}>{index + 1}</span>\n <span>{step}</span>\n </li>\n ))}\n </ol>\n )}\n\n <div style={styles.links}>\n <a\n href={guidance.registrationUrl}\n style={styles.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Register →\n </a>\n <a\n href={guidance.documentationUrl}\n style={styles.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Documentation →\n </a>\n </div>\n </div>\n );\n}\n\n/**\n * Trust level badge component\n */\nexport function TrustLevelBadge({\n level,\n score,\n size = 'md',\n className,\n}: TrustLevelBadgeProps): JSX.Element {\n const levelColors = {\n BRONZE: styles.badgeBronze,\n SILVER: styles.badgeSilver,\n GOLD: styles.badgeGold,\n PLATINUM: styles.badgePlatinum,\n };\n\n const sizeStyles = {\n sm: styles.badgeSm,\n md: {},\n lg: styles.badgeLg,\n };\n\n const levelEmojis = {\n BRONZE: '🥉',\n SILVER: '🥈',\n GOLD: '🥇',\n PLATINUM: '💎',\n };\n\n return (\n <span\n style={{\n ...styles.badge,\n ...levelColors[level],\n ...sizeStyles[size],\n }}\n className={className}\n >\n <span>{levelEmojis[level]}</span>\n <span>{level}</span>\n {score !== undefined && <span>({score})</span>}\n </span>\n );\n}\n\n/**\n * Denial reasons list component\n */\nexport interface DenialReasonsProps {\n reasons: string[];\n className?: string;\n}\n\nexport function DenialReasons({ reasons, className }: DenialReasonsProps): JSX.Element {\n if (reasons.length === 0) {\n return <></>;\n }\n\n return (\n <div\n style={{\n backgroundColor: '#fef2f2',\n border: '1px solid #fecaca',\n borderRadius: '8px',\n padding: '16px',\n }}\n className={className}\n >\n <h4\n style={{\n fontSize: '14px',\n fontWeight: 600,\n color: '#dc2626',\n marginBottom: '8px',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n }}\n >\n <span>⚠️</span>\n Access Denied\n </h4>\n <ul\n style={{\n margin: 0,\n paddingLeft: '20px',\n color: '#991b1b',\n fontSize: '14px',\n }}\n >\n {reasons.map((reason, index) => (\n <li key={index} style={{ marginBottom: '4px' }}>\n {reason}\n </li>\n ))}\n </ul>\n </div>\n );\n}\n"],"mappings":"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","names":["React","import_react","import_jsx_runtime","defaultStyles","import_jsx_runtime"]}
package/dist/ui/index.mjs CHANGED
@@ -188,7 +188,7 @@ function useVerificationInterstitial(verificationResult) {
188
188
  const [dismissed, setDismissed] = React.useState(false);
189
189
  React.useEffect(() => {
190
190
  if (verificationResult && !dismissed) {
191
- const shouldShow = !verificationResult.identityVerified || !verificationResult.policyAllowed || verificationResult.accessLevel === "none" || verificationResult.accessLevel === "restricted";
191
+ const shouldShow = !verificationResult.identityVerified || !verificationResult.policyAllowed;
192
192
  setVisible(shouldShow);
193
193
  }
194
194
  }, [verificationResult, dismissed]);
@@ -680,46 +680,6 @@ function TrustLevelBadge({
680
680
  }
681
681
  );
682
682
  }
683
- function AccessLevelIndicator({
684
- accessLevel,
685
- requiredLevel,
686
- className
687
- }) {
688
- const getStatus = () => {
689
- if (accessLevel === "none" || accessLevel === "restricted") {
690
- return "denied";
691
- }
692
- if (requiredLevel) {
693
- const levels = ["none", "restricted", "read-only", "standard", "full", "internal"];
694
- const currentIndex = levels.indexOf(accessLevel);
695
- const requiredIndex = levels.indexOf(requiredLevel);
696
- if (currentIndex < requiredIndex) {
697
- return "limited";
698
- }
699
- }
700
- return "allowed";
701
- };
702
- const status = getStatus();
703
- const statusColors = {
704
- allowed: styles.indicatorAllowed,
705
- denied: styles.indicatorDenied,
706
- limited: styles.indicatorLimited
707
- };
708
- const statusLabels = {
709
- allowed: "Access Granted",
710
- denied: "Access Denied",
711
- limited: "Limited Access"
712
- };
713
- return /* @__PURE__ */ jsxs3("div", { style: styles.indicator, className, children: [
714
- /* @__PURE__ */ jsx3("span", { style: { ...styles.indicatorDot, ...statusColors[status] } }),
715
- /* @__PURE__ */ jsx3("span", { children: statusLabels[status] }),
716
- /* @__PURE__ */ jsxs3("span", { style: { color: "#94a3b8" }, children: [
717
- "(",
718
- accessLevel,
719
- ")"
720
- ] })
721
- ] });
722
- }
723
683
  function DenialReasons({ reasons, className }) {
724
684
  if (reasons.length === 0) {
725
685
  return /* @__PURE__ */ jsx3(Fragment, {});
@@ -770,7 +730,6 @@ function DenialReasons({ reasons, className }) {
770
730
  );
771
731
  }
772
732
  export {
773
- AccessLevelIndicator,
774
733
  VerificationInterstitial as CommerceShield,
775
734
  CredentialPrompt,
776
735
  DenialReasons,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/verification-interstitial.tsx","../../src/ui/credential-prompt.tsx","../../src/ui/guidance.tsx"],"sourcesContent":["/**\n * AstraSync Verification Interstitial Component\n *\n * A React component that displays a verification overlay for unverified agents.\n * Shows guidance on how to register and get verified access.\n *\n * Renamed from `CommerceShield` in 4.1.0; the old names are re-exported as\n * deprecated aliases from `./index` until the next major.\n */\n\nimport React from 'react';\nimport type { VerificationInterstitialProps, VerificationResult } from '../types';\n\n/**\n * Default styles for the verification interstitial\n */\nconst defaultStyles = {\n overlay: {\n position: 'fixed' as const,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(26, 26, 46, 0.95)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 9999,\n padding: '20px',\n },\n container: {\n backgroundColor: 'rgba(255, 255, 255, 0.95)',\n borderRadius: '16px',\n boxShadow: '0 25px 50px -12px rgba(0, 0, 0, 0.5)',\n maxWidth: '480px',\n width: '100%',\n padding: '40px',\n textAlign: 'center' as const,\n },\n icon: {\n fontSize: '48px',\n marginBottom: '20px',\n },\n title: {\n fontSize: '24px',\n fontWeight: 700,\n color: '#1a1a2e',\n marginBottom: '16px',\n },\n message: {\n color: '#4a5568',\n lineHeight: 1.6,\n marginBottom: '24px',\n },\n stepsContainer: {\n textAlign: 'left' as const,\n backgroundColor: '#f7fafc',\n borderRadius: '8px',\n padding: '20px',\n marginBottom: '24px',\n },\n stepsTitle: {\n fontSize: '14px',\n fontWeight: 600,\n color: '#2d3748',\n marginBottom: '12px',\n },\n stepsList: {\n paddingLeft: '20px',\n color: '#4a5568',\n margin: 0,\n },\n stepItem: {\n marginBottom: '8px',\n },\n buttonsContainer: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '12px',\n },\n buttonBase: {\n display: 'inline-block',\n padding: '14px 24px',\n borderRadius: '8px',\n fontWeight: 600,\n textDecoration: 'none',\n cursor: 'pointer',\n border: 'none',\n fontSize: '16px',\n transition: 'all 0.2s',\n },\n buttonPrimary: {\n background: 'linear-gradient(135deg, #6366f1 0%, #4f46e5 100%)',\n color: 'white',\n },\n buttonSecondary: {\n backgroundColor: '#e2e8f0',\n color: '#4a5568',\n },\n footer: {\n marginTop: '24px',\n fontSize: '14px',\n color: '#718096',\n },\n footerLink: {\n color: '#6366f1',\n textDecoration: 'none',\n },\n};\n\n/**\n * Verification interstitial overlay component. Shown to unverified agents\n * (the user-visible title remains \"AstraSync Agent Verification\").\n */\nexport function VerificationInterstitial({\n visible,\n result,\n onRegister,\n onGuestAccess,\n onDismiss,\n title = 'AstraSync Agent Verification',\n message,\n allowGuestAccess = true,\n className,\n}: VerificationInterstitialProps): JSX.Element | null {\n if (!visible) {\n return null;\n }\n\n const displayMessage =\n message ||\n result?.guidance?.message ||\n \"This site verifies AI agents before granting access. We noticed you're visiting without AstraSync credentials.\";\n\n const registrationUrl =\n result?.guidance?.registrationUrl || 'https://astrasync.ai/agents/register';\n const docsUrl = result?.guidance?.documentationUrl || 'https://astrasync.ai/docs/agent-access';\n\n const steps = result?.guidance?.steps || [\n 'Register at astrasync.ai/agents/register',\n 'Create and register your agent',\n 'Add your ASTRA-ID to request headers',\n 'Refresh this page',\n ];\n\n const handleRegisterClick = () => {\n if (onRegister) {\n onRegister();\n } else {\n window.location.href = registrationUrl;\n }\n };\n\n const handleGuestClick = () => {\n if (onGuestAccess) {\n onGuestAccess();\n } else if (onDismiss) {\n onDismiss();\n }\n };\n\n return (\n <div\n style={defaultStyles.overlay}\n className={className}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"verification-interstitial-title\"\n >\n <div style={defaultStyles.container}>\n <div style={defaultStyles.icon} aria-hidden=\"true\">\n 🛡️\n </div>\n\n <h1 id=\"verification-interstitial-title\" style={defaultStyles.title}>\n {title}\n </h1>\n\n <p style={defaultStyles.message}>{displayMessage}</p>\n\n <div style={defaultStyles.stepsContainer}>\n <h3 style={defaultStyles.stepsTitle}>To get verified access:</h3>\n <ol style={defaultStyles.stepsList}>\n {steps.map((step, index) => (\n <li key={index} style={defaultStyles.stepItem}>\n {step}\n </li>\n ))}\n </ol>\n </div>\n\n <div style={defaultStyles.buttonsContainer}>\n <button\n onClick={handleRegisterClick}\n style={{ ...defaultStyles.buttonBase, ...defaultStyles.buttonPrimary }}\n >\n Register Now\n </button>\n\n {allowGuestAccess && (\n <button\n onClick={handleGuestClick}\n style={{ ...defaultStyles.buttonBase, ...defaultStyles.buttonSecondary }}\n >\n Continue as Guest (Limited)\n </button>\n )}\n </div>\n\n <p style={defaultStyles.footer}>\n Learn more:{' '}\n <a\n href={docsUrl}\n style={defaultStyles.footerLink}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Agent Access Documentation\n </a>\n </p>\n </div>\n </div>\n );\n}\n\n/**\n * Hook to manage verification-interstitial visibility\n */\nexport function useVerificationInterstitial(verificationResult: VerificationResult | null) {\n const [visible, setVisible] = React.useState(false);\n const [dismissed, setDismissed] = React.useState(false);\n\n React.useEffect(() => {\n if (verificationResult && !dismissed) {\n // Show the interstitial if either axis failed (identity or policy)\n // or access level is 'none' or 'restricted'.\n const shouldShow =\n !verificationResult.identityVerified ||\n !verificationResult.policyAllowed ||\n verificationResult.accessLevel === 'none' ||\n verificationResult.accessLevel === 'restricted';\n\n setVisible(shouldShow);\n }\n }, [verificationResult, dismissed]);\n\n const dismiss = React.useCallback(() => {\n setDismissed(true);\n setVisible(false);\n }, []);\n\n const reset = React.useCallback(() => {\n setDismissed(false);\n }, []);\n\n return {\n visible,\n dismiss,\n reset,\n result: verificationResult,\n };\n}\n","/**\n * AstraSync Credential Prompt Component\n *\n * A React component for prompting users to enter their agent credentials.\n * Useful for single-page applications where agents may provide credentials interactively.\n */\n\nimport React, { useState, useCallback } from 'react';\nimport type { AgentCredentials } from '../types';\n\n/**\n * Credential prompt props\n */\nexport interface CredentialPromptProps {\n /** Whether the prompt is visible */\n visible: boolean;\n /** Callback when credentials are submitted */\n onSubmit: (credentials: AgentCredentials) => void;\n /** Callback when prompt is dismissed */\n onDismiss?: () => void;\n /** Title text */\n title?: string;\n /** Description text */\n description?: string;\n /** Whether to show API key input */\n showApiKey?: boolean;\n /** Whether to show JWT input */\n showJwt?: boolean;\n /** Loading state */\n loading?: boolean;\n /** Error message to display */\n error?: string;\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Default styles for the credential prompt\n */\nconst defaultStyles = {\n overlay: {\n position: 'fixed' as const,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 9999,\n padding: '20px',\n },\n container: {\n backgroundColor: 'white',\n borderRadius: '12px',\n boxShadow: '0 20px 40px rgba(0, 0, 0, 0.3)',\n maxWidth: '400px',\n width: '100%',\n padding: '32px',\n },\n title: {\n fontSize: '20px',\n fontWeight: 600,\n color: '#1a1a2e',\n marginBottom: '8px',\n },\n description: {\n fontSize: '14px',\n color: '#64748b',\n marginBottom: '24px',\n lineHeight: 1.5,\n },\n form: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '16px',\n },\n inputGroup: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '6px',\n },\n label: {\n fontSize: '14px',\n fontWeight: 500,\n color: '#374151',\n },\n input: {\n padding: '12px',\n borderRadius: '8px',\n border: '1px solid #d1d5db',\n fontSize: '14px',\n outline: 'none',\n transition: 'border-color 0.2s',\n },\n error: {\n backgroundColor: '#fef2f2',\n color: '#dc2626',\n padding: '12px',\n borderRadius: '8px',\n fontSize: '14px',\n marginBottom: '16px',\n },\n buttonContainer: {\n display: 'flex',\n gap: '12px',\n marginTop: '8px',\n },\n button: {\n flex: 1,\n padding: '12px 16px',\n borderRadius: '8px',\n fontWeight: 600,\n fontSize: '14px',\n cursor: 'pointer',\n transition: 'all 0.2s',\n border: 'none',\n },\n buttonPrimary: {\n backgroundColor: '#4f46e5',\n color: 'white',\n },\n buttonSecondary: {\n backgroundColor: '#f1f5f9',\n color: '#475569',\n },\n buttonDisabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n};\n\n/**\n * Credential prompt component\n */\nexport function CredentialPrompt({\n visible,\n onSubmit,\n onDismiss,\n title = 'Enter Agent Credentials',\n description = 'Provide your AstraSync agent credentials to verify your identity.',\n showApiKey = true,\n showJwt = false,\n loading = false,\n error,\n className,\n}: CredentialPromptProps): JSX.Element | null {\n const [astraId, setAstraId] = useState('');\n const [apiKey, setApiKey] = useState('');\n const [jwt, setJwt] = useState('');\n\n const handleSubmit = useCallback((e: React.FormEvent) => {\n e.preventDefault();\n\n const credentials: AgentCredentials = {};\n\n if (astraId.trim()) {\n credentials.astraId = astraId.trim();\n }\n if (apiKey.trim()) {\n credentials.apiKey = apiKey.trim();\n }\n if (jwt.trim()) {\n credentials.jwt = jwt.trim();\n }\n\n onSubmit(credentials);\n }, [astraId, apiKey, jwt, onSubmit]);\n\n const handleKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === 'Escape' && onDismiss) {\n onDismiss();\n }\n }, [onDismiss]);\n\n if (!visible) {\n return null;\n }\n\n const isValid = astraId.trim() || apiKey.trim() || jwt.trim();\n\n return (\n <div\n style={defaultStyles.overlay}\n className={className}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"credential-prompt-title\"\n onKeyDown={handleKeyDown}\n >\n <div style={defaultStyles.container}>\n <h2 id=\"credential-prompt-title\" style={defaultStyles.title}>\n {title}\n </h2>\n\n <p style={defaultStyles.description}>\n {description}\n </p>\n\n {error && (\n <div style={defaultStyles.error} role=\"alert\">\n {error}\n </div>\n )}\n\n <form onSubmit={handleSubmit} style={defaultStyles.form}>\n <div style={defaultStyles.inputGroup}>\n <label htmlFor=\"astra-id\" style={defaultStyles.label}>\n ASTRA-ID\n </label>\n <input\n id=\"astra-id\"\n type=\"text\"\n value={astraId}\n onChange={(e) => setAstraId(e.target.value)}\n placeholder=\"ASTRA-xxx or ASTRAD-xxx\"\n style={defaultStyles.input}\n disabled={loading}\n />\n </div>\n\n {showApiKey && (\n <div style={defaultStyles.inputGroup}>\n <label htmlFor=\"api-key\" style={defaultStyles.label}>\n API Key (optional)\n </label>\n <input\n id=\"api-key\"\n type=\"password\"\n value={apiKey}\n onChange={(e) => setApiKey(e.target.value)}\n placeholder=\"Your API key\"\n style={defaultStyles.input}\n disabled={loading}\n />\n </div>\n )}\n\n {showJwt && (\n <div style={defaultStyles.inputGroup}>\n <label htmlFor=\"jwt\" style={defaultStyles.label}>\n JWT Token (optional)\n </label>\n <input\n id=\"jwt\"\n type=\"password\"\n value={jwt}\n onChange={(e) => setJwt(e.target.value)}\n placeholder=\"Your JWT token\"\n style={defaultStyles.input}\n disabled={loading}\n />\n </div>\n )}\n\n <div style={defaultStyles.buttonContainer}>\n {onDismiss && (\n <button\n type=\"button\"\n onClick={onDismiss}\n style={{ ...defaultStyles.button, ...defaultStyles.buttonSecondary }}\n disabled={loading}\n >\n Cancel\n </button>\n )}\n\n <button\n type=\"submit\"\n style={{\n ...defaultStyles.button,\n ...defaultStyles.buttonPrimary,\n ...((!isValid || loading) ? defaultStyles.buttonDisabled : {}),\n }}\n disabled={!isValid || loading}\n >\n {loading ? 'Verifying...' : 'Verify'}\n </button>\n </div>\n </form>\n </div>\n </div>\n );\n}\n\n/**\n * Hook to manage credential prompt state\n */\nexport function useCredentialPrompt() {\n const [visible, setVisible] = useState(false);\n const [credentials, setCredentials] = useState<AgentCredentials | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const show = useCallback(() => {\n setVisible(true);\n setError(null);\n }, []);\n\n const hide = useCallback(() => {\n setVisible(false);\n setError(null);\n setLoading(false);\n }, []);\n\n const submit = useCallback((creds: AgentCredentials) => {\n setCredentials(creds);\n setLoading(true);\n setError(null);\n }, []);\n\n const setSubmitError = useCallback((err: string) => {\n setError(err);\n setLoading(false);\n }, []);\n\n const complete = useCallback(() => {\n setVisible(false);\n setLoading(false);\n setError(null);\n }, []);\n\n return {\n visible,\n credentials,\n loading,\n error,\n show,\n hide,\n submit,\n setError: setSubmitError,\n complete,\n };\n}\n","/**\n * AstraSync Guidance Components\n *\n * React components for displaying guidance information to unverified agents.\n * Provides helpful information on how to register and get verified.\n */\n\nimport React from 'react';\nimport type { GuidanceInfo, TrustLevel } from '../types';\n\n/**\n * Guidance card props\n */\nexport interface GuidanceCardProps {\n /** Guidance information */\n guidance: GuidanceInfo;\n /** Card title */\n title?: string;\n /** Whether to show as compact inline */\n compact?: boolean;\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Trust level badge props\n */\nexport interface TrustLevelBadgeProps {\n /** Trust level */\n level: TrustLevel;\n /** Trust score */\n score?: number;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Access level indicator props\n */\nexport interface AccessLevelIndicatorProps {\n /** Current access level */\n accessLevel: string;\n /** Required access level */\n requiredLevel?: string;\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Default styles\n */\nconst styles = {\n card: {\n backgroundColor: '#f8fafc',\n border: '1px solid #e2e8f0',\n borderRadius: '12px',\n padding: '24px',\n maxWidth: '480px',\n },\n cardCompact: {\n backgroundColor: '#fefce8',\n border: '1px solid #fef08a',\n borderRadius: '8px',\n padding: '16px',\n },\n cardTitle: {\n fontSize: '18px',\n fontWeight: 600,\n color: '#1e293b',\n marginBottom: '12px',\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n },\n cardMessage: {\n fontSize: '14px',\n color: '#475569',\n lineHeight: 1.6,\n marginBottom: '16px',\n },\n stepsList: {\n listStyle: 'none',\n padding: 0,\n margin: 0,\n },\n stepItem: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n marginBottom: '12px',\n fontSize: '14px',\n color: '#334155',\n },\n stepNumber: {\n backgroundColor: '#e0e7ff',\n color: '#4338ca',\n width: '24px',\n height: '24px',\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '12px',\n fontWeight: 600,\n flexShrink: 0,\n },\n links: {\n display: 'flex',\n gap: '16px',\n marginTop: '16px',\n paddingTop: '16px',\n borderTop: '1px solid #e2e8f0',\n },\n link: {\n color: '#4f46e5',\n textDecoration: 'none',\n fontSize: '14px',\n fontWeight: 500,\n },\n badge: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '4px',\n padding: '4px 8px',\n borderRadius: '9999px',\n fontWeight: 600,\n fontSize: '12px',\n },\n badgeSm: {\n padding: '2px 6px',\n fontSize: '10px',\n },\n badgeLg: {\n padding: '6px 12px',\n fontSize: '14px',\n },\n badgeBronze: {\n backgroundColor: '#fef3c7',\n color: '#92400e',\n },\n badgeSilver: {\n backgroundColor: '#e5e7eb',\n color: '#374151',\n },\n badgeGold: {\n backgroundColor: '#fef9c3',\n color: '#854d0e',\n },\n badgePlatinum: {\n backgroundColor: '#e0e7ff',\n color: '#3730a3',\n },\n indicator: {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n fontSize: '14px',\n },\n indicatorDot: {\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n },\n indicatorAllowed: {\n backgroundColor: '#22c55e',\n },\n indicatorDenied: {\n backgroundColor: '#ef4444',\n },\n indicatorLimited: {\n backgroundColor: '#f59e0b',\n },\n};\n\n/**\n * Guidance card component\n */\nexport function GuidanceCard({\n guidance,\n title = 'How to Get Verified',\n compact = false,\n className,\n}: GuidanceCardProps): JSX.Element {\n const cardStyle = compact ? styles.cardCompact : styles.card;\n\n return (\n <div style={cardStyle} className={className}>\n <h3 style={styles.cardTitle}>\n <span>💡</span>\n {title}\n </h3>\n\n <p style={styles.cardMessage}>{guidance.message}</p>\n\n {guidance.steps && guidance.steps.length > 0 && (\n <ol style={styles.stepsList}>\n {guidance.steps.map((step, index) => (\n <li key={index} style={styles.stepItem}>\n <span style={styles.stepNumber}>{index + 1}</span>\n <span>{step}</span>\n </li>\n ))}\n </ol>\n )}\n\n <div style={styles.links}>\n <a\n href={guidance.registrationUrl}\n style={styles.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Register →\n </a>\n <a\n href={guidance.documentationUrl}\n style={styles.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Documentation →\n </a>\n </div>\n </div>\n );\n}\n\n/**\n * Trust level badge component\n */\nexport function TrustLevelBadge({\n level,\n score,\n size = 'md',\n className,\n}: TrustLevelBadgeProps): JSX.Element {\n const levelColors = {\n BRONZE: styles.badgeBronze,\n SILVER: styles.badgeSilver,\n GOLD: styles.badgeGold,\n PLATINUM: styles.badgePlatinum,\n };\n\n const sizeStyles = {\n sm: styles.badgeSm,\n md: {},\n lg: styles.badgeLg,\n };\n\n const levelEmojis = {\n BRONZE: '🥉',\n SILVER: '🥈',\n GOLD: '🥇',\n PLATINUM: '💎',\n };\n\n return (\n <span\n style={{\n ...styles.badge,\n ...levelColors[level],\n ...sizeStyles[size],\n }}\n className={className}\n >\n <span>{levelEmojis[level]}</span>\n <span>{level}</span>\n {score !== undefined && <span>({score})</span>}\n </span>\n );\n}\n\n/**\n * Access level indicator component\n */\nexport function AccessLevelIndicator({\n accessLevel,\n requiredLevel,\n className,\n}: AccessLevelIndicatorProps): JSX.Element {\n const getStatus = () => {\n if (accessLevel === 'none' || accessLevel === 'restricted') {\n return 'denied';\n }\n if (requiredLevel) {\n const levels = ['none', 'restricted', 'read-only', 'standard', 'full', 'internal'];\n const currentIndex = levels.indexOf(accessLevel);\n const requiredIndex = levels.indexOf(requiredLevel);\n if (currentIndex < requiredIndex) {\n return 'limited';\n }\n }\n return 'allowed';\n };\n\n const status = getStatus();\n const statusColors = {\n allowed: styles.indicatorAllowed,\n denied: styles.indicatorDenied,\n limited: styles.indicatorLimited,\n };\n\n const statusLabels = {\n allowed: 'Access Granted',\n denied: 'Access Denied',\n limited: 'Limited Access',\n };\n\n return (\n <div style={styles.indicator} className={className}>\n <span style={{ ...styles.indicatorDot, ...statusColors[status] }} />\n <span>{statusLabels[status]}</span>\n <span style={{ color: '#94a3b8' }}>({accessLevel})</span>\n </div>\n );\n}\n\n/**\n * Denial reasons list component\n */\nexport interface DenialReasonsProps {\n reasons: string[];\n className?: string;\n}\n\nexport function DenialReasons({ reasons, className }: DenialReasonsProps): JSX.Element {\n if (reasons.length === 0) {\n return <></>;\n }\n\n return (\n <div\n style={{\n backgroundColor: '#fef2f2',\n border: '1px solid #fecaca',\n borderRadius: '8px',\n padding: '16px',\n }}\n className={className}\n >\n <h4\n style={{\n fontSize: '14px',\n fontWeight: 600,\n color: '#dc2626',\n marginBottom: '8px',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n }}\n >\n <span>⚠️</span>\n Access Denied\n </h4>\n <ul\n style={{\n margin: 0,\n paddingLeft: '20px',\n color: '#991b1b',\n fontSize: '14px',\n }}\n >\n {reasons.map((reason, index) => (\n <li key={index} style={{ marginBottom: '4px' }}>\n {reason}\n </li>\n ))}\n </ul>\n </div>\n );\n}\n"],"mappings":"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","names":["jsx","jsxs","defaultStyles","jsx","jsxs"]}
1
+ {"version":3,"sources":["../../src/ui/verification-interstitial.tsx","../../src/ui/credential-prompt.tsx","../../src/ui/guidance.tsx"],"sourcesContent":["/**\n * AstraSync Verification Interstitial Component\n *\n * A React component that displays a verification overlay for unverified agents.\n * Shows guidance on how to register and get verified access.\n *\n * Renamed from `CommerceShield` in 4.1.0; the old names are re-exported as\n * deprecated aliases from `./index` until the next major.\n */\n\nimport React from 'react';\nimport type { VerificationInterstitialProps, VerificationResult } from '../types';\n\n/**\n * Default styles for the verification interstitial\n */\nconst defaultStyles = {\n overlay: {\n position: 'fixed' as const,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(26, 26, 46, 0.95)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 9999,\n padding: '20px',\n },\n container: {\n backgroundColor: 'rgba(255, 255, 255, 0.95)',\n borderRadius: '16px',\n boxShadow: '0 25px 50px -12px rgba(0, 0, 0, 0.5)',\n maxWidth: '480px',\n width: '100%',\n padding: '40px',\n textAlign: 'center' as const,\n },\n icon: {\n fontSize: '48px',\n marginBottom: '20px',\n },\n title: {\n fontSize: '24px',\n fontWeight: 700,\n color: '#1a1a2e',\n marginBottom: '16px',\n },\n message: {\n color: '#4a5568',\n lineHeight: 1.6,\n marginBottom: '24px',\n },\n stepsContainer: {\n textAlign: 'left' as const,\n backgroundColor: '#f7fafc',\n borderRadius: '8px',\n padding: '20px',\n marginBottom: '24px',\n },\n stepsTitle: {\n fontSize: '14px',\n fontWeight: 600,\n color: '#2d3748',\n marginBottom: '12px',\n },\n stepsList: {\n paddingLeft: '20px',\n color: '#4a5568',\n margin: 0,\n },\n stepItem: {\n marginBottom: '8px',\n },\n buttonsContainer: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '12px',\n },\n buttonBase: {\n display: 'inline-block',\n padding: '14px 24px',\n borderRadius: '8px',\n fontWeight: 600,\n textDecoration: 'none',\n cursor: 'pointer',\n border: 'none',\n fontSize: '16px',\n transition: 'all 0.2s',\n },\n buttonPrimary: {\n background: 'linear-gradient(135deg, #6366f1 0%, #4f46e5 100%)',\n color: 'white',\n },\n buttonSecondary: {\n backgroundColor: '#e2e8f0',\n color: '#4a5568',\n },\n footer: {\n marginTop: '24px',\n fontSize: '14px',\n color: '#718096',\n },\n footerLink: {\n color: '#6366f1',\n textDecoration: 'none',\n },\n};\n\n/**\n * Verification interstitial overlay component. Shown to unverified agents\n * (the user-visible title remains \"AstraSync Agent Verification\").\n */\nexport function VerificationInterstitial({\n visible,\n result,\n onRegister,\n onGuestAccess,\n onDismiss,\n title = 'AstraSync Agent Verification',\n message,\n allowGuestAccess = true,\n className,\n}: VerificationInterstitialProps): JSX.Element | null {\n if (!visible) {\n return null;\n }\n\n const displayMessage =\n message ||\n result?.guidance?.message ||\n \"This site verifies AI agents before granting access. We noticed you're visiting without AstraSync credentials.\";\n\n const registrationUrl =\n result?.guidance?.registrationUrl || 'https://astrasync.ai/agents/register';\n const docsUrl = result?.guidance?.documentationUrl || 'https://astrasync.ai/docs/agent-access';\n\n const steps = result?.guidance?.steps || [\n 'Register at astrasync.ai/agents/register',\n 'Create and register your agent',\n 'Add your ASTRA-ID to request headers',\n 'Refresh this page',\n ];\n\n const handleRegisterClick = () => {\n if (onRegister) {\n onRegister();\n } else {\n window.location.href = registrationUrl;\n }\n };\n\n const handleGuestClick = () => {\n if (onGuestAccess) {\n onGuestAccess();\n } else if (onDismiss) {\n onDismiss();\n }\n };\n\n return (\n <div\n style={defaultStyles.overlay}\n className={className}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"verification-interstitial-title\"\n >\n <div style={defaultStyles.container}>\n <div style={defaultStyles.icon} aria-hidden=\"true\">\n 🛡️\n </div>\n\n <h1 id=\"verification-interstitial-title\" style={defaultStyles.title}>\n {title}\n </h1>\n\n <p style={defaultStyles.message}>{displayMessage}</p>\n\n <div style={defaultStyles.stepsContainer}>\n <h3 style={defaultStyles.stepsTitle}>To get verified access:</h3>\n <ol style={defaultStyles.stepsList}>\n {steps.map((step, index) => (\n <li key={index} style={defaultStyles.stepItem}>\n {step}\n </li>\n ))}\n </ol>\n </div>\n\n <div style={defaultStyles.buttonsContainer}>\n <button\n onClick={handleRegisterClick}\n style={{ ...defaultStyles.buttonBase, ...defaultStyles.buttonPrimary }}\n >\n Register Now\n </button>\n\n {allowGuestAccess && (\n <button\n onClick={handleGuestClick}\n style={{ ...defaultStyles.buttonBase, ...defaultStyles.buttonSecondary }}\n >\n Continue as Guest (Limited)\n </button>\n )}\n </div>\n\n <p style={defaultStyles.footer}>\n Learn more:{' '}\n <a\n href={docsUrl}\n style={defaultStyles.footerLink}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Agent Access Documentation\n </a>\n </p>\n </div>\n </div>\n );\n}\n\n/**\n * Hook to manage verification-interstitial visibility\n */\nexport function useVerificationInterstitial(verificationResult: VerificationResult | null) {\n const [visible, setVisible] = React.useState(false);\n const [dismissed, setDismissed] = React.useState(false);\n\n React.useEffect(() => {\n if (verificationResult && !dismissed) {\n // Show the interstitial if either axis failed (identity or policy).\n const shouldShow = !verificationResult.identityVerified || !verificationResult.policyAllowed;\n\n setVisible(shouldShow);\n }\n }, [verificationResult, dismissed]);\n\n const dismiss = React.useCallback(() => {\n setDismissed(true);\n setVisible(false);\n }, []);\n\n const reset = React.useCallback(() => {\n setDismissed(false);\n }, []);\n\n return {\n visible,\n dismiss,\n reset,\n result: verificationResult,\n };\n}\n","/**\n * AstraSync Credential Prompt Component\n *\n * A React component for prompting users to enter their agent credentials.\n * Useful for single-page applications where agents may provide credentials interactively.\n */\n\nimport React, { useState, useCallback } from 'react';\nimport type { AgentCredentials } from '../types';\n\n/**\n * Credential prompt props\n */\nexport interface CredentialPromptProps {\n /** Whether the prompt is visible */\n visible: boolean;\n /** Callback when credentials are submitted */\n onSubmit: (credentials: AgentCredentials) => void;\n /** Callback when prompt is dismissed */\n onDismiss?: () => void;\n /** Title text */\n title?: string;\n /** Description text */\n description?: string;\n /** Whether to show API key input */\n showApiKey?: boolean;\n /** Whether to show JWT input */\n showJwt?: boolean;\n /** Loading state */\n loading?: boolean;\n /** Error message to display */\n error?: string;\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Default styles for the credential prompt\n */\nconst defaultStyles = {\n overlay: {\n position: 'fixed' as const,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 9999,\n padding: '20px',\n },\n container: {\n backgroundColor: 'white',\n borderRadius: '12px',\n boxShadow: '0 20px 40px rgba(0, 0, 0, 0.3)',\n maxWidth: '400px',\n width: '100%',\n padding: '32px',\n },\n title: {\n fontSize: '20px',\n fontWeight: 600,\n color: '#1a1a2e',\n marginBottom: '8px',\n },\n description: {\n fontSize: '14px',\n color: '#64748b',\n marginBottom: '24px',\n lineHeight: 1.5,\n },\n form: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '16px',\n },\n inputGroup: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '6px',\n },\n label: {\n fontSize: '14px',\n fontWeight: 500,\n color: '#374151',\n },\n input: {\n padding: '12px',\n borderRadius: '8px',\n border: '1px solid #d1d5db',\n fontSize: '14px',\n outline: 'none',\n transition: 'border-color 0.2s',\n },\n error: {\n backgroundColor: '#fef2f2',\n color: '#dc2626',\n padding: '12px',\n borderRadius: '8px',\n fontSize: '14px',\n marginBottom: '16px',\n },\n buttonContainer: {\n display: 'flex',\n gap: '12px',\n marginTop: '8px',\n },\n button: {\n flex: 1,\n padding: '12px 16px',\n borderRadius: '8px',\n fontWeight: 600,\n fontSize: '14px',\n cursor: 'pointer',\n transition: 'all 0.2s',\n border: 'none',\n },\n buttonPrimary: {\n backgroundColor: '#4f46e5',\n color: 'white',\n },\n buttonSecondary: {\n backgroundColor: '#f1f5f9',\n color: '#475569',\n },\n buttonDisabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n};\n\n/**\n * Credential prompt component\n */\nexport function CredentialPrompt({\n visible,\n onSubmit,\n onDismiss,\n title = 'Enter Agent Credentials',\n description = 'Provide your AstraSync agent credentials to verify your identity.',\n showApiKey = true,\n showJwt = false,\n loading = false,\n error,\n className,\n}: CredentialPromptProps): JSX.Element | null {\n const [astraId, setAstraId] = useState('');\n const [apiKey, setApiKey] = useState('');\n const [jwt, setJwt] = useState('');\n\n const handleSubmit = useCallback((e: React.FormEvent) => {\n e.preventDefault();\n\n const credentials: AgentCredentials = {};\n\n if (astraId.trim()) {\n credentials.astraId = astraId.trim();\n }\n if (apiKey.trim()) {\n credentials.apiKey = apiKey.trim();\n }\n if (jwt.trim()) {\n credentials.jwt = jwt.trim();\n }\n\n onSubmit(credentials);\n }, [astraId, apiKey, jwt, onSubmit]);\n\n const handleKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === 'Escape' && onDismiss) {\n onDismiss();\n }\n }, [onDismiss]);\n\n if (!visible) {\n return null;\n }\n\n const isValid = astraId.trim() || apiKey.trim() || jwt.trim();\n\n return (\n <div\n style={defaultStyles.overlay}\n className={className}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"credential-prompt-title\"\n onKeyDown={handleKeyDown}\n >\n <div style={defaultStyles.container}>\n <h2 id=\"credential-prompt-title\" style={defaultStyles.title}>\n {title}\n </h2>\n\n <p style={defaultStyles.description}>\n {description}\n </p>\n\n {error && (\n <div style={defaultStyles.error} role=\"alert\">\n {error}\n </div>\n )}\n\n <form onSubmit={handleSubmit} style={defaultStyles.form}>\n <div style={defaultStyles.inputGroup}>\n <label htmlFor=\"astra-id\" style={defaultStyles.label}>\n ASTRA-ID\n </label>\n <input\n id=\"astra-id\"\n type=\"text\"\n value={astraId}\n onChange={(e) => setAstraId(e.target.value)}\n placeholder=\"ASTRA-xxx or ASTRAD-xxx\"\n style={defaultStyles.input}\n disabled={loading}\n />\n </div>\n\n {showApiKey && (\n <div style={defaultStyles.inputGroup}>\n <label htmlFor=\"api-key\" style={defaultStyles.label}>\n API Key (optional)\n </label>\n <input\n id=\"api-key\"\n type=\"password\"\n value={apiKey}\n onChange={(e) => setApiKey(e.target.value)}\n placeholder=\"Your API key\"\n style={defaultStyles.input}\n disabled={loading}\n />\n </div>\n )}\n\n {showJwt && (\n <div style={defaultStyles.inputGroup}>\n <label htmlFor=\"jwt\" style={defaultStyles.label}>\n JWT Token (optional)\n </label>\n <input\n id=\"jwt\"\n type=\"password\"\n value={jwt}\n onChange={(e) => setJwt(e.target.value)}\n placeholder=\"Your JWT token\"\n style={defaultStyles.input}\n disabled={loading}\n />\n </div>\n )}\n\n <div style={defaultStyles.buttonContainer}>\n {onDismiss && (\n <button\n type=\"button\"\n onClick={onDismiss}\n style={{ ...defaultStyles.button, ...defaultStyles.buttonSecondary }}\n disabled={loading}\n >\n Cancel\n </button>\n )}\n\n <button\n type=\"submit\"\n style={{\n ...defaultStyles.button,\n ...defaultStyles.buttonPrimary,\n ...((!isValid || loading) ? defaultStyles.buttonDisabled : {}),\n }}\n disabled={!isValid || loading}\n >\n {loading ? 'Verifying...' : 'Verify'}\n </button>\n </div>\n </form>\n </div>\n </div>\n );\n}\n\n/**\n * Hook to manage credential prompt state\n */\nexport function useCredentialPrompt() {\n const [visible, setVisible] = useState(false);\n const [credentials, setCredentials] = useState<AgentCredentials | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const show = useCallback(() => {\n setVisible(true);\n setError(null);\n }, []);\n\n const hide = useCallback(() => {\n setVisible(false);\n setError(null);\n setLoading(false);\n }, []);\n\n const submit = useCallback((creds: AgentCredentials) => {\n setCredentials(creds);\n setLoading(true);\n setError(null);\n }, []);\n\n const setSubmitError = useCallback((err: string) => {\n setError(err);\n setLoading(false);\n }, []);\n\n const complete = useCallback(() => {\n setVisible(false);\n setLoading(false);\n setError(null);\n }, []);\n\n return {\n visible,\n credentials,\n loading,\n error,\n show,\n hide,\n submit,\n setError: setSubmitError,\n complete,\n };\n}\n","/**\n * AstraSync Guidance Components\n *\n * React components for displaying guidance information to unverified agents.\n * Provides helpful information on how to register and get verified.\n */\n\nimport React from 'react';\nimport type { GuidanceInfo, TrustLevel } from '../types';\n\n/**\n * Guidance card props\n */\nexport interface GuidanceCardProps {\n /** Guidance information */\n guidance: GuidanceInfo;\n /** Card title */\n title?: string;\n /** Whether to show as compact inline */\n compact?: boolean;\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Trust level badge props\n */\nexport interface TrustLevelBadgeProps {\n /** Trust level */\n level: TrustLevel;\n /** Trust score */\n score?: number;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Custom class name */\n className?: string;\n}\n\n/**\n * Default styles\n */\nconst styles = {\n card: {\n backgroundColor: '#f8fafc',\n border: '1px solid #e2e8f0',\n borderRadius: '12px',\n padding: '24px',\n maxWidth: '480px',\n },\n cardCompact: {\n backgroundColor: '#fefce8',\n border: '1px solid #fef08a',\n borderRadius: '8px',\n padding: '16px',\n },\n cardTitle: {\n fontSize: '18px',\n fontWeight: 600,\n color: '#1e293b',\n marginBottom: '12px',\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n },\n cardMessage: {\n fontSize: '14px',\n color: '#475569',\n lineHeight: 1.6,\n marginBottom: '16px',\n },\n stepsList: {\n listStyle: 'none',\n padding: 0,\n margin: 0,\n },\n stepItem: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n marginBottom: '12px',\n fontSize: '14px',\n color: '#334155',\n },\n stepNumber: {\n backgroundColor: '#e0e7ff',\n color: '#4338ca',\n width: '24px',\n height: '24px',\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '12px',\n fontWeight: 600,\n flexShrink: 0,\n },\n links: {\n display: 'flex',\n gap: '16px',\n marginTop: '16px',\n paddingTop: '16px',\n borderTop: '1px solid #e2e8f0',\n },\n link: {\n color: '#4f46e5',\n textDecoration: 'none',\n fontSize: '14px',\n fontWeight: 500,\n },\n badge: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '4px',\n padding: '4px 8px',\n borderRadius: '9999px',\n fontWeight: 600,\n fontSize: '12px',\n },\n badgeSm: {\n padding: '2px 6px',\n fontSize: '10px',\n },\n badgeLg: {\n padding: '6px 12px',\n fontSize: '14px',\n },\n badgeBronze: {\n backgroundColor: '#fef3c7',\n color: '#92400e',\n },\n badgeSilver: {\n backgroundColor: '#e5e7eb',\n color: '#374151',\n },\n badgeGold: {\n backgroundColor: '#fef9c3',\n color: '#854d0e',\n },\n badgePlatinum: {\n backgroundColor: '#e0e7ff',\n color: '#3730a3',\n },\n indicator: {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n fontSize: '14px',\n },\n indicatorDot: {\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n },\n indicatorAllowed: {\n backgroundColor: '#22c55e',\n },\n indicatorDenied: {\n backgroundColor: '#ef4444',\n },\n indicatorLimited: {\n backgroundColor: '#f59e0b',\n },\n};\n\n/**\n * Guidance card component\n */\nexport function GuidanceCard({\n guidance,\n title = 'How to Get Verified',\n compact = false,\n className,\n}: GuidanceCardProps): JSX.Element {\n const cardStyle = compact ? styles.cardCompact : styles.card;\n\n return (\n <div style={cardStyle} className={className}>\n <h3 style={styles.cardTitle}>\n <span>💡</span>\n {title}\n </h3>\n\n <p style={styles.cardMessage}>{guidance.message}</p>\n\n {guidance.steps && guidance.steps.length > 0 && (\n <ol style={styles.stepsList}>\n {guidance.steps.map((step, index) => (\n <li key={index} style={styles.stepItem}>\n <span style={styles.stepNumber}>{index + 1}</span>\n <span>{step}</span>\n </li>\n ))}\n </ol>\n )}\n\n <div style={styles.links}>\n <a\n href={guidance.registrationUrl}\n style={styles.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Register →\n </a>\n <a\n href={guidance.documentationUrl}\n style={styles.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Documentation →\n </a>\n </div>\n </div>\n );\n}\n\n/**\n * Trust level badge component\n */\nexport function TrustLevelBadge({\n level,\n score,\n size = 'md',\n className,\n}: TrustLevelBadgeProps): JSX.Element {\n const levelColors = {\n BRONZE: styles.badgeBronze,\n SILVER: styles.badgeSilver,\n GOLD: styles.badgeGold,\n PLATINUM: styles.badgePlatinum,\n };\n\n const sizeStyles = {\n sm: styles.badgeSm,\n md: {},\n lg: styles.badgeLg,\n };\n\n const levelEmojis = {\n BRONZE: '🥉',\n SILVER: '🥈',\n GOLD: '🥇',\n PLATINUM: '💎',\n };\n\n return (\n <span\n style={{\n ...styles.badge,\n ...levelColors[level],\n ...sizeStyles[size],\n }}\n className={className}\n >\n <span>{levelEmojis[level]}</span>\n <span>{level}</span>\n {score !== undefined && <span>({score})</span>}\n </span>\n );\n}\n\n/**\n * Denial reasons list component\n */\nexport interface DenialReasonsProps {\n reasons: string[];\n className?: string;\n}\n\nexport function DenialReasons({ reasons, className }: DenialReasonsProps): JSX.Element {\n if (reasons.length === 0) {\n return <></>;\n }\n\n return (\n <div\n style={{\n backgroundColor: '#fef2f2',\n border: '1px solid #fecaca',\n borderRadius: '8px',\n padding: '16px',\n }}\n className={className}\n >\n <h4\n style={{\n fontSize: '14px',\n fontWeight: 600,\n color: '#dc2626',\n marginBottom: '8px',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n }}\n >\n <span>⚠️</span>\n Access Denied\n </h4>\n <ul\n style={{\n margin: 0,\n paddingLeft: '20px',\n color: '#991b1b',\n fontSize: '14px',\n }}\n >\n {reasons.map((reason, index) => (\n <li key={index} style={{ marginBottom: '4px' }}>\n {reason}\n </li>\n ))}\n </ul>\n </div>\n );\n}\n"],"mappings":"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","names":["jsx","jsxs","defaultStyles","jsx","jsxs"]}
package/dist/verify.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { b as AgentCredentials, G as GatewayConfig, a as AccessLevel, e as AttemptReport, w as VerificationRequest, x as VerificationResult } from './types-C0zfSXMB.mjs';
1
+ import { a as AgentCredentials, G as GatewayConfig, d as AttemptReport, v as VerificationRequest, w as VerificationResult } from './types-CJjZvPr9.mjs';
2
2
  import { ObservedMetadata } from './metadata-capture.mjs';
3
3
 
4
4
  /**
@@ -74,8 +74,8 @@ declare function fetchRoutes(config: GatewayConfig, counterpartyId: string): Pro
74
74
  interface RouteAccessConfigShape {
75
75
  pattern: string;
76
76
  method: string;
77
- /** @deprecated 3.2.0 — band no longer gates; optional, ignored. Use minTrustScore. */
78
- minAccessLevel?: 'none' | 'restricted' | 'read-only' | 'standard' | 'full' | 'internal';
77
+ /** Pass through unenforced (observe). Replaces `minAccessLevel: 'none'`. */
78
+ observe?: boolean;
79
79
  minTrustScore?: number;
80
80
  requiredPurposes?: string[];
81
81
  allowedPurposes?: string[];
@@ -158,7 +158,6 @@ declare function reportCounterpartyPreCheckFailure(config: GatewayConfig, data:
158
158
  declare function quickVerify(config: GatewayConfig, credentials: AgentCredentials): Promise<{
159
159
  identityVerified: boolean;
160
160
  policyAllowed: boolean;
161
- accessLevel: AccessLevel;
162
161
  reason?: string;
163
162
  }>;
164
163
 
package/dist/verify.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { b as AgentCredentials, G as GatewayConfig, a as AccessLevel, e as AttemptReport, w as VerificationRequest, x as VerificationResult } from './types-DwSfO7Sb.js';
1
+ import { a as AgentCredentials, G as GatewayConfig, d as AttemptReport, v as VerificationRequest, w as VerificationResult } from './types-BK2POWNc.js';
2
2
  import { ObservedMetadata } from './metadata-capture.js';
3
3
 
4
4
  /**
@@ -74,8 +74,8 @@ declare function fetchRoutes(config: GatewayConfig, counterpartyId: string): Pro
74
74
  interface RouteAccessConfigShape {
75
75
  pattern: string;
76
76
  method: string;
77
- /** @deprecated 3.2.0 — band no longer gates; optional, ignored. Use minTrustScore. */
78
- minAccessLevel?: 'none' | 'restricted' | 'read-only' | 'standard' | 'full' | 'internal';
77
+ /** Pass through unenforced (observe). Replaces `minAccessLevel: 'none'`. */
78
+ observe?: boolean;
79
79
  minTrustScore?: number;
80
80
  requiredPurposes?: string[];
81
81
  allowedPurposes?: string[];
@@ -158,7 +158,6 @@ declare function reportCounterpartyPreCheckFailure(config: GatewayConfig, data:
158
158
  declare function quickVerify(config: GatewayConfig, credentials: AgentCredentials): Promise<{
159
159
  identityVerified: boolean;
160
160
  policyAllowed: boolean;
161
- accessLevel: AccessLevel;
162
161
  reason?: string;
163
162
  }>;
164
163
 
package/dist/verify.js CHANGED
@@ -36,7 +36,7 @@ __export(verify_exports, {
36
36
  module.exports = __toCommonJS(verify_exports);
37
37
 
38
38
  // src/version.ts
39
- var SDK_VERSION = "4.5.1";
39
+ var SDK_VERSION = "5.0.0";
40
40
 
41
41
  // src/http.ts
42
42
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -56,7 +56,7 @@ function withUserAgent(initHeaders) {
56
56
  }
57
57
  var sdkFetch = (input, init) => fetch(input, { ...init, headers: withUserAgent(init?.headers) });
58
58
 
59
- // src/access-levels.ts
59
+ // src/trust-levels.ts
60
60
  function getTrustLevel(score) {
61
61
  if (score >= 80) return "PLATINUM";
62
62
  if (score >= 60) return "GOLD";
@@ -74,11 +74,6 @@ function getCachedWellKnownUrls(apiBaseUrl) {
74
74
  // src/verify.ts
75
75
  var DEFAULT_CONFIG = {
76
76
  apiBaseUrl: "https://astrasync.ai/api",
77
- // v2.3.9 (defect #30): default for unconfigured callers is `'none'` (no
78
- // access). Pre-rename this defaulted to `'guidance'`, which combined with
79
- // a route gated at `'guidance'` to silently let unverified traffic
80
- // through (`hasMinimumAccess('guidance', 'guidance') === true`).
81
- defaultAccessLevel: "none",
82
77
  // minTrustScore + minTrustScoreForFull deprecated in v2.3.0 — server decides.
83
78
  // cacheTtl deliberately unset. When undefined, cacheResult applies the 60s
84
79
  // default; the caller's explicit value is honoured for cacheable results.
@@ -282,13 +277,6 @@ function createGuidanceResponse(_config, reason, options = {}) {
282
277
  // policy is not evaluated (we never reached the gate).
283
278
  identityVerified: false,
284
279
  policyAllowed: false,
285
- // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
286
- // Adapters additionally short-circuit on `!identityVerified ||
287
- // !policyAllowed` before the gate check, but the access level still has
288
- // to be honest at the data layer so downstream consumers (SDK adapters
289
- // in other languages, custom integrations) inherit the correct
290
- // semantics.
291
- accessLevel: "none",
292
280
  guidance,
293
281
  denialReasons: reason ? [reason] : ["No valid agent credentials provided"],
294
282
  // Round-10 (#47, O5): on API-error fallback, surface a typed failure so
@@ -311,6 +299,11 @@ function createGuidanceResponse(_config, reason, options = {}) {
311
299
  // 4.0.0: typed marker so adapters render the misconfig envelope (503 +
312
300
  // MERCHANT_VERIFICATION_MISCONFIGURED) without string-matching.
313
301
  ...isMisconfig && { misconfigured: true },
302
+ // 4.6.0: a transient api_error is retryable — mark it so consumers surface
303
+ // "temporarily unavailable, retry" (recommendation 'error') instead of
304
+ // coercing the absent recommendation to a policy 'deny'. Misconfig is
305
+ // deterministic and intentionally NOT marked retryable.
306
+ ...isApiError && { retryable: true },
314
307
  correlationId: options.correlationId,
315
308
  attemptId: options.attemptId,
316
309
  verifiedAt: /* @__PURE__ */ new Date()
@@ -377,7 +370,6 @@ async function callVerifyAccessAPI(config, request) {
377
370
  attemptId: typeof data?.attemptId === "string" ? data.attemptId : void 0,
378
371
  access: {
379
372
  allowed: false,
380
- accessLevel: "none",
381
373
  reason: "endpoint_deactivated",
382
374
  failures: [
383
375
  {
@@ -440,7 +432,7 @@ async function verify(config, request, options) {
440
432
  if (!deprecationWarningShown && (config.minTrustScore !== void 0 || config.minTrustScoreForFull !== void 0)) {
441
433
  deprecationWarningShown = true;
442
434
  console.warn(
443
- "[VerificationGateway] minTrustScore / minTrustScoreForFull are deprecated in v2.3.0 and have no effect. Server is now the single source of truth for access-level decisions (the SDK reads access.accessLevel from the verify-access response). To gate access to an endpoint, configure the endpoint's trust_score_requirement server-side."
435
+ "[VerificationGateway] minTrustScore / minTrustScoreForFull are deprecated in v2.3.0 and have no effect. Server is now the single source of truth for access decisions (verified ID + runtime challenge + PDLSS + trust score). To gate access to an endpoint, configure the endpoint's trust_score_requirement server-side."
444
436
  );
445
437
  }
446
438
  if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache) {
@@ -486,14 +478,6 @@ async function verify(config, request, options) {
486
478
  const result2 = {
487
479
  identityVerified: idVerifiedFromBackend,
488
480
  policyAllowed: false,
489
- // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
490
- // Pre-rename this hardcoded `'guidance'`, which conflated with the
491
- // colocated `guidance: {...}` help-payload object below and let
492
- // denied requests pass any route gated at `'guidance'` because
493
- // `hasMinimumAccess('guidance', 'guidance') === true`. Adapters now
494
- // ALSO short-circuit on `!identityVerified || !policyAllowed` before
495
- // the gate check — belt-and-braces.
496
- accessLevel: "none",
497
481
  // 3.6.0: the server now emits top-level denialReasons on every deny
498
482
  // path — prefer it verbatim; the failure-message reconstruction remains
499
483
  // as the fallback for older backends.
@@ -542,7 +526,6 @@ async function verify(config, request, options) {
542
526
  trustScore: apiResponse.organization.trustScore
543
527
  } : void 0;
544
528
  const verificationContext = apiResponse.verificationContext;
545
- const accessLevel = apiResponse.access?.accessLevel ?? "standard";
546
529
  const result = {
547
530
  // 4.5.0 (probe F1): read idVerified from verificationContext with the
548
531
  // SAME absent⇒false default as the deny branch. The previous `!== false`
@@ -554,7 +537,6 @@ async function verify(config, request, options) {
554
537
  // this load-bearing must never be defaulted on.
555
538
  identityVerified: apiResponse.verificationContext?.idVerified === true,
556
539
  policyAllowed: true,
557
- accessLevel,
558
540
  agent,
559
541
  developer,
560
542
  organization,
@@ -581,7 +563,6 @@ async function verify(config, request, options) {
581
563
  };
582
564
  if (result.recommendation === "deny") {
583
565
  result.policyAllowed = false;
584
- result.accessLevel = "none";
585
566
  result.denialReasons = serverDenialReasons ?? result.recommendationReasons ?? ["Access denied by AstraSync recommendation"];
586
567
  result.guidance = result.runtimeChallenge ? {
587
568
  message: `Verification failed: ${result.runtimeChallenge.reason || "runtime challenge failed"}`,
@@ -699,7 +680,6 @@ async function quickVerify(config, credentials) {
699
680
  return {
700
681
  identityVerified: result.identityVerified,
701
682
  policyAllowed: result.policyAllowed,
702
- accessLevel: result.accessLevel,
703
683
  reason: result.denialReasons?.[0]
704
684
  };
705
685
  }