@webship.co/workspace 1.0.0-alpha1 → 1.0.0-beta2
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/LICENSE +339 -0
- package/README.md +28 -364
- package/core/bin/workspace.js +135 -0
- package/core/config/settings.labels.yml +514 -0
- package/core/config/settings.template.yml +292 -0
- package/core/config/style.yml +53 -0
- package/core/config/theme.default.yml +161 -0
- package/core/config/theme.dispatch.yml +166 -0
- package/core/config/theme.drupal.yml +175 -0
- package/core/config/theme.ember.yml +160 -0
- package/core/config/theme.github.yml +172 -0
- package/core/config/theme.gitlab.yml +168 -0
- package/core/config/theme.press.yml +161 -0
- package/core/config/theme.slate.yml +160 -0
- package/core/config/theme.upsun.yml +174 -0
- package/core/docs/architecture.svg +65 -0
- package/core/docs/getting-started.md +51 -0
- package/core/docs/plugins.md +27 -0
- package/core/docs/releases.md +23 -0
- package/core/docs/testing.md +15 -0
- package/core/docs/workspaces.md +25 -0
- package/core/scripts/args/arg-ai-items.sh +65 -0
- package/core/scripts/args/arg-autostart.sh +31 -0
- package/core/scripts/args/arg-avatar-agent.sh +28 -0
- package/core/scripts/args/arg-avatar-catalog.sh +12 -0
- package/core/scripts/args/arg-avatar-character.sh +68 -0
- package/core/scripts/args/arg-avatar-voice.sh +24 -0
- package/core/scripts/args/arg-avatar.sh +22 -0
- package/core/scripts/args/arg-checks.sh +36 -0
- package/core/scripts/args/arg-clone.sh +42 -0
- package/core/scripts/args/arg-commands.sh +51 -0
- package/core/scripts/args/arg-cucumber.sh +34 -0
- package/core/scripts/args/arg-distribution.sh +30 -0
- package/core/scripts/args/arg-drupal.sh +39 -0
- package/core/scripts/args/arg-drupal_cms.sh +18 -0
- package/core/scripts/args/arg-gitlab-ci-local.sh +25 -0
- package/core/scripts/args/arg-graphify.sh +36 -0
- package/core/scripts/args/arg-graphs.sh +12 -0
- package/core/scripts/args/arg-hostnames.sh +23 -0
- package/core/scripts/args/arg-milvus-backup.sh +8 -0
- package/core/scripts/args/arg-milvus-mcp.sh +12 -0
- package/core/scripts/args/arg-milvus.sh +32 -0
- package/core/scripts/args/arg-obsidian.sh +17 -0
- package/core/scripts/args/arg-odoo.sh +18 -0
- package/core/scripts/args/arg-penpot-backup.sh +8 -0
- package/core/scripts/args/arg-penpot-mcp.sh +15 -0
- package/core/scripts/args/arg-penpot-token.sh +17 -0
- package/core/scripts/args/arg-penpot.sh +44 -0
- package/core/scripts/args/arg-rag.sh +21 -0
- package/core/scripts/args/arg-ragify.sh +35 -0
- package/core/scripts/args/arg-reclaim.sh +18 -0
- package/core/scripts/args/arg-release.sh +21 -0
- package/core/scripts/args/arg-screen.sh +28 -0
- package/core/scripts/args/arg-site-template.sh +13 -0
- package/core/scripts/args/arg-spdd.sh +16 -0
- package/core/scripts/args/arg-specs.sh +22 -0
- package/core/scripts/args/arg-storage.sh +36 -0
- package/core/scripts/args/arg-testing.sh +36 -0
- package/core/scripts/args/arg-webship.sh +34 -0
- package/core/scripts/args/arg-webships-project.sh +22 -0
- package/core/scripts/args/arg-webships-site-template.sh +17 -0
- package/core/scripts/args/arg-webships.sh +34 -0
- package/core/scripts/args/arg-website-site-template.sh +17 -0
- package/core/scripts/args/arg-website.sh +25 -0
- package/core/scripts/args/arg-wordpress.sh +18 -0
- package/core/scripts/autostart-run.sh +162 -0
- package/core/scripts/autostart-stop.sh +30 -0
- package/core/scripts/autostart-watch.sh +43 -0
- package/core/scripts/autostart.sh +26 -0
- package/core/scripts/bootstrap-functions.sh +117 -0
- package/core/scripts/bootstrap-libraries.sh +10 -0
- package/core/scripts/bootstrap.sh +71 -0
- package/core/scripts/ddev-shim/ddev +122 -0
- package/core/scripts/docker-gid.sh +119 -0
- package/core/scripts/functions/arg-site-template.sh +28 -0
- package/core/scripts/functions/fun-ai-items-lock.sh +175 -0
- package/core/scripts/functions/fun-ai-items-sources.sh +298 -0
- package/core/scripts/functions/fun-ai-items.sh +621 -0
- package/core/scripts/functions/fun-ai-providers.sh +72 -0
- package/core/scripts/functions/fun-autostart.sh +429 -0
- package/core/scripts/functions/fun-avatar.sh +441 -0
- package/core/scripts/functions/fun-backup-item.sh +50 -0
- package/core/scripts/functions/fun-build-distribution.sh +226 -0
- package/core/scripts/functions/fun-build-site-template.sh +104 -0
- package/core/scripts/functions/fun-build-webships.sh +161 -0
- package/core/scripts/functions/fun-build-website.sh +199 -0
- package/core/scripts/functions/fun-checks.sh +243 -0
- package/core/scripts/functions/fun-clone-project.sh +289 -0
- package/core/scripts/functions/fun-commands.sh +521 -0
- package/core/scripts/functions/fun-database.sh +63 -0
- package/core/scripts/functions/fun-ddev-hostnames.sh +213 -0
- package/core/scripts/functions/fun-ddev-nodejs.sh +15 -0
- package/core/scripts/functions/fun-ddev-telemetry.sh +15 -0
- package/core/scripts/functions/fun-default-settings.sh +28 -0
- package/core/scripts/functions/fun-distribution-cucumber.sh +45 -0
- package/core/scripts/functions/fun-distribution-drupal.sh +25 -0
- package/core/scripts/functions/fun-distribution-drupal_cms.sh +35 -0
- package/core/scripts/functions/fun-distribution-webship.sh +28 -0
- package/core/scripts/functions/fun-distribution-webships.sh +33 -0
- package/core/scripts/functions/fun-distribution-website.sh +19 -0
- package/core/scripts/functions/fun-drush.sh +48 -0
- package/core/scripts/functions/fun-elevenlabs.sh +179 -0
- package/core/scripts/functions/fun-files.sh +19 -0
- package/core/scripts/functions/fun-git-worktrees.sh +142 -0
- package/core/scripts/functions/fun-gitlab-ci.sh +156 -0
- package/core/scripts/functions/fun-hostnames-cli.sh +88 -0
- package/core/scripts/functions/fun-milvus.sh +584 -0
- package/core/scripts/functions/fun-odoo.sh +121 -0
- package/core/scripts/functions/fun-penpot.sh +724 -0
- package/core/scripts/functions/fun-project-name.sh +20 -0
- package/core/scripts/functions/fun-rag.sh +253 -0
- package/core/scripts/functions/fun-ragify.sh +165 -0
- package/core/scripts/functions/fun-reclaim.sh +297 -0
- package/core/scripts/functions/fun-release.sh +159 -0
- package/core/scripts/functions/fun-remove-project.sh +319 -0
- package/core/scripts/functions/fun-screen.sh +96 -0
- package/core/scripts/functions/fun-spdd.sh +676 -0
- package/core/scripts/functions/fun-specs-share.sh +237 -0
- package/core/scripts/functions/fun-storage.sh +347 -0
- package/core/scripts/functions/fun-testing.sh +329 -0
- package/core/scripts/functions/fun-users.sh +87 -0
- package/core/scripts/functions/fun-version.sh +72 -0
- package/core/scripts/functions/fun-video-edit.sh +48 -0
- package/core/scripts/functions/fun-voice.sh +45 -0
- package/core/scripts/functions/fun-wordpress.sh +59 -0
- package/core/scripts/host-mounts.sh +161 -0
- package/core/scripts/install.sh +602 -0
- package/core/scripts/libs/__pycache__/video_edit.cpython-312.pyc +0 -0
- package/core/scripts/libs/argparse.sh +93 -0
- package/core/scripts/libs/bash-yaml.sh +52 -0
- package/core/scripts/libs/checks_plan.js +312 -0
- package/core/scripts/libs/elevenlabs.py +627 -0
- package/core/scripts/libs/progress-bar.sh +19 -0
- package/core/scripts/libs/rag_index.py +446 -0
- package/core/scripts/libs/video_edit.py +636 -0
- package/core/scripts/libs/voice.py +430 -0
- package/core/scripts/plugins/jira/host-install.sh +119 -0
- package/core/scripts/plugins/jira/host-mounts.txt +2 -0
- package/core/scripts/plugins/upsun/args/arg-upsun.sh +51 -0
- package/core/scripts/plugins/upsun/functions/fun-upsun.sh +304 -0
- package/core/scripts/plugins/upsun/host-install.sh +99 -0
- package/core/scripts/plugins/upsun/host-mounts.txt +1 -0
- package/core/scripts/plugins/upsun/upsun-ai.sh +133 -0
- package/core/scripts/plugins.sh +152 -0
- package/core/scripts/release.sh +69 -0
- package/core/scripts/storage.sh +39 -0
- package/core/scripts/sync-tooling.sh +246 -0
- package/core/scripts/tests/cmd-smoke-test.sh +109 -0
- package/core/scripts/trust-https.sh +257 -0
- package/core/workspace-app/.ddev/commands/web/test-dashboard +49 -0
- package/core/workspace-app/.ddev/config.yaml +400 -0
- package/core/workspace-app/.ddev/docker-compose.dood.yaml +45 -0
- package/core/workspace-app/.ddev/docker-compose.plugin-jira-twg.yaml +26 -0
- package/core/workspace-app/.ddev/docker-compose.plugin-upsun-upsun-cli.yaml +8 -0
- package/core/workspace-app/.ddev/docker-compose.screens.yaml +15 -0
- package/core/workspace-app/.ddev/nginx_full/nginx-site.conf +114 -0
- package/core/workspace-app/.ddev/web-build/Dockerfile.workspace-app +203 -0
- package/core/workspace-app/.ddev/web-build/ddev-shim-ddev +122 -0
- package/{PLUGINS.md → core/workspace-app/PLUGINS.md} +1 -1
- package/core/workspace-app/README.md +380 -0
- package/{actions → core/workspace-app/actions}/ddev.js +0 -1
- package/{actions → core/workspace-app/actions}/rag.js +0 -1
- package/{actions → core/workspace-app/actions}/testing.js +0 -1
- package/{assistant.js → core/workspace-app/assistant.js} +1 -10
- package/{git-info.js → core/workspace-app/git-info.js} +17 -1
- package/core/workspace-app/package.json +29 -0
- package/core/workspace-app/plugin-catalog.js +50 -0
- package/{plugin-loader.js → core/workspace-app/plugin-loader.js} +19 -1
- package/{plugins-page.js → core/workspace-app/plugins-page.js} +28 -2
- package/{row-layout.js → core/workspace-app/row-layout.js} +0 -1
- package/{server.js → core/workspace-app/server.js} +26 -225
- package/core/workspace-app/tests/features/actions-rail.feature +44 -0
- package/core/workspace-app/tests/features/ai-items.feature +23 -0
- package/core/workspace-app/tests/features/assistant-speech.feature +63 -0
- package/core/workspace-app/tests/features/checks.feature +39 -0
- package/core/workspace-app/tests/features/clone-project.feature +30 -0
- package/core/workspace-app/tests/features/command-authoring.feature +58 -0
- package/core/workspace-app/tests/features/dashboard.feature +57 -0
- package/core/workspace-app/tests/features/menus.feature +29 -0
- package/core/workspace-app/tests/features/plugins/jira/jira.feature +47 -0
- package/core/workspace-app/tests/features/plugins.feature +20 -0
- package/core/workspace-app/tests/features/project-actions.feature +40 -0
- package/core/workspace-app/tests/features/screens.feature +29 -0
- package/core/workspace-app/tests/features/settings.feature +46 -0
- package/core/workspace-app/tests/features/test-reports.feature +32 -0
- package/core/workspace-app/tests/features/theme.feature +40 -0
- package/core/workspace-app/tests/step-definitions/actions-post.steps.js +25 -0
- package/core/workspace-app/tests/step-definitions/assistant-speech.steps.js +152 -0
- package/core/workspace-app/tests/step-definitions/preconditions.steps.js +100 -0
- package/core/workspace-app/tests/unit/_isolated-config.js +31 -0
- package/core/workspace-app/tests/unit/accessibility.test.js +124 -0
- package/core/workspace-app/tests/unit/actions-rail-ux.test.js +56 -0
- package/core/workspace-app/tests/unit/actions-rail.test.js +51 -0
- package/core/workspace-app/tests/unit/ai-inventory.test.js +64 -0
- package/core/workspace-app/tests/unit/app-docs.test.js +64 -0
- package/core/workspace-app/tests/unit/assistant-avatar.test.js +110 -0
- package/core/workspace-app/tests/unit/assistant-cast.test.js +105 -0
- package/core/workspace-app/tests/unit/assistant-send-animation.test.js +15 -0
- package/core/workspace-app/tests/unit/assistant-suggestions.test.js +112 -0
- package/core/workspace-app/tests/unit/assistant-switches.test.js +53 -0
- package/core/workspace-app/tests/unit/assistant-views.test.js +146 -0
- package/core/workspace-app/tests/unit/assistant-working-indicator.test.js +49 -0
- package/core/workspace-app/tests/unit/assistant.test.js +61 -0
- package/core/workspace-app/tests/unit/audio-player.test.js +147 -0
- package/core/workspace-app/tests/unit/audio-voice.test.js +634 -0
- package/core/workspace-app/tests/unit/auth-google.test.js +180 -0
- package/core/workspace-app/tests/unit/autostart-watch.test.js +76 -0
- package/core/workspace-app/tests/unit/browsers.test.js +76 -0
- package/core/workspace-app/tests/unit/build-distribution.test.js +125 -0
- package/core/workspace-app/tests/unit/build-order.test.js +153 -0
- package/core/workspace-app/tests/unit/builder-args.test.js +113 -0
- package/core/workspace-app/tests/unit/builders.test.js +158 -0
- package/core/workspace-app/tests/unit/card-state-toggle.test.js +29 -0
- package/core/workspace-app/tests/unit/changelog.test.js +177 -0
- package/core/workspace-app/tests/unit/chat-thread.test.js +92 -0
- package/core/workspace-app/tests/unit/checks-plan.test.js +205 -0
- package/core/workspace-app/tests/unit/claude-args.test.js +182 -0
- package/core/workspace-app/tests/unit/claude-code-here.test.js +15 -0
- package/core/workspace-app/tests/unit/claude-resume.test.js +147 -0
- package/core/workspace-app/tests/unit/claude-screen-options.test.js +84 -0
- package/core/workspace-app/tests/unit/claude-session.test.js +41 -0
- package/core/workspace-app/tests/unit/command-flags.test.js +45 -0
- package/core/workspace-app/tests/unit/command-palette.test.js +105 -0
- package/core/workspace-app/tests/unit/commands-center.test.js +338 -0
- package/core/workspace-app/tests/unit/composer-menu.test.js +187 -0
- package/core/workspace-app/tests/unit/config-yaml.test.js +116 -0
- package/core/workspace-app/tests/unit/confirm-dialog.test.js +69 -0
- package/core/workspace-app/tests/unit/create-card.test.js +85 -0
- package/core/workspace-app/tests/unit/ddev-addons.test.js +144 -0
- package/core/workspace-app/tests/unit/ddev-auth-ssh.test.js +40 -0
- package/core/workspace-app/tests/unit/ddev-custom-commands.test.js +56 -0
- package/core/workspace-app/tests/unit/ddev-diagnose.test.js +57 -0
- package/core/workspace-app/tests/unit/ddev-domains.test.js +153 -0
- package/core/workspace-app/tests/unit/ddev-hostnames.test.js +143 -0
- package/core/workspace-app/tests/unit/ddev-import.test.js +82 -0
- package/core/workspace-app/tests/unit/ddev-mail.test.js +135 -0
- package/core/workspace-app/tests/unit/ddev-menu-and-create.test.js +28 -0
- package/core/workspace-app/tests/unit/ddev-mutagen.test.js +37 -0
- package/core/workspace-app/tests/unit/ddev-options.test.js +51 -0
- package/core/workspace-app/tests/unit/ddev-share.test.js +40 -0
- package/core/workspace-app/tests/unit/ddev-shim.test.js +57 -0
- package/core/workspace-app/tests/unit/ddev-snapshots.test.js +142 -0
- package/core/workspace-app/tests/unit/ddev-start-daemons.test.js +62 -0
- package/core/workspace-app/tests/unit/ddev-xdebug.test.js +41 -0
- package/core/workspace-app/tests/unit/deep-chat-origin.test.js +38 -0
- package/core/workspace-app/tests/unit/density.test.js +52 -0
- package/core/workspace-app/tests/unit/elevenlabs.test.js +453 -0
- package/core/workspace-app/tests/unit/event-log.test.js +102 -0
- package/core/workspace-app/tests/unit/favicon.test.js +68 -0
- package/core/workspace-app/tests/unit/files-browser.test.js +224 -0
- package/core/workspace-app/tests/unit/git-info.test.js +26 -0
- package/core/workspace-app/tests/unit/grid-and-list.test.js +103 -0
- package/core/workspace-app/tests/unit/host-tool-wrapper.test.js +18 -0
- package/core/workspace-app/tests/unit/html-patterns.test.js +51 -0
- package/core/workspace-app/tests/unit/ide-infra.test.js +28 -0
- package/core/workspace-app/tests/unit/images-ai.test.js +201 -0
- package/core/workspace-app/tests/unit/images-create.test.js +59 -0
- package/core/workspace-app/tests/unit/images-providers.test.js +248 -0
- package/core/workspace-app/tests/unit/images-svg.test.js +213 -0
- package/core/workspace-app/tests/unit/images-workspace.test.js +144 -0
- package/core/workspace-app/tests/unit/jobs-fragment.test.js +66 -0
- package/core/workspace-app/tests/unit/media-ux.test.js +164 -0
- package/core/workspace-app/tests/unit/modal-fit.test.js +87 -0
- package/core/workspace-app/tests/unit/modules-load.test.js +23 -0
- package/core/workspace-app/tests/unit/narration.test.js +186 -0
- package/core/workspace-app/tests/unit/navigation-editor.test.js +260 -0
- package/core/workspace-app/tests/unit/navigation.test.js +254 -0
- package/core/workspace-app/tests/unit/new-folder.test.js +121 -0
- package/core/workspace-app/tests/unit/new-screen-form.test.js +149 -0
- package/core/workspace-app/tests/unit/node-menu.test.js +161 -0
- package/core/workspace-app/tests/unit/notes.test.js +128 -0
- package/core/workspace-app/tests/unit/page-structure.test.js +40 -0
- package/core/workspace-app/tests/unit/page-width.test.js +59 -0
- package/core/workspace-app/tests/unit/php-version.test.js +90 -0
- package/core/workspace-app/tests/unit/plan-card.test.js +44 -0
- package/core/workspace-app/tests/unit/plugin-catalog.test.js +31 -0
- package/core/workspace-app/tests/unit/plugin-system.test.js +251 -0
- package/core/workspace-app/tests/unit/plugins-page.test.js +28 -0
- package/core/workspace-app/tests/unit/plugins.test.js +58 -0
- package/core/workspace-app/tests/unit/project-activity-filter.test.js +180 -0
- package/core/workspace-app/tests/unit/project-make.test.js +143 -0
- package/core/workspace-app/tests/unit/project-name.test.js +202 -0
- package/core/workspace-app/tests/unit/reader.test.js +62 -0
- package/core/workspace-app/tests/unit/release.test.js +92 -0
- package/core/workspace-app/tests/unit/remove-confirm.test.js +37 -0
- package/core/workspace-app/tests/unit/report-pdf.test.js +171 -0
- package/core/workspace-app/tests/unit/round-11.test.js +31 -0
- package/core/workspace-app/tests/unit/round-12.test.js +37 -0
- package/core/workspace-app/tests/unit/row-layout.test.js +585 -0
- package/core/workspace-app/tests/unit/row-menus-fold.test.js +29 -0
- package/core/workspace-app/tests/unit/rows-add-modal.test.js +68 -0
- package/core/workspace-app/tests/unit/screen-runner-queue.test.js +41 -0
- package/core/workspace-app/tests/unit/screen-window.test.js +116 -0
- package/core/workspace-app/tests/unit/screens-beside-running.test.js +19 -0
- package/core/workspace-app/tests/unit/screens-columns.test.js +79 -0
- package/core/workspace-app/tests/unit/screens-menu.test.js +84 -0
- package/core/workspace-app/tests/unit/screens-modal-overlay.test.js +14 -0
- package/core/workspace-app/tests/unit/screens-waiting.test.js +129 -0
- package/core/workspace-app/tests/unit/screens.test.js +74 -0
- package/core/workspace-app/tests/unit/second-storage.test.js +218 -0
- package/core/workspace-app/tests/unit/session-name.test.js +64 -0
- package/core/workspace-app/tests/unit/settings-file.test.js +173 -0
- package/core/workspace-app/tests/unit/settings-nested-list.test.js +54 -0
- package/core/workspace-app/tests/unit/settings-raw.test.js +177 -0
- package/core/workspace-app/tests/unit/shared-prefs.test.js +49 -0
- package/core/workspace-app/tests/unit/speech.test.js +290 -0
- package/core/workspace-app/tests/unit/static-caching.test.js +39 -0
- package/core/workspace-app/tests/unit/status-language.test.js +47 -0
- package/core/workspace-app/tests/unit/tab-modal.test.js +69 -0
- package/core/workspace-app/tests/unit/tab-title.test.js +37 -0
- package/core/workspace-app/tests/unit/template-literals.test.js +52 -0
- package/core/workspace-app/tests/unit/terminal-scrollback.test.js +61 -0
- package/core/workspace-app/tests/unit/terminal-size.test.js +103 -0
- package/core/workspace-app/tests/unit/terminal-style.test.js +84 -0
- package/core/workspace-app/tests/unit/terminal-windows.test.js +154 -0
- package/core/workspace-app/tests/unit/themes.test.js +453 -0
- package/core/workspace-app/tests/unit/tool-labels.test.js +34 -0
- package/core/workspace-app/tests/unit/topbar-icons.test.js +47 -0
- package/core/workspace-app/tests/unit/update-docker-gid.test.js +51 -0
- package/core/workspace-app/tests/unit/user-guide.test.js +60 -0
- package/core/workspace-app/tests/unit/version-check.test.js +98 -0
- package/core/workspace-app/tests/unit/version-link.test.js +50 -0
- package/core/workspace-app/tests/unit/video-borrow.test.js +198 -0
- package/core/workspace-app/tests/unit/video-edit-ask.test.js +93 -0
- package/core/workspace-app/tests/unit/video-edit-short.test.js +42 -0
- package/core/workspace-app/tests/unit/video-edit.test.js +417 -0
- package/core/workspace-app/tests/unit/video-transcript.test.js +237 -0
- package/core/workspace-app/tests/unit/waiting.test.js +48 -0
- package/core/workspace-app/tests/unit/wordpress-odoo-builders.test.js +38 -0
- package/core/workspace-app/tests/unit/workspace-bin.test.js +48 -0
- package/core/workspace-app/tests/unit/workspace-card-tools.test.js +30 -0
- package/core/workspace-app/tests/unit/workspace-delete.test.js +77 -0
- package/core/workspace-app/tests/unit/workspace-types.test.js +68 -0
- package/core/workspace-app/tests/unit/worktree-clone.test.js +250 -0
- package/{workspace-types.js → core/workspace-app/workspace-types.js} +2 -2
- package/{workspaces.js → core/workspace-app/workspaces.js} +1 -5
- package/package.json +38 -36
- package/actions/graphs.js +0 -107
- package/actions/obsidian.js +0 -59
- package/graphs.js +0 -104
- package/obsidian.js +0 -405
- /package/{WORKSPACES.md → core/workspace-app/WORKSPACES.md} +0 -0
- /package/{actions → core/workspace-app/actions}/ai-items.js +0 -0
- /package/{actions → core/workspace-app/actions}/audio.js +0 -0
- /package/{actions → core/workspace-app/actions}/build-order.js +0 -0
- /package/{actions → core/workspace-app/actions}/checks.js +0 -0
- /package/{actions → core/workspace-app/actions}/claude-session.js +0 -0
- /package/{actions → core/workspace-app/actions}/commands-center.js +0 -0
- /package/{actions → core/workspace-app/actions}/composer.js +0 -0
- /package/{actions → core/workspace-app/actions}/ddev-addons.js +0 -0
- /package/{actions → core/workspace-app/actions}/ddev-mail.js +0 -0
- /package/{actions → core/workspace-app/actions}/folders.js +0 -0
- /package/{actions → core/workspace-app/actions}/images-svg.js +0 -0
- /package/{actions → core/workspace-app/actions}/images.js +0 -0
- /package/{actions → core/workspace-app/actions}/navigation.js +0 -0
- /package/{actions → core/workspace-app/actions}/node.js +0 -0
- /package/{actions → core/workspace-app/actions}/notes.js +0 -0
- /package/{actions → core/workspace-app/actions}/plugins.js +0 -0
- /package/{actions → core/workspace-app/actions}/project-make.js +0 -0
- /package/{actions → core/workspace-app/actions}/row-actions.js +0 -0
- /package/{actions → core/workspace-app/actions}/screens.js +0 -0
- /package/{actions → core/workspace-app/actions}/video-edit.js +0 -0
- /package/{ai-inventory.js → core/workspace-app/ai-inventory.js} +0 -0
- /package/{ai-items.js → core/workspace-app/ai-items.js} +0 -0
- /package/{assistant-cast.js → core/workspace-app/assistant-cast.js} +0 -0
- /package/{assistant-suggestions.js → core/workspace-app/assistant-suggestions.js} +0 -0
- /package/{audio-voice.js → core/workspace-app/audio-voice.js} +0 -0
- /package/{auth-google.js → core/workspace-app/auth-google.js} +0 -0
- /package/{build-ai.js → core/workspace-app/build-ai.js} +0 -0
- /package/{build-order-page.js → core/workspace-app/build-order-page.js} +0 -0
- /package/{build-order.js → core/workspace-app/build-order.js} +0 -0
- /package/{builder-args.js → core/workspace-app/builder-args.js} +0 -0
- /package/{changelog.js → core/workspace-app/changelog.js} +0 -0
- /package/{chat-threads.js → core/workspace-app/chat-threads.js} +0 -0
- /package/{checks.js → core/workspace-app/checks.js} +0 -0
- /package/{claude-args.js → core/workspace-app/claude-args.js} +0 -0
- /package/{claude-sessions.js → core/workspace-app/claude-sessions.js} +0 -0
- /package/{command-author.js → core/workspace-app/command-author.js} +0 -0
- /package/{command-block.js → core/workspace-app/command-block.js} +0 -0
- /package/{commands → core/workspace-app/commands}/defaults.yml +0 -0
- /package/{commands-page.js → core/workspace-app/commands-page.js} +0 -0
- /package/{commands.js → core/workspace-app/commands.js} +0 -0
- /package/{cucumber.js → core/workspace-app/cucumber.js} +0 -0
- /package/{ddev-addons-page.js → core/workspace-app/ddev-addons-page.js} +0 -0
- /package/{ddev-addons.js → core/workspace-app/ddev-addons.js} +0 -0
- /package/{ddev-custom-commands.js → core/workspace-app/ddev-custom-commands.js} +0 -0
- /package/{ddev-domains.js → core/workspace-app/ddev-domains.js} +0 -0
- /package/{ddev-import.js → core/workspace-app/ddev-import.js} +0 -0
- /package/{ddev-mail-page.js → core/workspace-app/ddev-mail-page.js} +0 -0
- /package/{ddev-mail.js → core/workspace-app/ddev-mail.js} +0 -0
- /package/{ddev-options.js → core/workspace-app/ddev-options.js} +0 -0
- /package/{ddev-snapshots.js → core/workspace-app/ddev-snapshots.js} +0 -0
- /package/{ddev.js → core/workspace-app/ddev.js} +0 -0
- /package/{docs → core/workspace-app/docs}/DEVELOPER-GUIDE.md +0 -0
- /package/{docs → core/workspace-app/docs}/README.md +0 -0
- /package/{docs → core/workspace-app/docs}/REFERENCE.md +0 -0
- /package/{docs → core/workspace-app/docs}/USER-GUIDE.md +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-board.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-coffee.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-colours.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-icons.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-moves.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-pick-cookieman.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-settings-voices.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-status.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/create-card/create-card.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/create-card/start-ai.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-clone-address.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-clone-worktree-off.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-clone-worktree-on.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-ddev-menu.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-domains.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-home.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-ide-menu.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-remove-refusal.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-rows-worktree.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-screens.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-settings.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-workspace-page.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/home/card-settings.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/home/drag-reorder.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/home/edit-card.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/claude-code-image.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/edit-with-ai.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/gallery.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/generate-description.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/generate-plan.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/providers.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/svg-form.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/svg-result.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/upload.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/new-folder/2-form.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/new-folder/8-ddev-options.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/new-folder/files-folder.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/projects/ddev-custom-commands.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/projects/state-chip-stop.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/dashboard-dark.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/dashboard-light.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/dev-dark.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/dev-light.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/docs-dark.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/docs-light.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/icons/ai.svg +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/icons/code.svg +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/icons/docs.svg +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/icons/services.svg +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/icons/sites.svg +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/test-report-dark.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/test-report-light.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/test-scenarios.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/test-steps.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/videos-dark.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/videos-light.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/screens-menu.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/screens-new.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/settings/auth-google-lists.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/settings/delete-1-row.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/settings/delete-2-confirm.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/settings/delete-3-type-name.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/settings/delete-4-type-yes.png +0 -0
- /package/{event-log.js → core/workspace-app/event-log.js} +0 -0
- /package/{files-browser.js → core/workspace-app/files-browser.js} +0 -0
- /package/{folders.js → core/workspace-app/folders.js} +0 -0
- /package/{format.js → core/workspace-app/format.js} +0 -0
- /package/{github-auth.js → core/workspace-app/github-auth.js} +0 -0
- /package/{html.js → core/workspace-app/html.js} +0 -0
- /package/{icons.js → core/workspace-app/icons.js} +0 -0
- /package/{images-ai.js → core/workspace-app/images-ai.js} +0 -0
- /package/{images-create.js → core/workspace-app/images-create.js} +0 -0
- /package/{images-page.js → core/workspace-app/images-page.js} +0 -0
- /package/{images-records.js → core/workspace-app/images-records.js} +0 -0
- /package/{images-render.js → core/workspace-app/images-render.js} +0 -0
- /package/{images-svg-core.js → core/workspace-app/images-svg-core.js} +0 -0
- /package/{images-svg-sanitize.js → core/workspace-app/images-svg-sanitize.js} +0 -0
- /package/{images-svg.js → core/workspace-app/images-svg.js} +0 -0
- /package/{images.js → core/workspace-app/images.js} +0 -0
- /package/{jobs.js → core/workspace-app/jobs.js} +0 -0
- /package/{linger.js → core/workspace-app/linger.js} +0 -0
- /package/{lists.js → core/workspace-app/lists.js} +0 -0
- /package/{media-info.js → core/workspace-app/media-info.js} +0 -0
- /package/{navigation-page.js → core/workspace-app/navigation-page.js} +0 -0
- /package/{navigation.js → core/workspace-app/navigation.js} +0 -0
- /package/{notes.js → core/workspace-app/notes.js} +0 -0
- /package/{palette-index.js → core/workspace-app/palette-index.js} +0 -0
- /package/{playwright.config.js → core/workspace-app/playwright.config.js} +0 -0
- /package/{plugin-install.js → core/workspace-app/plugin-install.js} +0 -0
- /package/{plugin-manifest.js → core/workspace-app/plugin-manifest.js} +0 -0
- /package/{plugin-settings.js → core/workspace-app/plugin-settings.js} +0 -0
- /package/{plugins → core/workspace-app/plugins}/workspace-notes/index.js +0 -0
- /package/{project-make.js → core/workspace-app/project-make.js} +0 -0
- /package/{project-name.js → core/workspace-app/project-name.js} +0 -0
- /package/{public → core/workspace-app/public}/assistant-avatar-moves.js +0 -0
- /package/{public → core/workspace-app/public}/assistant-avatar-ui.js +0 -0
- /package/{public → core/workspace-app/public}/assistant-avatar.js +0 -0
- /package/{public → core/workspace-app/public}/avatar/druplicon.vrm +0 -0
- /package/{public → core/workspace-app/public}/css/base.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/ai-assistant.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/assistant-avatar.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/assistant-views.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/build-order.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/clone-as-a-git-worktree.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/command-palette.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/commands-center.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/confirm-dialog.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/create-card.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/ddev-menu.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/deep-chat.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/density.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/floating-assistant-workspace-pages.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/folders.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/full-height-left-assistant-sidebar-all-pages.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/full-height-right-actions-rail-pages-that-have-actions.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/grid-and-list.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/help-page.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/hero.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/images.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/layout-rhythm-and-spacing-polish.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/mic-on-any-field-that-wants-typing.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/modal-fit.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/page-width.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/plugins-page.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/project-cards.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/project-rows.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/reordering-the-workspace-cards.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/responsive-home-and-the-workspace-pages.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/running-commands-as-toasts.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/settings-editor-core-config-yml.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/short-results-as-a-toast-at-the-top.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/sound-player.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/suggest-agents-skills-commands.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/tab-modal.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/terminals.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/test-report-media-one-file-per-row-paged.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/top-toolbar-logo-breadcrumb.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/video-edit.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/web-ide-open-with.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/working-indicators.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/workspace-cards.css +0 -0
- /package/{public → core/workspace-app/public}/favicon.ico +0 -0
- /package/{public → core/workspace-app/public}/favicon.png +0 -0
- /package/{public → core/workspace-app/public}/htmx.min.js +0 -0
- /package/{public → core/workspace-app/public}/logo.png +0 -0
- /package/{public → core/workspace-app/public}/media-player.js +0 -0
- /package/{public → core/workspace-app/public}/mic.js +0 -0
- /package/{public → core/workspace-app/public}/narration.js +0 -0
- /package/{public → core/workspace-app/public}/palette.js +0 -0
- /package/{public → core/workspace-app/public}/sortable.js +0 -0
- /package/{public → core/workspace-app/public}/suggest.js +0 -0
- /package/{public → core/workspace-app/public}/terminal.js +0 -0
- /package/{public → core/workspace-app/public}/themes/default/theme.css +0 -0
- /package/{public → core/workspace-app/public}/themes/ember/theme.css +0 -0
- /package/{public → core/workspace-app/public}/themes/press/theme.css +0 -0
- /package/{public → core/workspace-app/public}/themes/slate/theme.css +0 -0
- /package/{public → core/workspace-app/public}/touch-icon.png +0 -0
- /package/{public → core/workspace-app/public}/ui.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/LICENSE.txt +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/ace.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/ext-language_tools.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/ext-searchbox.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/mode-css.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/mode-html.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/mode-javascript.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/mode-markdown.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/mode-sh.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/mode-yaml.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/theme-textmate.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/theme-tomorrow_night.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/worker-yaml.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/deep-chat.LICENSE +0 -0
- /package/{public → core/workspace-app/public}/vendor/deep-chat.bundle.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/dm-serif-text-LICENSE.txt +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/dm-serif-text-latin-400-italic.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/dm-serif-text-latin-400-normal.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/figtree-LICENSE.txt +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/figtree-latin-400-italic.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/figtree-latin-400-normal.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/figtree-latin-600-italic.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/figtree-latin-600-normal.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/jetbrains-mono-LICENSE.txt +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/ubuntu-mono-LICENSE.txt +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/ubuntu-mono-latin-wght-normal.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/tabler-LICENSE.txt +0 -0
- /package/{public → core/workspace-app/public}/vendor/tabler-sprite.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/three/LICENSE +0 -0
- /package/{public → core/workspace-app/public}/vendor/three/addons/loaders/GLTFLoader.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/three/addons/utils/BufferGeometryUtils.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/three/addons/utils/SkeletonUtils.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/three/three.core.min.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/three/three.module.min.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/three-vrm/LICENSE +0 -0
- /package/{public → core/workspace-app/public}/vendor/three-vrm/three-vrm.module.min.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/uikit-icons.min.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/uikit.min.css +0 -0
- /package/{public → core/workspace-app/public}/vendor/uikit.min.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/bookmark-outlined.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/headset.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/menu.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/pause.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/play.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/share.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/sound-off.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/sound-on.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/stop.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/xterm/addon-fit.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/xterm/addon-unicode11.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/xterm/addon-web-links.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/xterm/xterm.css +0 -0
- /package/{public → core/workspace-app/public}/vendor/xterm/xterm.js +0 -0
- /package/{rag.js → core/workspace-app/rag.js} +0 -0
- /package/{reader.js → core/workspace-app/reader.js} +0 -0
- /package/{repo-blobs.js → core/workspace-app/repo-blobs.js} +0 -0
- /package/{report-pdf.js → core/workspace-app/report-pdf.js} +0 -0
- /package/{screenrc → core/workspace-app/screenrc} +0 -0
- /package/{screens.js → core/workspace-app/screens.js} +0 -0
- /package/{scripts → core/workspace-app/scripts}/code-server-start.sh +0 -0
- /package/{scripts → core/workspace-app/scripts}/images-claude-finish.js +0 -0
- /package/{scripts → core/workspace-app/scripts}/screen-host.sh +0 -0
- /package/{scripts → core/workspace-app/scripts}/screen-runner.js +0 -0
- /package/{scripts → core/workspace-app/scripts}/screen-then.js +0 -0
- /package/{scripts → core/workspace-app/scripts}/update.sh +0 -0
- /package/{settings-file.js → core/workspace-app/settings-file.js} +0 -0
- /package/{speech.js → core/workspace-app/speech.js} +0 -0
- /package/{tab-modal.js → core/workspace-app/tab-modal.js} +0 -0
- /package/{test-reports.js → core/workspace-app/test-reports.js} +0 -0
- /package/{themes.js → core/workspace-app/themes.js} +0 -0
- /package/{transcripts.js → core/workspace-app/transcripts.js} +0 -0
- /package/{urls.js → core/workspace-app/urls.js} +0 -0
- /package/{validate.js → core/workspace-app/validate.js} +0 -0
- /package/{version-check.js → core/workspace-app/version-check.js} +0 -0
- /package/{video-edit.js → core/workspace-app/video-edit.js} +0 -0
- /package/{waiting.js → core/workspace-app/waiting.js} +0 -0
- /package/{workspace-card-tools.js → core/workspace-app/workspace-card-tools.js} +0 -0
- /package/{workspace-delete.js → core/workspace-app/workspace-delete.js} +0 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Every token the "press" theme sets — core/config/theme.press.yml
|
|
2
|
+
#
|
|
3
|
+
# Webship Press. A theme is a palette: it declares custom properties and selects nothing, so every
|
|
4
|
+
# value in it is configuration. They are all here, editable on the Settings screen, rather than
|
|
5
|
+
# only by editing a stylesheet inside the app.
|
|
6
|
+
#
|
|
7
|
+
# Names go without the leading dashes. `tokens:` applies to both halves; `dark:` applies to the
|
|
8
|
+
# dark half only, exactly like the html.dark block in a theme file. Anything here overrides the
|
|
9
|
+
# theme CSS, which is what you get with no YAML at all.
|
|
10
|
+
|
|
11
|
+
tokens:
|
|
12
|
+
brand-primary: "#0074e0"
|
|
13
|
+
brand-secondary: "#2b447c"
|
|
14
|
+
brand-accent: "#e4dcff"
|
|
15
|
+
brand-dark: "#000000"
|
|
16
|
+
brand-light: "#ebe8e5"
|
|
17
|
+
subtle-light: "#f5f3f2"
|
|
18
|
+
subtle-brand: "#deedff"
|
|
19
|
+
subtle-accent: "#f6f3ff"
|
|
20
|
+
text-default: "#000000"
|
|
21
|
+
text-subtle: "#4d4d4d"
|
|
22
|
+
text-inverse: "#ffffff"
|
|
23
|
+
text-light: "#ebe8e5"
|
|
24
|
+
text-brand: "var(--brand-primary)"
|
|
25
|
+
text-accent: "var(--brand-accent)"
|
|
26
|
+
font-primary: "Figtree, \"Helvetica Neue\", Arial, sans-serif"
|
|
27
|
+
font-secondary: "\"DM Serif Text\", Georgia, serif"
|
|
28
|
+
font-code: "\"JetBrains Mono\", ui-monospace, SFMono-Regular, Menlo, monospace"
|
|
29
|
+
weight-regular: 400
|
|
30
|
+
weight-semibold: 600
|
|
31
|
+
leading-heading: 1.4
|
|
32
|
+
leading-display: 1.3
|
|
33
|
+
leading-body: 1.55
|
|
34
|
+
tracking-wide: 0.0625em
|
|
35
|
+
size-h1: 2.25rem
|
|
36
|
+
size-h2: 1.875rem
|
|
37
|
+
size-h3: 1.5rem
|
|
38
|
+
size-h4: 1.25rem
|
|
39
|
+
size-h5: 1.125rem
|
|
40
|
+
size-h6: 0.8125rem
|
|
41
|
+
size-body: 1rem
|
|
42
|
+
size-small: 0.875rem
|
|
43
|
+
type-h1: "var(--weight-regular) var(--size-h1)/1.15 var(--font-secondary)"
|
|
44
|
+
type-h2: "var(--weight-regular) var(--size-h2)/1.2 var(--font-secondary)"
|
|
45
|
+
type-h3: "var(--weight-semibold) var(--size-h3)/1.25 var(--font-primary)"
|
|
46
|
+
type-h4: "var(--weight-semibold) var(--size-h4)/1.3 var(--font-primary)"
|
|
47
|
+
type-h5: "var(--weight-semibold) var(--size-h5)/1.35 var(--font-primary)"
|
|
48
|
+
type-h6: "var(--weight-semibold) var(--size-h6)/1 var(--font-primary)"
|
|
49
|
+
type-body: "var(--weight-regular) var(--size-body)/var(--leading-body) var(--font-primary)"
|
|
50
|
+
type-body-sm: "var(--weight-regular) var(--size-small)/1.45 var(--font-primary)"
|
|
51
|
+
type-label: "var(--weight-semibold) var(--size-body)/1 var(--font-primary)"
|
|
52
|
+
type-caption: "var(--weight-regular) var(--size-small)/1.35 var(--font-primary)"
|
|
53
|
+
type-mono: "var(--weight-regular) var(--size-body)/1.5 var(--font-code)"
|
|
54
|
+
type-mono-sm: "var(--weight-regular) var(--size-small)/1.4 var(--font-code)"
|
|
55
|
+
tracking-h1: -0.02em
|
|
56
|
+
tracking-h2: -0.015em
|
|
57
|
+
tracking-h3: -0.01em
|
|
58
|
+
tracking-h4: -0.01em
|
|
59
|
+
tracking-h5: -0.005em
|
|
60
|
+
tracking-h6: 0.08em
|
|
61
|
+
surface: "var(--subtle-light)"
|
|
62
|
+
surface-card: "#ffffff"
|
|
63
|
+
surface-muted: "#f1eef9"
|
|
64
|
+
surface-input: "#ffffff"
|
|
65
|
+
text-subtle-2: "#333333"
|
|
66
|
+
line: "#e2ddd8"
|
|
67
|
+
line-strong: "#c9c2ba"
|
|
68
|
+
link: "#0063c0"
|
|
69
|
+
brand-pressed: "#0063c0"
|
|
70
|
+
brand-2-pressed: "#22355f"
|
|
71
|
+
focus-ring: "rgba(0, 116, 224, .35)"
|
|
72
|
+
ok: "#146c43"
|
|
73
|
+
ok-soft: "#d0e2d9"
|
|
74
|
+
pcard-tool-label: 0rem
|
|
75
|
+
ok-ink: "#14532d"
|
|
76
|
+
danger: "#e71139"
|
|
77
|
+
danger-soft: "#facfd7"
|
|
78
|
+
danger-ink: "#7d1a2e"
|
|
79
|
+
danger-armed: "#a4133c"
|
|
80
|
+
danger-text: "#c20f31"
|
|
81
|
+
warning: "#fdd26e"
|
|
82
|
+
warning-soft: "#fef1d3"
|
|
83
|
+
warning-ink: "#5c4300"
|
|
84
|
+
info: "#0dcaf0"
|
|
85
|
+
info-soft: "#cff4fc"
|
|
86
|
+
info-ink: "#055160"
|
|
87
|
+
success: "#146c43"
|
|
88
|
+
success-soft: "#d0e2d9"
|
|
89
|
+
success-ink: "#0f5132"
|
|
90
|
+
busy-soft: "var(--subtle-brand)"
|
|
91
|
+
busy-ink: "var(--brand-secondary)"
|
|
92
|
+
accent-soft: "var(--subtle-accent)"
|
|
93
|
+
accent-ink: "#4b3fa8"
|
|
94
|
+
chip-bg: "var(--brand-primary)"
|
|
95
|
+
chip-ink: "var(--text-inverse)"
|
|
96
|
+
shadow-card: "0 4px 16px rgba(35, 41, 70, .06)"
|
|
97
|
+
shadow-card-hover: "0 12px 28px rgba(43, 68, 124, .16)"
|
|
98
|
+
shadow-float: "0 1.5rem 3rem rgba(43, 68, 124, .28)"
|
|
99
|
+
shadow-toast: "0 14px 34px rgba(35, 41, 70, .26)"
|
|
100
|
+
toast-ring: "rgba(255, 255, 255, .9)"
|
|
101
|
+
code-bg: "#1f2437"
|
|
102
|
+
code-ink: "#e6e9f5"
|
|
103
|
+
terminal-ink: "#c9f7d4"
|
|
104
|
+
media-bg: "#000000"
|
|
105
|
+
paper: "#ffffff"
|
|
106
|
+
checker-a: "#dcdcdc"
|
|
107
|
+
checker-b: "#d8d8d8"
|
|
108
|
+
checker-bg: "#f4f4f4"
|
|
109
|
+
overlay: "rgba(0, 0, 0, .6)"
|
|
110
|
+
brand-1: "var(--brand-primary)"
|
|
111
|
+
brand-2: "var(--brand-secondary)"
|
|
112
|
+
brand-3: "var(--brand-accent)"
|
|
113
|
+
brand-grad: "linear-gradient(135deg, var(--brand-primary), var(--brand-secondary))"
|
|
114
|
+
ink: "var(--brand-secondary)"
|
|
115
|
+
|
|
116
|
+
# The dark half. Only the tokens that differ at night are listed.
|
|
117
|
+
dark:
|
|
118
|
+
surface: "#0f1626"
|
|
119
|
+
surface-card: "#172033"
|
|
120
|
+
surface-muted: "#1f2a42"
|
|
121
|
+
surface-input: "#0f1729"
|
|
122
|
+
text-default: "#e8edf6"
|
|
123
|
+
text-subtle-2: "#c2cbdd"
|
|
124
|
+
text-subtle: "#93a0b8"
|
|
125
|
+
line: "#27334d"
|
|
126
|
+
line-strong: "#3b4a6d"
|
|
127
|
+
link: "#57a8ff"
|
|
128
|
+
brand-pressed: "#2f8fe8"
|
|
129
|
+
brand-2-pressed: "#1b2b4d"
|
|
130
|
+
focus-ring: "rgba(87, 168, 255, .40)"
|
|
131
|
+
ok-soft: "#10261a"
|
|
132
|
+
ok-ink: "#a8e6b8"
|
|
133
|
+
danger-soft: "#2a1620"
|
|
134
|
+
danger-ink: "#ffd0da"
|
|
135
|
+
danger-armed: "#e0466b"
|
|
136
|
+
danger-text: "#ff8fa3"
|
|
137
|
+
warning-soft: "#2e2610"
|
|
138
|
+
warning-ink: "#fde4a3"
|
|
139
|
+
info-soft: "#0c2a33"
|
|
140
|
+
info-ink: "#9eeaf9"
|
|
141
|
+
success-soft: "#10291d"
|
|
142
|
+
success-ink: "#a3d9bd"
|
|
143
|
+
busy-soft: "#1a2440"
|
|
144
|
+
busy-ink: "#b9c9ff"
|
|
145
|
+
accent-soft: "#2c2550"
|
|
146
|
+
accent-ink: "#d9d2ff"
|
|
147
|
+
chip-bg: "#33406e"
|
|
148
|
+
chip-ink: "#e8edf6"
|
|
149
|
+
subtle-light: "#131b2c"
|
|
150
|
+
subtle-brand: "#10243d"
|
|
151
|
+
subtle-accent: "#221f3a"
|
|
152
|
+
shadow-card: "0 4px 16px rgba(0, 0, 0, .35)"
|
|
153
|
+
shadow-card-hover: "0 12px 28px rgba(0, 0, 0, .50)"
|
|
154
|
+
shadow-float: "0 1.5rem 3rem rgba(0, 0, 0, .55)"
|
|
155
|
+
shadow-toast: "0 14px 34px rgba(0, 0, 0, .50)"
|
|
156
|
+
toast-ring: "rgba(0, 0, 0, .5)"
|
|
157
|
+
checker-a: "#2a3550"
|
|
158
|
+
checker-b: "#26314a"
|
|
159
|
+
checker-bg: "#131b2c"
|
|
160
|
+
overlay: "rgba(0, 0, 0, .72)"
|
|
161
|
+
ink: "var(--text-default)"
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Every token the "slate" theme sets — core/config/theme.slate.yml
|
|
2
|
+
#
|
|
3
|
+
# Slate. A theme is a palette: it declares custom properties and selects nothing, so every
|
|
4
|
+
# value in it is configuration. They are all here, editable on the Settings screen, rather than
|
|
5
|
+
# only by editing a stylesheet inside the app.
|
|
6
|
+
#
|
|
7
|
+
# Names go without the leading dashes. `tokens:` applies to both halves; `dark:` applies to the
|
|
8
|
+
# dark half only, exactly like the html.dark block in a theme file. Anything here overrides the
|
|
9
|
+
# theme CSS, which is what you get with no YAML at all.
|
|
10
|
+
|
|
11
|
+
tokens:
|
|
12
|
+
brand-primary: "var(--brand-secondary)"
|
|
13
|
+
brand-secondary: "#4f6d8c"
|
|
14
|
+
brand-accent: "#6b8fa8"
|
|
15
|
+
brand-grad: "linear-gradient(135deg, var(--brand-primary), var(--brand-secondary) 65%, var(--brand-accent))"
|
|
16
|
+
text-default: "#1f2933"
|
|
17
|
+
text-subtle-2: "#3e4c59"
|
|
18
|
+
text-subtle: "#7b8794"
|
|
19
|
+
surface: "#f4f6f8"
|
|
20
|
+
surface-card: "#fff"
|
|
21
|
+
surface-muted: "#e9edf1"
|
|
22
|
+
line: "#dde3e9"
|
|
23
|
+
line-strong: "#c3ccd5"
|
|
24
|
+
ok: "#2f855a"
|
|
25
|
+
ok-soft: "#f0f8f3"
|
|
26
|
+
pcard-tool-label: 0rem
|
|
27
|
+
ok-ink: "#1c4532"
|
|
28
|
+
danger: "#c53030"
|
|
29
|
+
danger-soft: "#fdf2f2"
|
|
30
|
+
danger-ink: "#742a2a"
|
|
31
|
+
danger-armed: "#9b2c2c"
|
|
32
|
+
danger-text: "#c53030"
|
|
33
|
+
warning: "#d69e2e"
|
|
34
|
+
warning-soft: "#fdf6e3"
|
|
35
|
+
warning-ink: "#744210"
|
|
36
|
+
info: "#3182ce"
|
|
37
|
+
info-soft: "#ebf4fb"
|
|
38
|
+
info-ink: "#2a4365"
|
|
39
|
+
success: "#146c43"
|
|
40
|
+
success-soft: "#d0e2d9"
|
|
41
|
+
success-ink: "#0f5132"
|
|
42
|
+
link: "#2f6a8d"
|
|
43
|
+
subtle-brand: "#eef3f7"
|
|
44
|
+
busy-soft: "#eaf1f5"
|
|
45
|
+
busy-ink: "var(--brand-secondary)"
|
|
46
|
+
subtle-light: "#f7fafc"
|
|
47
|
+
brand-1: "var(--brand-primary)"
|
|
48
|
+
brand-2: "var(--brand-secondary)"
|
|
49
|
+
font-code: "\"JetBrains Mono\", ui-monospace, SFMono-Regular, Menlo, monospace"
|
|
50
|
+
font-primary: "Figtree, \"Helvetica Neue\", Arial, sans-serif"
|
|
51
|
+
font-secondary: "\"DM Serif Text\", Georgia, serif"
|
|
52
|
+
ink: "var(--brand-secondary)"
|
|
53
|
+
leading-body: 1.6
|
|
54
|
+
leading-display: 1.3
|
|
55
|
+
leading-heading: 1.4
|
|
56
|
+
size-body: 0.9375rem
|
|
57
|
+
size-h1: 2rem
|
|
58
|
+
size-h2: 1.625rem
|
|
59
|
+
size-h3: 1.5rem
|
|
60
|
+
size-h4: 1.25rem
|
|
61
|
+
size-h5: 1.125rem
|
|
62
|
+
size-h6: 1rem
|
|
63
|
+
subtle-accent: "#eef4f8"
|
|
64
|
+
weight-regular: 400
|
|
65
|
+
weight-semibold: 600
|
|
66
|
+
tracking-wide: 0.0625em
|
|
67
|
+
size-small: 0.875rem
|
|
68
|
+
type-h1: "var(--weight-regular) var(--size-h1)/1.15 var(--font-secondary)"
|
|
69
|
+
type-h2: "var(--weight-regular) var(--size-h2)/1.2 var(--font-secondary)"
|
|
70
|
+
type-h3: "var(--weight-semibold) var(--size-h3)/1.25 var(--font-primary)"
|
|
71
|
+
type-h4: "var(--weight-semibold) var(--size-h4)/1.3 var(--font-primary)"
|
|
72
|
+
type-h5: "var(--weight-semibold) var(--size-h5)/1.35 var(--font-primary)"
|
|
73
|
+
type-h6: "var(--weight-semibold) var(--size-h6)/1 var(--font-primary)"
|
|
74
|
+
type-body: "var(--weight-regular) var(--size-body)/var(--leading-body) var(--font-primary)"
|
|
75
|
+
type-body-sm: "var(--weight-regular) var(--size-small)/1.45 var(--font-primary)"
|
|
76
|
+
type-label: "var(--weight-semibold) var(--size-body)/1 var(--font-primary)"
|
|
77
|
+
type-caption: "var(--weight-regular) var(--size-small)/1.35 var(--font-primary)"
|
|
78
|
+
type-mono: "var(--weight-regular) var(--size-body)/1.5 var(--font-code)"
|
|
79
|
+
type-mono-sm: "var(--weight-regular) var(--size-small)/1.4 var(--font-code)"
|
|
80
|
+
tracking-h1: normal
|
|
81
|
+
tracking-h2: normal
|
|
82
|
+
tracking-h3: normal
|
|
83
|
+
tracking-h4: normal
|
|
84
|
+
tracking-h5: normal
|
|
85
|
+
tracking-h6: "var(--tracking-wide)"
|
|
86
|
+
brand-3: "var(--brand-accent)"
|
|
87
|
+
brand-dark: "#12171c"
|
|
88
|
+
brand-light: "#e4e9ee"
|
|
89
|
+
text-inverse: "#ffffff"
|
|
90
|
+
text-light: "#e4e9ee"
|
|
91
|
+
text-brand: "var(--brand-primary)"
|
|
92
|
+
text-accent: "var(--brand-accent)"
|
|
93
|
+
surface-input: "#ffffff"
|
|
94
|
+
brand-pressed: "#33698a"
|
|
95
|
+
brand-2-pressed: "#405a75"
|
|
96
|
+
focus-ring: "rgba(61, 126, 166, .35)"
|
|
97
|
+
accent-soft: "#eaf1f6"
|
|
98
|
+
accent-ink: "#2f5f7d"
|
|
99
|
+
chip-bg: "var(--brand-primary)"
|
|
100
|
+
chip-ink: "var(--text-inverse)"
|
|
101
|
+
shadow-card: "0 4px 16px rgba(31, 41, 51, .07)"
|
|
102
|
+
shadow-card-hover: "0 12px 28px rgba(31, 41, 51, .16)"
|
|
103
|
+
shadow-float: "0 1.5rem 3rem rgba(31, 41, 51, .26)"
|
|
104
|
+
shadow-toast: "0 14px 34px rgba(31, 41, 51, .24)"
|
|
105
|
+
toast-ring: "rgba(255, 255, 255, .9)"
|
|
106
|
+
code-bg: "#1b2229"
|
|
107
|
+
code-ink: "#dde5ec"
|
|
108
|
+
terminal-ink: "#a7d9bd"
|
|
109
|
+
media-bg: "#000000"
|
|
110
|
+
paper: "#ffffff"
|
|
111
|
+
checker-a: "#dcdcdc"
|
|
112
|
+
checker-b: "#d8d8d8"
|
|
113
|
+
checker-bg: "#f4f4f4"
|
|
114
|
+
overlay: "rgba(10, 14, 18, .6)"
|
|
115
|
+
|
|
116
|
+
# The dark half. Only the tokens that differ at night are listed.
|
|
117
|
+
dark:
|
|
118
|
+
text-default: "#e4e9ee"
|
|
119
|
+
text-subtle-2: "#bcc6d0"
|
|
120
|
+
text-subtle: "#8b97a5"
|
|
121
|
+
surface: "#12171c"
|
|
122
|
+
surface-card: "#1a2027"
|
|
123
|
+
surface-muted: "#161b21"
|
|
124
|
+
line: "#2a323b"
|
|
125
|
+
line-strong: "#3c4753"
|
|
126
|
+
ok-soft: "#14251c"
|
|
127
|
+
ok-ink: "#a7d9bd"
|
|
128
|
+
danger-soft: "#2a1618"
|
|
129
|
+
danger-ink: "#f0b4b4"
|
|
130
|
+
danger-armed: "#e05252"
|
|
131
|
+
danger-text: "#f28b8b"
|
|
132
|
+
warning-soft: "#2a2412"
|
|
133
|
+
warning-ink: "#f6d58e"
|
|
134
|
+
info-soft: "#12202c"
|
|
135
|
+
info-ink: "#9cc9ee"
|
|
136
|
+
success-soft: "#10291d"
|
|
137
|
+
success-ink: "#a3d9bd"
|
|
138
|
+
link: "#6aa9cc"
|
|
139
|
+
subtle-brand: "#1e262e"
|
|
140
|
+
busy-soft: "#10151a"
|
|
141
|
+
busy-ink: "#a7d9bd"
|
|
142
|
+
subtle-light: "#171d23"
|
|
143
|
+
surface-input: "#12171c"
|
|
144
|
+
brand-pressed: "#6aa9cc"
|
|
145
|
+
brand-2-pressed: "#3d566f"
|
|
146
|
+
focus-ring: "rgba(106, 169, 204, .40)"
|
|
147
|
+
accent-soft: "#1c2830"
|
|
148
|
+
accent-ink: "#a8cee2"
|
|
149
|
+
chip-bg: "#2f4250"
|
|
150
|
+
chip-ink: "#e4e9ee"
|
|
151
|
+
shadow-card: "0 4px 16px rgba(0, 0, 0, .38)"
|
|
152
|
+
shadow-card-hover: "0 12px 28px rgba(0, 0, 0, .52)"
|
|
153
|
+
shadow-float: "0 1.5rem 3rem rgba(0, 0, 0, .58)"
|
|
154
|
+
shadow-toast: "0 14px 34px rgba(0, 0, 0, .52)"
|
|
155
|
+
toast-ring: "rgba(0, 0, 0, .5)"
|
|
156
|
+
checker-a: "#2b343d"
|
|
157
|
+
checker-b: "#262e36"
|
|
158
|
+
checker-bg: "#171d23"
|
|
159
|
+
overlay: "rgba(0, 0, 0, .72)"
|
|
160
|
+
ink: "var(--text-default)"
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# UPSUN — core/config/theme.upsun.yml
|
|
2
|
+
#
|
|
3
|
+
# A style in the shape of the Upsun console. The values were read out of the console's own design
|
|
4
|
+
# system — 584 custom properties on auth.upsun.com, which is the same system the console wears — so
|
|
5
|
+
# the indigo, the ebony and the ice below are the ones it actually uses, not colours picked off a
|
|
6
|
+
# screenshot.
|
|
7
|
+
#
|
|
8
|
+
# Its signatures: the #6046ff indigo primary, a very dark ebony-to-night ink, an #f2f3f4 page under
|
|
9
|
+
# white cards, and Open Sans throughout. Open Sans is not vendored here, so a machine without it
|
|
10
|
+
# falls back through the stack.
|
|
11
|
+
|
|
12
|
+
# What was measured and what was not, because the two are different here.
|
|
13
|
+
#
|
|
14
|
+
# The COLOURS are the console's own, read from the 584 custom properties its design system declares.
|
|
15
|
+
# The FAMILY is its own too: Open Sans, throughout, for headings as well as body.
|
|
16
|
+
#
|
|
17
|
+
# The heading SCALE is not. The page those values came from leaves bare headings at the browser's
|
|
18
|
+
# defaults — 32 / 24 / 18.72px and so on — which is the user agent stylesheet, not a design system,
|
|
19
|
+
# and the console itself is behind a login. So the heading ramp here is this workspace's, not
|
|
20
|
+
# Upsun's, and that is stated rather than implied by a number that looks measured.
|
|
21
|
+
|
|
22
|
+
name: UPSUN
|
|
23
|
+
|
|
24
|
+
tokens:
|
|
25
|
+
brand-primary: "#6046ff"
|
|
26
|
+
brand-secondary: "#302f45"
|
|
27
|
+
brand-accent: "#efe7ff"
|
|
28
|
+
brand-dark: "#01001a"
|
|
29
|
+
brand-light: "#f5f7fa"
|
|
30
|
+
subtle-light: "#f5f7fa"
|
|
31
|
+
subtle-brand: "#efedff"
|
|
32
|
+
subtle-accent: "#efe7ff"
|
|
33
|
+
text-default: "#1a192b"
|
|
34
|
+
text-subtle: "#5f5e70"
|
|
35
|
+
text-inverse: "#ffffff"
|
|
36
|
+
text-light: "#f5f7fa"
|
|
37
|
+
text-brand: "var(--brand-primary)"
|
|
38
|
+
text-accent: "var(--brand-accent)"
|
|
39
|
+
font-primary: "\"Open Sans\", Helvetica, Arial, sans-serif"
|
|
40
|
+
font-secondary: "\"Open Sans\", Helvetica, Arial, sans-serif"
|
|
41
|
+
font-code: "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace"
|
|
42
|
+
weight-regular: 400
|
|
43
|
+
weight-semibold: 600
|
|
44
|
+
leading-heading: 1.4
|
|
45
|
+
leading-display: 1.3
|
|
46
|
+
leading-body: 1.5
|
|
47
|
+
tracking-wide: 0.0625em
|
|
48
|
+
size-h1: 2rem
|
|
49
|
+
size-h2: 1.625rem
|
|
50
|
+
size-h3: 1.5rem
|
|
51
|
+
size-h4: 1.25rem
|
|
52
|
+
size-h5: 1.125rem
|
|
53
|
+
size-h6: 1rem
|
|
54
|
+
size-body: 0.9375rem
|
|
55
|
+
size-small: 0.875rem
|
|
56
|
+
type-h1: "var(--weight-semibold) var(--size-h1)/1.2 var(--font-primary)"
|
|
57
|
+
type-h2: "var(--weight-semibold) var(--size-h2)/1.25 var(--font-primary)"
|
|
58
|
+
type-h3: "var(--weight-semibold) var(--size-h3)/1.25 var(--font-primary)"
|
|
59
|
+
type-h4: "var(--weight-semibold) var(--size-h4)/1.3 var(--font-primary)"
|
|
60
|
+
type-h5: "var(--weight-semibold) var(--size-h5)/1.35 var(--font-primary)"
|
|
61
|
+
type-h6: "var(--weight-semibold) var(--size-h6)/1 var(--font-primary)"
|
|
62
|
+
type-body: "var(--weight-regular) var(--size-body)/var(--leading-body) var(--font-primary)"
|
|
63
|
+
type-body-sm: "var(--weight-regular) var(--size-small)/1.45 var(--font-primary)"
|
|
64
|
+
type-label: "var(--weight-semibold) var(--size-body)/1 var(--font-primary)"
|
|
65
|
+
type-caption: "var(--weight-regular) var(--size-small)/1.35 var(--font-primary)"
|
|
66
|
+
type-mono: "var(--weight-regular) var(--size-body)/1.5 var(--font-code)"
|
|
67
|
+
type-mono-sm: "var(--weight-regular) var(--size-small)/1.4 var(--font-code)"
|
|
68
|
+
tracking-h1: normal
|
|
69
|
+
tracking-h2: normal
|
|
70
|
+
tracking-h3: normal
|
|
71
|
+
tracking-h4: normal
|
|
72
|
+
tracking-h5: normal
|
|
73
|
+
tracking-h6: "var(--tracking-wide)"
|
|
74
|
+
surface: "#f2f3f4"
|
|
75
|
+
surface-card: "#ffffff"
|
|
76
|
+
surface-muted: "#f9f9f9"
|
|
77
|
+
surface-input: "#ffffff"
|
|
78
|
+
text-subtle-2: "#302f45"
|
|
79
|
+
line: "#e7e7e7"
|
|
80
|
+
line-strong: "#c9d0e4"
|
|
81
|
+
link: "#6046ff"
|
|
82
|
+
brand-pressed: "#3a2a99"
|
|
83
|
+
brand-2-pressed: "#1a192b"
|
|
84
|
+
focus-ring: "#86b5ff4c"
|
|
85
|
+
ok: "#23b7b7"
|
|
86
|
+
ok-soft: "#d6f6ef"
|
|
87
|
+
pcard-tool-label: 0rem
|
|
88
|
+
ok-ink: "#188181"
|
|
89
|
+
danger: "#fb3728"
|
|
90
|
+
danger-soft: "#fce1e1"
|
|
91
|
+
danger-ink: "#6d144f"
|
|
92
|
+
danger-armed: "#ff5d25"
|
|
93
|
+
danger-text: "#fb3728"
|
|
94
|
+
warning: "#eda900"
|
|
95
|
+
warning-soft: "#fcf4db"
|
|
96
|
+
warning-ink: "#9a6f1e"
|
|
97
|
+
info: "#86b5ff"
|
|
98
|
+
info-soft: "#efedff"
|
|
99
|
+
info-ink: "#302f45"
|
|
100
|
+
success: "#146c43"
|
|
101
|
+
success-soft: "#d0e2d9"
|
|
102
|
+
success-ink: "#0f5132"
|
|
103
|
+
busy-soft: "var(--subtle-brand)"
|
|
104
|
+
busy-ink: "var(--brand-secondary)"
|
|
105
|
+
accent-soft: "#efe7ff"
|
|
106
|
+
accent-ink: "#9d67ff"
|
|
107
|
+
chip-bg: "#6046ff"
|
|
108
|
+
chip-ink: "#ffffff"
|
|
109
|
+
shadow-card: "0 4px 16px rgba(35, 41, 70, .06)"
|
|
110
|
+
shadow-card-hover: "0 12px 28px rgba(43, 68, 124, .16)"
|
|
111
|
+
shadow-float: "0 1.5rem 3rem rgba(43, 68, 124, .28)"
|
|
112
|
+
shadow-toast: "0 14px 34px rgba(35, 41, 70, .26)"
|
|
113
|
+
toast-ring: "rgba(255, 255, 255, .9)"
|
|
114
|
+
code-bg: "#1a192b"
|
|
115
|
+
code-ink: "#f5f7fa"
|
|
116
|
+
terminal-ink: "#c9f7d4"
|
|
117
|
+
media-bg: "#000000"
|
|
118
|
+
paper: "#ffffff"
|
|
119
|
+
checker-a: "#dcdcdc"
|
|
120
|
+
checker-b: "#d8d8d8"
|
|
121
|
+
checker-bg: "#f4f4f4"
|
|
122
|
+
overlay: "#1a1a2be5"
|
|
123
|
+
brand-1: "var(--brand-primary)"
|
|
124
|
+
brand-2: "var(--brand-secondary)"
|
|
125
|
+
brand-3: "var(--brand-accent)"
|
|
126
|
+
brand-grad: "linear-gradient(135deg, var(--brand-primary), var(--brand-secondary))"
|
|
127
|
+
ink: "var(--brand-secondary)"
|
|
128
|
+
|
|
129
|
+
# The dark half.
|
|
130
|
+
dark:
|
|
131
|
+
surface: "#1a192b"
|
|
132
|
+
surface-card: "#232235"
|
|
133
|
+
surface-muted: "#302f45"
|
|
134
|
+
surface-input: "#1a1a2b"
|
|
135
|
+
text-default: "#f5f7fa"
|
|
136
|
+
text-subtle-2: "#c9d0e4"
|
|
137
|
+
text-subtle: "#98a0ab"
|
|
138
|
+
line: "#4a495e"
|
|
139
|
+
line-strong: "#5f5e70"
|
|
140
|
+
link: "#86b5ff"
|
|
141
|
+
brand-pressed: "#9d67ff"
|
|
142
|
+
brand-2-pressed: "#302f45"
|
|
143
|
+
focus-ring: "#86b5ff4c"
|
|
144
|
+
ok-soft: "#188181"
|
|
145
|
+
ok-ink: "#d6f6ef"
|
|
146
|
+
danger-soft: "#6d144f"
|
|
147
|
+
danger-ink: "#fce1e1"
|
|
148
|
+
danger-armed: "#e0466b"
|
|
149
|
+
danger-text: "#ff8fa3"
|
|
150
|
+
warning-soft: "#9a6f1e"
|
|
151
|
+
warning-ink: "#fcf4db"
|
|
152
|
+
info-soft: "#302f45"
|
|
153
|
+
info-ink: "#86b5ff"
|
|
154
|
+
success-soft: "#10291d"
|
|
155
|
+
success-ink: "#a3d9bd"
|
|
156
|
+
busy-soft: "#1a2440"
|
|
157
|
+
busy-ink: "#b9c9ff"
|
|
158
|
+
accent-soft: "#4a495e"
|
|
159
|
+
accent-ink: "#c9d0e4"
|
|
160
|
+
chip-bg: "#6046ff"
|
|
161
|
+
chip-ink: "#ffffff"
|
|
162
|
+
subtle-light: "#232235"
|
|
163
|
+
subtle-brand: "#302f45"
|
|
164
|
+
subtle-accent: "#4a495e"
|
|
165
|
+
shadow-card: "0 4px 16px rgba(0, 0, 0, .35)"
|
|
166
|
+
shadow-card-hover: "0 12px 28px rgba(0, 0, 0, .50)"
|
|
167
|
+
shadow-float: "0 1.5rem 3rem rgba(0, 0, 0, .55)"
|
|
168
|
+
shadow-toast: "0 14px 34px rgba(0, 0, 0, .50)"
|
|
169
|
+
toast-ring: "rgba(0, 0, 0, .5)"
|
|
170
|
+
checker-a: "#2a3550"
|
|
171
|
+
checker-b: "#26314a"
|
|
172
|
+
checker-bg: "#131b2c"
|
|
173
|
+
overlay: "#01001ae5"
|
|
174
|
+
ink: "var(--text-default)"
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 420" width="960" height="420" font-family="Inter, 'Segoe UI', Helvetica, Arial, sans-serif">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
.t { fill: #1b2a4a; font-size: 14px; }
|
|
5
|
+
.h { fill: #1b2a4a; font-size: 17px; font-weight: 600; }
|
|
6
|
+
.m { fill: #5b6b85; font-size: 12px; }
|
|
7
|
+
.box { fill: #ffffff; stroke: #c9d3e3; stroke-width: 1.5; rx: 10; }
|
|
8
|
+
.core { fill: #eef3ff; stroke: #2f6fed; stroke-width: 2; rx: 12; }
|
|
9
|
+
.fam { fill: #f7f9fc; stroke: #c9d3e3; stroke-width: 1.5; rx: 10; }
|
|
10
|
+
.pill { fill: #ffffff; stroke: #2f6fed; stroke-width: 1.2; rx: 14; }
|
|
11
|
+
.pt { fill: #2f6fed; font-size: 12px; font-weight: 600; }
|
|
12
|
+
.line { stroke: #2f6fed; stroke-width: 1.5; fill: none; marker-end: url(#arrow); }
|
|
13
|
+
</style>
|
|
14
|
+
<marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="#2f6fed"/></marker>
|
|
15
|
+
</defs>
|
|
16
|
+
<rect width="960" height="420" fill="#ffffff"/>
|
|
17
|
+
|
|
18
|
+
<!-- the core -->
|
|
19
|
+
<rect x="30" y="40" width="300" height="340" class="core"/>
|
|
20
|
+
<text x="50" y="72" class="h">@webship.co/workspace</text>
|
|
21
|
+
<text x="50" y="92" class="m">the core — ships empty</text>
|
|
22
|
+
<rect x="50" y="112" width="260" height="52" class="box"/>
|
|
23
|
+
<text x="64" y="134" class="t">Dashboard</text>
|
|
24
|
+
<text x="64" y="152" class="m">node:http + HTMX, in a DDEV container</text>
|
|
25
|
+
<rect x="50" y="176" width="260" height="52" class="box"/>
|
|
26
|
+
<text x="64" y="198" class="t">Plugin system</text>
|
|
27
|
+
<text x="64" y="216" class="m">require · activate · install · configure</text>
|
|
28
|
+
<rect x="50" y="240" width="260" height="52" class="box"/>
|
|
29
|
+
<text x="64" y="262" class="t">Settings, workspaces list, builders, jobs</text>
|
|
30
|
+
<text x="64" y="280" class="m">core/config · core/scripts · screen sessions</text>
|
|
31
|
+
<rect x="50" y="304" width="260" height="52" class="box"/>
|
|
32
|
+
<text x="64" y="326" class="t">webship-workspace</text>
|
|
33
|
+
<text x="64" y="344" class="m">init · plugin · catalog · update</text>
|
|
34
|
+
|
|
35
|
+
<!-- arrows -->
|
|
36
|
+
<path d="M330,120 C380,120 380,86 420,86" class="line"/>
|
|
37
|
+
<path d="M330,200 C380,200 380,186 420,186" class="line"/>
|
|
38
|
+
<path d="M330,260 C380,260 380,286 420,286" class="line"/>
|
|
39
|
+
<path d="M330,330 C380,330 380,366 420,366" class="line"/>
|
|
40
|
+
|
|
41
|
+
<!-- families -->
|
|
42
|
+
<rect x="420" y="56" width="510" height="60" class="fam"/>
|
|
43
|
+
<text x="436" y="80" class="t">Workspace folders</text>
|
|
44
|
+
<text x="436" y="98" class="m">dev · test · drupal-modules · drupal-themes · docs · images · ai-agents · graph · rag …</text>
|
|
45
|
+
|
|
46
|
+
<rect x="420" y="156" width="510" height="60" class="fam"/>
|
|
47
|
+
<text x="436" y="180" class="t">Hosting providers</text>
|
|
48
|
+
<text x="436" y="198" class="m">upsun · acquia · digitalocean · cpanel · aws · azure · godaddy — one base, one button per provider</text>
|
|
49
|
+
|
|
50
|
+
<rect x="420" y="256" width="250" height="60" class="fam"/>
|
|
51
|
+
<text x="436" y="280" class="t">Git forges</text>
|
|
52
|
+
<text x="436" y="298" class="m">github · gitlab · bitbucket</text>
|
|
53
|
+
|
|
54
|
+
<rect x="680" y="256" width="250" height="60" class="fam"/>
|
|
55
|
+
<text x="696" y="280" class="t">Container runtimes</text>
|
|
56
|
+
<text x="696" y="298" class="m">docker · lando · docksal · podman · k8s</text>
|
|
57
|
+
|
|
58
|
+
<rect x="420" y="336" width="510" height="60" class="fam"/>
|
|
59
|
+
<text x="436" y="360" class="t">Features</text>
|
|
60
|
+
<text x="436" y="378" class="m">git · ide · jira · google-drive · testing · webship-js · drupal · wordpress · odoo · microsoft · apple</text>
|
|
61
|
+
|
|
62
|
+
<!-- the pill -->
|
|
63
|
+
<rect x="600" y="8" width="330" height="28" class="pill"/>
|
|
64
|
+
<text x="614" y="27" class="pt">each one an npm package: @webship.co/workspace-<name></text>
|
|
65
|
+
</svg>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Getting started
|
|
2
|
+
|
|
3
|
+
The Webship Workspace is a folder (`~/workspace` by default) with a web dashboard in it. The dashboard runs in a DDEV container and drives everything else: it builds, starts, stops, backs up and restores real projects through the `cmd-*.sh` scripts in each workspace folder, with live terminal output, and it embeds an AI assistant that knows the page you are on.
|
|
4
|
+
|
|
5
|
+
## What you need
|
|
6
|
+
|
|
7
|
+
- Node.js 20 or newer (24 is what the dashboard runs on).
|
|
8
|
+
- Docker, and [DDEV](https://ddev.readthedocs.io/en/stable/users/install/). DDEV is the only runtime the core needs; other container runtimes come as plugins.
|
|
9
|
+
- A terminal. Windows works through WSL2.
|
|
10
|
+
|
|
11
|
+
## The first hour
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install -g @webship.co/workspace
|
|
15
|
+
webship-workspace init ~/workspace
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
`init` copies the core into the folder, writes `core/config/settings.yml` from the lean template (no workspace folders, no plugins), installs the dashboard's dependencies and starts it. Open https://workspace.ddev.site.
|
|
19
|
+
|
|
20
|
+
The dashboard is empty on purpose. Add a workspace folder:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
webship-workspace plugin require dev
|
|
24
|
+
webship-workspace plugin activate dev
|
|
25
|
+
webship-workspace plugin install dev
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Now `dev/` exists with its builders (`cmd-drupal11-recommended-project.sh`, `cmd-webship11-0-x-project.sh`, …) and its settings file, and the dashboard shows the Dev workspace with a Build button. Build a site from the dashboard, or from the folder:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
cd ~/workspace/dev
|
|
32
|
+
bash cmd-drupal11-recommended-project.sh mysite
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Every build goes through DDEV; the site answers at `https://mysite.ddev.site`.
|
|
36
|
+
|
|
37
|
+
## Then
|
|
38
|
+
|
|
39
|
+
- **Settings → Plugins** shows the catalogue. Add the GIT menu (`git`), the Web IDE (`ide`), a hosting provider (`upsun`, `acquia`, …), a git forge (`github`, `gitlab`, `bitbucket`), or more workspace folders (`test`, `drupal-modules`, `docs`, `ai-agents`, …).
|
|
40
|
+
- Each plugin with settings gets its own file, `core/config/plugin.<name>.settings.yml`, edited from Settings. Secrets live there, never in `settings.yml`.
|
|
41
|
+
- `webship-workspace update ~/workspace` refreshes the core from a newer package without touching your settings files.
|
|
42
|
+
|
|
43
|
+
## Where things are
|
|
44
|
+
|
|
45
|
+
| Path | What it is |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| `core/workspace-app` | The dashboard (Node.js + HTMX), a DDEV project of its own |
|
|
48
|
+
| `core/scripts` | The bash tooling every `cmd-*.sh` sources: bootstrap, builders, `plugins.sh` |
|
|
49
|
+
| `core/config` | `settings.yml`, one `workspace.<key>.settings.yml` per folder, one `plugin.<name>.settings.yml` per plugin |
|
|
50
|
+
| `<folder>/` | A workspace folder: its `cmd-*.sh` commands and the projects or items it holds |
|
|
51
|
+
| `backups/` | What Back up wrote, per workspace and project |
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Plugins
|
|
2
|
+
|
|
3
|
+
Everything optional is a plugin: an npm package `@webship.co/workspace-<name>`, from the repository `github.com/webship/workspace-<name>` on branch `1.0.x`. The core requires none of them. A plugin requires nothing from the dashboard's files; it is handed an `api` and works through it, so it can be installed from npm and removed without a trace.
|
|
4
|
+
|
|
5
|
+
## The four steps
|
|
6
|
+
|
|
7
|
+
| Step | Command | What happens |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| require | `webship-workspace plugin require <name>` | `npm install @webship.co/workspace-<name>` into `core/workspace-app/package.json` |
|
|
10
|
+
| activate | `webship-workspace plugin activate <name>` | `plugins.<name>.enabled: true` in `settings.yml`; a workspace plugin also joins the `workspaces:` list |
|
|
11
|
+
| install | `webship-workspace plugin install <name>` | places what the manifest names: bash functions, commands, compose files, themes, a workspace folder, a settings template; recorded in `core/config/plugins.installed.yml` |
|
|
12
|
+
| configure | `webship-workspace plugin configure <name>` | its own `core/config/plugin.<name>.settings.yml` |
|
|
13
|
+
|
|
14
|
+
The same four are buttons on **Settings → Plugins**, below the catalogue. `deactivate` turns one off and keeps its files; `uninstall` removes what install placed. `bash core/scripts/plugins.sh --list` says the step each plugin is at.
|
|
15
|
+
|
|
16
|
+
## Families
|
|
17
|
+
|
|
18
|
+
Plugins that do the same job for different services share a base package, so a provider is thin and the surface is one:
|
|
19
|
+
|
|
20
|
+
- **Hosting** — `@webship.co/workspace-hosting`: one button per provider, with environments and live URLs, get the database and files, deploy, logs, activities and the console. Providers: upsun, acquia, digitalocean, cpanel, aws, azure, godaddy.
|
|
21
|
+
- **Forges** — `@webship.co/workspace-forge`: the repository, open issues and pull or merge requests, a request from the current branch, the clone option, and the credential the dashboard uses for the host. Providers: github, gitlab, bitbucket.
|
|
22
|
+
- **Container runtimes** — `@webship.co/workspace-container`: a menu for projects on Docker Compose, Lando, Docksal, Podman or Kubernetes.
|
|
23
|
+
- **Workspace folders** — the folder itself as a plugin: its settings file, its commands, its docs. Activating one lists it on the dashboard.
|
|
24
|
+
|
|
25
|
+
## Writing one
|
|
26
|
+
|
|
27
|
+
Read [PLUGINS.md](../workspace-app/PLUGINS.md): the manifest (`workspacePlugin` in `package.json`), `register(api)`, the hooks (row menus, pages, fragments, actions, chips, folder setup, forges, open-with, workspace views) and `api.lib`. Types come from `@webship.co/workspace-plugin-api`. The reference plugins are `workspace-upsun` (a hosting provider), `workspace-github` (a forge), `workspace-lando` (a runtime) and `workspace-drupal-modules` (a workspace folder); each has tests, a `features/*.feature` the installer places under the dashboard's browser suite, and a CI workflow.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Releases
|
|
2
|
+
|
|
3
|
+
Every package is versioned together: `@webship.co/workspace` (the core) and every `@webship.co/workspace-<name>`. Versions so far: 1.0.0-alpha1 (the first publish), 1.0.0-beta1.
|
|
4
|
+
|
|
5
|
+
## How a change lands
|
|
6
|
+
|
|
7
|
+
1. An issue on the repository it belongs to (`github.com/webship/workspace` for the core, `workspace-<name>` for a plugin), with the Checkpoints list.
|
|
8
|
+
2. A branch and a pull request against `1.0.x`, referencing the issue.
|
|
9
|
+
3. The unit tests and the browser suite pass; a human reviews; the pull request is merged.
|
|
10
|
+
|
|
11
|
+
## Publishing
|
|
12
|
+
|
|
13
|
+
Bases first (`workspace-plugin-api`, `workspace-hosting`, `workspace-forge`, `workspace-container`), then the providers and the rest, then the core — one package at a time with a pause between them, within npm's publishing limits. A dependency on a sibling is a version range (`^1.0.0-beta1`), never a git URL.
|
|
14
|
+
|
|
15
|
+
## Upgrading a workspace
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install -g @webship.co/workspace@latest
|
|
19
|
+
webship-workspace update ~/workspace
|
|
20
|
+
cd ~/workspace/core/workspace-app && npm update
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
`update` refreshes the core and keeps every settings file; `npm update` moves the installed plugins to their newest versions within the ranges in `package.json`.
|