@schlenkr/ragents 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -11
- package/apps/server/package.json +8 -6
- package/apps/server/src/access-projection.ts +3 -3
- package/apps/server/src/access-service.ts +19 -8
- package/apps/server/src/access-session.ts +6 -2
- package/apps/server/src/api/contracts.ts +19 -18
- package/apps/server/src/api/core-methods.ts +45 -26
- package/apps/server/src/api/delivery.ts +4 -4
- package/apps/server/src/api/reference.ts +1 -1
- package/apps/server/src/api/rights.ts +86 -7
- package/apps/server/src/chat-context.ts +1 -1
- package/apps/server/src/chat-handler.ts +16 -7
- package/apps/server/src/config-file.ts +25 -6
- package/apps/server/src/config.ts +10 -4
- package/apps/server/src/data-directory.ts +1 -1
- package/apps/server/src/folder-install.ts +115 -0
- package/apps/server/src/host-api.json +1257 -0
- package/apps/server/src/host-api.ts +190 -0
- package/apps/server/src/host-resolution-hooks.mjs +50 -1
- package/apps/server/src/host-resolution.ts +26 -1
- package/apps/server/src/host-version.ts +41 -0
- package/apps/server/src/host-web.ts +59 -0
- package/apps/server/src/layout.ts +0 -15
- package/apps/server/src/main.ts +3 -2
- package/apps/server/src/missing-environment.ts +47 -0
- package/apps/server/src/parent-watch.ts +37 -0
- package/apps/server/src/plugin-build/build.ts +650 -0
- package/apps/server/src/plugin-build/host-api-names.ts +185 -0
- package/apps/server/src/plugin-build/plugin-description.ts +118 -0
- package/apps/server/src/plugin-build/typecheck.ts +66 -0
- package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/app-project.ts +16 -15
- package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/client-compiler.ts +4 -4
- package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/client-contracts.ts +4 -4
- package/apps/server/src/plugin-support/actor-programs/client-runtime.ts +27 -0
- package/{plugins/ragents.actor-programs → apps/server/src/plugin-support/actor-programs}/contract.ts +3 -3
- package/apps/server/src/plugin-support/actor-programs/service.ts +1 -1
- package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/tailwind.ts +2 -3
- package/{plugins/ragents.actor-programs → apps/server/src/plugin-support/actor-programs}/workflow/index.ts +48 -48
- package/apps/server/src/plugin-support/agent-tool.ts +12 -8
- package/apps/server/src/plugin-support/http.ts +1 -1
- package/apps/server/src/plugin-support/language-server/contract.ts +37 -6
- package/apps/server/src/plugin-support/language-server/plugin.ts +18 -8
- package/apps/server/src/plugin-support/language-server/snapshot-method.ts +32 -7
- package/apps/server/src/plugin-support/language-server/tools.ts +59 -15
- package/apps/server/src/plugin-support/model-aliases.ts +77 -0
- package/apps/server/src/plugin-support/model-choice.ts +17 -7
- package/apps/server/src/plugin-support/model-completion.ts +58 -0
- package/apps/server/src/plugin-support/model-upstreams.ts +2 -2
- package/apps/server/src/plugin-support/native-typescript-executor.ts +10 -7
- package/apps/server/src/plugin-support/plugin-config.ts +1 -1
- package/apps/server/src/plugin-support/plugin-folder.ts +4 -1
- package/apps/server/src/plugin-support/plugin-module.ts +1 -1
- package/apps/server/src/plugin-support/plugins-root.ts +6 -10
- package/apps/server/src/plugin-support/process-sandbox.ts +312 -0
- package/apps/server/src/plugin-support/product-model-settings-contract.ts +14 -5
- package/apps/server/src/plugin-support/product-model-settings.ts +10 -9
- package/{plugins/ragents.product/server/relay.ts → apps/server/src/plugin-support/product-relay.ts} +2 -2
- package/apps/server/src/plugin-support/product-start-options.ts +8 -3
- package/apps/server/src/plugin-support/prompt.ts +1 -1
- package/apps/server/src/plugin-support/provision.ts +6 -0
- package/apps/server/src/plugin-support/run-scripts.ts +16 -2
- package/apps/server/src/plugin-support/skills.ts +32 -16
- package/apps/server/src/plugin-support/start-entries-contract.ts +12 -3
- package/apps/server/src/plugin-support/start-options-contract.ts +5 -1
- package/apps/server/src/plugin-support/thinking-level.ts +6 -1
- package/apps/server/src/plugin-support/tool-availability.ts +1 -7
- package/apps/server/src/plugin-support/workspace-ownership.ts +12 -6
- package/apps/server/src/plugin-support/workspace-sandbox-host.ts +184 -37
- package/apps/server/src/profile/bundle-manifest.ts +183 -0
- package/apps/server/src/profile/compose.ts +19 -10
- package/apps/server/src/profile/plugin-discovery.ts +98 -46
- package/apps/server/src/profile/provisioning.ts +30 -26
- package/apps/server/src/profile-target.ts +3 -0
- package/apps/server/src/provider.ts +212 -106
- package/apps/server/src/ragents/actor-chat-history.ts +24 -22
- package/apps/server/src/ragents/chat-projection.ts +25 -14
- package/apps/server/src/ragents/chat-text-positions.ts +4 -4
- package/apps/server/src/ragents/coordinator.ts +27 -1
- package/apps/server/src/ragents/document-store.ts +1 -1
- package/apps/server/src/ragents/engine.ts +68 -43
- package/apps/server/src/ragents/global-chat.ts +26 -13
- package/apps/server/src/ragents/host-services.ts +15 -6
- package/apps/server/src/ragents/journal-chat-events.ts +33 -15
- package/apps/server/src/ragents/product-runtime.ts +1 -1
- package/apps/server/src/ragents/run-owner.ts +18 -0
- package/apps/server/src/ragents/runtime-bridge.ts +1 -1
- package/apps/server/src/ragents/session.ts +184 -85
- package/apps/server/src/ragents/start-option-state.ts +1 -1
- package/apps/server/src/ragents/typescript-tools.ts +35 -27
- package/apps/server/src/ragents/workspace-runtime.ts +74 -8
- package/apps/server/src/rpc/dispatcher.ts +17 -8
- package/apps/server/src/rpc/http-transport.ts +1 -3
- package/apps/server/src/rpc/stdio-transport.ts +1 -1
- package/apps/server/src/run-preparation-contract.ts +1 -1
- package/apps/server/src/run-preparation-input.ts +1 -1
- package/apps/server/src/run-preparation.ts +18 -29
- package/apps/server/src/run-transfer.ts +66 -5
- package/apps/server/src/server.ts +112 -33
- package/apps/server/src/settings.ts +9 -12
- package/apps/server/src/title-compactor.ts +5 -8
- package/apps/server/src/title-settings.ts +3 -3
- package/apps/server/src/web-bundles.ts +79 -0
- package/apps/server/src/web-stylesheet.ts +85 -0
- package/apps/server/tsconfig.json +4 -4
- package/apps/server/tsconfig.plugin.json +58 -0
- package/apps/web/dist/assets/highlighted-body-KPVGNVTW-CFhTJEmH.js +1 -0
- package/apps/web/dist/assets/main-DlzW4t4c.js +6 -0
- package/apps/web/dist/assets/mermaid-HWGCJPDP-BPn4aV2r.css +1 -0
- package/apps/web/dist/assets/mermaid-HWGCJPDP-kxkB991i.js +478 -0
- package/apps/web/dist/assets/runPanel-BJEFQ__w.js +21 -0
- package/apps/web/dist/help/guide-access.html +199 -0
- package/apps/web/dist/help/guide-access.md +84 -0
- package/apps/web/dist/help/guide-clients.html +430 -0
- package/apps/web/dist/help/guide-clients.md +346 -0
- package/apps/web/dist/help/guide-distributed.html +325 -0
- package/apps/web/dist/help/guide-distributed.md +230 -0
- package/apps/web/dist/help/guide-functions.html +231 -0
- package/apps/web/dist/help/guide-functions.md +127 -0
- package/apps/web/dist/help/guide-getting-started.html +230 -0
- package/apps/web/dist/help/guide-getting-started.md +123 -0
- package/apps/web/dist/help/guide-ideas.html +183 -0
- package/apps/web/dist/help/guide-ideas.md +71 -0
- package/apps/web/dist/help/guide-plugins.html +450 -0
- package/apps/web/dist/help/guide-plugins.md +341 -0
- package/apps/web/dist/help/guide-programs.html +359 -0
- package/apps/web/dist/help/guide-programs.md +271 -0
- package/apps/web/dist/help/guide-runtime.html +344 -0
- package/apps/web/dist/help/guide-runtime.md +232 -0
- package/apps/web/dist/help/guide.html +133 -0
- package/apps/web/dist/help/guide.md +13 -0
- package/apps/web/dist/help/homepage-bullets.js +12 -0
- package/apps/web/dist/help/homepage-distributed.js +261 -0
- package/apps/web/dist/help/homepage-plugins.js +30 -0
- package/apps/web/dist/help/homepage-scenes.js +368 -0
- package/apps/web/dist/help/homepage-stickers.js +69 -0
- package/apps/web/dist/help/homepage-story-nav.js +11 -0
- package/apps/web/dist/help/homepage-subnav.js +61 -0
- package/apps/web/dist/help/homepage.css +833 -0
- package/apps/web/dist/help/index.html +1167 -0
- package/apps/web/dist/help/mini-app.css +7076 -0
- package/apps/web/dist/help/mini-app.html +15 -0
- package/apps/web/dist/help/mini-app.js +131 -0
- package/apps/web/dist/help/screenshots/release-checklist-vscode.png +0 -0
- package/apps/web/dist/help/screenshots/release-checklist-web.png +0 -0
- package/apps/web/dist/help/scroll-vendor.js +73 -0
- package/apps/web/dist/help/site.css +63 -0
- package/apps/web/dist/help/site.js +103 -0
- package/apps/web/dist/host-web.json +143 -0
- package/apps/web/dist/index.html +15 -0
- package/apps/web/dist/run-panel.html +15 -0
- package/apps/web/package.json +2 -2
- package/apps/web/src/App.tsx +8 -6
- package/apps/web/src/Overview.tsx +5 -5
- package/apps/web/src/PluginActivation.ts +25 -5
- package/apps/web/src/PluginChat.tsx +163 -129
- package/apps/web/src/PluginFailureNotice.tsx +15 -0
- package/apps/web/src/PluginRegistry.tsx +106 -68
- package/apps/web/src/RunPreparationChat.tsx +40 -28
- package/apps/web/src/RunStore.ts +2 -2
- package/apps/web/src/SessionList.tsx +16 -8
- package/apps/web/src/SettingsModal.tsx +37 -37
- package/apps/web/src/StartOptions.tsx +81 -26
- package/apps/web/src/StartSelection.tsx +111 -0
- package/apps/web/src/StartTiles.tsx +73 -0
- package/apps/web/src/{CanvasShortcuts.tsx → SurfaceShortcuts.tsx} +2 -2
- package/apps/web/src/ThemeSettings.tsx +1 -1
- package/apps/web/src/WorkspacePanel.tsx +4 -4
- package/apps/web/src/access-session.ts +4 -1
- package/{plugins/ragents.orchestration/web → apps/web/src}/actor-conversation.ts +3 -3
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/DataTable.tsx +9 -9
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FilePicker.tsx +4 -4
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FlowDiagram.tsx +16 -14
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FlowDiagramRenderer.tsx +3 -3
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Form.tsx +12 -12
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Layout.tsx +1 -1
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/MessageList.tsx +5 -5
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Viewers.tsx +8 -7
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/WorkflowDiagram.tsx +1 -1
- package/apps/web/src/actor-programs/client-ui/chat-contracts.d.ts +64 -0
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/contracts.d.ts +2 -2
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/file-selection.ts +5 -5
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/index.tsx +22 -16
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/layout-contracts.d.ts +1 -1
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/message-list-contracts.d.ts +2 -2
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/workflow-diagram-contracts.d.ts +1 -1
- package/apps/web/src/api.ts +45 -22
- package/apps/web/src/chat/QuasselHost.tsx +12 -0
- package/apps/web/src/chat/StoppedActorNotice.tsx +39 -0
- package/apps/web/src/chat/chat-target.ts +14 -5
- package/apps/web/src/chat/requests.ts +13 -5
- package/apps/web/src/chat/useAttachmentCapabilities.ts +2 -2
- package/apps/web/src/chat/useChat.ts +8 -7
- package/apps/web/src/chat/user-location.ts +1 -1
- package/apps/web/src/chat-view-settings.tsx +49 -0
- package/apps/web/src/host-modules.ts +90 -0
- package/apps/web/src/language-server/api.ts +24 -0
- package/{plugins/ragents.lsp-roslyn/web → apps/web/src/language-server}/language-server-plugin.tsx +133 -6
- package/apps/web/src/main.tsx +4 -2
- package/apps/web/src/offered-machines.ts +11 -0
- package/apps/web/src/panel/ConnectionsPage.tsx +117 -0
- package/apps/web/src/panel/LoginForm.tsx +9 -9
- package/apps/web/src/panel/PanelDialogs.tsx +44 -27
- package/apps/web/src/panel/PanelHeader.tsx +11 -0
- package/apps/web/src/panel/PanelPage.tsx +8 -5
- package/apps/web/src/panel/RunLine.tsx +50 -0
- package/apps/web/src/panel/RunsPage.tsx +84 -0
- package/apps/web/src/panel/StartPage.tsx +163 -0
- package/apps/web/src/panel/connection-state.ts +40 -0
- package/apps/web/src/panel/contract.ts +66 -21
- package/apps/web/src/panel/page-props.ts +6 -0
- package/apps/web/src/plugin-bootstrap.ts +60 -31
- package/{plugins/ragents.product/web → apps/web/src/product}/ModelControl.tsx +3 -3
- package/{plugins/ragents.product/web → apps/web/src/product}/ProductModelSettings.tsx +7 -7
- package/{plugins/ragents.product/web → apps/web/src/product}/SystemPromptControl.tsx +3 -3
- package/{plugins/ragents.product/web → apps/web/src/product}/model-settings.ts +3 -3
- package/{plugins/ragents.product/web → apps/web/src/product}/start-options.tsx +2 -2
- package/apps/web/src/rpc/client.ts +28 -6
- package/apps/web/src/run-panel/RunPanelApp.tsx +334 -0
- package/apps/web/src/{column/ColumnRunHeader.tsx → run-panel/RunPanelHeader.tsx} +2 -2
- package/apps/web/src/{column/ColumnMenu.tsx → run-panel/RunPanelMenu.tsx} +4 -4
- package/apps/web/src/run-panel/RunPanelRail.tsx +38 -0
- package/apps/web/src/run-panel/RunPanelWorkspace.tsx +55 -0
- package/apps/web/src/{column → run-panel}/clipboard.ts +21 -10
- package/apps/web/src/run-panel/host-contract.ts +123 -0
- package/apps/web/src/{column → run-panel}/host.ts +31 -23
- package/apps/web/src/run-panel/input-bridge.ts +75 -0
- package/apps/web/src/run-panel/keyboard.ts +53 -0
- package/apps/web/src/run-panel/run-panel-location.ts +35 -0
- package/apps/web/src/{column → run-panel}/use-session-list.ts +3 -3
- package/apps/web/src/run-panel/workspace-state.ts +43 -0
- package/apps/web/src/{column.tsx → run-panel.tsx} +20 -13
- package/apps/web/src/run-preparation.ts +1 -1
- package/{plugins/ragents.orchestration/web → apps/web/src}/run-view.ts +25 -7
- package/apps/web/src/settings-contributions.ts +16 -18
- package/apps/web/src/title-model-settings.ts +1 -1
- package/apps/web/src/toolLine.ts +1 -1
- package/apps/web/src/ui/ListDetail.tsx +1 -1
- package/apps/web/src/ui/dialog.tsx +5 -5
- package/apps/web/src/ui/frame.css +1 -0
- package/apps/web/src/ui/index.ts +5 -0
- package/apps/web/src/ui/popover.tsx +2 -2
- package/apps/web/src/ui/quassel.css +41 -0
- package/apps/web/src/ui/relative-time.ts +36 -0
- package/apps/web/src/ui/startup-notice.tsx +22 -0
- package/apps/web/src/ui/state-icon.tsx +60 -0
- package/apps/web/src/ui/state-vocabulary.ts +31 -0
- package/apps/web/src/ui/stop-button.tsx +22 -0
- package/apps/web/src/ui/tailwind.css +2 -3
- package/apps/web/src/ui/theme.css +19 -19
- package/apps/web/tsconfig.json +4 -5
- package/apps/web/tsconfig.plugin.json +44 -0
- package/bundles/ragents.activity/ragents-bundle.json +38 -0
- package/bundles/ragents.activity/server/index.js +14 -0
- package/bundles/ragents.activity/server/index.js.map +7 -0
- package/bundles/ragents.activity/web/classes.json +1 -0
- package/bundles/ragents.activity/web/index.js +2 -0
- package/bundles/ragents.activity/web/index.js.map +7 -0
- package/bundles/ragents.actor-programs/prompt.hbs +80 -0
- package/bundles/ragents.actor-programs/ragents-bundle.json +214 -0
- package/bundles/ragents.actor-programs/server/index.js +2071 -0
- package/bundles/ragents.actor-programs/server/index.js.map +7 -0
- package/bundles/ragents.actor-programs/summary.hbs +17 -0
- package/bundles/ragents.actor-programs/web/classes.json +1 -0
- package/bundles/ragents.actor-programs/web/index.js +27 -0
- package/bundles/ragents.actor-programs/web/index.js.map +7 -0
- package/bundles/ragents.ask/ask.hbs +4 -0
- package/bundles/ragents.ask/ragents-bundle.json +97 -0
- package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js +13 -0
- package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +7 -0
- package/bundles/ragents.ask/server/exports/server/contract.js +11 -0
- package/bundles/ragents.ask/server/exports/server/contract.js.map +7 -0
- package/bundles/ragents.ask/server/index.js +279 -0
- package/bundles/ragents.ask/server/index.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-HGFDGTNC.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-HGFDGTNC.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-V7W3QDVS.js +25 -0
- package/bundles/ragents.ask/web/chunks/chunk-V7W3QDVS.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +7 -0
- package/bundles/ragents.ask/web/classes.json +1 -0
- package/bundles/ragents.ask/web/exports/ask-payload.js +2 -0
- package/bundles/ragents.ask/web/exports/ask-payload.js.map +7 -0
- package/bundles/ragents.ask/web/exports/web/QuestionCard.js +2 -0
- package/bundles/ragents.ask/web/exports/web/QuestionCard.js.map +7 -0
- package/bundles/ragents.ask/web/exports/web/api.js +2 -0
- package/bundles/ragents.ask/web/exports/web/api.js.map +7 -0
- package/bundles/ragents.ask/web/index.js +2 -0
- package/bundles/ragents.ask/web/index.js.map +7 -0
- package/bundles/ragents.browser/ragents-bundle.json +53 -0
- package/bundles/ragents.browser/server/chunks/chunk-2GKLLCBE.js +11 -0
- package/bundles/ragents.browser/server/chunks/chunk-2GKLLCBE.js.map +7 -0
- package/bundles/ragents.browser/server/exports/server/contract.js +9 -0
- package/bundles/ragents.browser/server/exports/server/contract.js.map +7 -0
- package/bundles/ragents.browser/server/index.js +479 -0
- package/bundles/ragents.browser/server/index.js.map +7 -0
- package/bundles/ragents.browser/skills/browser-testing/SKILL.md +38 -0
- package/bundles/ragents.documents/prompt.hbs +18 -0
- package/bundles/ragents.documents/ragents-bundle.json +120 -0
- package/bundles/ragents.documents/server/chunks/chunk-QIECRZ7C.js +37 -0
- package/bundles/ragents.documents/server/chunks/chunk-QIECRZ7C.js.map +7 -0
- package/bundles/ragents.documents/server/exports/contract.js +11 -0
- package/bundles/ragents.documents/server/exports/contract.js.map +7 -0
- package/bundles/ragents.documents/server/index.js +290 -0
- package/bundles/ragents.documents/server/index.js.map +7 -0
- package/bundles/ragents.documents/web/classes.json +1 -0
- package/bundles/ragents.documents/web/index.js +26 -0
- package/bundles/ragents.documents/web/index.js.map +7 -0
- package/bundles/ragents.lsp-fsharp/ragents-bundle.json +49 -0
- package/bundles/ragents.lsp-fsharp/server/index.js +82 -0
- package/bundles/ragents.lsp-fsharp/server/index.js.map +7 -0
- package/bundles/ragents.lsp-fsharp/web/classes.json +1 -0
- package/bundles/ragents.lsp-fsharp/web/index.js +2 -0
- package/bundles/ragents.lsp-fsharp/web/index.js.map +7 -0
- package/bundles/ragents.lsp-roslyn/ragents-bundle.json +61 -0
- package/bundles/ragents.lsp-roslyn/server/index.js +208 -0
- package/bundles/ragents.lsp-roslyn/server/index.js.map +7 -0
- package/bundles/ragents.lsp-roslyn/web/classes.json +1 -0
- package/bundles/ragents.lsp-roslyn/web/index.js +2 -0
- package/bundles/ragents.lsp-roslyn/web/index.js.map +7 -0
- package/bundles/ragents.lsp-typescript/ragents-bundle.json +36 -0
- package/bundles/ragents.lsp-typescript/server/index.js +13 -0
- package/bundles/ragents.lsp-typescript/server/index.js.map +7 -0
- package/bundles/ragents.lsp-typescript/web/classes.json +1 -0
- package/bundles/ragents.lsp-typescript/web/index.js +2 -0
- package/bundles/ragents.lsp-typescript/web/index.js.map +7 -0
- package/bundles/ragents.model-relay/ragents-bundle.json +33 -0
- package/bundles/ragents.model-relay/server/index.js +230 -0
- package/bundles/ragents.model-relay/server/index.js.map +7 -0
- package/bundles/ragents.orchestration/orchestration.hbs +106 -0
- package/bundles/ragents.orchestration/ragents-bundle.json +194 -0
- package/bundles/ragents.orchestration/server/index.js +277 -0
- package/bundles/ragents.orchestration/server/index.js.map +7 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-ODMMQGX2.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-ODMMQGX2.js.map +7 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js.map +7 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-OSKPH6SZ.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-OSKPH6SZ.js.map +7 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-XGPPQCZR.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-XGPPQCZR.js.map +7 -0
- package/bundles/ragents.orchestration/web/classes.json +1 -0
- package/bundles/ragents.orchestration/web/exports/web/program-slot.js +2 -0
- package/bundles/ragents.orchestration/web/exports/web/program-slot.js.map +7 -0
- package/bundles/ragents.orchestration/web/exports/web/surface-entities.js +2 -0
- package/bundles/ragents.orchestration/web/exports/web/surface-entities.js.map +7 -0
- package/bundles/ragents.orchestration/web/exports/web/tile-docking.js +2 -0
- package/bundles/ragents.orchestration/web/exports/web/tile-docking.js.map +7 -0
- package/bundles/ragents.orchestration/web/index.js +51 -0
- package/bundles/ragents.orchestration/web/index.js.map +7 -0
- package/bundles/ragents.overseer/ragents-bundle.json +144 -0
- package/bundles/ragents.overseer/server/index.js +652 -0
- package/bundles/ragents.overseer/server/index.js.map +7 -0
- package/bundles/ragents.overseer/web/classes.json +1 -0
- package/bundles/ragents.overseer/web/index.js +25 -0
- package/bundles/ragents.overseer/web/index.js.map +7 -0
- package/bundles/ragents.processes/ragents-bundle.json +93 -0
- package/bundles/ragents.processes/server/index.js +204 -0
- package/bundles/ragents.processes/server/index.js.map +7 -0
- package/bundles/ragents.processes/web/classes.json +1 -0
- package/bundles/ragents.processes/web/index.js +4 -0
- package/bundles/ragents.processes/web/index.js.map +7 -0
- package/bundles/ragents.product/preamble.hbs +9 -0
- package/bundles/ragents.product/ragents-bundle.json +93 -0
- package/bundles/ragents.product/server/index.js +208 -0
- package/bundles/ragents.product/server/index.js.map +7 -0
- package/bundles/ragents.product/web/classes.json +1 -0
- package/bundles/ragents.product/web/index.js +2 -0
- package/bundles/ragents.product/web/index.js.map +7 -0
- package/bundles/ragents.profile-distribution/ragents-bundle.json +64 -0
- package/bundles/ragents.profile-distribution/server/index.js +241 -0
- package/bundles/ragents.profile-distribution/server/index.js.map +7 -0
- package/bundles/ragents.reference/ragents-bundle.json +39 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/RUN.md +27 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +10 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +80 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +82 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +154 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/package.json +9 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/src/server.ts +32 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +59 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/RUN.md +13 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/package.json +9 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/src/server.ts +81 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +26 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +34 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/RUN.md +24 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/package.json +10 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +5 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/client.tsx +27 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/server.ts +137 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/state.ts +38 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/view.tsx +42 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/workflow.ts +38 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +218 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/RUN.md +12 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/package.json +9 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/src/server.ts +60 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +26 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +24 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/RUN.md +18 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +16 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/client.tsx +39 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +15 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/server.ts +14 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +13 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/package.json +9 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/src/server.ts +65 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +26 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +42 -0
- package/bundles/ragents.reference/run-scripts/word-game/RUN.md +25 -0
- package/bundles/ragents.reference/run-scripts/word-game/package.json +11 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/client.tsx +27 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/contract.ts +23 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/server.ts +105 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/state.ts +22 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/view.tsx +54 -0
- package/bundles/ragents.reference/run-scripts/word-game/tests/program.test.ts +252 -0
- package/bundles/ragents.reference/server/index.js +16 -0
- package/bundles/ragents.reference/server/index.js.map +7 -0
- package/bundles/ragents.reference/skills/100-shared-actor-list/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/110-all-card-slots/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/150-editorial-workbench/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/160-learning-companion/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/170-photo-collection/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/180-decision-workbench/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/190-review-queue/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/20-circle-of-four/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/210-moderator-handover/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/220-actor-approval-list/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/230-shared-state-views/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/240-live-result-list/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/250-balcony-wizard/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/35-actor-input-fifo/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/40-subscription-matrix/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/50-subscription-removal/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/70-headless-counter/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/75-lsp-demo/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/80-actor-text-analysis/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/90-actor-notes/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/95-hello-world/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/decision-brief/SKILL.md +33 -0
- package/bundles/ragents.reference/skills/learning-sprint/SKILL.md +33 -0
- package/bundles/ragents.reference/web/classes.json +1 -0
- package/bundles/ragents.reference/web/index.js +2 -0
- package/bundles/ragents.reference/web/index.js.map +7 -0
- package/bundles/ragents.todo/ragents-bundle.json +48 -0
- package/bundles/ragents.todo/server/index.js +108 -0
- package/bundles/ragents.todo/server/index.js.map +7 -0
- package/bundles/ragents.todo/web/classes.json +1 -0
- package/bundles/ragents.todo/web/index.js +2 -0
- package/bundles/ragents.todo/web/index.js.map +7 -0
- package/bundles/ragents.transcript/ragents-bundle.json +34 -0
- package/bundles/ragents.transcript/server/index.js +102 -0
- package/bundles/ragents.transcript/server/index.js.map +7 -0
- package/bundles/ragents.watch/ragents-bundle.json +39 -0
- package/bundles/ragents.watch/server/chunks/chunk-FHAM6OML.js +11 -0
- package/bundles/ragents.watch/server/chunks/chunk-FHAM6OML.js.map +7 -0
- package/bundles/ragents.watch/server/chunks/chunk-RPBX3J4P.js +10 -0
- package/bundles/ragents.watch/server/chunks/chunk-RPBX3J4P.js.map +7 -0
- package/bundles/ragents.watch/server/exports/contract.js +9 -0
- package/bundles/ragents.watch/server/exports/contract.js.map +7 -0
- package/bundles/ragents.watch/server/exports/server/contract.js +9 -0
- package/bundles/ragents.watch/server/exports/server/contract.js.map +7 -0
- package/bundles/ragents.watch/server/index.js +482 -0
- package/bundles/ragents.watch/server/index.js.map +7 -0
- package/bundles/ragents.workspace/prompt.hbs +7 -0
- package/bundles/ragents.workspace/ragents-bundle.json +148 -0
- package/bundles/ragents.workspace/server/index.js +1049 -0
- package/bundles/ragents.workspace/server/index.js.map +7 -0
- package/bundles/ragents.workspace/web/classes.json +1 -0
- package/bundles/ragents.workspace/web/index.js +39 -0
- package/bundles/ragents.workspace/web/index.js.map +7 -0
- package/package.json +4 -15
- package/packages/agent/dist/core/agent-settings.d.ts +27 -0
- package/packages/agent/dist/core/compaction/compaction.d.ts +82 -0
- package/packages/agent/dist/core/compaction/index.d.ts +6 -0
- package/packages/agent/dist/core/compaction/utils.d.ts +39 -0
- package/packages/agent/dist/core/context-log.d.ts +25 -0
- package/packages/agent/dist/core/messages.d.ts +30 -0
- package/packages/agent/dist/core/model-runtime.d.ts +32 -0
- package/packages/agent/dist/core/provider-composer.d.ts +25 -0
- package/packages/agent/dist/core/skills.d.ts +20 -0
- package/packages/agent/dist/core/tool-definition.d.ts +17 -0
- package/packages/agent/dist/core/tools/bash.d.ts +58 -0
- package/packages/agent/dist/core/tools/edit-diff.d.ts +98 -0
- package/packages/agent/dist/core/tools/edit.d.ts +41 -0
- package/packages/agent/dist/core/tools/file-mutation-queue.d.ts +6 -0
- package/packages/agent/dist/core/tools/index.d.ts +5 -0
- package/packages/agent/dist/core/tools/output-accumulator.d.ts +58 -0
- package/packages/agent/dist/core/tools/path-utils.d.ts +8 -0
- package/packages/agent/dist/core/tools/read.d.ts +33 -0
- package/packages/agent/dist/core/tools/truncate.d.ts +61 -0
- package/packages/agent/dist/core/tools/write.d.ts +23 -0
- package/packages/agent/dist/index.d.ts +12 -0
- package/packages/agent/dist/loop/agent-loop.d.ts +13 -0
- package/packages/agent/dist/loop/agent.d.ts +99 -0
- package/packages/agent/dist/loop/index.d.ts +5 -0
- package/packages/agent/dist/loop/types.d.ts +333 -0
- package/packages/agent/dist/loop/uuid.d.ts +2 -0
- package/packages/agent/dist/utils/child-process.d.ts +17 -0
- package/packages/agent/dist/utils/exif-orientation.d.ts +5 -0
- package/packages/agent/dist/utils/frontmatter.d.ts +8 -0
- package/packages/agent/dist/utils/image-convert.d.ts +2 -0
- package/packages/agent/dist/utils/image-process.d.ts +18 -0
- package/packages/agent/dist/utils/image-resize-core.d.ts +30 -0
- package/packages/agent/dist/utils/image-resize-worker.d.ts +2 -0
- package/packages/agent/dist/utils/image-resize.d.ts +16 -0
- package/packages/agent/dist/utils/mime.d.ts +3 -0
- package/packages/agent/dist/utils/paths.d.ts +15 -0
- package/packages/agent/dist/utils/photon.d.ts +21 -0
- package/packages/agent/dist/utils/shell.d.ts +17 -0
- package/packages/agent/dist/utils/sleep.d.ts +5 -0
- package/packages/agent/package.json +3 -32
- package/packages/agent/src/core/agent-settings.ts +20 -0
- package/packages/agent/src/core/compaction/compaction.ts +53 -208
- package/packages/agent/src/core/compaction/index.ts +0 -1
- package/packages/agent/src/core/compaction/utils.ts +2 -2
- package/packages/agent/src/core/context-log.ts +49 -0
- package/packages/agent/src/core/messages.ts +9 -119
- package/packages/agent/src/core/model-runtime.ts +109 -467
- package/packages/agent/src/core/provider-composer.ts +21 -451
- package/packages/agent/src/core/skills.ts +8 -440
- package/packages/agent/src/core/tool-definition.ts +29 -0
- package/packages/agent/src/core/tools/bash.ts +22 -41
- package/packages/agent/src/core/tools/edit-diff.ts +0 -60
- package/packages/agent/src/core/tools/edit.ts +4 -29
- package/packages/agent/src/core/tools/index.ts +4 -130
- package/packages/agent/src/core/tools/output-accumulator.ts +33 -5
- package/packages/agent/src/core/tools/path-utils.ts +2 -49
- package/packages/agent/src/core/tools/read.ts +6 -29
- package/packages/agent/src/core/tools/truncate.ts +0 -15
- package/packages/agent/src/core/tools/write.ts +2 -13
- package/packages/agent/src/index.ts +23 -270
- package/packages/{agent-core/src → agent/src/loop}/agent-loop.ts +128 -275
- package/packages/{agent-core/src → agent/src/loop}/agent.ts +20 -166
- package/packages/{agent-core/src → agent/src/loop}/types.ts +6 -105
- package/packages/agent/src/utils/child-process.ts +0 -13
- package/packages/agent/src/utils/image-convert.ts +0 -25
- package/packages/agent/src/utils/paths.ts +1 -71
- package/packages/agent/src/utils/shell.ts +13 -156
- package/packages/ai/dist/api/ai-sdk-messages.d.ts +9 -0
- package/packages/ai/dist/api/ai-sdk-transport.d.ts +13 -0
- package/packages/ai/dist/api/ai-sdk.d.ts +15 -0
- package/packages/ai/dist/api/ai-sdk.lazy.d.ts +3 -0
- package/packages/ai/dist/api/lazy.d.ts +15 -0
- package/packages/ai/dist/api/simple-options.d.ts +4 -0
- package/packages/ai/dist/api/transform-messages.d.ts +8 -0
- package/packages/ai/dist/api-registry.d.ts +25 -0
- package/packages/ai/dist/auth/context.d.ts +4 -0
- package/packages/ai/dist/auth/helpers.d.ts +4 -0
- package/packages/ai/dist/auth/resolve.d.ts +19 -0
- package/packages/ai/dist/auth/types.d.ts +51 -0
- package/packages/ai/dist/env-api-keys.d.ts +8 -0
- package/packages/ai/dist/index.d.ts +19 -0
- package/packages/ai/dist/models.d.ts +71 -0
- package/packages/ai/dist/models.generated.d.ts +8021 -0
- package/packages/ai/dist/providers/all.d.ts +15 -0
- package/packages/ai/dist/providers/faux.d.ts +97 -0
- package/packages/ai/dist/providers/openrouter.d.ts +3 -0
- package/packages/ai/dist/providers/openrouter.models.d.ts +8019 -0
- package/packages/ai/dist/types.d.ts +543 -0
- package/packages/ai/dist/utils/diagnostics.d.ts +13 -0
- package/packages/ai/dist/utils/error-body.d.ts +25 -0
- package/packages/ai/dist/utils/estimate.d.ts +17 -0
- package/packages/ai/dist/utils/event-stream.d.ts +21 -0
- package/packages/ai/dist/utils/headers.d.ts +2 -0
- package/packages/ai/dist/utils/json-parse.d.ts +16 -0
- package/packages/ai/dist/utils/overflow.d.ts +54 -0
- package/packages/ai/dist/utils/provider-env.d.ts +7 -0
- package/packages/ai/dist/utils/retry.d.ts +12 -0
- package/packages/ai/dist/utils/sanitize-unicode.d.ts +22 -0
- package/packages/ai/dist/utils/typebox-helpers.d.ts +17 -0
- package/packages/ai/dist/utils/validation.d.ts +10 -0
- package/packages/ai/package.json +2 -6
- package/packages/ai/src/api/ai-sdk-messages.ts +15 -10
- package/packages/ai/src/api/ai-sdk-transport.ts +2 -2
- package/packages/ai/src/api/ai-sdk.ts +11 -0
- package/packages/ai/src/api/simple-options.ts +0 -34
- package/packages/ai/src/api/transform-messages.ts +1 -1
- package/packages/ai/src/api-registry.ts +1 -12
- package/packages/ai/src/auth/context.ts +1 -30
- package/packages/ai/src/auth/helpers.ts +3 -34
- package/packages/ai/src/auth/resolve.ts +10 -108
- package/packages/ai/src/auth/types.ts +9 -176
- package/packages/ai/src/index.ts +1 -13
- package/packages/ai/src/models.ts +41 -407
- package/packages/ai/src/providers/all.ts +3 -31
- package/packages/ai/src/providers/openrouter.models.ts +14 -0
- package/packages/ai/src/types.ts +2 -104
- package/packages/ai/src/utils/diagnostics.ts +0 -32
- package/packages/ai/src/utils/headers.ts +0 -11
- package/packages/ai/src/utils/overflow.ts +0 -7
- package/packages/ai/src/utils/retry.ts +14 -0
- package/packages/ai/src/utils/validation.ts +0 -15
- package/packages/ragents/package.json +3 -6
- package/packages/ragents/src/access.ts +2 -1
- package/packages/ragents/src/agents/actor-input.ts +29 -18
- package/packages/ragents/src/agents/catalog.ts +3 -3
- package/packages/ragents/src/agents/model-context.ts +360 -0
- package/packages/ragents/src/agents/plugins.ts +0 -4
- package/packages/ragents/src/agents/scheduler.ts +233 -83
- package/packages/ragents/src/agents/schemas.ts +1 -36
- package/packages/ragents/src/agents/tool-orientation.ts +1 -1
- package/packages/ragents/src/agents/tools.ts +74 -75
- package/packages/ragents/src/agents/toolset.ts +51 -24
- package/packages/ragents/src/agents/turn.ts +2 -14
- package/packages/ragents/src/agents/workspaces.ts +12 -0
- package/packages/ragents/src/domain/actor-reference.ts +22 -0
- package/packages/ragents/src/domain/driver.ts +0 -9
- package/packages/ragents/src/domain/event-semantics.ts +111 -72
- package/packages/ragents/src/domain/event-validation.ts +188 -21
- package/packages/ragents/src/domain/events.ts +91 -7
- package/packages/ragents/src/domain/json.ts +2 -0
- package/packages/ragents/src/domain/model.ts +42 -18
- package/packages/ragents/src/domain/projection.ts +52 -15
- package/packages/ragents/src/domain/schema-errors.ts +3 -3
- package/packages/ragents/src/domain/tool-result-text.ts +9 -0
- package/packages/ragents/src/drivers/agent-hooks.ts +27 -0
- package/packages/ragents/src/drivers/agent-runtime.ts +137 -1020
- package/packages/ragents/src/drivers/agent-turn.ts +735 -0
- package/packages/ragents/src/drivers/agent.ts +13 -26
- package/packages/ragents/src/drivers/attachments.ts +4 -24
- package/packages/ragents/src/drivers/skill-preload.ts +56 -78
- package/packages/ragents/src/drivers/types.ts +39 -6
- package/packages/ragents/src/http/contracts.ts +16 -3
- package/packages/ragents/src/http/methods.ts +32 -33
- package/packages/ragents/src/index.ts +12 -21
- package/packages/ragents/src/plugin-host.ts +150 -105
- package/packages/ragents/src/plugin-types.ts +86 -23
- package/packages/ragents/src/rpc/peer.ts +6 -0
- package/packages/ragents/src/runtime/decisions/actions.ts +40 -37
- package/packages/ragents/src/runtime/decisions/actors.ts +100 -51
- package/packages/ragents/src/runtime/decisions/artifacts.ts +2 -2
- package/packages/ragents/src/runtime/decisions/inputs.ts +3 -3
- package/packages/ragents/src/runtime/decisions/subscriptions.ts +9 -7
- package/packages/ragents/src/runtime/decisions/turns.ts +101 -9
- package/packages/ragents/src/runtime/guards.ts +12 -21
- package/packages/ragents/src/runtime/journal-storage.ts +8 -3
- package/packages/ragents/src/runtime/journal.ts +36 -1
- package/packages/ragents/src/runtime/orchestration.ts +167 -19
- package/packages/ragents/src/runtime/serial-queue.ts +24 -0
- package/packages/ragents/src/runtime/stop.ts +19 -44
- package/packages/ragents/src/script/mediators.ts +4 -5
- package/packages/ragents/src/typescript/index.ts +2 -0
- package/packages/ragents/src/typescript/run-context.ts +10 -8
- package/packages/ragents/src/typescript/snippet.ts +7 -6
- package/packages/workspace-executor/package.json +2 -2
- package/packages/workspace-executor/src/bash-launch.ts +45 -0
- package/packages/workspace-executor/src/browser/contract.ts +71 -0
- package/packages/workspace-executor/src/browser/module.ts +74 -0
- package/packages/workspace-executor/src/browser/pages.ts +298 -0
- package/packages/workspace-executor/src/browser/playwright.ts +52 -0
- package/packages/workspace-executor/src/commands.ts +170 -0
- package/packages/workspace-executor/src/context.ts +34 -6
- package/packages/workspace-executor/src/errors.ts +12 -0
- package/packages/workspace-executor/src/executor.ts +62 -104
- package/packages/workspace-executor/src/files.ts +287 -0
- package/packages/workspace-executor/src/index.ts +82 -18
- package/packages/workspace-executor/src/language-server/adapters/roslyn.ts +1 -0
- package/packages/workspace-executor/src/language-server/contract.ts +14 -0
- package/packages/workspace-executor/src/language-server/host.ts +82 -26
- package/packages/workspace-executor/src/language-server/module.ts +107 -0
- package/packages/workspace-executor/src/language-server/workspace-solutions.ts +90 -0
- package/packages/workspace-executor/src/managed-process.ts +1 -1
- package/packages/workspace-executor/src/module.ts +35 -0
- package/packages/workspace-executor/src/modules.ts +25 -0
- package/packages/workspace-executor/src/paths.ts +57 -5
- package/packages/workspace-executor/src/process-sandbox.ts +16 -0
- package/packages/workspace-executor/src/processes/module.ts +48 -0
- package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/process-table.ts +80 -57
- package/packages/workspace-executor/src/processes/scanner.ts +106 -0
- package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/snapshot.ts +23 -11
- package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/terminator.ts +19 -20
- package/packages/workspace-executor/src/run-folders.ts +33 -0
- package/packages/workspace-executor/src/safe-environment.ts +14 -0
- package/packages/workspace-executor/src/sandbox-tools.ts +212 -43
- package/packages/workspace-executor/src/shell-platform.ts +2 -2
- package/plugins/package.json +1 -1
- package/plugins/ragents.activity/ragents-plugin.json +3 -0
- package/plugins/ragents.activity/server/index.ts +2 -2
- package/plugins/ragents.activity/web/ActivityHeader.tsx +2 -2
- package/plugins/ragents.activity/web/activity.ts +1 -1
- package/plugins/ragents.activity/web/index.tsx +1 -1
- package/plugins/ragents.actor-programs/prompt.hbs +8 -7
- package/plugins/ragents.actor-programs/ragents-plugin.json +3 -0
- package/plugins/ragents.actor-programs/server/agent-tools.ts +3 -3
- package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/capability-resolver.ts +1 -16
- package/plugins/ragents.actor-programs/server/controls-template.ts +5 -18
- package/plugins/ragents.actor-programs/server/controls-tool.ts +8 -11
- package/plugins/ragents.actor-programs/server/index.ts +10 -10
- package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/limits.ts +4 -4
- package/plugins/ragents.actor-programs/server/methods.ts +2 -2
- package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/operations.ts +2 -4
- package/plugins/ragents.actor-programs/server/project-diagnostics.ts +65 -70
- package/plugins/ragents.actor-programs/server/prompts.ts +4 -4
- package/plugins/ragents.actor-programs/server/routes.ts +14 -8
- package/plugins/ragents.actor-programs/server/runtime.ts +132 -55
- package/plugins/ragents.actor-programs/server/templates.ts +35 -80
- package/plugins/ragents.actor-programs/server/test-report.ts +106 -0
- package/plugins/ragents.actor-programs/server/tool-contributor.ts +4 -4
- package/plugins/ragents.actor-programs/summary.hbs +1 -1
- package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +15 -10
- package/plugins/ragents.actor-programs/web/AppsPanel.tsx +47 -30
- package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +15 -17
- package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +3 -3
- package/plugins/ragents.actor-programs/web/FunctionForm.tsx +3 -3
- package/plugins/ragents.actor-programs/web/ProgramSource.tsx +12 -3
- package/plugins/ragents.actor-programs/web/api.ts +5 -5
- package/plugins/ragents.actor-programs/web/bridge.ts +2 -3
- package/plugins/ragents.actor-programs/web/chat-state.ts +9 -8
- package/plugins/ragents.actor-programs/web/index.tsx +7 -17
- package/plugins/ragents.actor-programs/web/program-state.ts +3 -3
- package/plugins/ragents.actor-programs/web/state-revision.ts +2 -2
- package/plugins/ragents.ask/ask-payload.ts +25 -0
- package/plugins/ragents.ask/contract.ts +2 -2
- package/plugins/ragents.ask/ragents-plugin.json +7 -0
- package/plugins/ragents.ask/server/answer-method.ts +1 -1
- package/plugins/ragents.ask/server/ask-service.ts +43 -19
- package/plugins/ragents.ask/server/ask-tool.ts +2 -2
- package/plugins/ragents.ask/server/contract.ts +9 -1
- package/plugins/ragents.ask/server/index.ts +8 -10
- package/plugins/ragents.ask/server/tool-contributor.ts +3 -3
- package/plugins/ragents.ask/web/AskActionView.tsx +36 -0
- package/{apps/web/src/chat → plugins/ragents.ask/web}/QuestionCard.tsx +7 -5
- package/plugins/ragents.ask/web/QuestionSection.tsx +22 -21
- package/plugins/ragents.ask/web/api.ts +1 -1
- package/plugins/ragents.ask/web/index.tsx +11 -8
- package/plugins/ragents.browser/provision.ts +9 -8
- package/plugins/ragents.browser/ragents-plugin.json +6 -0
- package/plugins/ragents.browser/server/browser.ts +165 -286
- package/plugins/ragents.browser/server/contract.ts +8 -19
- package/plugins/ragents.browser/server/index.ts +8 -7
- package/plugins/ragents.browser/server/tools.ts +29 -37
- package/plugins/ragents.browser/skills/browser-testing/SKILL.md +3 -1
- package/plugins/ragents.documents/contract.ts +4 -2
- package/plugins/ragents.documents/ragents-plugin.json +6 -0
- package/plugins/ragents.documents/server/config.ts +1 -1
- package/plugins/ragents.documents/server/document-write-tool.ts +2 -2
- package/plugins/ragents.documents/server/files-route.ts +2 -3
- package/plugins/ragents.documents/server/index.ts +10 -11
- package/plugins/ragents.documents/server/show-document-tool.ts +2 -2
- package/plugins/ragents.documents/server/store.ts +3 -3
- package/plugins/ragents.documents/server/tool-contributor.ts +3 -3
- package/plugins/ragents.documents/web/DocumentViewer.tsx +5 -6
- package/plugins/ragents.documents/web/api.ts +1 -1
- package/plugins/ragents.documents/web/index.tsx +4 -4
- package/plugins/ragents.lsp-fsharp/provision.ts +2 -2
- package/plugins/ragents.lsp-fsharp/ragents-plugin.json +3 -0
- package/plugins/ragents.lsp-fsharp/server/index.ts +3 -3
- package/plugins/ragents.lsp-fsharp/web/index.tsx +1 -1
- package/plugins/ragents.lsp-roslyn/provision.ts +2 -2
- package/plugins/ragents.lsp-roslyn/ragents-plugin.json +3 -0
- package/plugins/ragents.lsp-roslyn/server/index.ts +47 -8
- package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +145 -0
- package/plugins/ragents.lsp-roslyn/web/index.tsx +1 -1
- package/plugins/ragents.lsp-typescript/ragents-plugin.json +3 -0
- package/plugins/ragents.lsp-typescript/server/index.ts +3 -3
- package/plugins/ragents.lsp-typescript/web/index.tsx +1 -1
- package/plugins/ragents.model-relay/ragents-plugin.json +3 -0
- package/plugins/ragents.model-relay/server/config.ts +5 -31
- package/plugins/ragents.model-relay/server/index.ts +5 -6
- package/plugins/ragents.model-relay/server/relay.ts +8 -9
- package/plugins/ragents.orchestration/contract.ts +13 -14
- package/plugins/ragents.orchestration/orchestration.hbs +4 -3
- package/plugins/ragents.orchestration/ragents-plugin.json +6 -0
- package/plugins/ragents.orchestration/server/index.ts +13 -16
- package/plugins/ragents.orchestration/server/run-stop-tool.ts +4 -4
- package/plugins/ragents.orchestration/server/{canvas-tool.ts → surface-tool.ts} +42 -43
- package/plugins/ragents.orchestration/surface.hbs +34 -0
- package/plugins/ragents.orchestration/tiled-layout.ts +16 -16
- package/plugins/ragents.orchestration/web/ActorChat.tsx +16 -14
- package/plugins/ragents.orchestration/web/ActorChatControls.tsx +23 -26
- package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +5 -6
- package/plugins/ragents.orchestration/web/ActorPopout.tsx +7 -5
- package/plugins/ragents.orchestration/web/ActorShortcut.tsx +16 -16
- package/plugins/ragents.orchestration/web/{ActorCanvasControls.tsx → ActorSurfaceControls.tsx} +23 -28
- package/plugins/ragents.orchestration/web/ActorTile.tsx +2 -2
- package/plugins/ragents.orchestration/web/Center.tsx +47 -55
- package/plugins/ragents.orchestration/web/DocumentsSection.tsx +4 -4
- package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +7 -7
- package/plugins/ragents.orchestration/web/FlowInspector.tsx +24 -42
- package/plugins/ragents.orchestration/web/JournalStatus.tsx +8 -8
- package/plugins/ragents.orchestration/web/MaterialBody.tsx +5 -5
- package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
- package/plugins/ragents.orchestration/web/SurfaceStartup.tsx +8 -0
- package/plugins/ragents.orchestration/web/{CanvasTiles.tsx → SurfaceTiles.tsx} +18 -18
- package/plugins/ragents.orchestration/web/{TiledCanvas.tsx → TiledSurface.tsx} +22 -22
- package/plugins/ragents.orchestration/web/actor-header-settings.ts +2 -2
- package/plugins/ragents.orchestration/web/api.ts +4 -10
- package/plugins/ragents.orchestration/web/constants.ts +0 -1
- package/plugins/ragents.orchestration/web/executions.ts +3 -3
- package/plugins/ragents.orchestration/web/index.tsx +19 -124
- package/plugins/ragents.orchestration/web/program-slot.ts +14 -0
- package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +95 -0
- package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +109 -0
- package/plugins/ragents.orchestration/web/{column/RunColumn.tsx → run-panel/RunPanel.tsx} +211 -83
- package/plugins/ragents.orchestration/web/{column/ColumnSettings.tsx → run-panel/RunPanelSettings.tsx} +13 -13
- package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +165 -0
- package/plugins/ragents.orchestration/web/{column/column-actors.ts → run-panel/run-panel-actors.ts} +14 -13
- package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +47 -0
- package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +30 -0
- package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +71 -0
- package/plugins/ragents.orchestration/web/{column → run-panel}/sheet-status.ts +4 -4
- package/plugins/ragents.orchestration/web/{canvas-stage.ts → surface-entities.ts} +2 -2
- package/plugins/ragents.orchestration/web/{canvas-startup.ts → surface-startup.ts} +7 -10
- package/plugins/ragents.orchestration/web/surface-view-settings.ts +42 -0
- package/plugins/ragents.orchestration/web/tile-docking.ts +14 -14
- package/plugins/ragents.orchestration/web/tiled-view-settings.ts +26 -26
- package/plugins/ragents.overseer/contract.ts +20 -14
- package/plugins/ragents.overseer/ragents-plugin.json +3 -0
- package/plugins/ragents.overseer/server/api.ts +34 -23
- package/plugins/ragents.overseer/server/coordinator-prompt.ts +3 -3
- package/plugins/ragents.overseer/server/coordinator.ts +19 -0
- package/plugins/ragents.overseer/server/index.ts +39 -27
- package/plugins/ragents.overseer/server/orientation.ts +4 -5
- package/plugins/ragents.overseer/server/quick-answer.ts +5 -4
- package/plugins/ragents.overseer/server/reset-method.ts +4 -3
- package/plugins/ragents.overseer/server/run-directory.ts +5 -5
- package/plugins/ragents.overseer/server/settings-method.ts +1 -1
- package/plugins/ragents.overseer/server/settings.ts +6 -6
- package/plugins/ragents.overseer/server/user-location.ts +20 -19
- package/plugins/ragents.overseer/web/ModelSettings.tsx +4 -4
- package/plugins/ragents.overseer/web/chat-display.ts +1 -1
- package/plugins/ragents.overseer/web/index.tsx +51 -26
- 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/ragents-plugin.json +3 -0
- package/plugins/ragents.processes/server/index.ts +13 -19
- package/plugins/ragents.processes/server/methods.ts +18 -20
- package/plugins/ragents.processes/server/observer.ts +64 -104
- package/plugins/ragents.processes/server/run-processes.ts +24 -0
- package/plugins/ragents.processes/web/ProcessHeader.tsx +13 -16
- package/plugins/ragents.processes/web/index.tsx +2 -1
- package/plugins/ragents.processes/web/processes.ts +1 -1
- package/plugins/ragents.product/ragents-plugin.json +3 -0
- package/plugins/ragents.product/server/config.ts +12 -13
- package/plugins/ragents.product/server/index.ts +15 -16
- package/plugins/ragents.product/server/runtime.ts +2 -2
- package/plugins/ragents.product/web/index.tsx +3 -3
- package/plugins/ragents.profile-distribution/contract.ts +6 -9
- package/plugins/ragents.profile-distribution/ragents-plugin.json +3 -0
- package/plugins/ragents.profile-distribution/server/archive.ts +26 -51
- package/plugins/ragents.profile-distribution/server/config.ts +2 -2
- package/plugins/ragents.profile-distribution/server/index.ts +9 -16
- package/plugins/ragents.reference/examples.ts +1 -1
- package/plugins/ragents.reference/ragents-plugin.json +3 -0
- package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +2 -2
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +1 -1
- package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +1 -1
- package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +4 -4
- package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +2 -2
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/client.tsx +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/state.ts +2 -2
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/view.tsx +11 -11
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/workflow.ts +15 -15
- package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +4 -9
- package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +1 -1
- 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 +2 -2
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/client.tsx +6 -6
- package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +3 -3
- package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/word-game/RUN.md +1 -1
- package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
- package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +1 -2
- package/plugins/ragents.reference/run-scripts/word-game/src/state.ts +6 -6
- package/plugins/ragents.reference/run-scripts/word-game/src/view.tsx +14 -14
- package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +7 -8
- package/plugins/ragents.reference/server/index.ts +2 -2
- package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +1 -1
- package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +1 -1
- package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +1 -1
- package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +1 -1
- package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +2 -2
- package/plugins/ragents.reference/skills/decision-brief/SKILL.md +2 -2
- package/plugins/ragents.reference/walkthroughs.ts +19 -19
- package/plugins/ragents.reference/web/StartGuides.tsx +2 -2
- package/plugins/ragents.reference/web/index.tsx +1 -1
- package/plugins/ragents.todo/ragents-plugin.json +3 -0
- package/plugins/ragents.todo/server/index.ts +2 -2
- package/plugins/ragents.todo/server/todo-tool.ts +4 -5
- package/plugins/ragents.todo/server/tool-contributor.ts +2 -2
- package/plugins/ragents.todo/web/TodoSection.tsx +3 -3
- package/plugins/ragents.todo/web/index.ts +1 -1
- package/plugins/ragents.transcript/ragents-plugin.json +3 -0
- package/plugins/ragents.transcript/server/index.ts +4 -4
- package/plugins/ragents.transcript/server/transcript.ts +2 -3
- package/plugins/ragents.watch/ragents-plugin.json +6 -0
- package/plugins/ragents.watch/server/condition.ts +2 -2
- package/plugins/ragents.watch/server/contract.ts +1 -1
- package/plugins/ragents.watch/server/functions.ts +3 -3
- package/plugins/ragents.watch/server/index.ts +3 -3
- package/plugins/ragents.watch/server/observation.ts +6 -6
- package/plugins/ragents.watch/server/service.ts +5 -5
- package/plugins/ragents.workspace/client/workspace-client.ts +129 -58
- package/plugins/ragents.workspace/contract.ts +98 -35
- package/plugins/ragents.workspace/prompt.hbs +1 -8
- package/plugins/ragents.workspace/ragents-plugin.json +3 -0
- package/plugins/ragents.workspace/server/binding.ts +122 -39
- package/plugins/ragents.workspace/server/browse-route.ts +96 -103
- package/plugins/ragents.workspace/server/clients.ts +236 -68
- package/plugins/ragents.workspace/server/config.ts +30 -0
- package/plugins/ragents.workspace/server/index.ts +61 -26
- package/plugins/ragents.workspace/server/runtime.ts +271 -46
- package/{apps/server/src/plugin-support → plugins/ragents.workspace/server}/shell-platform.ts +3 -5
- package/{apps/server/src/plugin-support → plugins/ragents.workspace/server}/workspace-tool-naming.ts +7 -1
- package/plugins/ragents.workspace/web/FileBrowser.tsx +11 -8
- package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +115 -61
- package/plugins/ragents.workspace/web/api.ts +1 -1
- package/plugins/ragents.workspace/web/index.tsx +1 -1
- package/ragents.config.core.ts +2 -7
- package/ragents.config.showcase.ts +2 -5
- package/scripts/agent/agent-cli.ts +265 -107
- package/scripts/agent/journal.ts +8 -4
- package/scripts/agent/turn-control.ts +19 -0
- package/scripts/package/build-package.ts +68 -13
- package/scripts/package/ragents.mjs +4 -2
- package/scripts/plugin/build-builtin-plugins.ts +52 -0
- package/scripts/plugin/plugin-cli.ts +99 -0
- package/scripts/provision/run-provision.ts +20 -18
- package/scripts/remote/connect.ts +75 -53
- package/scripts/remote/start.ts +2 -3
- package/scripts/workspace-client/run-workspace-client.ts +15 -9
- package/apps/server/agent-home/settings.json +0 -3
- package/apps/server/src/chat-attachments.ts +0 -52
- package/apps/server/src/chat-events.ts +0 -185
- package/apps/server/src/plugin-support/asset-path.ts +0 -4
- package/apps/server/src/profile/plugin-list.ts +0 -19
- package/apps/server/src/web-build.ts +0 -82
- package/apps/web/column.html +0 -12
- package/apps/web/index.html +0 -12
- package/apps/web/src/StartSurface.tsx +0 -161
- package/apps/web/src/chat/ChatInputToolbar.tsx +0 -488
- package/apps/web/src/chat/ChatMessages.tsx +0 -666
- package/apps/web/src/chat/ChatPanel.tsx +0 -61
- package/apps/web/src/chat/DetailModeSwitch.tsx +0 -58
- package/apps/web/src/chat/Markdown.tsx +0 -104
- package/apps/web/src/chat/StepPopover.tsx +0 -82
- package/apps/web/src/chat/WorkingScenes.tsx +0 -235
- package/apps/web/src/chat/attachments.ts +0 -53
- package/apps/web/src/chat/chat-scroll.ts +0 -41
- package/apps/web/src/chat/texts.ts +0 -61
- package/apps/web/src/chat/types.ts +0 -26
- package/apps/web/src/column/ColumnApp.tsx +0 -234
- package/apps/web/src/column/column-location.ts +0 -30
- package/apps/web/src/column/host-contract.ts +0 -93
- package/apps/web/src/panel/OverviewPage.tsx +0 -215
- package/apps/web/src/panel/SettingsPage.tsx +0 -98
- package/apps/web/src/panel/target-state.ts +0 -78
- package/apps/web/src/plugin-discovery.ts +0 -5
- package/apps/web/src/virtual-plugins.d.ts +0 -3
- package/apps/web/vite.config.ts +0 -140
- package/packages/agent/src/config.ts +0 -161
- package/packages/agent/src/core/agent-session-runtime.ts +0 -548
- package/packages/agent/src/core/agent-session-services.ts +0 -224
- package/packages/agent/src/core/agent-session.ts +0 -3357
- package/packages/agent/src/core/auth-guidance.ts +0 -18
- package/packages/agent/src/core/auth-storage.ts +0 -271
- package/packages/agent/src/core/bash-executor.ts +0 -156
- package/packages/agent/src/core/compaction/branch-summarization.ts +0 -372
- package/packages/agent/src/core/defaults.ts +0 -3
- package/packages/agent/src/core/diagnostics.ts +0 -15
- package/packages/agent/src/core/event-bus.ts +0 -33
- package/packages/agent/src/core/exec.ts +0 -107
- package/packages/agent/src/core/experimental.ts +0 -3
- package/packages/agent/src/core/extensions/index.ts +0 -149
- package/packages/agent/src/core/extensions/loader.ts +0 -709
- package/packages/agent/src/core/extensions/runner.ts +0 -1132
- package/packages/agent/src/core/extensions/types.ts +0 -1460
- package/packages/agent/src/core/extensions/wrapper.ts +0 -45
- package/packages/agent/src/core/footer-data-provider.ts +0 -388
- package/packages/agent/src/core/http-dispatcher.ts +0 -106
- package/packages/agent/src/core/index.ts +0 -78
- package/packages/agent/src/core/model-config.ts +0 -287
- package/packages/agent/src/core/model-registry.ts +0 -126
- package/packages/agent/src/core/model-resolver.ts +0 -675
- package/packages/agent/src/core/output-guard.ts +0 -108
- package/packages/agent/src/core/package-manager.ts +0 -2441
- package/packages/agent/src/core/prompt-templates.ts +0 -284
- package/packages/agent/src/core/resolve-config-value.ts +0 -287
- package/packages/agent/src/core/resource-loader.ts +0 -946
- package/packages/agent/src/core/runtime-credentials.ts +0 -48
- package/packages/agent/src/core/sdk.ts +0 -358
- package/packages/agent/src/core/session-cwd.ts +0 -59
- package/packages/agent/src/core/session-manager.ts +0 -1623
- package/packages/agent/src/core/settings-manager.ts +0 -1212
- package/packages/agent/src/core/slash-commands.ts +0 -41
- package/packages/agent/src/core/source-info.ts +0 -40
- package/packages/agent/src/core/system-prompt.ts +0 -147
- package/packages/agent/src/core/timings.ts +0 -50
- package/packages/agent/src/core/tools/tool-definition-wrapper.ts +0 -45
- package/packages/agent/src/core/trust-manager.ts +0 -244
- package/packages/agent/src/utils/ansi.ts +0 -60
- package/packages/agent/src/utils/fs-watch.ts +0 -30
- package/packages/agent/src/utils/git.ts +0 -226
- package/packages/agent/src/utils/json.ts +0 -6
- package/packages/agent/src/utils/tools-manager.ts +0 -63
- package/packages/agent-core/package.json +0 -32
- package/packages/ai/src/api/openrouter-images.lazy.ts +0 -10
- package/packages/ai/src/api/openrouter-images.ts +0 -98
- package/packages/ai/src/auth/credential-store.ts +0 -51
- package/packages/ai/src/compat/extension-oauth-types.ts +0 -45
- package/packages/ai/src/image-models.generated.ts +0 -533
- package/packages/ai/src/images-models.ts +0 -274
- package/packages/ai/src/models-store.ts +0 -38
- package/packages/ai/src/oauth.ts +0 -10
- package/packages/ai/src/providers/openrouter-images.ts +0 -14
- package/packages/ai/src/session-resources.ts +0 -24
- package/packages/ai/src/utils/abort-signals.ts +0 -41
- package/packages/ai/src/utils/deferred-tools.ts +0 -39
- package/packages/ai/src/utils/hash.ts +0 -13
- package/packages/ai/src/utils/node-http-proxy.ts +0 -112
- package/plugins/ragents.actor-programs/server/client-runtime.ts +0 -16
- package/plugins/ragents.ask/web/constants.ts +0 -1
- package/plugins/ragents.lsp-roslyn/web/api.ts +0 -10
- package/plugins/ragents.orchestration/web/CanvasStartup.tsx +0 -14
- package/plugins/ragents.orchestration/web/canvas-view-settings.ts +0 -42
- package/plugins/ragents.orchestration/web/column/AddresseeControl.tsx +0 -116
- package/plugins/ragents.orchestration/web/column/column-settings.ts +0 -47
- package/plugins/ragents.orchestration/web/column/column-state.ts +0 -68
- package/plugins/ragents.orchestration/web/contract.ts +0 -25
- package/plugins/ragents.product/model-settings-contract.ts +0 -10
- package/plugins/ragents.profile-distribution/server/web.ts +0 -24
- /package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/authoring-contracts.ts +0 -0
- /package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/runtime-libraries.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/server/src/plugin-support/actor-programs}/workflow/prompt-reader.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/file-contracts.d.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/flow-diagram-contracts.d.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/flow-diagram.css +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/form-contracts.d.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/frame-layout.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/table-contracts.d.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/viewer-contracts.d.ts +0 -0
- /package/{plugins/ragents.orchestration/canvas.hbs → bundles/ragents.orchestration/surface.hbs} +0 -0
- /package/packages/{agent-core/src → agent/src/loop}/index.ts +0 -0
- /package/packages/{agent-core/src → agent/src/loop}/uuid.ts +0 -0
|
@@ -0,0 +1,1167 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" data-theme="light" data-panels="off">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<meta name="color-scheme" content="light">
|
|
7
|
+
<title>RAgents | Tailored AI Workspaces</title>
|
|
8
|
+
<meta name="description" content="Tailor your own AI workspace for your teams or your clients: agents with their own UI, workflows in TypeScript, and a central server that works in your local repo.">
|
|
9
|
+
<!-- Sources: docs/development.md, AI assistant section; colors and typography from apps/web/src/ui/theme.css; HTML/SVG graphics are labeled functional diagrams. -->
|
|
10
|
+
<style>
|
|
11
|
+
:root { --ink: #34303d; --text: #34303d; --muted: #62586e; --line: #c9c4d5; --line-soft: #dad6e3; --surface: #e1ddeb; --panel: #e7eaf2; --content: #f3f2f7; --app-bg: #dce3ed; --accent: #79638d; --font: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --mono: "Noto Sans Mono", ui-monospace, SFMono-Regular, Menlo, monospace; }
|
|
12
|
+
* { box-sizing: border-box; }
|
|
13
|
+
body { margin: 0; color: var(--text); background: var(--content); font: 16px/1.65 var(--font); }
|
|
14
|
+
a { color: inherit; text-underline-offset: 4px; }
|
|
15
|
+
a:hover { text-decoration-thickness: 2px; }
|
|
16
|
+
:is(a, button, select, summary):focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
|
|
17
|
+
h1, h2, h3, p, figure { margin: 0; }
|
|
18
|
+
h1, h2, h3 { color: var(--ink); font-weight: 650; line-height: 1.12; letter-spacing: -.045em; text-wrap: balance; }
|
|
19
|
+
h1 { font-size: clamp(40px, 5.4vw, 72px); }
|
|
20
|
+
h2 { font-size: clamp(29px, 3.3vw, 42px); }
|
|
21
|
+
h3 { font-size: 21px; letter-spacing: -.025em; }
|
|
22
|
+
p + p { margin-top: 16px; }
|
|
23
|
+
strong { font-weight: 600; }
|
|
24
|
+
code { font: .86em var(--mono); overflow-wrap: anywhere; }
|
|
25
|
+
.eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; color: #43617d; font: 500 11px/1.5 var(--mono); letter-spacing: .12em; text-transform: uppercase; }
|
|
26
|
+
.eyebrow::before { content: ''; width: 7px; height: 7px; border-radius: 2px; background: var(--accent); }
|
|
27
|
+
.hero { position: relative; padding: 74px 0 0; background: radial-gradient(ellipse at 50% 75%, #dfefff 0, #f6faff 42%, #fff 75%); }
|
|
28
|
+
.hero-copy { text-align: center; max-width: 880px; margin: 0 auto; }
|
|
29
|
+
.hero-copy .eyebrow { justify-content: center; }
|
|
30
|
+
.hero h1 span { display: block; color: #247bca; }
|
|
31
|
+
.lead { max-width: 670px; margin: 23px auto 0; font-size: 18px; line-height: 1.7; color: var(--muted); }
|
|
32
|
+
.actions { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; margin-top: 26px; }
|
|
33
|
+
.hero .actions { justify-content: center; }
|
|
34
|
+
.button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 48px; padding: 11px 20px; border: 1px solid var(--ink); border-radius: 8px; background: var(--ink); color: white; font-size: 14px; font-weight: 550; text-decoration: none; transition: background .15s, box-shadow .15s; }
|
|
35
|
+
.button:hover { background: #304a65; box-shadow: 0 4px 16px #2233471a; }
|
|
36
|
+
.button.secondary { background: white; color: var(--ink); border-color: var(--line); }
|
|
37
|
+
.button.secondary:hover { background: var(--panel); border-color: #9ab8d4; }
|
|
38
|
+
.link-icon { width: 18px; height: 18px; flex: none; }
|
|
39
|
+
.text-link { display: inline-flex; align-items: center; gap: 12px; color: #1769b1; font-size: 14px; font-weight: 550; text-decoration: none; }
|
|
40
|
+
.text-link:hover { text-decoration: underline; }
|
|
41
|
+
.interface-intro { max-width: 670px; margin: 46px auto 0; text-align: center; }
|
|
42
|
+
.interface-intro h2 { font-size: 25px; }
|
|
43
|
+
.interface-intro p { margin-top: 16px; color: var(--muted); font-size: 15px; }
|
|
44
|
+
.workspace-figure { margin-top: 30px; }
|
|
45
|
+
.workspace { --ink: #514657; --muted: #746677; --line: #b8aeba; --line-soft: #51465730; --accent: #79638d; --panel: #e7edf2; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: var(--panel); }
|
|
46
|
+
.workspace-bar { display: flex; align-items: center; gap: 12px; padding: 14px 22px; border-bottom: 1px solid var(--line-soft); background: #f7f4f0; color: var(--ink); font-size: 12px; }
|
|
47
|
+
.workspace-bar svg { width: 17px; height: 17px; }
|
|
48
|
+
.workspace-bar > span:last-child { margin-left: auto; color: var(--muted); font: 10px var(--mono); }
|
|
49
|
+
.workspace-body { padding: 70px 58px 32px 32px; background: radial-gradient(ellipse at 48% 38%, #ffffff80, transparent 48%),
|
|
50
|
+
radial-gradient(ellipse at 4% 88%, #9ccfc5b3, transparent 58%),
|
|
51
|
+
radial-gradient(ellipse at 96% 12%, #9ec6e4b3, transparent 56%),
|
|
52
|
+
radial-gradient(ellipse at 28% 0%, #c4b0dfb3, transparent 58%),
|
|
53
|
+
radial-gradient(ellipse at 88% 100%, #efd3c6a6, transparent 52%),
|
|
54
|
+
linear-gradient(135deg, #edf0f2, #e1dbe8); }
|
|
55
|
+
.workspace-flow { display: grid; grid-template-columns: 1fr 58px 1.05fr 58px 1fr; align-items: center; }
|
|
56
|
+
.workspace-node { --face: #eec4b1; --depth-near: #b27c62; --depth-middle: #bb876f; --depth-far: #c5927d; position: relative; isolation: isolate; display: block; min-width: 0; padding: 20px; border: 1.5px solid #514657; border-radius: 17px; background: var(--face); filter: drop-shadow(6px 12px 11px #49384e2c); text-decoration: none; }
|
|
57
|
+
.workspace-node::before { content: ""; position: absolute; inset: -1.5px; border: 1.5px solid #514657; border-radius: inherit; background: var(--face); box-shadow: 0.25px -0.35px 0 var(--depth-near), 0.5px -0.7px 0 var(--depth-near), 0.75px -1.05px 0 var(--depth-near), 1px -1.4px 0 var(--depth-near), 1.25px -1.75px 0 var(--depth-near), 1.5px -2.1px 0 var(--depth-near), 1.75px -2.45px 0 var(--depth-near), 2px -2.8px 0 var(--depth-near), 2.25px -3.15px 0 var(--depth-near), 2.5px -3.5px 0 var(--depth-near), 2.75px -3.85px 0 var(--depth-near), 3px -4.2px 0 var(--depth-near), 3.25px -4.55px 0 var(--depth-near), 3.5px -4.9px 0 var(--depth-near), 3.75px -5.25px 0 var(--depth-near), 4px -5.6px 0 var(--depth-near), 4.25px -5.95px 0 var(--depth-near), 4.5px -6.3px 0 var(--depth-near), 4.75px -6.65px 0 var(--depth-near), 5px -7px 0 var(--depth-near), 5.25px -7.35px 0 var(--depth-near), 5.5px -7.7px 0 var(--depth-near), 5.75px -8.05px 0 var(--depth-near), 6px -8.4px 0 var(--depth-near), 6.25px -8.75px 0 var(--depth-near), 6.5px -9.1px 0 var(--depth-near), 6.75px -9.45px 0 var(--depth-near), 7px -9.8px 0 var(--depth-near), 7.25px -10.15px 0 var(--depth-near), 7.5px -10.5px 0 var(--depth-near), 7.75px -10.85px 0 var(--depth-middle), 8px -11.2px 0 var(--depth-middle), 8.25px -11.55px 0 var(--depth-middle), 8.5px -11.9px 0 var(--depth-middle), 8.75px -12.25px 0 var(--depth-middle), 9px -12.6px 0 var(--depth-middle), 9.25px -12.95px 0 var(--depth-middle), 9.5px -13.3px 0 var(--depth-middle), 9.75px -13.65px 0 var(--depth-middle), 10px -14px 0 var(--depth-middle), 10.25px -14.35px 0 var(--depth-middle), 10.5px -14.7px 0 var(--depth-middle), 10.75px -15.05px 0 var(--depth-middle), 11px -15.4px 0 var(--depth-middle), 11.25px -15.75px 0 var(--depth-middle), 11.5px -16.1px 0 var(--depth-middle), 11.75px -16.45px 0 var(--depth-middle), 12px -16.8px 0 var(--depth-middle), 12.25px -17.15px 0 var(--depth-middle), 12.5px -17.5px 0 var(--depth-middle), 12.75px -17.85px 0 var(--depth-middle), 13px -18.2px 0 var(--depth-middle), 13.25px -18.55px 0 var(--depth-middle), 13.5px -18.9px 0 var(--depth-middle), 13.75px -19.25px 0 var(--depth-middle), 14px -19.6px 0 var(--depth-middle), 14.25px -19.95px 0 var(--depth-middle), 14.5px -20.3px 0 var(--depth-middle), 14.75px -20.65px 0 var(--depth-middle), 15px -21px 0 var(--depth-far), 15.25px -21.35px 0 var(--depth-far), 15.5px -21.7px 0 var(--depth-far), 15.75px -22.05px 0 var(--depth-far), 16px -22.4px 0 var(--depth-far), 16.25px -22.75px 0 var(--depth-far), 16.5px -23.1px 0 var(--depth-far), 16.75px -23.45px 0 var(--depth-far), 17px -23.8px 0 var(--depth-far), 17.25px -24.15px 0 var(--depth-far), 17.5px -24.5px 0 var(--depth-far), 17.75px -24.85px 0 var(--depth-far), 18px -25.2px 0 var(--depth-far), 18.25px -25.55px 0 var(--depth-far), 18.5px -25.9px 0 var(--depth-far), 18.75px -26.25px 0 var(--depth-far), 19px -26.6px 0 var(--depth-far), 19.25px -26.95px 0 var(--depth-far), 19.5px -27.3px 0 var(--depth-far), 19.75px -27.65px 0 var(--depth-far), 20px -28px 0 var(--depth-far), 20.25px -28.35px 0 var(--depth-far), 20.5px -28.7px 0 var(--depth-far), 20.75px -29.05px 0 var(--depth-far), 21px -29.4px 0 var(--depth-far), 21.25px -29.75px 0 var(--depth-far), 21.5px -30.1px 0 var(--depth-far), 21.75px -30.45px 0 var(--depth-far), 22px -30.8px 0 var(--depth-far); z-index: -1; }
|
|
58
|
+
.workspace-flow > .workspace-node:first-child { --face: #dcd0e8; --depth-near: #a087b0; --depth-middle: #aa94b9; --depth-far: #b6a3c3; }
|
|
59
|
+
a.workspace-node:hover { outline: 2px solid #79638d; outline-offset: 3px; }
|
|
60
|
+
.node-heading { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font-size: 15px; color: var(--ink); }
|
|
61
|
+
.node-heading svg { width: 24px; height: 24px; color: var(--accent); }
|
|
62
|
+
.workspace-node p, .workspace-node small { font-size: 12px; line-height: 1.6; color: var(--muted); }
|
|
63
|
+
.workspace-node small { display: block; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line-soft); }
|
|
64
|
+
.node-badge { display: inline-flex; align-items: center; padding: 3px 8px; margin-top: 14px; background: #bcaccb26; color: #655170; border-radius: 4px; font: 10px var(--mono); }
|
|
65
|
+
.workspace-team { display: grid; gap: 54px; }
|
|
66
|
+
.workspace-team .workspace-node { padding: 15px 18px; }
|
|
67
|
+
.workspace-team .node-heading { margin-bottom: 5px; }
|
|
68
|
+
.workspace-team .workspace-node:last-child { --face: #e9dca1; --depth-near: #ae964b; --depth-middle: #b79f55; --depth-far: #bfaa62; }
|
|
69
|
+
.workspace-team .workspace-node:last-child svg { color: var(--accent); }
|
|
70
|
+
.connector { position: relative; height: 1px; background: #ad9fb5; }
|
|
71
|
+
.connector::after { content: ''; position: absolute; right: 0; top: -3px; width: 6px; height: 6px; transform: rotate(45deg); border: solid #ad9fb5; border-width: 1px 1px 0 0; }
|
|
72
|
+
.canvas-app { --face: #e7edf2; --depth-near: #8d9daf; --depth-middle: #99a7b7; --depth-far: #a5b2c0; min-height: 208px; }
|
|
73
|
+
.app-lines { display: grid; gap: 8px; margin-top: 18px; }
|
|
74
|
+
.app-lines span { display: flex; align-items: center; gap: 9px; padding: 6px 9px; border: 1px solid var(--line-soft); border-radius: 4px; background: var(--panel); font-size: 11px; }
|
|
75
|
+
.app-lines span::before { content: ''; width: 6px; height: 6px; border: 1px solid #7692ad; border-radius: 2px; }
|
|
76
|
+
.workspace-journal { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 18px; margin-top: 24px; border: 1px solid var(--line); border-radius: 7px; background: #f7f4f0; font-size: 11px; color: var(--muted); }
|
|
77
|
+
.workspace-journal strong { color: var(--ink); }
|
|
78
|
+
.workspace-journal code { font-size: 10px; }
|
|
79
|
+
figcaption { margin-top: 14px; color: var(--muted); font-size: 11px; line-height: 1.6; }
|
|
80
|
+
.workspace-figure figcaption { display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; }
|
|
81
|
+
.run-panel-figure { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 20px 32px; align-items: start; margin: 40px auto 0; max-width: 760px; }
|
|
82
|
+
.run-panel-figure img { width: 100%; height: auto; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 24px 50px -30px #53445455; }
|
|
83
|
+
.run-panel-figure .run-panel-placeholder { display: grid; place-items: center; aspect-ratio: 7 / 15; padding: 24px; border: 1px dashed var(--line); border-radius: 14px; text-align: center; font-size: 13px; line-height: 1.5; color: var(--muted); }
|
|
84
|
+
.run-panel-figure figcaption { margin-top: 0; font-size: 13px; line-height: 1.65; }
|
|
85
|
+
.run-panel-figure figcaption a { display: block; margin-top: 12px; }
|
|
86
|
+
@media (max-width: 720px) { .run-panel-figure { grid-template-columns: 1fr; } }
|
|
87
|
+
.section-heading { padding: 72px 0 18px; }
|
|
88
|
+
.section-heading p:last-child { max-width: 620px; margin-top: 20px; color: var(--muted); }
|
|
89
|
+
.feature { display: grid; grid-template-columns: .95fr 1.05fr; gap: 76px; align-items: center; padding: 68px 0; border-bottom: 1px solid var(--line-soft); }
|
|
90
|
+
.feature-copy { min-width: 0; }
|
|
91
|
+
.feature-copy h2 { font-size: clamp(28px, 3vw, 37px); }
|
|
92
|
+
.feature-copy > p:not(.eyebrow):not(.try):not(.feature-benefit) { margin-top: 20px; color: var(--muted); font-size: 15px; }
|
|
93
|
+
.feature-copy > p.concept-intro { color: var(--ink); font-size: 17px; line-height: 1.75; }
|
|
94
|
+
.feature-copy > .text-link { margin-top: 24px; }
|
|
95
|
+
.feature-copy .technical { margin-top: 20px; color: var(--muted); font-size: 14px; }
|
|
96
|
+
.feature-copy .technical summary { cursor: pointer; color: var(--ink); }
|
|
97
|
+
.feature-copy .technical p { margin-top: 14px; }
|
|
98
|
+
.try { margin-top: 24px; padding-top: 15px; border-top: 1px solid var(--line-soft); font-size: 12px; color: var(--muted); }
|
|
99
|
+
.try span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; }
|
|
100
|
+
.try a { text-decoration-color: #bacbdc; }
|
|
101
|
+
.visual { min-width: 0; padding: 30px; border: 1px solid var(--line-soft); border-radius: 14px; background: linear-gradient(145deg, #f8fcff, #edf3f9); }
|
|
102
|
+
.visual-label { margin-bottom: 22px; color: #52718c; font: 10px/1.5 var(--mono); text-transform: uppercase; letter-spacing: .09em; }
|
|
103
|
+
.event-schema { min-width: 0; padding: 30px; border: 1px solid #bfd8cd; border-radius: 20px; background: linear-gradient(150deg, #f5fbf8, #eaf5ef); box-shadow: 0 26px 60px -36px #4b937655; }
|
|
104
|
+
.event-schema > .visual-label { color: #407460; }
|
|
105
|
+
.event-node { display: flex; align-items: center; gap: 14px; padding: 17px; border: 1px solid #c7dbd2; border-radius: 12px; background: #fff; }
|
|
106
|
+
.event-node > svg { flex: 0 0 24px; width: 24px; height: 24px; color: #32785d; }
|
|
107
|
+
.event-node strong, .event-node small { display: block; }
|
|
108
|
+
.event-node strong { font-size: 14px; line-height: 1.4; }
|
|
109
|
+
.event-node small { margin-top: 5px; color: #60796e; font-size: 11px; line-height: 1.5; }
|
|
110
|
+
.event-source, .event-filter { max-width: 300px; margin: 0 auto; }
|
|
111
|
+
.event-filter { border-color: #4e8b72; background: #e0f0e7; }
|
|
112
|
+
.event-link { display: block; width: 100%; height: 38px; color: #59947b; }
|
|
113
|
+
.event-targets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
|
|
114
|
+
.event-targets .event-node { flex-direction: column; align-items: flex-start; gap: 10px; padding: 14px; }
|
|
115
|
+
.event-schema figcaption { margin-top: 24px; padding-top: 16px; border-top: 1px solid #ccdfd5; color: #587568; font-size: 11px; line-height: 1.6; }
|
|
116
|
+
.event-receipt { display: block; margin-top: 8px; color: #2a7456; font-size: 10px; line-height: 1.4; }
|
|
117
|
+
.connector::before { content: ''; position: absolute; top: -3px; left: calc(var(--delivery, 0) * 100%); width: 7px; height: 7px; border-radius: 50%; background: #285bd7; opacity: var(--delivery-opacity, 0); }
|
|
118
|
+
.demo-label { margin: 18px 0 0; font: 10px/1.6 var(--mono); color: var(--muted); }
|
|
119
|
+
.journal-section { padding: 76px 0; border-bottom: 1px solid var(--line-soft); }
|
|
120
|
+
.journal-heading { display: grid; grid-template-columns: .95fr 1.05fr; gap: 76px; align-items: end; margin-bottom: 32px; }
|
|
121
|
+
.journal-heading > p { color: var(--muted); font-size: 15px; }
|
|
122
|
+
.journal-demo { padding: 30px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); }
|
|
123
|
+
.journal-demo > .demo-label { margin: 0 0 12px; }
|
|
124
|
+
.journal-demo h3 { font-size: 22px; }
|
|
125
|
+
.demo-description { max-width: 720px; font-size: 13px; margin-top: 14px; color: var(--muted); }
|
|
126
|
+
.replay-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 22px 0; }
|
|
127
|
+
button { font: inherit; }
|
|
128
|
+
.replay-controls button { min-height: 40px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 6px; background: white; font-size: 12px; color: var(--ink); cursor: pointer; }
|
|
129
|
+
.replay-controls .next { background: var(--ink); border-color: var(--ink); color: white; }
|
|
130
|
+
.replay-controls button:hover:enabled { border-color: var(--accent); }
|
|
131
|
+
.replay-controls button:disabled { opacity: .45; cursor: default; }
|
|
132
|
+
.step-count { margin-left: auto; font: 10px var(--mono); color: var(--muted); }
|
|
133
|
+
.replay-layout { display: grid; grid-template-columns: 1.15fr 1fr; gap: 36px; }
|
|
134
|
+
.replay-events { list-style: none; margin: 0; padding: 0; }
|
|
135
|
+
.replay-events li { display: flex; gap: 14px; padding: 12px; border-top: 1px solid var(--line-soft); font-size: 12px; color: var(--muted); }
|
|
136
|
+
.replay-events li[data-read="true"] { color: var(--ink); }
|
|
137
|
+
.replay-events li[aria-current="step"] { background: #eaf4ff; box-shadow: inset 2px 0 var(--accent); }
|
|
138
|
+
.sequence { font: 10px/1.8 var(--mono); color: #537998; }
|
|
139
|
+
.replay-events code { display: block; color: var(--ink); font-size: 11px; margin-bottom: 3px; }
|
|
140
|
+
.projection { align-self: start; padding: 24px; background: white; border: 1px solid var(--line); border-radius: 9px; }
|
|
141
|
+
.projection .demo-label { margin: 0 0 20px; }
|
|
142
|
+
.projection dl { display: flex; flex-wrap: wrap; gap: 18px 28px; margin: 0; }
|
|
143
|
+
.projection dt { font-size: 10px; color: var(--muted); }
|
|
144
|
+
.projection dd { margin: 5px 0 0; font-size: 18px; font-weight: 550; color: var(--ink); }
|
|
145
|
+
.response { margin-top: 24px; border-top: 1px solid var(--line-soft); padding-top: 16px; font-size: 12px; }
|
|
146
|
+
.source-links { margin-top: 20px; color: var(--muted); font-size: 10px; }
|
|
147
|
+
.journal-section > .actions { justify-content: space-between; }
|
|
148
|
+
.journal-section > .try { border: 0; padding-top: 0; }
|
|
149
|
+
.support { display: grid; grid-template-columns: .95fr 1.05fr; gap: 76px; padding: 68px 0; }
|
|
150
|
+
.support p { color: var(--muted); font-size: 14px; margin-top: 20px; }
|
|
151
|
+
.support h2 { font-size: 32px; }
|
|
152
|
+
.support .try { font-size: 12px; }
|
|
153
|
+
.support-visual { display: grid; gap: 0; align-content: center; }
|
|
154
|
+
.support-visual > div { display: flex; align-items: center; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line-soft); }
|
|
155
|
+
.support-visual svg { width: 24px; height: 24px; color: #247bca; }
|
|
156
|
+
.support-visual strong { display: block; font-size: 14px; }
|
|
157
|
+
.support-visual small { display: block; color: var(--muted); font-size: 12px; }
|
|
158
|
+
.support .feature-benefits { margin-top: 12px; }
|
|
159
|
+
.support-wide { grid-column: 1 / -1; }
|
|
160
|
+
.distribution-figure { grid-column: 1 / -1; margin: 12px 0 0; }
|
|
161
|
+
.distribution-nodes { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 14px; align-items: stretch; }
|
|
162
|
+
.distribution-node { padding: 18px 20px; border: 1.5px solid #233447; border-radius: 12px; background: #fff; box-shadow: 4px 6px 0 #23344710; }
|
|
163
|
+
.distribution-node.accent { background: #f2f7ff; }
|
|
164
|
+
.distribution-node .node-kind { display: block; margin-bottom: 8px; color: #43617d; font: 500 11px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
|
|
165
|
+
.distribution-node strong { display: block; font-size: 16px; margin-bottom: 6px; }
|
|
166
|
+
.distribution-node p { margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
|
|
167
|
+
.distribution-link { display: grid; align-content: center; gap: 10px; color: #43617d; font: 500 11px/1.3 var(--mono); text-align: center; }
|
|
168
|
+
.distribution-link span { padding: 4px 9px; border: 1px dashed #43617d; border-radius: 999px; white-space: nowrap; }
|
|
169
|
+
.distribution-figure figcaption { margin-top: 12px; color: var(--muted); font-size: 13px; line-height: 1.6; }
|
|
170
|
+
@media (max-width: 959px) { .distribution-nodes { grid-template-columns: 1fr; } .distribution-link { grid-auto-flow: column; justify-content: center; } .distribution-link span { white-space: normal; } }
|
|
171
|
+
.start-section { padding: 76px 0; }
|
|
172
|
+
.start-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 76px; align-items: end; }
|
|
173
|
+
.start-heading > p { color: var(--muted); font-size: 15px; }
|
|
174
|
+
.example-list { margin-top: 32px; border-top: 1px solid var(--line); }
|
|
175
|
+
.example-list a { display: grid; grid-template-columns: 48px 1fr 1fr 24px; gap: 24px; align-items: center; padding: 26px 12px; border-bottom: 1px solid var(--line); text-decoration: none; }
|
|
176
|
+
.example-list a:hover { background: var(--panel); }
|
|
177
|
+
.example-list .topic-icon { width: 26px; height: 26px; color: #247bca; }
|
|
178
|
+
.example-list strong { font-size: 16px; color: var(--ink); }
|
|
179
|
+
.example-list small { display: block; margin-top: 3px; font-size: 10px; font-weight: 400; color: var(--muted); }
|
|
180
|
+
.example-list p { font-size: 13px; color: var(--muted); }
|
|
181
|
+
.start-section .actions { justify-content: space-between; }
|
|
182
|
+
.limits { padding: 40px 0 56px; border-top: 1px solid var(--line-soft); }
|
|
183
|
+
.limits h2 { font-size: 25px; }
|
|
184
|
+
.limits > p { color: var(--muted); font-size: 13px; max-width: 850px; margin-top: 18px; }
|
|
185
|
+
.limits details { margin-top: 22px; max-width: 850px; font-size: 13px; color: var(--muted); }
|
|
186
|
+
.limits summary { cursor: pointer; color: var(--ink); }
|
|
187
|
+
.limits details p { margin-top: 14px; }
|
|
188
|
+
footer { border-top: 1px solid var(--line); padding: 30px 0; color: var(--muted); font-size: 11px; }
|
|
189
|
+
.footer-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
|
|
190
|
+
.footer-brand { color: var(--ink); font-size: 20px; font-weight: 700; letter-spacing: -.05em; }
|
|
191
|
+
.footer-links { display: flex; flex-wrap: wrap; gap: 12px 24px; }
|
|
192
|
+
.footer-links a { text-decoration: none; }
|
|
193
|
+
.footer-links a:hover { text-decoration: underline; }
|
|
194
|
+
[hidden] { display: none !important; }
|
|
195
|
+
@media (max-width: 900px) {
|
|
196
|
+
.feature, .journal-heading, .support, .start-heading { gap: 36px; }
|
|
197
|
+
.workspace-body { padding: 64px 48px 24px 24px; }
|
|
198
|
+
.workspace-flow { grid-template-columns: 1fr 42px 1fr 42px 1fr; }
|
|
199
|
+
.workspace-node { padding: 16px; }
|
|
200
|
+
.workspace-journal code { display: none; }
|
|
201
|
+
.visual, .event-schema { padding: 22px; }
|
|
202
|
+
.replay-layout { gap: 22px; }
|
|
203
|
+
}
|
|
204
|
+
@media (max-width: 640px) {
|
|
205
|
+
.hero { padding-top: 44px; }
|
|
206
|
+
.hero .eyebrow { font-size: 9px; letter-spacing: .08em; }
|
|
207
|
+
.lead { font-size: 15px; margin-top: 20px; }
|
|
208
|
+
.hero .actions { gap: 10px; }
|
|
209
|
+
.button { font-size: 12px; gap: 12px; padding: 10px 14px; }
|
|
210
|
+
.workspace-figure { margin-top: 32px; }
|
|
211
|
+
.workspace-bar { padding: 12px 15px; font-size: 10px; }
|
|
212
|
+
.workspace-bar > span:last-child { font-size: 8px; }
|
|
213
|
+
.workspace-body { padding: 58px 44px 22px 18px; }
|
|
214
|
+
.workspace-flow { grid-template-columns: 1fr; }
|
|
215
|
+
.connector { height: 64px; width: 1px; margin: 0 auto; }
|
|
216
|
+
.connector::before { top: calc(var(--delivery, 0) * 100%); left: -3px; }
|
|
217
|
+
.connector::after { top: auto; bottom: 0; left: -3px; transform: rotate(135deg); }
|
|
218
|
+
.workspace-team { grid-template-columns: 1fr; gap: 64px; }
|
|
219
|
+
.workspace-team .workspace-node { padding: 12px; }
|
|
220
|
+
.workspace-team .node-heading { flex-wrap: wrap; gap: 8px; font-size: 12px; }
|
|
221
|
+
.workspace-node p, .workspace-node small { font-size: 11px; }
|
|
222
|
+
.workspace-node small { margin-top: 9px; padding-top: 9px; }
|
|
223
|
+
.node-badge { margin-top: 9px; }
|
|
224
|
+
.canvas-app { min-height: 0; }
|
|
225
|
+
.app-lines { grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 12px; }
|
|
226
|
+
.app-lines span { font-size: 10px; padding: 6px; }
|
|
227
|
+
.workspace-journal { padding: 10px 12px; font-size: 10px; margin-top: 16px; }
|
|
228
|
+
.workspace-journal > span { text-align: right; }
|
|
229
|
+
.workspace-figure figcaption { font-size: 10px; }
|
|
230
|
+
.section-heading { padding: 44px 0 0; }
|
|
231
|
+
.section-heading p:last-child { font-size: 14px; }
|
|
232
|
+
.feature, .support, .start-heading, .journal-heading { grid-template-columns: 1fr; gap: 28px; }
|
|
233
|
+
.feature, .support { padding: 44px 0; }
|
|
234
|
+
.feature-copy > p:not(.eyebrow):not(.try):not(.feature-benefit) { font-size: 14px; }
|
|
235
|
+
.eyebrow { margin-bottom: 14px; }
|
|
236
|
+
.try { margin-top: 20px; }
|
|
237
|
+
.journal-section, .start-section { padding: 48px 0; }
|
|
238
|
+
.journal-demo { padding: 20px; }
|
|
239
|
+
.replay-layout { grid-template-columns: 1fr; }
|
|
240
|
+
.replay-controls { gap: 8px; }
|
|
241
|
+
.replay-controls button { padding: 8px 10px; font-size: 11px; }
|
|
242
|
+
.step-count { width: 100%; margin: 8px 0 0; }
|
|
243
|
+
.replay-events li { padding: 10px 0; gap: 10px; font-size: 11px; }
|
|
244
|
+
.replay-events li[aria-current="step"] { padding-left: 10px; }
|
|
245
|
+
.projection { padding: 18px; }
|
|
246
|
+
.example-list a { grid-template-columns: 30px 1fr 18px; gap: 10px 16px; padding: 22px 0; }
|
|
247
|
+
.example-list p { grid-column: 2; font-size: 12px; }
|
|
248
|
+
.example-list a > .link-icon { grid-column: 3; grid-row: 1 / 3; }
|
|
249
|
+
.start-section .actions { justify-content: flex-start; }
|
|
250
|
+
.limits { padding: 32px 0; }
|
|
251
|
+
.footer-links { gap: 12px 18px; }
|
|
252
|
+
}
|
|
253
|
+
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } }
|
|
254
|
+
@media print { .hero, .feature, .journal-section, .support, .start-section { padding-block: 25px; } .hero { background: white; } .actions, .replay-controls { display: none; } .workspace, .visual, .journal-demo { box-shadow: none; break-inside: avoid; } }
|
|
255
|
+
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
|
|
256
|
+
.hero { isolation: isolate; background: radial-gradient(ellipse at 48% 64%, #d9ecff 0, #f4f9ff 48%, #fff 80%); }
|
|
257
|
+
.hero-aura { position: absolute; inset: 0; overflow: hidden; z-index: -1; pointer-events: none; }
|
|
258
|
+
.hero-aura::before { content: ''; position: absolute; width: 840px; height: 840px; top: -210px; left: calc(50% - 420px); border: 1px solid #b6d9fa50; border-radius: 50%; box-shadow: 0 0 0 110px #b6d9fa12, 0 0 0 220px #b6d9fa0c; }
|
|
259
|
+
.hero-aura span { position: absolute; width: 380px; height: 380px; border-radius: 50%; filter: blur(70px); opacity: .48; background: #b4d9ff; top: 160px; left: -200px; }
|
|
260
|
+
.hero-aura span + span { top: 350px; left: auto; right: -200px; background: #adf1e0; }
|
|
261
|
+
.hero-copy { position: relative; z-index: 1; }
|
|
262
|
+
.hero h1 { font-size: clamp(40px, 5.8vw, 80px); letter-spacing: -.055em; }
|
|
263
|
+
.hero h1 span { color: #247bca; background: linear-gradient(110deg, #1769b1 15%, #2a94fa 50%, #238f99 90%); background-clip: text; -webkit-text-fill-color: transparent; }
|
|
264
|
+
.hero .button { box-shadow: 0 9px 24px #22334716; }
|
|
265
|
+
.hero .button.secondary { box-shadow: 0 6px 16px #22334708; }
|
|
266
|
+
.workspace-figure { transform-origin: center top; }
|
|
267
|
+
.workspace { box-shadow: 0 40px 85px -35px #53445455, 0 2px 12px #5146570a; }
|
|
268
|
+
.story-art { position: relative; width: 100%; height: 410px; min-width: 0; margin: 0; }
|
|
269
|
+
.story-scene > figcaption { position: absolute; inset: auto 26px 28px; color: #bed3e4; text-align: center; font-size: 9px; margin: 0; text-wrap: balance; }
|
|
270
|
+
.story-art svg { display: block; }
|
|
271
|
+
.feature { gap: 90px; padding-block: 90px; }
|
|
272
|
+
.feature-copy h2 { font-size: clamp(30px, 3.25vw, 43px); letter-spacing: -.045em; }
|
|
273
|
+
.feature > .visual { position: relative; padding: 40px; border-radius: 20px; box-shadow: 0 24px 50px -30px #477ba733; }
|
|
274
|
+
.feature > .visual::before { content: ''; position: absolute; inset: -14px 16px 14px -14px; z-index: -1; border: 1px solid #cbdff2; border-radius: 24px; transform: rotate(-3deg); }
|
|
275
|
+
.feature:nth-of-type(even) > .visual::before { transform: rotate(3deg); }
|
|
276
|
+
.feature-benefit { margin-top: 16px; color: #285bd7; font-size: 18px; font-weight: 600; line-height: 1.5; letter-spacing: -.015em; }
|
|
277
|
+
.feature-benefits { margin: 16px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
|
|
278
|
+
.feature-benefits li { position: relative; padding-left: 30px; color: #285bd7; font-size: 18px; font-weight: 600; line-height: 1.5; letter-spacing: -.015em; }
|
|
279
|
+
.feature-benefits li::before { content: ""; position: absolute; left: 0; top: .28em; width: 18px; height: 18px; border-radius: 50%; background: #285bd7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat; }
|
|
280
|
+
.feature-copy, .feature > .visual, .event-schema, .journal-demo, .support-visual, .example-list { transform-origin: center; }
|
|
281
|
+
.section-heading { padding-top: 90px; }
|
|
282
|
+
.section-heading h2 { font-size: clamp(35px, 4vw, 52px); }
|
|
283
|
+
.text-link .link-icon, .button .link-icon { transition: transform .2s ease; }
|
|
284
|
+
:is(.text-link, .button):hover .link-icon { transform: translateX(4px); }
|
|
285
|
+
.hero { padding-block: 78px 0; }
|
|
286
|
+
.hero-copy { max-width: 850px; }
|
|
287
|
+
.lead { max-width: 660px; }
|
|
288
|
+
.feature-story { padding-top: 58px; padding-bottom: 70px; }
|
|
289
|
+
.story-intro { display: grid; grid-template-columns: 1fr 1fr; column-gap: 76px; align-items: end; padding-bottom: 32px; }
|
|
290
|
+
.story-intro .eyebrow { grid-column: 1 / -1; margin-bottom: 16px; }
|
|
291
|
+
.story-intro h2 { font-size: clamp(28px, 3.2vw, 40px); }
|
|
292
|
+
.story-intro > p:last-child { color: var(--muted); font-size: 15px; max-width: 430px; }
|
|
293
|
+
.story-step { position: relative; display: block; padding-block: 48px; }
|
|
294
|
+
.story-step .feature-copy h3 { font-size: clamp(30px, 3.4vw, 46px); }
|
|
295
|
+
.story-step .feature-copy > .concept-intro { font-size: 17px; line-height: 1.8; margin-top: 24px; }
|
|
296
|
+
#actor-views .feature-benefits li { color: #277257; }
|
|
297
|
+
#actor-views .feature-benefits li::before { background-color: #277257; }
|
|
298
|
+
.story-step .technical { font-size: 13px; }
|
|
299
|
+
.story-step .technical[open] { padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
|
|
300
|
+
.anchor-alias { position: absolute; top: 0; }
|
|
301
|
+
.story-scene { --scene-accent: #8dcaff; position: relative; display: flex; flex-direction: column; justify-content: center; width: 100%; min-width: 0; min-height: 570px; padding: 84px 38px 72px; isolation: isolate; overflow: hidden; border: 1px solid #355069; border-radius: 20px; background: #142639; color: #e4effa; box-shadow: 0 30px 65px -42px #16364c99; }
|
|
302
|
+
.scene-code { --scene-accent: #c6deff; background: #1d4f9b; border-color: #3974c7; }
|
|
303
|
+
.scene-apps { --scene-accent: #89e6c7; background: #153b3d; border-color: #295953; }
|
|
304
|
+
.scene-heading { position: absolute; inset: 28px 30px auto; display: flex; justify-content: space-between; gap: 16px; color: #bed3e4; font: 9px var(--mono); letter-spacing: .05em; text-transform: uppercase; }
|
|
305
|
+
.scene-heading > span:last-child { color: var(--scene-accent); }
|
|
306
|
+
.story-art { height: 380px; flex: none; }
|
|
307
|
+
.story-drawing { position: relative; width: 100%; height: 100%; }
|
|
308
|
+
.motion-line { fill: none; stroke: var(--scene-accent, #43856a); stroke-width: 1.8; stroke-dasharray: 1; }
|
|
309
|
+
.motion-packet { fill: #fff; stroke: var(--scene-accent, #43856a); stroke-width: 2; opacity: 0; }
|
|
310
|
+
.story-nav { position: absolute; inset: auto 0 6px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
|
|
311
|
+
.story-nav a { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 9px 8px; border: 1px solid transparent; border-radius: 7px; color: var(--muted); font-size: 12px; text-decoration: none; }
|
|
312
|
+
.story-nav a > span { font: 9px var(--mono); }
|
|
313
|
+
.story-nav a:hover { background: var(--surface); }
|
|
314
|
+
.story-nav a[aria-current] { color: var(--ink); background: #eaf0ff; border-color: #c8d6f2; }
|
|
315
|
+
.story-progress { position: absolute; bottom: 0; height: 2px; inset-inline: 0; background: var(--line-soft); overflow: hidden; }
|
|
316
|
+
.story-progress > span { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, #285bd7, #277257); transform: scaleX(0); transform-origin: left; }
|
|
317
|
+
.feature-story[data-pinned] .story-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 64px; align-items: start; }
|
|
318
|
+
.feature-story[data-pinned] .story-steps { min-width: 0; }
|
|
319
|
+
.feature-story[data-pinned] .story-step { display: flex; min-height: calc(100svh - var(--header-height, 80px) - 40px); padding-block: 100px; }
|
|
320
|
+
.feature-story[data-pinned] .story-step:last-child { min-height: calc(100svh - var(--header-height, 80px)); }
|
|
321
|
+
.feature-story[data-pinned] .story-step .feature-copy { width: 100%; }
|
|
322
|
+
.interface-section { padding-block: 74px; background: linear-gradient(180deg, #f0f5fa, #f8fafc); border-block: 1px solid var(--line-soft); }
|
|
323
|
+
.interface-intro { display: grid; grid-template-columns: 1fr 1fr; column-gap: 76px; align-items: start; max-width: none; margin: 0; text-align: left; }
|
|
324
|
+
.interface-intro .eyebrow { grid-column: 1 / -1; margin: 0 0 16px; }
|
|
325
|
+
.interface-intro h2 { font-size: clamp(30px, 3.4vw, 42px); }
|
|
326
|
+
.interface-text > p { margin-top: 0; }
|
|
327
|
+
.interface-text > p + p { margin-top: 16px; }
|
|
328
|
+
.interface-text > .text-link { margin-top: 20px; }
|
|
329
|
+
html[data-homepage-motion] .masthead::after { content: ''; position: absolute; bottom: 0; height: 2px; inset-inline: 0; background: linear-gradient(90deg, #285bd7, #4ba895); transform: scaleX(var(--reading-progress, 0)); transform-origin: left; }
|
|
330
|
+
@media (max-height: 739px) {
|
|
331
|
+
.feature-story[data-pinned] .story-step { padding-block: 64px; }
|
|
332
|
+
}
|
|
333
|
+
@media (max-height: 639px) {
|
|
334
|
+
}
|
|
335
|
+
@media (max-width: 1100px) {
|
|
336
|
+
.story-step, .feature-story[data-pinned] .story-layout { gap: 38px; }
|
|
337
|
+
.story-scene { padding-inline: 24px; }
|
|
338
|
+
.story-art { height: 340px; }
|
|
339
|
+
.feature { gap: 48px; }
|
|
340
|
+
.feature > .visual { padding: 28px; }
|
|
341
|
+
}
|
|
342
|
+
@media (max-width: 959px) {
|
|
343
|
+
.story-intro, .interface-intro { column-gap: 36px; }
|
|
344
|
+
.story-step { grid-template-columns: 1fr 1fr; gap: 30px; }
|
|
345
|
+
.story-scene { min-height: 490px; padding-inline: 22px; }
|
|
346
|
+
.story-art { height: 300px; }
|
|
347
|
+
}
|
|
348
|
+
@media (max-width: 700px) {
|
|
349
|
+
.hero { padding-top: 48px; }
|
|
350
|
+
.hero h1 { font-size: clamp(36px, 8vw, 54px); }
|
|
351
|
+
.hero-aura::before { width: 540px; height: 540px; left: calc(50% - 270px); top: -40px; box-shadow: 0 0 0 65px #b6d9fa12; }
|
|
352
|
+
.feature-story { padding-block: 42px; }
|
|
353
|
+
.story-intro, .story-step, .interface-intro { grid-template-columns: 1fr; gap: 20px; }
|
|
354
|
+
.story-intro { padding-bottom: 4px; }
|
|
355
|
+
.story-intro .eyebrow, .interface-intro .eyebrow { margin: 0; }
|
|
356
|
+
.story-intro > p:last-child { font-size: 14px; }
|
|
357
|
+
.story-step { padding-block: 42px; gap: 30px; border-bottom: 1px solid var(--line-soft); }
|
|
358
|
+
.story-step:last-child { border-bottom: 0; padding-bottom: 0; }
|
|
359
|
+
.story-step .feature-copy h3 { max-width: 450px; font-size: 32px; }
|
|
360
|
+
.story-step .feature-copy > .concept-intro { font-size: 15px; }
|
|
361
|
+
.story-scene { min-height: 0; padding: 74px 26px 92px; }
|
|
362
|
+
.story-art { width: min(430px, 100%); height: 305px; align-self: center; }
|
|
363
|
+
.scene-heading { inset: 24px 24px auto; font-size: 8px; }
|
|
364
|
+
.story-scene > figcaption { font-size: 8px; }
|
|
365
|
+
.interface-section { padding-block: 48px; }
|
|
366
|
+
.interface-intro > p:last-child { font-size: 14px; }
|
|
367
|
+
.feature { padding-block: 55px; gap: 30px; }
|
|
368
|
+
.feature > .visual { padding: 24px; }
|
|
369
|
+
.feature > .visual::before { inset: -8px 10px 8px -6px; }
|
|
370
|
+
.section-heading { padding-top: 50px; }
|
|
371
|
+
}
|
|
372
|
+
@media (max-width: 360px) {
|
|
373
|
+
.story-scene { padding-inline: 20px; }
|
|
374
|
+
.story-art { height: 280px; }
|
|
375
|
+
}
|
|
376
|
+
@media (prefers-reduced-motion: reduce) {
|
|
377
|
+
.hero-copy, .workspace-figure, .story-art { transform: none !important; }
|
|
378
|
+
html[data-homepage-motion] .masthead::after { display: none; }
|
|
379
|
+
}
|
|
380
|
+
@media print {
|
|
381
|
+
.hero-aura { display: none !important; }
|
|
382
|
+
.story-step { break-inside: avoid; grid-template-columns: 1fr 1fr; min-height: 0; }
|
|
383
|
+
.story-scene { box-shadow: none; print-color-adjust: exact; }
|
|
384
|
+
.feature { padding-block: 30px; }
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
.hero { padding: 0 0 72px; background: none; }
|
|
388
|
+
.hero-aura { background: radial-gradient(ellipse at 48% 64%, #d9ecff 0, #f4f9ff 48%, #fff 80%); mask-image: linear-gradient(to bottom, #000 calc(100% - 160px), transparent); }
|
|
389
|
+
.hero-board { position: relative; min-height: 595px; padding: 112px 84px 148px; }
|
|
390
|
+
.hero-copy { max-width: 850px; }
|
|
391
|
+
.hero h1 { font-size: clamp(42px, 4.6vw, 64px); line-height: 1.08; }
|
|
392
|
+
.hero .lead { max-width: 590px; font-size: 17px; }
|
|
393
|
+
.feature-stickers { position: absolute; inset: 0; pointer-events: none; }
|
|
394
|
+
.feature-sticker { position: absolute; display: flex; align-items: center; gap: 17px; padding: 15px 23px; color: #233447; border: 1.5px solid #233447; border-radius: 5px 18px 5px 18px; box-shadow: 4px 6px 0 #23344716, 0 14px 25px -19px #12273790; text-decoration: none; pointer-events: auto; transform: rotate(var(--sticker-angle)); transition: transform .18s ease, box-shadow .18s ease; }
|
|
395
|
+
.feature-sticker:hover, .feature-sticker:focus-visible { transform: rotate(0deg) translateY(-3px); box-shadow: 4px 9px 0 #23344720; }
|
|
396
|
+
.feature-sticker strong { font-size: 20px; font-weight: 750; line-height: 1.15; letter-spacing: -.035em; }
|
|
397
|
+
.feature-sticker svg { flex: 0 0 33px; width: 33px; height: 33px; }
|
|
398
|
+
.sticker-symbol { flex-shrink: 0; white-space: nowrap; font: 650 29px/1 var(--mono); letter-spacing: -.09em; }
|
|
399
|
+
.sticker-setups { --sticker-angle: -6deg; left: 16px; top: 22px; background: #ffdd68; }
|
|
400
|
+
.sticker-apps { --sticker-angle: 5deg; right: 22px; top: 23px; background: #a7e8d4; border-radius: 16px 4px 16px 4px; }
|
|
401
|
+
.sticker-agents { --sticker-angle: -4deg; left: 62px; bottom: 26px; background: #c2ddff; }
|
|
402
|
+
.sticker-workflows { --sticker-angle: 5deg; right: 55px; bottom: 29px; background: #e2ccff; }
|
|
403
|
+
.sticker-journal { --sticker-angle: -2deg; left: calc(50% - 115px); bottom: 15px; background: #fffef7; border-style: dashed; }
|
|
404
|
+
.sticker-journal strong { font-size: 18px; }
|
|
405
|
+
.sticker-distributed { --sticker-angle: -3deg; left: 24px; top: calc(50% - 4px); background: #ffd9c4; border-radius: 16px 4px 16px 4px; }
|
|
406
|
+
.sticker-clients { --sticker-angle: 3deg; right: 24px; top: calc(50% - 4px); background: #d7efff; }
|
|
407
|
+
.story-nav { grid-template-columns: repeat(4, 1fr); }
|
|
408
|
+
.scene-setups { background: linear-gradient(145deg, #faf5ff, #ece4f6); border-color: #cbb7df; }
|
|
409
|
+
.scene-setups .scene-heading, .scene-setups > figcaption { color: #6d547f; }
|
|
410
|
+
.scene-setups .scene-heading > span:last-child { color: #7f569f; }
|
|
411
|
+
.scene-apps { background: radial-gradient(ellipse at 80% 10%, #dcf6ec, #aed3cc); border-color: #95bbb3; padding: 70px 26px 78px; }
|
|
412
|
+
.scene-apps .scene-heading, .scene-apps > figcaption { color: #3b6155; }
|
|
413
|
+
.scene-apps .scene-heading > span:last-child { color: #3b6155; }
|
|
414
|
+
.mini-app-window { display: flex; flex-direction: column; width: 100%; height: auto; flex: none; min-height: 0; overflow: hidden; border: 1.5px solid #304b42; border-radius: 10px; box-shadow: 0 14px 32px -12px #173e4744; background: #fafcfb; }
|
|
415
|
+
.mini-app-window-bar { display: flex; flex: 0 0 35px; align-items: center; gap: 9px; padding: 0 14px; color: #263c33; background: #e8f0eb; border-bottom: 1px solid #b5c9bd; font-size: 11px; }
|
|
416
|
+
.mini-app-window-bar > span:last-child { margin-left: auto; font: 9px var(--mono); color: #527263; }
|
|
417
|
+
.mini-app-status-dot { width: 6px; height: 6px; border-radius: 50%; background: #468064; }
|
|
418
|
+
.sample-scene { padding: 70px 26px 78px; }
|
|
419
|
+
.sample-scene > figcaption a { color: inherit; }
|
|
420
|
+
.mini-app-demo, .sample-demo { display: block; width: 100%; flex: none; min-height: 0; border: 0; background: #fafcfb; }
|
|
421
|
+
@media (max-width: 1100px) {
|
|
422
|
+
.hero-board { min-height: 0; padding: 80px 30px 60px; }
|
|
423
|
+
.feature-stickers { position: relative; inset: auto; display: flex; flex-wrap: wrap; justify-content: center; gap: 15px 14px; margin: 35px 5px 0; }
|
|
424
|
+
.feature-sticker { position: relative; inset: auto; padding: 12px 16px; gap: 10px; }
|
|
425
|
+
.feature-sticker strong, .sticker-journal strong { font-size: 17px; }
|
|
426
|
+
}
|
|
427
|
+
@media (max-width: 959px) {
|
|
428
|
+
.scene-apps .mini-app-window { height: auto; flex: none; }
|
|
429
|
+
.scene-apps { min-height: 530px; }
|
|
430
|
+
}
|
|
431
|
+
@media (max-width: 700px) {
|
|
432
|
+
.hero { padding-bottom: 48px; }
|
|
433
|
+
.hero-board { min-height: 0; padding: 45px 0 36px; }
|
|
434
|
+
.hero h1 { font-size: clamp(34px, 7.8vw, 45px); }
|
|
435
|
+
.hero .lead { font-size: 15px; }
|
|
436
|
+
.feature-sticker { width: calc(50% - 7px); padding: 12px; gap: 9px; }
|
|
437
|
+
.feature-sticker strong, .sticker-journal strong { font-size: 16px; }
|
|
438
|
+
.feature-sticker svg { width: 25px; height: 25px; flex-basis: 25px; }
|
|
439
|
+
.sticker-symbol { font-size: 18px; }
|
|
440
|
+
.sticker-setups strong { font-size: 15px; }
|
|
441
|
+
.scene-apps { padding: 65px 16px 83px; min-height: 0; }
|
|
442
|
+
.scene-apps .scene-heading { inset-inline: 18px; }
|
|
443
|
+
.scene-apps > figcaption { inset-inline: 18px; font-size: 10px; }
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
.story-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 72px 64px; align-items: start; }
|
|
448
|
+
.story-steps, .story-stage, .story-scenes { display: contents; }
|
|
449
|
+
#setups, [data-story-scene="setups"] { --story-index: 0; }
|
|
450
|
+
#agents, [data-story-scene="agents"] { --story-index: 1; }
|
|
451
|
+
#programming, [data-story-scene="programming"] { --story-index: 2; }
|
|
452
|
+
#actor-views, [data-story-scene="actor-views"] { --story-index: 3; }
|
|
453
|
+
.story-step { grid-column: 1; grid-row: calc(var(--story-index) + 1); padding-top: 28px; }
|
|
454
|
+
.story-scene { grid-column: 2; grid-row: calc(var(--story-index) + 1); }
|
|
455
|
+
.story-nav, .story-progress { display: none; }
|
|
456
|
+
.feature-story[data-pinned] .story-steps { display: block; grid-area: 1 / 1; }
|
|
457
|
+
.feature-story[data-pinned] .story-stage { display: block; grid-area: 1 / 2; position: sticky; top: calc(var(--header-height, 80px) + 24px); width: 100%; height: var(--preview-stage-height, 650px); }
|
|
458
|
+
.feature-story[data-pinned] .story-scenes { display: block; position: absolute; inset: 0 0 66px; overflow: hidden; border: 1px solid #b9c5d3; border-radius: 20px; background: #f3eff7; box-shadow: 0 30px 65px -42px #16364c99; }
|
|
459
|
+
.feature-story[data-pinned] .story-scene { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; border: 0; border-radius: 0; box-shadow: none; }
|
|
460
|
+
.feature-story[data-pinned] .story-art { flex: 1; width: 100%; height: 100%; min-height: 0; }
|
|
461
|
+
.feature-story[data-pinned] .story-drawing { scale: none; }
|
|
462
|
+
.feature-story[data-pinned] .mini-app-window { height: auto; }
|
|
463
|
+
.feature-story[data-pinned] .story-step { min-height: max(calc(100svh - var(--header-height, 80px)), calc(var(--preview-stage-height, 650px) + 48px)); }
|
|
464
|
+
.feature-story[data-pinned] .story-nav { display: grid; }
|
|
465
|
+
.feature-story[data-pinned] .story-progress { display: block; }
|
|
466
|
+
@media (max-width: 1100px) { .story-layout { column-gap: 38px; } }
|
|
467
|
+
@media (max-width: 700px) {
|
|
468
|
+
.story-layout { grid-template-columns: 1fr; gap: 30px; }
|
|
469
|
+
.story-step { grid-column: 1; grid-row: calc(var(--story-index) * 2 + 1); padding-bottom: 0; border: 0; }
|
|
470
|
+
.story-scene { grid-column: 1; grid-row: calc(var(--story-index) * 2 + 2); margin-bottom: 12px; }
|
|
471
|
+
}
|
|
472
|
+
@media (max-height: 599px) {
|
|
473
|
+
.feature-story[data-pinned] .story-scene { padding: 48px 20px 63px; }
|
|
474
|
+
.feature-story[data-pinned] .scene-heading { inset: 17px 20px auto; }
|
|
475
|
+
.feature-story[data-pinned] .scene-sequence { inset: auto 20px 36px; }
|
|
476
|
+
.feature-story[data-pinned] .story-scene > figcaption { inset: auto 20px 13px; font-size: 8px; }
|
|
477
|
+
}
|
|
478
|
+
@media print {
|
|
479
|
+
.story-steps, .story-stage, .story-scenes { display: contents !important; }
|
|
480
|
+
.story-nav, .story-progress { display: none !important; }
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
.action-scene { container-type: inline-size; }
|
|
484
|
+
.action-visual { width: 100%; max-width: 550px; min-width: 0; margin-inline: auto; font: 12px/1.35 var(--font, system-ui); }
|
|
485
|
+
.action-visual * { box-sizing: border-box; }
|
|
486
|
+
.action-visual :is(p, ol, ul) { margin: 0; }
|
|
487
|
+
.action-visual strong { font-weight: 650; }
|
|
488
|
+
.action-visual small { font-size: 11px; }
|
|
489
|
+
.action-summary { position: absolute; inset: auto 20px 44px; min-height: 18px; text-align: center; font: 11px/1.35 var(--font, system-ui); }
|
|
490
|
+
.action-summary > span { display: block; }
|
|
491
|
+
.scene-setups .action-summary { color: #634879; }
|
|
492
|
+
.action-summary > span + span { position: absolute; inset: 0; }
|
|
493
|
+
.action-summary [data-build-status="working"] { opacity: 0; }
|
|
494
|
+
.action-scene > figcaption { inset: auto 20px 15px; font-size: 10px; line-height: 1.35; }
|
|
495
|
+
.file-mark { display: inline-grid; flex: 0 0 26px; width: 26px; height: 26px; place-items: center; border: 1px solid currentColor; border-radius: 4px; font: 700 11px/1 var(--mono, monospace); }
|
|
496
|
+
|
|
497
|
+
.setup-build { display: grid; grid-template-columns: minmax(185px, .9fr) minmax(0, 1.2fr); gap: 20px; color: #493857; }
|
|
498
|
+
.build-recipe { align-self: center; border-left: 2px solid #b29fc5; padding-left: 12px; }
|
|
499
|
+
.recipe-title { display: flex; align-items: center; gap: 8px; font-size: 12px; }
|
|
500
|
+
.recipe-lines { list-style: none; padding: 10px 0; display: grid; gap: 5px; }
|
|
501
|
+
.recipe-lines li { display: flex; align-items: center; gap: 8px; padding: 9px 4px; border-radius: 5px; background: transparent; }
|
|
502
|
+
.recipe-lines li > div { min-width: 0; }
|
|
503
|
+
.recipe-lines code { display: block; font: 600 10.5px/1.4 var(--mono, monospace); overflow-wrap: anywhere; color: #63447f; }
|
|
504
|
+
.recipe-lines li div > span { display: block; margin-top: 3px; font-size: 11px; }
|
|
505
|
+
.line-number { flex: 0 0 15px; color: #8f769f; font: 11px var(--mono, monospace); }
|
|
506
|
+
.recipe-source { color: #7b678a; font-size: 10px; }
|
|
507
|
+
.recipe-source code { font-size: inherit; }
|
|
508
|
+
.built-workspace { display: grid; gap: 7px; align-self: center; }
|
|
509
|
+
.build-owner { display: flex; align-items: center; gap: 9px; }
|
|
510
|
+
.build-owner strong { display: block; font-size: 14px; }
|
|
511
|
+
.build-owner small { display: block; color: #7b678a; }
|
|
512
|
+
.person-symbol { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #e0d3ed; }
|
|
513
|
+
.person-symbol svg { width: 19px; height: 19px; fill: none; stroke: #77528e; stroke-width: 1.7; }
|
|
514
|
+
.build-binding { position: relative; display: flex; flex-wrap: wrap; column-gap: 5px; padding-left: 21px; font-size: 10px; }
|
|
515
|
+
.build-binding code { font: 600 11px var(--mono, monospace); }
|
|
516
|
+
.binding-line { position: absolute; left: 14px; top: -7px; bottom: -7px; width: 7px; border-left: 1px solid #b49ac5; }
|
|
517
|
+
.built-list { position: relative; z-index: 1; min-width: 0; padding: 10px; background: #fcfefd; color: #284941; border: 1.5px solid #789a8d; border-radius: 7px; box-shadow: 0 5px 0 #d6ccdf; }
|
|
518
|
+
.built-list-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 4px; font-size: 12px; }
|
|
519
|
+
.built-list-heading > span { color: #638074; font-size: 10px; }
|
|
520
|
+
.built-list-tools { display: flex; align-items: center; gap: 6px; margin: 9px 0; font-size: 10px; color: #668176; }
|
|
521
|
+
.built-list-tools > span { flex: 1; padding: 4px 6px; border: 1px solid #9fb5ac; border-radius: 0 4px 0 0; }
|
|
522
|
+
.built-list-tools b { display: grid; place-items: center; width: 23px; height: 23px; color: #283c33; border: 1.5px solid #283c33; border-radius: 0 5px 0 5px; background: #f1d652; font-size: 16px; }
|
|
523
|
+
.built-list-entry { display: flex; align-items: center; gap: 7px; min-height: 29px; padding: 7px 0 2px; border-top: 1px solid #d8e8e1; font-size: 12px; }
|
|
524
|
+
.entry-check { color: #388066; }
|
|
525
|
+
.entry-check svg { display: block; width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; }
|
|
526
|
+
.build-assignment { display: flex; gap: 7px; align-items: start; margin-top: 4px; color: #71587f; font-size: 10px; }
|
|
527
|
+
.assignment-arrow { flex: 0 0 12px; height: 12px; margin-top: 2px; border-left: 1.5px solid #9a7fb0; border-bottom: 1.5px solid #9a7fb0; border-radius: 0 0 0 4px; }
|
|
528
|
+
|
|
529
|
+
@container (max-width: 420px) {
|
|
530
|
+
.action-summary { display: none; }
|
|
531
|
+
.setup-build { grid-template-columns: 1fr; gap: 12px; }
|
|
532
|
+
.build-recipe { padding-left: 8px; }
|
|
533
|
+
.recipe-title { font-size: 11px; }
|
|
534
|
+
.recipe-title .file-mark { width: 21px; height: 21px; flex-basis: 21px; }
|
|
535
|
+
.recipe-lines { gap: 1px; padding: 5px 0 2px; }
|
|
536
|
+
.recipe-lines li { padding: 2px; gap: 5px; }
|
|
537
|
+
.recipe-lines li > div { display: flex; align-items: baseline; gap: 5px; }
|
|
538
|
+
.recipe-lines code { display: none; }
|
|
539
|
+
.recipe-lines li div > span { display: block; font-size: 12px; margin-top: 0; }
|
|
540
|
+
.recipe-source { font-size: 9px; }
|
|
541
|
+
.built-workspace { gap: 4px; }
|
|
542
|
+
.build-owner strong { font-size: 13px; }
|
|
543
|
+
.build-owner small { font-size: 10px; }
|
|
544
|
+
.build-binding { font-size: 9px; }
|
|
545
|
+
.built-list { padding: 8px 10px; }
|
|
546
|
+
.built-list-tools { margin: 5px 0; }
|
|
547
|
+
.built-list-entry { min-height: 27px; padding-top: 5px; }
|
|
548
|
+
.build-assignment { margin-top: 3px; font-size: 10px; }
|
|
549
|
+
|
|
550
|
+
}
|
|
551
|
+
@media (min-width: 960px) and (max-height: 650px) {
|
|
552
|
+
.action-summary { display: none; }
|
|
553
|
+
.recipe-lines { gap: 0; padding-block: 5px; }
|
|
554
|
+
.recipe-lines li { padding-block: 6px; }
|
|
555
|
+
.built-workspace { gap: 4px; }
|
|
556
|
+
.build-assignment { margin-top: 2px; }
|
|
557
|
+
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
.concept-diagram { display: grid; width: 100%; gap: 18px; color: #29394a; }
|
|
561
|
+
.concept-card { padding: 16px; border: 1px solid #aebdcc; border-radius: 10px; background: #fff; box-shadow: 3px 4px 0 #24384d10; }
|
|
562
|
+
.concept-card strong, .concept-card small { display: block; }
|
|
563
|
+
.concept-card strong { font-size: 14px; }
|
|
564
|
+
.concept-card small { margin-top: 5px; color: #607286; font-size: 11px; line-height: 1.45; }
|
|
565
|
+
.concept-source { justify-self: center; min-width: 180px; text-align: center; border-color: #745c89; background: #f7f0fc; }
|
|
566
|
+
.concept-source code { display: block; color: #67467d; font-size: 12px; }
|
|
567
|
+
.concept-arrow { position: relative; height: 30px; color: #7890a6; }
|
|
568
|
+
.concept-arrow::before { content: ''; position: absolute; left: 50%; top: 0; bottom: 4px; border-left: 1px solid currentColor; }
|
|
569
|
+
.concept-arrow::after { content: ''; position: absolute; left: calc(50% - 4px); bottom: 2px; width: 7px; height: 7px; border: solid currentColor; border-width: 0 1px 1px 0; transform: rotate(45deg); }
|
|
570
|
+
.concept-outcomes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
|
|
571
|
+
.agent-network { position: relative; min-height: 340px; }
|
|
572
|
+
.agent-network svg { position: absolute; inset: 0; width: 100%; height: 100%; color: #6f88a0; }
|
|
573
|
+
.agent-network > svg > path { fill: none; stroke: currentColor; stroke-width: 1.4; marker-end: url(#agent-arrow); }
|
|
574
|
+
.agent-node { position: absolute; display: grid; width: 126px; min-height: 74px; place-content: center; padding: 12px; border: 1px solid #6f8295; border-radius: 12px; background: #fff; color: #29394a; text-align: center; box-shadow: 3px 4px 0 #23344712; }
|
|
575
|
+
.agent-node strong { font-size: 13px; }
|
|
576
|
+
.agent-node small { margin-top: 4px; color: #65788a; font-size: 10px; }
|
|
577
|
+
.agent-node.coordinator { left: calc(50% - 63px); top: 14px; border-color: #745c89; background: #eee4f5; }
|
|
578
|
+
.agent-node.left { left: 6%; bottom: 22px; background: #e9f3ff; }
|
|
579
|
+
.agent-node.right { right: 6%; bottom: 22px; background: #f8e8df; }
|
|
580
|
+
.agent-message { position: absolute; padding: 4px 8px; border-radius: 999px; background: #f7f9fb; color: #526c83; font: 9px var(--mono); }
|
|
581
|
+
.agent-message.first { left: 16%; top: 44%; }
|
|
582
|
+
.agent-message.second { right: 15%; top: 44%; }
|
|
583
|
+
.agent-message.third { left: calc(50% - 47px); bottom: 12px; }
|
|
584
|
+
.typescript-flow { grid-template-columns: minmax(0, .9fr) 32px minmax(0, 1.1fr); align-items: center; }
|
|
585
|
+
.typescript-flow > .concept-arrow { height: 32px; }
|
|
586
|
+
.typescript-flow > .concept-arrow::before { left: 0; right: 5px; top: 50%; bottom: auto; border-top: 1px solid currentColor; border-left: 0; }
|
|
587
|
+
.typescript-flow > .concept-arrow::after { left: auto; right: 3px; bottom: calc(50% - 4px); transform: rotate(-45deg); }
|
|
588
|
+
.typescript-code { padding: 18px; border: 1px solid #476d9f; border-radius: 10px; background: #173f72; color: #eaf3ff; box-shadow: 4px 5px 0 #102d501f; }
|
|
589
|
+
.typescript-code span { display: block; margin-bottom: 12px; color: #9ec9ff; font: 10px var(--mono); text-transform: uppercase; letter-spacing: .08em; }
|
|
590
|
+
.typescript-code code { display: block; white-space: pre-wrap; color: inherit; font-size: 11px; line-height: 1.65; }
|
|
591
|
+
.typescript-results { display: grid; gap: 9px; }
|
|
592
|
+
.typescript-results .concept-card { padding: 12px 14px; }
|
|
593
|
+
.mini-review { overflow: hidden; border: 1px solid #49675d; border-radius: 12px; background: #f9fcfb; color: #29394a; box-shadow: 4px 6px 0 #274f4316; }
|
|
594
|
+
.mini-review-bar { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid #c9d9d3; background: #e9f2ee; font-size: 11px; }
|
|
595
|
+
.mini-review-bar span { width: 7px; height: 7px; border-radius: 50%; background: #4f8b72; }
|
|
596
|
+
.mini-review-body { display: grid; grid-template-columns: .82fr 1.18fr; min-height: 260px; }
|
|
597
|
+
.review-files { padding: 14px; border-right: 1px solid #d4dfdb; background: #f3f7f5; }
|
|
598
|
+
.review-files strong { display: block; margin-bottom: 10px; font-size: 11px; }
|
|
599
|
+
.review-files span { display: block; padding: 7px 8px; border-radius: 5px; color: #52655e; font: 10px var(--mono); }
|
|
600
|
+
.review-files span.active { background: #dfece7; color: #284a3e; }
|
|
601
|
+
.review-main { display: flex; min-width: 0; flex-direction: column; padding: 14px; }
|
|
602
|
+
.review-summary { display: flex; justify-content: space-between; gap: 10px; font-size: 11px; }
|
|
603
|
+
.review-badge { padding: 2px 7px; border-radius: 999px; background: #fae0d7; color: #91462e; font-size: 9px; }
|
|
604
|
+
.review-finding { margin-top: 12px; padding: 10px; border-left: 3px solid #d17555; background: #fff4ef; font-size: 10px; line-height: 1.5; }
|
|
605
|
+
.review-chat { margin-top: auto; padding-top: 12px; }
|
|
606
|
+
.review-chat p { padding: 8px 10px; border-radius: 8px 8px 2px 8px; background: #e8e0ef; color: #53425f; font-size: 10px; }
|
|
607
|
+
.review-input { display: flex; gap: 7px; margin-top: 8px; }
|
|
608
|
+
.review-input span { flex: 1; padding: 7px 9px; border: 1px solid #aabbb4; border-radius: 6px; color: #74827d; font-size: 9px; }
|
|
609
|
+
.review-input b { display: grid; width: 30px; place-items: center; border-radius: 6px; background: #30493f; color: white; font-size: 12px; }
|
|
610
|
+
.run-panel-diagram { overflow: hidden; margin-top: 32px; border: 1px solid #aeb7c5; border-radius: 14px; background: #f7f8fb; box-shadow: 0 24px 50px -34px #24374e66; }
|
|
611
|
+
.run-panel-top { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid #d4d8e0; background: #eceaf1; font-size: 12px; }
|
|
612
|
+
.run-panel-top span:last-child { margin-left: auto; color: #6f6876; font: 9px var(--mono); }
|
|
613
|
+
.run-panel-layout { display: grid; grid-template-columns: minmax(0, 1fr) 48px; min-height: 390px; }
|
|
614
|
+
.run-panel-main { display: grid; grid-template-rows: minmax(190px, 1fr) minmax(150px, .72fr); }
|
|
615
|
+
.run-panel-app { padding: 18px; border-bottom: 1px solid #d8dce4; background: #eef5f3; }
|
|
616
|
+
.run-panel-app > strong, .run-panel-chat > strong { display: block; margin-bottom: 12px; font-size: 12px; }
|
|
617
|
+
.run-panel-app-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
|
|
618
|
+
.run-panel-app-grid span { min-height: 74px; padding: 10px; border: 1px solid #b9cbc5; border-radius: 7px; background: white; color: #50665e; font-size: 10px; }
|
|
619
|
+
.run-panel-chat { display: flex; flex-direction: column; padding: 16px 18px; background: white; }
|
|
620
|
+
.run-panel-chat p { max-width: 72%; padding: 9px 11px; border-radius: 9px 9px 9px 2px; background: #eee8f3; font-size: 10px; }
|
|
621
|
+
.run-panel-chat span { margin-top: auto; padding: 9px 11px; border: 1px solid #c7cbd4; border-radius: 7px; color: #78727f; font-size: 10px; }
|
|
622
|
+
.run-panel-rail { display: grid; align-content: start; gap: 8px; padding: 12px 8px; border-left: 1px solid #d4d8e0; background: #f0f1f5; }
|
|
623
|
+
.run-panel-rail span { display: grid; aspect-ratio: 1; place-items: center; border: 1px solid #c2c7d0; border-radius: 7px; background: white; color: #5c6571; font: 9px var(--mono); }
|
|
624
|
+
.journal-ledger { overflow: hidden; border: 1px solid #aab8c7; border-radius: 13px; background: #f7f9fb; }
|
|
625
|
+
.journal-ledger-header { display: flex; justify-content: space-between; gap: 12px; padding: 13px 16px; border-bottom: 1px solid #d5dce3; background: #eaf0f5; font-size: 11px; }
|
|
626
|
+
.journal-ledger ol { list-style: none; margin: 0; padding: 0; }
|
|
627
|
+
.journal-ledger li { display: grid; grid-template-columns: 34px minmax(135px, .8fr) 1fr; gap: 12px; padding: 12px 16px; border-bottom: 1px solid #e0e5ea; font-size: 11px; }
|
|
628
|
+
.journal-ledger li:last-child { border-bottom: 0; }
|
|
629
|
+
.journal-ledger code { color: #315f87; font-size: 10px; }
|
|
630
|
+
.journal-ledger li span:last-child { color: #687786; }
|
|
631
|
+
.runtime-map { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 54px 1fr; gap: 14px; align-items: stretch; margin-top: 8px; }
|
|
632
|
+
.runtime-map figcaption { grid-column: 1 / -1; }
|
|
633
|
+
.runtime-zone { padding: 20px; border: 1px solid #9eb0c0; border-radius: 13px; background: #fff; }
|
|
634
|
+
.runtime-zone.local { background: #edf6f3; border-color: #9abdaf; }
|
|
635
|
+
.runtime-zone > span { color: #52708a; font: 10px var(--mono); text-transform: uppercase; letter-spacing: .08em; }
|
|
636
|
+
.runtime-zone h3 { margin-top: 8px; font-size: 18px; }
|
|
637
|
+
.runtime-zone ul { margin: 15px 0 0; padding: 0; list-style: none; }
|
|
638
|
+
.runtime-zone li { padding: 7px 0; border-top: 1px solid #dce3e8; color: #607080; font-size: 11px; }
|
|
639
|
+
.runtime-link { display: grid; place-content: center; gap: 10px; color: #526f88; text-align: center; font: 9px var(--mono); }
|
|
640
|
+
.runtime-link::before, .runtime-link::after { content: ''; height: 1px; background: #8298aa; }
|
|
641
|
+
@media (max-width: 700px) {
|
|
642
|
+
.concept-outcomes, .typescript-flow, .mini-review-body, .runtime-map { grid-template-columns: 1fr; }
|
|
643
|
+
.typescript-flow > .concept-arrow { height: 24px; }
|
|
644
|
+
.typescript-flow > .concept-arrow::before { left: 50%; right: auto; top: 0; bottom: 4px; border-top: 0; border-left: 1px solid currentColor; }
|
|
645
|
+
.typescript-flow > .concept-arrow::after { left: calc(50% - 4px); right: auto; bottom: 2px; transform: rotate(45deg); }
|
|
646
|
+
.agent-network { min-height: 390px; }
|
|
647
|
+
.agent-node.left { left: 0; }
|
|
648
|
+
.agent-node.right { right: 0; }
|
|
649
|
+
.review-files { border-right: 0; border-bottom: 1px solid #d4dfdb; }
|
|
650
|
+
.run-panel-layout { min-height: 340px; }
|
|
651
|
+
.journal-ledger li { grid-template-columns: 28px 1fr; }
|
|
652
|
+
.journal-ledger li span:last-child { grid-column: 2; }
|
|
653
|
+
.runtime-link { grid-auto-flow: column; }
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
</style>
|
|
657
|
+
<link rel="stylesheet" href="site.css">
|
|
658
|
+
<link rel="stylesheet" href="homepage.css">
|
|
659
|
+
<script src="scroll-vendor.js" defer></script>
|
|
660
|
+
<script src="site.js" defer></script>
|
|
661
|
+
<script src="homepage-scenes.js" defer></script>
|
|
662
|
+
<script src="homepage-stickers.js" defer></script>
|
|
663
|
+
<script src="homepage-story-nav.js" defer></script>
|
|
664
|
+
<script src="homepage-subnav.js" defer></script>
|
|
665
|
+
<script src="homepage-plugins.js" defer></script>
|
|
666
|
+
<script src="homepage-distributed.js" defer></script>
|
|
667
|
+
</head>
|
|
668
|
+
<body>
|
|
669
|
+
<a class="skip" href="#main">Skip to content</a>
|
|
670
|
+
<header class="masthead shell">
|
|
671
|
+
<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>
|
|
672
|
+
<nav id="main-navigation" aria-label="Main navigation">
|
|
673
|
+
<a href="index.html">Product</a>
|
|
674
|
+
<a href="guide.html">Guide</a>
|
|
675
|
+
<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>
|
|
676
|
+
</nav>
|
|
677
|
+
<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>
|
|
678
|
+
</header>
|
|
679
|
+
<nav class="subnav" aria-label="Sections"><button class="subnav-toggle" type="button" aria-expanded="false" aria-controls="subnav-links"><span data-subnav-label>Sections</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="m6 9 6 6 6-6"/></svg></button><span class="subnav-inner" id="subnav-links"><a href="#setups">Setups</a><a href="#agents">Talk</a><a href="#ui">Mini-apps</a><a href="#typescript">TypeScript</a><a href="#events">Events</a><a href="#workflows">Workflows</a><a href="#distributed">Distributed</a><a href="#distributed-modes">Server & laptop</a><a href="#team">Teams</a><a href="#use-in-app">Your app</a><a href="#plugins">Plugins</a><a href="#remote">Remote</a><a href="#clients">Web & VS Code</a><a href="#extensions">Extensions</a></span></nav>
|
|
680
|
+
<main id="main">
|
|
681
|
+
<section class="hero" aria-labelledby="hero-title">
|
|
682
|
+
<div class="hero-aura" aria-hidden="true"><span></span><span></span></div>
|
|
683
|
+
<div class="shell hero-board">
|
|
684
|
+
<div class="hero-copy" data-hero-copy>
|
|
685
|
+
|
|
686
|
+
<svg class="hero-logo" aria-hidden="true" viewBox="0 0 787 787"><path 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><h1 id="hero-title">Tailored AI Workspaces<span>for your teams or your clients.</span></h1><div class="actions hero-actions"><a class="button" href="https://marketplace.visualstudio.com/items?itemName=purestate.ragents-vscode">Install for VS Code<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a><a class="button secondary" href="https://github.com/SchlenkR/RAgents"><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>View on GitHub</a></div>
|
|
687
|
+
|
|
688
|
+
</div>
|
|
689
|
+
|
|
690
|
+
<nav class="feature-stickers" aria-label="Core features">
|
|
691
|
+
<a class="feature-sticker sticker-distributed" href="#distributed"><svg aria-hidden="true" viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="3" width="11" height="9" rx="2"/><rect x="15" y="16" width="11" height="9" rx="2"/><path d="M13 7.5h4v8.5M7.5 12v8.5H15"/></svg><strong>Distributed across<br>server and laptop</strong></a>
|
|
692
|
+
<a class="feature-sticker sticker-workflows" href="#typescript"><span class="sticker-symbol" aria-hidden="true">f()</span><strong>Tools are<br>TypeScript functions</strong></a>
|
|
693
|
+
<a class="feature-sticker sticker-agents" href="#agents"><svg aria-hidden="true" viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"><path d="M3 4h15v10H10l-4.5 4v-4H3V4Z"/><path d="M21 9h4v10h-2v4l-4.5-4H12v-2.5"/></svg><strong>Everyone talks<br>to everyone</strong></a>
|
|
694
|
+
<a class="feature-sticker sticker-clients" href="#clients"><svg aria-hidden="true" viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="4" width="22" height="15" rx="2"/><path d="m8 9 3 2.5L8 14m5 0h5M10 24h8"/></svg><strong>Web and<br>VS Code</strong></a><a class="feature-sticker sticker-selfhost" href="#team"><svg aria-hidden="true" viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="4" width="20" height="8" rx="2"/><rect x="4" y="16" width="20" height="8" rx="2"/><path d="M8 8h.01M8 20h.01M13 8h7M13 20h7"/></svg><strong>Self-<br>hosted</strong></a>
|
|
695
|
+
<a class="feature-sticker sticker-setups" href="#setups"><span class="sticker-symbol" aria-hidden="true">TS</span><strong>Workflows in<br>TypeScript</strong></a>
|
|
696
|
+
<a class="feature-sticker sticker-apps" href="#ui"><svg aria-hidden="true" viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="4" width="22" height="20" rx="3"/><path d="M3 10h22M8 7h2m3 0h2M8 15h12m-12 5h8"/></svg><strong>Agents with<br>their own UI</strong></a>
|
|
697
|
+
<a class="feature-sticker sticker-journal" href="#events"><svg aria-hidden="true" viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"><path d="M16 3 6 16h7l-2 9 11-14h-7l1-8Z"/></svg><strong>Event-driven<br>journal</strong></a>
|
|
698
|
+
<a class="feature-sticker sticker-builds" href="#ui"><svg aria-hidden="true" viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"><rect x="2" y="8" width="18" height="17" rx="3"/><path d="M2 13h18M6 18h8"/><path d="M22.5 2c.4 2.5 1.6 3.7 4 4-2.4.4-3.6 1.6-4 4-.4-2.4-1.6-3.6-4-4 2.4-.3 3.6-1.5 4-4Z"/></svg><strong>The AI builds<br>the UI</strong></a>
|
|
699
|
+
</nav>
|
|
700
|
+
</div>
|
|
701
|
+
</section>
|
|
702
|
+
|
|
703
|
+
<section class="feature-story shell" id="features" aria-labelledby="story-title">
|
|
704
|
+
|
|
705
|
+
<div class="story-layout">
|
|
706
|
+
<div class="story-steps">
|
|
707
|
+
<article class="story-step" id="setups" aria-labelledby="setups-title">
|
|
708
|
+
<div class="feature-copy"><h3 id="setups-title">Tailor a workspace for a task</h3><ul class="feature-benefits"><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="concept-intro">The script builds the workspace, so the agents start with everything in place.</p><details class="technical"><summary>How it works</summary><p>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></details><a class="text-link" href="guide-getting-started.html">Learn more about setups<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a></div>
|
|
709
|
+
</article>
|
|
710
|
+
<article class="story-step" id="agents" aria-labelledby="agents-title">
|
|
711
|
+
<div class="feature-copy"><h3 id="agents-title">Everyone talks to everyone</h3><ul class="feature-benefits"><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="concept-intro">Agents write plain text to each other, addressed by handle, such as @agent1.</p><details class="technical"><summary>How it works</summary><p>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></details><a class="text-link" href="guide-runtime.html">Learn more about agents<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a></div>
|
|
712
|
+
</article>
|
|
713
|
+
<article class="story-step" id="ui" aria-labelledby="ui-title">
|
|
714
|
+
<div class="feature-copy"><h3 id="ui-title">Agents with their own UI</h3><ul class="feature-benefits"><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="concept-intro">People are used to working with interfaces. A UI shows what the agent is doing, and you step in with a click.</p><details class="technical"><summary>How it works</summary><p>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></details><a class="text-link" href="guide-programs.html">Learn more about mini-apps<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a></div>
|
|
715
|
+
</article>
|
|
716
|
+
<article class="story-step" id="typescript" aria-labelledby="typescript-title">
|
|
717
|
+
<div class="feature-copy"><h3 id="typescript-title">Tools are TypeScript functions</h3><ul class="feature-benefits"><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="concept-intro">Ten single tool calls mean ten model rounds. One TypeScript snippet keeps results, checks conditions and runs steps in parallel.</p><details class="technical"><summary>How it works</summary><p>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></details><a class="text-link" href="guide-functions.html">Learn more about functions<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a></div>
|
|
718
|
+
</article>
|
|
719
|
+
<article class="story-step" id="events" aria-labelledby="events-title">
|
|
720
|
+
<div class="feature-copy"><h3 id="events-title">Event-driven journal</h3><ul class="feature-benefits"><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="concept-intro">Every step of a run is an event in the journal. Agents and programs subscribe to the events they care about.</p><details class="technical"><summary>How it works</summary><p>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></details><a class="text-link" href="guide-runtime.html">Learn more about events<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a></div>
|
|
721
|
+
</article>
|
|
722
|
+
<article class="story-step" id="workflows" aria-labelledby="workflows-title">
|
|
723
|
+
<div class="feature-copy"><h3 id="workflows-title">AI or deterministic workflows</h3><ul class="feature-benefits"><li>Let an agent choose the next step</li><li>Or write the steps in TypeScript, the same every time</li><li>Mix both in one run: code keeps the order, models do the thinking</li><li>Code steps cost no tokens</li><li>Wait for a person when a decision is due</li></ul><p class="concept-intro">Some work needs judgment, some needs the same steps every time. One run holds both.</p><details class="technical"><summary>How it works</summary><p>A setup or an actor program in TypeScript creates the participants and controls the handoffs. Agents fill in the parts that need a model. In the word game, code runs the rounds while four models supply the words.</p></details><a class="text-link" href="guide-programs.html">Learn more about programs<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a></div>
|
|
724
|
+
</article>
|
|
725
|
+
<article class="story-step" id="distributed" aria-labelledby="distributed-title">
|
|
726
|
+
<div class="feature-copy"><h3 id="distributed-title">Distributed across server and laptop</h3><ul class="feature-benefits"><li>Runs, agents and models live on the server</li><li>Laptops and browsers connect to a run</li><li>Messages flow both ways, live</li><li>Tools run on the machine that has the files</li><li>One server, many clients</li></ul><p class="concept-intro">Coordinate centrally, and let the tools run where the files are.</p><details class="technical"><summary>How it works</summary><p>The host owns runs, journal, agents, plugins and model access. The workspace executor provides files, shell, Git, processes and language servers, next to the host or on a connected laptop. <code>ragents connect</code> fetches a client profile from the server, and the model relay shares models without revealing providers or keys.</p></details><a class="text-link" href="#distributed-modes">See the four setups<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a></div>
|
|
727
|
+
</article>
|
|
728
|
+
</div>
|
|
729
|
+
<div class="story-stage">
|
|
730
|
+
<div class="story-scenes">
|
|
731
|
+
<figure class="story-scene v2 scene-setup" data-story-scene="setups" aria-label="A setup builds the workspace"><div class="scene-heading"><span>A setup builds the workspace</span></div>
|
|
732
|
+
<div class="art-wrap"><div class="art" data-art="setups" role="img" aria-label="A setup script, @setup, sits above an empty workspace. One after another it sends out two agents, @agent1 and @agent2, a mini-app, @app1, and a script, @script1. Each appears as a dashed outline first and becomes real when its piece arrives."><div class="art-canvas">
|
|
733
|
+
<div class="su-frame" data-su="frame"><span>Workspace</span></div>
|
|
734
|
+
<svg class="art-lines su-lines" viewBox="0 0 540 520" aria-hidden="true"><g><path class="su-faint" data-su="faint" d="M270 120C270 170 150 180 150 244"/><path class="su-faint" data-su="faint" d="M270 120C270 170 390 180 390 244"/><path class="su-faint" data-su="faint" d="M270 120C270 300 200 394 150 394"/><path class="su-faint" data-su="faint" d="M270 120C270 300 340 394 390 394"/></g><g><path class="su-lit" data-su="path" pathLength="1" d="M270 120C270 170 150 180 150 244"/><path class="su-lit" data-su="path" pathLength="1" d="M270 120C270 170 390 180 390 244"/><path class="su-lit" data-su="path" pathLength="1" d="M270 120C270 300 200 394 150 394"/><path class="su-lit" data-su="path" pathLength="1" d="M270 120C270 300 340 394 390 394"/></g></svg>
|
|
735
|
+
<div class="su-at su-shape script su-setup" style="--x: 270; --y: 70" data-su="setup">TS</div>
|
|
736
|
+
<div class="su-name"><b>@setup</b><small>setup script</small></div>
|
|
737
|
+
<div class="su-at su-shape agent su-ghost" style="--x: 150; --y: 244" data-su="ghost"></div><div class="su-at su-shape agent su-ghost" style="--x: 390; --y: 244" data-su="ghost"></div><div class="su-at su-shape app su-ghost" style="--x: 150; --y: 394" data-su="ghost"></div><div class="su-at su-shape script su-ghost" style="--x: 390; --y: 394" data-su="ghost"></div>
|
|
738
|
+
<span class="su-at su-label" style="--x: 150; --y: 294" data-su="label"><b>@agent1</b><small>agent</small></span><span class="su-at su-label" style="--x: 390; --y: 294" data-su="label"><b>@agent2</b><small>agent</small></span><span class="su-at su-label" style="--x: 150; --y: 444" data-su="label"><b>@app1</b><small>mini-app</small></span><span class="su-at su-label" style="--x: 390; --y: 440" data-su="label"><b>@script1</b><small>script</small></span>
|
|
739
|
+
<div class="su-at su-shape agent su-piece" data-su="piece"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></svg></div><div class="su-at su-shape agent su-piece" data-su="piece"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></svg></div><div class="su-at su-shape app su-piece" data-su="piece"><i></i><b></b><b></b></div><div class="su-at su-shape script su-piece" data-su="piece">TS</div>
|
|
740
|
+
</div></div></div>
|
|
741
|
+
</figure>
|
|
742
|
+
<figure class="story-scene v2 scene-talk" data-story-scene="agents" aria-labelledby="talk-caption"><div class="scene-heading"><span>Messages in one run</span></div>
|
|
743
|
+
|
|
744
|
+
<div class="art-wrap"><div class="art" data-art="agents" role="img" aria-label="Seven participants: you, two agents @agent1 and @agent2, two scripts @script1 and @script2, and two mini-apps @app1 and @app2. Messages travel between different pairs, mostly one at a time, sometimes two at once, and each connection lights up when it is used."><div class="art-canvas">
|
|
745
|
+
<svg class="art-lines" viewBox="0 0 540 520" aria-hidden="true">
|
|
746
|
+
<g class="n-faint"><path d="M270 56L444 150"/><path d="M270 56L466 310"/><path d="M270 56L374 462"/><path d="M270 56L166 462"/><path d="M270 56L74 310"/><path d="M270 56L96 150"/><path d="M444 150L466 310"/><path d="M444 150L374 462"/><path d="M444 150L166 462"/><path d="M444 150L74 310"/><path d="M444 150L96 150"/><path d="M466 310L374 462"/><path d="M466 310L166 462"/><path d="M466 310L74 310"/><path d="M466 310L96 150"/><path d="M374 462L166 462"/><path d="M374 462L74 310"/><path d="M374 462L96 150"/><path d="M166 462L74 310"/><path d="M166 462L96 150"/><path d="M74 310L96 150"/></g>
|
|
747
|
+
<g><path class="n-lit" data-n-edge="you a1" pathLength="1" d="M270 56L444 150"/><path class="n-lit" data-n-edge="a1 a2" pathLength="1" d="M444 150L166 462"/><path class="n-lit" data-n-edge="a2 s2" pathLength="1" d="M166 462L74 310"/><path class="n-lit" data-n-edge="a1 s1" pathLength="1" d="M444 150L466 310"/><path class="n-lit" data-n-edge="s1 m1" pathLength="1" d="M466 310L374 462"/><path class="n-lit" data-n-edge="m1 you" pathLength="1" d="M374 462L270 56"/><path class="n-lit" data-n-edge="s2 s1" pathLength="1" d="M74 310L466 310"/><path class="n-lit" data-n-edge="you m2" pathLength="1" d="M270 56L96 150"/><path class="n-lit" data-n-edge="m2 a2" pathLength="1" d="M96 150L166 462"/><path class="n-lit" data-n-edge="a1 m1" pathLength="1" d="M444 150L374 462"/><path class="n-lit" data-n-edge="s2 m2" pathLength="1" d="M74 310L96 150"/><path class="n-lit" data-n-edge="a2 you" pathLength="1" d="M166 462L270 56"/></g>
|
|
748
|
+
</svg>
|
|
749
|
+
<div class="sk person n-node" style="--x: 270; --y: 56" data-n="you"><span class="glyph"><svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4 21c1-4.5 4-6.5 8-6.5s7 2 8 6.5"/></svg></span><span><b>You</b></span></div><div class="sk agent n-node" style="--x: 444; --y: 150" data-n="a1"><span class="glyph"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></svg></span><span><b>@agent1</b><small>agent</small></span></div><div class="sk agent n-node" style="--x: 166; --y: 462" data-n="a2"><span class="glyph"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></svg></span><span><b>@agent2</b><small>agent</small></span></div><div class="sk script n-node" style="--x: 466; --y: 310" data-n="s1"><span class="glyph square">TS</span><span><b>@script1</b><small>script</small></span></div><div class="sk script n-node" style="--x: 74; --y: 310" data-n="s2"><span class="glyph square">TS</span><span><b>@script2</b><small>script</small></span></div><div class="sk app n-node" style="--x: 374; --y: 462" data-n="m1"><span class="glyph square"><svg viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="3"/><path d="M3 9h18"/></svg></span><span><b>@app1</b><small>mini-app</small></span></div><div class="sk app n-node" style="--x: 96; --y: 150" data-n="m2"><span class="glyph square"><svg viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="3"/><path d="M3 9h18"/></svg></span><span><b>@app2</b><small>mini-app</small></span></div>
|
|
750
|
+
<span class="packet n-mail" data-n-mail><svg viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="6" width="18" height="12" rx="2"/><path d="m3.5 7 8.5 6 8.5-6"/></svg></span><span class="packet n-mail" data-n-mail><svg viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="6" width="18" height="12" rx="2"/><path d="m3.5 7 8.5 6 8.5-6"/></svg></span><span class="packet n-mail" data-n-mail><svg viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="6" width="18" height="12" rx="2"/><path d="m3.5 7 8.5 6 8.5-6"/></svg></span>
|
|
751
|
+
</div></div></div>
|
|
752
|
+
<figcaption id="talk-caption">You, agents, scripts and mini-apps all send each other messages.</figcaption>
|
|
753
|
+
</figure>
|
|
754
|
+
<figure class="story-scene v2 scene-app" data-story-scene="ui" aria-labelledby="ui-caption"><div class="scene-heading"><span>One UI, many users</span></div>
|
|
755
|
+
|
|
756
|
+
<div class="art-wrap"><div class="art" data-art="ui" role="img" aria-label="An agent builds a small UI with three items and a Go button. The agent ticks Item 1. You tick Item 2 and click Go. The click reaches the agent, it thinks, then ticks Item 3. Each change shows who made it."><div class="art-canvas">
|
|
757
|
+
<svg class="art-lines" viewBox="0 0 540 520" aria-hidden="true">
|
|
758
|
+
<rect class="u-outline" data-u="outline" pathLength="1" x="130" y="108" width="280" height="266" rx="14"/>
|
|
759
|
+
<path class="u-wire" d="M270 350C270 480 58 480 58 326"/>
|
|
760
|
+
<path class="u-wire lit" data-u="wire" pathLength="1" d="M270 350C270 480 58 480 58 326"/>
|
|
761
|
+
</svg>
|
|
762
|
+
<div class="sk note u-note" data-u="note">built by the agent on the fly,<br>or shipped with an extension</div>
|
|
763
|
+
<div class="u-actor agent" data-u="agent"><span class="u-face"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></svg></span><b>Agent</b><span class="think" data-think><i></i><i></i><i></i></span></div>
|
|
764
|
+
<div class="u-actor person"><span class="u-face"><svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4 21c1-4.5 4-6.5 8-6.5s7 2 8 6.5"/></svg></span><b>You</b></div>
|
|
765
|
+
<div class="u-panel" data-u="panel">
|
|
766
|
+
<div class="u-bar" data-u-part><svg viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="3"/><path d="M3 9h18"/></svg>Mini-app<span class="u-count" data-u="count">0 / 3</span></div>
|
|
767
|
+
<ul><li class="u-row" data-u-row><span class="u-box"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg></span><span>Item 1</span><span class="u-by agent"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></svg>Agent</span><span class="u-by you"><svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4 21c1-4.5 4-6.5 8-6.5s7 2 8 6.5"/></svg>You</span></li><li class="u-row" data-u-row><span class="u-box"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg></span><span>Item 2</span><span class="u-by agent"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></svg>Agent</span><span class="u-by you"><svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4 21c1-4.5 4-6.5 8-6.5s7 2 8 6.5"/></svg>You</span></li><li class="u-row" data-u-row><span class="u-box"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg></span><span>Item 3</span><span class="u-by agent"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></svg>Agent</span><span class="u-by you"><svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4 21c1-4.5 4-6.5 8-6.5s7 2 8 6.5"/></svg>You</span></li></ul>
|
|
768
|
+
<div class="u-foot" data-u-part><span class="u-go" data-u="go">Go</span></div>
|
|
769
|
+
</div>
|
|
770
|
+
<span class="u-ptr agent" data-u="ptr-agent"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 3v16l4.5-4 3 6.5 2.8-1.3-3-6.3H18L5 3Z"/></svg><b>Agent</b></span>
|
|
771
|
+
<span class="u-ptr person" data-u="ptr-you"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 3v16l4.5-4 3 6.5 2.8-1.3-3-6.3H18L5 3Z"/></svg><b>You</b></span>
|
|
772
|
+
<span class="packet dot p-person" data-u="packet"></span>
|
|
773
|
+
</div></div></div>
|
|
774
|
+
<figcaption id="ui-caption">You and the agent work in the same UI, on the same state.</figcaption>
|
|
775
|
+
</figure>
|
|
776
|
+
<figure class="story-scene v2 scene-ts" data-story-scene="typescript" aria-labelledby="ts-caption"><div class="scene-heading"><span>One function, many callers</span></div>
|
|
777
|
+
<div class="art-wrap"><div class="art" data-art="typescript" role="img" aria-label="Code: a plugin registers the typed function build once with defineRunFunction and nativeTool. Below, four callers use it in turn: an agent calls it as a native tool, AI-written TypeScript calls it and the type check catches a misspelled property first, a button in a mini-app calls it through its program without a model, and the same program calls it when input arrives."><div class="art-canvas">
|
|
778
|
+
<div class="tsx">
|
|
779
|
+
<div class="tsx-editor">
|
|
780
|
+
<div class="tsx-bar"><i></i><i></i><i></i><span>your plugin</span></div>
|
|
781
|
+
<pre class="tsx-code"><span class="k">const</span> build = <span class="f">defineRunFunction</span>({
|
|
782
|
+
<span class="p">name</span>: <span class="s">"build"</span>,
|
|
783
|
+
<span class="p">label</span>: <span class="s">"Build a branch"</span>,
|
|
784
|
+
<span class="p">description</span>: <span class="s">"Builds a branch and runs the tests."</span>,
|
|
785
|
+
<span class="p">schema</span>: Type.<span class="f">Object</span>({ <span class="p">branch</span>: Type.<span class="f">String</span>() }),
|
|
786
|
+
<span class="p">resultSchema</span>: Type.<span class="f">Object</span>({ <span class="p">ok</span>: Type.<span class="f">Boolean</span>() }),
|
|
787
|
+
<span class="p">available</span>: alwaysAvailable,
|
|
788
|
+
<span class="p">nativeTool</span>: <span class="k">true</span>,
|
|
789
|
+
<span class="p">run</span>: (_scope, _callId, { branch }) => <span class="f">buildAndTest</span>(branch),
|
|
790
|
+
});
|
|
791
|
+
host.<span class="f">functions</span>(build);</pre>
|
|
792
|
+
</div>
|
|
793
|
+
<div class="tsx-callers">
|
|
794
|
+
<div class="tsx-tabs"><span data-tsx-tab>Agent tool</span><span data-tsx-tab>AI-written code</span><span data-tsx-tab>Button</span><span data-tsx-tab>Program</span></div>
|
|
795
|
+
<div class="tsx-panes">
|
|
796
|
+
<pre class="tsx-pane" data-tsx-pane><span class="c">@builder calls the native tool</span>
|
|
797
|
+
<span class="f">build</span>({ <span class="p">branch</span>: <span class="s">"main"</span> })
|
|
798
|
+
<span class="ok">-> { ok: true }</span></pre>
|
|
799
|
+
<pre class="tsx-pane" data-tsx-pane><span class="c">@builder writes a snippet, checked before it runs</span>
|
|
800
|
+
<span class="k">const</span> results = <span class="k">await</span> Promise.<span class="f">all</span>([<span class="s">"main"</span>, <span class="s">"release"</span>]
|
|
801
|
+
.<span class="f">map</span>(branch => context.functions.<span class="f">build</span>({ <span data-tsx-typo><span class="err">brnach</span>: branch</span><span data-tsx-fix><span class="p">branch</span></span> })));
|
|
802
|
+
<span class="k">return</span> results.<span class="f">filter</span>(result => !result.ok);
|
|
803
|
+
<span class="tsx-msg" data-tsx-error>error TS2561: 'brnach' does not exist. Did you mean 'branch'?</span><span class="tsx-msg good" data-tsx-fixed>type check passed, both builds run in parallel</span></pre>
|
|
804
|
+
<pre class="tsx-pane" data-tsx-pane><span class="c">a button in a mini-app, no model involved</span>
|
|
805
|
+
<<span class="f">UI.Button</span> <span class="p">onClick</span>={() =>
|
|
806
|
+
context.capabilities.<span class="f">call</span>(<span class="s">"build"</span>, { <span class="p">branch</span>: <span class="s">"main"</span> })}>
|
|
807
|
+
Build main
|
|
808
|
+
</<span class="f">UI.Button</span>> <span class="tsx-button" data-tsx-press>Build main</span></pre>
|
|
809
|
+
<pre class="tsx-pane" data-tsx-pane><span class="c">the mini-app's program: button and events</span>
|
|
810
|
+
<span class="f">defineActor</span>(contract, {
|
|
811
|
+
<span class="p">functions</span>: {
|
|
812
|
+
<span class="f">build</span>: (input, context) => context.functions.<span class="f">build</span>(input),
|
|
813
|
+
},
|
|
814
|
+
<span class="p">onInput</span>: (input, context) => context.functions.<span class="f">build</span>({ <span class="p">branch</span>: <span class="s">"main"</span> }),
|
|
815
|
+
});</pre>
|
|
816
|
+
</div>
|
|
817
|
+
</div>
|
|
818
|
+
</div>
|
|
819
|
+
</div></div></div>
|
|
820
|
+
<figcaption id="ts-caption">Registered once, called four ways. Same checks, same journal.</figcaption>
|
|
821
|
+
</figure>
|
|
822
|
+
<figure class="story-scene v2 scene-journal" data-story-scene="events" aria-labelledby="events-caption"><div class="scene-heading"><span>The run's journal</span></div>
|
|
823
|
+
<div class="art-wrap"><div class="art" data-art="events" role="img" aria-label="The run's journal grows line by line: @builder finishes, @reviewer starts because it subscribed to that event, two quiet minutes cost no tokens, a watcher without a model notices that @reviewer hangs and wakes @lead, @lead reads the journal and forks @reviewer, and the fork finishes the review."><div class="art-canvas">
|
|
824
|
+
<div class="jr">
|
|
825
|
+
<div class="jr-head"><b>journal.jsonl</b><span>run order-42</span><span class="jr-live">live</span></div>
|
|
826
|
+
<div class="jr-cols"><span>#</span><span class="jr-time">time</span><span>actor</span><span>event</span></div>
|
|
827
|
+
<div class="jr-view"><ol class="jr-list" data-j-list>
|
|
828
|
+
<li class="jr-row" data-j-row><span class="jr-seq">38</span><span class="jr-time">12:03:51</span><span class="jr-who">@builder</span><span class="jr-what"><b>turn.started</b> task: fix the failing date test</span></li>
|
|
829
|
+
<li class="jr-row" data-j-row><span class="jr-seq">39</span><span class="jr-time">12:03:58</span><span class="jr-who">@builder</span><span class="jr-what"><b>tool.call.completed</b> edit src/date.ts</span></li>
|
|
830
|
+
<li class="jr-row" data-j-row><span class="jr-seq">40</span><span class="jr-time">12:04:05</span><span class="jr-who">@builder</span><span class="jr-what"><b>tool.call.completed</b> bash pnpm test ok</span></li>
|
|
831
|
+
<li class="jr-row jr-flash" data-j-row data-j-note="<b>@builder</b> finishes. <b>@reviewer</b> subscribed to exactly this."><span class="jr-seq">41</span><span class="jr-time">12:04:07</span><span class="jr-who">@builder</span><span class="jr-what"><b>turn.finished</b> completed</span></li>
|
|
832
|
+
<li class="jr-row jr-caused" data-j-row data-j-note="The subscription turns the event into new input. Nobody polled."><span class="jr-seq">42</span><span class="jr-time">12:04:07</span><span class="jr-who">@reviewer</span><span class="jr-what"><b>actor.input.enqueued</b> <span class="jr-cause">because of #41</span></span></li>
|
|
833
|
+
<li class="jr-row" data-j-row><span class="jr-seq">43</span><span class="jr-time">12:04:08</span><span class="jr-who">@reviewer</span><span class="jr-what"><b>turn.started</b> review the change</span></li>
|
|
834
|
+
<li class="jr-row" data-j-row><span class="jr-seq">44</span><span class="jr-time">12:04:13</span><span class="jr-who">@reviewer</span><span class="jr-what"><b>tool.call.started</b> read src/date.ts</span></li>
|
|
835
|
+
<li class="jr-row jr-gap" data-j-row data-j-note="While nothing happens, nobody waits and no model runs."><span>2 min without events, no tokens spent</span></li>
|
|
836
|
+
<li class="jr-row jr-warn jr-flash" data-j-row data-j-note="A watcher is TypeScript, no model. It notices the hang."><span class="jr-seq">45</span><span class="jr-time">12:06:13</span><span class="jr-who jr-script">watch</span><span class="jr-what"><b>plugin.state-patched</b> watcher: no progress from @reviewer for 120 s</span></li>
|
|
837
|
+
<li class="jr-row jr-caused" data-j-row data-j-note="The watcher wakes <b>@lead</b>."><span class="jr-seq">46</span><span class="jr-time">12:06:13</span><span class="jr-who jr-lead">@lead</span><span class="jr-what"><b>actor.input.enqueued</b> <span class="jr-cause">because of #45</span></span></li>
|
|
838
|
+
<li class="jr-row" data-j-row><span class="jr-seq">47</span><span class="jr-time">12:06:14</span><span class="jr-who jr-lead">@lead</span><span class="jr-what"><b>turn.started</b> </span></li>
|
|
839
|
+
<li class="jr-row" data-j-row data-j-note="<b>@lead</b> reads the journal to see where <b>@reviewer</b> got stuck."><span class="jr-seq">48</span><span class="jr-time">12:06:16</span><span class="jr-who jr-lead">@lead</span><span class="jr-what"><b>tool.call.completed</b> event_query @reviewer, last 20</span></li>
|
|
840
|
+
<li class="jr-row jr-flash" data-j-row data-j-note="A fork keeps the memory of <b>@reviewer</b> and carries on."><span class="jr-seq">49</span><span class="jr-time">12:06:19</span><span class="jr-who jr-lead">@lead</span><span class="jr-what"><b>agent.spawned</b> @reviewer-2, fork of @reviewer</span></li>
|
|
841
|
+
<li class="jr-row jr-caused" data-j-row><span class="jr-seq">50</span><span class="jr-time">12:06:20</span><span class="jr-who">@reviewer-2</span><span class="jr-what"><b>turn.started</b> continue the review<span class="jr-cause">because of #49</span></span></li>
|
|
842
|
+
<li class="jr-row" data-j-row><span class="jr-seq">51</span><span class="jr-time">12:06:41</span><span class="jr-who">@reviewer-2</span><span class="jr-what"><b>turn.finished</b> completed, 2 notes</span></li>
|
|
843
|
+
</ol></div>
|
|
844
|
+
<div class="jr-foot" data-j-foot></div>
|
|
845
|
+
</div>
|
|
846
|
+
</div></div></div>
|
|
847
|
+
<figcaption id="events-caption">Subscriptions and watchers turn journal events into new work.</figcaption>
|
|
848
|
+
</figure>
|
|
849
|
+
<figure class="story-scene v2 scene-events" data-story-scene="workflows" aria-labelledby="workflows-caption"><div class="scene-heading"><span>A review loop</span></div>
|
|
850
|
+
<div class="art-wrap"><div class="art" data-art="workflows" role="img" aria-label="A code review workflow with a loop. A pull request is opened, TypeScript runs the tests, the agent @reviewer reviews the change. If it requests changes, the agent @author fixes them and the loop goes back to the tests. TypeScript counts the rounds and stops after three. Once @reviewer approves, TypeScript merges."><div class="art-canvas">
|
|
851
|
+
<svg class="art-lines" viewBox="0 0 540 520" aria-hidden="true">
|
|
852
|
+
<path class="wf-edge" data-wf="open" d="M270 92V150"/>
|
|
853
|
+
<path class="wf-edge" data-wf="test" d="M270 194V262"/>
|
|
854
|
+
<path class="wf-edge wf-loop" data-wf="fix" d="M190 284C120 284 96 262 96 236"/>
|
|
855
|
+
<path class="wf-edge wf-loop" data-wf="retest" d="M96 196C96 176 124 172 190 172"/>
|
|
856
|
+
<path class="wf-edge" data-wf="merge" d="M270 306V392"/>
|
|
857
|
+
</svg>
|
|
858
|
+
<div class="sk note wf-card" style="--x: 270; --y: 70" data-wf-card><div class="node"><span class="glyph"><svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="6" cy="6" r="2.5"/><circle cx="6" cy="18" r="2.5"/><circle cx="18" cy="18" r="2.5"/><path d="M6 8.5v7M18 15.5V11a4 4 0 0 0-4-4h-3m2-2-2 2 2 2"/></svg></span><span><strong>Pull request opened</strong></span></div></div>
|
|
859
|
+
<div class="sk script wf-card" style="--x: 270; --y: 172" data-wf-card><div class="node"><span class="glyph square">TS</span><span><strong>Run the tests</strong><small>TypeScript, no tokens</small></span></div></div>
|
|
860
|
+
<div class="sk agent wf-card" style="--x: 270; --y: 284" data-wf-card><div class="node"><span class="glyph"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></svg></span><span><strong><span class="mono">@reviewer</span> reviews</strong><small>a model judges the diff</small></span></div></div>
|
|
861
|
+
<div class="sk agent wf-card" style="--x: 96; --y: 216" data-wf-card><div class="node"><span class="glyph"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></svg></span><span><strong><span class="mono">@author</span> fixes</strong><small>gets the notes as input</small></span></div></div>
|
|
862
|
+
<div class="sk script wf-card" style="--x: 270; --y: 414" data-wf-card><div class="node"><span class="glyph square">TS</span><span><strong>Merge</strong><small>only after approval</small></span></div></div>
|
|
863
|
+
<span class="wf-label" style="--x: 150; --y: 318">changes requested</span>
|
|
864
|
+
<span class="wf-label" style="--x: 322; --y: 350">approved</span>
|
|
865
|
+
<span class="wf-round" style="--x: 430; --y: 172" data-wf-round>round 1 of max 3</span>
|
|
866
|
+
<span class="tag warn wf-verdict" style="--x: 430; --y: 284" data-wf-notes>2 notes</span>
|
|
867
|
+
<span class="tag ok wf-verdict" style="--x: 430; --y: 284" data-wf-ok>approved</span>
|
|
868
|
+
<span class="tag ok wf-verdict" style="--x: 430; --y: 414" data-wf-merged>merged</span>
|
|
869
|
+
<span class="packet dot p-coord" data-packet></span>
|
|
870
|
+
</div></div></div>
|
|
871
|
+
<figcaption id="workflows-caption">Code runs the loop and stops after three rounds. Models review and fix.</figcaption>
|
|
872
|
+
</figure>
|
|
873
|
+
<figure class="story-scene v2 scene-dist" data-story-scene="distributed" aria-labelledby="dist-caption"><div class="scene-heading"><span>One server, many clients</span></div>
|
|
874
|
+
|
|
875
|
+
<div class="art-wrap"><div class="art" data-art="distributed" role="img" aria-label="A server in the middle holds three runs, each with its own agent, and the models. Two laptops with VS Code and one browser connect to one run each. Messages flow both ways on every connection. Run A sends a task to its laptop, the tools run there on the laptop's files, and the result goes back to the run."><div class="art-canvas">
|
|
876
|
+
<svg class="art-lines" viewBox="0 0 540 520" aria-hidden="true"><path class="d-link" d="M84 108C84 176 118 202 185 202"/><path class="d-link" d="M456 108C456 200 420 258 355 258"/><path class="d-link" d="M270 436V337"/><path class="d-path" data-d-link="l1" d="M84 108C84 176 118 202 185 202"/><path class="d-path" data-d-link="l2" d="M456 108C456 200 420 258 355 258"/><path class="d-path" data-d-link="web" d="M270 436V337"/></svg>
|
|
877
|
+
<div class="d-server">
|
|
878
|
+
<span class="sk d-tag"><svg viewBox="0 0 24 24" aria-hidden="true"><rect x="4" y="3" width="16" height="7" rx="2"/><rect x="4" y="14" width="16" height="7" rx="2"/><path d="M8 6.5h.01M8 17.5h.01"/></svg>Server</span>
|
|
879
|
+
<span class="d-models" data-d="models"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="m12 3 8 4.5v9L12 21l-8-4.5v-9Z"/><path d="m4 7.5 8 4.5 8-4.5M12 12v9"/></svg>Models</span>
|
|
880
|
+
<div class="d-run" data-d-run="a"><span class="glyph"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></svg></span><b>Run A</b><span class="think" data-think><i></i><i></i><i></i></span><span class="d-ok"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg></span></div><div class="d-run" data-d-run="b"><span class="glyph"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></svg></span><b>Run B</b><span class="think" data-think><i></i><i></i><i></i></span><span class="d-ok"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg></span></div><div class="d-run" data-d-run="c"><span class="glyph"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></svg></span><b>Run C</b><span class="think" data-think><i></i><i></i><i></i></span><span class="d-ok"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg></span></div>
|
|
881
|
+
</div>
|
|
882
|
+
<div class="sk d-client laptop" data-d-client="l1"><span class="d-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><rect x="5" y="5" width="14" height="10" rx="1.5"/><path d="M2.5 19h19"/></svg></span><b>Laptop</b><small>VS Code</small></div>
|
|
883
|
+
<div class="sk d-client laptop" data-d-client="l2"><span class="d-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><rect x="5" y="5" width="14" height="10" rx="1.5"/><path d="M2.5 19h19"/></svg></span><b>Laptop</b><small>VS Code</small></div>
|
|
884
|
+
<div class="sk d-client web" data-d-client="web"><span class="d-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="2.5"/><path d="M3 9h18M6.5 6.5h.01M9 6.5h.01"/></svg></span><b>Browser</b></div>
|
|
885
|
+
<span class="d-tools" data-d="tools"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14.7 6.3a4 4 0 0 0-5.4 5.4L4 17l3 3 5.3-5.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2.4-.6-.6-2.4 2.5-2.5Z"/></svg>tools run here<i data-d="work"></i></span>
|
|
886
|
+
<span class="packet dot p-person" data-d-up="l1"></span><span class="packet dot p-agent" data-d-down="l1"></span><span class="packet dot p-person" data-d-up="l2"></span><span class="packet dot p-agent" data-d-down="l2"></span><span class="packet dot p-person" data-d-up="web"></span><span class="packet dot p-agent" data-d-down="web"></span>
|
|
887
|
+
<span class="packet d-task" data-d="task"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14.7 6.3a4 4 0 0 0-5.4 5.4L4 17l3 3 5.3-5.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2.4-.6-.6-2.4 2.5-2.5Z"/></svg></span>
|
|
888
|
+
<span class="packet d-result" data-d="result"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg></span>
|
|
889
|
+
</div></div></div>
|
|
890
|
+
<figcaption id="dist-caption">Runs and models live on the server. Tools run where the files are.</figcaption>
|
|
891
|
+
</figure>
|
|
892
|
+
</div>
|
|
893
|
+
<nav class="story-nav" aria-label="Select a core feature"><a href="#setups" aria-current="step">Setups</a><a href="#agents">Talk</a><a href="#ui">Mini-apps</a><a href="#typescript">TypeScript</a><a href="#events">Events</a><a href="#workflows">Workflows</a><a href="#distributed">Distributed</a></nav>
|
|
894
|
+
<div class="story-progress" aria-hidden="true"><span></span></div>
|
|
895
|
+
</div>
|
|
896
|
+
</div>
|
|
897
|
+
</section>
|
|
898
|
+
|
|
899
|
+
<section class="dm-section" id="distributed-modes" aria-labelledby="dm-title">
|
|
900
|
+
<svg width="0" height="0" class="dm-sprite" aria-hidden="true">
|
|
901
|
+
<symbol id="dm-i-server" viewBox="0 0 24 24"><rect x="4" y="3" width="16" height="7" rx="2"/><rect x="4" y="14" width="16" height="7" rx="2"/><path d="M8 6.5h.01M8 17.5h.01"/></symbol>
|
|
902
|
+
<symbol id="dm-i-laptop" viewBox="0 0 24 24"><rect x="5" y="5" width="14" height="10" rx="1.5"/><path d="M2.5 19h19"/></symbol>
|
|
903
|
+
<symbol id="dm-i-browser" viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="16" rx="2.5"/><path d="M3 9h18M6.5 6.5h.01M9 6.5h.01"/></symbol>
|
|
904
|
+
<symbol id="dm-i-run" viewBox="0 0 24 24"><path d="M12 3c.8 4.6 3.4 7.2 8 8-4.6.8-7.2 3.4-8 8-.8-4.6-3.4-7.2-8-8 4.6-.8 7.2-3.4 8-8Z"/></symbol>
|
|
905
|
+
<symbol id="dm-i-models" viewBox="0 0 24 24"><path d="m12 3 8 4.5v9L12 21l-8-4.5v-9Z"/><path d="m4 7.5 8 4.5 8-4.5M12 12v9"/></symbol>
|
|
906
|
+
<symbol id="dm-i-tools" viewBox="0 0 24 24"><path d="M14.7 6.3a4 4 0 0 0-5.4 5.4L4 17l3 3 5.3-5.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2.4-.6-.6-2.4 2.5-2.5Z"/></symbol>
|
|
907
|
+
<symbol id="dm-i-profile" viewBox="0 0 24 24"><path d="M5 4h13v16H6.5A2.5 2.5 0 0 1 4 17.5V5a1 1 0 0 1 1-1Zm-1 13.5A2.5 2.5 0 0 1 6.5 15H18M8 8h6M8 11h4"/></symbol>
|
|
908
|
+
<symbol id="dm-i-arrow" viewBox="0 0 24 24"><path d="M5 12h14m-5-5 5 5-5 5"/></symbol>
|
|
909
|
+
</svg>
|
|
910
|
+
|
|
911
|
+
<div class="dm-head">
|
|
912
|
+
<div class="shell">
|
|
913
|
+
<p class="eyebrow">Distributed</p>
|
|
914
|
+
<h2 id="dm-title">Pick where each part runs</h2>
|
|
915
|
+
<p class="dm-lead">Runs, models and tools do not have to live on the same machine. Coordinate centrally, let the tools run where the files are, and choose the split per team and per run.</p>
|
|
916
|
+
</div>
|
|
917
|
+
</div>
|
|
918
|
+
|
|
919
|
+
<div class="shell dm-story" data-dm-story>
|
|
920
|
+
<div class="dm-steps">
|
|
921
|
+
<article class="dm-step" id="dm-local" style="--i: 0" aria-labelledby="dm-t-local">
|
|
922
|
+
<div class="feature-copy">
|
|
923
|
+
<p class="eyebrow">On your laptop</p>
|
|
924
|
+
<h3 id="dm-t-local">Everything on one machine</h3>
|
|
925
|
+
<ul class="feature-benefits">
|
|
926
|
+
<li>Host, runs and tools in one process</li>
|
|
927
|
+
<li>VS Code starts it for you</li>
|
|
928
|
+
<li>Model calls go straight to your provider</li>
|
|
929
|
+
<li>No server to operate</li>
|
|
930
|
+
</ul>
|
|
931
|
+
<p class="dm-when"><b>Choose this when</b> you try RAgents, or work alone on your own code.</p>
|
|
932
|
+
<div class="dm-cmd"><span class="dm-prompt">$ </span>npm install -g @schlenkr/ragents
|
|
933
|
+
<span class="dm-prompt">$ </span>ragents start developer</div>
|
|
934
|
+
<a class="text-link" href="guide-getting-started.html">Get started<svg viewBox="0 0 24 24" aria-hidden="true"><use href="#dm-i-arrow"/></svg></a>
|
|
935
|
+
</div>
|
|
936
|
+
</article>
|
|
937
|
+
<article class="dm-step" id="dm-server-mode" style="--i: 1" aria-labelledby="dm-t-server">
|
|
938
|
+
<div class="feature-copy">
|
|
939
|
+
<p class="eyebrow">On the server</p>
|
|
940
|
+
<h3 id="dm-t-server">Everything on the server</h3>
|
|
941
|
+
<ul class="feature-benefits">
|
|
942
|
+
<li>Runs, agents, models and files on one server</li>
|
|
943
|
+
<li>Open a link, nothing to install</li>
|
|
944
|
+
<li>Each run works in its own folder, isolated</li>
|
|
945
|
+
<li>Sign-in and rights per user</li>
|
|
946
|
+
</ul>
|
|
947
|
+
<p class="dm-when"><b>Choose this when</b> your team or your clients should just open a link and start.</p>
|
|
948
|
+
<div class="dm-cmd"><span class="dm-comment"># in the browser</span>
|
|
949
|
+
https://ragents.example.com</div>
|
|
950
|
+
<a class="text-link" href="guide-access.html">Learn more about access<svg viewBox="0 0 24 24" aria-hidden="true"><use href="#dm-i-arrow"/></svg></a>
|
|
951
|
+
</div>
|
|
952
|
+
</article>
|
|
953
|
+
<article class="dm-step" id="dm-hybrid" style="--i: 2" aria-labelledby="dm-t-hybrid">
|
|
954
|
+
<div class="feature-copy">
|
|
955
|
+
<p class="eyebrow">Server plus laptop</p>
|
|
956
|
+
<h3 id="dm-t-hybrid">The server coordinates, your laptop does the work</h3>
|
|
957
|
+
<ul class="feature-benefits">
|
|
958
|
+
<li>Runs, agents and models stay on the server</li>
|
|
959
|
+
<li>Your laptop offers a folder to a run</li>
|
|
960
|
+
<li>Tool calls run on your files and return the result</li>
|
|
961
|
+
<li>Only you can see your files, even in a shared run</li>
|
|
962
|
+
</ul>
|
|
963
|
+
<p class="dm-when"><b>Choose this when</b> the code lives on your machine, but coordination and models should be central.</p>
|
|
964
|
+
<div class="dm-cmd"><span class="dm-comment"># VS Code: open the folder, start a run. Or:</span>
|
|
965
|
+
<span class="dm-prompt">$ </span>ragents workspace-client \
|
|
966
|
+
https://ragents.example.com ~/project</div>
|
|
967
|
+
<a class="text-link" href="guide-clients.html">Learn more about VS Code and the CLI<svg viewBox="0 0 24 24" aria-hidden="true"><use href="#dm-i-arrow"/></svg></a>
|
|
968
|
+
</div>
|
|
969
|
+
</article>
|
|
970
|
+
<article class="dm-step" id="dm-connected" style="--i: 3" aria-labelledby="dm-t-connected">
|
|
971
|
+
<div class="feature-copy">
|
|
972
|
+
<p class="eyebrow">Connected laptop</p>
|
|
973
|
+
<h3 id="dm-t-connected">Your runs, the team's setup and models</h3>
|
|
974
|
+
<ul class="feature-benefits">
|
|
975
|
+
<li>Runs and journal stay on your laptop</li>
|
|
976
|
+
<li>Profile, prompts, skills and plugins come from the server</li>
|
|
977
|
+
<li>Models by alias: provider and key never leave the server</li>
|
|
978
|
+
<li>Revoke access centrally, per user</li>
|
|
979
|
+
</ul>
|
|
980
|
+
<p class="dm-when"><b>Choose this when</b> developers should work locally, but with the team's setup and models.</p>
|
|
981
|
+
<div class="dm-cmd"><span class="dm-prompt">$ </span>RAGENTS_TOKEN=<token> ragents connect \
|
|
982
|
+
https://ragents.example.com</div>
|
|
983
|
+
<a class="text-link" href="guide-distributed.html">Learn more about connecting<svg viewBox="0 0 24 24" aria-hidden="true"><use href="#dm-i-arrow"/></svg></a>
|
|
984
|
+
</div>
|
|
985
|
+
</article>
|
|
986
|
+
<article class="dm-step" id="dm-transfer" style="--i: 4" aria-labelledby="dm-t-transfer">
|
|
987
|
+
<div class="feature-copy">
|
|
988
|
+
<p class="eyebrow">Move a run</p>
|
|
989
|
+
<h3 id="dm-t-transfer">Start here, continue there</h3>
|
|
990
|
+
<ul class="feature-benefits">
|
|
991
|
+
<li>Journal, model context and plugin storage move along</li>
|
|
992
|
+
<li>The run continues with the next message</li>
|
|
993
|
+
<li>A folder on your laptop stays bound to your laptop</li>
|
|
994
|
+
<li>Processes and language servers restart on first use</li>
|
|
995
|
+
</ul>
|
|
996
|
+
<p class="dm-when"><b>Choose this when</b> a long run should leave your notebook for an always-on machine, or you want to inspect a server run locally.</p>
|
|
997
|
+
<div class="dm-cmd"><span class="dm-prompt">$ </span>pnpm run-transfer <source> <target> <runId></div>
|
|
998
|
+
<a class="text-link" href="guide-distributed.html">Learn more about transfers<svg viewBox="0 0 24 24" aria-hidden="true"><use href="#dm-i-arrow"/></svg></a>
|
|
999
|
+
</div>
|
|
1000
|
+
</article>
|
|
1001
|
+
</div>
|
|
1002
|
+
<div class="dm-stage" data-dm-stage></div>
|
|
1003
|
+
</div>
|
|
1004
|
+
|
|
1005
|
+
<div class="dm-matrix-wrap">
|
|
1006
|
+
<div class="shell">
|
|
1007
|
+
<div class="dm-matrix-card">
|
|
1008
|
+
<h3 id="dm-matrix-title">What runs where</h3>
|
|
1009
|
+
<p>Four setups, one host. Only the location of each part changes.</p>
|
|
1010
|
+
<table class="dm-matrix">
|
|
1011
|
+
<thead><tr><th></th><th>On your laptop</th><th>On the server</th><th>Server plus laptop</th><th>Connected laptop</th></tr></thead>
|
|
1012
|
+
<tbody>
|
|
1013
|
+
<tr><th>Runs, agents, journal</th><td data-label="Laptop"><span class="dm-chip dm-l">laptop</span></td><td data-label="Server"><span class="dm-chip dm-s">server</span></td><td data-label="Server + laptop"><span class="dm-chip dm-s">server</span></td><td data-label="Connected"><span class="dm-chip dm-l">laptop</span></td></tr>
|
|
1014
|
+
<tr><th>Files, shell, Git</th><td data-label="Laptop"><span class="dm-chip dm-l">laptop</span></td><td data-label="Server"><span class="dm-chip dm-s">server</span><small>isolated per run</small></td><td data-label="Server + laptop"><span class="dm-chip dm-l">laptop</span><small>only you see them</small></td><td data-label="Connected"><span class="dm-chip dm-l">laptop</span></td></tr>
|
|
1015
|
+
<tr><th>Models and keys</th><td data-label="Laptop"><span class="dm-chip dm-l">laptop</span><small>your own key</small></td><td data-label="Server"><span class="dm-chip dm-s">server</span></td><td data-label="Server + laptop"><span class="dm-chip dm-s">server</span></td><td data-label="Connected"><span class="dm-chip dm-s">server</span><small>via relay, keys stay hidden</small></td></tr>
|
|
1016
|
+
<tr><th>Profile and plugins</th><td data-label="Laptop"><span class="dm-chip dm-l">laptop</span></td><td data-label="Server"><span class="dm-chip dm-s">server</span></td><td data-label="Server + laptop"><span class="dm-chip dm-s">server</span></td><td data-label="Connected"><span class="dm-chip dm-s">server</span><small>fetched once, cached</small></td></tr>
|
|
1017
|
+
<tr><th>Interface</th><td data-label="Laptop"><span class="dm-chip dm-n">VS Code or browser</span></td><td data-label="Server"><span class="dm-chip dm-n">any browser</span></td><td data-label="Server + laptop"><span class="dm-chip dm-n">VS Code or browser</span></td><td data-label="Connected"><span class="dm-chip dm-n">VS Code or browser</span></td></tr>
|
|
1018
|
+
<tr><th>Install</th><td data-label="Laptop"><span class="dm-chip dm-n">Node or VS Code</span></td><td data-label="Server"><span class="dm-chip dm-n">nothing</span></td><td data-label="Server + laptop"><span class="dm-chip dm-n">Node or VS Code</span></td><td data-label="Connected"><span class="dm-chip dm-n">Node or VS Code</span></td></tr>
|
|
1019
|
+
</tbody>
|
|
1020
|
+
</table>
|
|
1021
|
+
</div>
|
|
1022
|
+
</div>
|
|
1023
|
+
</div>
|
|
1024
|
+
</section>
|
|
1025
|
+
|
|
1026
|
+
<section class="team-section" id="team" aria-labelledby="team-title">
|
|
1027
|
+
<div class="shell team-grid">
|
|
1028
|
+
<div class="feature-copy"><h2 id="team-title">For your teams and your clients</h2><ul class="feature-benefits"><li>Host it on your own server</li><li>Start a prepared setup with one click</li><li>Give clients only the setups you approve</li><li>Hide the technical views, keep chat and UI</li><li>Share models without handing out keys</li></ul><p class="planned-item"><span class="tag">Planned</span>Several people and agents in the same run</p><a class="text-link" href="guide-access.html">Learn more about access<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a></div>
|
|
1029
|
+
<div class="team-cards" aria-hidden="true">
|
|
1030
|
+
<div class="team-card tc-team"><header><span class="glyph"><svg viewBox="0 0 24 24"><circle cx="9" cy="8" r="3.5"/><circle cx="17" cy="9" r="2.5"/><path d="M3 20c.8-4 3-5.5 6-5.5s5.2 1.5 6 5.5m1-5.5c2.5 0 4.2 1.2 5 4.5"/></svg></span><strong>Your team</strong></header><ul><li><svg viewBox="0 0 24 24"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg>Prepared setups</li><li><svg viewBox="0 0 24 24"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg>One click to start</li><li><svg viewBox="0 0 24 24"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg>Shared models</li><li><svg viewBox="0 0 24 24"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg>No keys to hand out</li></ul></div>
|
|
1031
|
+
<div class="team-card tc-client"><header><span class="glyph"><svg viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="16" rx="2.5"/><path d="M3 9h18M6.5 6.5h.01M9 6.5h.01"/></svg></span><strong>Your client</strong></header><ul><li><svg viewBox="0 0 24 24"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg>Approved setups only</li><li><svg viewBox="0 0 24 24"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg>Chat and mini-apps</li><li><svg viewBox="0 0 24 24"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg>No technical views</li><li><svg viewBox="0 0 24 24"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg>Just a browser</li></ul></div>
|
|
1032
|
+
<div class="team-card tc-planned"><header><span class="glyph"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="8.5"/><path d="M12 7.5V12l3 2"/></svg></span><strong>Together in one run</strong><span class="tag">Planned</span></header><ul><li><svg viewBox="0 0 24 24"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg>Several people and agents in the same run</li></ul></div>
|
|
1033
|
+
</div>
|
|
1034
|
+
</div>
|
|
1035
|
+
</section>
|
|
1036
|
+
|
|
1037
|
+
<section class="ua-section" id="use-in-app" aria-labelledby="ua-title">
|
|
1038
|
+
<div class="shell ua-grid">
|
|
1039
|
+
<div class="feature-copy">
|
|
1040
|
+
<p class="eyebrow">For developers</p>
|
|
1041
|
+
<h2 id="ua-title">Use RAgents in your application</h2>
|
|
1042
|
+
<p class="ua-lead">RAgents is a server with one JSON-RPC API. The web interface and VS Code use it, and your product can too.</p>
|
|
1043
|
+
<ul class="feature-benefits"><li>Start the host beside your app, on a private port or over stdio</li><li>Call the same JSON-RPC 2.0 API as the UI</li><li>Follow runs live over Server-Sent Events</li><li>Tailor agents, tools and setups with your own profile and plugins</li><li>Typed contracts as OpenRPC and TypeScript declarations</li></ul>
|
|
1044
|
+
<div class="ua-links"><a class="text-link" href="guide-clients.html#drive-runs-from-external-clients">Learn more about the API<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a><a class="text-link" href="guide-plugins.html">Build a plugin<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a></div>
|
|
1045
|
+
</div>
|
|
1046
|
+
<div class="ua-term" aria-label="Example: start the host on a private port and start a run over JSON-RPC">
|
|
1047
|
+
<div class="ua-bar"><i></i><i></i><i></i><span>your app</span></div>
|
|
1048
|
+
<pre><span class="ua-cmd"><b>$</b> ragents start \
|
|
1049
|
+
./ragents.config.acme.ts --port 0</span>
|
|
1050
|
+
<span class="ua-out">{"ragents":{
|
|
1051
|
+
"url":"http://127.0.0.1:4717",
|
|
1052
|
+
"token":"<token>","pid":4242}}</span>
|
|
1053
|
+
|
|
1054
|
+
<span class="ua-cmd"><b>$</b> curl -s $URL/rpc \
|
|
1055
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
1056
|
+
-H 'content-type: application/json' \
|
|
1057
|
+
-d '{"jsonrpc":"2.0","id":1,
|
|
1058
|
+
"method":"ragents.chat.start",
|
|
1059
|
+
"params":{"runId":"order-42",
|
|
1060
|
+
"entry":"acme.review"}}'</span>
|
|
1061
|
+
<span class="ua-out">{"jsonrpc":"2.0","id":1,"result":null}</span>
|
|
1062
|
+
|
|
1063
|
+
<span class="ua-note"># live events: GET $URL/rpc/stream</span></pre>
|
|
1064
|
+
</div>
|
|
1065
|
+
</div>
|
|
1066
|
+
</section>
|
|
1067
|
+
|
|
1068
|
+
<section class="plugins-section" id="plugins" aria-labelledby="plugins-title">
|
|
1069
|
+
<div class="shell plugins-grid">
|
|
1070
|
+
<div class="feature-copy"><h2 id="plugins-title">Plugins and profiles</h2><ul class="feature-benefits"><li>A plugin adds tools, skills, prompts and UIs</li><li>Write your own plugins in TypeScript</li><li>A profile picks the plugins, models and users</li><li>A server hands its profile to every laptop</li></ul><p class="plugins-note">Plugins are built once into bundles; the host only loads them.</p><div class="plugins-links"><a class="text-link" href="guide.html">Open the guide<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a><a class="text-link" href="guide-plugins.html">Build your own plugin<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a></div></div>
|
|
1071
|
+
<div class="plugin-art" aria-hidden="true">
|
|
1072
|
+
<figure class="pa-panel" data-pa="plugin">
|
|
1073
|
+
<figcaption>Plugin</figcaption>
|
|
1074
|
+
<svg class="pa-lines" viewBox="0 0 560 360"><path data-pa-line d="M166 150C150 140 118 142 96 142"/><path data-pa-line d="M166 150C164 120 124 92 110 76"/><path data-pa-line d="M166 150C172 112 214 84 238 68"/><path data-pa-line d="M166 150C200 140 246 136 272 134"/><path class="pa-eject" d="M300 258C304 204 344 170 402 170"/><path class="pa-eject-tip" d="M392 161l11 9-12 8"/></svg>
|
|
1075
|
+
<span class="pa-shadow"></span>
|
|
1076
|
+
<div class="pa-cart pa-cart-off" data-pa-off><span class="pa-grip"></span><span class="pa-label">plugin<span class="pa-ghosts"><i></i><i></i><i></i><i></i></span></span></div>
|
|
1077
|
+
<div class="pa-cart pa-cart-on"><span class="pa-grip"></span><span class="pa-label">plugin</span></div>
|
|
1078
|
+
<div class="pa-base"><span class="pa-slot"></span><span class="pa-slot pa-slot-2"></span><span class="pa-brand"><svg viewBox="0 0 787 787"><use href="#ragents-mark"/></svg>RAgents</span><span class="pa-leds"><i></i><i></i></span></div>
|
|
1079
|
+
<span class="pa-token t-tools" data-pa-token>tools</span>
|
|
1080
|
+
<span class="pa-token t-skills" data-pa-token>skills</span>
|
|
1081
|
+
<span class="pa-token t-prompts" data-pa-token>prompts</span>
|
|
1082
|
+
<span class="pa-token t-ui" data-pa-token>UI</span>
|
|
1083
|
+
</figure>
|
|
1084
|
+
<figure class="pa-panel" data-pa="profile">
|
|
1085
|
+
<figcaption>Profile</figcaption>
|
|
1086
|
+
<svg class="pa-lines" viewBox="0 0 560 360"><path data-pa-line d="M252 124C310 124 322 68 380 68"/><path data-pa-line d="M252 150C306 150 326 180 380 180"/><path data-pa-line d="M252 176C310 176 322 292 380 292"/></svg>
|
|
1087
|
+
<div class="pp-server"><span class="pa-brand"><svg viewBox="0 0 787 787"><use href="#ragents-mark"/></svg>server</span><span class="pa-leds"><i></i><i></i></span></div>
|
|
1088
|
+
<div class="pp-card"><header><svg viewBox="0 0 24 24"><path d="M4 7h10m4 0h2M4 17h4m4 0h8"/><circle cx="16" cy="7" r="2"/><circle cx="10" cy="17" r="2"/></svg>profile</header><ul><li>plugin</li><li>plugin</li><li class="off">plugin</li><li>models</li><li>users</li></ul></div>
|
|
1089
|
+
<span class="pp-laptop l1"></span>
|
|
1090
|
+
<span class="pp-laptop l2"></span>
|
|
1091
|
+
<span class="pp-laptop l3"></span>
|
|
1092
|
+
<span class="pp-copy c1" data-pp-copy><b></b><i></i><i></i><i></i></span>
|
|
1093
|
+
<span class="pp-copy c2" data-pp-copy><b></b><i></i><i></i><i></i></span>
|
|
1094
|
+
<span class="pp-copy c3" data-pp-copy><b></b><i></i><i></i><i></i></span>
|
|
1095
|
+
</figure>
|
|
1096
|
+
</div>
|
|
1097
|
+
</div>
|
|
1098
|
+
</section>
|
|
1099
|
+
|
|
1100
|
+
<section class="remote-section" id="remote" aria-labelledby="remote-title">
|
|
1101
|
+
<div class="shell remote-grid">
|
|
1102
|
+
<div class="feature-copy"><h2 id="remote-title">Drive RAgents from outside</h2><ul class="feature-benefits"><li>Start runs from the command line</li><li>Let coding agents like Claude Code drive RAgents</li><li>Send tasks, read the journal, stop a run</li><li>Scripts get the same JSON-RPC API as the UI</li></ul><a class="text-link" href="guide-clients.html">Learn more about the command line<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a></div>
|
|
1103
|
+
<div class="remote-art" aria-hidden="true">
|
|
1104
|
+
<div class="rm-term">
|
|
1105
|
+
<div class="rm-bar"><i></i><i></i><i></i><span>terminal</span></div>
|
|
1106
|
+
<pre><span class="rm-cmd"><b>$</b> ragents run ./project "Fix the failing test"</span>
|
|
1107
|
+
<span class="rm-call">> bash pnpm test</span>
|
|
1108
|
+
<span class="rm-ok">< bash 3.1s ok</span>
|
|
1109
|
+
<span class="rm-call">> edit src/date.ts</span>
|
|
1110
|
+
<span class="rm-ok">< edit 0.2s ok</span>
|
|
1111
|
+
Fixed the off-by-one. Tests pass.
|
|
1112
|
+
<span class="rm-dim">run: 8c1f2a</span></pre>
|
|
1113
|
+
</div>
|
|
1114
|
+
<div class="rm-loop">
|
|
1115
|
+
<div class="rm-agent"><span class="glyph square"><svg viewBox="0 0 24 24"><path d="m5 8 4 4-4 4m7 0h7"/></svg></span><strong>your coding agent</strong></div>
|
|
1116
|
+
<div class="rm-wires">
|
|
1117
|
+
<span class="rm-wire out"><em>run / send / stop</em></span>
|
|
1118
|
+
<span class="rm-wire back"><em>journal</em></span>
|
|
1119
|
+
</div>
|
|
1120
|
+
<div class="rm-host"><svg viewBox="0 0 787 787"><use href="#ragents-mark"/></svg><strong>RAgents</strong><span class="rm-leds"><i></i><i></i></span></div>
|
|
1121
|
+
</div>
|
|
1122
|
+
</div>
|
|
1123
|
+
</div>
|
|
1124
|
+
</section>
|
|
1125
|
+
|
|
1126
|
+
<section class="clients-section" id="clients" aria-labelledby="clients-title">
|
|
1127
|
+
<div class="shell">
|
|
1128
|
+
<div class="clients-head"><div><h2 id="clients-title">The same run in the browser and in VS Code</h2></div><ul class="feature-benefits"><li>No install in the browser</li><li>Open a mini-app in an editor tab</li><li>Offer your open folder to a server</li></ul></div>
|
|
1129
|
+
<div class="shots">
|
|
1130
|
+
<figure class="shot shot-web"><img src="screenshots/release-checklist-web.png" width="1600" height="1000" alt="The run panel in the browser: a release checklist mini-app with progress bar, status badges, changed files and action buttons, next to the chat in which the agent built it" loading="lazy"><figcaption><svg viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="2.5"/><path d="M3 9h18M6.5 6.5h.01M9 6.5h.01"/></svg>Browser</figcaption></figure>
|
|
1131
|
+
<figure class="shot shot-code"><img src="screenshots/release-checklist-vscode.png" width="1600" height="1000" alt="The same run in VS Code: the release checklist mini-app in an editor tab, the chat in the RAgents panel, and the run's actors, mini-apps and journal in the side bar" loading="lazy"><figcaption><svg viewBox="0 0 24 24" aria-hidden="true"><path d="m8 7-5 5 5 5m8-10 5 5-5 5"/></svg>VS Code</figcaption></figure>
|
|
1132
|
+
</div>
|
|
1133
|
+
</div>
|
|
1134
|
+
</section>
|
|
1135
|
+
|
|
1136
|
+
<section class="ext-section" id="extensions" aria-labelledby="ext-title">
|
|
1137
|
+
<div class="shell">
|
|
1138
|
+
<div class="ext-head"><h2 id="ext-title">Extensions</h2><p>Bundled plugins. Add your own the same way.</p><a class="text-link" href="guide-plugins.html">Build your own plugin<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a></div>
|
|
1139
|
+
<ul class="ext-grid">
|
|
1140
|
+
<li class="ext-card"><span class="glyph square"><svg viewBox="0 0 24 24"><path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/></svg></span><div><strong>Files and shell</strong><p>Read, edit and run commands in the project</p><small>ragents.workspace</small></div></li>
|
|
1141
|
+
<li class="ext-card"><span class="glyph square"><svg viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="16" rx="2.5"/><path d="M3 9h18M6.5 6.5h.01M9 6.5h.01"/></svg></span><div><strong>Browser</strong><p>Open pages, click, fill in forms, take screenshots</p><small>ragents.browser</small></div></li>
|
|
1142
|
+
<li class="ext-card"><span class="glyph square">C#</span><div><strong>C# language server</strong><p>Compiler errors from Roslyn while the agent edits</p><small>ragents.lsp-roslyn</small></div></li>
|
|
1143
|
+
<li class="ext-card"><span class="glyph square">F#</span><div><strong>F# language server</strong><p>F# diagnostics through FsAutoComplete</p><small>ragents.lsp-fsharp</small></div></li>
|
|
1144
|
+
<li class="ext-card"><span class="glyph square">TS</span><div><strong>TypeScript language server</strong><p>Type errors without running the build</p><small>ragents.lsp-typescript</small></div></li>
|
|
1145
|
+
<li class="ext-card"><span class="glyph square"><svg viewBox="0 0 24 24"><rect x="4" y="4" width="7" height="7" rx="1.5"/><rect x="13" y="4" width="7" height="7" rx="1.5"/><rect x="4" y="13" width="7" height="7" rx="1.5"/><rect x="13" y="13" width="7" height="7" rx="1.5"/></svg></span><div><strong>Mini-apps</strong><p>Actor programs with functions, state and a UI</p><small>ragents.actor-programs</small></div></li>
|
|
1146
|
+
<li class="ext-card"><span class="glyph square"><svg viewBox="0 0 24 24"><path d="M7 3h7l4 4v14H7zM14 3v4h4M10 12h5M10 16h5"/></svg></span><div><strong>Documents</strong><p>Agents file reports you can open and read</p><small>ragents.documents</small></div></li>
|
|
1147
|
+
<li class="ext-card"><span class="glyph square"><svg viewBox="0 0 24 24"><path d="m4 6 1.5 1.5L8 5M4 12l1.5 1.5L8 11M4 18l1.5 1.5L8 17M11 6h9M11 12h9M11 18h9"/></svg></span><div><strong>To-dos</strong><p>A to-do list the agent keeps current</p><small>ragents.todo</small></div></li>
|
|
1148
|
+
<li class="ext-card"><span class="glyph square"><svg viewBox="0 0 24 24"><path d="M4 5h16v11H9l-5 4z"/><path d="M10 9a2 2 0 1 1 2.5 1.9c-.4.2-.5.5-.5.9M12 13.5h.01"/></svg></span><div><strong>Ask the user</strong><p>The agent stops and asks you a question</p><small>ragents.ask</small></div></li>
|
|
1149
|
+
<li class="ext-card"><span class="glyph square"><svg viewBox="0 0 24 24"><path d="M2 12s3.5-6 10-6 10 6 10 6-3.5 6-10 6S2 12 2 12z"/><circle cx="12" cy="12" r="2.5"/></svg></span><div><strong>Watchers</strong><p>Wake an agent when a check turns true, no model needed</p><small>ragents.watch</small></div></li>
|
|
1150
|
+
<li class="ext-card"><span class="glyph square"><svg viewBox="0 0 24 24"><path d="M3 12h4l2-5 4 10 2-5h6"/></svg></span><div><strong>Processes</strong><p>See and stop what a run has started</p><small>ragents.processes</small></div></li>
|
|
1151
|
+
<li class="ext-card"><span class="glyph square"><svg viewBox="0 0 24 24"><path d="M5 6h14M5 10h10M5 14h14M5 18h8"/></svg></span><div><strong>Transcripts</strong><p>Read another actor's history in short form</p><small>ragents.transcript</small></div></li>
|
|
1152
|
+
<li class="ext-card"><span class="glyph square"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="3"/><circle cx="4.5" cy="5" r="1.8"/><circle cx="19.5" cy="5" r="1.8"/><circle cx="4.5" cy="19" r="1.8"/><circle cx="19.5" cy="19" r="1.8"/><path d="m6 6.5 3.8 3.6M18 6.5l-3.8 3.6M6 17.5l3.8-3.6M18 17.5l-3.8-3.6"/></svg></span><div><strong>Global coordinator</strong><p>One chat across all your runs</p><small>ragents.overseer</small></div></li>
|
|
1153
|
+
<li class="ext-card"><span class="glyph square"><svg viewBox="0 0 24 24"><circle cx="5" cy="12" r="2.5"/><circle cx="19" cy="12" r="2.5"/><path d="M7.5 12h9M13 9l3 3-3 3"/></svg></span><div><strong>Model relay</strong><p>Use another server's models without their keys</p><small>ragents.model-relay</small></div></li>
|
|
1154
|
+
<li class="ext-card"><span class="glyph square"><svg viewBox="0 0 24 24"><path d="M4 7h10m4 0h2M4 17h4m4 0h8"/><circle cx="16" cy="7" r="2"/><circle cx="10" cy="17" r="2"/></svg></span><div><strong>Profile distribution</strong><p>A server hands its profile and plugins to clients</p><small>ragents.profile-distribution</small></div></li>
|
|
1155
|
+
</ul>
|
|
1156
|
+
</div>
|
|
1157
|
+
</section>
|
|
1158
|
+
|
|
1159
|
+
<div class="shell">
|
|
1160
|
+
<div class="closing"><section class="start-cta" id="start"><h2>Start a run</h2><p>Open RAgents in VS Code or in the browser. Start with a plain chat, a skill, or a prepared setup.</p><div class="actions"><a class="button" href="https://marketplace.visualstudio.com/items?itemName=purestate.ragents-vscode">Install for VS Code<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a><a class="button secondary" href="guide-getting-started.html">Read the getting started guide<svg class="link-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14m-5-5 5 5-5 5"/></svg></a></div></section><section class="alpha-note" id="built-with"><h2>Built something with RAgents?</h2><p>RAgents is still in an alpha state. If you have built anything cool with it, let us know.</p><a class="button secondary" href="https://github.com/SchlenkR/RAgents/issues"><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>Tell us on GitHub</a></section></div>
|
|
1161
|
+
|
|
1162
|
+
<section class="limits" id="applications"><h2>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>
|
|
1163
|
+
</div>
|
|
1164
|
+
</main>
|
|
1165
|
+
<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"><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><p>Tailored AI Workspaces for your teams or your clients.</p></div><nav class="footer-col" aria-label="Product"><h3>Product</h3><a href="#setups">Setups</a><a href="#agents">Agents</a><a href="#ui">Mini-apps</a><a href="#distributed">Distributed</a><a href="#extensions">Extensions</a></nav><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>
|
|
1166
|
+
</body>
|
|
1167
|
+
</html>
|