MDE AI-DLC Harness for VS Code
This extension is the graphical client for the mde-aidlc-harness Python
package. It guides the user through creating a GitLab personal access token,
validates that token against the internal GitLab host, clones the selected
harness source into VS Code global storage, and uses the source checkout's
Python adapter to browse and export workflows, agents, tools, and skills.
Two surfaces
The dashboard is available in two places, both driven by the same controller so
they always show identical state:
- Editor tab —
MDE: Open Dashboard (or the status bar item, or the
$(link-external) button in the sidebar). This is the full experience: the
catalog grid, filters, and the detail drawer. Because it lives in an editor
tab, the Explorer stays available in the sidebar at the same time.
- Sidebar view — a compact panel with connection status, the current source
revision and target project, plus the shortcuts used most often.
Prerequisites
- VS Code 1.85 or newer
- Git available on
PATH
- Python 3.10 or newer with the harness dependencies available
- A GitLab personal access token from
git3.fsoft.com.vn
- The token must include
read_user and read_repository scopes
The dashboard opens the configured mdeAiaHarness.gitlab.tokenCreationUrl
when the user chooses to create a token. The default repository is the
internal mde-aidlc-harness repository on its main branch. Both the
repository URL and the branch can be edited before syncing.
Features
- Onboarding stepper covering sign-in, source sync, and target selection.
- Catalog grid with search, per-kind tabs, and category/author filter chips.
- Detail drawer showing the exact files an export will write, which of them
already exist, and any missing source assets. Existing files open on click.
- Install badges:
Installed when the tracked files are present and match the
current source revision and platform, Update available otherwise.
- Multi-select installs, confirmed once for the whole batch and reported through
a single cancellable progress notification.
- Target project and platform persist in
workspaceState across window reloads.
- English and Vietnamese, following the VS Code display language or the
mdeAiaHarness.language setting.
Development
npm install
npm run check # type-check the extension host and the webview separately
npm run build # esbuild bundles out/extension.js and media/webview.js
npm run watch # rebuild both bundles on change
Press F5 from this folder to launch an Extension Development Host.
media/codicon.css, media/codicon.ttf, and media/webview.js are build
outputs and are not committed.
Layout
src/
extension.ts activation, commands, status bar
controller.ts all dashboard state and adapter calls
protocol.ts types shared by the host and the webview
l10n/strings.ts English and Vietnamese bundles
state/workspaceStore.ts target, platform, and the install ledger
dashboard/ webview host, editor panel, sidebar view
webview/ browser-side code, bundled to media/webview.js
Security boundary
The personal access token is stored only in VS Code SecretStorage. Repository
URLs are normal settings. Git operations use a non-interactive temporary
askpass bridge and never put credentials in clone URLs, process arguments, or
logs. The source checkout is stored under ExtensionContext.globalStorageUri;
only exported resources are written into the user's selected target project.
The webview runs under a strict Content-Security-Policy: no remote origins, no
inline scripts beyond a per-load nonce, and local resources restricted to
media/.
The extension manages resource files. It does not execute the exported AI
agents or workflows.