@schlenkr/ragents 0.1.10 → 0.1.11
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/apps/server/package.json +1 -1
- package/apps/server/src/access-projection.ts +4 -4
- package/apps/server/src/access-service.ts +3 -3
- package/apps/server/src/access-session.ts +19 -19
- package/apps/server/src/api/contracts.ts +29 -29
- package/apps/server/src/api/core-methods.ts +17 -17
- package/apps/server/src/api/delivery.ts +2 -2
- package/apps/server/src/api/reference.ts +27 -27
- package/apps/server/src/api/rights.ts +18 -18
- package/apps/server/src/chat-handler.ts +5 -5
- package/apps/server/src/config-definition.ts +37 -10
- package/apps/server/src/config-file.ts +49 -49
- package/apps/server/src/config.ts +2 -0
- package/apps/server/src/data-directory.ts +2 -2
- package/apps/server/src/external-access.ts +1 -1
- package/apps/server/src/folder-install.ts +1 -1
- package/apps/server/src/help-files.ts +1 -1
- package/apps/server/src/host-api.json +6 -1
- package/apps/server/src/host-api.ts +3 -2
- package/apps/server/src/host-record.ts +3 -3
- package/apps/server/src/host-resolution-hooks.mjs +4 -4
- package/apps/server/src/host-version.ts +17 -17
- package/apps/server/src/host-web.ts +5 -5
- package/apps/server/src/main.ts +6 -6
- package/apps/server/src/missing-environment.ts +6 -6
- package/apps/server/src/parent-watch.ts +4 -4
- package/apps/server/src/plugin-build/build.ts +31 -31
- package/apps/server/src/plugin-build/host-api-names.ts +7 -7
- package/apps/server/src/plugin-build/plugin-description.ts +15 -15
- package/apps/server/src/plugin-build/typecheck.ts +1 -1
- package/apps/server/src/plugin-support/actor-programs/app-project.ts +19 -19
- package/apps/server/src/plugin-support/actor-programs/client-compiler.ts +4 -4
- package/apps/server/src/plugin-support/actor-programs/client-contracts.ts +11 -11
- package/apps/server/src/plugin-support/actor-programs/contract.ts +17 -17
- package/apps/server/src/plugin-support/actor-programs/runtime-libraries.ts +1 -1
- package/apps/server/src/plugin-support/actor-programs/workflow/index.ts +5 -5
- package/apps/server/src/plugin-support/actor-programs/workflow/prompt-reader.ts +2 -2
- package/apps/server/src/plugin-support/chat-display-policy.ts +2 -2
- package/apps/server/src/plugin-support/front-matter.ts +6 -6
- package/apps/server/src/plugin-support/http.ts +2 -2
- package/apps/server/src/plugin-support/language-server/contract.ts +8 -8
- package/apps/server/src/plugin-support/language-server/plugin.ts +2 -2
- package/apps/server/src/plugin-support/language-server/snapshot-method.ts +1 -1
- package/apps/server/src/plugin-support/language-server/tools.ts +11 -11
- package/apps/server/src/plugin-support/model-aliases.ts +30 -20
- package/apps/server/src/plugin-support/model-choice.ts +15 -15
- package/apps/server/src/plugin-support/model-completion.ts +44 -23
- package/apps/server/src/plugin-support/model-providers.ts +170 -0
- package/apps/server/src/plugin-support/model-upstreams.ts +1 -1
- package/apps/server/src/plugin-support/native-typescript-child.ts +4 -4
- package/apps/server/src/plugin-support/native-typescript-executor.ts +12 -12
- package/apps/server/src/plugin-support/plugin-config.ts +3 -3
- package/apps/server/src/plugin-support/plugin-folder.ts +2 -2
- package/apps/server/src/plugin-support/plugins-root.ts +2 -2
- package/apps/server/src/plugin-support/process-sandbox.ts +39 -39
- package/apps/server/src/plugin-support/product-model-settings-contract.ts +3 -3
- package/apps/server/src/plugin-support/product-model-settings.ts +10 -10
- package/apps/server/src/plugin-support/product-relay.ts +9 -9
- package/apps/server/src/plugin-support/product-start-options.ts +4 -4
- package/apps/server/src/plugin-support/prompt.ts +1 -1
- package/apps/server/src/plugin-support/provision.ts +8 -8
- package/apps/server/src/plugin-support/run-scripts.ts +17 -17
- package/apps/server/src/plugin-support/skills.ts +18 -18
- package/apps/server/src/plugin-support/start-entries-contract.ts +17 -17
- package/apps/server/src/plugin-support/start-options-contract.ts +5 -5
- package/apps/server/src/plugin-support/system-prompts.ts +11 -11
- package/apps/server/src/plugin-support/thinking-level.ts +2 -2
- package/apps/server/src/plugin-support/tool-availability.ts +2 -2
- package/apps/server/src/plugin-support/workspace-ownership.ts +5 -5
- package/apps/server/src/plugin-support/workspace-sandbox-host.ts +37 -37
- package/apps/server/src/plugin-support/zip.ts +7 -7
- package/apps/server/src/profile/bundle-manifest.ts +17 -17
- package/apps/server/src/profile/compose.ts +12 -7
- package/apps/server/src/profile/plugin-discovery.ts +12 -12
- package/apps/server/src/profile/provisioning.ts +5 -5
- package/apps/server/src/profile-target.ts +10 -10
- package/apps/server/src/protocol.ts +2 -2
- package/apps/server/src/provider.ts +61 -56
- package/apps/server/src/ragents/actor-chat-history.ts +8 -8
- package/apps/server/src/ragents/chat-text-positions.ts +2 -2
- package/apps/server/src/ragents/coordinator.ts +2 -2
- package/apps/server/src/ragents/engine.ts +23 -23
- package/apps/server/src/ragents/global-chat.ts +8 -8
- package/apps/server/src/ragents/host-services.ts +6 -3
- package/apps/server/src/ragents/journal-chat-events.ts +1 -1
- package/apps/server/src/ragents/run-owner.ts +2 -2
- package/apps/server/src/ragents/session.ts +49 -49
- package/apps/server/src/ragents/typescript-tools.ts +12 -12
- package/apps/server/src/ragents/workspace-runtime.ts +28 -28
- package/apps/server/src/rpc/dispatcher.ts +19 -19
- package/apps/server/src/rpc/http-transport.ts +11 -11
- package/apps/server/src/rpc/stdio-transport.ts +3 -3
- package/apps/server/src/run-preparation-input.ts +5 -5
- package/apps/server/src/run-preparation.ts +24 -24
- package/apps/server/src/run-transfer.ts +39 -39
- package/apps/server/src/server.ts +48 -48
- package/apps/server/src/settings.ts +1 -1
- package/apps/server/src/startup.ts +3 -3
- package/apps/server/src/title-compactor.ts +9 -9
- package/apps/server/src/title-settings.ts +3 -3
- package/apps/server/src/web-bundles.ts +2 -2
- package/apps/server/src/web-stylesheet.ts +2 -2
- package/apps/web/dist/assets/{highlighted-body-KPVGNVTW-BO4wLQtE.js → highlighted-body-KPVGNVTW-BfNSGxjB.js} +1 -1
- package/apps/web/dist/assets/main-D6bsKcIK.js +11 -0
- package/apps/web/dist/assets/mermaid-HWGCJPDP-DROEqEeg.js +608 -0
- package/apps/web/dist/assets/runPanel-Dumuuqry.js +21 -0
- package/apps/web/dist/help/guide-access.html +5 -5
- package/apps/web/dist/help/guide-access.md +2 -2
- package/apps/web/dist/help/guide-clients.html +53 -54
- package/apps/web/dist/help/guide-clients.md +50 -51
- package/apps/web/dist/help/guide-distributed.html +12 -7
- package/apps/web/dist/help/guide-distributed.md +9 -4
- package/apps/web/dist/help/guide-functions.html +3 -3
- package/apps/web/dist/help/guide-getting-started.html +24 -15
- package/apps/web/dist/help/guide-getting-started.md +22 -12
- package/apps/web/dist/help/guide-ideas.html +3 -3
- package/apps/web/dist/help/guide-plugins.html +5 -4
- package/apps/web/dist/help/guide-plugins.md +2 -1
- package/apps/web/dist/help/guide-programs.html +3 -3
- package/apps/web/dist/help/guide-runtime.html +6 -6
- package/apps/web/dist/help/guide-runtime.md +3 -3
- package/apps/web/dist/help/guide.html +3 -3
- package/apps/web/dist/help/index.html +196 -144
- package/apps/web/dist/help/mini-app.css +6 -0
- package/apps/web/dist/help/mini-app.js +14 -14
- package/apps/web/dist/host-web.json +90 -90
- package/apps/web/dist/index.html +3 -3
- package/apps/web/dist/run-panel.html +3 -3
- package/apps/web/package.json +1 -1
- package/apps/web/src/AccessContext.tsx +15 -15
- package/apps/web/src/App.tsx +13 -13
- package/apps/web/src/DiffCode.tsx +2 -2
- package/apps/web/src/HelpDialog.tsx +3 -3
- package/apps/web/src/Overview.tsx +13 -13
- package/apps/web/src/PluginActivation.ts +1 -1
- package/apps/web/src/PluginChat.tsx +15 -15
- package/apps/web/src/PluginFailureNotice.tsx +1 -1
- package/apps/web/src/PluginRegistry.tsx +44 -44
- package/apps/web/src/RunPreparationChat.tsx +11 -11
- package/apps/web/src/RunStore.ts +1 -1
- package/apps/web/src/SessionList.tsx +14 -14
- package/apps/web/src/SettingsModal.tsx +112 -112
- package/apps/web/src/StartOptions.tsx +11 -11
- package/apps/web/src/StartSelection.tsx +11 -11
- package/apps/web/src/StartTiles.tsx +8 -8
- package/apps/web/src/SurfaceShortcuts.tsx +3 -3
- package/apps/web/src/ThemeSettings.tsx +8 -8
- package/apps/web/src/TitleModelSettings.tsx +13 -13
- package/apps/web/src/WorkspacePanel.tsx +9 -9
- package/apps/web/src/access-session.ts +4 -4
- package/apps/web/src/access-token.ts +5 -5
- package/apps/web/src/actor-conversation.ts +3 -3
- package/apps/web/src/actor-programs/client-ui/DataTable.tsx +8 -8
- package/apps/web/src/actor-programs/client-ui/FilePicker.tsx +4 -4
- package/apps/web/src/actor-programs/client-ui/FlowDiagram.tsx +13 -13
- package/apps/web/src/actor-programs/client-ui/Viewers.tsx +4 -4
- package/apps/web/src/actor-programs/client-ui/WorkflowDiagram.tsx +1 -1
- package/apps/web/src/actor-programs/client-ui/file-contracts.d.ts +4 -4
- package/apps/web/src/actor-programs/client-ui/file-selection.ts +1 -1
- package/apps/web/src/actor-programs/client-ui/viewer-contracts.d.ts +3 -3
- package/apps/web/src/api.ts +7 -7
- package/apps/web/src/chat/StoppedActorNotice.tsx +5 -5
- package/apps/web/src/chat/chat-target.ts +3 -3
- package/apps/web/src/chat/requests.ts +2 -2
- package/apps/web/src/chat/useAttachmentCapabilities.ts +2 -2
- package/apps/web/src/chat-view-settings.tsx +5 -6
- package/apps/web/src/diff-view.css +1 -1
- package/apps/web/src/highlighting.css +1 -1
- package/apps/web/src/language-server/language-server-plugin.tsx +30 -30
- package/apps/web/src/lib/labels.ts +6 -6
- package/apps/web/src/main.tsx +4 -4
- package/apps/web/src/offered-machines.ts +2 -2
- package/apps/web/src/page-opener.tsx +1 -1
- package/apps/web/src/panel/ConnectionsPage.tsx +23 -23
- package/apps/web/src/panel/LoginForm.tsx +6 -6
- package/apps/web/src/panel/PanelDialogs.tsx +22 -22
- package/apps/web/src/panel/PanelHeader.tsx +2 -2
- package/apps/web/src/panel/PanelPage.tsx +1 -1
- package/apps/web/src/panel/RunLine.tsx +4 -4
- package/apps/web/src/panel/RunsPage.tsx +15 -15
- package/apps/web/src/panel/StartPage.tsx +26 -26
- package/apps/web/src/panel/connection-state.ts +9 -9
- package/apps/web/src/panel/contract.ts +28 -28
- package/apps/web/src/panel.tsx +1 -1
- package/apps/web/src/plugin-bootstrap.ts +5 -5
- package/apps/web/src/product/ModelControl.tsx +3 -3
- package/apps/web/src/product/ProductModelSettings.tsx +16 -16
- package/apps/web/src/product/SystemPromptControl.tsx +11 -11
- package/apps/web/src/product/model-settings.ts +2 -2
- package/apps/web/src/rpc/client.ts +16 -16
- package/apps/web/src/rpc.ts +1 -1
- package/apps/web/src/run-overview.ts +1 -1
- package/apps/web/src/run-panel/RunPanelApp.tsx +39 -39
- package/apps/web/src/run-panel/RunPanelHeader.tsx +6 -6
- package/apps/web/src/run-panel/RunPanelMenu.tsx +6 -6
- package/apps/web/src/run-panel/RunPanelRail.tsx +4 -4
- package/apps/web/src/run-panel/RunPanelWorkspace.tsx +3 -3
- package/apps/web/src/run-panel/clipboard.ts +3 -3
- package/apps/web/src/run-panel/host-contract.ts +5 -5
- package/apps/web/src/run-panel/host.ts +15 -15
- package/apps/web/src/run-panel/input-bridge.ts +1 -1
- package/apps/web/src/run-panel/run-panel-location.ts +5 -5
- package/apps/web/src/run-panel/use-session-list.ts +1 -1
- package/apps/web/src/run-panel/workspace-state.ts +3 -3
- package/apps/web/src/run-panel.tsx +4 -4
- package/apps/web/src/run-preparation.ts +2 -2
- package/apps/web/src/run-view.ts +3 -3
- package/apps/web/src/settings-contributions.ts +32 -32
- package/apps/web/src/theme.ts +9 -9
- package/apps/web/src/title-model-settings.ts +6 -6
- package/apps/web/src/ui/ListDetail.tsx +9 -9
- package/apps/web/src/ui/dialog.tsx +2 -2
- package/apps/web/src/ui/modal-controller.ts +3 -3
- package/apps/web/src/ui/modal.tsx +2 -2
- package/apps/web/src/ui/popover.tsx +1 -1
- package/apps/web/src/ui/relative-time.ts +8 -8
- package/apps/web/src/ui/startup-notice.tsx +2 -2
- package/apps/web/src/ui/state-icon.tsx +1 -1
- package/apps/web/src/ui/state-vocabulary.ts +16 -16
- package/apps/web/src/ui/stop-button.tsx +2 -2
- package/bundles/ragents.activity/ragents-bundle.json +2 -2
- package/bundles/ragents.activity/web/classes.json +1 -1
- package/bundles/ragents.activity/web/index.js +1 -1
- package/bundles/ragents.activity/web/index.js.map +2 -2
- package/bundles/ragents.actor-programs/ragents-bundle.json +2 -2
- package/bundles/ragents.actor-programs/server/index.js +225 -225
- package/bundles/ragents.actor-programs/server/index.js.map +2 -2
- package/bundles/ragents.actor-programs/web/classes.json +1 -1
- package/bundles/ragents.actor-programs/web/index.js +1 -1
- package/bundles/ragents.actor-programs/web/index.js.map +3 -3
- package/bundles/ragents.ask/ragents-bundle.json +2 -2
- package/bundles/ragents.ask/server/chunks/{chunk-PDJO75SQ.js → chunk-YOV27MAR.js} +2 -2
- package/bundles/ragents.ask/server/chunks/chunk-YOV27MAR.js.map +7 -0
- package/bundles/ragents.ask/server/exports/server/contract.js +1 -1
- package/bundles/ragents.ask/server/index.js +23 -23
- package/bundles/ragents.ask/server/index.js.map +2 -2
- package/bundles/ragents.ask/web/chunks/{chunk-WFN4374U.js → chunk-D6NNB5DS.js} +1 -1
- package/bundles/ragents.ask/web/chunks/chunk-D6NNB5DS.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/{chunk-MBRPS477.js → chunk-IQBHK7MV.js} +2 -2
- package/bundles/ragents.ask/web/chunks/{chunk-MBRPS477.js.map → chunk-IQBHK7MV.js.map} +3 -3
- package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js.map +7 -0
- package/bundles/ragents.ask/web/classes.json +1 -1
- package/bundles/ragents.ask/web/exports/ask-payload.js +1 -1
- package/bundles/ragents.ask/web/exports/web/QuestionCard.js +1 -1
- package/bundles/ragents.ask/web/exports/web/api.js +1 -1
- package/bundles/ragents.ask/web/index.js +1 -1
- package/bundles/ragents.ask/web/index.js.map +2 -2
- package/bundles/ragents.browser/executor/index.mjs +35 -35
- package/bundles/ragents.browser/executor/index.mjs.map +2 -2
- package/bundles/ragents.browser/ragents-bundle.json +2 -2
- package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js → chunk-PYEISBNE.js} +1 -1
- package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js.map → chunk-PYEISBNE.js.map} +1 -1
- package/bundles/ragents.browser/server/exports/server/contract.js +1 -1
- package/bundles/ragents.browser/server/index.js +31 -31
- package/bundles/ragents.browser/server/index.js.map +2 -2
- package/bundles/ragents.browser/skills/browser-testing/SKILL.md +30 -30
- package/bundles/ragents.documents/prompt.hbs +1 -1
- package/bundles/ragents.documents/ragents-bundle.json +2 -2
- package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js → chunk-KMZWOVTI.js} +3 -3
- package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js.map → chunk-KMZWOVTI.js.map} +2 -2
- package/bundles/ragents.documents/server/exports/contract.js +1 -1
- package/bundles/ragents.documents/server/index.js +26 -26
- package/bundles/ragents.documents/server/index.js.map +2 -2
- package/bundles/ragents.documents/web/classes.json +1 -1
- package/bundles/ragents.documents/web/index.js +1 -1
- package/bundles/ragents.documents/web/index.js.map +3 -3
- package/bundles/ragents.lsp-fsharp/executor/index.mjs +4 -4
- package/bundles/ragents.lsp-fsharp/executor/index.mjs.map +2 -2
- package/bundles/ragents.lsp-fsharp/ragents-bundle.json +2 -2
- package/bundles/ragents.lsp-fsharp/server/index.js +5 -5
- package/bundles/ragents.lsp-fsharp/server/index.js.map +2 -2
- package/bundles/ragents.lsp-fsharp/web/index.js +1 -1
- package/bundles/ragents.lsp-fsharp/web/index.js.map +2 -2
- package/bundles/ragents.lsp-roslyn/executor/index.mjs +3 -3
- package/bundles/ragents.lsp-roslyn/executor/index.mjs.map +2 -2
- package/bundles/ragents.lsp-roslyn/ragents-bundle.json +2 -2
- package/bundles/ragents.lsp-roslyn/server/index.js +17 -17
- package/bundles/ragents.lsp-roslyn/server/index.js.map +2 -2
- package/bundles/ragents.lsp-roslyn/web/index.js +1 -1
- package/bundles/ragents.lsp-roslyn/web/index.js.map +2 -2
- package/bundles/ragents.lsp-typescript/executor/index.mjs +2 -2
- package/bundles/ragents.lsp-typescript/executor/index.mjs.map +2 -2
- package/bundles/ragents.lsp-typescript/ragents-bundle.json +2 -2
- package/bundles/ragents.lsp-typescript/server/index.js.map +1 -1
- package/bundles/ragents.lsp-typescript/web/index.js +1 -1
- package/bundles/ragents.lsp-typescript/web/index.js.map +2 -2
- package/bundles/ragents.model-relay/ragents-bundle.json +7 -3
- package/bundles/ragents.model-relay/server/index.js +25 -21
- package/bundles/ragents.model-relay/server/index.js.map +2 -2
- package/bundles/ragents.orchestration/ragents-bundle.json +2 -2
- package/bundles/ragents.orchestration/server/index.js +28 -28
- package/bundles/ragents.orchestration/server/index.js.map +2 -2
- package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js → chunk-CFMJD5ZI.js} +2 -2
- package/bundles/ragents.orchestration/web/chunks/chunk-HOBLI364.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/{chunk-OQYCNYXN.js.map → chunk-HOBLI364.js.map} +2 -2
- package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js → chunk-UCIMT2R4.js} +2 -2
- package/bundles/ragents.orchestration/web/classes.json +1 -1
- package/bundles/ragents.orchestration/web/exports/web/program-slot.js +1 -1
- package/bundles/ragents.orchestration/web/exports/web/surface-entities.js +1 -1
- package/bundles/ragents.orchestration/web/index.js +8 -8
- package/bundles/ragents.orchestration/web/index.js.map +2 -2
- package/bundles/ragents.overseer/ragents-bundle.json +2 -2
- package/bundles/ragents.overseer/server/index.js +98 -98
- package/bundles/ragents.overseer/server/index.js.map +2 -2
- package/bundles/ragents.overseer/web/classes.json +1 -1
- package/bundles/ragents.overseer/web/index.js +1 -1
- package/bundles/ragents.overseer/web/index.js.map +2 -2
- package/bundles/ragents.processes/ragents-bundle.json +2 -2
- package/bundles/ragents.processes/server/index.js +11 -11
- package/bundles/ragents.processes/server/index.js.map +2 -2
- package/bundles/ragents.processes/web/classes.json +1 -1
- package/bundles/ragents.processes/web/index.js +3 -3
- package/bundles/ragents.processes/web/index.js.map +2 -2
- package/bundles/ragents.product/ragents-bundle.json +2 -2
- package/bundles/ragents.product/server/index.js +12 -13
- package/bundles/ragents.product/server/index.js.map +2 -2
- package/bundles/ragents.product/web/classes.json +1 -1
- package/bundles/ragents.product/web/index.js +1 -1
- package/bundles/ragents.product/web/index.js.map +2 -2
- package/bundles/ragents.profile-distribution/ragents-bundle.json +2 -2
- package/bundles/ragents.profile-distribution/server/index.js +31 -31
- package/bundles/ragents.profile-distribution/server/index.js.map +2 -2
- package/bundles/ragents.reference/ragents-bundle.json +2 -2
- package/bundles/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
- package/bundles/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
- package/bundles/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
- package/bundles/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
- package/bundles/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
- package/bundles/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
- package/bundles/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
- package/bundles/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
- package/bundles/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
- package/bundles/ragents.reference/run-scripts/moderated-round/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
- package/bundles/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
- package/bundles/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
- package/bundles/ragents.reference/run-scripts/word-game/RUN.md +18 -18
- package/bundles/ragents.reference/run-scripts/word-game/package.json +2 -2
- package/bundles/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
- package/bundles/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
- package/bundles/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
- package/bundles/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
- package/bundles/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/decision-brief/SKILL.md +24 -24
- package/bundles/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
- package/bundles/ragents.reference/web/classes.json +1 -1
- package/bundles/ragents.reference/web/index.js +1 -1
- package/bundles/ragents.reference/web/index.js.map +2 -2
- package/bundles/ragents.todo/ragents-bundle.json +2 -2
- package/bundles/ragents.todo/server/index.js +5 -5
- package/bundles/ragents.todo/server/index.js.map +2 -2
- package/bundles/ragents.todo/web/classes.json +1 -1
- package/bundles/ragents.todo/web/index.js +1 -1
- package/bundles/ragents.todo/web/index.js.map +2 -2
- package/bundles/ragents.transcript/ragents-bundle.json +2 -2
- package/bundles/ragents.transcript/server/index.js +11 -11
- package/bundles/ragents.transcript/server/index.js.map +2 -2
- package/bundles/ragents.watch/ragents-bundle.json +2 -2
- package/bundles/ragents.watch/server/index.js +48 -48
- package/bundles/ragents.watch/server/index.js.map +2 -2
- package/bundles/ragents.workspace/ragents-bundle.json +2 -2
- package/bundles/ragents.workspace/server/index.js +81 -81
- package/bundles/ragents.workspace/server/index.js.map +2 -2
- package/bundles/ragents.workspace/web/classes.json +1 -1
- package/bundles/ragents.workspace/web/index.js +1 -1
- package/bundles/ragents.workspace/web/index.js.map +2 -2
- package/package.json +4 -4
- package/packages/agent/dist/core/model-runtime.d.ts +7 -2
- package/packages/agent/dist/index.d.ts +1 -1
- package/packages/agent/dist/loop/agent-loop.d.ts +2 -2
- package/packages/agent/src/core/compaction/utils.ts +1 -1
- package/packages/agent/src/core/model-runtime.ts +45 -5
- package/packages/agent/src/index.ts +1 -1
- package/packages/agent/src/loop/agent-loop.ts +2 -2
- package/packages/ai/dist/models.d.ts +1 -0
- package/packages/ai/dist/models.generated.d.ts +4544 -983
- package/packages/ai/dist/providers/openrouter.models.d.ts +4544 -983
- package/packages/ai/src/api/ai-sdk.ts +33 -7
- package/packages/ai/src/api-registry.ts +1 -1
- package/packages/ai/src/index.ts +2 -2
- package/packages/ai/src/models.generated.ts +1 -1
- package/packages/ai/src/models.ts +1 -1
- package/packages/ai/src/providers/openrouter.models.ts +3723 -550
- package/packages/ragents/src/access.ts +12 -12
- package/packages/ragents/src/agents/actor-input.ts +33 -33
- package/packages/ragents/src/agents/catalog.ts +1 -1
- package/packages/ragents/src/agents/delivery.ts +17 -17
- package/packages/ragents/src/agents/plugins.ts +1 -1
- package/packages/ragents/src/agents/scheduler.ts +7 -7
- package/packages/ragents/src/agents/schemas.ts +1 -1
- package/packages/ragents/src/agents/tool-orientation.ts +4 -4
- package/packages/ragents/src/agents/tools.ts +20 -20
- package/packages/ragents/src/agents/toolset.ts +5 -5
- package/packages/ragents/src/agents/workspaces.ts +1 -1
- package/packages/ragents/src/domain/events.ts +1 -1
- package/packages/ragents/src/domain/model.ts +5 -5
- package/packages/ragents/src/drivers/agent-runtime.ts +1 -1
- package/packages/ragents/src/drivers/agent-turn.ts +4 -4
- package/packages/ragents/src/drivers/agent.ts +2 -2
- package/packages/ragents/src/drivers/attachments.ts +4 -4
- package/packages/ragents/src/http/contracts.ts +14 -14
- package/packages/ragents/src/http/methods.ts +6 -6
- package/packages/ragents/src/plugin-host.ts +119 -119
- package/packages/ragents/src/plugin-types.ts +16 -16
- package/packages/ragents/src/rpc/contract.ts +5 -5
- package/packages/ragents/src/rpc/contribution.ts +2 -2
- package/packages/ragents/src/rpc/peer.ts +11 -11
- package/packages/ragents/src/rpc/protocol.ts +2 -2
- package/packages/ragents/src/runtime/decisions/turns.ts +1 -1
- package/packages/ragents/src/runtime/journal.ts +10 -10
- package/packages/ragents/src/runtime/orchestration.ts +8 -8
- package/packages/ragents/src/runtime/stop.ts +2 -2
- package/packages/ragents/src/script/mediators.ts +35 -35
- package/packages/ragents/src/typescript/async-compiler.ts +14 -14
- package/packages/ragents/src/typescript/compiler-worker.ts +2 -2
- package/packages/ragents/src/typescript/compiler.ts +7 -7
- package/packages/ragents/src/typescript/snippet.ts +5 -5
- package/packages/workspace-executor/src/bash-launch.ts +13 -13
- package/packages/workspace-executor/src/commands.ts +18 -18
- package/packages/workspace-executor/src/context.ts +15 -15
- package/packages/workspace-executor/src/contributions.ts +35 -35
- package/packages/workspace-executor/src/errors.ts +1 -1
- package/packages/workspace-executor/src/executor.ts +15 -15
- package/packages/workspace-executor/src/files.ts +30 -30
- package/packages/workspace-executor/src/language-server/contract.ts +2 -2
- package/packages/workspace-executor/src/language-server/diagnostics.ts +4 -4
- package/packages/workspace-executor/src/language-server/host.ts +35 -35
- package/packages/workspace-executor/src/language-server/json-rpc.ts +4 -4
- package/packages/workspace-executor/src/language-server/module.ts +11 -11
- package/packages/workspace-executor/src/language-server/roots.ts +3 -3
- package/packages/workspace-executor/src/language-server/session.ts +15 -15
- package/packages/workspace-executor/src/language-server/workspace-solutions.ts +2 -2
- package/packages/workspace-executor/src/managed-process.ts +12 -12
- package/packages/workspace-executor/src/module.ts +8 -8
- package/packages/workspace-executor/src/modules.ts +3 -3
- package/packages/workspace-executor/src/paths.ts +11 -11
- package/packages/workspace-executor/src/process-sandbox.ts +3 -3
- package/packages/workspace-executor/src/processes/module.ts +3 -3
- package/packages/workspace-executor/src/processes/process-table.ts +20 -20
- package/packages/workspace-executor/src/processes/scanner.ts +3 -3
- package/packages/workspace-executor/src/processes/snapshot.ts +2 -2
- package/packages/workspace-executor/src/processes/terminator.ts +13 -13
- package/packages/workspace-executor/src/run-folders.ts +3 -3
- package/packages/workspace-executor/src/safe-environment.ts +4 -4
- package/packages/workspace-executor/src/sandbox-tools.ts +28 -28
- package/packages/workspace-executor/src/session-ident.ts +2 -2
- package/packages/workspace-executor/src/shell-platform.ts +2 -2
- package/packages/workspace-executor/src/tools.ts +5 -5
- package/plugins/ragents.activity/web/ActivityHeader.tsx +3 -3
- package/plugins/ragents.activity/web/activity.ts +2 -2
- package/plugins/ragents.actor-programs/server/access-projections.ts +1 -1
- package/plugins/ragents.actor-programs/server/agent-tools.ts +2 -2
- package/plugins/ragents.actor-programs/server/capability-resolver.ts +3 -3
- package/plugins/ragents.actor-programs/server/controls-template.ts +46 -46
- package/plugins/ragents.actor-programs/server/controls-tool.ts +4 -4
- package/plugins/ragents.actor-programs/server/limits.ts +3 -3
- package/plugins/ragents.actor-programs/server/methods.ts +1 -1
- package/plugins/ragents.actor-programs/server/project-diagnostics.ts +8 -8
- package/plugins/ragents.actor-programs/server/routes.ts +8 -8
- package/plugins/ragents.actor-programs/server/runtime.ts +90 -90
- package/plugins/ragents.actor-programs/server/templates.ts +59 -59
- package/plugins/ragents.actor-programs/server/test-report.ts +5 -5
- package/plugins/ragents.actor-programs/server/tool-contributor.ts +1 -1
- package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +17 -17
- package/plugins/ragents.actor-programs/web/AppsPanel.tsx +26 -26
- package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +3 -3
- package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +2 -2
- package/plugins/ragents.actor-programs/web/FunctionForm.tsx +16 -16
- package/plugins/ragents.actor-programs/web/ProgramSource.tsx +5 -5
- package/plugins/ragents.actor-programs/web/api.ts +36 -36
- package/plugins/ragents.actor-programs/web/bridge.ts +8 -8
- package/plugins/ragents.actor-programs/web/chat-state.ts +4 -4
- package/plugins/ragents.actor-programs/web/context.ts +1 -1
- package/plugins/ragents.actor-programs/web/function-input.ts +6 -6
- package/plugins/ragents.actor-programs/web/index.tsx +1 -1
- package/plugins/ragents.actor-programs/web/program-state.ts +4 -4
- package/plugins/ragents.ask/ask-payload.ts +1 -1
- package/plugins/ragents.ask/contract.ts +5 -5
- package/plugins/ragents.ask/server/answer-method.ts +1 -1
- package/plugins/ragents.ask/server/ask-service.ts +9 -9
- package/plugins/ragents.ask/server/ask-tool.ts +10 -10
- package/plugins/ragents.ask/server/contract.ts +5 -5
- package/plugins/ragents.ask/web/AskActionView.tsx +1 -1
- package/plugins/ragents.ask/web/QuestionCard.tsx +22 -22
- package/plugins/ragents.ask/web/index.tsx +2 -2
- package/plugins/ragents.browser/executor/contract.ts +6 -6
- package/plugins/ragents.browser/executor/index.ts +1 -1
- package/plugins/ragents.browser/executor/module.ts +6 -6
- package/plugins/ragents.browser/executor/pages.ts +32 -32
- package/plugins/ragents.browser/executor/playwright.ts +8 -8
- package/plugins/ragents.browser/provision.ts +7 -7
- package/plugins/ragents.browser/server/browser.ts +14 -14
- package/plugins/ragents.browser/server/contract.ts +1 -1
- package/plugins/ragents.browser/server/index.ts +1 -1
- package/plugins/ragents.browser/server/tools.ts +14 -14
- package/plugins/ragents.browser/skills/browser-testing/SKILL.md +30 -30
- package/plugins/ragents.documents/contract.ts +2 -2
- package/plugins/ragents.documents/prompt.hbs +1 -1
- package/plugins/ragents.documents/server/document-write-tool.ts +12 -12
- package/plugins/ragents.documents/server/files-route.ts +6 -6
- package/plugins/ragents.documents/server/show-document-tool.ts +26 -26
- package/plugins/ragents.documents/server/store.ts +1 -1
- package/plugins/ragents.documents/web/DocumentViewer.tsx +37 -37
- package/plugins/ragents.documents/web/index.tsx +11 -11
- package/plugins/ragents.lsp-fsharp/executor.ts +7 -7
- package/plugins/ragents.lsp-fsharp/provision.ts +7 -7
- package/plugins/ragents.lsp-roslyn/executor.ts +5 -5
- package/plugins/ragents.lsp-roslyn/provision.ts +4 -4
- package/plugins/ragents.lsp-roslyn/server/index.ts +5 -5
- package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +13 -13
- package/plugins/ragents.lsp-typescript/executor.ts +3 -3
- package/plugins/ragents.model-relay/server/config.ts +6 -2
- package/plugins/ragents.model-relay/server/index.ts +2 -2
- package/plugins/ragents.model-relay/server/relay.ts +23 -22
- package/plugins/ragents.orchestration/contract.ts +8 -8
- package/plugins/ragents.orchestration/server/index.ts +4 -4
- package/plugins/ragents.orchestration/server/run-stop-tool.ts +3 -3
- package/plugins/ragents.orchestration/server/surface-tool.ts +5 -5
- package/plugins/ragents.orchestration/tiled-layout.ts +11 -11
- package/plugins/ragents.orchestration/web/ActorChat.tsx +2 -2
- package/plugins/ragents.orchestration/web/ActorChatControls.tsx +4 -4
- package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +1 -1
- package/plugins/ragents.orchestration/web/ActorPopout.tsx +1 -1
- package/plugins/ragents.orchestration/web/ActorShortcut.tsx +6 -6
- package/plugins/ragents.orchestration/web/ActorSurfaceControls.tsx +15 -15
- package/plugins/ragents.orchestration/web/Center.tsx +5 -5
- package/plugins/ragents.orchestration/web/DocumentsSection.tsx +2 -2
- package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +15 -15
- package/plugins/ragents.orchestration/web/FlowInspector.tsx +103 -103
- package/plugins/ragents.orchestration/web/JournalStatus.tsx +11 -11
- package/plugins/ragents.orchestration/web/MaterialBody.tsx +2 -2
- package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
- package/plugins/ragents.orchestration/web/TiledSurface.tsx +9 -9
- package/plugins/ragents.orchestration/web/actor-header-settings.ts +5 -5
- package/plugins/ragents.orchestration/web/constants.ts +2 -2
- package/plugins/ragents.orchestration/web/executions.ts +6 -6
- package/plugins/ragents.orchestration/web/format.ts +1 -1
- package/plugins/ragents.orchestration/web/index.tsx +2 -2
- package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +7 -7
- package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +8 -8
- package/plugins/ragents.orchestration/web/run-panel/RunPanel.tsx +22 -22
- package/plugins/ragents.orchestration/web/run-panel/RunPanelSettings.tsx +7 -7
- package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +13 -13
- package/plugins/ragents.orchestration/web/run-panel/run-panel-actors.ts +3 -3
- package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +2 -2
- package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +3 -3
- package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +7 -7
- package/plugins/ragents.orchestration/web/run-panel/sheet-status.ts +9 -9
- package/plugins/ragents.orchestration/web/surface-startup.ts +8 -8
- package/plugins/ragents.orchestration/web/surface-view-settings.ts +1 -1
- package/plugins/ragents.orchestration/web/tiled-view-settings.ts +1 -1
- package/plugins/ragents.overseer/contract.ts +20 -20
- package/plugins/ragents.overseer/server/api.ts +6 -6
- package/plugins/ragents.overseer/server/coordinator-prompt.ts +10 -10
- package/plugins/ragents.overseer/server/coordinator.ts +4 -4
- package/plugins/ragents.overseer/server/index.ts +24 -24
- package/plugins/ragents.overseer/server/orientation.ts +8 -8
- package/plugins/ragents.overseer/server/quick-answer.ts +9 -9
- package/plugins/ragents.overseer/server/run-directory.ts +5 -5
- package/plugins/ragents.overseer/server/settings.ts +6 -6
- package/plugins/ragents.overseer/server/user-location.ts +16 -16
- package/plugins/ragents.overseer/web/ModelSettings.tsx +9 -9
- package/plugins/ragents.overseer/web/index.tsx +20 -20
- package/plugins/ragents.overseer/web/model-settings.ts +1 -1
- package/plugins/ragents.overseer/web/quick-answers.ts +2 -2
- package/plugins/ragents.processes/contract.ts +5 -5
- package/plugins/ragents.processes/server/methods.ts +4 -4
- package/plugins/ragents.processes/server/observer.ts +8 -8
- package/plugins/ragents.processes/server/run-processes.ts +2 -2
- package/plugins/ragents.processes/web/ProcessHeader.tsx +10 -10
- package/plugins/ragents.processes/web/processes.ts +10 -10
- package/plugins/ragents.product/server/config.ts +1 -1
- package/plugins/ragents.product/server/index.ts +4 -4
- package/plugins/ragents.product/server/runtime.ts +9 -10
- package/plugins/ragents.product/web/index.tsx +1 -1
- package/plugins/ragents.profile-distribution/contract.ts +10 -10
- package/plugins/ragents.profile-distribution/server/archive.ts +20 -20
- package/plugins/ragents.profile-distribution/server/config.ts +2 -2
- package/plugins/ragents.profile-distribution/server/index.ts +4 -4
- package/plugins/ragents.reference/examples.ts +27 -27
- package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
- package/plugins/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
- package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
- package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
- package/plugins/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
- package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
- package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
- package/plugins/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
- package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
- package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
- package/plugins/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
- package/plugins/ragents.reference/run-scripts/moderated-round/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
- package/plugins/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
- package/plugins/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
- package/plugins/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
- package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
- package/plugins/ragents.reference/run-scripts/word-game/RUN.md +18 -18
- package/plugins/ragents.reference/run-scripts/word-game/package.json +2 -2
- package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
- package/plugins/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
- package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
- package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
- package/plugins/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/decision-brief/SKILL.md +24 -24
- package/plugins/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
- package/plugins/ragents.reference/walkthroughs.ts +128 -128
- package/plugins/ragents.reference/web/StartGuides.tsx +23 -23
- package/plugins/ragents.todo/server/todo-tool.ts +6 -6
- package/plugins/ragents.todo/web/TodoSection.tsx +1 -1
- package/plugins/ragents.transcript/server/transcript.ts +11 -11
- package/plugins/ragents.watch/server/condition.ts +4 -4
- package/plugins/ragents.watch/server/functions.ts +27 -27
- package/plugins/ragents.watch/server/observation.ts +2 -2
- package/plugins/ragents.watch/server/service.ts +14 -14
- package/plugins/ragents.workspace/client/transport.ts +1 -1
- package/plugins/ragents.workspace/client/workspace-client.ts +54 -54
- package/plugins/ragents.workspace/contract.ts +46 -46
- package/plugins/ragents.workspace/server/binding.ts +20 -20
- package/plugins/ragents.workspace/server/browse-route.ts +8 -8
- package/plugins/ragents.workspace/server/clients.ts +42 -42
- package/plugins/ragents.workspace/server/config.ts +7 -7
- package/plugins/ragents.workspace/server/index.ts +3 -3
- package/plugins/ragents.workspace/server/runtime.ts +26 -26
- package/plugins/ragents.workspace/server/shell-platform.ts +1 -1
- package/plugins/ragents.workspace/web/FileBrowser.tsx +10 -10
- package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +24 -24
- package/plugins/ragents.workspace/web/index.tsx +1 -1
- package/ragents.config.core.ts +1 -1
- package/ragents.config.developer.ts +3 -3
- package/ragents.config.showcase.ts +2 -2
- package/scripts/agent/agent-cli.ts +96 -96
- package/scripts/agent/journal.ts +5 -5
- package/scripts/agent/turn-control.ts +4 -4
- package/scripts/package/build-package.ts +29 -29
- package/scripts/package/host-links.mjs +3 -3
- package/scripts/package/publish-package.ts +29 -29
- package/scripts/package/ragents.mjs +19 -19
- package/scripts/plugin/build-builtin-plugins.ts +5 -5
- package/scripts/plugin/plugin-cli.ts +14 -14
- package/scripts/provision/run-provision.ts +14 -15
- package/scripts/remote/connect.ts +46 -46
- package/scripts/remote/start.ts +18 -18
- package/scripts/workspace-client/run-workspace-client.ts +23 -23
- package/apps/web/dist/assets/main-DnnqWHkH.js +0 -11
- package/apps/web/dist/assets/mermaid-HWGCJPDP-BLLeth5_.js +0 -568
- package/apps/web/dist/assets/runPanel-DPm7s3KM.js +0 -21
- package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +0 -7
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +0 -2
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +0 -7
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +0 -2
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +0 -7
- package/bundles/ragents.ask/web/chunks/chunk-WFN4374U.js.map +0 -7
- package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +0 -2
- /package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js.map → chunk-CFMJD5ZI.js.map} +0 -0
- /package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js.map → chunk-UCIMT2R4.js.map} +0 -0
|
@@ -40,9 +40,10 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
40
40
|
.masthead nav { display: flex; gap: 26px; align-items: center; font-weight: 600; font-size: 15px; }
|
|
41
41
|
.masthead nav a { transition: color .2s, background .2s, border-color .2s; }
|
|
42
42
|
.masthead nav a:not(.nav-github):hover { color: var(--accent); }
|
|
43
|
+
.nav-menu { display: none; }
|
|
43
44
|
.nav-github { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border: 1.5px solid var(--line); border-radius: 8px; }
|
|
44
45
|
.nav-github svg { width: 17px; height: 17px; }
|
|
45
|
-
.nav-
|
|
46
|
+
.nav-icon { display: none; width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
|
|
46
47
|
.nav-github:hover { background: var(--hover); }
|
|
47
48
|
.chapters { position: relative; display: flex; justify-content: center; align-items: center; gap: 10px; padding: 0 16px 10px; }
|
|
48
49
|
.chapters-list { display: flex; gap: 2px; min-width: 0; overflow: hidden; }
|
|
@@ -179,7 +180,7 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
179
180
|
.limits h2 { font-size: clamp(22px, 2vw, 26px); }
|
|
180
181
|
.limits p { color: var(--muted); font-size: 15.5px; line-height: 1.7; }
|
|
181
182
|
.site-footer { padding: 64px 0 32px; background: var(--deep); color: var(--muted); border-top: 1px solid var(--track); }
|
|
182
|
-
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr
|
|
183
|
+
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 40px; padding-bottom: 44px; border-bottom: 1px solid var(--track); }
|
|
183
184
|
.footer-brand { display: inline-flex; align-items: center; gap: 12px; color: var(--text); font-size: 24px; font-weight: 750; letter-spacing: -.04em; text-decoration: none; }
|
|
184
185
|
.footer-logo { width: 38px; height: 38px; }
|
|
185
186
|
.footer-about p { max-width: 300px; margin: 14px 0 0; font-size: 15px; line-height: 1.6; }
|
|
@@ -194,11 +195,20 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
194
195
|
.ext-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
195
196
|
.closing { grid-template-columns: 1fr; gap: 40px; }
|
|
196
197
|
.closing section + section { padding: 40px 0 0; border-left: 0; border-top: 1px solid var(--track); }
|
|
197
|
-
.footer-grid { grid-template-columns: 1fr 1fr
|
|
198
|
+
.footer-grid { grid-template-columns: 1fr 1fr; }
|
|
198
199
|
.footer-about { grid-column: 1 / -1; }
|
|
199
200
|
}
|
|
200
201
|
@media (max-width: 860px) {
|
|
201
|
-
.
|
|
202
|
+
.end { display: none; }
|
|
203
|
+
.top { display: flex; align-items: center; gap: 14px; padding: 9px 16px; }
|
|
204
|
+
.masthead { display: contents; }
|
|
205
|
+
.masthead nav { order: 2; margin-left: auto; gap: 20px; font-size: 14px; }
|
|
206
|
+
.nav-github { padding: 5px 11px; }
|
|
207
|
+
.chapters { order: 1; position: static; flex: 0 1 auto; justify-content: flex-start; gap: 8px; min-width: 0; padding: 0; }
|
|
208
|
+
.chapters .play { display: none; }
|
|
209
|
+
.chapters .chapters-toggle { flex: 0 1 auto; min-width: 0; }
|
|
210
|
+
.chapters[data-compact] .chapters-toggle { grid-template-columns: minmax(0, auto) auto; }
|
|
211
|
+
.chapters-toggle span { overflow: hidden; text-overflow: ellipsis; }
|
|
202
212
|
.hero { position: relative; top: 0; }
|
|
203
213
|
.lane { -webkit-mask-image: none; mask-image: none; }
|
|
204
214
|
.copy[data-centered] { top: var(--intro-top, 40%); left: 16px; width: calc(100% - 32px); transform: none; }
|
|
@@ -206,8 +216,9 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
206
216
|
.actions { gap: 10px; margin-top: 26px; }
|
|
207
217
|
.button { min-height: 44px; padding: 9px 16px; font-size: 15px; }
|
|
208
218
|
.story.sr-only { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; clip-path: none; white-space: normal; }
|
|
209
|
-
.story article { position: relative; padding-top:
|
|
210
|
-
.story article > :not(
|
|
219
|
+
.story article { position: relative; padding-top: 56px; scroll-margin-top: var(--top, 150px); }
|
|
220
|
+
.story article > :not(.pin, .run) { position: absolute; top: 0; left: 0; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
|
|
221
|
+
.pin { position: sticky; top: var(--top, 150px); padding-top: 20px; }
|
|
211
222
|
.story h2 { width: calc(100% - 32px); margin: 0 auto; font-size: clamp(29px, 7.6vw, 44px); font-weight: 650; line-height: 1.06; letter-spacing: -.045em; }
|
|
212
223
|
.story h2::before { content: ''; display: block; width: 34px; height: 3px; margin-bottom: 14px; border-radius: 2px; background: var(--kick); }
|
|
213
224
|
.story h2 > span { display: block; text-wrap: balance; }
|
|
@@ -217,12 +228,14 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
217
228
|
.note, .note[data-side] { max-width: min(calc(100% - 32px), 24em); font-size: 15px; }
|
|
218
229
|
}
|
|
219
230
|
@media (max-width: 640px) {
|
|
220
|
-
.
|
|
221
|
-
.brand
|
|
222
|
-
.brand-icon { width:
|
|
223
|
-
.masthead nav { gap:
|
|
224
|
-
.nav
|
|
225
|
-
.
|
|
231
|
+
.top { gap: 6px; padding: 8px 12px; }
|
|
232
|
+
.brand-name, .nav-label, .gh-label { display: none; }
|
|
233
|
+
.brand-icon { width: 24px; height: 24px; }
|
|
234
|
+
.masthead nav { gap: 0; }
|
|
235
|
+
.masthead nav a { display: grid; place-items: center; width: 30px; height: 32px; border-radius: 8px; }
|
|
236
|
+
.nav-icon { display: block; }
|
|
237
|
+
.nav-github { padding: 0; border: 0; }
|
|
238
|
+
.nav-github svg { width: 19px; height: 19px; }
|
|
226
239
|
.where-section { padding: 72px 0 8px; }
|
|
227
240
|
.where-frame { margin-top: 28px; border: 0; border-radius: 0; background: none; overflow: visible; }
|
|
228
241
|
.where, .where tbody, .where tr, .where th, .where td { display: block; width: auto; }
|
|
@@ -248,10 +261,10 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
248
261
|
<a class="skip" href="#main">Skip to content</a>
|
|
249
262
|
<div class="top" data-top>
|
|
250
263
|
<header class="masthead shell">
|
|
251
|
-
<a class="brand" href="#main" aria-label="RAgents, back to top"><svg class="brand-icon" aria-hidden="true" viewBox="0 0 787 787"><path id="ragents-mark" fill="currentColor" fill-rule="evenodd" d="M368.5 750.9C366.3 750.3 358.9 749.5 352.0 749.0C334.5 747.8 322.0 743.4 307.5 733.2C296.2 725.2 206.9 639.0 201.7 630.9C200.6 629.3 199.4 623.8 198.5 617.4C197.2 607.2 196.5 596.8 194.0 550.5C193.5 540.6 192.8 531.5 192.4 530.3C192.1 529.0 189.5 526.4 186.8 524.5C179.8 519.4 178.0 515.1 178.0 502.4L178.0 492.2L175.0 491.0C170.5 489.1 161.0 478.4 156.8 470.5C146.0 449.8 138.5 409.7 139.2 375.7C139.5 357.1 140.3 354.0 146.7 344.8C149.7 340.4 149.4 339.7 142.3 334.9C135.2 330.0 134.7 328.1 134.2 306.9C133.6 281.6 134.5 280.0 151.6 277.7L160.1 276.5L159.3 268.5C157.8 253.3 158.4 210.6 160.3 198.0C167.2 153.3 183.0 118.8 207.4 95.3C239.3 64.4 297.6 42.0 359.3 37.0C375.9 35.7 410.4 35.7 426.7 37.1C490.2 42.4 550.0 66.4 582.7 99.6C606.6 123.9 623.1 163.0 628.1 206.9C629.1 215.8 628.9 264.5 627.8 274.0C627.5 276.3 627.8 276.5 635.7 277.6C653.6 280.2 656.2 286.2 653.0 316.8C651.8 328.2 650.5 330.8 643.5 336.0C640.5 338.2 638.0 340.3 638.0 340.6C638.0 340.8 639.5 343.3 641.4 346.0C647.7 355.1 648.5 359.2 648.4 380.0C648.1 433.8 633.2 480.1 612.8 490.9L608.5 493.2L608.8 501.8C609.3 513.1 607.6 517.5 600.5 523.7C593.7 529.5 593.4 530.7 592.0 559.6C589.8 605.2 588.0 625.3 585.4 630.3C582.2 636.4 502.3 715.1 484.3 729.7C469.1 742.1 452.8 748.3 430.5 750.2C413.2 751.6 373.5 752.1 368.5 750.9ZM411.7 734.7C412.4 734.3 412.6 733.0 412.1 731.2L411.4 728.5L393.2 728.2C375.6 728.0 375.0 728.0 374.9 730.0C374.8 731.1 374.7 732.5 374.6 733.2C374.5 733.9 375.6 734.7 377.0 735.1C380.2 736.1 410.1 735.7 411.7 734.7ZM361.1 715.3C363.8 704.6 366.2 696.8 367.2 695.8C368.8 694.2 371.4 694.0 393.2 694.0C406.6 694.0 418.0 694.4 418.6 694.8C420.6 696.1 421.7 699.4 425.6 715.9C428.0 726.3 429.9 732.4 430.8 732.8C435.2 734.5 460.2 724.8 467.5 718.5L470.5 716.0L467.5 717.2C462.2 719.2 446.2 718.7 440.8 716.3C435.2 713.8 433.9 711.9 429.9 700.9C423.5 683.1 417.8 669.1 416.7 668.1C415.2 666.9 377.6 665.4 373.7 666.4C369.9 667.3 368.8 669.5 360.6 690.9C356.5 701.4 352.5 711.1 351.5 712.6C348.4 717.4 342.1 719.3 330.4 718.8C324.8 718.6 320.4 718.8 320.6 719.2C321.8 721.1 335.0 727.5 342.8 730.1C357.4 734.8 356.1 735.9 361.1 715.3ZM407.3 711.0C406.8 709.0 406.1 709.0 393.1 709.2C381.1 709.5 379.5 709.7 379.2 711.2C378.9 712.9 380.1 713.0 393.3 713.0C407.4 713.0 407.8 712.9 407.3 711.0ZM337.9 700.6C338.4 700.0 341.8 691.6 345.4 682.0C353.4 660.8 355.7 656.2 359.3 653.6C362.0 651.6 363.7 651.5 392.3 651.2C432.3 650.9 429.1 649.1 439.5 677.0C443.1 686.6 446.6 695.8 447.2 697.3C447.8 698.8 449.7 700.8 451.3 701.7L454.4 703.3L451.7 700.1C447.8 695.4 446.8 690.7 447.2 678.8C447.5 668.7 447.7 667.9 450.8 663.5L454.0 658.9L454.0 645.1C454.0 621.2 457.4 606.9 464.3 601.9L468.3 599.0L464.9 599.6C463.0 600.0 460.3 601.3 458.8 602.6C455.2 605.6 451.1 606.8 441.5 607.9C437.1 608.4 431.5 609.6 429.0 610.6C424.2 612.4 414.2 612.7 376.5 611.9C360.0 611.5 358.2 611.3 354.7 609.2C351.9 607.6 349.3 607.0 345.2 607.0C337.6 607.0 332.3 605.4 327.8 601.9C325.7 600.3 322.9 599.0 321.3 599.0L318.5 599.0L321.6 600.9C328.8 605.3 331.9 617.0 332.7 643.0C333.2 657.4 333.5 659.9 335.2 662.3C342.1 672.0 341.5 690.9 334.0 700.1L331.0 703.9L333.9 702.9C335.6 702.3 337.3 701.3 337.9 700.6ZM286.2 664.0C287.6 661.5 290.8 658.1 293.2 656.3C300.5 651.1 302.7 640.5 299.5 626.0C298.7 622.4 298.1 616.0 298.0 611.7C298.0 604.3 298.2 603.7 300.9 600.9C303.5 598.4 304.6 598.0 309.7 598.0L315.5 598.0L312.2 596.3C310.4 595.5 307.7 593.3 306.1 591.5C304.5 589.7 302.2 587.9 300.9 587.5C296.2 586.1 290.2 582.0 288.2 578.8L286.1 575.5L284.7 579.0C281.7 586.4 281.7 586.8 284.7 587.2C287.3 587.5 287.5 587.8 287.8 592.9C288.0 595.9 287.6 599.5 287.0 601.0C286.0 603.3 286.5 605.2 290.0 614.6C294.1 625.2 294.2 625.8 293.8 635.0C293.4 644.0 293.0 645.3 287.3 658.5C279.2 677.0 278.3 680.6 280.7 683.2C282.5 685.2 282.5 685.0 283.0 676.9C283.4 670.2 284.0 667.6 286.2 664.0ZM506.5 677.2C505.9 674.6 502.8 666.6 499.7 659.4C490.6 638.2 490.1 632.9 495.6 617.5C497.5 612.0 500.5 603.7 502.2 599.0C505.4 590.1 505.3 587.2 502.0 578.6L500.9 575.7L498.6 579.1C496.3 582.4 487.7 588.0 484.8 588.0C484.0 588.0 482.4 589.4 481.1 591.1C479.9 592.7 477.5 594.9 475.9 595.9L472.9 597.7L478.5 598.2C489.1 599.1 491.0 605.4 487.0 626.5C484.8 638.3 484.9 640.5 487.6 649.2C488.7 652.6 490.1 654.5 492.5 656.0C499.6 660.4 504.0 669.4 504.0 679.8C504.0 685.1 504.1 685.3 505.9 683.6C507.6 682.0 507.7 681.4 506.5 677.2ZM547.0 643.3C559.3 630.8 569.8 619.1 570.5 617.5C572.0 614.0 573.5 599.2 575.1 572.5C576.9 540.7 576.0 540.1 571.6 570.5C569.5 585.4 567.1 599.1 566.3 601.0C565.4 603.2 556.0 613.2 540.4 628.5L515.8 652.5L518.4 658.7C519.8 662.2 521.0 665.7 521.0 666.5C521.0 669.4 524.5 666.3 547.0 643.3ZM267.4 659.9C268.8 656.3 270.0 652.9 270.0 652.3C270.0 651.7 259.2 640.7 245.9 627.9C232.7 615.1 221.2 603.4 220.5 601.9C219.7 600.5 217.5 588.8 215.6 575.9C209.8 537.9 210.0 538.8 210.6 554.0C211.3 573.9 213.9 607.7 215.1 613.6C216.0 618.5 217.0 619.6 240.2 642.8C253.5 656.1 264.4 666.9 264.6 666.7C264.7 666.6 265.9 663.5 267.4 659.9ZM531.9 606.2C532.5 603.2 533.0 598.9 533.0 596.8L533.0 593.0L527.0 593.0C521.3 593.0 521.0 593.1 521.0 595.5C521.0 596.9 518.3 605.3 515.1 614.3C511.8 623.2 508.9 631.4 508.5 632.5C508.1 633.6 512.9 629.4 519.3 623.1C530.2 612.3 530.8 611.5 531.9 606.2ZM272.5 617.4C269.4 609.2 266.6 600.4 266.3 597.8L265.7 593.0L259.9 593.0C256.7 593.0 253.9 593.4 253.6 593.9C253.2 594.4 253.5 598.4 254.1 602.7L255.3 610.5L266.3 621.7C272.4 627.9 277.5 632.8 277.7 632.6C277.9 632.4 275.5 625.6 272.5 617.4ZM417.7 596.4C422.2 595.5 423.0 593.5 423.0 583.0L423.0 573.2L413.2 573.7C399.8 574.4 400.9 573.3 401.2 585.2C401.5 595.0 401.6 595.5 404.0 596.7C406.3 597.9 411.1 597.8 417.7 596.4ZM384.2 595.3C386.4 593.3 386.9 575.2 384.8 574.5C384.1 574.3 378.9 573.9 373.2 573.5L363.0 572.9L363.0 581.4C363.0 594.7 364.8 596.8 376.4 596.9C380.6 597.0 382.9 596.5 384.2 595.3ZM240.3 574.9C241.2 571.9 243.6 566.8 245.6 563.5L249.2 557.5L248.0 550.0C245.6 534.6 238.0 490.3 236.9 485.2L235.9 480.0L230.9 480.0C223.9 480.0 219.4 477.8 212.5 471.0L206.5 465.1L206.4 471.9L206.3 478.8L210.2 479.3C223.5 481.1 230.3 496.7 225.4 514.1C223.9 519.4 223.9 520.6 226.0 535.1C231.4 573.4 234.2 589.6 235.8 592.0C237.5 594.5 237.5 594.4 238.1 587.4C238.5 583.5 239.5 577.9 240.3 574.9ZM552.0 589.2C552.6 587.2 555.3 570.5 558.0 552.2C562.6 520.3 562.8 518.7 561.3 514.4C559.0 507.6 559.9 493.6 562.9 488.6C565.9 483.9 571.7 480.0 576.9 479.3L581.0 478.7L581.0 471.6L581.0 464.5L575.7 470.1C568.4 477.9 565.9 479.3 557.7 479.9L550.6 480.5L548.8 490.5C547.8 496.0 544.8 513.3 542.1 529.0L537.1 557.5L540.0 561.9C545.0 569.4 548.7 582.3 549.0 592.8C549.0 595.2 550.9 593.0 552.0 589.2ZM447.0 588.5C449.2 586.2 449.5 585.0 449.9 576.9L450.2 567.9L446.4 568.6C437.7 570.2 438.0 569.7 438.0 581.6L438.0 592.2L441.2 591.6C443.0 591.2 445.6 589.8 447.0 588.5ZM348.0 580.6C348.0 569.1 348.5 569.8 340.6 568.4L336.8 567.7L337.1 577.0C337.5 585.6 337.7 586.3 340.3 588.6C341.8 589.9 344.2 591.0 345.6 591.0C348.0 591.0 348.0 591.0 348.0 580.6ZM467.9 578.7C469.3 576.6 470.8 561.0 469.7 561.0C469.4 561.0 467.9 561.5 466.5 562.2C464.1 563.3 464.0 563.6 464.0 572.6C464.0 582.4 464.8 583.7 467.9 578.7ZM321.8 562.5C321.6 562.4 320.4 561.9 319.1 561.5L316.8 560.8L317.1 568.8C317.4 575.0 317.9 577.3 319.5 579.0L321.5 581.2L321.8 572.0C321.9 566.9 321.9 562.6 321.8 562.5ZM267.9 575.0C268.9 571.9 268.4 566.0 267.0 566.0C266.1 566.0 259.0 575.0 259.0 576.1C259.0 576.9 261.4 577.7 264.7 577.9C266.2 578.0 267.1 577.1 267.9 575.0ZM527.4 577.2C528.1 576.0 520.8 566.0 519.5 566.4C518.1 566.8 517.7 572.1 518.9 575.3C519.8 577.5 520.6 578.0 523.4 578.0C525.3 578.0 527.1 577.6 527.4 577.2ZM487.0 558.2C487.0 554.3 486.6 552.9 485.8 553.2C484.9 553.5 484.4 556.2 484.3 561.1C484.0 568.0 484.1 568.3 485.5 566.0C486.3 564.6 486.9 561.1 487.0 558.2ZM302.0 559.5C302.0 555.8 301.6 553.0 301.0 553.0C299.9 553.0 299.7 560.1 300.6 563.8C301.6 567.5 302.0 566.3 302.0 559.5ZM284.6 548.2C283.2 522.4 282.9 499.0 284.0 497.1C286.5 492.4 297.7 490.6 306.6 493.5C308.5 494.1 308.8 493.3 311.5 481.8C314.8 467.9 314.8 467.1 312.4 463.5C309.3 458.7 308.6 458.7 288.4 465.2C278.0 468.5 269.1 471.5 268.7 472.0C268.2 472.4 271.3 491.9 275.4 515.4C279.6 538.9 283.0 558.3 283.0 558.5C283.0 558.8 283.5 559.0 284.1 559.0C284.8 559.0 284.9 555.5 284.6 548.2ZM385.8 550.0C386.5 531.9 384.1 527.7 372.5 526.5C366.5 525.8 365.5 526.0 364.3 527.6C362.5 530.1 362.4 554.3 364.2 555.8C365.7 556.9 377.9 558.9 382.5 558.6L385.5 558.5L385.8 550.0ZM419.8 557.1L422.5 556.4L422.8 542.6C423.1 525.9 422.9 525.6 415.1 526.5C402.6 527.9 401.0 530.3 401.0 547.5L401.0 559.2L409.1 558.5C413.6 558.1 418.4 557.5 419.8 557.1ZM506.4 542.8C507.9 533.8 511.4 514.4 514.1 499.5C516.8 484.7 518.6 472.3 518.2 471.9C517.8 471.5 509.0 468.5 498.6 465.1C484.4 460.6 479.2 459.3 477.9 460.1C475.5 461.3 473.0 466.2 473.0 469.5C473.0 471.7 477.0 489.5 478.5 493.7C478.8 494.6 479.7 494.6 482.4 493.5C489.8 490.4 500.0 492.2 502.5 497.1C504.5 500.8 504.6 534.2 502.7 537.9C501.4 540.5 501.5 559.0 502.9 559.0C503.3 559.0 504.9 551.7 506.4 542.8ZM347.5 526.3C346.8 523.5 339.6 521.0 337.7 522.9C336.0 524.6 335.4 546.6 337.0 548.5C337.7 549.4 340.3 550.6 342.9 551.4L347.5 552.7L347.8 540.6C347.9 533.9 347.8 527.5 347.5 526.3ZM444.1 551.9C449.6 550.0 449.8 549.5 450.2 536.3C450.5 522.1 450.1 521.2 444.3 523.0C438.4 524.9 438.0 525.9 438.0 540.2C438.0 554.2 437.9 553.9 444.1 551.9ZM471.4 539.5C472.2 537.3 472.2 517.5 471.3 516.7C470.9 516.3 469.4 517.2 467.8 518.7C465.1 521.3 465.0 521.6 465.0 532.7L465.0 544.1L467.9 542.6C469.5 541.7 471.0 540.3 471.4 539.5ZM318.9 518.4C317.6 517.1 316.3 516.0 315.8 516.0C314.8 516.0 314.7 538.1 315.8 539.6C316.2 540.2 317.4 541.2 318.5 541.8C320.4 542.8 320.5 542.5 320.8 531.8C321.0 521.5 320.9 520.5 318.9 518.4ZM488.8 518.7C489.0 510.2 488.9 509.7 487.6 512.0C485.6 515.3 485.3 531.1 487.2 529.2C488.0 528.4 488.6 524.4 488.8 518.7ZM299.1 511.2C298.3 510.0 298.1 511.5 298.0 517.2C298.0 527.7 299.4 530.6 299.8 520.7C300.0 516.5 299.6 512.2 299.1 511.2ZM408.2 511.5C414.4 510.7 421.8 510.0 424.5 510.0C427.2 510.0 432.4 509.1 435.8 508.0C439.3 506.9 445.0 506.0 448.5 506.0C452.6 506.0 455.1 505.5 455.9 504.6C456.5 503.8 458.3 502.7 459.9 502.0L462.7 500.9L460.3 491.2C457.5 479.5 456.3 463.2 457.9 457.3C460.5 448.0 467.9 443.1 479.6 443.0C485.7 443.0 489.8 444.0 507.1 449.6C540.9 460.4 554.0 464.1 555.8 463.1C556.8 462.6 565.1 454.5 574.3 445.2C586.8 432.6 590.9 427.9 590.4 426.6C589.8 425.1 589.5 425.1 588.1 426.3C585.0 429.1 572.0 435.0 564.8 436.9C540.1 443.5 497.9 443.1 473.8 435.9C438.4 425.4 417.1 399.2 405.0 351.2C403.6 345.9 400.2 343.5 393.9 343.5C386.0 343.5 384.3 345.6 379.9 360.1C362.0 419.5 331.1 442.0 267.3 442.0C237.5 442.0 213.7 436.7 199.8 426.8C197.0 424.9 197.0 424.9 197.0 426.9C197.0 428.9 227.3 461.0 231.1 463.1C232.9 464.0 251.2 458.9 288.3 447.1C302.2 442.6 312.1 441.7 318.3 444.4C322.6 446.1 327.6 452.0 328.9 456.7C331.3 465.2 329.4 483.0 324.4 499.2C324.1 500.4 324.4 501.0 325.3 501.0C326.1 501.0 327.9 501.9 329.3 503.0C331.0 504.4 333.3 505.0 336.8 505.0C339.5 505.0 345.7 506.1 350.4 507.5C355.2 508.9 361.6 510.0 364.9 510.0C371.8 510.0 389.3 512.5 391.7 513.9C392.8 514.5 394.1 514.5 395.2 513.9C396.1 513.4 401.9 512.3 408.2 511.5ZM366.2 486.0C361.0 484.8 359.6 482.8 353.6 468.6C345.8 450.0 345.8 449.6 355.9 424.9C370.3 389.6 375.9 376.7 377.5 375.1C378.7 373.8 382.0 373.4 392.9 373.2C406.2 372.9 406.8 372.9 409.3 375.2C411.1 376.8 415.9 387.4 425.4 410.9C442.1 451.9 441.8 449.5 432.9 469.8C425.9 485.9 425.7 486.0 413.5 486.8C404.6 487.3 405.2 487.6 398.5 479.2C394.6 474.5 392.1 475.0 386.5 481.5L381.8 487.0L375.7 486.9C372.3 486.8 368.0 486.4 366.2 486.0ZM190.6 468.1C188.8 454.9 177.0 428.2 169.5 420.3C165.1 415.8 165.0 415.7 163.0 417.5C159.8 420.4 159.8 422.1 163.0 434.6C167.3 451.4 173.3 463.5 181.1 471.2L187.2 477.4L189.2 475.0C190.8 473.0 191.1 471.6 190.6 468.1ZM607.1 471.1C615.1 462.8 624.5 440.6 626.6 425.2C627.1 421.4 626.8 420.0 625.3 418.1C623.4 415.8 623.3 415.8 620.7 417.5C611.3 423.6 593.7 465.1 597.1 473.2C598.8 477.3 601.7 476.7 607.1 471.1ZM382.5 461.4L385.9 460.8L386.2 451.6L386.5 442.5L393.5 442.5L400.5 442.5L401.0 451.4C401.5 460.3 401.5 460.4 404.4 461.1C406.0 461.6 408.8 463.4 410.6 465.1C412.5 466.9 414.2 468.2 414.4 467.9C414.6 467.7 416.4 463.5 418.4 458.7L422.1 449.8L410.4 421.2C396.1 385.9 397.7 388.8 393.4 389.2C389.3 389.5 390.6 387.0 374.5 426.7L365.1 449.9L368.1 457.2C369.8 461.2 371.6 465.5 372.1 466.8C373.0 469.1 373.0 469.1 376.1 465.6C378.0 463.4 380.4 461.8 382.5 461.4ZM172.2 391.0C165.9 377.7 165.8 377.6 158.5 381.9C155.6 383.6 155.5 383.9 155.8 389.6C156.3 400.4 155.9 400.0 164.8 400.0C171.5 400.0 173.3 400.4 177.7 402.9C177.8 403.0 175.3 397.6 172.2 391.0ZM623.3 400.0L630.7 400.0L631.4 395.4C632.8 384.6 632.5 383.7 626.7 380.8L621.5 378.2L615.5 390.5L609.5 402.8L612.7 401.4C614.5 400.6 619.3 400.0 623.3 400.0ZM609.6 357.0C618.5 333.9 621.0 329.6 629.5 322.7C636.4 317.2 636.5 317.0 637.4 306.5C638.4 294.2 638.6 294.4 611.4 291.5C586.2 288.9 551.7 289.9 516.6 294.3C507.3 295.4 508.8 295.5 540.1 295.5C568.5 295.5 574.5 295.8 580.2 297.2C593.1 300.5 599.9 305.1 604.3 313.4C606.2 316.9 606.5 319.5 606.8 332.2C607.2 348.3 605.2 362.2 600.6 375.6C599.3 379.4 597.9 383.4 597.5 384.5C594.8 392.9 603.3 373.5 609.6 357.0ZM187.5 377.9C182.9 365.1 180.6 351.7 180.6 336.0C180.5 313.9 183.5 307.2 196.4 301.1C207.4 295.8 217.4 294.7 251.0 295.2L280.5 295.5L266.5 293.8C244.1 291.1 226.7 290.0 207.4 290.0C184.6 290.0 153.3 293.3 150.6 296.0C149.4 297.2 149.7 311.4 151.1 315.7C151.6 317.4 153.3 319.6 154.7 320.5C164.9 327.2 169.0 333.8 177.6 356.9C182.9 371.1 189.0 385.3 189.6 384.7C189.8 384.6 188.8 381.5 187.5 377.9ZM430.5 368.4C425.2 352.0 424.3 327.1 428.8 319.7C433.0 313.0 441.1 308.7 457.5 304.4C470.5 301.1 466.7 301.5 440.1 306.2C417.0 310.4 416.1 310.5 394.0 310.5C372.0 310.5 371.0 310.4 347.7 306.2C320.6 301.4 317.7 301.1 330.9 304.5C349.1 309.2 357.7 315.0 360.5 324.4C363.3 333.8 361.6 355.1 357.0 368.4C355.9 371.7 355.2 374.5 355.4 374.7C355.9 375.3 362.6 357.2 365.0 348.5C370.0 330.4 374.6 327.0 394.0 327.0C412.4 327.0 417.6 330.8 422.0 347.2C424.2 355.4 431.9 376.4 432.5 375.8C432.7 375.6 431.8 372.3 430.5 368.4ZM155.8 316.0C153.2 314.0 153.0 313.3 153.0 307.2C153.0 297.4 154.7 296.0 166.3 296.0C177.0 296.0 179.0 297.7 179.0 306.9C179.0 316.1 177.6 317.4 166.6 317.8C159.5 318.1 158.2 317.9 155.8 316.0ZM612.5 316.8C609.0 314.9 608.0 312.8 608.0 306.9C608.0 297.7 609.6 296.5 621.5 296.5C630.5 296.5 631.3 296.7 633.1 298.9C636.9 303.5 635.2 314.7 630.3 316.9C627.2 318.3 615.1 318.3 612.5 316.8ZM409.4 293.9C409.7 293.7 410.3 289.8 410.9 285.2C412.9 269.2 416.5 266.2 448.6 253.5C489.0 237.5 529.6 225.0 541.3 225.0L545.5 225.0L550.3 196.4C553.0 180.7 554.9 167.5 554.6 167.2C554.3 166.9 554.0 167.8 554.0 169.2C554.0 173.3 549.8 180.1 546.0 182.1C539.3 185.7 518.3 184.3 509.4 179.7C505.1 177.5 500.3 171.7 499.1 167.3C497.2 160.6 497.8 137.8 500.2 123.5C502.2 111.0 502.3 110.6 500.5 109.5C499.5 109.0 497.0 107.1 495.1 105.3C491.5 102.2 491.5 102.1 491.5 94.2C491.5 81.0 495.3 77.5 508.7 78.2C517.9 78.6 521.0 81.2 521.0 88.4C521.0 98.4 521.1 98.5 534.3 105.1C557.6 116.8 558.0 117.3 558.0 133.8C558.0 140.0 557.5 148.2 556.9 152.1C554.7 166.6 556.7 160.4 559.9 142.8C563.7 122.4 564.0 121.6 568.2 118.0L571.2 115.4L563.7 108.3C545.4 90.9 514.8 74.9 480.1 64.6L475.0 63.1L469.7 73.8L464.4 84.5L467.7 90.5C472.8 99.9 472.5 102.0 461.7 134.5C450.7 167.5 450.1 168.6 441.5 177.0L434.9 183.5L428.7 183.5C425.3 183.5 406.8 183.4 387.7 183.2L352.8 183.0L346.4 176.8C342.8 173.4 339.1 169.2 338.0 167.5C337.0 165.8 331.8 151.6 326.6 136.0C315.4 102.9 315.0 99.9 320.0 90.0L323.0 84.1L318.0 73.6C314.4 65.9 312.6 63.0 311.3 63.0C310.3 63.0 303.0 65.2 295.0 67.9C263.2 78.5 239.2 91.8 220.8 108.8L215.0 114.2L219.1 117.9C222.9 121.2 223.3 122.2 225.1 130.9C227.3 141.7 238.3 203.4 240.2 216.0L241.5 224.5L246.0 224.8C258.3 225.5 266.7 227.5 297.5 237.7C320.3 245.2 340.6 253.0 355.8 260.1C371.7 267.5 375.3 272.2 376.7 287.4C377.2 293.4 377.5 293.9 379.9 294.4C383.3 294.9 408.7 294.6 409.4 293.9ZM361.0 289.8C361.0 289.1 360.0 286.7 358.7 284.5C356.1 279.7 347.1 274.9 324.0 265.7C298.1 255.5 252.9 241.0 246.8 241.0C241.7 241.0 214.0 267.6 214.0 272.6C214.0 273.3 219.2 273.9 229.5 274.4C257.6 275.6 302.8 281.0 341.5 287.9C360.5 291.3 361.0 291.4 361.0 289.8ZM447.8 287.5C493.8 279.8 529.3 275.6 557.5 274.4C566.0 274.0 573.0 273.4 573.0 273.0C573.0 269.2 569.4 264.8 556.8 253.5L542.7 240.8L538.6 241.4C526.1 243.4 453.0 269.3 437.2 277.4C431.5 280.3 428.2 283.7 427.0 287.8C426.5 289.6 426.4 291.0 426.7 291.0C426.9 291.0 436.5 289.4 447.8 287.5ZM192.0 274.0L197.7 274.0L198.4 268.1C198.8 264.9 200.0 259.7 201.0 256.6C206.3 241.7 199.6 182.4 191.5 172.4L189.1 169.5L186.1 172.5C178.1 180.3 171.8 228.4 174.9 257.5C176.9 276.3 176.5 275.3 181.8 274.6C184.3 274.3 188.9 274.0 192.0 274.0ZM610.4 272.8C614.9 252.2 613.5 212.8 607.4 188.0C603.6 172.7 600.2 168.0 596.1 172.4C587.2 181.8 580.7 242.9 586.8 259.7C588.0 263.1 589.0 267.7 589.0 269.9L589.0 273.9L596.8 274.3C601.0 274.4 605.7 274.7 607.2 274.8C609.3 275.0 610.1 274.5 610.4 272.8ZM360.2 257.2C359.1 256.3 355.5 251.0 352.1 245.6C346.9 237.1 346.0 235.0 346.0 230.9C346.0 224.7 347.7 223.0 353.8 223.0C359.8 223.0 359.6 222.8 366.4 233.8L372.3 243.0L393.7 243.0L415.0 243.0L417.8 238.4C425.5 225.3 427.2 223.5 432.2 223.2C439.5 222.7 441.0 224.0 441.0 230.7C441.0 235.9 440.5 237.0 434.4 246.7C430.7 252.4 426.9 257.5 425.9 258.0C424.9 258.6 411.2 259.0 393.2 259.0C365.1 259.0 362.0 258.8 360.2 257.2ZM224.9 233.7C226.0 232.3 225.4 221.0 224.3 221.0C224.0 221.0 222.5 221.9 220.9 223.1C218.2 225.0 218.0 225.6 218.0 232.1L218.0 239.1L220.8 237.1C222.4 236.0 224.2 234.5 224.9 233.7ZM566.3 223.4C563.1 220.8 562.6 221.3 561.6 228.0C560.9 232.2 561.1 232.6 564.7 235.6L568.5 238.8L568.8 232.2C569.1 226.1 568.9 225.5 566.3 223.4ZM220.3 196.7C208.7 128.4 207.3 123.9 200.9 134.3C198.1 138.6 191.0 152.5 191.0 153.5C191.0 153.8 192.5 154.0 194.4 154.0C204.6 154.0 211.4 167.1 215.1 194.3L216.3 203.1L218.5 201.0C219.9 199.7 220.6 198.1 220.3 196.7ZM575.1 178.5C579.2 161.4 584.8 154.0 593.6 154.0L596.0 154.0L592.9 147.8C591.2 144.3 588.2 138.9 586.3 135.7L582.8 129.9L580.5 132.0C578.1 134.3 577.0 138.9 570.0 178.5C566.5 198.4 566.5 198.8 568.7 201.3C570.4 203.1 570.5 202.9 571.7 195.4C572.4 191.0 574.0 183.4 575.1 178.5ZM244.5 183.0C240.8 181.9 237.5 179.0 235.5 175.0C233.3 170.8 230.0 150.4 229.3 136.9C228.3 118.2 229.9 116.2 256.1 103.5C261.2 101.0 265.7 98.4 266.2 97.7C266.6 97.1 267.0 93.5 267.0 89.8C267.0 83.6 267.2 83.0 270.1 80.6C272.8 78.3 274.0 78.0 281.4 78.0C290.7 78.0 293.4 79.2 295.6 84.6C299.1 93.0 296.4 103.6 289.7 108.0C286.1 110.3 285.9 110.7 286.4 114.0C290.5 138.3 290.9 160.2 287.5 168.7C283.8 178.0 273.7 183.0 257.5 183.6C252.0 183.8 246.1 183.5 244.5 183.0ZM536.1 166.4L538.5 163.8L532.0 157.7C528.4 154.3 522.7 150.0 519.2 148.2L513.0 144.9L513.0 149.7C513.1 159.3 517.4 164.9 526.7 167.5C533.3 169.3 533.4 169.3 536.1 166.4ZM265.3 165.2C268.1 164.0 270.7 161.9 271.9 160.0C274.0 156.5 275.6 147.2 274.3 145.9C273.0 144.6 261.5 151.6 254.9 157.7L248.9 163.3L251.2 165.7C253.9 168.6 257.9 168.5 265.3 165.2ZM430.8 161.6L436.8 155.2L445.4 129.2L454.1 103.1L452.1 99.3C448.2 91.6 448.8 91.9 431.9 90.4C408.2 88.3 353.5 89.0 341.5 91.5C340.3 91.7 338.3 94.1 336.6 97.3L333.7 102.6L342.0 127.6C350.9 154.6 351.7 156.4 358.2 162.7L362.5 167.0L385.0 167.3C397.4 167.4 411.4 167.6 416.1 167.8L424.8 168.0L430.8 161.6ZM263.2 130.7C271.9 126.6 272.0 126.5 271.5 123.5C270.1 116.5 270.8 116.6 259.7 122.1C246.1 128.9 245.0 130.0 245.0 136.7L245.0 142.0L249.7 138.4C252.2 136.5 258.3 133.0 263.2 130.7ZM542.9 134.7C543.0 130.9 540.2 128.6 528.7 122.5C518.3 117.1 517.6 117.1 516.7 123.2L516.1 127.0L523.4 130.3C527.4 132.2 533.1 135.3 536.1 137.4C542.0 141.3 542.8 141.0 542.9 134.7ZM367.6 73.9C392.0 72.8 436.6 73.8 445.9 75.6C448.5 76.1 448.8 75.8 452.4 67.6C454.6 62.8 456.1 58.8 455.9 58.6C455.0 57.7 428.4 54.0 415.5 52.9C393.1 51.0 358.3 52.9 337.0 57.1C333.7 57.7 331.0 58.4 331.0 58.5C331.0 58.6 332.8 62.6 335.1 67.4C337.8 73.2 339.6 76.0 340.5 75.6C341.2 75.4 353.4 74.6 367.6 73.9Z"/></svg>RAgents</a>
|
|
264
|
+
<a class="brand" href="#main" aria-label="RAgents, back to top"><svg class="brand-icon" aria-hidden="true" viewBox="0 0 787 787"><path id="ragents-mark" fill="currentColor" fill-rule="evenodd" d="M368.5 750.9C366.3 750.3 358.9 749.5 352.0 749.0C334.5 747.8 322.0 743.4 307.5 733.2C296.2 725.2 206.9 639.0 201.7 630.9C200.6 629.3 199.4 623.8 198.5 617.4C197.2 607.2 196.5 596.8 194.0 550.5C193.5 540.6 192.8 531.5 192.4 530.3C192.1 529.0 189.5 526.4 186.8 524.5C179.8 519.4 178.0 515.1 178.0 502.4L178.0 492.2L175.0 491.0C170.5 489.1 161.0 478.4 156.8 470.5C146.0 449.8 138.5 409.7 139.2 375.7C139.5 357.1 140.3 354.0 146.7 344.8C149.7 340.4 149.4 339.7 142.3 334.9C135.2 330.0 134.7 328.1 134.2 306.9C133.6 281.6 134.5 280.0 151.6 277.7L160.1 276.5L159.3 268.5C157.8 253.3 158.4 210.6 160.3 198.0C167.2 153.3 183.0 118.8 207.4 95.3C239.3 64.4 297.6 42.0 359.3 37.0C375.9 35.7 410.4 35.7 426.7 37.1C490.2 42.4 550.0 66.4 582.7 99.6C606.6 123.9 623.1 163.0 628.1 206.9C629.1 215.8 628.9 264.5 627.8 274.0C627.5 276.3 627.8 276.5 635.7 277.6C653.6 280.2 656.2 286.2 653.0 316.8C651.8 328.2 650.5 330.8 643.5 336.0C640.5 338.2 638.0 340.3 638.0 340.6C638.0 340.8 639.5 343.3 641.4 346.0C647.7 355.1 648.5 359.2 648.4 380.0C648.1 433.8 633.2 480.1 612.8 490.9L608.5 493.2L608.8 501.8C609.3 513.1 607.6 517.5 600.5 523.7C593.7 529.5 593.4 530.7 592.0 559.6C589.8 605.2 588.0 625.3 585.4 630.3C582.2 636.4 502.3 715.1 484.3 729.7C469.1 742.1 452.8 748.3 430.5 750.2C413.2 751.6 373.5 752.1 368.5 750.9ZM411.7 734.7C412.4 734.3 412.6 733.0 412.1 731.2L411.4 728.5L393.2 728.2C375.6 728.0 375.0 728.0 374.9 730.0C374.8 731.1 374.7 732.5 374.6 733.2C374.5 733.9 375.6 734.7 377.0 735.1C380.2 736.1 410.1 735.7 411.7 734.7ZM361.1 715.3C363.8 704.6 366.2 696.8 367.2 695.8C368.8 694.2 371.4 694.0 393.2 694.0C406.6 694.0 418.0 694.4 418.6 694.8C420.6 696.1 421.7 699.4 425.6 715.9C428.0 726.3 429.9 732.4 430.8 732.8C435.2 734.5 460.2 724.8 467.5 718.5L470.5 716.0L467.5 717.2C462.2 719.2 446.2 718.7 440.8 716.3C435.2 713.8 433.9 711.9 429.9 700.9C423.5 683.1 417.8 669.1 416.7 668.1C415.2 666.9 377.6 665.4 373.7 666.4C369.9 667.3 368.8 669.5 360.6 690.9C356.5 701.4 352.5 711.1 351.5 712.6C348.4 717.4 342.1 719.3 330.4 718.8C324.8 718.6 320.4 718.8 320.6 719.2C321.8 721.1 335.0 727.5 342.8 730.1C357.4 734.8 356.1 735.9 361.1 715.3ZM407.3 711.0C406.8 709.0 406.1 709.0 393.1 709.2C381.1 709.5 379.5 709.7 379.2 711.2C378.9 712.9 380.1 713.0 393.3 713.0C407.4 713.0 407.8 712.9 407.3 711.0ZM337.9 700.6C338.4 700.0 341.8 691.6 345.4 682.0C353.4 660.8 355.7 656.2 359.3 653.6C362.0 651.6 363.7 651.5 392.3 651.2C432.3 650.9 429.1 649.1 439.5 677.0C443.1 686.6 446.6 695.8 447.2 697.3C447.8 698.8 449.7 700.8 451.3 701.7L454.4 703.3L451.7 700.1C447.8 695.4 446.8 690.7 447.2 678.8C447.5 668.7 447.7 667.9 450.8 663.5L454.0 658.9L454.0 645.1C454.0 621.2 457.4 606.9 464.3 601.9L468.3 599.0L464.9 599.6C463.0 600.0 460.3 601.3 458.8 602.6C455.2 605.6 451.1 606.8 441.5 607.9C437.1 608.4 431.5 609.6 429.0 610.6C424.2 612.4 414.2 612.7 376.5 611.9C360.0 611.5 358.2 611.3 354.7 609.2C351.9 607.6 349.3 607.0 345.2 607.0C337.6 607.0 332.3 605.4 327.8 601.9C325.7 600.3 322.9 599.0 321.3 599.0L318.5 599.0L321.6 600.9C328.8 605.3 331.9 617.0 332.7 643.0C333.2 657.4 333.5 659.9 335.2 662.3C342.1 672.0 341.5 690.9 334.0 700.1L331.0 703.9L333.9 702.9C335.6 702.3 337.3 701.3 337.9 700.6ZM286.2 664.0C287.6 661.5 290.8 658.1 293.2 656.3C300.5 651.1 302.7 640.5 299.5 626.0C298.7 622.4 298.1 616.0 298.0 611.7C298.0 604.3 298.2 603.7 300.9 600.9C303.5 598.4 304.6 598.0 309.7 598.0L315.5 598.0L312.2 596.3C310.4 595.5 307.7 593.3 306.1 591.5C304.5 589.7 302.2 587.9 300.9 587.5C296.2 586.1 290.2 582.0 288.2 578.8L286.1 575.5L284.7 579.0C281.7 586.4 281.7 586.8 284.7 587.2C287.3 587.5 287.5 587.8 287.8 592.9C288.0 595.9 287.6 599.5 287.0 601.0C286.0 603.3 286.5 605.2 290.0 614.6C294.1 625.2 294.2 625.8 293.8 635.0C293.4 644.0 293.0 645.3 287.3 658.5C279.2 677.0 278.3 680.6 280.7 683.2C282.5 685.2 282.5 685.0 283.0 676.9C283.4 670.2 284.0 667.6 286.2 664.0ZM506.5 677.2C505.9 674.6 502.8 666.6 499.7 659.4C490.6 638.2 490.1 632.9 495.6 617.5C497.5 612.0 500.5 603.7 502.2 599.0C505.4 590.1 505.3 587.2 502.0 578.6L500.9 575.7L498.6 579.1C496.3 582.4 487.7 588.0 484.8 588.0C484.0 588.0 482.4 589.4 481.1 591.1C479.9 592.7 477.5 594.9 475.9 595.9L472.9 597.7L478.5 598.2C489.1 599.1 491.0 605.4 487.0 626.5C484.8 638.3 484.9 640.5 487.6 649.2C488.7 652.6 490.1 654.5 492.5 656.0C499.6 660.4 504.0 669.4 504.0 679.8C504.0 685.1 504.1 685.3 505.9 683.6C507.6 682.0 507.7 681.4 506.5 677.2ZM547.0 643.3C559.3 630.8 569.8 619.1 570.5 617.5C572.0 614.0 573.5 599.2 575.1 572.5C576.9 540.7 576.0 540.1 571.6 570.5C569.5 585.4 567.1 599.1 566.3 601.0C565.4 603.2 556.0 613.2 540.4 628.5L515.8 652.5L518.4 658.7C519.8 662.2 521.0 665.7 521.0 666.5C521.0 669.4 524.5 666.3 547.0 643.3ZM267.4 659.9C268.8 656.3 270.0 652.9 270.0 652.3C270.0 651.7 259.2 640.7 245.9 627.9C232.7 615.1 221.2 603.4 220.5 601.9C219.7 600.5 217.5 588.8 215.6 575.9C209.8 537.9 210.0 538.8 210.6 554.0C211.3 573.9 213.9 607.7 215.1 613.6C216.0 618.5 217.0 619.6 240.2 642.8C253.5 656.1 264.4 666.9 264.6 666.7C264.7 666.6 265.9 663.5 267.4 659.9ZM531.9 606.2C532.5 603.2 533.0 598.9 533.0 596.8L533.0 593.0L527.0 593.0C521.3 593.0 521.0 593.1 521.0 595.5C521.0 596.9 518.3 605.3 515.1 614.3C511.8 623.2 508.9 631.4 508.5 632.5C508.1 633.6 512.9 629.4 519.3 623.1C530.2 612.3 530.8 611.5 531.9 606.2ZM272.5 617.4C269.4 609.2 266.6 600.4 266.3 597.8L265.7 593.0L259.9 593.0C256.7 593.0 253.9 593.4 253.6 593.9C253.2 594.4 253.5 598.4 254.1 602.7L255.3 610.5L266.3 621.7C272.4 627.9 277.5 632.8 277.7 632.6C277.9 632.4 275.5 625.6 272.5 617.4ZM417.7 596.4C422.2 595.5 423.0 593.5 423.0 583.0L423.0 573.2L413.2 573.7C399.8 574.4 400.9 573.3 401.2 585.2C401.5 595.0 401.6 595.5 404.0 596.7C406.3 597.9 411.1 597.8 417.7 596.4ZM384.2 595.3C386.4 593.3 386.9 575.2 384.8 574.5C384.1 574.3 378.9 573.9 373.2 573.5L363.0 572.9L363.0 581.4C363.0 594.7 364.8 596.8 376.4 596.9C380.6 597.0 382.9 596.5 384.2 595.3ZM240.3 574.9C241.2 571.9 243.6 566.8 245.6 563.5L249.2 557.5L248.0 550.0C245.6 534.6 238.0 490.3 236.9 485.2L235.9 480.0L230.9 480.0C223.9 480.0 219.4 477.8 212.5 471.0L206.5 465.1L206.4 471.9L206.3 478.8L210.2 479.3C223.5 481.1 230.3 496.7 225.4 514.1C223.9 519.4 223.9 520.6 226.0 535.1C231.4 573.4 234.2 589.6 235.8 592.0C237.5 594.5 237.5 594.4 238.1 587.4C238.5 583.5 239.5 577.9 240.3 574.9ZM552.0 589.2C552.6 587.2 555.3 570.5 558.0 552.2C562.6 520.3 562.8 518.7 561.3 514.4C559.0 507.6 559.9 493.6 562.9 488.6C565.9 483.9 571.7 480.0 576.9 479.3L581.0 478.7L581.0 471.6L581.0 464.5L575.7 470.1C568.4 477.9 565.9 479.3 557.7 479.9L550.6 480.5L548.8 490.5C547.8 496.0 544.8 513.3 542.1 529.0L537.1 557.5L540.0 561.9C545.0 569.4 548.7 582.3 549.0 592.8C549.0 595.2 550.9 593.0 552.0 589.2ZM447.0 588.5C449.2 586.2 449.5 585.0 449.9 576.9L450.2 567.9L446.4 568.6C437.7 570.2 438.0 569.7 438.0 581.6L438.0 592.2L441.2 591.6C443.0 591.2 445.6 589.8 447.0 588.5ZM348.0 580.6C348.0 569.1 348.5 569.8 340.6 568.4L336.8 567.7L337.1 577.0C337.5 585.6 337.7 586.3 340.3 588.6C341.8 589.9 344.2 591.0 345.6 591.0C348.0 591.0 348.0 591.0 348.0 580.6ZM467.9 578.7C469.3 576.6 470.8 561.0 469.7 561.0C469.4 561.0 467.9 561.5 466.5 562.2C464.1 563.3 464.0 563.6 464.0 572.6C464.0 582.4 464.8 583.7 467.9 578.7ZM321.8 562.5C321.6 562.4 320.4 561.9 319.1 561.5L316.8 560.8L317.1 568.8C317.4 575.0 317.9 577.3 319.5 579.0L321.5 581.2L321.8 572.0C321.9 566.9 321.9 562.6 321.8 562.5ZM267.9 575.0C268.9 571.9 268.4 566.0 267.0 566.0C266.1 566.0 259.0 575.0 259.0 576.1C259.0 576.9 261.4 577.7 264.7 577.9C266.2 578.0 267.1 577.1 267.9 575.0ZM527.4 577.2C528.1 576.0 520.8 566.0 519.5 566.4C518.1 566.8 517.7 572.1 518.9 575.3C519.8 577.5 520.6 578.0 523.4 578.0C525.3 578.0 527.1 577.6 527.4 577.2ZM487.0 558.2C487.0 554.3 486.6 552.9 485.8 553.2C484.9 553.5 484.4 556.2 484.3 561.1C484.0 568.0 484.1 568.3 485.5 566.0C486.3 564.6 486.9 561.1 487.0 558.2ZM302.0 559.5C302.0 555.8 301.6 553.0 301.0 553.0C299.9 553.0 299.7 560.1 300.6 563.8C301.6 567.5 302.0 566.3 302.0 559.5ZM284.6 548.2C283.2 522.4 282.9 499.0 284.0 497.1C286.5 492.4 297.7 490.6 306.6 493.5C308.5 494.1 308.8 493.3 311.5 481.8C314.8 467.9 314.8 467.1 312.4 463.5C309.3 458.7 308.6 458.7 288.4 465.2C278.0 468.5 269.1 471.5 268.7 472.0C268.2 472.4 271.3 491.9 275.4 515.4C279.6 538.9 283.0 558.3 283.0 558.5C283.0 558.8 283.5 559.0 284.1 559.0C284.8 559.0 284.9 555.5 284.6 548.2ZM385.8 550.0C386.5 531.9 384.1 527.7 372.5 526.5C366.5 525.8 365.5 526.0 364.3 527.6C362.5 530.1 362.4 554.3 364.2 555.8C365.7 556.9 377.9 558.9 382.5 558.6L385.5 558.5L385.8 550.0ZM419.8 557.1L422.5 556.4L422.8 542.6C423.1 525.9 422.9 525.6 415.1 526.5C402.6 527.9 401.0 530.3 401.0 547.5L401.0 559.2L409.1 558.5C413.6 558.1 418.4 557.5 419.8 557.1ZM506.4 542.8C507.9 533.8 511.4 514.4 514.1 499.5C516.8 484.7 518.6 472.3 518.2 471.9C517.8 471.5 509.0 468.5 498.6 465.1C484.4 460.6 479.2 459.3 477.9 460.1C475.5 461.3 473.0 466.2 473.0 469.5C473.0 471.7 477.0 489.5 478.5 493.7C478.8 494.6 479.7 494.6 482.4 493.5C489.8 490.4 500.0 492.2 502.5 497.1C504.5 500.8 504.6 534.2 502.7 537.9C501.4 540.5 501.5 559.0 502.9 559.0C503.3 559.0 504.9 551.7 506.4 542.8ZM347.5 526.3C346.8 523.5 339.6 521.0 337.7 522.9C336.0 524.6 335.4 546.6 337.0 548.5C337.7 549.4 340.3 550.6 342.9 551.4L347.5 552.7L347.8 540.6C347.9 533.9 347.8 527.5 347.5 526.3ZM444.1 551.9C449.6 550.0 449.8 549.5 450.2 536.3C450.5 522.1 450.1 521.2 444.3 523.0C438.4 524.9 438.0 525.9 438.0 540.2C438.0 554.2 437.9 553.9 444.1 551.9ZM471.4 539.5C472.2 537.3 472.2 517.5 471.3 516.7C470.9 516.3 469.4 517.2 467.8 518.7C465.1 521.3 465.0 521.6 465.0 532.7L465.0 544.1L467.9 542.6C469.5 541.7 471.0 540.3 471.4 539.5ZM318.9 518.4C317.6 517.1 316.3 516.0 315.8 516.0C314.8 516.0 314.7 538.1 315.8 539.6C316.2 540.2 317.4 541.2 318.5 541.8C320.4 542.8 320.5 542.5 320.8 531.8C321.0 521.5 320.9 520.5 318.9 518.4ZM488.8 518.7C489.0 510.2 488.9 509.7 487.6 512.0C485.6 515.3 485.3 531.1 487.2 529.2C488.0 528.4 488.6 524.4 488.8 518.7ZM299.1 511.2C298.3 510.0 298.1 511.5 298.0 517.2C298.0 527.7 299.4 530.6 299.8 520.7C300.0 516.5 299.6 512.2 299.1 511.2ZM408.2 511.5C414.4 510.7 421.8 510.0 424.5 510.0C427.2 510.0 432.4 509.1 435.8 508.0C439.3 506.9 445.0 506.0 448.5 506.0C452.6 506.0 455.1 505.5 455.9 504.6C456.5 503.8 458.3 502.7 459.9 502.0L462.7 500.9L460.3 491.2C457.5 479.5 456.3 463.2 457.9 457.3C460.5 448.0 467.9 443.1 479.6 443.0C485.7 443.0 489.8 444.0 507.1 449.6C540.9 460.4 554.0 464.1 555.8 463.1C556.8 462.6 565.1 454.5 574.3 445.2C586.8 432.6 590.9 427.9 590.4 426.6C589.8 425.1 589.5 425.1 588.1 426.3C585.0 429.1 572.0 435.0 564.8 436.9C540.1 443.5 497.9 443.1 473.8 435.9C438.4 425.4 417.1 399.2 405.0 351.2C403.6 345.9 400.2 343.5 393.9 343.5C386.0 343.5 384.3 345.6 379.9 360.1C362.0 419.5 331.1 442.0 267.3 442.0C237.5 442.0 213.7 436.7 199.8 426.8C197.0 424.9 197.0 424.9 197.0 426.9C197.0 428.9 227.3 461.0 231.1 463.1C232.9 464.0 251.2 458.9 288.3 447.1C302.2 442.6 312.1 441.7 318.3 444.4C322.6 446.1 327.6 452.0 328.9 456.7C331.3 465.2 329.4 483.0 324.4 499.2C324.1 500.4 324.4 501.0 325.3 501.0C326.1 501.0 327.9 501.9 329.3 503.0C331.0 504.4 333.3 505.0 336.8 505.0C339.5 505.0 345.7 506.1 350.4 507.5C355.2 508.9 361.6 510.0 364.9 510.0C371.8 510.0 389.3 512.5 391.7 513.9C392.8 514.5 394.1 514.5 395.2 513.9C396.1 513.4 401.9 512.3 408.2 511.5ZM366.2 486.0C361.0 484.8 359.6 482.8 353.6 468.6C345.8 450.0 345.8 449.6 355.9 424.9C370.3 389.6 375.9 376.7 377.5 375.1C378.7 373.8 382.0 373.4 392.9 373.2C406.2 372.9 406.8 372.9 409.3 375.2C411.1 376.8 415.9 387.4 425.4 410.9C442.1 451.9 441.8 449.5 432.9 469.8C425.9 485.9 425.7 486.0 413.5 486.8C404.6 487.3 405.2 487.6 398.5 479.2C394.6 474.5 392.1 475.0 386.5 481.5L381.8 487.0L375.7 486.9C372.3 486.8 368.0 486.4 366.2 486.0ZM190.6 468.1C188.8 454.9 177.0 428.2 169.5 420.3C165.1 415.8 165.0 415.7 163.0 417.5C159.8 420.4 159.8 422.1 163.0 434.6C167.3 451.4 173.3 463.5 181.1 471.2L187.2 477.4L189.2 475.0C190.8 473.0 191.1 471.6 190.6 468.1ZM607.1 471.1C615.1 462.8 624.5 440.6 626.6 425.2C627.1 421.4 626.8 420.0 625.3 418.1C623.4 415.8 623.3 415.8 620.7 417.5C611.3 423.6 593.7 465.1 597.1 473.2C598.8 477.3 601.7 476.7 607.1 471.1ZM382.5 461.4L385.9 460.8L386.2 451.6L386.5 442.5L393.5 442.5L400.5 442.5L401.0 451.4C401.5 460.3 401.5 460.4 404.4 461.1C406.0 461.6 408.8 463.4 410.6 465.1C412.5 466.9 414.2 468.2 414.4 467.9C414.6 467.7 416.4 463.5 418.4 458.7L422.1 449.8L410.4 421.2C396.1 385.9 397.7 388.8 393.4 389.2C389.3 389.5 390.6 387.0 374.5 426.7L365.1 449.9L368.1 457.2C369.8 461.2 371.6 465.5 372.1 466.8C373.0 469.1 373.0 469.1 376.1 465.6C378.0 463.4 380.4 461.8 382.5 461.4ZM172.2 391.0C165.9 377.7 165.8 377.6 158.5 381.9C155.6 383.6 155.5 383.9 155.8 389.6C156.3 400.4 155.9 400.0 164.8 400.0C171.5 400.0 173.3 400.4 177.7 402.9C177.8 403.0 175.3 397.6 172.2 391.0ZM623.3 400.0L630.7 400.0L631.4 395.4C632.8 384.6 632.5 383.7 626.7 380.8L621.5 378.2L615.5 390.5L609.5 402.8L612.7 401.4C614.5 400.6 619.3 400.0 623.3 400.0ZM609.6 357.0C618.5 333.9 621.0 329.6 629.5 322.7C636.4 317.2 636.5 317.0 637.4 306.5C638.4 294.2 638.6 294.4 611.4 291.5C586.2 288.9 551.7 289.9 516.6 294.3C507.3 295.4 508.8 295.5 540.1 295.5C568.5 295.5 574.5 295.8 580.2 297.2C593.1 300.5 599.9 305.1 604.3 313.4C606.2 316.9 606.5 319.5 606.8 332.2C607.2 348.3 605.2 362.2 600.6 375.6C599.3 379.4 597.9 383.4 597.5 384.5C594.8 392.9 603.3 373.5 609.6 357.0ZM187.5 377.9C182.9 365.1 180.6 351.7 180.6 336.0C180.5 313.9 183.5 307.2 196.4 301.1C207.4 295.8 217.4 294.7 251.0 295.2L280.5 295.5L266.5 293.8C244.1 291.1 226.7 290.0 207.4 290.0C184.6 290.0 153.3 293.3 150.6 296.0C149.4 297.2 149.7 311.4 151.1 315.7C151.6 317.4 153.3 319.6 154.7 320.5C164.9 327.2 169.0 333.8 177.6 356.9C182.9 371.1 189.0 385.3 189.6 384.7C189.8 384.6 188.8 381.5 187.5 377.9ZM430.5 368.4C425.2 352.0 424.3 327.1 428.8 319.7C433.0 313.0 441.1 308.7 457.5 304.4C470.5 301.1 466.7 301.5 440.1 306.2C417.0 310.4 416.1 310.5 394.0 310.5C372.0 310.5 371.0 310.4 347.7 306.2C320.6 301.4 317.7 301.1 330.9 304.5C349.1 309.2 357.7 315.0 360.5 324.4C363.3 333.8 361.6 355.1 357.0 368.4C355.9 371.7 355.2 374.5 355.4 374.7C355.9 375.3 362.6 357.2 365.0 348.5C370.0 330.4 374.6 327.0 394.0 327.0C412.4 327.0 417.6 330.8 422.0 347.2C424.2 355.4 431.9 376.4 432.5 375.8C432.7 375.6 431.8 372.3 430.5 368.4ZM155.8 316.0C153.2 314.0 153.0 313.3 153.0 307.2C153.0 297.4 154.7 296.0 166.3 296.0C177.0 296.0 179.0 297.7 179.0 306.9C179.0 316.1 177.6 317.4 166.6 317.8C159.5 318.1 158.2 317.9 155.8 316.0ZM612.5 316.8C609.0 314.9 608.0 312.8 608.0 306.9C608.0 297.7 609.6 296.5 621.5 296.5C630.5 296.5 631.3 296.7 633.1 298.9C636.9 303.5 635.2 314.7 630.3 316.9C627.2 318.3 615.1 318.3 612.5 316.8ZM409.4 293.9C409.7 293.7 410.3 289.8 410.9 285.2C412.9 269.2 416.5 266.2 448.6 253.5C489.0 237.5 529.6 225.0 541.3 225.0L545.5 225.0L550.3 196.4C553.0 180.7 554.9 167.5 554.6 167.2C554.3 166.9 554.0 167.8 554.0 169.2C554.0 173.3 549.8 180.1 546.0 182.1C539.3 185.7 518.3 184.3 509.4 179.7C505.1 177.5 500.3 171.7 499.1 167.3C497.2 160.6 497.8 137.8 500.2 123.5C502.2 111.0 502.3 110.6 500.5 109.5C499.5 109.0 497.0 107.1 495.1 105.3C491.5 102.2 491.5 102.1 491.5 94.2C491.5 81.0 495.3 77.5 508.7 78.2C517.9 78.6 521.0 81.2 521.0 88.4C521.0 98.4 521.1 98.5 534.3 105.1C557.6 116.8 558.0 117.3 558.0 133.8C558.0 140.0 557.5 148.2 556.9 152.1C554.7 166.6 556.7 160.4 559.9 142.8C563.7 122.4 564.0 121.6 568.2 118.0L571.2 115.4L563.7 108.3C545.4 90.9 514.8 74.9 480.1 64.6L475.0 63.1L469.7 73.8L464.4 84.5L467.7 90.5C472.8 99.9 472.5 102.0 461.7 134.5C450.7 167.5 450.1 168.6 441.5 177.0L434.9 183.5L428.7 183.5C425.3 183.5 406.8 183.4 387.7 183.2L352.8 183.0L346.4 176.8C342.8 173.4 339.1 169.2 338.0 167.5C337.0 165.8 331.8 151.6 326.6 136.0C315.4 102.9 315.0 99.9 320.0 90.0L323.0 84.1L318.0 73.6C314.4 65.9 312.6 63.0 311.3 63.0C310.3 63.0 303.0 65.2 295.0 67.9C263.2 78.5 239.2 91.8 220.8 108.8L215.0 114.2L219.1 117.9C222.9 121.2 223.3 122.2 225.1 130.9C227.3 141.7 238.3 203.4 240.2 216.0L241.5 224.5L246.0 224.8C258.3 225.5 266.7 227.5 297.5 237.7C320.3 245.2 340.6 253.0 355.8 260.1C371.7 267.5 375.3 272.2 376.7 287.4C377.2 293.4 377.5 293.9 379.9 294.4C383.3 294.9 408.7 294.6 409.4 293.9ZM361.0 289.8C361.0 289.1 360.0 286.7 358.7 284.5C356.1 279.7 347.1 274.9 324.0 265.7C298.1 255.5 252.9 241.0 246.8 241.0C241.7 241.0 214.0 267.6 214.0 272.6C214.0 273.3 219.2 273.9 229.5 274.4C257.6 275.6 302.8 281.0 341.5 287.9C360.5 291.3 361.0 291.4 361.0 289.8ZM447.8 287.5C493.8 279.8 529.3 275.6 557.5 274.4C566.0 274.0 573.0 273.4 573.0 273.0C573.0 269.2 569.4 264.8 556.8 253.5L542.7 240.8L538.6 241.4C526.1 243.4 453.0 269.3 437.2 277.4C431.5 280.3 428.2 283.7 427.0 287.8C426.5 289.6 426.4 291.0 426.7 291.0C426.9 291.0 436.5 289.4 447.8 287.5ZM192.0 274.0L197.7 274.0L198.4 268.1C198.8 264.9 200.0 259.7 201.0 256.6C206.3 241.7 199.6 182.4 191.5 172.4L189.1 169.5L186.1 172.5C178.1 180.3 171.8 228.4 174.9 257.5C176.9 276.3 176.5 275.3 181.8 274.6C184.3 274.3 188.9 274.0 192.0 274.0ZM610.4 272.8C614.9 252.2 613.5 212.8 607.4 188.0C603.6 172.7 600.2 168.0 596.1 172.4C587.2 181.8 580.7 242.9 586.8 259.7C588.0 263.1 589.0 267.7 589.0 269.9L589.0 273.9L596.8 274.3C601.0 274.4 605.7 274.7 607.2 274.8C609.3 275.0 610.1 274.5 610.4 272.8ZM360.2 257.2C359.1 256.3 355.5 251.0 352.1 245.6C346.9 237.1 346.0 235.0 346.0 230.9C346.0 224.7 347.7 223.0 353.8 223.0C359.8 223.0 359.6 222.8 366.4 233.8L372.3 243.0L393.7 243.0L415.0 243.0L417.8 238.4C425.5 225.3 427.2 223.5 432.2 223.2C439.5 222.7 441.0 224.0 441.0 230.7C441.0 235.9 440.5 237.0 434.4 246.7C430.7 252.4 426.9 257.5 425.9 258.0C424.9 258.6 411.2 259.0 393.2 259.0C365.1 259.0 362.0 258.8 360.2 257.2ZM224.9 233.7C226.0 232.3 225.4 221.0 224.3 221.0C224.0 221.0 222.5 221.9 220.9 223.1C218.2 225.0 218.0 225.6 218.0 232.1L218.0 239.1L220.8 237.1C222.4 236.0 224.2 234.5 224.9 233.7ZM566.3 223.4C563.1 220.8 562.6 221.3 561.6 228.0C560.9 232.2 561.1 232.6 564.7 235.6L568.5 238.8L568.8 232.2C569.1 226.1 568.9 225.5 566.3 223.4ZM220.3 196.7C208.7 128.4 207.3 123.9 200.9 134.3C198.1 138.6 191.0 152.5 191.0 153.5C191.0 153.8 192.5 154.0 194.4 154.0C204.6 154.0 211.4 167.1 215.1 194.3L216.3 203.1L218.5 201.0C219.9 199.7 220.6 198.1 220.3 196.7ZM575.1 178.5C579.2 161.4 584.8 154.0 593.6 154.0L596.0 154.0L592.9 147.8C591.2 144.3 588.2 138.9 586.3 135.7L582.8 129.9L580.5 132.0C578.1 134.3 577.0 138.9 570.0 178.5C566.5 198.4 566.5 198.8 568.7 201.3C570.4 203.1 570.5 202.9 571.7 195.4C572.4 191.0 574.0 183.4 575.1 178.5ZM244.5 183.0C240.8 181.9 237.5 179.0 235.5 175.0C233.3 170.8 230.0 150.4 229.3 136.9C228.3 118.2 229.9 116.2 256.1 103.5C261.2 101.0 265.7 98.4 266.2 97.7C266.6 97.1 267.0 93.5 267.0 89.8C267.0 83.6 267.2 83.0 270.1 80.6C272.8 78.3 274.0 78.0 281.4 78.0C290.7 78.0 293.4 79.2 295.6 84.6C299.1 93.0 296.4 103.6 289.7 108.0C286.1 110.3 285.9 110.7 286.4 114.0C290.5 138.3 290.9 160.2 287.5 168.7C283.8 178.0 273.7 183.0 257.5 183.6C252.0 183.8 246.1 183.5 244.5 183.0ZM536.1 166.4L538.5 163.8L532.0 157.7C528.4 154.3 522.7 150.0 519.2 148.2L513.0 144.9L513.0 149.7C513.1 159.3 517.4 164.9 526.7 167.5C533.3 169.3 533.4 169.3 536.1 166.4ZM265.3 165.2C268.1 164.0 270.7 161.9 271.9 160.0C274.0 156.5 275.6 147.2 274.3 145.9C273.0 144.6 261.5 151.6 254.9 157.7L248.9 163.3L251.2 165.7C253.9 168.6 257.9 168.5 265.3 165.2ZM430.8 161.6L436.8 155.2L445.4 129.2L454.1 103.1L452.1 99.3C448.2 91.6 448.8 91.9 431.9 90.4C408.2 88.3 353.5 89.0 341.5 91.5C340.3 91.7 338.3 94.1 336.6 97.3L333.7 102.6L342.0 127.6C350.9 154.6 351.7 156.4 358.2 162.7L362.5 167.0L385.0 167.3C397.4 167.4 411.4 167.6 416.1 167.8L424.8 168.0L430.8 161.6ZM263.2 130.7C271.9 126.6 272.0 126.5 271.5 123.5C270.1 116.5 270.8 116.6 259.7 122.1C246.1 128.9 245.0 130.0 245.0 136.7L245.0 142.0L249.7 138.4C252.2 136.5 258.3 133.0 263.2 130.7ZM542.9 134.7C543.0 130.9 540.2 128.6 528.7 122.5C518.3 117.1 517.6 117.1 516.7 123.2L516.1 127.0L523.4 130.3C527.4 132.2 533.1 135.3 536.1 137.4C542.0 141.3 542.8 141.0 542.9 134.7ZM367.6 73.9C392.0 72.8 436.6 73.8 445.9 75.6C448.5 76.1 448.8 75.8 452.4 67.6C454.6 62.8 456.1 58.8 455.9 58.6C455.0 57.7 428.4 54.0 415.5 52.9C393.1 51.0 358.3 52.9 337.0 57.1C333.7 57.7 331.0 58.4 331.0 58.5C331.0 58.6 332.8 62.6 335.1 67.4C337.8 73.2 339.6 76.0 340.5 75.6C341.2 75.4 353.4 74.6 367.6 73.9Z"/></svg><span class="brand-name">RAgents</span></a>
|
|
252
265
|
<nav id="main-navigation" aria-label="Main navigation">
|
|
253
|
-
<a href="index.html">Product</a>
|
|
254
|
-
<a href="guide.html">Guide</a>
|
|
266
|
+
<a href="index.html" aria-label="Product"><svg class="nav-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3 4 7.5v9L12 21l8-4.5v-9Z"/><path d="m4 7.5 8 4.5 8-4.5M12 12v9"/></svg><span class="nav-label">Product</span></a>
|
|
267
|
+
<a href="guide.html" aria-label="Guide"><svg class="nav-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 6.5C10 5 7 4.5 3.5 5v13c3.5-.5 6.5 0 8.5 1.5 2-1.5 5-2 8.5-1.5V5C17 4.5 14 5 12 6.5Z"/><path d="M12 6.5v13"/></svg><span class="nav-label">Guide</span></a>
|
|
255
268
|
<a class="nav-github" href="https://github.com/SchlenkR/RAgents" aria-label="GitHub"><svg class="gh-icon" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M12 2a10 10 0 0 0-3.2 19.5c.5.1.7-.2.7-.5v-1.7c-2.8.6-3.4-1.3-3.4-1.3-.5-1.2-1.1-1.5-1.1-1.5-.9-.6.1-.6.1-.6 1 .1 1.5 1 1.5 1 .9 1.6 2.4 1.1 3 .9.1-.7.4-1.1.6-1.4-2.2-.3-4.6-1.1-4.6-5 0-1.1.4-2 1-2.7-.1-.3-.4-1.3.1-2.7 0 0 .8-.3 2.8 1a9.6 9.6 0 0 1 5 0c1.9-1.3 2.8-1 2.8-1 .5 1.4.2 2.4.1 2.7.6.7 1 1.6 1 2.7 0 3.9-2.4 4.7-4.6 5 .4.3.7.9.7 1.9V21c0 .3.2.6.7.5A10 10 0 0 0 12 2Z"/></svg><span class="gh-label">GitHub</span></a>
|
|
256
269
|
</nav>
|
|
257
270
|
<button class="nav-menu" type="button" aria-expanded="false" aria-controls="main-navigation"><span data-menu-label>Menu</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="m6 9 6 6 6-6"/></svg></button>
|
|
@@ -278,7 +291,7 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
278
291
|
</div>
|
|
279
292
|
<div class="sr-only story" data-story>
|
|
280
293
|
<article data-chapter="workspace" id="setups" data-anchor="setups"><h2><span>Tailor a workspace</span> <span>for a task</span></h2><p>The script builds the workspace, so the agents start with everything in place.</p><ul class="bullets"><li>A setup script creates agents, scripts and mini-apps</li><li>Start it again with one click</li><li>Ask for inputs before the run starts</li></ul><p class="how"><span class="how-label">How it works</span> A setup is a tested TypeScript package that appears as a start card. Its script starts agents, TypeScript programs and mini-apps through the same functions the AI uses. A setup dialog can ask for values, such as a repository or a topic, before the run starts.</p></article>
|
|
281
|
-
<article data-chapter="agents" id="agents" data-anchor="agents"><h2><span>Everyone talks</span> <span>to everyone</span></h2><p>Agents write plain text to each other, addressed by handle, such as @agent1.</p><ul class="bullets"><li>Agents hand work to each other</li><li>Agents talk to scripts, scripts answer</li><li>People talk to agents and mini-apps</li><li>Mini-apps talk to people and agents</li><li class="wink">... you get the idea :)</li></ul><p class="how"><span class="how-label">How it works</span> Each agent has its own model, prompt, history and handle. A coordinator takes the task and hands out work. A helper starts with no tools, a picked list, or all tools. When an agent asks you something, the choices appear
|
|
294
|
+
<article data-chapter="agents" id="agents" data-anchor="agents"><h2><span>Everyone talks</span> <span>to everyone</span></h2><p>Agents write plain text to each other, addressed by handle, such as @agent1.</p><ul class="bullets"><li>Agents hand work to each other</li><li>Agents talk to scripts, scripts answer</li><li>People talk to agents and mini-apps</li><li>Mini-apps talk to people and agents</li><li class="wink">... you get the idea :)</li></ul><p class="how"><span class="how-label">How it works</span> Each agent has its own model, prompt, history and handle. A coordinator takes the task and hands out work. A helper starts with no tools, a picked list, or all tools. When an agent asks you something, the choices appear in the chat and your answer goes back to that agent.</p></article>
|
|
282
295
|
<article data-chapter="ui" id="ui" data-anchor="ui"><h2><span>Agents with</span> <span>their own UI</span></h2><p>People are used to working with interfaces. A UI shows what the agent is doing, and you step in with a click.</p><ul class="bullets"><li>The AI builds a UI while it works</li><li>Extensions ship UIs ready to use</li><li>You and the agent use the same UI and state</li><li>Your click goes straight to the agent</li><li>A new UI goes live after its tests pass</li></ul><p class="how"><span class="how-label">How it works</span> A mini-app is a React view on the state of an agent or a TypeScript program. Its buttons call the program's typed functions directly. The AI type-checks and tests a new view before it goes live; if a rebuild fails, the old version stays active. In VS Code, a mini-app opens in its own editor tab.</p></article>
|
|
283
296
|
<article data-chapter="typescript" id="typescript" data-anchor="typescript"><h2><span>Tools are</span> <span>TypeScript functions</span></h2><ul class="bullets"><li>Register a typed function once, from your own plugin</li><li>Agents get it as a tool</li><li>AI-written code calls it, type-checked first</li><li>A button calls it without a model</li><li>Programs call it when events arrive</li></ul><p class="how"><span class="how-label">How it works</span> A snippet runs once and returns its result to the model. A program keeps its state and reacts to later messages. A setup starts agents, programs and UIs. All of them call the same typed functions, with the same permission checks.</p></article>
|
|
284
297
|
<article data-chapter="events" id="events" data-anchor="events"><h2><span>Event-driven</span> <span>journal</span></h2><p>Every step of a run is an event in the journal. Agents and programs subscribe to the events they care about.</p><ul class="bullets"><li>An agent starts when another one finishes</li><li>Replies arrive later as new input, nobody waits</li><li>A watcher without a model wakes an agent that hangs</li><li>Agents read the run's journal</li><li>Fork an agent with its memory</li></ul><p class="how"><span class="how-label">How it works</span> A subscription turns matching events, such as another agent's finished turn, into new input. A watcher is a TypeScript condition without a model, for example no progress for 120 seconds. Agents query the journal themselves and read other agents' transcripts for handoffs.</p></article>
|
|
@@ -338,7 +351,7 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
338
351
|
<section class="shell limits" id="applications" aria-labelledby="limits-title"><h2 id="limits-title">Current status and limits</h2><p>RAgents is under active development. Actor programs, their functions, state, and mini-apps belong to one run. Events and time-based triggers need an agent or TypeScript actor. Schedules, a user-management interface, and several people in the same run are not available yet. Profiles may require sign-in or run without it. General user permissions can limit new runs to approved setups and hide settings, models, and technical views while keeping chats and mini-apps usable.</p></section>
|
|
339
352
|
</div>
|
|
340
353
|
</main>
|
|
341
|
-
<footer class="site-footer"><div class="shell footer-grid"><div class="footer-about"><a class="footer-brand" href="#main"><svg class="footer-logo" aria-hidden="true" viewBox="0 0 787 787"><use href="#ragents-mark"/></svg>RAgents</a><p>Tailored AI Workspaces for your teams or your clients.</p
|
|
354
|
+
<footer class="site-footer"><div class="shell footer-grid"><div class="footer-about"><a class="footer-brand" href="#main"><svg class="footer-logo" aria-hidden="true" viewBox="0 0 787 787"><use href="#ragents-mark"/></svg>RAgents</a><p>Tailored AI Workspaces for your teams or your clients.</p><p>Made by Ronald Schlenker, Pure State IT Consulting</p></div><nav class="footer-col" aria-label="Docs"><h3>Docs</h3><a href="guide.html">Guide</a><a href="guide-getting-started.html">Getting started</a><a href="guide-plugins.html">Plugins</a><a href="guide-clients.html">Web, VS Code and CLI</a></nav><nav class="footer-col" aria-label="Project"><h3>Project</h3><a href="https://github.com/SchlenkR/RAgents">GitHub</a><a href="https://github.com/SchlenkR/RAgents/issues">Issues</a><a href="https://marketplace.visualstudio.com/items?itemName=purestate.ragents-vscode">VS Code Marketplace</a><a href="https://github.com/SchlenkR/RAgents/blob/main/LICENSE">License</a></nav></div><div class="shell footer-bottom"><p>Licensed under <a href="https://github.com/SchlenkR/RAgents/blob/main/LICENSE">PolyForm Shield 1.0.0</a>: free to use, not for building a competing product.</p><p>Alpha, September 2026</p></div></footer>
|
|
342
355
|
<script>
|
|
343
356
|
(() => {
|
|
344
357
|
const host = document.querySelector('[data-layers]');
|
|
@@ -349,9 +362,19 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
349
362
|
measureTop();
|
|
350
363
|
addEventListener('resize', measureTop);
|
|
351
364
|
const reduce = matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
352
|
-
const
|
|
353
|
-
let compact =
|
|
365
|
+
const slim = () => getComputedStyle(hero).position !== 'sticky';
|
|
366
|
+
let compact = slim();
|
|
354
367
|
const dpr = Math.min(devicePixelRatio || 1, 2);
|
|
368
|
+
let rested = false;
|
|
369
|
+
const density = (width, height, most, sharp = dpr) => !slim() ? sharp : rested ? 0 : Math.min(sharp, Math.sqrt(most / Math.max(1, width * height)));
|
|
370
|
+
const scrap = items => items.forEach(item => {
|
|
371
|
+
item.canvas.width = 0;
|
|
372
|
+
item.canvas.height = 0;
|
|
373
|
+
});
|
|
374
|
+
const discard = map => {
|
|
375
|
+
scrap(map);
|
|
376
|
+
map.clear();
|
|
377
|
+
};
|
|
355
378
|
const ease = t => t < 0 ? 0 : t > 1 ? 1 : t * t * (3 - 2 * t);
|
|
356
379
|
const clamp = (value, low = 0, high = 1) => Math.min(high, Math.max(low, value));
|
|
357
380
|
const lerp = (a, b, t) => a + (b - a) * t;
|
|
@@ -409,17 +432,27 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
409
432
|
const rainContext = rain.getContext('2d');
|
|
410
433
|
const layers = specs.map(spec => {
|
|
411
434
|
const atlas = document.createElement('canvas');
|
|
412
|
-
|
|
413
|
-
const slot = [Math.ceil((spec.font * .8 + pad * 2) * dpr), Math.ceil((spec.font * 1.4 + pad * 2) * dpr)];
|
|
414
|
-
atlas.width = slot[0] * 16;
|
|
415
|
-
atlas.height = slot[1] * 12;
|
|
416
|
-
return { ...spec, atlas, atlasContext: atlas.getContext('2d'), slot, glyphs: new Map(), columns: [], rows: 0, w: 0, h: 0 };
|
|
435
|
+
return { ...spec, atlas, atlasContext: atlas.getContext('2d'), pad: Math.ceil(spec.blur * 3) + 2, slot: [0, 0], room: 0, glyphs: new Map(), columns: [], rows: 0, w: 0, h: 0 };
|
|
417
436
|
});
|
|
418
437
|
const ink = document.createElement('canvas').getContext('2d', { willReadFrequently: true });
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
const
|
|
438
|
+
let plane = new Float32Array(0);
|
|
439
|
+
let strip = new Float32Array(0);
|
|
440
|
+
let rainRatio = 0;
|
|
441
|
+
const sharpen = ratio => {
|
|
442
|
+
rainRatio = ratio;
|
|
443
|
+
const lines = slim() ? 5 : 12;
|
|
444
|
+
layers.forEach(layer => {
|
|
445
|
+
layer.slot = [Math.ceil((layer.font * .8 + layer.pad * 2) * ratio), Math.ceil((layer.font * 1.4 + layer.pad * 2) * ratio)];
|
|
446
|
+
layer.room = 16 * lines;
|
|
447
|
+
layer.atlas.width = layer.slot[0] * 16;
|
|
448
|
+
layer.atlas.height = layer.slot[1] * lines;
|
|
449
|
+
layer.glyphs.clear();
|
|
450
|
+
});
|
|
451
|
+
ink.canvas.width = Math.max(...layers.map(({ slot }) => slot[0]));
|
|
452
|
+
ink.canvas.height = Math.max(...layers.map(({ slot }) => slot[1]));
|
|
453
|
+
plane = new Float32Array(ink.canvas.width * ink.canvas.height);
|
|
454
|
+
strip = new Float32Array(Math.max(ink.canvas.width, ink.canvas.height));
|
|
455
|
+
};
|
|
423
456
|
const stream = (layer, top) => ({ top, head: top, entries: [], seed: Math.random() * 1000, speed: layer.speed * .4 * 5 ** Math.random() });
|
|
424
457
|
const grow = (layer, current) => {
|
|
425
458
|
const last = current.entries[current.entries.length - 1];
|
|
@@ -459,9 +492,11 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
459
492
|
};
|
|
460
493
|
const resize = () => {
|
|
461
494
|
const box = rain.getBoundingClientRect();
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
495
|
+
const ratio = density(box.width, box.height, 1.2e6);
|
|
496
|
+
if (layers[0].w === box.width && layers[0].h === box.height && ratio === rainRatio) return;
|
|
497
|
+
if (ratio !== rainRatio) sharpen(ratio);
|
|
498
|
+
rain.width = Math.round(box.width * ratio);
|
|
499
|
+
rain.height = Math.round(box.height * ratio);
|
|
465
500
|
layers.forEach(layer => build(layer, box));
|
|
466
501
|
};
|
|
467
502
|
resize();
|
|
@@ -507,16 +542,16 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
507
542
|
const key = color + character;
|
|
508
543
|
if (layer.glyphs.has(key)) return layer.glyphs.get(key);
|
|
509
544
|
const [width, height] = layer.slot;
|
|
510
|
-
if (layer.glyphs.size >=
|
|
545
|
+
if (layer.glyphs.size >= layer.room) layer.glyphs.clear();
|
|
511
546
|
const origin = [layer.glyphs.size % 16 * width, Math.floor(layer.glyphs.size / 16) * height];
|
|
512
547
|
ink.clearRect(0, 0, width, height);
|
|
513
|
-
ink.font = mono(layer.font *
|
|
548
|
+
ink.font = mono(layer.font * rainRatio, 600);
|
|
514
549
|
ink.textAlign = 'center';
|
|
515
550
|
ink.textBaseline = 'middle';
|
|
516
551
|
ink.fillStyle = color;
|
|
517
552
|
ink.fillText(character, width / 2, height / 2);
|
|
518
553
|
const image = ink.getImageData(0, 0, width, height);
|
|
519
|
-
soften(image, layer.blur *
|
|
554
|
+
soften(image, layer.blur * rainRatio);
|
|
520
555
|
layer.atlasContext.putImageData(image, origin[0], origin[1]);
|
|
521
556
|
layer.glyphs.set(key, origin);
|
|
522
557
|
return origin;
|
|
@@ -566,7 +601,7 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
566
601
|
const character = step < flips ? noise[Math.floor(hash(current.seed + row, step + 3) * noise.length)] : text[index];
|
|
567
602
|
const [sx, sy] = glyph(layer, character, behind < 1 ? theme.head : tail);
|
|
568
603
|
rainContext.globalAlpha = strength;
|
|
569
|
-
rainContext.drawImage(atlas, sx, sy, width, height, Math.round(column.x *
|
|
604
|
+
rainContext.drawImage(atlas, sx, sy, width, height, Math.round(column.x * rainRatio - width / 2), Math.round(y * rainRatio - height / 2), width, height);
|
|
570
605
|
}
|
|
571
606
|
});
|
|
572
607
|
if (!alive(current) && current.head > current.top + 1) {
|
|
@@ -576,35 +611,37 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
576
611
|
});
|
|
577
612
|
};
|
|
578
613
|
|
|
579
|
-
const debrisLayer = (blur, alpha,
|
|
614
|
+
const debrisLayer = (blur, alpha, sharp) => {
|
|
580
615
|
const canvas = document.createElement('canvas');
|
|
581
616
|
canvas.className = 'panel';
|
|
582
617
|
canvas.style.filter = `blur(${blur}px)`;
|
|
583
618
|
canvas.style.opacity = String(alpha);
|
|
584
619
|
host.append(canvas);
|
|
585
|
-
return { canvas, context: canvas.getContext('2d'), ratio, w: 0, h: 0 };
|
|
620
|
+
return { canvas, context: canvas.getContext('2d'), sharp, most: 0, ratio: 0, w: 0, h: 0 };
|
|
586
621
|
};
|
|
587
622
|
const far = debrisLayer(.6, .8, dpr);
|
|
588
623
|
const players = [0, 1].map(() => {
|
|
589
624
|
const canvas = document.createElement('canvas');
|
|
590
625
|
canvas.className = 'panel';
|
|
591
626
|
host.append(canvas);
|
|
592
|
-
return { canvas, context: canvas.getContext('2d'),
|
|
627
|
+
return { canvas, context: canvas.getContext('2d'), sharp: dpr, most: 2e6, ratio: 0, w: 0, h: 0, story: null, t: 0, emitted: 0, spot: null, depth: .4, target: .4, mirror: false, debris: new Map(), placements: new Map(), sprites: new Map() };
|
|
593
628
|
});
|
|
594
629
|
const near = debrisLayer(1.8, .92, 1);
|
|
595
630
|
const forget = () => players.forEach(player => {
|
|
596
|
-
player.debris
|
|
631
|
+
discard(player.debris);
|
|
597
632
|
player.placements.clear();
|
|
598
633
|
});
|
|
599
634
|
const sizePlayers = () => {
|
|
600
635
|
[...players, far, near].forEach(layer => {
|
|
601
636
|
const box = layer.canvas.getBoundingClientRect();
|
|
602
|
-
|
|
637
|
+
const ratio = slim() && layer.story === null ? 0 : density(box.width, box.height, layer.most, layer.sharp);
|
|
638
|
+
if (layer.w === box.width && layer.h === box.height && layer.ratio === ratio) return;
|
|
603
639
|
layer.w = box.width;
|
|
604
640
|
layer.h = box.height;
|
|
605
|
-
layer.
|
|
606
|
-
layer.canvas.
|
|
607
|
-
layer.
|
|
641
|
+
layer.ratio = ratio;
|
|
642
|
+
layer.canvas.width = Math.round(box.width * ratio);
|
|
643
|
+
layer.canvas.height = Math.round(box.height * ratio);
|
|
644
|
+
layer.context.setTransform(ratio, 0, 0, ratio, 0, 0);
|
|
608
645
|
});
|
|
609
646
|
forget();
|
|
610
647
|
};
|
|
@@ -632,7 +669,8 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
632
669
|
let warmedAt = 0;
|
|
633
670
|
const drawDebris = (player, debris, light, t) => {
|
|
634
671
|
const { particles, pool, cx, cy, base } = debris;
|
|
635
|
-
const
|
|
672
|
+
const own = { context: player.context, ratio: player.ratio ?? dpr };
|
|
673
|
+
const targets = player.region ? [own, own, own] : [far, own, near];
|
|
636
674
|
const tail = tailColor();
|
|
637
675
|
[0, 1, 2].forEach(layer => {
|
|
638
676
|
const target = targets[layer];
|
|
@@ -670,7 +708,8 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
670
708
|
};
|
|
671
709
|
const drawShot = (c, debris, light, t) => {
|
|
672
710
|
const { canvas, left, top, width, height, cell, cols, cells, from } = debris;
|
|
673
|
-
if (t > from + .62
|
|
711
|
+
if (t > from + .62) scrap([debris]);
|
|
712
|
+
if (!canvas.width || !debris.particles.length) return;
|
|
674
713
|
c.save();
|
|
675
714
|
c.globalAlpha = light;
|
|
676
715
|
c.beginPath();
|
|
@@ -839,7 +878,7 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
839
878
|
return pens.get(context);
|
|
840
879
|
};
|
|
841
880
|
const sprite = (player, name, c, draw) => {
|
|
842
|
-
if (!player.sprites) return draw();
|
|
881
|
+
if (!player.sprites || compact) return draw();
|
|
843
882
|
const { route } = c;
|
|
844
883
|
const real = route.target;
|
|
845
884
|
if (traits.some(trait => typeof real[trait] === 'object')) return draw();
|
|
@@ -1032,7 +1071,7 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
1032
1071
|
};
|
|
1033
1072
|
const kit = (player, solo = '') => {
|
|
1034
1073
|
const { w, h, story } = player;
|
|
1035
|
-
const c = solo || !player.sprites ? player.context : pen(player.context);
|
|
1074
|
+
const c = solo || !player.sprites || compact ? player.context : pen(player.context);
|
|
1036
1075
|
const t = player.t;
|
|
1037
1076
|
const s = .62 + player.depth * .45;
|
|
1038
1077
|
const mirrored = player.mirror;
|
|
@@ -3229,7 +3268,12 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
3229
3268
|
c.clearRect(0, 0, pixels, pixels);
|
|
3230
3269
|
c.setTransform(zoom, 0, 0, zoom, pixels / 2 - cx * zoom, pixels / 2 - cy * zoom);
|
|
3231
3270
|
drawScene(player, k);
|
|
3271
|
+
scrap(player.debris);
|
|
3232
3272
|
};
|
|
3273
|
+
const dropBubbles = () => planes.forEach(plane => plane.slots.forEach(slot => {
|
|
3274
|
+
scrap([slot]);
|
|
3275
|
+
slot.key = '';
|
|
3276
|
+
}));
|
|
3233
3277
|
const drawBubbles = sources => {
|
|
3234
3278
|
const { w: width, h: height } = players[0];
|
|
3235
3279
|
if (arrangement.key !== `${width}x${height}`) arrangement = arrange(width, height);
|
|
@@ -3498,11 +3542,11 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
3498
3542
|
|
|
3499
3543
|
let last = performance.now();
|
|
3500
3544
|
const frame = now => {
|
|
3545
|
+
requestAnimationFrame(frame);
|
|
3501
3546
|
const delta = Math.max(0, Math.min(.05, (now - last) / 1000));
|
|
3502
3547
|
last = now;
|
|
3503
3548
|
if (mobile) {
|
|
3504
3549
|
glance(delta);
|
|
3505
|
-
requestAnimationFrame(frame);
|
|
3506
3550
|
return;
|
|
3507
3551
|
}
|
|
3508
3552
|
let moved = 0;
|
|
@@ -3528,7 +3572,6 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
3528
3572
|
drawBubbles([front, back].filter(player => player.story === intro));
|
|
3529
3573
|
[far, near].forEach(layer => { layer.canvas.style.visibility = layer.used ? 'visible' : 'hidden'; });
|
|
3530
3574
|
if (feed.length > 40) feed.splice(0, feed.length - 40);
|
|
3531
|
-
requestAnimationFrame(frame);
|
|
3532
3575
|
};
|
|
3533
3576
|
|
|
3534
3577
|
const note = (text, target, light, place) => ({ text, target, light, place });
|
|
@@ -3551,7 +3594,6 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
3551
3594
|
target.toggleAttribute('data-centered', next.centered);
|
|
3552
3595
|
target.dataset.side = next.side;
|
|
3553
3596
|
};
|
|
3554
|
-
const pace = 1 / 3;
|
|
3555
3597
|
const blocks = new Map();
|
|
3556
3598
|
let stageHeight = 0;
|
|
3557
3599
|
let copyShift = 0;
|
|
@@ -3569,13 +3611,16 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
3569
3611
|
const leave = leaveAt(index, height);
|
|
3570
3612
|
const q = index === playlist.length - 1 ? Math.min(0, p / scroll - .5) : p / scroll - .5;
|
|
3571
3613
|
const reach = .7 * out;
|
|
3572
|
-
const
|
|
3573
|
-
const
|
|
3574
|
-
|
|
3614
|
+
const settle = 40;
|
|
3615
|
+
const rest = -.2;
|
|
3616
|
+
const exit = .25;
|
|
3617
|
+
const outward = -out * clamp((q - exit) / (.5 - exit)) ** 2;
|
|
3618
|
+
const inward = q < rest ? settle + (reach - settle) * (1 - clamp((q + .5) / (rest + .5))) ** 2 : settle * clamp((exit - q) / (exit - rest));
|
|
3619
|
+
const y = story.centered ? -Math.max(0, p - leave) * (top + height) / Math.max(1, scroll - leave) : q > exit ? outward : inward;
|
|
3575
3620
|
const shown = clamp((Math.min(stageHeight, top + y + height) - Math.max(0, top + y)) / Math.max(1, height));
|
|
3576
3621
|
if (story.centered) return [y, shown, y, 1, 1];
|
|
3577
3622
|
const arrive = ease(clamp((q + .5) / .08));
|
|
3578
|
-
return [y, q >
|
|
3623
|
+
return [y, q > exit ? shown : 1, q > exit ? outward : 100 * (1 - arrive), arrive, ease(clamp((q + .5) / .15))];
|
|
3579
3624
|
};
|
|
3580
3625
|
const placeCopy = () => {
|
|
3581
3626
|
const [y, fade, titleY, titleFade, bodyFade] = driftAt(front.story, front.index, front.t);
|
|
@@ -3679,9 +3724,10 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
3679
3724
|
const sizeWire = () => {
|
|
3680
3725
|
wireKey = '';
|
|
3681
3726
|
const box = wire.getBoundingClientRect();
|
|
3682
|
-
|
|
3683
|
-
wire.
|
|
3684
|
-
|
|
3727
|
+
const ratio = slim() ? 0 : dpr;
|
|
3728
|
+
wire.width = Math.round(box.width * ratio);
|
|
3729
|
+
wire.height = Math.round(box.height * ratio);
|
|
3730
|
+
wireContext.setTransform(ratio, 0, 0, ratio, 0, 0);
|
|
3685
3731
|
};
|
|
3686
3732
|
sizeWire();
|
|
3687
3733
|
addEventListener('resize', sizeWire);
|
|
@@ -3939,27 +3985,31 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
3939
3985
|
const after = document.querySelector('.after');
|
|
3940
3986
|
const sections = playlist.map(name => [name, sheet.querySelector(`[data-chapter="${name}"]`)]).filter(([, node]) => node).map(([name, node]) => {
|
|
3941
3987
|
const story = scenes[name];
|
|
3988
|
+
const pin = document.createElement('div');
|
|
3942
3989
|
const stage = document.createElement('div');
|
|
3943
3990
|
const canvas = document.createElement('canvas');
|
|
3944
3991
|
const label = document.createElement('div');
|
|
3992
|
+
const run = document.createElement('div');
|
|
3993
|
+
pin.className = 'pin';
|
|
3994
|
+
run.className = 'run';
|
|
3945
3995
|
stage.className = 'stage';
|
|
3946
3996
|
stage.setAttribute('aria-hidden', 'true');
|
|
3947
3997
|
label.className = 'note out';
|
|
3948
3998
|
label.dataset.side = 'free';
|
|
3949
3999
|
stage.append(canvas, label);
|
|
3950
|
-
|
|
4000
|
+
pin.append(node.querySelector('h2'), stage);
|
|
4001
|
+
node.prepend(pin);
|
|
4002
|
+
node.append(run);
|
|
3951
4003
|
node.style.setProperty('--kick', story.color);
|
|
3952
4004
|
return {
|
|
3953
|
-
story, stage, label,
|
|
4005
|
+
name, node, pin, run, story, stage, label,
|
|
3954
4006
|
rest: story.end - .85,
|
|
3955
|
-
player: { canvas, context: canvas.getContext('2d'), story, w: 0, h: 0, t: 0, depth: 1, mirror: false, spot: null, wide: 1, second: [], region: null, debris: new Map(), sprites:
|
|
3956
|
-
bands: [], edges: [0, 0], step: null, text: '', size: [0, 0], shownAt: 0, shift: '', painted: false,
|
|
4007
|
+
player: { canvas, context: canvas.getContext('2d'), story, w: 0, h: 0, ratio: 0, t: 0, depth: 1, mirror: false, spot: null, wide: 1, second: [], region: null, debris: new Map(), sprites: null },
|
|
4008
|
+
bands: [], edges: [0, 0], step: null, showing: null, text: '', size: [0, 0], shownAt: 0, shift: '', painted: false, growing: false, progress: -1, start: 0, span: 0, top: 0, bottom: 0,
|
|
3957
4009
|
};
|
|
3958
4010
|
});
|
|
3959
4011
|
Promise.all(Object.values(pictures).map(image => image.decode())).then(() => sections.forEach(section => {
|
|
3960
|
-
section.player.sprites.clear();
|
|
3961
4012
|
section.painted = false;
|
|
3962
|
-
if (section === live) section.done = false;
|
|
3963
4013
|
}));
|
|
3964
4014
|
const heightOf = (story, name) => {
|
|
3965
4015
|
const [, fy, , sy = 0] = stationOf(story, name);
|
|
@@ -3995,11 +4045,21 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
3995
4045
|
player.region = { zoom: scale / 1.07, x: (l + r) / 2, y: (t + b) / 2, cx: width / 2, cy: top + (b - t) * scale / 2 };
|
|
3996
4046
|
player.w = width;
|
|
3997
4047
|
player.h = height;
|
|
3998
|
-
player.
|
|
3999
|
-
player.canvas.height = Math.round(height * dpr);
|
|
4000
|
-
player.context.setTransform(dpr, 0, 0, dpr, 0, 0);
|
|
4001
|
-
player.sprites.clear();
|
|
4048
|
+
player.ratio = Math.min(dpr, Math.sqrt(2e6 / Math.max(1, width * height)));
|
|
4002
4049
|
section.shift = '';
|
|
4050
|
+
drop(section);
|
|
4051
|
+
};
|
|
4052
|
+
const mount = ({ player }) => {
|
|
4053
|
+
const width = Math.round(player.w * player.ratio);
|
|
4054
|
+
const height = Math.round(player.h * player.ratio);
|
|
4055
|
+
if (player.canvas.width === width && player.canvas.height === height) return;
|
|
4056
|
+
player.canvas.width = width;
|
|
4057
|
+
player.canvas.height = height;
|
|
4058
|
+
player.context.setTransform(player.ratio, 0, 0, player.ratio, 0, 0);
|
|
4059
|
+
};
|
|
4060
|
+
const drop = section => {
|
|
4061
|
+
scrap([section.player]);
|
|
4062
|
+
discard(section.player.debris);
|
|
4003
4063
|
section.painted = false;
|
|
4004
4064
|
};
|
|
4005
4065
|
const showStep = (section, step, instant) => {
|
|
@@ -4009,6 +4069,7 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
4009
4069
|
const fill = () => {
|
|
4010
4070
|
if (section.step !== step) return;
|
|
4011
4071
|
section.text = step.label || step.text;
|
|
4072
|
+
section.showing = step;
|
|
4012
4073
|
label.textContent = section.text;
|
|
4013
4074
|
section.size = [label.offsetWidth, label.offsetHeight];
|
|
4014
4075
|
label.classList.toggle('out', !section.text);
|
|
@@ -4023,7 +4084,7 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
4023
4084
|
setTimeout(fill, 360);
|
|
4024
4085
|
};
|
|
4025
4086
|
const pointers = (section, k, grow) => {
|
|
4026
|
-
const { player, story, label, step } = section;
|
|
4087
|
+
const { player, story, label, showing: step } = section;
|
|
4027
4088
|
if (!step || !section.text) return;
|
|
4028
4089
|
const [width, height] = section.size;
|
|
4029
4090
|
const aims = step.target.filter(([name]) => story.stations[name]).map(item => frameOf(k, story, item));
|
|
@@ -4050,77 +4111,56 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
4050
4111
|
c.restore();
|
|
4051
4112
|
};
|
|
4052
4113
|
const stepAt = (story, time) => story.steps.filter(step => step.at <= time).pop() ?? story.steps[0];
|
|
4053
|
-
const
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
player.t = rest;
|
|
4057
|
-
player.wide = 1;
|
|
4058
|
-
player.debris = new Map();
|
|
4059
|
-
player.spot = kit(player).focusTarget(rest);
|
|
4060
|
-
const view = { ...player, second: [], sprites: null };
|
|
4061
|
-
const k = kit(view);
|
|
4062
|
-
player.context.clearRect(0, 0, player.w, player.h);
|
|
4063
|
-
drawScene(view, k);
|
|
4064
|
-
pointers(section, k, 1);
|
|
4065
|
-
section.painted = true;
|
|
4066
|
-
section.done = true;
|
|
4067
|
-
};
|
|
4068
|
-
const start = section => {
|
|
4069
|
-
const { player } = section;
|
|
4070
|
-
player.t = preroll;
|
|
4071
|
-
player.spot = null;
|
|
4072
|
-
player.wide = 1;
|
|
4073
|
-
player.debris = new Map();
|
|
4074
|
-
section.done = false;
|
|
4075
|
-
};
|
|
4076
|
-
const play = (section, moved) => {
|
|
4114
|
+
const landing = .88;
|
|
4115
|
+
const pace = 1.8;
|
|
4116
|
+
const scrubSection = (section, progress) => {
|
|
4077
4117
|
const { player, story, rest } = section;
|
|
4078
|
-
|
|
4079
|
-
const
|
|
4080
|
-
|
|
4081
|
-
const
|
|
4082
|
-
|
|
4083
|
-
|
|
4084
|
-
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
|
|
4118
|
+
const time = preroll + clamp(progress / landing) * (rest - preroll);
|
|
4119
|
+
const calm = clamp((progress - landing) / (1 - landing));
|
|
4120
|
+
const fresh = !section.painted;
|
|
4121
|
+
const moved = time - player.t;
|
|
4122
|
+
if (fresh || moved < 0) {
|
|
4123
|
+
discard(player.debris);
|
|
4124
|
+
player.spot = null;
|
|
4125
|
+
}
|
|
4126
|
+
player.t = time;
|
|
4127
|
+
const step = stepAt(story, time);
|
|
4128
|
+
showStep(section, step, fresh);
|
|
4129
|
+
const probe = kit(player);
|
|
4130
|
+
const target = probe.focusTarget(time);
|
|
4131
|
+
const wide = probe.focusName(time) === '*' ? 1 : 0;
|
|
4132
|
+
const ahead = Math.max(0, moved);
|
|
4133
|
+
player.wide = player.spot ? player.wide + (wide - player.wide) * (1 - Math.exp(-ahead * 3)) : wide;
|
|
4134
|
+
player.spot = player.spot ? [lerp(player.spot[0], target[0], 1 - Math.exp(-ahead * 7)), lerp(player.spot[1], target[1], 1 - Math.exp(-ahead * 7))] : target;
|
|
4135
|
+
player.second = [...step.target, ...step.light.map(name => [name])].filter(([name]) => story.stations[name]).map(([name]) => probe.pos(name));
|
|
4136
|
+
const look = { ...player, wide: lerp(player.wide, 1, calm) };
|
|
4137
|
+
const k = kit(look);
|
|
4088
4138
|
const grow = ease(clamp((performance.now() - section.shownAt) / 600));
|
|
4139
|
+
mount(section);
|
|
4089
4140
|
player.context.clearRect(0, 0, player.w, player.h);
|
|
4090
|
-
drawScene(
|
|
4141
|
+
drawScene(look, k);
|
|
4091
4142
|
pointers(section, k, grow);
|
|
4092
4143
|
section.painted = true;
|
|
4093
|
-
section.
|
|
4144
|
+
section.growing = grow < 1;
|
|
4145
|
+
section.progress = progress;
|
|
4094
4146
|
};
|
|
4095
|
-
|
|
4147
|
+
const progressOf = section => reduce ? 1 : clamp((scrollY - section.start) / Math.max(1, section.span));
|
|
4096
4148
|
let heroSpan = 0;
|
|
4097
4149
|
let introClock = 0;
|
|
4098
4150
|
let mobileKey = '';
|
|
4099
4151
|
let afterTop = 0;
|
|
4100
4152
|
let view = [0, 0];
|
|
4101
4153
|
const cycle = bubbles.length * bubbleGap;
|
|
4102
|
-
const
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
|
|
4106
|
-
|
|
4107
|
-
const choose = () => {
|
|
4108
|
-
if (reduce || (live && seen(live) >= .55)) return;
|
|
4109
|
-
const next = sections.map(section => [section, seen(section)]).filter(([, share]) => share >= .55).sort((a, b) => b[1] - a[1])[0]?.[0] ?? null;
|
|
4110
|
-
if (next === live) return;
|
|
4111
|
-
if (live && !live.done) still(live);
|
|
4112
|
-
live = next;
|
|
4113
|
-
if (live) start(live);
|
|
4114
|
-
};
|
|
4115
|
-
const prepare = () => {
|
|
4116
|
-
const from = scrollY - innerHeight;
|
|
4117
|
-
const to = scrollY + innerHeight * 2.5;
|
|
4118
|
-
const next = sections.find(section => !section.painted && section !== live && section.bottom > from && section.top < to);
|
|
4119
|
-
if (next) still(next);
|
|
4154
|
+
const restHero = state => {
|
|
4155
|
+
rested = state;
|
|
4156
|
+
resize();
|
|
4157
|
+
sizePlayers();
|
|
4158
|
+
if (state) dropBubbles();
|
|
4120
4159
|
};
|
|
4121
4160
|
const glance = delta => {
|
|
4122
4161
|
view = [scrollY, innerHeight];
|
|
4123
|
-
const moved = paused ||
|
|
4162
|
+
const moved = paused || reduce ? 0 : delta * speed;
|
|
4163
|
+
if (rested ? scrollY < heroSpan + innerHeight * .25 : scrollY > heroSpan + innerHeight * .5) restHero(!rested);
|
|
4124
4164
|
if (scrollY < heroSpan) {
|
|
4125
4165
|
introClock += moved;
|
|
4126
4166
|
front.t = Math.min(introClock, intro.end - 1);
|
|
@@ -4138,32 +4178,40 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
4138
4178
|
drawBubbles([-1, 0, 1].map(round => Math.floor(introClock / cycle) + round).filter(round => round >= 0).map(round => ({ t: introClock - round * cycle, old: false, depth: 1 })));
|
|
4139
4179
|
[far, near].forEach(layer => { layer.canvas.style.visibility = layer.used ? 'visible' : 'hidden'; });
|
|
4140
4180
|
}
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
|
|
4181
|
+
sections.forEach(section => {
|
|
4182
|
+
const within = (above, below) => section.bottom > scrollY - innerHeight * above && section.top < scrollY + innerHeight * below;
|
|
4183
|
+
if (!within(.25, 1.25)) {
|
|
4184
|
+
if (section.player.canvas.width && !within(.75, 1.75)) drop(section);
|
|
4185
|
+
return;
|
|
4186
|
+
}
|
|
4187
|
+
const progress = progressOf(section);
|
|
4188
|
+
if (!section.painted || section.growing || progress !== section.progress) scrubSection(section, progress);
|
|
4189
|
+
});
|
|
4144
4190
|
};
|
|
4145
4191
|
const offsetOf = node => node.getBoundingClientRect().top + scrollY - parseFloat(getComputedStyle(node).scrollMarginTop || 0);
|
|
4146
4192
|
const shape = () => {
|
|
4147
4193
|
const width = sheet.clientWidth;
|
|
4148
4194
|
const room = hero.clientHeight;
|
|
4149
|
-
sections.forEach(section => shapeSection(section, width, room));
|
|
4195
|
+
sections.forEach(section => shapeSection(section, width, room - section.pin.offsetHeight + section.stage.offsetHeight - 12));
|
|
4150
4196
|
sections.forEach(section => {
|
|
4151
|
-
section.
|
|
4152
|
-
section.
|
|
4197
|
+
section.span = reduce ? 0 : Math.round(reels[playlist.indexOf(section.name)] * pace * room);
|
|
4198
|
+
section.run.style.height = `${section.span}px`;
|
|
4153
4199
|
});
|
|
4154
|
-
|
|
4200
|
+
sections.forEach(section => {
|
|
4201
|
+
const box = section.node.getBoundingClientRect();
|
|
4202
|
+
section.start = Math.round(section.run.getBoundingClientRect().top + scrollY - section.pin.offsetHeight - topHeight);
|
|
4203
|
+
section.top = box.top + scrollY;
|
|
4204
|
+
section.bottom = box.bottom + scrollY;
|
|
4205
|
+
});
|
|
4206
|
+
marks = playlist.map((name, index) => index ? sections.find(section => section.name === name)?.start ?? Math.round(offsetOf(document.querySelector(`[data-chapter="${name}"]`))) : 0);
|
|
4155
4207
|
heroSpan = hero.offsetHeight;
|
|
4156
4208
|
afterTop = after.offsetTop;
|
|
4157
4209
|
view = [scrollY, innerHeight];
|
|
4158
|
-
if (live) live.done = false;
|
|
4159
4210
|
};
|
|
4160
4211
|
const release = () => {
|
|
4161
|
-
live = null;
|
|
4162
4212
|
sections.forEach(section => {
|
|
4163
|
-
section
|
|
4164
|
-
section.
|
|
4165
|
-
section.painted = false;
|
|
4166
|
-
section.done = true;
|
|
4213
|
+
drop(section);
|
|
4214
|
+
section.run.style.height = '';
|
|
4167
4215
|
});
|
|
4168
4216
|
menu.style.removeProperty('--kick');
|
|
4169
4217
|
};
|
|
@@ -4202,14 +4250,14 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
4202
4250
|
const from = was ? Math.max(0, marks.findLastIndex(value => value <= seenTop + (seenHeight - topHeight) * .35)) : front.index;
|
|
4203
4251
|
const offset = was ? seenTop - marks[from] : 0;
|
|
4204
4252
|
menu.removeAttribute('data-compact');
|
|
4205
|
-
menu.toggleAttribute('data-compact', list.scrollWidth > list.clientWidth);
|
|
4253
|
+
menu.toggleAttribute('data-compact', slim() || list.scrollWidth > list.clientWidth);
|
|
4206
4254
|
if (!menu.hasAttribute('data-compact')) open(false);
|
|
4207
4255
|
if (topBar.offsetHeight !== topHeight) {
|
|
4208
4256
|
topHeight = topBar.offsetHeight;
|
|
4209
4257
|
dispatchEvent(new Event('resize'));
|
|
4210
4258
|
return;
|
|
4211
4259
|
}
|
|
4212
|
-
compact =
|
|
4260
|
+
compact = slim();
|
|
4213
4261
|
mobile = compact;
|
|
4214
4262
|
if (mobile) {
|
|
4215
4263
|
const key = `${innerWidth}:${topHeight}`;
|
|
@@ -4234,19 +4282,23 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
4234
4282
|
arrangement = { key: '' };
|
|
4235
4283
|
marked = -1;
|
|
4236
4284
|
if (!was) {
|
|
4285
|
+
players.forEach(player => discard(player.sprites));
|
|
4237
4286
|
restart();
|
|
4238
4287
|
introClock = reduce ? 6 : 0;
|
|
4239
4288
|
follow(true);
|
|
4240
|
-
wireContext.clearRect(0, 0, wire.width, wire.height);
|
|
4241
4289
|
wireKey = '';
|
|
4242
4290
|
}
|
|
4291
|
+
sizePlayers();
|
|
4243
4292
|
shape();
|
|
4244
4293
|
if (below) scrollTo(0, after.offsetTop - innerHeight + past);
|
|
4245
4294
|
else if (was !== null) scrollTo(0, marks[from] + Math.max(0, offset));
|
|
4246
4295
|
return;
|
|
4247
4296
|
}
|
|
4248
4297
|
mobileKey = '';
|
|
4249
|
-
if (was)
|
|
4298
|
+
if (was) {
|
|
4299
|
+
release();
|
|
4300
|
+
restHero(false);
|
|
4301
|
+
}
|
|
4250
4302
|
unit = hero.offsetHeight * 2 / .75 / .75;
|
|
4251
4303
|
stageHeight = hero.clientHeight;
|
|
4252
4304
|
reel.style.height = `${topHeight + hero.offsetHeight + unit * reelTotal}px`;
|
|
@@ -4290,7 +4342,7 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
4290
4342
|
badge.removeAttribute('data-on');
|
|
4291
4343
|
};
|
|
4292
4344
|
document.addEventListener('pointerdown', event => {
|
|
4293
|
-
const place = event.isPrimary && event.button === 0 ? event.target.closest('.hero
|
|
4345
|
+
const place = !mobile && event.isPrimary && event.button === 0 ? event.target.closest('.hero') : null;
|
|
4294
4346
|
if (!place || event.target.closest('a, button')) return;
|
|
4295
4347
|
letGo();
|
|
4296
4348
|
press = { id: event.pointerId, x: event.clientX, y: event.clientY, timer: 0 };
|
|
@@ -4313,6 +4365,7 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
4313
4365
|
dispatchEvent(new Event('resize'));
|
|
4314
4366
|
follow(false);
|
|
4315
4367
|
const tick = () => {
|
|
4368
|
+
requestAnimationFrame(tick);
|
|
4316
4369
|
if (mobile) markScroll();
|
|
4317
4370
|
else {
|
|
4318
4371
|
placeCopy();
|
|
@@ -4321,7 +4374,6 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
4321
4374
|
drawNote();
|
|
4322
4375
|
showFinale();
|
|
4323
4376
|
}
|
|
4324
|
-
requestAnimationFrame(tick);
|
|
4325
4377
|
};
|
|
4326
4378
|
requestAnimationFrame(frame);
|
|
4327
4379
|
requestAnimationFrame(tick);
|
|
@@ -4337,7 +4389,7 @@ a { color: inherit; text-underline-offset: 4px; }
|
|
|
4337
4389
|
jump(index, time);
|
|
4338
4390
|
follow(true);
|
|
4339
4391
|
};
|
|
4340
|
-
window.__state = () => ({ index: front.index, t: front.t, where: where(), steering, scroll: scrollY, unit, head: slots.a.textContent, mirror: front.mirror, concealed, mobile,
|
|
4392
|
+
window.__state = () => ({ index: front.index, t: front.t, where: where(), steering, scroll: scrollY, unit, head: slots.a.textContent, mirror: front.mirror, concealed, mobile, sections: sections.map(section => ({ nav: section.story.nav, progress: section.progress, t: section.player.t, painted: section.painted, pixels: section.player.canvas.width * section.player.canvas.height })), held });
|
|
4341
4393
|
window.__plan = () => playlist.map(name => {
|
|
4342
4394
|
const { steps, end } = scenes[name];
|
|
4343
4395
|
const times = steps.map(step => step.at + 2.1);
|