@signalcore/ui 0.1.0 → 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +896 -513
- package/dist/AgentAbout.d.ts +186 -0
- package/dist/AgentAbout.js +1020 -0
- package/dist/AgentAbout.js.map +1 -0
- package/dist/AgentCard.d.ts +49 -0
- package/dist/AgentCard.js +77 -0
- package/dist/AgentCard.js.map +1 -0
- package/dist/AgentChat.d.ts +233 -0
- package/dist/AgentChat.js +1127 -0
- package/dist/AgentChat.js.map +1 -0
- package/dist/AgentSpace.d.ts +112 -0
- package/dist/AgentSpace.js +339 -0
- package/dist/AgentSpace.js.map +1 -0
- package/dist/AgentTasks.d.ts +48 -0
- package/dist/AgentTasks.js +120 -0
- package/dist/AgentTasks.js.map +1 -0
- package/dist/BrowserView.d.ts +52 -0
- package/dist/BrowserView.js +328 -0
- package/dist/BrowserView.js.map +1 -0
- package/dist/FileView.d.ts +63 -0
- package/dist/FileView.js +449 -0
- package/dist/FileView.js.map +1 -0
- package/dist/Modes.d.ts +13 -0
- package/dist/Modes.js +75 -0
- package/dist/Modes.js.map +1 -0
- package/dist/VoiceCall.d.ts +91 -0
- package/dist/VoiceCall.js +302 -0
- package/dist/VoiceCall.js.map +1 -0
- package/dist/about.d.ts +212 -0
- package/dist/about.js +136 -0
- package/dist/about.js.map +1 -0
- package/dist/agentIcons.d.ts +33 -0
- package/dist/agentIcons.js +36 -0
- package/dist/agentIcons.js.map +1 -0
- package/dist/automation/Automation.d.ts +35 -0
- package/dist/automation/Automation.js +268 -0
- package/dist/automation/Automation.js.map +1 -0
- package/dist/automation/RunView.d.ts +25 -0
- package/dist/automation/RunView.js +187 -0
- package/dist/automation/RunView.js.map +1 -0
- package/dist/automation/cron.d.ts +41 -0
- package/dist/automation/cron.js +169 -0
- package/dist/automation/cron.js.map +1 -0
- package/dist/automation/marks.js +121 -0
- package/dist/automation/marks.js.map +1 -0
- package/dist/automation/messages.d.ts +113 -0
- package/dist/automation/messages.js +113 -0
- package/dist/automation/messages.js.map +1 -0
- package/dist/automation/record.d.ts +47 -0
- package/dist/automation/record.js +177 -0
- package/dist/automation/record.js.map +1 -0
- package/dist/automation/types.d.ts +143 -0
- package/dist/automation/when.d.ts +36 -0
- package/dist/automation/when.js +168 -0
- package/dist/automation/when.js.map +1 -0
- package/dist/blocks.d.ts +185 -0
- package/dist/browser.js +292 -0
- package/dist/browser.js.map +1 -0
- package/dist/call.d.ts +89 -0
- package/dist/call.js +218 -0
- package/dist/call.js.map +1 -0
- package/dist/channelParts.js +26 -0
- package/dist/channelParts.js.map +1 -0
- package/dist/classes.js +8 -3
- package/dist/classes.js.map +1 -0
- package/dist/client.d.ts +146 -54
- package/dist/client.js +204 -1
- package/dist/client.js.map +1 -0
- package/dist/conversationFiles.js +46 -0
- package/dist/conversationFiles.js.map +1 -0
- package/dist/credentials.d.ts +45 -0
- package/dist/credentials.js +98 -0
- package/dist/credentials.js.map +1 -0
- package/dist/dev.js +17 -0
- package/dist/dev.js.map +1 -0
- package/dist/es.d.ts +17 -0
- package/dist/es.js +382 -0
- package/dist/es.js.map +1 -0
- package/dist/files.d.ts +21 -0
- package/dist/files.js +214 -0
- package/dist/files.js.map +1 -0
- package/dist/frames.d.ts +115 -0
- package/dist/frames.js +219 -0
- package/dist/frames.js.map +1 -0
- package/dist/icons.js +29 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.d.ts +63 -60
- package/dist/index.js +59 -45
- package/dist/kit/AudioPlayer.d.ts +20 -0
- package/dist/kit/AudioPlayer.js +116 -0
- package/dist/kit/AudioPlayer.js.map +1 -0
- package/dist/kit/Button.d.ts +29 -0
- package/dist/kit/Button.js +59 -0
- package/dist/kit/Button.js.map +1 -0
- package/dist/kit/Card.d.ts +16 -0
- package/dist/kit/Card.js +36 -0
- package/dist/kit/Card.js.map +1 -0
- package/dist/kit/Chart.js +152 -0
- package/dist/kit/Chart.js.map +1 -0
- package/dist/kit/Choices.d.ts +21 -0
- package/dist/kit/Choices.js +99 -0
- package/dist/kit/Choices.js.map +1 -0
- package/dist/kit/Combobox.d.ts +26 -0
- package/dist/kit/Combobox.js +190 -0
- package/dist/kit/Combobox.js.map +1 -0
- package/dist/kit/DateField.d.ts +17 -0
- package/dist/kit/DateField.js +133 -0
- package/dist/kit/DateField.js.map +1 -0
- package/dist/kit/Field.d.ts +40 -0
- package/dist/kit/Field.js +98 -0
- package/dist/kit/Field.js.map +1 -0
- package/dist/kit/FileField.d.ts +113 -0
- package/dist/kit/FileField.js +341 -0
- package/dist/kit/FileField.js.map +1 -0
- package/dist/kit/FileMark.d.ts +15 -0
- package/dist/kit/FileMark.js +39 -0
- package/dist/kit/FileMark.js.map +1 -0
- package/dist/kit/Inputs.d.ts +59 -0
- package/dist/kit/Inputs.js +205 -0
- package/dist/kit/Inputs.js.map +1 -0
- package/dist/kit/List.d.ts +47 -0
- package/dist/kit/List.js +85 -0
- package/dist/kit/List.js.map +1 -0
- package/dist/kit/Mark.d.ts +30 -0
- package/dist/kit/Mark.js +27 -0
- package/dist/kit/Mark.js.map +1 -0
- package/dist/kit/MarkStack.d.ts +15 -0
- package/dist/kit/MarkStack.js +26 -0
- package/dist/kit/MarkStack.js.map +1 -0
- package/dist/kit/Note.d.ts +11 -0
- package/dist/kit/Note.js +31 -0
- package/dist/kit/Note.js.map +1 -0
- package/dist/kit/Popover.js +90 -0
- package/dist/kit/Popover.js.map +1 -0
- package/dist/kit/RangeField.d.ts +14 -0
- package/dist/kit/RangeField.js +47 -0
- package/dist/kit/RangeField.js.map +1 -0
- package/dist/kit/RatingField.d.ts +14 -0
- package/dist/kit/RatingField.js +50 -0
- package/dist/kit/RatingField.js.map +1 -0
- package/dist/kit/Stat.d.ts +26 -0
- package/dist/kit/Stat.js +46 -0
- package/dist/kit/Stat.js.map +1 -0
- package/dist/kit/Switch.d.ts +14 -0
- package/dist/kit/Switch.js +21 -0
- package/dist/kit/Switch.js.map +1 -0
- package/dist/kit/Tag.d.ts +16 -0
- package/dist/kit/Tag.js +20 -0
- package/dist/kit/Tag.js.map +1 -0
- package/dist/kit/Tile.d.ts +34 -0
- package/dist/kit/Tile.js +52 -0
- package/dist/kit/Tile.js.map +1 -0
- package/dist/kit/TimeField.d.ts +31 -0
- package/dist/kit/TimeField.js +109 -0
- package/dist/kit/TimeField.js.map +1 -0
- package/dist/kit/context.d.ts +22 -0
- package/dist/kit/context.js +46 -0
- package/dist/kit/context.js.map +1 -0
- package/dist/kit/dates.d.ts +14 -0
- package/dist/kit/dates.js +129 -0
- package/dist/kit/dates.js.map +1 -0
- package/dist/kit/messages.d.ts +99 -0
- package/dist/kit/messages.js +66 -0
- package/dist/kit/messages.js.map +1 -0
- package/dist/kit/numbers.d.ts +12 -0
- package/dist/kit/numbers.js +40 -0
- package/dist/kit/numbers.js.map +1 -0
- package/dist/kit/options.d.ts +10 -0
- package/dist/kit/options.js +23 -0
- package/dist/kit/options.js.map +1 -0
- package/dist/kit/uploads.d.ts +42 -0
- package/dist/kit/uploads.js +165 -0
- package/dist/kit/uploads.js.map +1 -0
- package/dist/kit/waveform.js +76 -0
- package/dist/kit/waveform.js.map +1 -0
- package/dist/locale.d.ts +1 -0
- package/dist/locale.js +1 -0
- package/dist/markdown.js +84 -0
- package/dist/markdown.js.map +1 -0
- package/dist/marks.js +217 -0
- package/dist/marks.js.map +1 -0
- package/dist/reveal.js +48 -0
- package/dist/reveal.js.map +1 -0
- package/dist/stepGlyphs.js +62 -0
- package/dist/stepGlyphs.js.map +1 -0
- package/dist/surface/Form.js +264 -0
- package/dist/surface/Form.js.map +1 -0
- package/dist/surface/Markdown.js +42 -0
- package/dist/surface/Markdown.js.map +1 -0
- package/dist/surface/Surface.d.ts +31 -17
- package/dist/surface/Surface.js +480 -57
- package/dist/surface/Surface.js.map +1 -0
- package/dist/surface/scope.d.ts +32 -0
- package/dist/surface/scope.js +23 -0
- package/dist/surface/scope.js.map +1 -0
- package/dist/surface/values.d.ts +44 -0
- package/dist/surface/values.js +237 -0
- package/dist/surface/values.js.map +1 -0
- package/dist/tint.d.ts +10 -0
- package/dist/tint.js +19 -0
- package/dist/tint.js.map +1 -0
- package/dist/types.d.ts +541 -0
- package/dist/types.js +16 -0
- package/dist/types.js.map +1 -0
- package/dist/useAgentFace.d.ts +18 -0
- package/dist/useAgentFace.js +45 -0
- package/dist/useAgentFace.js.map +1 -0
- package/dist/useCall.d.ts +39 -0
- package/dist/useCall.js +273 -0
- package/dist/useCall.js.map +1 -0
- package/dist/useConversation.d.ts +77 -0
- package/dist/useConversation.js +523 -0
- package/dist/useConversation.js.map +1 -0
- package/dist/useDictation.d.ts +17 -0
- package/dist/useDictation.js +68 -0
- package/dist/useDictation.js.map +1 -0
- package/dist/useLive.d.ts +26 -0
- package/dist/useLive.js +88 -0
- package/dist/useLive.js.map +1 -0
- package/dist/usePolled.js +68 -0
- package/dist/usePolled.js.map +1 -0
- package/dist/voice/Orb.d.ts +10 -9
- package/dist/voice/Orb.js +43 -39
- package/dist/voice/Orb.js.map +1 -0
- package/dist/voice/StillOrb.js +33 -0
- package/dist/voice/StillOrb.js.map +1 -0
- package/dist/voice/WebGLOrb.js +98 -0
- package/dist/voice/WebGLOrb.js.map +1 -0
- package/dist/voice/fluidDots.js +161 -0
- package/dist/voice/fluidDots.js.map +1 -0
- package/dist/voice/motion.js +84 -0
- package/dist/voice/motion.js.map +1 -0
- package/dist/voice/orbs.d.ts +32 -0
- package/dist/voice/orbs.js +16 -0
- package/dist/voice/orbs.js.map +1 -0
- package/dist/voice/useReducedMotion.js +16 -16
- package/dist/voice/useReducedMotion.js.map +1 -0
- package/dist/voice/wave.js +116 -0
- package/dist/voice/wave.js.map +1 -0
- package/dist/voice/webgl.js +177 -0
- package/dist/voice/webgl.js.map +1 -0
- package/dist/widget.js +284 -8
- package/package.json +49 -39
- package/src/AgentAbout.tsx +1621 -0
- package/src/AgentCard.tsx +123 -0
- package/src/AgentChat.tsx +1812 -0
- package/src/AgentSpace.tsx +540 -0
- package/src/AgentTasks.tsx +163 -0
- package/src/BrowserView.tsx +442 -0
- package/src/FileView.tsx +620 -0
- package/src/Modes.tsx +112 -0
- package/src/VoiceCall.tsx +411 -0
- package/src/about.ts +355 -0
- package/src/agentIcons.ts +56 -0
- package/src/automation/Automation.tsx +308 -0
- package/src/automation/RunView.tsx +213 -0
- package/src/automation/cron.ts +196 -0
- package/src/automation/marks.tsx +144 -0
- package/src/automation/messages.ts +231 -0
- package/src/automation/record.ts +206 -0
- package/src/automation/types.ts +146 -0
- package/src/automation/when.ts +195 -0
- package/src/blocks.ts +249 -0
- package/src/browser.ts +334 -0
- package/src/call.ts +300 -0
- package/src/channelParts.ts +17 -0
- package/src/classes.ts +10 -0
- package/src/client.ts +397 -0
- package/src/conversationFiles.ts +54 -0
- package/src/credentials.ts +158 -0
- package/src/dev.ts +20 -0
- package/src/es.ts +423 -0
- package/src/files.ts +238 -0
- package/src/frames.ts +291 -0
- package/src/icons.tsx +49 -0
- package/src/index.ts +271 -0
- package/src/kit/AudioPlayer.tsx +129 -0
- package/src/kit/Button.tsx +97 -0
- package/src/kit/Card.tsx +47 -0
- package/src/kit/Chart.tsx +129 -0
- package/src/kit/Choices.tsx +131 -0
- package/src/kit/Combobox.tsx +247 -0
- package/src/kit/DateField.tsx +156 -0
- package/src/kit/Field.tsx +137 -0
- package/src/kit/FileField.tsx +492 -0
- package/src/kit/FileMark.tsx +56 -0
- package/src/kit/Inputs.tsx +250 -0
- package/src/kit/List.tsx +135 -0
- package/src/kit/Mark.tsx +64 -0
- package/src/kit/MarkStack.tsx +29 -0
- package/src/kit/Note.tsx +42 -0
- package/src/kit/Popover.tsx +121 -0
- package/src/kit/RangeField.tsx +53 -0
- package/src/kit/RatingField.tsx +62 -0
- package/src/kit/Stat.tsx +60 -0
- package/src/kit/Switch.tsx +28 -0
- package/src/kit/Tag.tsx +32 -0
- package/src/kit/Tile.tsx +74 -0
- package/src/kit/TimeField.tsx +157 -0
- package/src/kit/context.tsx +246 -0
- package/src/kit/dates.ts +150 -0
- package/src/kit/messages.ts +160 -0
- package/src/kit/numbers.ts +44 -0
- package/src/kit/options.ts +30 -0
- package/src/kit/uploads.ts +244 -0
- package/src/kit/waveform.ts +84 -0
- package/src/locale.ts +6 -0
- package/src/markdown.ts +69 -0
- package/src/marks.tsx +328 -0
- package/src/reveal.ts +52 -0
- package/src/stepGlyphs.ts +83 -0
- package/src/styles.css +6970 -0
- package/src/surface/Form.tsx +299 -0
- package/src/surface/Markdown.tsx +55 -0
- package/src/surface/Surface.tsx +605 -0
- package/src/surface/scope.ts +82 -0
- package/src/surface/values.ts +361 -0
- package/src/tint.ts +14 -0
- package/src/types.ts +604 -0
- package/src/useAgentFace.ts +47 -0
- package/src/useCall.ts +292 -0
- package/src/useConversation.ts +627 -0
- package/src/useDictation.ts +83 -0
- package/src/useLive.ts +115 -0
- package/src/usePolled.ts +60 -0
- package/src/voice/Orb.tsx +45 -0
- package/src/voice/StillOrb.tsx +29 -0
- package/src/voice/WebGLOrb.tsx +98 -0
- package/src/voice/fluidDots.tsx +171 -0
- package/src/voice/motion.ts +112 -0
- package/src/voice/orbs.ts +39 -0
- package/src/voice/useReducedMotion.ts +24 -0
- package/src/voice/wave.tsx +129 -0
- package/src/voice/webgl.ts +209 -0
- package/src/widget/css.d.ts +5 -0
- package/src/widget/element.tsx +535 -0
- package/src/widget/index.ts +10 -0
- package/src/widget/mount.ts +27 -0
- package/src/widget/widget.css +253 -0
- package/dist/SignalcoreProvider.d.ts +0 -113
- package/dist/SignalcoreProvider.js +0 -84
- package/dist/automations/AppMarks.d.ts +0 -11
- package/dist/automations/AppMarks.js +0 -18
- package/dist/automations/AutomationCard.d.ts +0 -27
- package/dist/automations/AutomationCard.js +0 -53
- package/dist/automations/AutomationsWindow.d.ts +0 -38
- package/dist/automations/AutomationsWindow.js +0 -57
- package/dist/automations/Card.d.ts +0 -46
- package/dist/automations/Card.js +0 -45
- package/dist/automations/ScheduleMarks.d.ts +0 -13
- package/dist/automations/ScheduleMarks.js +0 -24
- package/dist/automations/presentationIcons.d.ts +0 -7
- package/dist/automations/presentationIcons.js +0 -67
- package/dist/automations/schedule.d.ts +0 -25
- package/dist/automations/schedule.js +0 -59
- package/dist/automations/time.d.ts +0 -3
- package/dist/automations/time.js +0 -25
- package/dist/browser/BrowserView.d.ts +0 -43
- package/dist/browser/BrowserView.js +0 -94
- package/dist/browser/room.d.ts +0 -21
- package/dist/browser/room.js +0 -33
- package/dist/browser/useBrowserSession.d.ts +0 -17
- package/dist/browser/useBrowserSession.js +0 -67
- package/dist/builder/BuilderChat.d.ts +0 -32
- package/dist/builder/BuilderChat.js +0 -41
- package/dist/builder/BuilderTranscript.d.ts +0 -49
- package/dist/builder/BuilderTranscript.js +0 -62
- package/dist/builder/StatusLine.d.ts +0 -8
- package/dist/builder/StatusLine.js +0 -17
- package/dist/builder/answer.d.ts +0 -7
- package/dist/builder/answer.js +0 -8
- package/dist/builder/blocks.d.ts +0 -31
- package/dist/builder/blocks.js +0 -74
- package/dist/builder/items.d.ts +0 -15
- package/dist/builder/items.js +0 -21
- package/dist/builder/steps.d.ts +0 -20
- package/dist/builder/steps.js +0 -120
- package/dist/builder/time.d.ts +0 -4
- package/dist/builder/time.js +0 -24
- package/dist/builder/useBuildSession.d.ts +0 -36
- package/dist/builder/useBuildSession.js +0 -130
- package/dist/builder/workingOn.d.ts +0 -7
- package/dist/builder/workingOn.js +0 -15
- package/dist/chat/AgentChat.d.ts +0 -37
- package/dist/chat/AgentChat.js +0 -21
- package/dist/chat/ChatView.d.ts +0 -25
- package/dist/chat/ChatView.js +0 -34
- package/dist/chat/Composer.d.ts +0 -20
- package/dist/chat/Composer.js +0 -22
- package/dist/chat/MessageRow.d.ts +0 -22
- package/dist/chat/MessageRow.js +0 -32
- package/dist/chat/arrival.d.ts +0 -15
- package/dist/chat/arrival.js +0 -25
- package/dist/chat/history.d.ts +0 -24
- package/dist/chat/history.js +0 -45
- package/dist/chat/moments.d.ts +0 -25
- package/dist/chat/moments.js +0 -72
- package/dist/chat/types.d.ts +0 -12
- package/dist/chat/types.js +0 -1
- package/dist/chat/useComposer.d.ts +0 -46
- package/dist/chat/useComposer.js +0 -62
- package/dist/chat/useConversation.d.ts +0 -35
- package/dist/chat/useConversation.js +0 -71
- package/dist/chat/useStickToBottom.d.ts +0 -9
- package/dist/chat/useStickToBottom.js +0 -33
- package/dist/chat/useTurns.d.ts +0 -49
- package/dist/chat/useTurns.js +0 -111
- package/dist/classes.d.ts +0 -2
- package/dist/development.d.ts +0 -5
- package/dist/development.js +0 -8
- package/dist/flow/FlowWindow.d.ts +0 -42
- package/dist/flow/FlowWindow.js +0 -126
- package/dist/flow/index.d.ts +0 -16
- package/dist/flow/index.js +0 -16
- package/dist/flow/kinds.d.ts +0 -23
- package/dist/flow/kinds.js +0 -48
- package/dist/flow/map.d.ts +0 -44
- package/dist/flow/map.js +0 -225
- package/dist/flow/nodePaths.d.ts +0 -7
- package/dist/flow/nodePaths.js +0 -17
- package/dist/flow/relations.d.ts +0 -42
- package/dist/flow/relations.js +0 -174
- package/dist/host.d.ts +0 -124
- package/dist/host.js +0 -1
- package/dist/live/LiveView.d.ts +0 -28
- package/dist/live/LiveView.js +0 -55
- package/dist/live/capture.d.ts +0 -20
- package/dist/live/capture.js +0 -100
- package/dist/live/follow.d.ts +0 -26
- package/dist/live/follow.js +0 -72
- package/dist/live/paint.d.ts +0 -13
- package/dist/live/paint.js +0 -77
- package/dist/live/useLiveStream.d.ts +0 -16
- package/dist/live/useLiveStream.js +0 -57
- package/dist/look.d.ts +0 -33
- package/dist/look.js +0 -241
- package/dist/messages/en.d.ts +0 -3
- package/dist/messages/en.js +0 -251
- package/dist/messages/es.d.ts +0 -3
- package/dist/messages/es.js +0 -251
- package/dist/messages/index.d.ts +0 -16
- package/dist/messages/index.js +0 -33
- package/dist/messages/types.d.ts +0 -246
- package/dist/messages/types.js +0 -1
- package/dist/parts/Button.d.ts +0 -18
- package/dist/parts/Button.js +0 -17
- package/dist/parts/Icon.d.ts +0 -39
- package/dist/parts/Icon.js +0 -37
- package/dist/parts/Input.d.ts +0 -6
- package/dist/parts/Input.js +0 -11
- package/dist/parts/Spinner.d.ts +0 -2
- package/dist/parts/Spinner.js +0 -7
- package/dist/patterns.d.ts +0 -15
- package/dist/patterns.js +0 -5
- package/dist/presets.d.ts +0 -82
- package/dist/presets.js +0 -81
- package/dist/primitives.d.ts +0 -22
- package/dist/primitives.js +0 -58
- package/dist/request/RequestCard.d.ts +0 -34
- package/dist/request/RequestCard.js +0 -101
- package/dist/request/approval/ApprovalPreview.d.ts +0 -5
- package/dist/request/approval/ApprovalPreview.js +0 -27
- package/dist/request/approval/shapes.d.ts +0 -32
- package/dist/request/approval/shapes.js +0 -68
- package/dist/request/apps.d.ts +0 -11
- package/dist/request/apps.js +0 -27
- package/dist/request/cards.d.ts +0 -12
- package/dist/request/cards.js +0 -24
- package/dist/request/deliver.d.ts +0 -12
- package/dist/request/deliver.js +0 -21
- package/dist/request/handOver.d.ts +0 -18
- package/dist/request/handOver.js +0 -33
- package/dist/request/kinds/Approval.d.ts +0 -3
- package/dist/request/kinds/Approval.js +0 -9
- package/dist/request/kinds/Choice.d.ts +0 -3
- package/dist/request/kinds/Choice.js +0 -8
- package/dist/request/kinds/Connect.d.ts +0 -9
- package/dist/request/kinds/Connect.js +0 -119
- package/dist/request/kinds/FreeText.d.ts +0 -3
- package/dist/request/kinds/FreeText.js +0 -20
- package/dist/request/kinds/HandOver.d.ts +0 -13
- package/dist/request/kinds/HandOver.js +0 -20
- package/dist/request/kinds/Secret.d.ts +0 -7
- package/dist/request/kinds/Secret.js +0 -49
- package/dist/request/kinds/Upload.d.ts +0 -6
- package/dist/request/kinds/Upload.js +0 -47
- package/dist/request/types.d.ts +0 -83
- package/dist/request/types.js +0 -1
- package/dist/safeUrl.d.ts +0 -6
- package/dist/safeUrl.js +0 -8
- package/dist/stream/builder.d.ts +0 -176
- package/dist/stream/builder.js +0 -202
- package/dist/stream/reduce.d.ts +0 -51
- package/dist/stream/reduce.js +0 -58
- package/dist/stream/untilAborted.d.ts +0 -7
- package/dist/stream/untilAborted.js +0 -32
- package/dist/stream/useRunStream.d.ts +0 -26
- package/dist/stream/useRunStream.js +0 -137
- package/dist/styles.css +0 -2318
- package/dist/surface/HostNode.d.ts +0 -14
- package/dist/surface/HostNode.js +0 -30
- package/dist/surface/Node.d.ts +0 -7
- package/dist/surface/Node.js +0 -49
- package/dist/surface/SurfaceBoundary.d.ts +0 -26
- package/dist/surface/SurfaceBoundary.js +0 -20
- package/dist/surface/bindings.d.ts +0 -14
- package/dist/surface/bindings.js +0 -37
- package/dist/surface/check.d.ts +0 -27
- package/dist/surface/check.js +0 -102
- package/dist/surface/format.d.ts +0 -10
- package/dist/surface/format.js +0 -32
- package/dist/surface/hosts.d.ts +0 -6
- package/dist/surface/hosts.js +0 -11
- package/dist/surface/scene.d.ts +0 -21
- package/dist/surface/scene.js +0 -8
- package/dist/surface/templates/Browser.d.ts +0 -6
- package/dist/surface/templates/Browser.js +0 -11
- package/dist/surface/templates/Chart.d.ts +0 -6
- package/dist/surface/templates/Chart.js +0 -13
- package/dist/surface/templates/Choices.d.ts +0 -3
- package/dist/surface/templates/Choices.js +0 -12
- package/dist/surface/templates/Form.d.ts +0 -3
- package/dist/surface/templates/Form.js +0 -44
- package/dist/surface/templates/KeyValue.d.ts +0 -3
- package/dist/surface/templates/KeyValue.js +0 -7
- package/dist/surface/templates/Layout.d.ts +0 -5
- package/dist/surface/templates/Layout.js +0 -16
- package/dist/surface/templates/Live.d.ts +0 -6
- package/dist/surface/templates/Live.js +0 -9
- package/dist/surface/templates/Media.d.ts +0 -5
- package/dist/surface/templates/Media.js +0 -13
- package/dist/surface/templates/Slots.d.ts +0 -3
- package/dist/surface/templates/Slots.js +0 -19
- package/dist/surface/templates/Table.d.ts +0 -3
- package/dist/surface/templates/Table.js +0 -12
- package/dist/surface/templates/Text.d.ts +0 -4
- package/dist/surface/templates/Text.js +0 -15
- package/dist/surface/templates/index.d.ts +0 -7
- package/dist/surface/templates/index.js +0 -32
- package/dist/surface/types.d.ts +0 -68
- package/dist/surface/types.js +0 -6
- package/dist/theme.d.ts +0 -62
- package/dist/theme.js +0 -9
- package/dist/useTokens.d.ts +0 -7
- package/dist/useTokens.js +0 -41
- package/dist/voice/VoiceWindow.d.ts +0 -18
- package/dist/voice/VoiceWindow.js +0 -35
- package/dist/voice/index.d.ts +0 -13
- package/dist/voice/index.js +0 -12
- package/dist/voice/meter.d.ts +0 -16
- package/dist/voice/meter.js +0 -52
- package/dist/voice/orbColors.d.ts +0 -16
- package/dist/voice/orbColors.js +0 -75
- package/dist/voice/pushable.d.ts +0 -16
- package/dist/voice/pushable.js +0 -56
- package/dist/voice/useDictation.d.ts +0 -24
- package/dist/voice/useDictation.js +0 -60
- package/dist/voice/useReducedMotion.d.ts +0 -5
- package/dist/voice/useVoice.d.ts +0 -70
- package/dist/voice/useVoice.js +0 -197
- package/dist/voice/useVoicePrimitives.d.ts +0 -7
- package/dist/voice/useVoicePrimitives.js +0 -11
- package/dist/voice/voice.d.ts +0 -55
- package/dist/voice/voice.js +0 -9
- package/dist/voice/webSpeech.d.ts +0 -33
- package/dist/voice/webSpeech.js +0 -258
- package/dist/widget.js.map +0 -1
- package/dist/windows/AgentSpace.d.ts +0 -78
- package/dist/windows/AgentSpace.js +0 -135
- package/dist/windows/Captions.d.ts +0 -13
- package/dist/windows/Captions.js +0 -22
- package/dist/windows/Dock.d.ts +0 -37
- package/dist/windows/Dock.js +0 -22
- package/dist/windows/Journal.d.ts +0 -15
- package/dist/windows/Journal.js +0 -19
- package/dist/windows/KindMark.d.ts +0 -7
- package/dist/windows/KindMark.js +0 -31
- package/dist/windows/Pending.d.ts +0 -8
- package/dist/windows/Pending.js +0 -17
- package/dist/windows/Stage.d.ts +0 -18
- package/dist/windows/Stage.js +0 -21
- package/dist/windows/StatusLabel.d.ts +0 -9
- package/dist/windows/StatusLabel.js +0 -7
- package/dist/windows/Strip.d.ts +0 -17
- package/dist/windows/Strip.js +0 -42
- package/dist/windows/SurfaceWindow.d.ts +0 -20
- package/dist/windows/SurfaceWindow.js +0 -12
- package/dist/windows/WindowFrame.d.ts +0 -23
- package/dist/windows/WindowFrame.js +0 -22
- package/dist/windows/hearing.d.ts +0 -11
- package/dist/windows/hearing.js +0 -26
- package/dist/windows/kinds.d.ts +0 -47
- package/dist/windows/kinds.js +0 -28
- package/dist/windows/reduce.d.ts +0 -98
- package/dist/windows/reduce.js +0 -151
- package/dist/windows/registry.d.ts +0 -18
- package/dist/windows/registry.js +0 -61
- package/dist/windows/reveal.d.ts +0 -9
- package/dist/windows/reveal.js +0 -6
- package/dist/windows/space.d.ts +0 -21
- package/dist/windows/space.js +0 -6
- package/dist/windows/status.d.ts +0 -11
- package/dist/windows/status.js +0 -30
- package/dist/windows/types.d.ts +0 -15
- package/dist/windows/types.js +0 -1
- package/dist/windows/useLoaded.d.ts +0 -44
- package/dist/windows/useLoaded.js +0 -58
- package/dist/windows/useUnread.d.ts +0 -7
- package/dist/windows/useUnread.js +0 -21
- package/dist/windows/useWindows.d.ts +0 -70
- package/dist/windows/useWindows.js +0 -60
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
//#region src/credentials.ts
|
|
2
|
+
/** Where the page keeps its visitor's id, for every SignalCore widget on the site. */
|
|
3
|
+
const VISITOR_KEY = "signalcore.visitor";
|
|
4
|
+
/** What the API takes as a visitor's id: 16 to 128 letters, digits, `_` and `-`. */
|
|
5
|
+
const VISITOR = /^[A-Za-z0-9_-]{16,128}$/;
|
|
6
|
+
/** A new visitor's id: 32 hex characters of the browser's own randomness (any page has it). */
|
|
7
|
+
function newVisitor() {
|
|
8
|
+
const bytes = crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16));
|
|
9
|
+
return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The visitor this page speaks for: the one kept in `localStorage`, else a new one kept there for
|
|
13
|
+
* their next visit; where the page can't keep anything (a private window, storage blocked), a new
|
|
14
|
+
* one for this page alone.
|
|
15
|
+
*/
|
|
16
|
+
function keptVisitor() {
|
|
17
|
+
try {
|
|
18
|
+
const kept = localStorage.getItem(VISITOR_KEY);
|
|
19
|
+
if (kept !== null && VISITOR.test(kept)) return kept;
|
|
20
|
+
const made = newVisitor();
|
|
21
|
+
localStorage.setItem(VISITOR_KEY, made);
|
|
22
|
+
return made;
|
|
23
|
+
} catch {
|
|
24
|
+
return newVisitor();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** A credential that never changes: the same headers and the same query, nothing to renew. */
|
|
28
|
+
const fixed = (who, credentials, headers, query) => ({
|
|
29
|
+
who,
|
|
30
|
+
credentials,
|
|
31
|
+
sign: () => Promise.resolve({
|
|
32
|
+
headers,
|
|
33
|
+
renew: null
|
|
34
|
+
}),
|
|
35
|
+
query: () => Promise.resolve(query)
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* A token asked of the host's backend: when first needed, then kept. A refusal lets it go, once
|
|
39
|
+
* however many requests were refused with it, so the next request asks for another; one that
|
|
40
|
+
* could not be had is asked for again next time.
|
|
41
|
+
*/
|
|
42
|
+
function fetched(getToken) {
|
|
43
|
+
let current = null;
|
|
44
|
+
const latest = () => {
|
|
45
|
+
if (current !== null) return current;
|
|
46
|
+
const asked = Promise.resolve().then(getToken);
|
|
47
|
+
current = asked;
|
|
48
|
+
asked.catch(() => {
|
|
49
|
+
if (current === asked) current = null;
|
|
50
|
+
});
|
|
51
|
+
return asked;
|
|
52
|
+
};
|
|
53
|
+
return {
|
|
54
|
+
who: "person",
|
|
55
|
+
credentials: "omit",
|
|
56
|
+
sign: async () => {
|
|
57
|
+
const used = latest();
|
|
58
|
+
return {
|
|
59
|
+
headers: { Authorization: `Bearer ${await used}` },
|
|
60
|
+
renew: () => {
|
|
61
|
+
if (current === used) current = null;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
},
|
|
65
|
+
query: async (fresh) => {
|
|
66
|
+
if (fresh) current = null;
|
|
67
|
+
return { token: await latest() };
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* How a client signs in with what it was given. The API's public prefix reads the header (the
|
|
73
|
+
* socket, its query) and never a cookie, so only our own app sends the browser's.
|
|
74
|
+
*/
|
|
75
|
+
function signerOf(given) {
|
|
76
|
+
if (given.credentials === "cookie") return fixed("business", "same-origin", {}, {});
|
|
77
|
+
if (typeof given.token === "string") {
|
|
78
|
+
const { token } = given;
|
|
79
|
+
return fixed("person", "omit", { Authorization: `Bearer ${token}` }, { token });
|
|
80
|
+
}
|
|
81
|
+
if (typeof given.getToken === "function") return fetched(given.getToken);
|
|
82
|
+
if (typeof given.publishableKey === "string") {
|
|
83
|
+
const key = given.publishableKey;
|
|
84
|
+
const visitor = given.visitorId ?? keptVisitor();
|
|
85
|
+
return fixed("person", "omit", {
|
|
86
|
+
Authorization: `Bearer ${key}`,
|
|
87
|
+
"SignalCore-Visitor": visitor
|
|
88
|
+
}, {
|
|
89
|
+
token: key,
|
|
90
|
+
visitor
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
throw new TypeError("createClient takes one way to sign in: credentials: \"cookie\", token, getToken or publishableKey");
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
export { VISITOR_KEY, keptVisitor, signerOf };
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.js","names":[],"sources":["../src/credentials.ts"],"sourcesContent":["/**\n * Who a client calls as, one way at a time (v3/README.md, Credentials): the owner's session cookie\n * in our own app; a person's token, given as it is or asked of the host's backend (and asked again\n * once it expires); or an anonymous visitor of a site, by the site's publishable key and the id\n * the page keeps for them.\n */\n\ntype Way = \"credentials\" | \"token\" | \"getToken\" | \"publishableKey\" | \"visitorId\";\n\n/** One way of signing in, with none of the others beside it. */\ntype Alone<T> = T & { [K in Exclude<Way, keyof T>]?: never };\n\nexport type Credentials =\n /** Our app, on the API's own origin (`/api`): the session cookie the browser holds. */\n | Alone<{ credentials: \"cookie\" }>\n /** A person's token the host's backend minted (`POST /v1/tokens`), used as it is. */\n | Alone<{ token: string }>\n /**\n * A person's token asked of the host's backend: when first needed, and once more each time the\n * API refuses the one kept (it lasts an hour).\n */\n | Alone<{ getToken: () => Promise<string> }>\n /**\n * An anonymous visitor (the widget): the site's publishable key, and who they are, an id the\n * page keeps; one is made and kept in `localStorage` when none is given.\n */\n | Alone<{ publishableKey: string; visitorId?: string | undefined }>;\n\n/** What one request carries to say who calls, and how to have it anew once it is refused. */\nexport interface Signed {\n headers: Readonly<Record<string, string>>;\n /** Lets go of a token the API refused, for the next request to ask for another; null: none. */\n renew: (() => void) | null;\n}\n\n/**\n * Who a page speaks for: the business (the owner, in our own app) or a person it serves (a token's\n * person, a publishable key's visitor). The API lets each answer different things: a yes the\n * business decides is the business's alone.\n */\nexport type Speaker = \"business\" | \"person\";\n\n/** How every request and socket of a client says who calls. */\nexport interface Signer {\n who: Speaker;\n /** What `fetch` sends of the browser's own: the cookie on the page's origin, or nothing. */\n credentials: RequestCredentials;\n sign: () => Promise<Signed>;\n /**\n * What a socket carries in its address instead (a browser's socket takes no header); `fresh`\n * asks for a new token first, for a socket that could not open with the last one.\n */\n query: (fresh: boolean) => Promise<Readonly<Record<string, string>>>;\n}\n\n/** Where the page keeps its visitor's id, for every SignalCore widget on the site. */\nexport const VISITOR_KEY = \"signalcore.visitor\";\n\n/** What the API takes as a visitor's id: 16 to 128 letters, digits, `_` and `-`. */\nconst VISITOR = /^[A-Za-z0-9_-]{16,128}$/;\n\n/** A new visitor's id: 32 hex characters of the browser's own randomness (any page has it). */\nfunction newVisitor(): string {\n const bytes = crypto.getRandomValues(new Uint8Array(16));\n return Array.from(bytes, (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\n/**\n * The visitor this page speaks for: the one kept in `localStorage`, else a new one kept there for\n * their next visit; where the page can't keep anything (a private window, storage blocked), a new\n * one for this page alone.\n */\nexport function keptVisitor(): string {\n try {\n const kept = localStorage.getItem(VISITOR_KEY);\n if (kept !== null && VISITOR.test(kept)) return kept;\n const made = newVisitor();\n localStorage.setItem(VISITOR_KEY, made);\n return made;\n } catch {\n return newVisitor();\n }\n}\n\n/** A credential that never changes: the same headers and the same query, nothing to renew. */\nconst fixed = (\n who: Speaker,\n credentials: RequestCredentials,\n headers: Record<string, string>,\n query: Record<string, string>,\n): Signer => ({\n who,\n credentials,\n sign: () => Promise.resolve({ headers, renew: null }),\n query: () => Promise.resolve(query),\n});\n\n/**\n * A token asked of the host's backend: when first needed, then kept. A refusal lets it go, once\n * however many requests were refused with it, so the next request asks for another; one that\n * could not be had is asked for again next time.\n */\nfunction fetched(getToken: () => Promise<string>): Signer {\n let current: Promise<string> | null = null;\n const latest = (): Promise<string> => {\n if (current !== null) return current;\n const asked = Promise.resolve().then(getToken);\n current = asked;\n asked.catch(() => {\n if (current === asked) current = null;\n });\n return asked;\n };\n return {\n who: \"person\",\n credentials: \"omit\",\n sign: async () => {\n const used = latest();\n const token = await used;\n return {\n headers: { Authorization: `Bearer ${token}` },\n renew: () => {\n if (current === used) current = null;\n },\n };\n },\n query: async (fresh) => {\n if (fresh) current = null;\n return { token: await latest() };\n },\n };\n}\n\n/**\n * How a client signs in with what it was given. The API's public prefix reads the header (the\n * socket, its query) and never a cookie, so only our own app sends the browser's.\n */\nexport function signerOf(given: Credentials): Signer {\n if (given.credentials === \"cookie\") return fixed(\"business\", \"same-origin\", {}, {});\n if (typeof given.token === \"string\") {\n const { token } = given;\n return fixed(\"person\", \"omit\", { Authorization: `Bearer ${token}` }, { token });\n }\n if (typeof given.getToken === \"function\") return fetched(given.getToken);\n if (typeof given.publishableKey === \"string\") {\n const key = given.publishableKey;\n const visitor = given.visitorId ?? keptVisitor();\n return fixed(\n \"person\",\n \"omit\",\n { Authorization: `Bearer ${key}`, \"SignalCore-Visitor\": visitor },\n { token: key, visitor },\n );\n }\n throw new TypeError(\n 'createClient takes one way to sign in: credentials: \"cookie\", token, getToken or publishableKey',\n );\n}\n"],"mappings":";;AAwDA,MAAa,cAAc;;AAG3B,MAAM,UAAU;;AAGhB,SAAS,aAAqB;CAC5B,MAAM,QAAQ,OAAO,gCAAgB,IAAI,WAAW,EAAE,CAAC;CACvD,OAAO,MAAM,KAAK,QAAQ,SAAS,KAAK,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;AAChF;;;;;;AAOA,SAAgB,cAAsB;CACpC,IAAI;EACF,MAAM,OAAO,aAAa,QAAQ,WAAW;EAC7C,IAAI,SAAS,QAAQ,QAAQ,KAAK,IAAI,GAAG,OAAO;EAChD,MAAM,OAAO,WAAW;EACxB,aAAa,QAAQ,aAAa,IAAI;EACtC,OAAO;CACT,QAAQ;EACN,OAAO,WAAW;CACpB;AACF;;AAGA,MAAM,SACJ,KACA,aACA,SACA,WACY;CACZ;CACA;CACA,YAAY,QAAQ,QAAQ;EAAE;EAAS,OAAO;CAAK,CAAC;CACpD,aAAa,QAAQ,QAAQ,KAAK;AACpC;;;;;;AAOA,SAAS,QAAQ,UAAyC;CACxD,IAAI,UAAkC;CACtC,MAAM,eAAgC;EACpC,IAAI,YAAY,MAAM,OAAO;EAC7B,MAAM,QAAQ,QAAQ,QAAQ,CAAC,CAAC,KAAK,QAAQ;EAC7C,UAAU;EACV,MAAM,YAAY;GAChB,IAAI,YAAY,OAAO,UAAU;EACnC,CAAC;EACD,OAAO;CACT;CACA,OAAO;EACL,KAAK;EACL,aAAa;EACb,MAAM,YAAY;GAChB,MAAM,OAAO,OAAO;GAEpB,OAAO;IACL,SAAS,EAAE,eAAe,UAAU,MAFlB,OAE0B;IAC5C,aAAa;KACX,IAAI,YAAY,MAAM,UAAU;IAClC;GACF;EACF;EACA,OAAO,OAAO,UAAU;GACtB,IAAI,OAAO,UAAU;GACrB,OAAO,EAAE,OAAO,MAAM,OAAO,EAAE;EACjC;CACF;AACF;;;;;AAMA,SAAgB,SAAS,OAA4B;CACnD,IAAI,MAAM,gBAAgB,UAAU,OAAO,MAAM,YAAY,eAAe,CAAC,GAAG,CAAC,CAAC;CAClF,IAAI,OAAO,MAAM,UAAU,UAAU;EACnC,MAAM,EAAE,UAAU;EAClB,OAAO,MAAM,UAAU,QAAQ,EAAE,eAAe,UAAU,QAAQ,GAAG,EAAE,MAAM,CAAC;CAChF;CACA,IAAI,OAAO,MAAM,aAAa,YAAY,OAAO,QAAQ,MAAM,QAAQ;CACvE,IAAI,OAAO,MAAM,mBAAmB,UAAU;EAC5C,MAAM,MAAM,MAAM;EAClB,MAAM,UAAU,MAAM,aAAa,YAAY;EAC/C,OAAO,MACL,UACA,QACA;GAAE,eAAe,UAAU;GAAO,sBAAsB;EAAQ,GAChE;GAAE,OAAO;GAAK;EAAQ,CACxB;CACF;CACA,MAAM,IAAI,UACR,mGACF;AACF"}
|
package/dist/dev.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/dev.ts
|
|
2
|
+
function development() {
|
|
3
|
+
try {
|
|
4
|
+
return process.env.NODE_ENV !== "production";
|
|
5
|
+
} catch {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
const DEV = development();
|
|
10
|
+
/** A note for the developer of the page, in development only: what the package let pass, and why. */
|
|
11
|
+
function note(...said) {
|
|
12
|
+
if (DEV) console.debug("[signalcore]", ...said);
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { DEV, note };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=dev.js.map
|
package/dist/dev.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","names":[],"sources":["../src/dev.ts"],"sourcesContent":["/**\n * Whether the page runs a development build, as React tells it: a host's bundler writes in\n * `process.env.NODE_ENV`; a page without one has no `process`, and counts as production.\n */\ndeclare const process: { env: { NODE_ENV?: string } };\n\nfunction development(): boolean {\n try {\n return process.env.NODE_ENV !== \"production\";\n } catch {\n return false;\n }\n}\n\nexport const DEV = development();\n\n/** A note for the developer of the page, in development only: what the package let pass, and why. */\nexport function note(...said: unknown[]): void {\n if (DEV) console.debug(\"[signalcore]\", ...said);\n}\n"],"mappings":";AAMA,SAAS,cAAuB;CAC9B,IAAI;EACF,OAAA,QAAA,IAAA,aAAgC;CAClC,QAAQ;EACN,OAAO;CACT;AACF;AAEA,MAAa,MAAM,YAAY;;AAG/B,SAAgB,KAAK,GAAG,MAAuB;CAC7C,IAAI,KAAK,QAAQ,MAAM,gBAAgB,GAAG,IAAI;AAChD"}
|
package/dist/es.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AutomationMessages } from "./automation/messages.js";
|
|
2
|
+
import { KitMessages } from "./kit/messages.js";
|
|
3
|
+
import { TaskMessages } from "./AgentTasks.js";
|
|
4
|
+
import { BrowserMessages } from "./BrowserView.js";
|
|
5
|
+
import { ChatMessages } from "./AgentChat.js";
|
|
6
|
+
import { VoiceCallMessages } from "./VoiceCall.js";
|
|
7
|
+
import { SpaceMessages } from "./AgentSpace.js";
|
|
8
|
+
//#region src/es.d.ts
|
|
9
|
+
export declare const AUTOMATION_MESSAGES_ES: AutomationMessages;
|
|
10
|
+
export declare const KIT_MESSAGES_ES: KitMessages;
|
|
11
|
+
export declare const BROWSER_MESSAGES_ES: BrowserMessages;
|
|
12
|
+
export declare const CHAT_MESSAGES_ES: ChatMessages;
|
|
13
|
+
export declare const VOICE_CALL_MESSAGES_ES: VoiceCallMessages;
|
|
14
|
+
export declare const TASK_MESSAGES_ES: TaskMessages;
|
|
15
|
+
export declare const SPACE_MESSAGES_ES: SpaceMessages;
|
|
16
|
+
//#endregion
|
|
17
|
+
//# sourceMappingURL=es.d.ts.map
|
package/dist/es.js
ADDED
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
//#region src/es.ts
|
|
2
|
+
/** The article before a time: "la 1:00", "las 8:00". */
|
|
3
|
+
const at = (time) => `a ${time.startsWith("1:") ? "la" : "las"} ${time}`;
|
|
4
|
+
const list = (items) => new Intl.ListFormat("es").format(items);
|
|
5
|
+
/** A weekday as the plural says it: "los lunes", "los sábados". */
|
|
6
|
+
const days = (name) => name.endsWith("s") ? name : `${name}s`;
|
|
7
|
+
const capital = (text) => text.charAt(0).toUpperCase() + text.slice(1);
|
|
8
|
+
/** A day said after "próxima": "hoy", "mañana", "el lunes", "el 3 nov". */
|
|
9
|
+
function nextDay(day) {
|
|
10
|
+
switch (day.kind) {
|
|
11
|
+
case "today": return "hoy";
|
|
12
|
+
case "tomorrow": return "mañana";
|
|
13
|
+
case "yesterday": return "";
|
|
14
|
+
default: return `el ${day.name}`;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/** A message sent on a channel, by the channel's kind: "un WhatsApp", "un SMS". */
|
|
18
|
+
const SENT = {
|
|
19
|
+
whatsapp: "un WhatsApp",
|
|
20
|
+
instagram: "un mensaje de Instagram",
|
|
21
|
+
sms: "un SMS"
|
|
22
|
+
};
|
|
23
|
+
/** What an automation's tool call did, by what the tool's name says, done or (a test) not. */
|
|
24
|
+
const TOOL = {
|
|
25
|
+
search: [(app) => `Buscó en ${app}`, (app) => `Buscó en ${app}`],
|
|
26
|
+
send: [(app) => `Envió por ${app}`, (app) => `Habría enviado por ${app}`],
|
|
27
|
+
create: [(app) => `Creó en ${app}`, (app) => `Habría creado en ${app}`],
|
|
28
|
+
update: [(app) => `Cambió en ${app}`, (app) => `Habría cambiado en ${app}`],
|
|
29
|
+
remove: [(app) => `Borró en ${app}`, (app) => `Habría borrado en ${app}`],
|
|
30
|
+
use: [(app) => `Usó ${app}`, (app) => `Habría usado ${app}`]
|
|
31
|
+
};
|
|
32
|
+
const AUTOMATION_MESSAGES_ES = {
|
|
33
|
+
daily: "Cada día",
|
|
34
|
+
weekdays: "Cada día laborable",
|
|
35
|
+
weekends: "Los fines de semana",
|
|
36
|
+
weekly: (names) => names.length === 1 ? `Cada ${names[0] ?? ""}` : `Los ${list(names.map(days))}`,
|
|
37
|
+
monthly: (numbers) => numbers.length === 1 ? `El día ${numbers[0] ?? ""} de cada mes` : `Los días ${list(numbers.map(String))} de cada mes`,
|
|
38
|
+
at: (times) => list(times.map(at)),
|
|
39
|
+
every: (count, unit) => unit === "minute" ? count === 1 ? "Cada minuto" : `Cada ${count} minutos` : count === 1 ? "Cada hora" : `Cada ${count} horas`,
|
|
40
|
+
between: (from, to) => `de ${from} a ${to}`,
|
|
41
|
+
on: (often, when) => `${often}, ${when.charAt(0).toLowerCase()}${when.slice(1)}`,
|
|
42
|
+
custom: "Con un horario propio",
|
|
43
|
+
webhook: "Cuando otro sistema la llama",
|
|
44
|
+
event: (app, event) => event ? `Cuando pasa «${event}» en ${app ?? "una app"}` : `Cuando pasa algo en ${app ?? "una app"}`,
|
|
45
|
+
next: (day, time) => [
|
|
46
|
+
"próxima",
|
|
47
|
+
nextDay(day),
|
|
48
|
+
time === null ? "" : at(time)
|
|
49
|
+
].filter(Boolean).join(" "),
|
|
50
|
+
states: {
|
|
51
|
+
active: "Activa",
|
|
52
|
+
paused: "En pausa",
|
|
53
|
+
failing: "Falló la última"
|
|
54
|
+
},
|
|
55
|
+
switchLabel: "Activa",
|
|
56
|
+
steps: "Pasos",
|
|
57
|
+
runs: "Ejecuciones",
|
|
58
|
+
noRuns: "Aún no se ha ejecutado.",
|
|
59
|
+
uses: {
|
|
60
|
+
ai: "IA",
|
|
61
|
+
agent: "Agente",
|
|
62
|
+
notify: "Aviso",
|
|
63
|
+
send: "Mensaje",
|
|
64
|
+
data: "Tabla",
|
|
65
|
+
http: "Web"
|
|
66
|
+
},
|
|
67
|
+
more: (count) => `+${count}`,
|
|
68
|
+
gone: "Esta automatización ya no existe.",
|
|
69
|
+
moment: (day, time) => {
|
|
70
|
+
switch (day.kind) {
|
|
71
|
+
case "today": return `Hoy ${time}`;
|
|
72
|
+
case "yesterday": return `Ayer ${time}`;
|
|
73
|
+
case "tomorrow": return `Mañana ${time}`;
|
|
74
|
+
default: return `${capital(day.name)} ${time}`;
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
by: (by, app) => ({
|
|
78
|
+
schedule: "horario",
|
|
79
|
+
webhook: "webhook",
|
|
80
|
+
event: app ? `evento de ${app}` : "evento",
|
|
81
|
+
agent: "se lo pidieron en el chat",
|
|
82
|
+
test: "prueba"
|
|
83
|
+
})[by],
|
|
84
|
+
statuses: {
|
|
85
|
+
running: "En curso",
|
|
86
|
+
waiting: "Esperando",
|
|
87
|
+
done: "Hecha",
|
|
88
|
+
failed: "Falló",
|
|
89
|
+
skipped: "Omitida"
|
|
90
|
+
},
|
|
91
|
+
dry: (summary) => `Prueba: ${summary}`,
|
|
92
|
+
took: (ms) => {
|
|
93
|
+
if (ms < 1e3) return "menos de 1 s";
|
|
94
|
+
const seconds = Math.round(ms / 1e3);
|
|
95
|
+
return seconds < 60 ? `${seconds} s` : `${Math.floor(seconds / 60)} min ${seconds % 60} s`;
|
|
96
|
+
},
|
|
97
|
+
opened: "Conversaciones que abrió",
|
|
98
|
+
conversation: (index) => `Conversación ${index}`,
|
|
99
|
+
askedIn: "La conversación donde se lo pidieron",
|
|
100
|
+
noCalls: "No llegó a hacer nada.",
|
|
101
|
+
outside: "Fuera de los pasos",
|
|
102
|
+
times: (count) => `×${count}`,
|
|
103
|
+
calls: {
|
|
104
|
+
tool: (verb, app, would) => TOOL[verb][would ? 1 : 0](app),
|
|
105
|
+
ai: "Usó la IA",
|
|
106
|
+
notify: (would) => would ? "Habría avisado en la bandeja" : "Avisó en la bandeja",
|
|
107
|
+
send: (channel, to, would) => {
|
|
108
|
+
const sent = `${SENT[channel ?? ""] ?? "un mensaje"} a ${to || "un contacto"}`;
|
|
109
|
+
return would ? `Habría enviado ${sent}` : `Envió ${sent}`;
|
|
110
|
+
},
|
|
111
|
+
start: (would) => would ? "Habría abierto una conversación" : "Abrió una conversación",
|
|
112
|
+
find: (table) => `Consultó ${table}`,
|
|
113
|
+
add: (table, would) => would ? `Habría añadido una fila a ${table}` : `Añadió una fila a ${table}`,
|
|
114
|
+
change: (table, would) => would ? `Habría cambiado una fila de ${table}` : `Cambió una fila de ${table}`,
|
|
115
|
+
http: (host, would) => would ? `Habría llamado a ${host}` : `Llamó a ${host}`,
|
|
116
|
+
files: "Buscó en los archivos",
|
|
117
|
+
read: (file) => `Leyó ${file}`,
|
|
118
|
+
wrote: (file, would) => would ? `Habría guardado ${file}` : `Guardó ${file}`,
|
|
119
|
+
listed: "Miró sus archivos",
|
|
120
|
+
remember: (would) => would ? "Habría guardado un recuerdo" : "Guardó un recuerdo",
|
|
121
|
+
recall: "Buscó en lo aprendido"
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
const FAMILIES = {
|
|
125
|
+
image: "imágenes",
|
|
126
|
+
video: "vídeos",
|
|
127
|
+
audio: "audios",
|
|
128
|
+
text: "textos"
|
|
129
|
+
};
|
|
130
|
+
const KIT_MESSAGES_ES = {
|
|
131
|
+
required: "Este campo es obligatorio",
|
|
132
|
+
chooseDate: "Elige un día",
|
|
133
|
+
chooseTime: "Elige una hora",
|
|
134
|
+
chooseMoment: "Elige día y hora",
|
|
135
|
+
chooseOption: "Elige una opción",
|
|
136
|
+
other: "Otra respuesta",
|
|
137
|
+
otherPlaceholder: "Escribe tu respuesta",
|
|
138
|
+
chooseRating: "Elige una puntuación",
|
|
139
|
+
check: "Marca la casilla para seguir",
|
|
140
|
+
invalidEmail: "Correo no válido",
|
|
141
|
+
invalidPhone: "Teléfono no válido",
|
|
142
|
+
invalidUrl: "Dirección no válida",
|
|
143
|
+
invalidNumber: "Escribe un número",
|
|
144
|
+
invalidTime: "Escribe la hora así: 9:30",
|
|
145
|
+
atLeast: (min) => `Como mínimo ${min}`,
|
|
146
|
+
atMost: (max) => `Como máximo ${max}`,
|
|
147
|
+
unavailableDate: "Ese día no está disponible",
|
|
148
|
+
unavailableTime: "Esa hora no está disponible",
|
|
149
|
+
optional: "Opcional",
|
|
150
|
+
pick: "Elige…",
|
|
151
|
+
search: "Buscar…",
|
|
152
|
+
noResults: "Sin resultados",
|
|
153
|
+
show: "Mostrar",
|
|
154
|
+
hide: "Ocultar",
|
|
155
|
+
increase: "Sumar",
|
|
156
|
+
decrease: "Restar",
|
|
157
|
+
remove: (label) => `Quitar ${label}`,
|
|
158
|
+
yes: "Sí",
|
|
159
|
+
no: "No",
|
|
160
|
+
rated: (value, max) => `${value} de ${max}`,
|
|
161
|
+
stars: (count) => count === 1 ? "1 estrella" : `${count} estrellas`,
|
|
162
|
+
send: "Enviar",
|
|
163
|
+
sent: "Enviado",
|
|
164
|
+
chooseFile: "Falta el archivo",
|
|
165
|
+
upload: (multiple) => multiple ? "Sube archivos" : "Sube un archivo",
|
|
166
|
+
drop: "Suelta aquí o elige",
|
|
167
|
+
limits: (kinds, size) => kinds ? `${kinds}, hasta ${size}` : `Hasta ${size}`,
|
|
168
|
+
anyOf: (family) => FAMILIES[family] ?? family,
|
|
169
|
+
uploading: "Subiendo",
|
|
170
|
+
tooBig: (size) => `Pasa de ${size}`,
|
|
171
|
+
wrongType: "Aquí no vale este tipo de archivo",
|
|
172
|
+
tooMany: (max) => `Como máximo ${max} archivos`,
|
|
173
|
+
uploadFailed: "No se ha podido subir",
|
|
174
|
+
retry: "Reintentar",
|
|
175
|
+
stillUploading: "Espera a que termine de subir",
|
|
176
|
+
fixFiles: "Quita o reintenta los archivos con error",
|
|
177
|
+
open: (name) => `Abrir ${name}`,
|
|
178
|
+
file: "Archivo",
|
|
179
|
+
play: "Reproducir",
|
|
180
|
+
pause: "Pausar",
|
|
181
|
+
position: "Posición",
|
|
182
|
+
automation: AUTOMATION_MESSAGES_ES
|
|
183
|
+
};
|
|
184
|
+
const BROWSER_MESSAGES_ES = {
|
|
185
|
+
agent: (name) => `Lo controla ${name}`,
|
|
186
|
+
agentMine: (name) => `${name}, en tu Chrome`,
|
|
187
|
+
person: "Lo controlas tú",
|
|
188
|
+
take: "Tomar el control",
|
|
189
|
+
giveBack: "Devolver",
|
|
190
|
+
handedOver: (name) => `${name} te pasa el navegador`,
|
|
191
|
+
done: "Listo, sigue",
|
|
192
|
+
closed: "El navegador se cerró mientras te esperaba.",
|
|
193
|
+
close: "Cerrar el navegador",
|
|
194
|
+
expand: "Ampliar",
|
|
195
|
+
shrink: "Reducir",
|
|
196
|
+
blank: "Página en blanco",
|
|
197
|
+
screen: (where) => `Navegador: ${where}`
|
|
198
|
+
};
|
|
199
|
+
const CHAT_MESSAGES_ES = {
|
|
200
|
+
placeholder: (name) => `Escribe a ${name}…`,
|
|
201
|
+
connecting: "Conectando…",
|
|
202
|
+
awaiting: "Responde arriba para seguir…",
|
|
203
|
+
thinking: (name) => `${name} está pensando`,
|
|
204
|
+
typing: "Escribiendo",
|
|
205
|
+
working: "Trabajando",
|
|
206
|
+
writing: "Escribiendo",
|
|
207
|
+
elapsed: (seconds) => `${seconds} s`,
|
|
208
|
+
escape: "esc para detener",
|
|
209
|
+
done: (seconds) => `Listo en ${seconds < 60 ? `${seconds} s` : `${Math.floor(seconds / 60)} min ${seconds % 60} s`}`,
|
|
210
|
+
empty: (name) => `Habla con ${name}`,
|
|
211
|
+
intro: () => "",
|
|
212
|
+
send: "Enviar",
|
|
213
|
+
attach: "Adjuntar archivos",
|
|
214
|
+
drop: "Suelta para adjuntar",
|
|
215
|
+
dictate: "Dictar",
|
|
216
|
+
dictateStop: "Parar y escribirlo",
|
|
217
|
+
dictation: {
|
|
218
|
+
listening: "Escuchando…",
|
|
219
|
+
writing: "Escribiéndolo…",
|
|
220
|
+
failed: "No te he oído: permite el micrófono e inténtalo otra vez"
|
|
221
|
+
},
|
|
222
|
+
stop: "Detener",
|
|
223
|
+
log: "Conversación",
|
|
224
|
+
steps: {
|
|
225
|
+
show: "Muestra",
|
|
226
|
+
ask_person: "Pregunta",
|
|
227
|
+
search_files: "Busca en archivos",
|
|
228
|
+
read_file: "Lee un archivo",
|
|
229
|
+
keep_file: "Guarda un archivo",
|
|
230
|
+
remember: "Recuerda",
|
|
231
|
+
recall: "Busca en lo aprendido",
|
|
232
|
+
escalate: "Pasa a una persona",
|
|
233
|
+
notify: "Avisa",
|
|
234
|
+
data_find: "Consulta una tabla",
|
|
235
|
+
data_add: "Añade una fila",
|
|
236
|
+
data_update: "Cambia una fila",
|
|
237
|
+
browser_open: "Abre una página",
|
|
238
|
+
browser_read: "Lee la página",
|
|
239
|
+
browser_click: "Hace clic",
|
|
240
|
+
browser_fill: "Rellena un campo",
|
|
241
|
+
browser_scroll: "Desplaza la página",
|
|
242
|
+
browser_back: "Vuelve atrás",
|
|
243
|
+
browser_submit: "Envía en la web",
|
|
244
|
+
browser_hand_over: "Te pasa el navegador",
|
|
245
|
+
browser_attach: "Sube un archivo a la web",
|
|
246
|
+
browser_download: "Guarda un archivo de la web",
|
|
247
|
+
browser_screenshot: "Hace una captura de la web",
|
|
248
|
+
browser_record: "Graba la web en vídeo",
|
|
249
|
+
browser_fill_key: "Escribe una clave en la web",
|
|
250
|
+
ask_builder: "Se lo pide al builder",
|
|
251
|
+
send_message: "Envía un mensaje",
|
|
252
|
+
voice_note: "Manda una nota de voz",
|
|
253
|
+
ai: "Usa la IA",
|
|
254
|
+
call: "Llama"
|
|
255
|
+
},
|
|
256
|
+
failed: "falló",
|
|
257
|
+
approval: "Necesita tu aprobación",
|
|
258
|
+
request: (name, action) => `${name} quiere hacer «${action}»`,
|
|
259
|
+
inputs: {},
|
|
260
|
+
allow: "Aprobar",
|
|
261
|
+
decline: "Rechazar",
|
|
262
|
+
confirming: "Esperando la confirmación del negocio",
|
|
263
|
+
handedOff: "Pasada a una persona",
|
|
264
|
+
handover: (holder, by, name) => {
|
|
265
|
+
const automation = by.kind === "automation" ? ` por «${by.title}»` : "";
|
|
266
|
+
switch (holder) {
|
|
267
|
+
case "agent":
|
|
268
|
+
if (by.kind === "owner") return `Devolviste la conversación a ${name}`;
|
|
269
|
+
return `Se devolvió a ${name}${automation}`;
|
|
270
|
+
case "person":
|
|
271
|
+
if (by.kind === "owner") return `Pausaste a ${name}`;
|
|
272
|
+
if (by.kind === "agent") return `${name} la pasó a una persona`;
|
|
273
|
+
return `Pasó a una persona${automation}`;
|
|
274
|
+
case "nobody": return `Ignorada${automation}`;
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
skipped: "No respondió",
|
|
278
|
+
cut: (heard) => heard === "" ? "Interrumpida antes de que se oyera nada" : `Interrumpida tras «${heard}»`,
|
|
279
|
+
write: "Responde como el negocio…",
|
|
280
|
+
business: "Tú",
|
|
281
|
+
voiceNote: "Nota de voz",
|
|
282
|
+
delivery: {
|
|
283
|
+
queued: "Esperando para salir",
|
|
284
|
+
sent: "Enviado",
|
|
285
|
+
delivered: "Entregado",
|
|
286
|
+
read: "Leído",
|
|
287
|
+
failed: "No entregado"
|
|
288
|
+
},
|
|
289
|
+
undelivered: (error) => error ? `No entregado: ${error}` : "No entregado",
|
|
290
|
+
noTool: "Esta página no puede hacer eso",
|
|
291
|
+
kit: KIT_MESSAGES_ES,
|
|
292
|
+
browser: BROWSER_MESSAGES_ES
|
|
293
|
+
};
|
|
294
|
+
const VOICE_CALL_MESSAGES_ES = {
|
|
295
|
+
call: (name) => `Llamada con ${name}`,
|
|
296
|
+
states: {
|
|
297
|
+
connecting: "Conectando…",
|
|
298
|
+
listening: "Escuchando",
|
|
299
|
+
thinking: "Pensando",
|
|
300
|
+
speaking: "Hablando",
|
|
301
|
+
reconnecting: "Reconectando…",
|
|
302
|
+
ended: "Llamada terminada"
|
|
303
|
+
},
|
|
304
|
+
calling: (name) => `Llamando a ${name}`,
|
|
305
|
+
ended: {
|
|
306
|
+
person: () => "Has colgado",
|
|
307
|
+
agent: (name) => `${name} ha colgado`,
|
|
308
|
+
limit: () => "Se alcanzó la duración máxima",
|
|
309
|
+
dropped: () => "Se cortó la llamada"
|
|
310
|
+
},
|
|
311
|
+
problems: {
|
|
312
|
+
denied: {
|
|
313
|
+
title: () => "Sin permiso para el micrófono",
|
|
314
|
+
help: "Permite el micrófono a esta página (en el icono junto a la dirección) y vuelve a llamar."
|
|
315
|
+
},
|
|
316
|
+
nomic: {
|
|
317
|
+
title: () => "No hay ningún micrófono",
|
|
318
|
+
help: "Conecta uno, o elige otro en los ajustes de sonido del sistema, y vuelve a llamar."
|
|
319
|
+
},
|
|
320
|
+
inuse: {
|
|
321
|
+
title: () => "El micrófono está ocupado",
|
|
322
|
+
help: "Otra aplicación lo está usando. Ciérrala y vuelve a llamar."
|
|
323
|
+
},
|
|
324
|
+
unsupported: {
|
|
325
|
+
title: () => "Este navegador no puede llamar",
|
|
326
|
+
help: "Abre la página por https en un Chrome, Edge, Safari o Firefox actual."
|
|
327
|
+
},
|
|
328
|
+
off: {
|
|
329
|
+
title: () => "Las llamadas no están activadas",
|
|
330
|
+
help: "Este servicio aún no atiende llamadas. Escríbele mientras tanto."
|
|
331
|
+
},
|
|
332
|
+
builder: {
|
|
333
|
+
title: (name) => `${name} no atiende llamadas`,
|
|
334
|
+
help: "Escríbele en el chat."
|
|
335
|
+
},
|
|
336
|
+
refused: {
|
|
337
|
+
title: (name) => `${name} no puede atender la llamada`,
|
|
338
|
+
help: "Inténtalo de nuevo en un momento."
|
|
339
|
+
},
|
|
340
|
+
failed: {
|
|
341
|
+
title: (name) => `No se ha podido llamar a ${name}`,
|
|
342
|
+
help: "Comprueba tu conexión y vuelve a intentarlo."
|
|
343
|
+
},
|
|
344
|
+
unanswered: {
|
|
345
|
+
title: (name) => `${name} no contesta`,
|
|
346
|
+
help: "Ahora mismo no atiende llamadas. Inténtalo de nuevo en un momento."
|
|
347
|
+
}
|
|
348
|
+
},
|
|
349
|
+
mute: "Silenciar",
|
|
350
|
+
hangUp: "Colgar",
|
|
351
|
+
keys: "Espacio silencia y activa el micrófono",
|
|
352
|
+
muted: "Tu micrófono está silenciado",
|
|
353
|
+
hear: (name) => `Oír a ${name}`
|
|
354
|
+
};
|
|
355
|
+
const TASK_MESSAGES_ES = {
|
|
356
|
+
open: (count) => count === 1 ? "Tienes 1 tarea programada" : `Tienes ${count} tareas programadas`,
|
|
357
|
+
title: "Tus tareas",
|
|
358
|
+
back: "Volver a la conversación",
|
|
359
|
+
remove: "Quitar",
|
|
360
|
+
empty: "No hay nada programado. Pídele que te recuerde algo, o que te escriba más adelante.",
|
|
361
|
+
failed: "No se ha podido cambiar. Inténtalo de nuevo."
|
|
362
|
+
};
|
|
363
|
+
const SPACE_MESSAGES_ES = {
|
|
364
|
+
modes: {
|
|
365
|
+
label: "Modo",
|
|
366
|
+
text: "Texto",
|
|
367
|
+
voice: "Voz"
|
|
368
|
+
},
|
|
369
|
+
again: "Volver a llamar",
|
|
370
|
+
close: "Cerrar",
|
|
371
|
+
agent: "Agente",
|
|
372
|
+
opening: "Abriendo la conversación…",
|
|
373
|
+
failed: "No se ha podido abrir la conversación.",
|
|
374
|
+
retry: "Reintentar",
|
|
375
|
+
chat: CHAT_MESSAGES_ES,
|
|
376
|
+
voice: VOICE_CALL_MESSAGES_ES,
|
|
377
|
+
tasks: TASK_MESSAGES_ES
|
|
378
|
+
};
|
|
379
|
+
//#endregion
|
|
380
|
+
export { AUTOMATION_MESSAGES_ES, BROWSER_MESSAGES_ES, CHAT_MESSAGES_ES, KIT_MESSAGES_ES, SPACE_MESSAGES_ES, TASK_MESSAGES_ES, VOICE_CALL_MESSAGES_ES };
|
|
381
|
+
|
|
382
|
+
//# sourceMappingURL=es.js.map
|
package/dist/es.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.js","names":[],"sources":["../src/es.ts"],"sourcesContent":["/**\n * The package's words in Spanish, for the people an agent serves: the chat, the browser it drives,\n * the kit's controls (with an automation's and its runs'), a call and the agent's space. English\n * is every component's default; a host in Spanish passes these as `messages`, the calendar's\n * language as `locale` (`import { es } from \"@signalcore/ui/locale\"`).\n */\nimport type { ChatMessages } from \"./AgentChat\";\nimport type { SpaceMessages } from \"./AgentSpace\";\nimport type { TaskMessages } from \"./AgentTasks\";\nimport type { AutomationMessages, DayRef } from \"./automation/messages\";\nimport type { BrowserMessages } from \"./BrowserView\";\nimport type { KitMessages } from \"./kit/messages\";\nimport type { VoiceCallMessages } from \"./VoiceCall\";\n\n/** The article before a time: \"la 1:00\", \"las 8:00\". */\nconst at = (time: string): string => `a ${time.startsWith(\"1:\") ? \"la\" : \"las\"} ${time}`;\n\nconst list = (items: readonly string[]): string => new Intl.ListFormat(\"es\").format(items);\n\n/** A weekday as the plural says it: \"los lunes\", \"los sábados\". */\nconst days = (name: string): string => (name.endsWith(\"s\") ? name : `${name}s`);\n\nconst capital = (text: string): string => text.charAt(0).toUpperCase() + text.slice(1);\n\n/** A day said after \"próxima\": \"hoy\", \"mañana\", \"el lunes\", \"el 3 nov\". */\nfunction nextDay(day: DayRef): string {\n switch (day.kind) {\n case \"today\":\n return \"hoy\";\n case \"tomorrow\":\n return \"mañana\";\n case \"yesterday\":\n return \"\";\n default:\n return `el ${day.name}`;\n }\n}\n\n/** A message sent on a channel, by the channel's kind: \"un WhatsApp\", \"un SMS\". */\nconst SENT: Readonly<Record<string, string>> = {\n whatsapp: \"un WhatsApp\",\n instagram: \"un mensaje de Instagram\",\n sms: \"un SMS\",\n};\n\n/** What an automation's tool call did, by what the tool's name says, done or (a test) not. */\nconst TOOL = {\n search: [(app: string) => `Buscó en ${app}`, (app: string) => `Buscó en ${app}`],\n send: [(app: string) => `Envió por ${app}`, (app: string) => `Habría enviado por ${app}`],\n create: [(app: string) => `Creó en ${app}`, (app: string) => `Habría creado en ${app}`],\n update: [(app: string) => `Cambió en ${app}`, (app: string) => `Habría cambiado en ${app}`],\n remove: [(app: string) => `Borró en ${app}`, (app: string) => `Habría borrado en ${app}`],\n use: [(app: string) => `Usó ${app}`, (app: string) => `Habría usado ${app}`],\n} as const;\n\nexport const AUTOMATION_MESSAGES_ES: AutomationMessages = {\n daily: \"Cada día\",\n weekdays: \"Cada día laborable\",\n weekends: \"Los fines de semana\",\n weekly: (names) =>\n names.length === 1 ? `Cada ${names[0] ?? \"\"}` : `Los ${list(names.map(days))}`,\n monthly: (numbers) =>\n numbers.length === 1\n ? `El día ${numbers[0] ?? \"\"} de cada mes`\n : `Los días ${list(numbers.map(String))} de cada mes`,\n at: (times) => list(times.map(at)),\n every: (count, unit) =>\n unit === \"minute\"\n ? count === 1\n ? \"Cada minuto\"\n : `Cada ${count} minutos`\n : count === 1\n ? \"Cada hora\"\n : `Cada ${count} horas`,\n between: (from, to) => `de ${from} a ${to}`,\n on: (often, when) => `${often}, ${when.charAt(0).toLowerCase()}${when.slice(1)}`,\n custom: \"Con un horario propio\",\n webhook: \"Cuando otro sistema la llama\",\n event: (app, event) =>\n event\n ? `Cuando pasa «${event}» en ${app ?? \"una app\"}`\n : `Cuando pasa algo en ${app ?? \"una app\"}`,\n next: (day, time) =>\n [\"próxima\", nextDay(day), time === null ? \"\" : at(time)].filter(Boolean).join(\" \"),\n states: { active: \"Activa\", paused: \"En pausa\", failing: \"Falló la última\" },\n switchLabel: \"Activa\",\n steps: \"Pasos\",\n runs: \"Ejecuciones\",\n noRuns: \"Aún no se ha ejecutado.\",\n uses: {\n ai: \"IA\",\n agent: \"Agente\",\n notify: \"Aviso\",\n send: \"Mensaje\",\n data: \"Tabla\",\n http: \"Web\",\n },\n more: (count) => `+${count}`,\n gone: \"Esta automatización ya no existe.\",\n moment: (day, time) => {\n switch (day.kind) {\n case \"today\":\n return `Hoy ${time}`;\n case \"yesterday\":\n return `Ayer ${time}`;\n case \"tomorrow\":\n return `Mañana ${time}`;\n default:\n return `${capital(day.name)} ${time}`;\n }\n },\n by: (by, app) =>\n ({\n schedule: \"horario\",\n webhook: \"webhook\",\n event: app ? `evento de ${app}` : \"evento\",\n agent: \"se lo pidieron en el chat\",\n test: \"prueba\",\n })[by],\n statuses: {\n running: \"En curso\",\n waiting: \"Esperando\",\n done: \"Hecha\",\n failed: \"Falló\",\n skipped: \"Omitida\",\n },\n dry: (summary) => `Prueba: ${summary}`,\n took: (ms) => {\n if (ms < 1000) return \"menos de 1 s\";\n const seconds = Math.round(ms / 1000);\n return seconds < 60 ? `${seconds} s` : `${Math.floor(seconds / 60)} min ${seconds % 60} s`;\n },\n opened: \"Conversaciones que abrió\",\n conversation: (index) => `Conversación ${index}`,\n askedIn: \"La conversación donde se lo pidieron\",\n noCalls: \"No llegó a hacer nada.\",\n outside: \"Fuera de los pasos\",\n times: (count) => `×${count}`,\n calls: {\n tool: (verb, app, would) => TOOL[verb][would ? 1 : 0](app),\n ai: \"Usó la IA\",\n notify: (would) => (would ? \"Habría avisado en la bandeja\" : \"Avisó en la bandeja\"),\n send: (channel, to, would) => {\n const sent = `${SENT[channel ?? \"\"] ?? \"un mensaje\"} a ${to || \"un contacto\"}`;\n return would ? `Habría enviado ${sent}` : `Envió ${sent}`;\n },\n start: (would) => (would ? \"Habría abierto una conversación\" : \"Abrió una conversación\"),\n find: (table) => `Consultó ${table}`,\n add: (table, would) =>\n would ? `Habría añadido una fila a ${table}` : `Añadió una fila a ${table}`,\n change: (table, would) =>\n would ? `Habría cambiado una fila de ${table}` : `Cambió una fila de ${table}`,\n http: (host, would) => (would ? `Habría llamado a ${host}` : `Llamó a ${host}`),\n files: \"Buscó en los archivos\",\n read: (file) => `Leyó ${file}`,\n wrote: (file, would) => (would ? `Habría guardado ${file}` : `Guardó ${file}`),\n listed: \"Miró sus archivos\",\n remember: (would) => (would ? \"Habría guardado un recuerdo\" : \"Guardó un recuerdo\"),\n recall: \"Buscó en lo aprendido\",\n },\n};\n\nconst FAMILIES: Readonly<Record<string, string>> = {\n image: \"imágenes\",\n video: \"vídeos\",\n audio: \"audios\",\n text: \"textos\",\n};\n\nexport const KIT_MESSAGES_ES: KitMessages = {\n required: \"Este campo es obligatorio\",\n chooseDate: \"Elige un día\",\n chooseTime: \"Elige una hora\",\n chooseMoment: \"Elige día y hora\",\n chooseOption: \"Elige una opción\",\n other: \"Otra respuesta\",\n otherPlaceholder: \"Escribe tu respuesta\",\n chooseRating: \"Elige una puntuación\",\n check: \"Marca la casilla para seguir\",\n invalidEmail: \"Correo no válido\",\n invalidPhone: \"Teléfono no válido\",\n invalidUrl: \"Dirección no válida\",\n invalidNumber: \"Escribe un número\",\n invalidTime: \"Escribe la hora así: 9:30\",\n atLeast: (min) => `Como mínimo ${min}`,\n atMost: (max) => `Como máximo ${max}`,\n unavailableDate: \"Ese día no está disponible\",\n unavailableTime: \"Esa hora no está disponible\",\n optional: \"Opcional\",\n pick: \"Elige…\",\n search: \"Buscar…\",\n noResults: \"Sin resultados\",\n show: \"Mostrar\",\n hide: \"Ocultar\",\n increase: \"Sumar\",\n decrease: \"Restar\",\n remove: (label) => `Quitar ${label}`,\n yes: \"Sí\",\n no: \"No\",\n rated: (value, max) => `${value} de ${max}`,\n stars: (count) => (count === 1 ? \"1 estrella\" : `${count} estrellas`),\n send: \"Enviar\",\n sent: \"Enviado\",\n chooseFile: \"Falta el archivo\",\n upload: (multiple) => (multiple ? \"Sube archivos\" : \"Sube un archivo\"),\n drop: \"Suelta aquí o elige\",\n limits: (kinds, size) => (kinds ? `${kinds}, hasta ${size}` : `Hasta ${size}`),\n anyOf: (family) => FAMILIES[family] ?? family,\n uploading: \"Subiendo\",\n tooBig: (size) => `Pasa de ${size}`,\n wrongType: \"Aquí no vale este tipo de archivo\",\n tooMany: (max) => `Como máximo ${max} archivos`,\n uploadFailed: \"No se ha podido subir\",\n retry: \"Reintentar\",\n stillUploading: \"Espera a que termine de subir\",\n fixFiles: \"Quita o reintenta los archivos con error\",\n open: (name) => `Abrir ${name}`,\n file: \"Archivo\",\n play: \"Reproducir\",\n pause: \"Pausar\",\n position: \"Posición\",\n automation: AUTOMATION_MESSAGES_ES,\n};\n\nexport const BROWSER_MESSAGES_ES: BrowserMessages = {\n agent: (name) => `Lo controla ${name}`,\n agentMine: (name) => `${name}, en tu Chrome`,\n person: \"Lo controlas tú\",\n take: \"Tomar el control\",\n giveBack: \"Devolver\",\n handedOver: (name) => `${name} te pasa el navegador`,\n done: \"Listo, sigue\",\n closed: \"El navegador se cerró mientras te esperaba.\",\n close: \"Cerrar el navegador\",\n expand: \"Ampliar\",\n shrink: \"Reducir\",\n blank: \"Página en blanco\",\n screen: (where) => `Navegador: ${where}`,\n};\n\nexport const CHAT_MESSAGES_ES: ChatMessages = {\n placeholder: (name) => `Escribe a ${name}…`,\n connecting: \"Conectando…\",\n awaiting: \"Responde arriba para seguir…\",\n thinking: (name) => `${name} está pensando`,\n typing: \"Escribiendo\",\n working: \"Trabajando\",\n writing: \"Escribiendo\",\n elapsed: (seconds) => `${seconds} s`,\n escape: \"esc para detener\",\n done: (seconds) =>\n `Listo en ${seconds < 60 ? `${seconds} s` : `${Math.floor(seconds / 60)} min ${seconds % 60} s`}`,\n empty: (name) => `Habla con ${name}`,\n intro: () => \"\",\n send: \"Enviar\",\n attach: \"Adjuntar archivos\",\n drop: \"Suelta para adjuntar\",\n dictate: \"Dictar\",\n dictateStop: \"Parar y escribirlo\",\n dictation: {\n listening: \"Escuchando…\",\n writing: \"Escribiéndolo…\",\n failed: \"No te he oído: permite el micrófono e inténtalo otra vez\",\n },\n stop: \"Detener\",\n log: \"Conversación\",\n steps: {\n show: \"Muestra\",\n ask_person: \"Pregunta\",\n search_files: \"Busca en archivos\",\n read_file: \"Lee un archivo\",\n keep_file: \"Guarda un archivo\",\n remember: \"Recuerda\",\n recall: \"Busca en lo aprendido\",\n escalate: \"Pasa a una persona\",\n notify: \"Avisa\",\n data_find: \"Consulta una tabla\",\n data_add: \"Añade una fila\",\n data_update: \"Cambia una fila\",\n browser_open: \"Abre una página\",\n browser_read: \"Lee la página\",\n browser_click: \"Hace clic\",\n browser_fill: \"Rellena un campo\",\n browser_scroll: \"Desplaza la página\",\n browser_back: \"Vuelve atrás\",\n browser_submit: \"Envía en la web\",\n browser_hand_over: \"Te pasa el navegador\",\n browser_attach: \"Sube un archivo a la web\",\n browser_download: \"Guarda un archivo de la web\",\n browser_screenshot: \"Hace una captura de la web\",\n browser_record: \"Graba la web en vídeo\",\n browser_fill_key: \"Escribe una clave en la web\",\n ask_builder: \"Se lo pide al builder\",\n send_message: \"Envía un mensaje\",\n voice_note: \"Manda una nota de voz\",\n ai: \"Usa la IA\",\n call: \"Llama\",\n },\n failed: \"falló\",\n approval: \"Necesita tu aprobación\",\n request: (name, action) => `${name} quiere hacer «${action}»`,\n inputs: {},\n allow: \"Aprobar\",\n decline: \"Rechazar\",\n confirming: \"Esperando la confirmación del negocio\",\n handedOff: \"Pasada a una persona\",\n handover: (holder, by, name) => {\n const automation = by.kind === \"automation\" ? ` por «${by.title}»` : \"\";\n switch (holder) {\n case \"agent\":\n if (by.kind === \"owner\") return `Devolviste la conversación a ${name}`;\n return `Se devolvió a ${name}${automation}`;\n case \"person\":\n if (by.kind === \"owner\") return `Pausaste a ${name}`;\n if (by.kind === \"agent\") return `${name} la pasó a una persona`;\n return `Pasó a una persona${automation}`;\n case \"nobody\":\n return `Ignorada${automation}`;\n }\n },\n skipped: \"No respondió\",\n cut: (heard) =>\n heard === \"\" ? \"Interrumpida antes de que se oyera nada\" : `Interrumpida tras «${heard}»`,\n write: \"Responde como el negocio…\",\n business: \"Tú\",\n voiceNote: \"Nota de voz\",\n delivery: {\n queued: \"Esperando para salir\",\n sent: \"Enviado\",\n delivered: \"Entregado\",\n read: \"Leído\",\n failed: \"No entregado\",\n },\n undelivered: (error) => (error ? `No entregado: ${error}` : \"No entregado\"),\n noTool: \"Esta página no puede hacer eso\",\n kit: KIT_MESSAGES_ES,\n browser: BROWSER_MESSAGES_ES,\n};\n\nexport const VOICE_CALL_MESSAGES_ES: VoiceCallMessages = {\n call: (name) => `Llamada con ${name}`,\n states: {\n connecting: \"Conectando…\",\n listening: \"Escuchando\",\n thinking: \"Pensando\",\n speaking: \"Hablando\",\n reconnecting: \"Reconectando…\",\n ended: \"Llamada terminada\",\n },\n calling: (name) => `Llamando a ${name}`,\n ended: {\n person: () => \"Has colgado\",\n agent: (name) => `${name} ha colgado`,\n limit: () => \"Se alcanzó la duración máxima\",\n dropped: () => \"Se cortó la llamada\",\n },\n problems: {\n denied: {\n title: () => \"Sin permiso para el micrófono\",\n help: \"Permite el micrófono a esta página (en el icono junto a la dirección) y vuelve a llamar.\",\n },\n nomic: {\n title: () => \"No hay ningún micrófono\",\n help: \"Conecta uno, o elige otro en los ajustes de sonido del sistema, y vuelve a llamar.\",\n },\n inuse: {\n title: () => \"El micrófono está ocupado\",\n help: \"Otra aplicación lo está usando. Ciérrala y vuelve a llamar.\",\n },\n unsupported: {\n title: () => \"Este navegador no puede llamar\",\n help: \"Abre la página por https en un Chrome, Edge, Safari o Firefox actual.\",\n },\n off: {\n title: () => \"Las llamadas no están activadas\",\n help: \"Este servicio aún no atiende llamadas. Escríbele mientras tanto.\",\n },\n builder: {\n title: (name) => `${name} no atiende llamadas`,\n help: \"Escríbele en el chat.\",\n },\n refused: {\n title: (name) => `${name} no puede atender la llamada`,\n help: \"Inténtalo de nuevo en un momento.\",\n },\n failed: {\n title: (name) => `No se ha podido llamar a ${name}`,\n help: \"Comprueba tu conexión y vuelve a intentarlo.\",\n },\n unanswered: {\n title: (name) => `${name} no contesta`,\n help: \"Ahora mismo no atiende llamadas. Inténtalo de nuevo en un momento.\",\n },\n },\n mute: \"Silenciar\",\n hangUp: \"Colgar\",\n keys: \"Espacio silencia y activa el micrófono\",\n muted: \"Tu micrófono está silenciado\",\n hear: (name) => `Oír a ${name}`,\n};\n\nexport const TASK_MESSAGES_ES: TaskMessages = {\n open: (count) =>\n count === 1 ? \"Tienes 1 tarea programada\" : `Tienes ${count} tareas programadas`,\n title: \"Tus tareas\",\n back: \"Volver a la conversación\",\n remove: \"Quitar\",\n empty: \"No hay nada programado. Pídele que te recuerde algo, o que te escriba más adelante.\",\n failed: \"No se ha podido cambiar. Inténtalo de nuevo.\",\n};\n\nexport const SPACE_MESSAGES_ES: SpaceMessages = {\n modes: { label: \"Modo\", text: \"Texto\", voice: \"Voz\" },\n again: \"Volver a llamar\",\n close: \"Cerrar\",\n agent: \"Agente\",\n opening: \"Abriendo la conversación…\",\n failed: \"No se ha podido abrir la conversación.\",\n retry: \"Reintentar\",\n chat: CHAT_MESSAGES_ES,\n voice: VOICE_CALL_MESSAGES_ES,\n tasks: TASK_MESSAGES_ES,\n};\n"],"mappings":"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"}
|
package/dist/files.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/files.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* How a file is shown before it is saved, read from its name first (the owner named it, and a
|
|
4
|
+
* browser often gives no type) and from its type when the name says nothing.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Words with headings (Markdown), plain words, a source read in the mono face (JSON, YAML, a
|
|
8
|
+
* page's HTML: shown as written, never run), rows of cells (CSV), a PDF, a picture, or nothing.
|
|
9
|
+
*/
|
|
10
|
+
export type Preview = "markdown" | "text" | "code" | "table" | "pdf" | "image" | "none";
|
|
11
|
+
/** How a file of this name and type is shown. */
|
|
12
|
+
export declare function previewOf(name: string, type: string): Preview;
|
|
13
|
+
/**
|
|
14
|
+
* A Word file's HTML (a `document` preview) kept again, here, to what a viewer draws: the API
|
|
15
|
+
* cleans it, and what the page puts in itself it checks itself. Its tags and attributes the
|
|
16
|
+
* API's allow-list, scripts and styles gone with what they hold, any other tag gone and its words
|
|
17
|
+
* kept, a picture only by a data address.
|
|
18
|
+
*/
|
|
19
|
+
export declare function cleanDocument(html: string): string;
|
|
20
|
+
//#endregion
|
|
21
|
+
//# sourceMappingURL=files.d.ts.map
|