251148c3ff
## Summary - add repository-wide quality tooling and verification scaffolding, including CI workflows, pnpm workspace setup, ESLint/Prettier/markdown checks, and generated-output verification helpers - reorganize skill sources and generation flow by introducing canonical `_source` variants, generator/manifests, reusable helper abstractions, and shared web-automation/browser utilities - clean up and expand documentation so the root README flows into docs and skill docs, with clearer development, reviewer, installer, and workflow guidance ## Notable changes - docs flow and consistency cleanup across `README.md`, `docs/README.md`, and related docs - new scripts for `check`, docs verification, generated-file verification, shell portability, and safe directory replacement - refactors in Atlassian and web-automation skill runtimes to reduce duplication and centralize reusable code - changelog, development documentation, and CI surface updates ## Test Plan - [ ] `pnpm run check` - [ ] review generated/manifests and skill sync outputs - [ ] smoke-check docs flow from `README.md` to `docs/README.md` to skill docs ## Notes - this branch currently includes tracked `skills/web-automation/shared/node_modules` content that should be reviewed carefully as potentially noisy/accidental committed artifacts Co-authored-by: Stefano Fiorini <stefano.fiorini@firsthorizon.com> Reviewed-on: #1
41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
|
|
function fail(message, details) {
|
|
const payload = { error: message };
|
|
if (details) payload.details = details;
|
|
process.stderr.write(`${JSON.stringify(payload)}\n`);
|
|
process.exit(1);
|
|
}
|
|
|
|
async function main() {
|
|
try {
|
|
await import("cloakbrowser");
|
|
await import("playwright-core");
|
|
} catch (error) {
|
|
fail(
|
|
"Missing dependency/config: web-automation requires cloakbrowser and playwright-core.",
|
|
error instanceof Error ? error.message : String(error)
|
|
);
|
|
}
|
|
|
|
const browsePath = path.join(__dirname, "browse.ts");
|
|
const browseSource = fs.readFileSync(browsePath, "utf8");
|
|
if (!/launchPersistentContext/.test(browseSource) || !/from ['"]cloakbrowser['"]/.test(browseSource)) {
|
|
fail("browse.ts is not configured for CloakBrowser.");
|
|
}
|
|
|
|
process.stdout.write("OK: cloakbrowser + playwright-core installed\n");
|
|
process.stdout.write("OK: CloakBrowser integration detected in browse.ts\n");
|
|
}
|
|
|
|
main().catch((error) => {
|
|
fail("Install check failed.", error instanceof Error ? error.message : String(error));
|
|
});
|