@eclipse-docks/core 0.7.100 → 0.7.102

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.
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: eclipse-docks-contributing
3
+ description: "Contributing to the eclipse-docks/core monorepo: ECA/EPL-2.0, workspace layout (packages/core, extension-*, app, app-e2e, create-app), npm scripts, Vitest/Playwright, public API boundaries, Lit/Web Awesome via packages/core externals PRs—not building downstream apps."
4
+ ---
5
+
6
+ # Eclipse Docks — contributors (upstream monorepo)
7
+
8
+ > Work on **`github.com/eclipse-docks/core`**: implementation, fixes, docs, CI. For **shipping your own product** on Docks, load the **`eclipse-docks-core`** skill (`@eclipse-docks/core` app-author skill)—not this one.
9
+
10
+ ---
11
+
12
+ ## Scope
13
+
14
+ Use this guidance when editing **this repository**:
15
+
16
+ - **`packages/core`** — platform (**`@eclipse-docks/core`**): registries, services, **`docks-*`** UI parts, dialogs, vite plugins bundled with core, **`src/externals/*`** Lit/Web Awesome wrappers.
17
+ - **`packages/extension-*`** — bundled extensions that depend on core and register contributions/commands/editor factories.
18
+ - **`packages/app`** — default/example app composing core + extensions.
19
+ - **`packages/app-e2e`** — Playwright harness only (minimal shell + specs).
20
+ - **`packages/create-app`** — scaffolding template for **`npm create @eclipse-docks/app`**.
21
+ - **`docs/`** — published site consumed at [docks.eclipse.dev/docs/](https://docks.eclipse.dev/docs/).
22
+
23
+ Do **not** use contributor-only internals when helping **downstream apps** unless you are patching core/extensions in this repo.
24
+
25
+ ---
26
+
27
+ ## Prerequisites and license
28
+
29
+ By contributing you agree contributions are **[EPL-2.0](https://www.eclipse.org/legal/epl-2.0/)**. Eclipse projects require a one-time **[Eclipse Contributor Agreement (ECA)](https://www.eclipse.org/legal/ECA.php)** before merge. Sign commits per project practice (e.g. **`git commit -s`**).
30
+
31
+ **Process:** Problems and ideas → **[issues](https://github.com/eclipse-docks/core/issues)** / **[discussions](https://github.com/eclipse-docks/core/discussions)** → focused PRs referencing issues. Details: **`CONTRIBUTING.md`** in repo root.
32
+
33
+ ---
34
+
35
+ ## Development commands (workspace root)
36
+
37
+ ```bash
38
+ git clone https://github.com/eclipse-docks/core.git
39
+ cd core
40
+ npm install
41
+
42
+ npm run dev # dev server for default app
43
+ npm run test # Vitest unit tests (@eclipse-docks/core)
44
+ npm run type-check # TypeScript
45
+ npm run test:e2e # Playwright (packages/app-e2e); Chromium install: npm run playwright:install-chromium
46
+ npm run build # core + extensions scripts as defined at root
47
+ npm run build:app # typical full app build pipeline
48
+ npm run docs:dev # docs site (nested tooling)
49
+ ```
50
+
51
+ E2E behavior and harness notes: **`packages/app-e2e/README.md`**. CI parity: **`.github/workflows/ci.yml`**.
52
+
53
+ ---
54
+
55
+ ## Where to put code
56
+
57
+ | Area | Responsibility |
58
+ |------|----------------|
59
+ | **Core** (`packages/core`) | Stable platform APIs, shells, contributions **defaults**, shared parts/widgets, **`externals/lit`** and **`externals/webawesome`**, diagnostics that apply to every app. Avoid extension-specific business logic unless it belongs in core by design. |
60
+ | **Extensions** (`packages/extension-*`) | Optional product features (editors, AI, palettes, notebooks, …): register with **`extensionRegistry`**; keep dependencies lean. |
61
+ | **Default app** (`packages/app`) | Reference composition of extensions—useful for demos and regressions—not a dumping ground for non-demo platform code. |
62
+ | **Create-app template** (`packages/create-app/template`) | What **`npm create @eclipse-docks/app`** generates—keep onboarding friction low and aligned with docs. |
63
+
64
+ **Exports:** Treat **`packages/core`** root export and **`package.json` `exports`** as the public contract. Add or change exports deliberately; API changes may need **`docs/`** and changelog-style release notes for consumers.
65
+
66
+ ---
67
+
68
+ ## Lit and Web Awesome inside core
69
+
70
+ - **Authors (downstream)** import **`@eclipse-docks/core/externals/lit`** and **`externals/webawesome`**.
71
+ - **Contributors editing core** extend or adjust **`packages/core/src/externals/lit.ts`** and **`webawesome.ts`** when new directives/components must be centrally registered—then downstream stays on re-exports.
72
+
73
+ Keep Web Awesome registrations consistent with versioning in **`packages/core/package.json`**; avoid duplicated WA/Lit installs across workspaces without cause.
74
+
75
+ ---
76
+
77
+ ## Docs and QA expectations
78
+
79
+ - Substantial behavior or UX changes usually need updates under **`docs/`** ([published docs](https://docks.eclipse.dev/docs/)).
80
+ - Run **`npm run test`**, **`npm run type-check`**, and when UI/load order/registries shift, **`npm run test:e2e`** before merge (align with **`CONTRIBUTING.md`**).
81
+
82
+ ---
83
+
84
+ ## Optional — quick pitfalls
85
+
86
+ #### Mixing audiences
87
+
88
+ Adding long “how to build **your** SaaS app” narratives into **`CONTRIBUTING.md`** / core internals—prefer **`docs/guide/`** and the **`eclipse-docks-core`** skill for downstream authors.
89
+
90
+ #### Breaking app authors
91
+
92
+ Publishing deep imports (**`packages/core/src/...`**) as if they were API; shrinking **`exports`** without compatibility story; or encouraging **`lit` / `@awesome.me/webawesome`** direct deps in extensions when re-exports exist.
93
+
94
+ #### Wrong package
95
+
96
+ Platform behavior in **`packages/app`** that should live in **`extension-*`** or core; duplicate extension logic spread across **`extension-*`** when a shared **`packages/core`** helper is appropriate.
@@ -0,0 +1,103 @@
1
+ ---
2
+ name: eclipse-docks-core
3
+ description: "Eclipse Docks (@eclipse-docks/core): scaffold with npm create @eclipse-docks/app; apps, extensions, layouts, contributions, commands; Lit and Web Awesome only via externals/lit and externals/webawesome. For authors building browser IDE-style apps—not upstream core contributors (use eclipse-docks-contributing)."
4
+ ---
5
+
6
+ # Eclipse Docks
7
+
8
+ > A modular runtime for extensible IDE- and dashboard-style web apps that run entirely in the browser. Use the version of **`@eclipse-docks/core`** pinned in your project’s **`package.json`**.
9
+
10
+ **Working on github.com/eclipse-docks/core itself?** Prefer the **`eclipse-docks-contributing`** skill from the same package.
11
+
12
+ Eclipse Docks gives you **`AppDefinition`**, an extension loader, declarative UI **contributions**, and a **command** model so you compose features from npm packages instead of forking the shell.
13
+
14
+ Applications are plain TypeScript/JavaScript packages: you register an app and a set of extensions; each extension depends on **`@eclipse-docks/core`** and registers commands, editors, sidebar tabs, toolbar actions, and services. UI is built with **Lit** and **Web Awesome** only through **`@eclipse-docks/core/externals/lit`** and **`@eclipse-docks/core/externals/webawesome`** so every extension shares one Lit runtime and one component registration story.
15
+
16
+ ---
17
+
18
+ ## Documentation
19
+
20
+ For comprehensive documentation, visit [https://docks.eclipse.dev/docs/](https://docks.eclipse.dev/docs/)
21
+
22
+ - [Getting started](https://docks.eclipse.dev/docs/guide/getting-started): Prerequisites, run the default app from the upstream repo if you cloned it; for a **new** product use **`npm create @eclipse-docks/app my-app`**, **`cd my-app`**, **`npm run dev`**.
23
+ - [Build your own app](https://docks.eclipse.dev/docs/guide/build-your-own-app): Monorepo layout, app versus extension packages, customizing the scaffold.
24
+ - [Create an extension](https://docks.eclipse.dev/docs/guide/create-an-extension): Anatomy of an extension package and registration.
25
+ - [Add a sidebar tab](https://docks.eclipse.dev/docs/guide/add-sidebar-tab): Contributions targeting sidebars / editor areas.
26
+ - [Add a command to the toolbar](https://docks.eclipse.dev/docs/guide/add-command-toolbar): Wire a command id to toolbar UI.
27
+ - [Architecture](https://docks.eclipse.dev/docs/concepts/architecture): Layers, registries, and how contributions flow into the shell.
28
+ - [Apps](https://docks.eclipse.dev/docs/concepts/apps): **`AppDefinition`**, layouts, lifecycle.
29
+ - [Extensions](https://docks.eclipse.dev/docs/concepts/extensions): **`extensionRegistry`**, loaders, enable/disable.
30
+ - [Contributions](https://docks.eclipse.dev/docs/concepts/contributions): Slots, targets, declarative UI.
31
+ - [Commands](https://docks.eclipse.dev/docs/concepts/commands): Command ids, handlers, palette and automation.
32
+ - [Security and safety](https://docks.eclipse.dev/docs/concepts/security): Browser-side constraints and safe patterns.
33
+ - [Packages overview](https://docks.eclipse.dev/docs/reference/packages): What **`@eclipse-docks/core`** and extension packages are responsible for.
34
+ - [Tech stack](https://docks.eclipse.dev/docs/reference/tech-stack): Lit, Vite, and related choices.
35
+
36
+ ---
37
+
38
+ ## Platform concepts
39
+
40
+ - [App](https://docks.eclipse.dev/docs/concepts/apps): Composition root: metadata, **`extensions[]`**, optional **layout**, app-level contributions, **`initialize`** / **`dispose`**.
41
+ - [Layout](https://docks.eclipse.dev/docs/concepts/apps): **`LayoutContribution`** on **`system.layouts`** — **`id`**, **`name`**, Lit **`component`**, optional **`onShow`**; the runtime provides a standard IDE layout; apps may add more.
42
+ - [Extension](https://docks.eclipse.dev/docs/concepts/extensions): Separate npm package that registers with **`extensionRegistry`** and runs a loader when enabled; supplies commands, contributions, editors, services.
43
+ - [Contribution](https://docks.eclipse.dev/docs/concepts/contributions): Declarative placement of tabs, toolbar items, and blocks into named targets (sidebars, editor stack, toolbars, **`SYSTEM_LAYOUTS`**, etc.).
44
+ - [Command](https://docks.eclipse.dev/docs/concepts/commands): Stable **id** plus handler (**`canExecute`** optional); invoked from palette, toolbars, keybindings, or agents by id.
45
+
46
+ ---
47
+
48
+ ## Optional
49
+
50
+ The following is a **quick reference** for AI-assisted coding. Prefer the linked documentation above for narratives and examples.
51
+
52
+ #### `npm create @eclipse-docks/app`
53
+
54
+ **Description:** Official scaffolder (**`@eclipse-docks/create-app`**) that generates a workspace with **`packages/app`**, **`packages/example-extension`** (name may vary slightly by template version), and ready-made npm scripts—**recommended** starting point instead of wiring **`@eclipse-docks/core`** into an empty SPA by hand.
55
+
56
+ **Documentation:** [Build your own app](https://docks.eclipse.dev/docs/guide/build-your-own-app)
57
+
58
+ **Typical workflow:**
59
+
60
+ ```bash
61
+ npm create @eclipse-docks/app my-app
62
+ cd my-app
63
+ npm run dev
64
+ ```
65
+
66
+ #### `@eclipse-docks/core` (public entry)
67
+
68
+ **Description:** Published package **`@eclipse-docks/core`**. Root import exports services, types, **`DocksPart`**-style primitives, **`AppDefinition`**, logger helpers, constants, etc. Importing **`@eclipse-docks/core`** initializes the runtime.
69
+
70
+ **Documentation:** [Packages overview](https://docks.eclipse.dev/docs/reference/packages), [Architecture](https://docks.eclipse.dev/docs/concepts/architecture)
71
+
72
+ **Exports (non-exhaustive):** Prefer anything re-exported from **`@eclipse-docks/core`**. Specialized subpaths include **`@eclipse-docks/core/externals/lit`**, **`@eclipse-docks/core/externals/webawesome`**, **`@eclipse-docks/core/parts`** / **`widgets`** for shell building blocks where documented.
73
+
74
+ #### `AppDefinition`
75
+
76
+ **Description:** Registers one application: **`name`**, **`version`**, **`extensions`** (contributions to the extension system), **`layout`** (string id or **`{ id, props }`**), **`contributions`**, **`initialize`**, **`dispose`**.
77
+
78
+ **Documentation:** [Apps](https://docks.eclipse.dev/docs/concepts/apps)
79
+
80
+ #### Extension package
81
+
82
+ **Description:** Declares a dependency on **`@eclipse-docks/core`**, calls **`extensionRegistry`** (or equivalent registration API your template uses) with a loader that runs when the extension is enabled; registers commands, contributions, editor factories, and optional services.
83
+
84
+ **Documentation:** [Extensions](https://docks.eclipse.dev/docs/concepts/extensions), [Create an extension](https://docks.eclipse.dev/docs/guide/create-an-extension)
85
+
86
+ #### Lit and Web Awesome (author code)
87
+
88
+ **Description:** Use **only** the re-exports so all packages resolve the same Lit and the same Web Awesome registration.
89
+
90
+ **Imports:**
91
+
92
+ - **Lit:** `import { html, css, … } from '@eclipse-docks/core/externals/lit'` — not **`import … from 'lit'`** for normal extension/app UI.
93
+ - **Web Awesome:** `import '@eclipse-docks/core/externals/webawesome'` where you need registered **`<wa-*>`** elements and docks icon behavior — not a direct **`@awesome.me/webawesome`** dependency for routine UI.
94
+
95
+ **Documentation:** [Tech stack](https://docks.eclipse.dev/docs/reference/tech-stack), [Web Awesome — Using with AI](https://webawesome.com/docs/ai) (general WA context; still use Docks **externals** paths in Docks apps).
96
+
97
+ **If something is missing from the re-exports:** Treat as an upstream **`@eclipse-docks/core`** gap—check **[docks.eclipse.dev/docs](https://docks.eclipse.dev/docs/)** or the project issue tracker before bypassing those imports; avoid permanently forked Lit/Web Awesome dependencies unless you knowingly accept duplication and breakage risk.
98
+
99
+ #### Pitfalls (for AI assistants)
100
+
101
+ - Greenfield app with only **`@eclipse-docks/core`** and no scaffold—use **`npm create @eclipse-docks/app`** first.
102
+ - **`import … from 'lit'`** / **`@awesome.me/webawesome`** in app or extension code when **`externals/lit`** and **`externals/webawesome`** are sufficient.
103
+ - Inventing types or services not exported from **`@eclipse-docks/core`** (or its documented subpaths).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-docks/core",
3
- "version": "0.7.100",
3
+ "version": "0.7.102",
4
4
  "description": "Eclipse Docks platform core: registries, services, parts, widgets, and API",
5
5
  "type": "module",
6
6
  "license": "EPL-2.0",
@@ -66,7 +66,8 @@
66
66
  },
67
67
  "files": [
68
68
  "dist",
69
- "src"
69
+ "src",
70
+ ".agents"
70
71
  ],
71
72
  "scripts": {
72
73
  "build": "vite build",