Files
Tanner 99e25f6de1 feat(editors): minimal iframe-only VS Code extension for Omnigent (#1288)
Add a VS Code extension under editors/vscode/ that opens the running local
Omnigent server in an editor-beside webview iframe. It is a thin client of the
local server (localhost discovery via ~/.omnigent/local_server.pid + /health),
contributing an activity-bar icon (omnigent.home view + viewsWelcome), an
editor-title icon, and the omnigent.open command.

Scope is intentionally minimal per the issue: iframe render only. Embed/SPA,
sessions, diffs+SSE, send-selection, the /v1 client, token auth, and remote
servers are out of scope for this first donation.

- esbuild bundle -> dist/extension.js; vitest unit tests (55) for the pure
  modules (csp, iframeHtml, host, discovery, config, controller)
- 3-directive host CSP (default-src 'none'; style-src 'nonce'; frame-src origin);
  no token ever placed in the iframe URL
- CI deferred to a maintainer-owned follow-up per issue Q5; the proposed
  path-filtered, security-gated workflow (mirroring ap-web-tests.yml) is in the
  PR description so it does not trip the untrusted-PR workflow guard
- Apache-2.0; DCO sign-off

Refs: #1219

Signed-off-by: Tanner Wendland <tanner.wendland@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 17:39:39 -07:00

25 lines
610 B
Plaintext

# Controls what goes INTO the .vsix. The runtime is the esbuild bundle
# (dist/extension.js) + the icons under media/. Everything else is dev-only.
# TypeScript sources (only the built .js is needed at runtime)
src/**
**/*.ts
# Dev tooling / config
esbuild.js
tsconfig.json
vitest.config.ts
**/*.test.*
**/__mocks__/**
.gitignore
.vscodeignore
# Source maps (drop to keep the package smaller)
**/*.map
# Dependencies are bundled into dist/ by esbuild — not needed in the package
node_modules/**
# Keep (NOT ignored): dist/** (the bundled extension), media/** (icons),
# package.json, README.md, LICENSE