Add the Manage plugins tab (ui-settings-plugin-manager): package cards
with enable/disable switches, retry and uninstall, an install dialog
streaming pnpm output, and the selected preset's composition with per-row
switches and removal; the read-only list gains provenance facts.
Settings cards edit one scope at a time: ui-settings keeps one describe
mirror per settings scope (SettingsMirrorRegistry) and binds
{ namespace, scope }; ui-settings-plugins stages forms per scope, marks
inherited fields, and adds the skill-filesystem roots card.
Fixes surfaced by driving the browser end to end: the client gateway now
lets a call omit trailing parameters that accept undefined (PR3's
optional scope arguments failed the strict arity check), the plugins
install verb is `add` because the client namespace service reserves
`install`/`remove` (guarded by remote-method-names.host.spec), a plugin
module offers its main export as an addable `.`, and describing a settings
scope no owner registered resolves over the global instance's base and
never throws.
The web e2e scaffold can mount a profile runtime over fixture packages;
plugin-manager.e2e drives the tab and writes one field under a preset
scope; plugin-config and settings-chrome goldens are refreshed.
109 lines
5.4 KiB
JSON
109 lines
5.4 KiB
JSON
{
|
|
// Client-side typecheck aggregate: packages/client tests (.ts and .tsx).
|
|
// Split from the host aggregate because both sides merge cordis Context
|
|
// under the same keys (sessions, loader) with different services; shared
|
|
// leaves (session/llm/tools/...) build once and are referenced by
|
|
// both programs through each client package's own references.
|
|
"extends": "./tsconfig.base.client.json",
|
|
"compilerOptions": {
|
|
"noEmit": true,
|
|
"rewriteRelativeImportExtensions": false,
|
|
// Tests execute under vitest on node (e2e files spawn processes); browser
|
|
// purity of package src is each package's own tsconfig plus
|
|
// scripts/client-bundle-purity.spec.ts.
|
|
"types": ["node"]
|
|
},
|
|
"include": [
|
|
// Source-subpath test imports can arrive through workspace links whose
|
|
// realpath semantics vary by host. Load package CSS declarations directly.
|
|
"packages/client/*/src/css-modules.d.ts",
|
|
"packages/client/*/tests/**/*.ts",
|
|
"packages/client/*/tests/**/*.tsx",
|
|
"packages/*/*/tests/**/*.client.spec.ts",
|
|
"packages/*/*/tests/**/*.client.spec.tsx",
|
|
"packages/*/*/tests/**/*.client.tsx",
|
|
"packages/*/*/tests/**/*.client.ts",
|
|
// Client package outside packages/client with a local CSS module face.
|
|
"packages/extensions/ui-cordis/src/css-modules.d.ts",
|
|
"packages/client/tsdown.client.ts",
|
|
"scripts/client-build-environment.ts",
|
|
"scripts/*.client.spec.ts",
|
|
"scripts/client-bundle-css.spec.ts",
|
|
"scripts/client-bundle-purity.spec.ts"
|
|
],
|
|
// A `*.host.spec.ts` covers the Host half of a split client package and
|
|
// belongs to the host aggregate, which excludes this program's `*.client.*`
|
|
// in turn. `exclude` wins over `include`, so the test glob above stays broad.
|
|
"exclude": [
|
|
"packages/client/*/tests/**/*.host.spec.ts"
|
|
],
|
|
"references": [
|
|
// Shared leaf: web e2e boots the real host webserver (fixture + real-host
|
|
// smoke policy). webserver has zero workspace deps and no cordis merge,
|
|
// so it cannot drag host-side Context augmentation into this program.
|
|
{ "path": "./packages/host/webserver" },
|
|
// Compaction seam: ui-chat type-imports the canonical checkpoint contract
|
|
// from the cordis-free dsh-compaction/checkpoint leaf. Composite rootDir
|
|
// rules make that path depend on this project reference.
|
|
{ "path": "./packages/compaction/compaction" },
|
|
{ "path": "./packages/client/store" },
|
|
{ "path": "./packages/client/ui-slots" },
|
|
{ "path": "./packages/client/ui-attachment" },
|
|
{ "path": "./packages/client/ui-primitives" },
|
|
{ "path": "./packages/client/modules" },
|
|
{ "path": "./packages/experimental/inspector/tsconfig.client.json" },
|
|
{ "path": "./packages/client/hmr" },
|
|
{ "path": "./packages/client/connection/tsconfig.client.json" },
|
|
{ "path": "./packages/typert/registry" },
|
|
{ "path": "./packages/api/gateway/tsconfig.client.json" },
|
|
{ "path": "./packages/api/session-controller/tsconfig.client.json" },
|
|
{ "path": "./packages/api/workspace-controller/tsconfig.client.json" },
|
|
{ "path": "./packages/api/remotes/tsconfig.client.json" },
|
|
{ "path": "./packages/extensions/cordis-client-runner" },
|
|
{ "path": "./packages/extensions/ui-cordis" },
|
|
{ "path": "./packages/test-support/client-runtime" },
|
|
{ "path": "./packages/client/ui-layout" },
|
|
{ "path": "./packages/client/ui-sidebar" },
|
|
{ "path": "./packages/client/ui-brand-official" },
|
|
{ "path": "./packages/client/ui-approval" },
|
|
{ "path": "./packages/client/ui-chat" },
|
|
{ "path": "./packages/client/ui-conversation" },
|
|
{ "path": "./packages/client/ui-tool" },
|
|
{ "path": "./packages/client/ui-deliverables" },
|
|
{ "path": "./packages/client/ui-workflow-run" },
|
|
{ "path": "./packages/client/ui-workspace" },
|
|
{ "path": "./packages/client/ui-input-trigger" },
|
|
{ "path": "./packages/client/ui-commands" },
|
|
{ "path": "./packages/client/ui-skill" },
|
|
{ "path": "./packages/client/ui-reference" },
|
|
{ "path": "./packages/client/ui-subagent" },
|
|
{ "path": "./packages/experimental/client-ui-agent-team" },
|
|
{ "path": "./packages/client/ui-jobs" },
|
|
{ "path": "./packages/client/ui-schedule" },
|
|
{ "path": "./packages/client/ui-directory-picker-browse" },
|
|
{ "path": "./packages/client/ui-directory-picker-native" },
|
|
{ "path": "./packages/client/ui-goal" },
|
|
{ "path": "./packages/client/ui-message-feedback" },
|
|
{ "path": "./packages/client/ui-model-selection" },
|
|
{ "path": "./packages/client/ui-agent-preset" },
|
|
{ "path": "./packages/client/ui-permission-presets" },
|
|
{ "path": "./packages/client/ui-plan" },
|
|
{ "path": "./packages/client/ui-settings-plugins" },
|
|
{ "path": "./packages/client/ui-user-questions" },
|
|
{ "path": "./packages/client/ui-trajectory" },
|
|
{ "path": "./packages/session-query/session-log-export/tsconfig.client.json" },
|
|
{ "path": "./packages/client/ui-theme" },
|
|
{ "path": "./packages/client/ui-settings" },
|
|
{ "path": "./packages/client/ui-settings-general" },
|
|
{ "path": "./packages/client/ui-settings-models" },
|
|
{ "path": "./packages/client/ui-settings-plugin-inventory" },
|
|
{ "path": "./packages/client/ui-settings-plugin-manager" },
|
|
{ "path": "./packages/client/locale" },
|
|
{ "path": "./packages/client/ui-renderer" },
|
|
{ "path": "./packages/client/ui-session" },
|
|
{ "path": "./packages/client/web" },
|
|
{ "path": "./packages/context/file-reference" },
|
|
{ "path": "./apps/web" }
|
|
]
|
|
}
|