Mirror the backend checkstyle javadoc gate in eslint: exported
functions, interfaces, types and classes must carry jsdoc with
matching @param/@returns tags and descriptions. Backfill the full
cli surface so the gate starts green.
java headers are generated and enforced by spotless licenseHeader from
the root copyright file; the typescript surfaces had no such control -
dc3-cli carried zero headers across 32 files and dc3-web was missing
one hand-written file:
- add scripts/add-license-header.mjs (shared by both packages) that
reads the same root copyright and emits block comments for ts and
html-comment headers for vue, with a --check mode for ci
- wire headers / headers:check npm scripts; unplugin-generated ambient
d.ts files are exempt (the generator owns their file head)
- backfill all 32 dc3-cli sources and operation.ts / type.d.ts
verified: headers:check green on both packages, cli 67/67 tests +
build + lint, web 687/687 tests + lint + format
Revert the premature McpServer.vue change (implementation was not
requested). Record the onboarding UX contract in
token-unification-mcp-first-cli.md §4.1 instead, and rename the CLI
package back to dc3-cli per review.
Move the previously untracked TypeScript CLI into iot-dc3 as an
independently managed module next to dc3-web:
- pnpm workspace (pnpm@11.24.0) with esbuild build approval,
package renamed to iot-dc3-cli, npm lockfile dropped
- add eslint flat config; lint now runs green after removing
unused imports/vars and adding switch-case breaks in config.ts
- document CLI conventions and commands in AGENTS.md