@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,833 @@
|
|
|
1
|
+
:root { --sk-ink: #233447; --sk-shadow: 3px 4px 0 #2334471f, 0 14px 24px -18px #12273799; --c-person: #ffd9c4; --c-agent: #c2ddff; --c-coord: #e2ccff; --c-script: #ffdd68; --c-app: #a7e8d4; --c-laptop: #d7efff; --c-pink: #ffc9dc; --c-cream: #fffef7; --ok: #2f7a5c; --warn: #b4572e; }
|
|
2
|
+
|
|
3
|
+
.hero-board { min-height: 590px; padding: 128px 84px 172px; }
|
|
4
|
+
.hero-copy { max-width: 940px; }
|
|
5
|
+
.hero h1 { font-size: clamp(38px, 4.1vw, 58px); line-height: 1.08; }
|
|
6
|
+
.hero h1 span { padding-bottom: .06em; }
|
|
7
|
+
.hero .lead { max-width: 600px; }
|
|
8
|
+
.feature-sticker strong { font-size: 18px; }
|
|
9
|
+
.feature-sticker { padding: 13px 19px; gap: 14px; }
|
|
10
|
+
.feature-sticker svg { flex-basis: 30px; width: 30px; height: 30px; }
|
|
11
|
+
.sticker-symbol { font-size: 25px; }
|
|
12
|
+
.sticker-distributed { --sticker-angle: -5deg; left: 4px; top: 24px; }
|
|
13
|
+
.sticker-workflows { --sticker-angle: 4deg; left: auto; right: 4px; top: 30px; bottom: auto; }
|
|
14
|
+
.sticker-agents { --sticker-angle: -3deg; left: 0; top: 262px; bottom: auto; }
|
|
15
|
+
.sticker-clients { --sticker-angle: 4deg; right: 10px; top: 272px; }
|
|
16
|
+
.sticker-setups { --sticker-angle: 3deg; left: 30px; top: auto; bottom: 34px; }
|
|
17
|
+
.sticker-apps { --sticker-angle: -4deg; left: 29%; right: auto; top: auto; bottom: 18px; }
|
|
18
|
+
.sticker-journal { --sticker-angle: 3deg; left: auto; right: 27%; bottom: 26px; }
|
|
19
|
+
.sticker-journal strong { font-size: 18px; }
|
|
20
|
+
.sticker-builds { --sticker-angle: -3deg; right: 22px; bottom: 44px; background: var(--c-pink); border-radius: 16px 4px 16px 4px; }
|
|
21
|
+
|
|
22
|
+
.feature-story .story-intro > p:last-child { max-width: 470px; }
|
|
23
|
+
.story-nav { grid-template-columns: repeat(7, 1fr); gap: 6px; }
|
|
24
|
+
.story-nav a { font-size: 11.5px; padding-inline: 4px; }
|
|
25
|
+
.feature-story[data-pinned] .story-stage { height: clamp(420px, calc(100svh - var(--header-height, 80px) - 60px), 760px); }
|
|
26
|
+
.feature-story[data-pinned] .story-scenes { border: 1.5px solid var(--sk-ink); border-radius: 22px; background: #f7f5fb; box-shadow: 6px 8px 0 #2334471a, 0 30px 60px -40px #16364c80; }
|
|
27
|
+
.story-step .feature-copy h3 { font-size: clamp(30px, 3.1vw, 42px); }
|
|
28
|
+
.story-step .feature-copy > .concept-intro { font-size: 16px; line-height: 1.7; color: var(--muted); }
|
|
29
|
+
.story-step .feature-benefits li { font-size: 17px; }
|
|
30
|
+
.story-step .text-link { margin-top: 22px; }
|
|
31
|
+
.feature-copy .technical p { margin-top: 12px; }
|
|
32
|
+
#ui .feature-benefits li, #distributed .feature-benefits li { color: #277257; }
|
|
33
|
+
#ui .feature-benefits li::before, #distributed .feature-benefits li::before { background-color: #277257; }
|
|
34
|
+
|
|
35
|
+
.story-scene.v2 { --dots: radial-gradient(#23344716 1.1px, transparent 1.5px) 0 0 / 20px 20px; justify-content: flex-start; min-height: 0; padding: 58px 24px 18px; color: var(--sk-ink); border: 1.5px solid var(--sk-ink); border-radius: 20px; box-shadow: 5px 7px 0 #2334471a; overflow: hidden; }
|
|
36
|
+
.story-scene.v2 .scene-heading { inset: 22px 26px auto; color: #43617d; font: 500 10px/1.4 var(--mono); letter-spacing: .1em; }
|
|
37
|
+
.story-scene.v2 .scene-heading > span:last-child { color: #43617d; }
|
|
38
|
+
.story-scene.v2 > figcaption { position: static; margin: 12px 0 0; color: #4d5f72; font-size: 12.5px; line-height: 1.5; text-align: center; }
|
|
39
|
+
.scene-setup { background: var(--dots), linear-gradient(150deg, #fff9e8, #f6efff 70%); }
|
|
40
|
+
.scene-talk { background: var(--dots), linear-gradient(150deg, #eef6ff, #f7f0ff 75%); }
|
|
41
|
+
.scene-app { background: var(--dots), linear-gradient(150deg, #e8f7f1, #f1f4ff 75%); }
|
|
42
|
+
.scene-ts { background: var(--dots), linear-gradient(150deg, #f5efff, #fff7e4 80%); }
|
|
43
|
+
.scene-events { background: var(--dots), linear-gradient(150deg, #fffaec, #eef6ff 80%); }
|
|
44
|
+
.scene-dist { background: var(--dots), linear-gradient(150deg, #fff2ea, #eef3ff 75%); }
|
|
45
|
+
.feature-story[data-pinned] .story-scene.v2 { border: 0; border-radius: 0; box-shadow: none; padding: 58px 24px 16px; }
|
|
46
|
+
|
|
47
|
+
.art-wrap { position: relative; flex: 1 1 auto; min-height: 0; container-type: inline-size; }
|
|
48
|
+
.feature-story[data-pinned] .art-wrap { container-type: size; }
|
|
49
|
+
.art { position: relative; width: 100%; aspect-ratio: 540 / 520; margin-inline: auto; container-type: inline-size; }
|
|
50
|
+
.feature-story:not([data-pinned]) .art { width: min(100%, calc((100svh - 310px) * 540 / 520)); }
|
|
51
|
+
.feature-story[data-pinned] .art { width: min(100cqw, 100cqh * 540 / 520); position: absolute; inset: 0; margin: auto; height: auto; }
|
|
52
|
+
.art-canvas { position: absolute; inset: 0; font-size: clamp(10.5px, 2.45cqw, 14px); line-height: 1.3; }
|
|
53
|
+
.art-lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
|
|
54
|
+
.edge { fill: none; stroke: var(--sk-ink); stroke-width: 1.6; stroke-linecap: round; opacity: .5; }
|
|
55
|
+
.edge.faint { stroke-dasharray: 3 6; opacity: .35; }
|
|
56
|
+
.edge.draw { stroke-dasharray: 1; stroke-dashoffset: 0; }
|
|
57
|
+
|
|
58
|
+
.sk { --x: 270; --y: 260; --r: 0deg; --bg: #fff; position: absolute; left: calc(var(--x) * 100% / 540); top: calc(var(--y) * 100% / 520); translate: -50% -50%; rotate: var(--r); padding: .6em .85em; color: var(--sk-ink); background: var(--bg); border: 1.5px solid var(--sk-ink); border-radius: 5px 14px 5px 14px; box-shadow: var(--sk-shadow); white-space: nowrap; }
|
|
59
|
+
.sk strong { display: block; font-weight: 750; letter-spacing: -.02em; line-height: 1.2; }
|
|
60
|
+
.sk small { display: block; margin-top: .15em; color: #4d5f72; font-size: .8em; line-height: 1.3; }
|
|
61
|
+
.sk.agent { --bg: var(--c-agent); }
|
|
62
|
+
.sk.coord { --bg: var(--c-coord); }
|
|
63
|
+
.sk.script { --bg: var(--c-script); }
|
|
64
|
+
.sk.app { --bg: var(--c-app); border-radius: 14px 5px 14px 5px; }
|
|
65
|
+
.sk.person { --bg: var(--c-person); }
|
|
66
|
+
.sk.note { --bg: var(--c-cream); border-style: dashed; box-shadow: none; }
|
|
67
|
+
.node { display: flex; align-items: center; gap: .6em; }
|
|
68
|
+
.glyph { display: grid; flex: none; place-items: center; width: 2.1em; height: 2.1em; border: 1.5px solid var(--sk-ink); border-radius: 50%; background: #ffffffb0; font: 750 .78em/1 var(--mono); letter-spacing: -.04em; }
|
|
69
|
+
.glyph svg { width: 1.35em; height: 1.35em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
|
|
70
|
+
.glyph.square { border-radius: 6px; }
|
|
71
|
+
.mono { font-family: var(--mono); }
|
|
72
|
+
.tag { display: inline-flex; align-items: center; gap: .35em; padding: .15em .5em; border: 1.2px solid var(--sk-ink); border-radius: 999px; background: #fff; font: 600 .74em/1.4 var(--mono); white-space: nowrap; }
|
|
73
|
+
.tag.ok { background: #d9f3e6; color: #1f5a42; border-color: #1f5a42; }
|
|
74
|
+
.tag.warn { background: #ffe3d3; color: #7c3313; border-color: #7c3313; }
|
|
75
|
+
.tag svg { width: 1.1em; height: 1.1em; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
|
|
76
|
+
.packet { position: absolute; left: 0; top: 0; z-index: 4; translate: -50% -50%; padding: .2em .6em; color: var(--sk-ink); border: 1.5px solid var(--sk-ink); border-radius: 999px; background: #fff; box-shadow: 2px 3px 0 #2334472a; font: 700 .76em/1.35 var(--mono); white-space: nowrap; opacity: 0; pointer-events: none; }
|
|
77
|
+
.packet.dot { width: .9em; height: .9em; padding: 0; }
|
|
78
|
+
.packet.p-person { background: var(--c-person); }
|
|
79
|
+
.packet.p-agent { background: var(--c-agent); }
|
|
80
|
+
.packet.p-coord { background: var(--c-coord); }
|
|
81
|
+
.packet.p-script { background: var(--c-script); }
|
|
82
|
+
.packet.p-app { background: var(--c-app); }
|
|
83
|
+
.packet.p-ok { background: #d9f3e6; }
|
|
84
|
+
|
|
85
|
+
.cursor { position: absolute; left: 100%; top: 100%; z-index: 5; width: 1.6em; height: 1.6em; translate: -20% -10%; pointer-events: none; filter: drop-shadow(1px 2px 0 #23344740); }
|
|
86
|
+
.cursor path { fill: #fff; stroke: var(--sk-ink); stroke-width: 1.6; stroke-linejoin: round; }
|
|
87
|
+
|
|
88
|
+
.code-card { --bg: #1d2b3c; width: 22.5em; padding: 0; color: #e7eef7; border-radius: 12px; box-shadow: 4px 6px 0 #2334472e, 0 20px 36px -20px #12273799; overflow: hidden; }
|
|
89
|
+
.code-tab { display: flex; align-items: center; gap: .55em; padding: .55em .9em; background: #28405a; border-bottom: 1.5px solid var(--sk-ink); font: 600 .82em var(--mono); }
|
|
90
|
+
.code-tab .ts { padding: .05em .35em; border: 1.2px solid var(--sk-ink); border-radius: 4px; background: var(--c-script); color: var(--sk-ink); font-size: .85em; }
|
|
91
|
+
.code-foot { display: flex; justify-content: space-between; padding: .5em .9em .65em; border-top: 1px solid #3b5470; color: #9fb6cd; font: .78em var(--mono); }
|
|
92
|
+
.code-foot strong { display: inline; color: #8fe0bb; }
|
|
93
|
+
.mini-window { width: 13.5em; padding: 0; overflow: hidden; }
|
|
94
|
+
.mini-window-bar { display: flex; align-items: center; gap: .45em; padding: .45em .7em; border-bottom: 1.5px solid var(--sk-ink); background: #ffffffa8; font-size: .8em; font-weight: 700; }
|
|
95
|
+
.mini-window-bar svg { width: 1.2em; height: 1.2em; fill: none; stroke: currentColor; stroke-width: 2; }
|
|
96
|
+
.mini-window-body { display: grid; gap: .35em; padding: .6em .7em .7em; background: #f7fbf9; }
|
|
97
|
+
.mini-row { display: flex; align-items: center; gap: .5em; padding: .3em .45em; border: 1px solid #c3d6cd; border-radius: 5px; background: #fff; font: .72em var(--mono); }
|
|
98
|
+
.mini-row::before { content: ''; width: .8em; height: .8em; border: 1.2px solid #3b705f; border-radius: 3px; background: var(--box, #3b705f); }
|
|
99
|
+
.mini-row.off::before { --box: #fff; }
|
|
100
|
+
.mini-button { justify-self: start; margin-top: .15em; padding: .3em .8em; border-radius: 6px; background: #79638d; color: #fff; font-size: .72em; font-weight: 650; }
|
|
101
|
+
.su-at { position: absolute; left: calc(var(--x) * 100% / 540); top: calc(var(--y) * 100% / 520); translate: -50% -50%; }
|
|
102
|
+
.su-shape { display: grid; place-items: center; color: var(--sk-ink); border: 1.5px solid var(--sk-ink); box-shadow: var(--sk-shadow); }
|
|
103
|
+
.su-shape svg { width: 44%; height: 44%; fill: #fff; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; }
|
|
104
|
+
.su-shape.agent { width: calc(84 * 100% / 540); aspect-ratio: 1; border-radius: 50%; background: var(--c-agent); }
|
|
105
|
+
.su-shape.script { width: calc(76 * 100% / 540); aspect-ratio: 1; border-radius: 10px; background: var(--c-script); font: 750 1.3em/1 var(--mono); letter-spacing: -.04em; }
|
|
106
|
+
.su-shape.app { width: calc(130 * 100% / 540); aspect-ratio: 130 / 84; display: flex; flex-direction: column; align-items: stretch; overflow: hidden; border-radius: 12px 4px 12px 4px; background: #f7fbf9; }
|
|
107
|
+
.su-shape.app i { flex: none; height: 26%; border-bottom: 1.5px solid var(--sk-ink); background: var(--c-app); }
|
|
108
|
+
.su-shape.app b { height: .5em; margin: .6em .8em 0; border-radius: 3px; background: #c3d6cd; }
|
|
109
|
+
.su-shape.app b + b { width: 50%; }
|
|
110
|
+
.su-setup { width: calc(100 * 100% / 540); border-radius: 14px; font-size: 1.7em; }
|
|
111
|
+
.su-name { position: absolute; left: calc(334 * 100% / 540); top: calc(70 * 100% / 520); translate: 0 -50%; }
|
|
112
|
+
.su-name b, .su-label b { display: block; font-weight: 750; font-size: 1.05em; }
|
|
113
|
+
.su-name small, .su-label small { display: block; color: #4d5f72; font: .82em/1.4 var(--mono); }
|
|
114
|
+
.su-frame { position: absolute; left: calc(30 * 100% / 540); top: calc(168 * 100% / 520); width: calc(480 * 100% / 540); height: calc(334 * 100% / 520); border: 2px dashed #23344766; border-radius: 18px; }
|
|
115
|
+
.su-frame.built { border-style: solid; border-color: #23344799; background: #ffffff59; }
|
|
116
|
+
.su-frame > span { position: absolute; left: 1.1em; top: .8em; color: #43617d; font: 600 .74em var(--mono); letter-spacing: .08em; text-transform: uppercase; }
|
|
117
|
+
.su-lines path { fill: none; stroke: var(--sk-ink); stroke-width: 1.4; stroke-linecap: round; }
|
|
118
|
+
.su-lines .su-faint { stroke-dasharray: 4 6; opacity: .3; }
|
|
119
|
+
.su-lines .su-lit { stroke-width: 2.2; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: .7; }
|
|
120
|
+
.su-ghost { background: transparent; box-shadow: none; border-style: dashed; }
|
|
121
|
+
.su-label { translate: -50% 0; text-align: center; white-space: nowrap; }
|
|
122
|
+
.su-piece { z-index: 3; }
|
|
123
|
+
.su-calls { position: absolute; left: 50%; top: calc(502 * 100% / 520); translate: -50% -50%; background: #d9f3e6; color: #1f5a42; border-color: #1f5a42; font-size: .9em; }
|
|
124
|
+
|
|
125
|
+
.feature-story[data-pinned] #typescript.story-step { min-height: 560svh; }
|
|
126
|
+
.tsx { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; gap: 1.1em; }
|
|
127
|
+
.tsx-editor, .tsx-callers { overflow: hidden; border: 1.5px solid var(--sk-ink); border-radius: 12px; box-shadow: 4px 5px 0 #2334471f; }
|
|
128
|
+
.tsx-editor { color: #e7eef7; background: #1d2b3c; }
|
|
129
|
+
.tsx-bar { display: flex; align-items: center; gap: .4em; padding: .55em .8em; color: #9fb6cd; border-bottom: 1.5px solid var(--sk-ink); background: #28405a; font: 600 .74em/1.2 var(--mono); }
|
|
130
|
+
.tsx-bar i { width: .7em; height: .7em; border-radius: 50%; background: #ff8f7a; }
|
|
131
|
+
.tsx-bar i:nth-child(2) { background: #ffd166; }
|
|
132
|
+
.tsx-bar i:nth-child(3) { background: #6fcf9f; }
|
|
133
|
+
.tsx-bar span { margin-left: .5em; }
|
|
134
|
+
.tsx pre { margin: 0; font: .8em/1.6 var(--mono); white-space: pre; }
|
|
135
|
+
.tsx-code { padding: .8em 1em .9em; }
|
|
136
|
+
.tsx-code .f { color: #8fd3ff; }
|
|
137
|
+
.tsx-code .p { color: #ffd166; }
|
|
138
|
+
.tsx-code .s { color: #a7e8d4; }
|
|
139
|
+
.tsx-callers { background: #fffdf8; }
|
|
140
|
+
.tsx-tabs { display: flex; gap: .3em; padding: .45em .5em 0; border-bottom: 1.5px solid #23344722; background: #fff; }
|
|
141
|
+
.tsx-tabs span { padding: .35em .75em .45em; border: 1.5px solid transparent; border-bottom: 0; border-radius: 8px 8px 0 0; color: #6a7684; font: 600 .74em/1.2 var(--mono); white-space: nowrap; }
|
|
142
|
+
.tsx-tabs span.on { margin-bottom: -1.5px; color: var(--sk-ink); border-color: #23344733; background: #fffdf8; }
|
|
143
|
+
.tsx-panes { display: grid; }
|
|
144
|
+
.tsx-pane { grid-area: 1 / 1; padding: .8em 1em 1em; color: var(--sk-ink); }
|
|
145
|
+
.tsx-pane .c { color: #7a8a9b; font-style: italic; }
|
|
146
|
+
.tsx-pane .f { color: #1769b1; }
|
|
147
|
+
.tsx-pane .p { color: #8a4b00; }
|
|
148
|
+
.tsx-pane .s { color: #1f7a57; }
|
|
149
|
+
.tsx-pane .k { color: #79638d; font-weight: 700; }
|
|
150
|
+
.tsx-pane .ok { color: #1f7a57; font-weight: 700; }
|
|
151
|
+
.tsx-pane .err { color: #b4572e; text-decoration: underline wavy #d0402b; text-underline-offset: 3px; }
|
|
152
|
+
.tsx-msg { display: inline-block; margin-top: .35em; padding: .1em .55em; border-radius: 6px; background: #ffe3d3; color: #7c3313; font-weight: 700; }
|
|
153
|
+
.tsx-msg.good { background: #d9f3e6; color: #1f5a42; }
|
|
154
|
+
[data-tsx-fix], [data-tsx-fixed] { display: none; }
|
|
155
|
+
.tsx-pane.fixed [data-tsx-typo], .tsx-pane.fixed [data-tsx-error] { display: none; }
|
|
156
|
+
.tsx-pane.fixed [data-tsx-fix], .tsx-pane.fixed [data-tsx-fixed] { display: inline; }
|
|
157
|
+
.tsx-pane.fixed [data-tsx-fixed] { display: inline-block; }
|
|
158
|
+
.tsx-button { display: inline-block; padding: .15em .7em; border: 1.5px solid var(--sk-ink); border-radius: 7px; background: var(--c-app); box-shadow: 2px 2px 0 #2334472a; font-family: var(--font); font-weight: 700; }
|
|
159
|
+
@media (max-width: 700px) {
|
|
160
|
+
.scene-ts .art { aspect-ratio: auto; }
|
|
161
|
+
.scene-ts .art-canvas { position: relative; }
|
|
162
|
+
.tsx { position: relative; }
|
|
163
|
+
.tsx pre { font-size: .68em; }
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.fork { display: flex; flex-wrap: wrap; align-items: center; gap: .35em; margin-top: .45em; font: 600 .74em var(--mono); }
|
|
167
|
+
.fork span { white-space: nowrap; padding: .1em .45em; border: 1.2px solid var(--sk-ink); border-radius: 999px; background: var(--c-agent); }
|
|
168
|
+
.fork svg { width: 1.2em; height: 1.2em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
|
|
169
|
+
.zz { color: #6a7a8b; }
|
|
170
|
+
|
|
171
|
+
.think { position: absolute; left: 62%; top: -.5em; z-index: 2; display: none; align-items: center; gap: .22em; padding: .38em .5em; border: 1.5px solid var(--sk-ink); border-radius: 999px; background: #fff; box-shadow: 2px 3px 0 #2334471f; }
|
|
172
|
+
.thinking > .think { display: flex; }
|
|
173
|
+
.think i { width: .42em; height: .42em; border-radius: 50%; background: var(--sk-ink); opacity: .25; }
|
|
174
|
+
.think i.on { opacity: 1; }
|
|
175
|
+
.halo { box-shadow: 0 0 0 4px #ffe38a, var(--sk-shadow); }
|
|
176
|
+
|
|
177
|
+
.art[data-art="ui"] .art-canvas, .art[data-art="distributed"] .art-canvas { font-size: clamp(10.5px, 2.9cqw, 17px); }
|
|
178
|
+
.u-outline { fill: none; stroke: var(--sk-ink); stroke-width: 1.6; stroke-dasharray: 1; opacity: .7; }
|
|
179
|
+
.u-wire { fill: none; stroke: var(--sk-ink); stroke-width: 1.5; stroke-dasharray: 4 6; stroke-linecap: round; opacity: .3; }
|
|
180
|
+
.u-wire.lit { stroke-width: 2.2; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: .8; }
|
|
181
|
+
.u-note { --x: 270; --y: 56; --r: -1.5deg; padding: .4em .9em; font-size: .82em; font-weight: 650; line-height: 1.4; text-align: center; }
|
|
182
|
+
.u-actor { position: absolute; left: calc(var(--x) * 100% / 540); top: calc(var(--y) * 100% / 520); translate: -50% -50%; display: grid; justify-items: center; gap: .4em; }
|
|
183
|
+
.u-actor.agent { --x: 58; --y: 262; --bg: var(--c-agent); padding-inline: 1.3em; }
|
|
184
|
+
.u-actor .think { left: calc(50% + .5em); }
|
|
185
|
+
.u-actor.person { --x: 482; --y: 262; --bg: var(--c-person); }
|
|
186
|
+
.u-actor b { font-weight: 750; }
|
|
187
|
+
.u-face { display: grid; place-items: center; width: 4.2em; height: 4.2em; border: 1.5px solid var(--sk-ink); border-radius: 50%; background: var(--bg); box-shadow: var(--sk-shadow); }
|
|
188
|
+
.u-face svg { width: 50%; height: 50%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
|
|
189
|
+
.u-actor.agent .u-face svg { fill: #fff; stroke-width: 1.5; }
|
|
190
|
+
.u-panel { position: absolute; left: calc(130 * 100% / 540); top: calc(108 * 100% / 520); width: calc(280 * 100% / 540); height: 16.2em; display: flex; flex-direction: column; overflow: hidden; border: 1.5px solid var(--sk-ink); border-radius: 14px; background: #f7fbf9; box-shadow: 5px 7px 0 #2334471f, 0 24px 40px -26px #12273799; }
|
|
191
|
+
.u-bar { display: flex; align-items: center; gap: .45em; padding: .55em .8em; border-bottom: 1.5px solid var(--sk-ink); background: var(--c-app); font-weight: 750; }
|
|
192
|
+
.u-bar svg { width: 1.2em; height: 1.2em; fill: none; stroke: currentColor; stroke-width: 2; }
|
|
193
|
+
.u-count { margin-left: auto; color: #2d6552; font: 700 .8em var(--mono); }
|
|
194
|
+
.u-panel ul { display: grid; gap: .55em; margin: 0; padding: .8em .75em 0; list-style: none; }
|
|
195
|
+
.u-row { display: flex; align-items: center; gap: .55em; min-height: 2.6em; padding: .3em .5em; border: 1.3px solid #c3d6cd; border-radius: 7px; background: #fff; font-weight: 650; white-space: nowrap; }
|
|
196
|
+
.u-row[data-by="agent"] { border-color: #5f89bf; background: #e6f0ff; }
|
|
197
|
+
.u-row[data-by="you"] { border-color: #cf9373; background: #fff0e7; }
|
|
198
|
+
.u-row.flash { box-shadow: 0 0 0 3px #ffe38a; }
|
|
199
|
+
.u-box { display: grid; flex: none; place-items: center; width: 1.2em; height: 1.2em; border: 1.5px solid var(--sk-ink); border-radius: 4px; background: #fff; color: #fff; }
|
|
200
|
+
.u-box svg { width: .95em; height: .95em; fill: none; stroke: currentColor; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; opacity: 0; }
|
|
201
|
+
.u-row[data-by] .u-box { background: var(--sk-ink); }
|
|
202
|
+
.u-row[data-by] .u-box svg { opacity: 1; }
|
|
203
|
+
.u-by { display: none; align-items: center; gap: .25em; margin-left: auto; padding: .08em .45em .08em .2em; border: 1.2px solid var(--sk-ink); border-radius: 999px; font: 700 .7em/1.4 var(--mono); }
|
|
204
|
+
.u-by svg { width: 1.3em; height: 1.3em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
|
|
205
|
+
.u-by.agent { background: var(--c-agent); }
|
|
206
|
+
.u-by.you { background: var(--c-person); }
|
|
207
|
+
.u-row[data-by="agent"] .u-by.agent, .u-row[data-by="you"] .u-by.you { display: inline-flex; }
|
|
208
|
+
.u-foot { display: flex; justify-content: center; margin-top: auto; padding: .7em; }
|
|
209
|
+
.u-go { padding: .35em 1.7em; color: #fff; border: 1.5px solid var(--sk-ink); border-radius: 999px; background: #79638d; box-shadow: 2px 3px 0 #2334472a; font-weight: 750; }
|
|
210
|
+
.u-go.pressed { translate: 1px 2px; background: #5d4a70; box-shadow: none; }
|
|
211
|
+
.u-ptr { position: absolute; left: 0; top: 0; z-index: 5; display: flex; align-items: flex-start; translate: -.3em -.2em; pointer-events: none; opacity: 0; }
|
|
212
|
+
.u-ptr.agent { --bg: var(--c-agent); }
|
|
213
|
+
.u-ptr.person { --bg: var(--c-person); }
|
|
214
|
+
.u-ptr svg { width: 1.7em; height: 1.7em; filter: drop-shadow(1px 2px 0 #23344740); }
|
|
215
|
+
.u-ptr path { fill: var(--bg); stroke: var(--sk-ink); stroke-width: 1.6; stroke-linejoin: round; }
|
|
216
|
+
.u-ptr b { margin: 1.25em 0 0 -.2em; padding: .05em .45em; border: 1.2px solid var(--sk-ink); border-radius: 4px; background: var(--bg); font: 700 .7em/1.4 var(--mono); }
|
|
217
|
+
|
|
218
|
+
.n-faint path { fill: none; stroke: var(--sk-ink); stroke-width: 1.4; stroke-dasharray: 4 6; stroke-linecap: round; opacity: .3; }
|
|
219
|
+
.n-lit { fill: none; stroke: var(--sk-ink); stroke-width: 2.4; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: .75; }
|
|
220
|
+
.n-node { display: flex; align-items: center; gap: .5em; padding: .5em .9em .5em .5em; font-size: 1.08em; }
|
|
221
|
+
.n-node b { display: block; font-weight: 750; line-height: 1.2; }
|
|
222
|
+
.n-node small { margin-top: 0; font-size: .74em; }
|
|
223
|
+
.n-node .glyph { width: 2.2em; height: 2.2em; }
|
|
224
|
+
.n-mail { display: grid; place-items: center; padding: .25em .35em; background: var(--bg, #fff); }
|
|
225
|
+
.n-mail svg { width: 1.35em; height: 1.35em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; }
|
|
226
|
+
.n-mail[data-from="person"] { --bg: var(--c-person); }
|
|
227
|
+
.n-mail[data-from="agent"] { --bg: var(--c-agent); }
|
|
228
|
+
.n-mail[data-from="script"] { --bg: var(--c-script); }
|
|
229
|
+
.n-mail[data-from="app"] { --bg: var(--c-app); }
|
|
230
|
+
|
|
231
|
+
.d-link { fill: none; stroke: var(--sk-ink); stroke-width: 2; stroke-dasharray: 5 6; stroke-linecap: round; opacity: .45; }
|
|
232
|
+
.d-path { fill: none; stroke: none; }
|
|
233
|
+
.d-server { position: absolute; left: calc(170 * 100% / 540); top: calc(136 * 100% / 520); width: calc(200 * 100% / 540); height: calc(232 * 100% / 520); border: 2px solid var(--sk-ink); border-radius: 12px; background: #efe6fb; box-shadow: 5px 7px 0 #2334471f, 0 24px 40px -26px #12273799; }
|
|
234
|
+
.d-server .d-tag { left: -.7em; top: -.95em; translate: none; rotate: -3deg; display: inline-flex; align-items: center; gap: .4em; padding: .3em .75em; font-weight: 750; }
|
|
235
|
+
.d-tag svg, .d-models svg, .d-icon svg, .d-tools svg, .d-task svg, .d-result svg, .d-ok svg { flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
|
|
236
|
+
.d-tag svg { width: 1.25em; height: 1.25em; }
|
|
237
|
+
.d-models { position: absolute; right: .6em; top: .7em; display: inline-flex; align-items: center; gap: .3em; padding: .12em .5em; border: 1.2px solid var(--sk-ink); border-radius: 999px; background: var(--c-pink); font: 700 .72em/1.4 var(--mono); }
|
|
238
|
+
.d-models svg { width: 1.2em; height: 1.2em; }
|
|
239
|
+
.d-models.halo { box-shadow: 0 0 0 3px #ffe38a; }
|
|
240
|
+
.d-run { position: absolute; left: 50%; width: calc(170 * 100% / 200); display: flex; align-items: center; gap: .5em; min-height: 2.9em; padding: .35em .55em; translate: -50% -50%; border: 1.5px solid var(--sk-ink); border-radius: 5px 12px 5px 12px; background: #fff; box-shadow: var(--sk-shadow); }
|
|
241
|
+
.d-run[data-d-run="a"] { top: calc(66 * 100% / 232); }
|
|
242
|
+
.d-run[data-d-run="b"] { top: calc(122 * 100% / 232); }
|
|
243
|
+
.d-run[data-d-run="c"] { top: calc(178 * 100% / 232); }
|
|
244
|
+
.d-run .glyph { width: 1.9em; height: 1.9em; background: var(--c-agent); }
|
|
245
|
+
.d-run b { font-weight: 750; white-space: nowrap; }
|
|
246
|
+
.d-run .think { position: static; margin-left: auto; padding: .3em .4em; box-shadow: none; }
|
|
247
|
+
.d-ok { display: none; place-items: center; width: 1.5em; height: 1.5em; margin-left: auto; color: var(--ok); border: 1.3px solid var(--ok); border-radius: 50%; background: #d9f3e6; }
|
|
248
|
+
.d-ok svg { width: 1em; height: 1em; stroke-width: 3; }
|
|
249
|
+
.d-run.done:not(.thinking) .d-ok { display: grid; }
|
|
250
|
+
.d-client { display: grid; justify-items: center; gap: .05em; padding: .45em .75em .4em; border-radius: 12px 4px 12px 4px; text-align: center; }
|
|
251
|
+
.d-client b { font-weight: 750; }
|
|
252
|
+
.d-client small { margin: 0; font-weight: 600; }
|
|
253
|
+
.d-client.laptop { --bg: var(--c-laptop); }
|
|
254
|
+
.d-client.web { --bg: var(--c-person); }
|
|
255
|
+
.d-client.busy { --bg: var(--c-app); }
|
|
256
|
+
.d-client[data-d-client="l1"] { --x: 84; --y: 66; --r: -2deg; }
|
|
257
|
+
.d-client[data-d-client="l2"] { --x: 456; --y: 66; --r: 2deg; }
|
|
258
|
+
.d-client[data-d-client="web"] { --x: 270; --y: 470; --r: -1deg; }
|
|
259
|
+
.d-icon svg { width: 2em; height: 2em; }
|
|
260
|
+
.d-tools { position: absolute; left: calc(206 * 100% / 540); top: calc(62 * 100% / 520); display: grid; grid-template-columns: auto auto; align-items: center; gap: .35em .3em; padding: .35em .55em .45em; translate: -50% -50%; border: 1.5px dashed var(--sk-ink); border-radius: 6px; background: var(--c-cream); font: 700 .72em/1.3 var(--mono); white-space: nowrap; opacity: 0; }
|
|
261
|
+
.d-tools svg { width: 1.3em; height: 1.3em; }
|
|
262
|
+
.d-tools i { grid-column: 1 / -1; height: .5em; border: 1.2px solid var(--sk-ink); border-radius: 999px; background: linear-gradient(90deg, #6fcf9f calc(var(--done, 0) * 100%), #fff 0); }
|
|
263
|
+
.scene-dist .packet.dot { width: 1.25em; height: 1.25em; }
|
|
264
|
+
.d-task, .d-result { display: grid; place-items: center; width: 2.2em; height: 2.2em; padding: 0; }
|
|
265
|
+
.d-task { background: var(--c-agent); }
|
|
266
|
+
.d-result { color: var(--ok); background: #d9f3e6; }
|
|
267
|
+
.d-task svg, .d-result svg { width: 1.15em; height: 1.15em; stroke-width: 2.2; }
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
.team-section { padding-block: 96px 80px; border-bottom: 1px solid var(--line-soft); }
|
|
272
|
+
.team-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
|
|
273
|
+
.team-grid h2 { font-size: clamp(30px, 3.4vw, 44px); }
|
|
274
|
+
.team-grid .concept-intro { margin-top: 20px; color: var(--muted); font-size: 16px; }
|
|
275
|
+
.planned-item { display: flex; align-items: center; gap: 12px; margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--line); color: var(--muted); font-size: 16px; font-weight: 600; }
|
|
276
|
+
.planned-item .tag { background: var(--c-cream); border-style: dashed; color: var(--sk-ink); }
|
|
277
|
+
.team-cards { position: relative; display: grid; gap: 22px; padding: 10px 18px; }
|
|
278
|
+
.team-card { position: relative; padding: 18px 22px; color: var(--sk-ink); border: 1.5px solid var(--sk-ink); border-radius: 6px 18px 6px 18px; background: var(--bg); box-shadow: 4px 6px 0 #2334471a, 0 18px 30px -24px #12273799; rotate: var(--r); }
|
|
279
|
+
.team-card header { display: flex; align-items: center; gap: 12px; }
|
|
280
|
+
.team-card header strong { font-size: 20px; font-weight: 750; letter-spacing: -.03em; }
|
|
281
|
+
.team-card header .tag { margin-left: auto; }
|
|
282
|
+
.team-card ul { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 18px; margin: 12px 0 0; padding: 0; list-style: none; font-size: 14px; font-weight: 600; }
|
|
283
|
+
.team-card li { display: flex; align-items: center; gap: 8px; }
|
|
284
|
+
.team-card li svg { flex: none; width: 16px; height: 16px; fill: none; stroke: var(--ok); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
|
|
285
|
+
.team-card .glyph { width: 34px; height: 34px; font-size: 12px; }
|
|
286
|
+
.team-card .glyph svg { width: 19px; height: 19px; }
|
|
287
|
+
.tc-team { --bg: var(--c-agent); --r: -1.5deg; margin-right: 40px; }
|
|
288
|
+
.tc-client { --bg: var(--c-app); --r: 1.5deg; margin-left: 40px; border-radius: 18px 6px 18px 6px; }
|
|
289
|
+
.tc-planned { --bg: var(--c-cream); --r: -1deg; margin-inline: 20px; border-style: dashed; box-shadow: none; }
|
|
290
|
+
.tc-planned ul { grid-template-columns: 1fr; color: var(--muted); }
|
|
291
|
+
.tc-planned li svg { stroke: #8a8096; }
|
|
292
|
+
|
|
293
|
+
.clients-section { padding-block: 90px 96px; }
|
|
294
|
+
.clients-head { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: end; }
|
|
295
|
+
.clients-head h2 { font-size: clamp(30px, 3.4vw, 44px); }
|
|
296
|
+
.clients-head .feature-benefits { margin-top: 0; }
|
|
297
|
+
.shots { display: grid; grid-template-columns: 1.08fr 1fr; gap: 40px; margin-top: 44px; padding: 0 6px 8px; align-items: start; }
|
|
298
|
+
.shot { position: relative; margin: 0; rotate: var(--r); }
|
|
299
|
+
.shot img { display: block; width: 100%; height: auto; border: 1.5px solid var(--sk-ink); border-radius: 12px; background: #fff; box-shadow: 6px 8px 0 #2334471a, 0 30px 50px -34px #12273799; }
|
|
300
|
+
.shot figcaption { position: absolute; left: -10px; top: -18px; display: flex; align-items: center; gap: 9px; margin: 0; padding: 8px 14px; color: var(--sk-ink); border: 1.5px solid var(--sk-ink); border-radius: 5px 14px 5px 14px; background: var(--bg); box-shadow: 3px 4px 0 #2334471f; font-size: 15px; font-weight: 750; letter-spacing: -.02em; rotate: -3deg; }
|
|
301
|
+
.shot figcaption svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
|
|
302
|
+
.shot-web { --r: -.6deg; --bg: var(--c-laptop); }
|
|
303
|
+
.shot-code { --r: .8deg; --bg: var(--c-coord); margin-top: 36px; }
|
|
304
|
+
.shots-note { margin-top: 18px; color: var(--muted); font-size: 12px; }
|
|
305
|
+
|
|
306
|
+
.plugins-section { padding-block: 48px; border-bottom: 1px solid var(--line-soft); }
|
|
307
|
+
.plugins-grid { display: grid; gap: 40px; }
|
|
308
|
+
.plugins-grid > .feature-copy { display: grid; grid-template-columns: 1fr 1fr; column-gap: 72px; align-items: start; }
|
|
309
|
+
.plugins-grid > .feature-copy > .feature-benefits { grid-column: 2; grid-row: 1 / span 3; align-self: center; margin-top: 0; }
|
|
310
|
+
.plugins-grid h2 { font-size: clamp(30px, 3.4vw, 44px); }
|
|
311
|
+
.plugins-grid .feature-copy > .plugins-note { margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--line); font-size: 16px; }
|
|
312
|
+
.plugins-links { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 20px; }
|
|
313
|
+
.plugin-art { --u: calc((100cqi - 40px) / 1120); container-type: inline-size; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding: 18px 10px 10px 12px; }
|
|
314
|
+
.pa-panel { position: relative; margin: 0; aspect-ratio: 560 / 360; color: var(--sk-ink); border: 1.5px solid var(--sk-ink); border-radius: 22px; background: radial-gradient(#23344716 1.1px, transparent 1.5px) 0 0 / 20px 20px, linear-gradient(150deg, #eef6ff, #fff7e4 80%); box-shadow: 6px 8px 0 #2334471a, 0 30px 50px -34px #12273799; font-size: clamp(10.5px, calc(13 * var(--u)), 14px); }
|
|
315
|
+
.pa-panel[data-pa="profile"] { background: radial-gradient(#23344716 1.1px, transparent 1.5px) 0 0 / 20px 20px, linear-gradient(150deg, #f5efff, #e8f7f1 80%); }
|
|
316
|
+
.pa-panel > figcaption { position: absolute; left: -12px; top: 0; translate: 0 -50%; z-index: 4; padding: 6px 15px 7px; border: 1.5px solid var(--sk-ink); border-radius: 3px 3px 12px 3px; background: var(--c-script); box-shadow: 3px 4px 0 #23344726; font-size: 14px; font-weight: 750; line-height: 1.3; letter-spacing: -.01em; }
|
|
317
|
+
.pa-panel[data-pa="profile"] > figcaption { background: var(--c-coord); }
|
|
318
|
+
.pa-lines { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; overflow: visible; }
|
|
319
|
+
.pa-lines path { fill: none; stroke: var(--sk-ink); stroke-width: 1.6; stroke-dasharray: 4 5; stroke-linecap: round; opacity: .45; }
|
|
320
|
+
.pa-lines .pa-eject, .pa-lines .pa-eject-tip { stroke-width: 2; stroke-dasharray: none; stroke-linejoin: round; opacity: .6; }
|
|
321
|
+
.pa-lines .pa-eject { stroke-dasharray: 6 6; }
|
|
322
|
+
.pa-base, .pp-server { position: absolute; color: #fff; border: 2px solid var(--sk-ink); border-radius: 14px; background: linear-gradient(#34506c 0 38%, var(--sk-ink) 38%); box-shadow: 5px 6px 0 #2334472a, 0 20px 30px -20px #12273799; }
|
|
323
|
+
.pa-base { left: calc(48 * var(--u)); top: calc(262 * var(--u)); width: calc(340 * var(--u)); height: calc(64 * var(--u)); }
|
|
324
|
+
.pa-slot { position: absolute; left: calc(64 * var(--u)); top: calc(6 * var(--u)); width: calc(108 * var(--u)); height: calc(14 * var(--u)); border-radius: 4px; background: #0f1a26; box-shadow: inset 0 2px 0 #000a; }
|
|
325
|
+
.pa-slot-2 { left: calc(194 * var(--u)); }
|
|
326
|
+
.pa-slot:first-child::after { content: ''; position: absolute; inset: auto -2px calc(-1 * var(--u)) -2px; z-index: 3; height: calc(8 * var(--u)); border-top: 1.5px solid #0f1a26; border-radius: 0 0 4px 4px; background: #34506c; }
|
|
327
|
+
.pa-brand { position: absolute; left: calc(16 * var(--u)); top: 69%; translate: 0 -50%; display: flex; align-items: center; gap: .45em; font-weight: 750; letter-spacing: -.02em; }
|
|
328
|
+
.pa-brand svg { width: 1.9em; height: 1.9em; }
|
|
329
|
+
.pa-leds { position: absolute; right: calc(16 * var(--u)); top: 69%; translate: 0 -50%; display: flex; gap: .4em; }
|
|
330
|
+
.pa-leds i { width: .6em; height: .6em; border-radius: 50%; background: #6fcf9f; box-shadow: 0 0 0 3px #6fcf9f33; }
|
|
331
|
+
.pa-leds i + i { background: #4a6178; box-shadow: none; }
|
|
332
|
+
.pa-cart { position: absolute; width: calc(96 * var(--u)); height: calc(128 * var(--u)); border: 2px solid var(--sk-ink); border-radius: 10px 10px 3px 3px; background: var(--c-agent); box-shadow: 4px 5px 0 #2334472a; }
|
|
333
|
+
.pa-cart-on { left: calc(118 * var(--u)); top: calc(147 * var(--u)); z-index: 2; }
|
|
334
|
+
.pa-cart-off { left: calc(418 * var(--u)); top: calc(96 * var(--u)); z-index: 2; transform: translate(calc(var(--dx, 0) * var(--u)), calc(var(--dy, 0) * var(--u))); border-style: dashed; background: #e6e4ec; box-shadow: none; }
|
|
335
|
+
.pa-grip { position: absolute; left: calc(20 * var(--u)); right: calc(20 * var(--u)); top: calc(9 * var(--u)); height: calc(16 * var(--u)); background: repeating-linear-gradient(90deg, #23344780 0 1.5px, transparent 1.5px calc(8 * var(--u))); }
|
|
336
|
+
.pa-label { position: absolute; left: calc(9 * var(--u)); right: calc(9 * var(--u)); top: calc(32 * var(--u)); bottom: calc(14 * var(--u)); display: grid; align-content: start; gap: .35em; padding: .45em .5em; border: 1.5px solid var(--sk-ink); border-radius: 5px; background: linear-gradient(var(--c-script) 0 calc(10 * var(--u)), #fff 0); font: 700 .78em/1 var(--mono); padding-top: calc(16 * var(--u)); }
|
|
337
|
+
.pa-cart-on .pa-label::after { content: ''; height: 3.4em; background: repeating-linear-gradient(#c9d6e4 0 3px, transparent 3px 9px); }
|
|
338
|
+
.pa-cart-off .pa-label { color: #8a8096; border-color: #8a8096; background: linear-gradient(#d4d0dc 0 calc(10 * var(--u)), #f7f6f9 0); }
|
|
339
|
+
.pa-cart-off .pa-grip { opacity: .5; }
|
|
340
|
+
.pa-ghosts { display: grid; grid-template-columns: 1fr 1fr; gap: .35em .3em; margin-top: .2em; }
|
|
341
|
+
.pa-ghosts i { height: 1.2em; border: 1.2px dashed #9a93a6; border-radius: 999px; background: #ebe8f0; }
|
|
342
|
+
.pa-shadow { position: absolute; left: calc(416 * var(--u)); top: calc(238 * var(--u)); width: calc(100 * var(--u)); height: calc(18 * var(--u)); border-radius: 50%; background: radial-gradient(closest-side, #23344730, transparent); }
|
|
343
|
+
.pa-token { --bg: #fff; position: absolute; left: calc(var(--x) * var(--u)); top: calc(var(--y) * var(--u)); z-index: 4; translate: -50% -50%; padding: .35em .8em; border: 1.5px solid var(--sk-ink); border-radius: 999px; background: var(--bg); box-shadow: 2px 3px 0 #2334472e; font: 700 1.05em/1.2 var(--mono); white-space: nowrap; }
|
|
344
|
+
.t-tools { --x: 64; --y: 142; --bg: var(--c-script); }
|
|
345
|
+
.t-skills { --x: 104; --y: 62; --bg: var(--c-app); }
|
|
346
|
+
.t-prompts { --x: 250; --y: 54; --bg: var(--c-person); }
|
|
347
|
+
.t-ui { --x: 290; --y: 134; --bg: var(--c-pink); }
|
|
348
|
+
.pp-server { left: calc(40 * var(--u)); top: calc(221 * var(--u)); width: calc(232 * var(--u)); height: calc(62 * var(--u)); }
|
|
349
|
+
.pp-card { position: absolute; left: calc(62 * var(--u)); bottom: calc(125 * var(--u)); z-index: 3; width: calc(188 * var(--u)); border: 2px solid var(--sk-ink); border-radius: 6px 16px 6px 16px; background: var(--c-cream); box-shadow: 4px 6px 0 #2334472a, 0 18px 30px -22px #12273799; overflow: hidden; }
|
|
350
|
+
.pp-card header { display: flex; align-items: center; gap: .45em; padding: .45em .75em; border-bottom: 1.5px solid var(--sk-ink); background: var(--c-coord); font: 700 .8em/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
|
|
351
|
+
.pp-card header svg { width: 1.3em; height: 1.3em; fill: #fff; stroke: var(--sk-ink); stroke-width: 2; stroke-linecap: round; }
|
|
352
|
+
.pp-card ul { display: grid; gap: .4em; margin: 0; padding: .65em .75em .75em; list-style: none; font-weight: 650; line-height: 1.3; }
|
|
353
|
+
.pp-card li { display: flex; align-items: center; gap: .55em; }
|
|
354
|
+
.pp-card li::before { content: ''; flex: none; width: 1.1em; height: 1.1em; border: 1.5px solid var(--sk-ink); border-radius: 4px; background: var(--ok) 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.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 80% no-repeat; }
|
|
355
|
+
.pp-card li.off { color: #8a8096; }
|
|
356
|
+
.pp-card li.off::before { border-color: #8a8096; background: #fff; }
|
|
357
|
+
.pp-card li:nth-child(4) { margin-top: .15em; padding-top: .45em; border-top: 1.5px dashed #c9c4d5; }
|
|
358
|
+
.pp-laptop { position: absolute; left: calc(var(--x) * var(--u)); top: calc(var(--y) * var(--u)); translate: -50% -50%; width: calc(104 * var(--u)); height: calc(64 * var(--u)); border: 2px solid var(--sk-ink); border-radius: 8px 8px 3px 3px; background: var(--c-laptop); box-shadow: 3px 4px 0 #2334471f; }
|
|
359
|
+
.pp-laptop::after { content: ''; position: absolute; left: calc(-12 * var(--u)); right: calc(-12 * var(--u)); top: 100%; height: calc(10 * var(--u)); border: 2px solid var(--sk-ink); border-radius: 2px 2px 9px 9px; background: #eef2f7; box-shadow: 3px 4px 0 #2334471f; }
|
|
360
|
+
.l1 { --x: 440; --y: 68; }
|
|
361
|
+
.l2 { --x: 440; --y: 180; }
|
|
362
|
+
.l3 { --x: 440; --y: 292; }
|
|
363
|
+
.pp-copy { position: absolute; left: calc(var(--x) * var(--u)); top: calc(var(--y) * var(--u)); z-index: 2; translate: -50% -50%; display: grid; align-content: start; gap: calc(4 * var(--u)); width: calc(50 * var(--u)); height: calc(46 * var(--u)); padding-bottom: calc(6 * var(--u)); border: 1.5px solid var(--sk-ink); border-radius: 3px 8px 3px 8px; background: var(--c-cream); overflow: hidden; }
|
|
364
|
+
.pp-copy b { height: calc(9 * var(--u)); border-bottom: 1.5px solid var(--sk-ink); background: var(--c-coord); }
|
|
365
|
+
.pp-copy i { height: calc(5 * var(--u)); margin-inline: calc(6 * var(--u)); background: linear-gradient(90deg, var(--ok) 0 calc(6 * var(--u)), transparent 0 calc(10 * var(--u)), #c9c4d5 0); }
|
|
366
|
+
.c1 { --x: 440; --y: 68; }
|
|
367
|
+
.c2 { --x: 440; --y: 180; }
|
|
368
|
+
.c3 { --x: 440; --y: 292; }
|
|
369
|
+
@media (max-width: 1000px) { .plugin-art { --u: calc(100cqi / 560); grid-template-columns: 1fr; gap: 52px; width: min(100%, 620px); justify-self: center; } }
|
|
370
|
+
@media (max-width: 800px) { .plugins-grid > .feature-copy { display: block; } .plugins-grid > .feature-copy > .feature-benefits { margin-top: 20px; } }
|
|
371
|
+
@media (max-width: 640px) { .plugin-art { gap: 44px; padding-left: 10px; } .pa-panel { font-size: clamp(8.5px, calc(13 * var(--u)), 14px); } .pa-panel > figcaption { left: -8px; padding: 3px 10px 4px; font-size: 12.5px; } }
|
|
372
|
+
.pa-token, .pp-copy { transform: translate(calc(var(--dx, 0) * var(--u)), calc(var(--dy, 0) * var(--u))) scale(var(--s, 1)); }
|
|
373
|
+
|
|
374
|
+
@media (max-width: 1100px) {
|
|
375
|
+
.hero-board { padding: 80px 30px 60px; }
|
|
376
|
+
.feature-stickers .feature-sticker { inset: auto; }
|
|
377
|
+
.team-grid, .clients-head, .plugins-grid { gap: 40px; }
|
|
378
|
+
}
|
|
379
|
+
@media (max-width: 959px) {
|
|
380
|
+
.story-scene.v2 { min-height: 0; }
|
|
381
|
+
}
|
|
382
|
+
@media (max-width: 800px) {
|
|
383
|
+
.team-grid, .clients-head, .plugins-grid { grid-template-columns: 1fr; }
|
|
384
|
+
.plugin-art { order: 0; }
|
|
385
|
+
.shots { grid-template-columns: 1fr; gap: 44px; }
|
|
386
|
+
.shot-code { margin-top: 0; }
|
|
387
|
+
}
|
|
388
|
+
@media (max-width: 700px) {
|
|
389
|
+
.hero-board { padding: 45px 0 36px; }
|
|
390
|
+
.hero h1 { font-size: clamp(32px, 8.4vw, 44px); }
|
|
391
|
+
.feature-sticker strong { font-size: 14px; line-height: 1.2; }
|
|
392
|
+
.feature-stickers { gap: 10px 8px; }
|
|
393
|
+
.feature-stickers .feature-sticker { width: calc(50% - 4px); padding: 9px 10px; gap: 8px; }
|
|
394
|
+
.feature-sticker svg { width: 22px; height: 22px; flex-basis: 22px; }
|
|
395
|
+
.feature-sticker .sticker-symbol { font-size: 16px; }
|
|
396
|
+
.story-scene.v2 { padding: 50px 12px 14px; }
|
|
397
|
+
.story-scene.v2 .scene-heading { inset: 18px 16px auto; font-size: 9px; }
|
|
398
|
+
.story-scene.v2 > figcaption { font-size: 12px; }
|
|
399
|
+
.team-section, .clients-section, .plugins-section { padding-block: 56px; }
|
|
400
|
+
.team-cards { padding: 10px 4px; }
|
|
401
|
+
.tc-team { margin-right: 10px; }
|
|
402
|
+
.tc-client { margin-left: 10px; }
|
|
403
|
+
.tc-planned { margin-inline: 4px; }
|
|
404
|
+
.team-card ul { grid-template-columns: 1fr; }
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
#setups, [data-story-scene="setups"] { --story-index: 0; }
|
|
408
|
+
#agents, [data-story-scene="agents"] { --story-index: 1; }
|
|
409
|
+
#ui, [data-story-scene="ui"] { --story-index: 2; }
|
|
410
|
+
#typescript, [data-story-scene="typescript"] { --story-index: 3; }
|
|
411
|
+
#events, [data-story-scene="events"] { --story-index: 4; }
|
|
412
|
+
#workflows, [data-story-scene="workflows"] { --story-index: 5; }
|
|
413
|
+
#distributed, [data-story-scene="distributed"] { --story-index: 6; }
|
|
414
|
+
.feature-story[data-pinned] .story-step { min-height: 500svh; align-items: flex-start; }
|
|
415
|
+
.feature-story[data-pinned] .story-step .feature-copy { position: sticky; top: calc(var(--header-height, 80px) + 90px); }
|
|
416
|
+
.feature-benefits li.wink { padding-left: 0; color: var(--muted); font-weight: 500; font-style: italic; }
|
|
417
|
+
.feature-benefits li.wink::before { display: none; }
|
|
418
|
+
.feature-story[data-pinned] #agents.story-step { min-height: 450svh; }
|
|
419
|
+
.feature-story[data-pinned] #setups.story-step { min-height: 700svh; }
|
|
420
|
+
.feature-story[data-pinned] #distributed.story-step { min-height: 441svh; }
|
|
421
|
+
.feature-story[data-pinned] #ui.story-step { min-height: 900svh; }
|
|
422
|
+
.hero { display: flex; align-items: center; min-height: calc(100svh - var(--header-height, 80px)); padding: 48px 0; }
|
|
423
|
+
.hero-board { width: min(1120px, calc(100% - 64px)); }
|
|
424
|
+
@media (min-width: 1101px) { .hero-board { height: min(720px, calc(100svh - var(--header-height, 80px) - 96px)); min-height: 560px; display: flex; flex-direction: column; justify-content: center; padding-block: 110px 140px; } }
|
|
425
|
+
.story-scene.v2 { padding-top: 24px; }
|
|
426
|
+
.story-scene.v2 { padding-top: 70px; }
|
|
427
|
+
.story-scene .scene-heading { inset: 26px 30px auto; font: 650 19px/1.3 Inter, system-ui, -apple-system, sans-serif; letter-spacing: -.02em; text-transform: none; color: var(--sk-ink, #233447); }
|
|
428
|
+
.story-scene > figcaption { font-size: 16px; line-height: 1.5; color: var(--sk-ink, #233447); }
|
|
429
|
+
.hero-logo { display: block; width: clamp(84px, 9vw, 128px); height: auto; margin: 0 auto 22px; color: #233447; filter: drop-shadow(4px 6px 0 #2334471a); }
|
|
430
|
+
.hero-aura::before { top: calc(50% - 420px); }
|
|
431
|
+
@media (min-width: 1101px) { .hero-board { height: min(820px, calc(100svh - var(--header-height, 80px) - 96px)); min-height: 640px; } }
|
|
432
|
+
.feature-story .story-scene .scene-heading { inset: 24px 30px auto; font: 750 clamp(22px, 2vw, 28px)/1.2 Inter, system-ui, -apple-system, sans-serif; letter-spacing: -.03em; color: var(--sk-ink, #233447); }
|
|
433
|
+
.feature-story .story-scene > figcaption { font-size: clamp(16px, 1.3vw, 19px); font-weight: 550; line-height: 1.45; color: var(--sk-ink, #233447); }
|
|
434
|
+
.feature-story .story-scene.v2 { padding-top: 78px; }
|
|
435
|
+
.hero-actions { justify-content: center; margin-top: 34px; }
|
|
436
|
+
.hero-actions .button { gap: 12px; min-height: 52px; padding: 12px 22px; font-size: 16px; border-width: 1.5px; box-shadow: 4px 5px 0 #2233471f; }
|
|
437
|
+
.alpha-note { display: grid; gap: 14px; justify-items: start; margin: 40px 0 56px; padding: 32px 36px; border: 1.5px solid #233447; border-radius: 18px 6px 18px 6px; background: #fff4c7; box-shadow: 5px 7px 0 #2334471a; transform: rotate(-.6deg); }
|
|
438
|
+
.alpha-note h2 { font-size: clamp(24px, 2.4vw, 32px); }
|
|
439
|
+
.alpha-note p { font-size: 17px; color: var(--ink); }
|
|
440
|
+
.alpha-note .button { gap: 10px; }
|
|
441
|
+
@media (max-width: 640px) { .alpha-note { padding: 24px 20px; transform: none; } }
|
|
442
|
+
@media (min-width: 1101px) and (max-height: 780px) { .hero { padding-block: 16px; } .hero-board { min-height: 0; height: calc(100svh - var(--header-height, 80px) - 32px); padding-block: 96px 118px; } .hero-logo { width: 72px; margin-bottom: 12px; } .hero-actions { margin-top: 22px; } }
|
|
443
|
+
.sticker-selfhost { --sticker-angle: 2deg; background: #d9f2c4; }
|
|
444
|
+
.feature-story[data-pinned] .story-stage { top: calc(var(--header-height, 80px) + 56px); }
|
|
445
|
+
html[data-panels="off"] .feature-story[data-pinned] .story-scenes { border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
|
|
446
|
+
html[data-panels="off"] .story-scene, html[data-panels="off"] .story-scene.v2 { background: transparent !important; border-color: transparent !important; box-shadow: none !important; }
|
|
447
|
+
|
|
448
|
+
.remote-section { padding-block: 96px; border-bottom: 1px solid var(--line-soft); }
|
|
449
|
+
.remote-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 72px; align-items: center; }
|
|
450
|
+
.remote-grid h2 { font-size: clamp(30px, 3.4vw, 44px); }
|
|
451
|
+
.remote-art { display: grid; gap: 38px; min-width: 0; padding: 10px 14px 14px 4px; color: var(--sk-ink); }
|
|
452
|
+
.rm-term { min-width: 0; max-width: 100%; rotate: -1deg; color: #e7eef7; border: 2px solid var(--sk-ink); border-radius: 12px; background: #1d2b3c; box-shadow: 5px 7px 0 #2334472e, 0 20px 36px -20px #12273799; overflow: hidden; }
|
|
453
|
+
.rm-bar { display: flex; align-items: center; gap: 6px; padding: 9px 12px; color: #9fb6cd; border-bottom: 1.5px solid var(--sk-ink); background: #28405a; font: 600 12px/1.2 var(--mono); }
|
|
454
|
+
.rm-bar i { width: 10px; height: 10px; border-radius: 50%; background: #ff8f7a; }
|
|
455
|
+
.rm-bar i:nth-child(2) { background: #ffd166; }
|
|
456
|
+
.rm-bar i:nth-child(3) { background: #6fcf9f; }
|
|
457
|
+
.rm-bar span { margin-left: 8px; }
|
|
458
|
+
.rm-term pre { margin: 0; padding: 16px 18px 18px; font: 13.5px/1.7 var(--mono); white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
459
|
+
.rm-cmd { color: #fff; font-weight: 700; overflow-wrap: anywhere; word-break: break-word; }
|
|
460
|
+
.rm-cmd b { margin-right: .35em; color: #6fcf9f; }
|
|
461
|
+
.rm-call { color: var(--c-script); }
|
|
462
|
+
.rm-ok { color: var(--c-app); }
|
|
463
|
+
.rm-dim { color: #8aa2ba; }
|
|
464
|
+
.rm-loop { display: flex; align-items: center; }
|
|
465
|
+
.rm-agent, .rm-host { display: flex; flex: none; align-items: center; gap: 10px; padding: 11px 14px; border: 2px solid var(--sk-ink); box-shadow: 4px 6px 0 #2334471a, 0 18px 30px -24px #12273799; }
|
|
466
|
+
.rm-agent { rotate: -2deg; border-radius: 6px 16px 6px 16px; background: var(--c-agent); }
|
|
467
|
+
.rm-agent strong, .rm-host strong { font-size: 15px; font-weight: 750; letter-spacing: -.02em; white-space: nowrap; }
|
|
468
|
+
.rm-agent .glyph svg { stroke-width: 2.4; }
|
|
469
|
+
.rm-host { rotate: 1.5deg; color: #fff; border-radius: 14px; background: linear-gradient(#34506c 0 38%, var(--sk-ink) 38%); }
|
|
470
|
+
.rm-host > svg { width: 30px; height: 30px; }
|
|
471
|
+
.rm-leds { display: flex; gap: 5px; margin-left: 4px; }
|
|
472
|
+
.rm-leds i { width: 8px; height: 8px; border-radius: 50%; background: #6fcf9f; box-shadow: 0 0 0 3px #6fcf9f33; }
|
|
473
|
+
.rm-leds i + i { background: #4a6178; box-shadow: none; }
|
|
474
|
+
.rm-wires { display: grid; flex: 1; gap: 50px; min-width: 150px; padding-inline: 10px; }
|
|
475
|
+
.rm-wire { position: relative; height: 2px; background: var(--sk-ink); }
|
|
476
|
+
.rm-wire.back { background: repeating-linear-gradient(90deg, var(--sk-ink) 0 6px, transparent 6px 11px); }
|
|
477
|
+
.rm-wire::after { content: ""; position: absolute; top: 50%; right: 0; width: 8px; height: 8px; border-top: 2px solid var(--sk-ink); border-right: 2px solid var(--sk-ink); translate: 0 -50%; rotate: 45deg; }
|
|
478
|
+
.rm-wire.back::after { right: auto; left: 0; rotate: -135deg; }
|
|
479
|
+
.rm-wire em { position: absolute; left: 50%; bottom: calc(100% + 8px); translate: -50% 0; padding: .25em .7em; border: 1.5px solid var(--sk-ink); border-radius: 999px; background: var(--c-script); box-shadow: 2px 3px 0 #2334472e; font: normal 700 11.5px/1.2 var(--mono); white-space: nowrap; }
|
|
480
|
+
.rm-wire.back em { top: calc(100% + 8px); bottom: auto; background: var(--c-app); }
|
|
481
|
+
|
|
482
|
+
.ext-section { padding-block: 90px 96px; border-top: 1px solid var(--line-soft); }
|
|
483
|
+
.ext-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 28px; }
|
|
484
|
+
.ext-head h2 { font-size: clamp(30px, 3.4vw, 44px); }
|
|
485
|
+
.ext-head p { flex: 1; margin: 0; color: var(--muted); font-size: 17px; }
|
|
486
|
+
.ext-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 18px; margin: 40px 0 0; padding: 0; list-style: none; }
|
|
487
|
+
.ext-card { --bg: var(--c-agent); display: flex; align-items: flex-start; gap: 13px; min-width: 0; padding: 14px 16px; color: var(--sk-ink); border: 1.5px solid var(--sk-ink); border-radius: 5px 14px 5px 14px; background: #fff; box-shadow: 3px 4px 0 #2334471a; }
|
|
488
|
+
.ext-card:nth-child(5n+2) { --bg: var(--c-app); }
|
|
489
|
+
.ext-card:nth-child(5n+3) { --bg: var(--c-script); }
|
|
490
|
+
.ext-card:nth-child(5n+4) { --bg: var(--c-person); }
|
|
491
|
+
.ext-card:nth-child(5n+5) { --bg: var(--c-coord); }
|
|
492
|
+
.ext-card .glyph { width: 36px; height: 36px; background: var(--bg); font-size: 12px; }
|
|
493
|
+
.ext-card .glyph svg { width: 20px; height: 20px; }
|
|
494
|
+
.ext-card > div { min-width: 0; }
|
|
495
|
+
.ext-card strong { display: block; font-size: 15px; font-weight: 750; letter-spacing: -.02em; line-height: 1.3; }
|
|
496
|
+
.ext-card p { margin: 3px 0 0; color: var(--muted); font-size: 13.5px; line-height: 1.45; }
|
|
497
|
+
.ext-card small { display: block; margin-top: 6px; color: #7a8796; font: 11px/1.3 var(--mono); overflow-wrap: anywhere; }
|
|
498
|
+
|
|
499
|
+
@media (max-width: 1100px) {
|
|
500
|
+
.remote-grid { gap: 40px; }
|
|
501
|
+
}
|
|
502
|
+
@media (max-width: 800px) {
|
|
503
|
+
.remote-grid { grid-template-columns: minmax(0, 1fr); }
|
|
504
|
+
.ext-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
505
|
+
}
|
|
506
|
+
@media (max-width: 700px) {
|
|
507
|
+
.remote-section, .ext-section { padding-block: 56px; }
|
|
508
|
+
.rm-term pre { padding: 12px 14px 14px; font-size: 12px; word-break: break-word; }
|
|
509
|
+
.rm-loop { flex-direction: column; }
|
|
510
|
+
.rm-wires { display: flex; flex: none; justify-content: center; gap: 44px; height: 92px; min-width: 0; padding: 14px 0; }
|
|
511
|
+
.rm-wire { align-self: stretch; width: 2px; height: auto; }
|
|
512
|
+
.rm-wire em { left: auto; right: calc(100% + 12px); top: 50%; bottom: auto; translate: 0 -50%; }
|
|
513
|
+
.rm-wire.back em { left: calc(100% + 12px); right: auto; }
|
|
514
|
+
.rm-wire.back { background: repeating-linear-gradient(180deg, var(--sk-ink) 0 6px, transparent 6px 11px); }
|
|
515
|
+
.rm-wire::after { top: auto; right: auto; bottom: 0; left: 50%; translate: -50% 0; rotate: 135deg; }
|
|
516
|
+
.rm-wire.back::after { top: 0; bottom: auto; rotate: -45deg; }
|
|
517
|
+
.ext-head p { flex-basis: 100%; }
|
|
518
|
+
.ext-grid { gap: 12px; margin-top: 28px; }
|
|
519
|
+
.ext-card { flex-direction: column; gap: 9px; padding: 12px; }
|
|
520
|
+
.ext-card p { font-size: 13px; }
|
|
521
|
+
}
|
|
522
|
+
.feature-story[data-pinned] .story-scenes { inset: 0; }
|
|
523
|
+
.feature-story[data-pinned] .story-stage { top: calc(var(--header-height, 80px) + 84px); }
|
|
524
|
+
.feature-story[data-pinned] .story-progress { display: none; }
|
|
525
|
+
.feature-story[data-pinned] .story-nav { position: fixed; z-index: 4; top: var(--header-height, 80px); bottom: auto; left: 0; right: 0; display: flex; justify-content: center; gap: 8px; padding: 10px 16px; background: #ffffffeb; backdrop-filter: blur(14px); border-bottom: 1px solid #e3ecf2; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .2s, transform .2s, visibility .2s; }
|
|
526
|
+
html.story-active .feature-story[data-pinned] .story-nav { opacity: 1; visibility: visible; transform: none; }
|
|
527
|
+
.feature-story[data-pinned] .story-nav a { min-height: 36px; padding: 6px 16px; font-size: 14px; font-weight: 600; color: #34303d; border-radius: 999px; }
|
|
528
|
+
.feature-story[data-pinned] .story-nav a[aria-current] { color: #fff; background: #233447; border-color: #233447; }
|
|
529
|
+
.feature-story[data-pinned] .story-nav { padding: 6px 16px; }
|
|
530
|
+
.feature-story[data-pinned] .story-nav a { min-height: 32px; padding: 4px 16px; }
|
|
531
|
+
.feature-story[data-pinned] .story-stage { top: calc(var(--header-height, 80px) + 60px); }
|
|
532
|
+
.feature-story .story-scene .scene-heading { justify-content: center; text-align: center; }
|
|
533
|
+
.feature-story[data-pinned] { --stage-top: calc(var(--header-height, 80px) + 60px + max(0px, (100svh - var(--header-height, 80px) - 60px - var(--preview-stage-height, 650px)) / 2)); }
|
|
534
|
+
.feature-story[data-pinned] .story-stage { top: var(--stage-top); }
|
|
535
|
+
.feature-story[data-pinned] .story-step .feature-copy { top: calc(var(--stage-top) + 40px); }
|
|
536
|
+
.feature-story[data-pinned] .story-step .feature-copy { top: calc(var(--stage-top) + max(40px, var(--preview-stage-height, 650px) / 2 - 200px)); }
|
|
537
|
+
.tc-team, .tc-client, .tc-planned { --r: 0deg; margin-inline: 0; }
|
|
538
|
+
.alpha-note { transform: none; }
|
|
539
|
+
html { scroll-padding-top: calc(var(--header-height, 80px) + 64px); }
|
|
540
|
+
.subnav { position: sticky; z-index: 19; top: var(--header-height, 80px); display: flex; justify-content: center; gap: 6px; padding: 7px 16px; overflow-x: auto; scrollbar-width: none; background: #ffffffeb; backdrop-filter: blur(14px); border-bottom: 1px solid #e3ecf2; }
|
|
541
|
+
.subnav::-webkit-scrollbar { display: none; }
|
|
542
|
+
.subnav a { flex: none; display: inline-flex; align-items: center; min-height: 32px; padding: 4px 14px; border: 1px solid transparent; border-radius: 999px; color: #34303d; font: 600 14px/1 Inter, system-ui, -apple-system, sans-serif; text-decoration: none; white-space: nowrap; }
|
|
543
|
+
.subnav a:hover { background: #eef4fb; }
|
|
544
|
+
.subnav a[aria-current] { color: #fff; background: #233447; border-color: #233447; }
|
|
545
|
+
.feature-story .story-nav, .feature-story[data-pinned] .story-nav { display: none !important; }
|
|
546
|
+
@media (max-width: 1100px) { .subnav { justify-content: flex-start; } }
|
|
547
|
+
@media (max-width: 640px) { .subnav { padding: 6px 10px; } .subnav a { min-height: 30px; padding: 4px 11px; font-size: 13px; } }
|
|
548
|
+
:root { --subnav-h: 47px; }
|
|
549
|
+
.hero { min-height: calc(100svh - var(--header-height, 80px) - var(--subnav-h)); }
|
|
550
|
+
@media (min-width: 1101px) { .hero-board { height: min(820px, calc(100svh - var(--header-height, 80px) - var(--subnav-h) - 96px)); } }
|
|
551
|
+
@media (min-width: 1101px) and (max-height: 780px) { .hero-board { height: calc(100svh - var(--header-height, 80px) - var(--subnav-h) - 32px); } }
|
|
552
|
+
@media (max-width: 640px) { :root { --subnav-h: 43px; } }
|
|
553
|
+
@media (min-width: 960px) and (min-height: 700px) {
|
|
554
|
+
html { scroll-snap-type: y proximity; }
|
|
555
|
+
#team, #plugins, #remote, #clients, #extensions { display: flex; flex-direction: column; justify-content: center; min-height: calc(100svh - var(--header-height, 80px) - var(--subnav-h)); scroll-snap-align: start; scroll-snap-stop: always; }
|
|
556
|
+
}
|
|
557
|
+
.start-cta { display: grid; justify-items: center; gap: 16px; margin: 72px 0 24px; padding: 56px 32px; text-align: center; border: 1.5px solid #233447; border-radius: 20px; background: linear-gradient(145deg, #f4f9ff, #e8f1fb); box-shadow: 5px 7px 0 #2334471a; }
|
|
558
|
+
.start-cta h2 { font-size: clamp(30px, 3.4vw, 44px); }
|
|
559
|
+
.start-cta p { max-width: 560px; font-size: 18px; color: var(--muted); }
|
|
560
|
+
.start-cta .actions { justify-content: center; margin-top: 8px; }
|
|
561
|
+
.start-cta .button { gap: 12px; min-height: 52px; padding: 12px 22px; font-size: 16px; }
|
|
562
|
+
@media (max-width: 640px) { .start-cta { margin-top: 40px; padding: 36px 20px; } .start-cta p { font-size: 16px; } }
|
|
563
|
+
.subnav { gap: 2px; padding-block: 6px; }
|
|
564
|
+
.subnav a { min-height: 28px; padding: 3px 11px; font-size: 12.5px; font-weight: 550; }
|
|
565
|
+
@media (max-width: 640px) { .subnav a { min-height: 26px; padding: 3px 9px; font-size: 12px; } }
|
|
566
|
+
:root { --subnav-h: 41px; }
|
|
567
|
+
@media (max-width: 640px) { :root { --subnav-h: 39px; } }
|
|
568
|
+
.subnav { border-bottom: 0; }
|
|
569
|
+
.subnav-inner { display: inline-flex; flex: none; gap: 2px; margin-inline: auto; padding: 0 22px 6px; border-bottom: 1px solid #dfe7ef; }
|
|
570
|
+
.subnav { padding-bottom: 0; }
|
|
571
|
+
@media (max-width: 1100px) { .subnav-inner { margin-inline: 0; } }
|
|
572
|
+
.closing { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; padding: 72px 0 48px; }
|
|
573
|
+
.closing .start-cta, .closing .alpha-note { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; transform: none; justify-items: start; text-align: left; }
|
|
574
|
+
.closing .start-cta .actions { justify-content: flex-start; }
|
|
575
|
+
.closing h2 { font-size: clamp(26px, 2.6vw, 34px); }
|
|
576
|
+
.closing p { font-size: 17px; color: var(--muted); }
|
|
577
|
+
.closing .start-cta + .alpha-note { padding-left: 64px; border-left: 1px solid var(--line-soft); }
|
|
578
|
+
@media (max-width: 860px) { .closing { grid-template-columns: 1fr; gap: 40px; } .closing .start-cta + .alpha-note { padding: 40px 0 0; border-left: 0; border-top: 1px solid var(--line-soft); } }
|
|
579
|
+
.site-footer { margin-top: 24px; padding: 72px 0 32px; background: #172c41; color: #b8c9d9; }
|
|
580
|
+
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid #2d4560; }
|
|
581
|
+
.footer-brand { display: inline-flex; align-items: center; gap: 12px; color: #fff; font-size: 24px; font-weight: 750; letter-spacing: -.04em; text-decoration: none; }
|
|
582
|
+
.footer-logo { width: 40px; height: 40px; color: #fff; }
|
|
583
|
+
.footer-about p { max-width: 300px; margin-top: 14px; font-size: 15px; line-height: 1.6; }
|
|
584
|
+
.footer-col { display: grid; align-content: start; gap: 10px; }
|
|
585
|
+
.footer-col h3 { margin-bottom: 4px; color: #fff; font-size: 13px; letter-spacing: 0; }
|
|
586
|
+
.footer-col a { color: #b8c9d9; font-size: 14px; text-decoration: none; }
|
|
587
|
+
.footer-col a:hover { color: #fff; text-decoration: underline; }
|
|
588
|
+
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 24px; font-size: 13px; }
|
|
589
|
+
.footer-bottom a { color: #dbe6f2; }
|
|
590
|
+
@media (max-width: 860px) { .footer-grid { grid-template-columns: 1fr 1fr; } .footer-about { grid-column: 1 / -1; } }
|
|
591
|
+
.remote-art { grid-template-columns: minmax(0, 1fr); } .rm-term pre { overflow-x: auto; }
|
|
592
|
+
@media (max-width: 1100px) { .remote-grid { grid-template-columns: minmax(0, 1fr); } .remote-art { max-width: 640px; } }
|
|
593
|
+
html { scroll-behavior: auto !important; scroll-snap-type: none !important; }
|
|
594
|
+
#team, #plugins, #remote, #clients, #extensions { scroll-snap-align: none; scroll-snap-stop: normal; }
|
|
595
|
+
|
|
596
|
+
.dm-section { --dm-server: #ece4fa; padding-block: 0 24px; border-bottom: 1px solid var(--line-soft); }
|
|
597
|
+
.dm-sprite { position: absolute; width: 0; height: 0; }
|
|
598
|
+
.dm-head { padding: 120px 0 64px; text-align: center; }
|
|
599
|
+
.dm-head .eyebrow { justify-content: center; }
|
|
600
|
+
.dm-head h2 { font-size: clamp(30px, 3.4vw, 44px); }
|
|
601
|
+
.dm-lead { max-width: 640px; margin: 20px auto 0; color: var(--muted); font-size: 18px; line-height: 1.7; }
|
|
602
|
+
|
|
603
|
+
.dm-matrix-wrap { padding: 0 0 72px; }
|
|
604
|
+
.dm-matrix-card { padding: 26px 28px 22px; border: 1.5px solid var(--sk-ink); border-radius: 20px; background: #fff; box-shadow: 5px 7px 0 #2334471a; overflow-x: auto; }
|
|
605
|
+
.dm-matrix-card h3 { font-size: 22px; }
|
|
606
|
+
.dm-matrix-card > p { margin-top: 6px; color: var(--muted); font-size: 14px; }
|
|
607
|
+
.dm-matrix { width: 100%; min-width: 680px; margin-top: 18px; border-collapse: collapse; font-size: 14px; }
|
|
608
|
+
.dm-matrix th, .dm-matrix td { padding: 10px 12px; text-align: left; vertical-align: middle; border-top: 1px solid var(--line-soft); }
|
|
609
|
+
.dm-matrix thead th { border-top: 0; color: #43617d; font: 600 11px/1.4 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
|
|
610
|
+
.dm-matrix tbody th { font-weight: 650; color: var(--ink); white-space: nowrap; }
|
|
611
|
+
.dm-matrix td small { display: block; margin-top: 3px; color: #6a7684; font-size: 12px; }
|
|
612
|
+
.dm-chip { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border: 1.2px solid var(--sk-ink); border-radius: 999px; font: 600 12px/1.6 var(--mono); white-space: nowrap; }
|
|
613
|
+
.dm-chip::before { content: ''; width: 7px; height: 7px; border-radius: 2px; background: var(--sk-ink); opacity: .55; }
|
|
614
|
+
.dm-chip.dm-l { background: var(--c-laptop); }
|
|
615
|
+
.dm-chip.dm-s { background: var(--dm-server); }
|
|
616
|
+
.dm-chip.dm-n { background: #fff; border-style: dashed; }
|
|
617
|
+
.dm-chip.dm-n::before { display: none; }
|
|
618
|
+
|
|
619
|
+
.dm-story { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; padding-block: 24px 72px; }
|
|
620
|
+
.dm-steps, .dm-stage { display: contents; }
|
|
621
|
+
.dm-step { grid-row: calc(var(--i) * 2 + 1); padding-top: 40px; }
|
|
622
|
+
.dm-story[data-pinned] { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); column-gap: 64px; align-items: start; padding-block: 0 40px; }
|
|
623
|
+
.dm-story[data-pinned] .dm-steps { display: block; grid-area: 1 / 1; }
|
|
624
|
+
.dm-story[data-pinned] .dm-step { display: flex; align-items: center; min-height: max(80svh, calc(var(--dm-stage-h, 520px) + 80px)); padding-block: 48px; }
|
|
625
|
+
.dm-story[data-pinned] .dm-stage { display: grid; grid-area: 1 / 2; position: sticky; top: calc(var(--header-height, 80px) + max(56px, (100svh - var(--header-height, 80px) - var(--dm-stage-h, 520px)) / 2)); }
|
|
626
|
+
.dm-live { display: none; }
|
|
627
|
+
.dm-story[data-pinned] .dm-live { display: block; }
|
|
628
|
+
.dm-story[data-pinned] .dm-static { display: none; }
|
|
629
|
+
.dm-step .eyebrow { margin-bottom: 14px; }
|
|
630
|
+
.dm-step h3 { font-size: clamp(28px, 3vw, 38px); }
|
|
631
|
+
.dm-step .feature-benefits { margin-top: 24px; }
|
|
632
|
+
.dm-step .feature-benefits li { color: #277257; font-size: 17px; }
|
|
633
|
+
.dm-step .feature-benefits li::before { background-color: #277257; }
|
|
634
|
+
.dm-when { margin-top: 22px; padding: 12px 16px; border-left: 3px solid var(--accent); border-radius: 0 10px 10px 0; background: #fff; color: var(--muted); font-size: 15px; line-height: 1.55; }
|
|
635
|
+
.dm-when b { color: var(--ink); font-weight: 650; }
|
|
636
|
+
.dm-cmd { margin-top: 18px; padding: 12px 16px; border-radius: 10px; background: #233447; color: #e8eef5; font: 13px/1.7 var(--mono); white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
637
|
+
.dm-prompt { color: #8fb3d6; user-select: none; }
|
|
638
|
+
.dm-comment { color: #8a9bb0; }
|
|
639
|
+
.dm-step .text-link { margin-top: 20px; }
|
|
640
|
+
.dm-step .text-link svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
|
|
641
|
+
|
|
642
|
+
|
|
643
|
+
.dm-dg { position: relative; width: 100%; aspect-ratio: 560 / 380; container-type: inline-size; }
|
|
644
|
+
.dm-dg-in { position: absolute; inset: 0; font-size: 2.3cqw; line-height: 1.3; }
|
|
645
|
+
.dm-lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
|
|
646
|
+
.dm-ln { fill: none; stroke: var(--sk-ink); stroke-width: 1.6; stroke-linecap: round; opacity: .55; vector-effect: non-scaling-stroke; }
|
|
647
|
+
.dm-ln.dm-flow { stroke-dasharray: 5 7; opacity: .75; animation: dm-dash 1.1s linear infinite; }
|
|
648
|
+
@keyframes dm-dash { to { stroke-dashoffset: -24; } }
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
.dm-lbl { position: absolute; z-index: 3; left: calc(var(--x) * 100% / 560); top: calc(var(--y) * 100% / 380); translate: -50% -50%; padding: .12em .6em; border: 1.2px solid var(--sk-ink); border-radius: 999px; background: #fff; font: 600 .74em/1.45 var(--mono); white-space: nowrap; }
|
|
652
|
+
.dm-lbl.dm-agent { background: var(--c-agent); }
|
|
653
|
+
.dm-lbl.dm-ok { background: #d9f3e6; color: #1f5a42; border-color: #1f5a42; }
|
|
654
|
+
.dm-lbl.dm-lock { background: #ffe3d3; color: #7c3313; border-color: #7c3313; }
|
|
655
|
+
.dm-live.dm-ready .dm-move { transition: left .6s ease, top .6s ease, opacity .3s, visibility .3s; }
|
|
656
|
+
.dm-live .dm-ln.dm-flow { animation: dm-dash 1.1s linear infinite, dm-fade .5s ease .35s both; }
|
|
657
|
+
.dm-live .dm-lbl { animation: dm-fade .5s ease .35s both; }
|
|
658
|
+
@keyframes dm-fade { from { opacity: 0; } }
|
|
659
|
+
@media (prefers-reduced-motion: reduce) { .dm-ln.dm-flow, .dm-live .dm-ln.dm-flow, .dm-live .dm-lbl { animation: none; } .dm-live.dm-ready .dm-move { transition: none; } }
|
|
660
|
+
|
|
661
|
+
@media (max-width: 980px) {
|
|
662
|
+
}
|
|
663
|
+
@media (max-width: 640px) {
|
|
664
|
+
.dm-head { padding-top: 64px; }
|
|
665
|
+
.dm-matrix-card { padding: 20px 16px; }
|
|
666
|
+
}
|
|
667
|
+
.subnav-toggle { display: none; }
|
|
668
|
+
.subnav[data-compact] { justify-content: center; overflow: visible; padding-bottom: 6px; border-bottom: 1px solid #dfe7ef; }
|
|
669
|
+
.subnav[data-compact] .subnav-toggle { display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding: 3px 10px 3px 14px; border: 1px solid #233447; border-radius: 999px; background: #233447; color: #fff; font: 550 12.5px/1 Inter, system-ui, -apple-system, sans-serif; cursor: pointer; }
|
|
670
|
+
.subnav-toggle svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform .15s; }
|
|
671
|
+
.subnav[data-open] .subnav-toggle svg { transform: scaleY(-1); }
|
|
672
|
+
.subnav[data-compact] .subnav-inner { display: none; }
|
|
673
|
+
.subnav[data-compact][data-open] .subnav-inner { position: absolute; top: 100%; left: 0; right: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 4px; margin: 0; padding: 10px 16px 14px; border-bottom: 1px solid #dfe7ef; background: #fff; box-shadow: 0 18px 30px -24px #12273799; }
|
|
674
|
+
.subnav[data-compact][data-open] .subnav-inner a { justify-content: center; min-height: 34px; font-size: 13.5px; }
|
|
675
|
+
.dm-story[data-pinned] .dm-dg { width: min(100%, calc((100svh - var(--header-height, 80px) - var(--subnav-h, 41px) - 150px) * 560 / 380)); margin-inline: auto; }
|
|
676
|
+
@media (max-width: 720px) {
|
|
677
|
+
:root { --subnav-h: 0px; }
|
|
678
|
+
.subnav { display: none; }
|
|
679
|
+
html[data-menu-open] .subnav { display: block; padding: 2px 18px 14px; border-bottom: 1px solid #dfe7ef; box-shadow: 0 18px 30px -24px #12273799; background: #fff; }
|
|
680
|
+
html[data-menu-open] .subnav .subnav-toggle { display: none; }
|
|
681
|
+
html[data-menu-open] .subnav .subnav-inner { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
|
|
682
|
+
html[data-menu-open] .subnav .subnav-inner a { justify-content: flex-start; min-height: 36px; font-size: 14px; }
|
|
683
|
+
}
|
|
684
|
+
.ua-section { padding-block: 88px 80px; border-bottom: 1px solid var(--line-soft); background: radial-gradient(ellipse at 80% 40%, #eef3ff 0, transparent 60%); }
|
|
685
|
+
.ua-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 64px; align-items: center; }
|
|
686
|
+
.ua-grid h2 { font-size: clamp(30px, 3.4vw, 44px); }
|
|
687
|
+
.ua-lead { margin-top: 18px; color: var(--muted); font-size: 17px; line-height: 1.7; }
|
|
688
|
+
.ua-grid .feature-benefits { margin-top: 22px; }
|
|
689
|
+
.ua-grid .feature-benefits li { font-size: 17px; }
|
|
690
|
+
.ua-links { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 24px; }
|
|
691
|
+
.ua-term { min-width: 0; color: #e7eef7; border: 2px solid var(--sk-ink); border-radius: 12px; background: #1d2b3c; box-shadow: 5px 7px 0 #2334472e, 0 20px 36px -20px #12273799; overflow: hidden; }
|
|
692
|
+
.ua-bar { display: flex; align-items: center; gap: 6px; padding: 9px 12px; color: #9fb6cd; border-bottom: 1.5px solid var(--sk-ink); background: #28405a; font: 600 12px/1.2 var(--mono); }
|
|
693
|
+
.ua-bar i { width: 10px; height: 10px; border-radius: 50%; background: #ff8f7a; }
|
|
694
|
+
.ua-bar i:nth-child(2) { background: #ffd166; }
|
|
695
|
+
.ua-bar i:nth-child(3) { background: #6fcf9f; }
|
|
696
|
+
.ua-bar span { margin-left: 8px; }
|
|
697
|
+
.ua-term pre { margin: 0; padding: 16px 18px 18px; font: 13px/1.7 var(--mono); white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
698
|
+
.ua-cmd { color: #fff; font-weight: 700; }
|
|
699
|
+
.ua-cmd b { margin-right: .35em; color: #6fcf9f; }
|
|
700
|
+
.ua-out { color: var(--c-app); }
|
|
701
|
+
.ua-note { color: #8a9bb0; }
|
|
702
|
+
@media (max-width: 980px) { .ua-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; } }
|
|
703
|
+
@media (max-width: 640px) { .ua-section { padding-block: 56px; } .ua-term pre { font-size: 12px; padding: 14px; } }
|
|
704
|
+
|
|
705
|
+
.dm-scene { grid-row: calc(var(--i) * 2 + 2); position: relative; margin: 0; }
|
|
706
|
+
.dm-scene-heading { margin-bottom: 6px; color: #43617d; font: 500 10px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
|
|
707
|
+
.dm-scene figcaption { margin-top: 6px; color: #4d5f72; font-size: 14px; line-height: 1.5; text-align: center; }
|
|
708
|
+
.dm-dg-in::before { content: ''; position: absolute; left: 50%; top: 4%; bottom: 2%; border-left: 1.5px dashed #23344740; }
|
|
709
|
+
.dm-machine { position: absolute; top: 0; width: 50%; display: grid; justify-items: center; gap: .2em; transition: opacity .4s; }
|
|
710
|
+
.dm-machine.dm-laptop { left: 0; }
|
|
711
|
+
.dm-machine.dm-server { right: 0; }
|
|
712
|
+
.dm-machine.dm-idle { opacity: .35; }
|
|
713
|
+
.dm-machine-label { display: inline-flex; align-items: center; gap: .45em; color: var(--sk-ink); font: 700 1em/1.3 var(--mono); }
|
|
714
|
+
.dm-machine-label svg { width: 1.3em; height: 1.3em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
|
|
715
|
+
.dm-machine-foot { color: #6a7684; font: 600 .78em/1.3 var(--mono); }
|
|
716
|
+
.dm-node { --bg: #fff; position: absolute; z-index: 2; left: calc(var(--x) * 100% / 560); top: calc(var(--y) * 100% / 380); translate: -1.25em -50%; display: flex; align-items: center; gap: .6em; color: var(--sk-ink); white-space: nowrap; }
|
|
717
|
+
.dm-node.dm-left { flex-direction: row-reverse; translate: calc(-100% + 1.25em) -50%; text-align: right; }
|
|
718
|
+
.dm-node strong { display: block; font-weight: 750; letter-spacing: -.02em; line-height: 1.2; }
|
|
719
|
+
.dm-node small { display: block; color: #4d5f72; font-size: .8em; line-height: 1.3; }
|
|
720
|
+
.dm-node.dm-agent { --bg: var(--c-agent); }
|
|
721
|
+
.dm-node.dm-app { --bg: var(--c-app); }
|
|
722
|
+
.dm-node.dm-script { --bg: var(--c-script); }
|
|
723
|
+
.dm-node.dm-coord { --bg: var(--c-coord); }
|
|
724
|
+
.dm-node.dm-cream { --bg: var(--c-cream); }
|
|
725
|
+
.dm-node.dm-gone { visibility: hidden; opacity: 0; }
|
|
726
|
+
.dm-glyph { display: grid; flex: none; place-items: center; width: 2.5em; height: 2.5em; border: 1.5px solid var(--sk-ink); border-radius: 50%; background: var(--bg); }
|
|
727
|
+
.dm-glyph svg { width: 1.35em; height: 1.35em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
|
|
728
|
+
.dm-node.dm-note .dm-glyph { border-style: dashed; background: #fff; }
|
|
729
|
+
.dm-node.dm-note { opacity: .75; }
|
|
730
|
+
.dm-lbl { padding: .1em .45em; border: 0; background: #f3f2f7; color: #43617d; }
|
|
731
|
+
.dm-stepper { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 30px; margin-bottom: 36px; padding: 0; list-style: none; }
|
|
732
|
+
.dm-stepper button { padding: 4px 0; border: 0; border-bottom: 2px solid transparent; background: none; color: #7a8595; font: 600 13px/1.3 var(--font, Inter, system-ui, sans-serif); cursor: pointer; }
|
|
733
|
+
.dm-stepper button:hover { color: var(--sk-ink); }
|
|
734
|
+
.dm-stepper button[aria-current] { color: var(--sk-ink); border-bottom-color: var(--sk-ink); }
|
|
735
|
+
.dm-live .dm-scene-heading { display: none; }
|
|
736
|
+
@media (max-width: 1100px) { .feature-stickers .feature-sticker { --sticker-angle: 0deg; border-radius: 12px; } }
|
|
737
|
+
@media (max-width: 700px) { .dm-cmd { font-size: 12px; padding-inline: 12px; } }
|
|
738
|
+
@media (max-width: 920px) {
|
|
739
|
+
.dm-matrix-card { overflow: visible; }
|
|
740
|
+
.dm-matrix, .dm-matrix tbody, .dm-matrix tr, .dm-matrix th, .dm-matrix td { display: block; min-width: 0; }
|
|
741
|
+
.dm-matrix thead { display: none; }
|
|
742
|
+
.dm-matrix tr { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; padding: 14px 0; border-top: 1px solid var(--line-soft); }
|
|
743
|
+
.dm-matrix tbody th { grid-column: 1 / -1; padding: 0; border: 0; }
|
|
744
|
+
.dm-matrix td { padding: 0; border: 0; }
|
|
745
|
+
.dm-matrix td::before { content: attr(data-label); display: block; margin-bottom: 3px; color: #6a7684; font: 600 10px/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
.scene-journal { background: var(--dots), linear-gradient(150deg, #fffaec, #eef6ff 80%); }
|
|
749
|
+
.jr { position: absolute; inset: 0; display: flex; flex-direction: column; overflow: hidden; color: var(--sk-ink); border: 1.5px solid var(--sk-ink); border-radius: 16px; background: #fffdf8; box-shadow: 4px 6px 0 #2334471a; }
|
|
750
|
+
.jr-head { display: flex; align-items: center; gap: .8em; padding: .8em 1.2em; border-bottom: 1.5px solid #23344722; background: #fff; color: #43617d; font: 600 .78em/1.4 var(--mono); }
|
|
751
|
+
.jr-head b { color: var(--sk-ink); }
|
|
752
|
+
.jr-live { display: inline-flex; align-items: center; gap: .45em; margin-left: auto; padding: .1em .75em; border-radius: 999px; background: #d9f3e6; color: #1f5a42; }
|
|
753
|
+
.jr-live::before { content: ''; width: .55em; height: .55em; border-radius: 50%; background: #2f7a5c; }
|
|
754
|
+
.jr-cols, .jr-row { display: grid; grid-template-columns: 2.4em 5.6em 7.6em minmax(0, 1fr); gap: .8em; }
|
|
755
|
+
.jr-cols { padding: .5em 1.2em; border-bottom: 1px dashed #23344722; color: #8a97a6; font: 600 .66em/1.4 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
|
|
756
|
+
.jr-cols { grid-template-columns: 2.69em 6.28em 8.52em minmax(0, 1fr); gap: .9em; }
|
|
757
|
+
.jr-view { position: relative; flex: 1; overflow: hidden; -webkit-mask-image: linear-gradient(transparent 0, #000 4em); mask-image: linear-gradient(transparent 0, #000 4em); }
|
|
758
|
+
.jr-list { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 0 0 .8em; list-style: none; }
|
|
759
|
+
.jr-row { align-items: baseline; padding: .45em 1.2em .45em calc(1.2em - 3px); border-left: 3px solid transparent; font: .74em/1.45 var(--mono); opacity: 0; }
|
|
760
|
+
.jr-row.on { opacity: 1; }
|
|
761
|
+
.jr-seq, .jr-time { color: #8a97a6; }
|
|
762
|
+
.jr-who { justify-self: start; padding: 0 .55em; border: 1.2px solid var(--sk-ink); border-radius: 999px; background: var(--c-agent); font-weight: 700; white-space: nowrap; }
|
|
763
|
+
.jr-who.jr-script { background: var(--c-script); }
|
|
764
|
+
.jr-who.jr-lead { background: var(--c-coord); }
|
|
765
|
+
.jr-what { min-width: 0; color: #4d5f72; }
|
|
766
|
+
.jr-what b { color: var(--sk-ink); }
|
|
767
|
+
.jr-cause { display: inline-block; margin-left: .5em; padding: 0 .5em; border-radius: 999px; background: #285bd71a; color: #285bd7; font-weight: 700; white-space: nowrap; }
|
|
768
|
+
.jr-row.jr-caused { border-left-color: #285bd7; background: #285bd70d; }
|
|
769
|
+
.jr-row.jr-warn { border-left-color: #b4572e; background: #b4572e0d; }
|
|
770
|
+
.jr-row.jr-warn b { color: #b4572e; }
|
|
771
|
+
.jr-row.jr-lit { background: #ffdd6855; }
|
|
772
|
+
.jr-gap { display: block; padding: .8em 1.2em; color: #8a97a6; font-style: italic; text-align: center; }
|
|
773
|
+
.jr-foot { min-height: 3.2em; padding: .7em 1.2em; border-top: 1.5px solid #23344722; background: #fff; color: #4d5f72; font-size: .82em; line-height: 1.45; }
|
|
774
|
+
.jr-foot b { color: var(--sk-ink); }
|
|
775
|
+
@container (max-width: 470px) { .jr-time { display: none; } .jr-cols, .jr-row { grid-template-columns: 2.4em 7.6em minmax(0, 1fr); } .jr-cols { grid-template-columns: 2.69em 8.52em minmax(0, 1fr); } }
|
|
776
|
+
@media (max-width: 700px) { .scene-journal .art { aspect-ratio: 540 / 600; } }
|
|
777
|
+
|
|
778
|
+
.story-scene-track { min-width: 0; }
|
|
779
|
+
.story-stick { position: sticky; top: var(--scene-top, calc(var(--header-height, 80px) + var(--subnav-h, 0px))); }
|
|
780
|
+
.story-ticker { display: none; }
|
|
781
|
+
@media (min-width: 960px) {
|
|
782
|
+
.feature-story .story-layout { align-items: stretch; }
|
|
783
|
+
.feature-story .story-scene { align-self: start; }
|
|
784
|
+
.feature-story .story-scene-track { grid-column: 2; grid-row: calc(var(--story-index) + 1); }
|
|
785
|
+
.feature-story .story-step .feature-copy { position: sticky; top: var(--copy-top, calc(var(--header-height, 80px) + var(--subnav-h, 0px) + 24px)); }
|
|
786
|
+
}
|
|
787
|
+
@media (max-width: 959.98px) {
|
|
788
|
+
.feature-story .story-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; }
|
|
789
|
+
.feature-story .story-step { grid-column: 1; grid-row: calc(var(--story-index) * 2 + 1); padding-bottom: 0; }
|
|
790
|
+
.feature-story .story-scene { grid-column: 1; grid-row: calc(var(--story-index) * 2 + 2); }
|
|
791
|
+
.feature-story .story-scene-track { grid-column: 1; grid-row: calc(var(--story-index) * 2 + 2); }
|
|
792
|
+
.feature-story .story-step .story-scene-track { margin: 22px calc(50% - 50vw) 6px; }
|
|
793
|
+
.feature-story .story-stick > .story-scene { width: 100%; margin: 0 auto; border-inline: 0; border-radius: 0; box-shadow: none; padding-inline: 8px; }
|
|
794
|
+
.feature-story .story-stick > .story-scene > figcaption { display: none; }
|
|
795
|
+
.feature-story .story-step .art { width: min(100%, calc((100svh - 330px) * 540 / 520)); }
|
|
796
|
+
.story-ticker { display: grid; justify-items: center; gap: 10px; padding: 14px 20px 6px; text-align: center; }
|
|
797
|
+
.story-ticker p { display: grid; place-items: center; min-height: 3em; margin: 0; color: #277257; font-size: 16px; font-weight: 650; line-height: 1.45; letter-spacing: -.01em; }
|
|
798
|
+
.story-ticker span { display: flex; gap: 6px; }
|
|
799
|
+
.story-ticker i { width: 6px; height: 6px; border-radius: 50%; background: #23344733; transition: background .2s, width .2s; }
|
|
800
|
+
.story-ticker i.on { width: 18px; border-radius: 3px; background: #277257; }
|
|
801
|
+
.story-step .story-scene-track ~ .feature-benefits { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
|
|
802
|
+
}
|
|
803
|
+
.wf-edge { fill: none; stroke: var(--sk-ink); stroke-width: 1.6; stroke-linecap: round; opacity: .5; }
|
|
804
|
+
.wf-edge.wf-loop { stroke-dasharray: 5 6; opacity: .6; }
|
|
805
|
+
.wf-card { white-space: nowrap; }
|
|
806
|
+
.wf-label, .wf-round, .wf-verdict { position: absolute; left: calc(var(--x) * 100% / 540); top: calc(var(--y) * 100% / 520); translate: -50% -50%; z-index: 3; white-space: nowrap; }
|
|
807
|
+
.wf-label { color: #43617d; font: 600 .74em/1.3 var(--mono); }
|
|
808
|
+
.wf-round { padding: .15em .6em; border: 1.2px dashed #23344780; border-radius: 999px; background: #fffef7; color: var(--sk-ink); font: 600 .74em/1.4 var(--mono); }
|
|
809
|
+
.wf-edge.wf-loop, [data-pa="profile"] .pa-lines path { stroke-dasharray: 5 7; animation: dm-dash 1.1s linear infinite; }
|
|
810
|
+
@media (prefers-reduced-motion: reduce) { .wf-edge.wf-loop, [data-pa="profile"] .pa-lines path { animation: none; } }
|
|
811
|
+
.dm-matrix-card { padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
|
|
812
|
+
.dm-matrix-card h3, .dm-matrix-card > p { text-align: center; }
|
|
813
|
+
.dm-chip { padding: 0; border: 0; background: none; font: 600 14px/1.5 var(--font, Inter, system-ui, sans-serif); }
|
|
814
|
+
.dm-chip.dm-l, .dm-chip.dm-s, .dm-chip.dm-n { background: none; }
|
|
815
|
+
.dm-chip::before { width: 8px; height: 8px; border-radius: 50%; opacity: 1; }
|
|
816
|
+
.dm-chip.dm-l::before { background: #5b9bd8; }
|
|
817
|
+
.dm-chip.dm-s::before { background: #9a7fd1; }
|
|
818
|
+
.dm-chip.dm-n { color: #4d5f72; font-weight: 500; white-space: normal; }
|
|
819
|
+
@media (max-width: 959.98px) {
|
|
820
|
+
.dm-step .story-scene-track { margin: 22px calc(50% - 50vw) 6px; }
|
|
821
|
+
.dm-step .story-stick > .dm-scene { padding-inline: 10px; }
|
|
822
|
+
.dm-step .story-stick > .dm-scene > figcaption { display: none; }
|
|
823
|
+
.dm-step .story-scene-track ~ .feature-benefits { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
|
|
824
|
+
}
|
|
825
|
+
.dm-chip.dm-l::before, .dm-chip.dm-s::before { width: 16px; height: 16px; border-radius: 0; -webkit-mask: var(--chip-icon) center / contain no-repeat; mask: var(--chip-icon) center / contain no-repeat; }
|
|
826
|
+
.dm-chip.dm-l { --chip-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='5' width='14' height='10' rx='1.5'/%3E%3Cpath d='M2.5 19h19'/%3E%3C/svg%3E"); color: #1d64a8; }
|
|
827
|
+
.dm-chip.dm-s { --chip-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='7' rx='2'/%3E%3Crect x='4' y='14' width='16' height='7' rx='2'/%3E%3Cpath d='M8 6.5h.01M8 17.5h.01'/%3E%3C/svg%3E"); color: #b0521f; }
|
|
828
|
+
.dm-chip.dm-l::before { background: #1d64a8; }
|
|
829
|
+
.dm-chip.dm-s::before { background: #b0521f; }
|
|
830
|
+
.rm-term, .rm-agent, .rm-host { rotate: none; }
|
|
831
|
+
.shots { grid-template-columns: 1fr 1fr; align-items: start; }
|
|
832
|
+
.shot, .shot-web, .shot-code { rotate: none; margin-top: 0; }
|
|
833
|
+
.shot figcaption { rotate: -3deg; }
|