@abuswami1996/agent-md 0.1.4 → 0.1.6
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.
- package/CHANGELOG.md +12 -0
- package/agent-md-preview.vsix +0 -0
- package/dist/index.js +111 -3
- package/package.json +1 -1
- package/viewer-dist/assets/index-B7MTTuRJ.css +1 -0
- package/viewer-dist/assets/index-w_fCrfuz.js +3407 -0
- package/viewer-dist/index.html +2 -20
- package/viewer-dist/assets/arc-BGWRvh4A.js +0 -1
- package/viewer-dist/assets/architecture-7EHR7CIX-tMtXFVEB.js +0 -1
- package/viewer-dist/assets/architectureDiagram-3BPJPVTR-BpnMGpeV.js +0 -36
- package/viewer-dist/assets/array-CLXCPui0.js +0 -1
- package/viewer-dist/assets/blockDiagram-GPEHLZMM-BHk4-xwc.js +0 -132
- package/viewer-dist/assets/c4Diagram-AAUBKEIU-BShCidQJ.js +0 -10
- package/viewer-dist/assets/channel-BeF3oGSA.js +0 -1
- package/viewer-dist/assets/chunk-2J33WTMH-D_hBYQSk.js +0 -1
- package/viewer-dist/assets/chunk-3OPIFGDE-yFgTZecx.js +0 -62
- package/viewer-dist/assets/chunk-4BX2VUAB-BrcCtoyJ.js +0 -1
- package/viewer-dist/assets/chunk-4EGX6M5U-sKH2Isf8.js +0 -1
- package/viewer-dist/assets/chunk-55IACEB6-DbDA7kYA.js +0 -1
- package/viewer-dist/assets/chunk-5DO6E6H7-DVriMWxp.js +0 -1
- package/viewer-dist/assets/chunk-5ZQYHXKU-DQ5fX41l.js +0 -2
- package/viewer-dist/assets/chunk-727SXJPM-SK34XSEC.js +0 -206
- package/viewer-dist/assets/chunk-AQP2D5EJ-DXK-1dYB.js +0 -231
- package/viewer-dist/assets/chunk-BR22UD5L-BCm2xrxa.js +0 -1
- package/viewer-dist/assets/chunk-BSJP7CBP-B3Tyh4s5.js +0 -1
- package/viewer-dist/assets/chunk-CSCIHK7Q-BmRiMG-E.js +0 -123
- package/viewer-dist/assets/chunk-FHYWG6QK-B_z4diOF.js +0 -1
- package/viewer-dist/assets/chunk-FMBD7UC4-Dxft-q4P.js +0 -15
- package/viewer-dist/assets/chunk-KSCS5N6A-eA-nZKPR.js +0 -10
- package/viewer-dist/assets/chunk-L5ZTLDWV-CJt5R1DD.js +0 -1
- package/viewer-dist/assets/chunk-MPE355IW-BrU23f3r.js +0 -1
- package/viewer-dist/assets/chunk-MZUSXYTE-BGj-wpbJ.js +0 -1
- package/viewer-dist/assets/chunk-N66VUXT2-Bx9F_D4P.js +0 -1
- package/viewer-dist/assets/chunk-ND2GUHAM-DhxorC-R.js +0 -1
- package/viewer-dist/assets/chunk-NNHCCRGN-DSaPFNsL.js +0 -159
- package/viewer-dist/assets/chunk-NZK2D7GU-DaLfDAf-.js +0 -1
- package/viewer-dist/assets/chunk-O5CBEL6O-D0rppU0M.js +0 -70
- package/viewer-dist/assets/chunk-PUPMXCY4-C2l0dHY4.js +0 -1
- package/viewer-dist/assets/chunk-QZHKN3VN-CqO4Iw07.js +0 -1
- package/viewer-dist/assets/chunk-UIBZB4QT-DXVjm6Jo.js +0 -1
- package/viewer-dist/assets/chunk-WCWK7LTN-zc10zcLo.js +0 -1
- package/viewer-dist/assets/classDiagram-4FO5ZUOK-tR_J6scJ.js +0 -1
- package/viewer-dist/assets/classDiagram-v2-Q7XG4LA2-DStV2Q4p.js +0 -1
- package/viewer-dist/assets/cose-bilkent-S5V4N54A-SSDlF1_a.js +0 -1
- package/viewer-dist/assets/cytoscape.esm-mg8EQp5B.js +0 -321
- package/viewer-dist/assets/dagre-BM42HDAG-CbZJzBab.js +0 -4
- package/viewer-dist/assets/dagre-CdwzCXQr.js +0 -1
- package/viewer-dist/assets/defaultLocale-Dda4OpKy.js +0 -1
- package/viewer-dist/assets/diagram-2AECGRRQ-BB3K5hE5.js +0 -43
- package/viewer-dist/assets/diagram-5GNKFQAL-DWmbyuQH.js +0 -10
- package/viewer-dist/assets/diagram-KO2AKTUF-CYSKyVh3.js +0 -3
- package/viewer-dist/assets/diagram-LMA3HP47-CyTMJfPw.js +0 -24
- package/viewer-dist/assets/diagram-OG6HWLK6-72YuHoex.js +0 -24
- package/viewer-dist/assets/dist-Cz_gOj_F.js +0 -1
- package/viewer-dist/assets/erDiagram-TEJ5UH35-B7Z-qey-.js +0 -85
- package/viewer-dist/assets/eventmodeling-FCH6USID-Cmphiy0Z.js +0 -1
- package/viewer-dist/assets/flowDiagram-I6XJVG4X-Bd8YQF0F.js +0 -162
- package/viewer-dist/assets/ganttDiagram-6RSMTGT7-B0R6fBcN.js +0 -292
- package/viewer-dist/assets/gitGraph-WXDBUCRP-CABAU2x_.js +0 -1
- package/viewer-dist/assets/gitGraphDiagram-PVQCEYII-DgTF7l00.js +0 -106
- package/viewer-dist/assets/graphlib-B0DVs0bw.js +0 -1
- package/viewer-dist/assets/index-BiU7pYUM.css +0 -1
- package/viewer-dist/assets/index-C_Rab63U.js +0 -99
- package/viewer-dist/assets/info-J43DQDTF-CtHtznhp.js +0 -1
- package/viewer-dist/assets/infoDiagram-5YYISTIA-D3ae-MRJ.js +0 -2
- package/viewer-dist/assets/init-Ct4VudL3.js +0 -1
- package/viewer-dist/assets/ishikawaDiagram-YF4QCWOH-BpRQFD12.js +0 -70
- package/viewer-dist/assets/journeyDiagram-JHISSGLW-DTbccBmQ.js +0 -139
- package/viewer-dist/assets/kanban-definition-UN3LZRKU-DBpDPAaX.js +0 -89
- package/viewer-dist/assets/katex-pVJiI_rc.js +0 -257
- package/viewer-dist/assets/line-CSkXZgM5.js +0 -1
- package/viewer-dist/assets/linear-C69MUSpN.js +0 -1
- package/viewer-dist/assets/mermaid-parser.core-BxtmlK9F.js +0 -4
- package/viewer-dist/assets/mindmap-definition-RKZ34NQL-CJfLUd4u.js +0 -96
- package/viewer-dist/assets/ordinal-bHkc4Rpt.js +0 -1
- package/viewer-dist/assets/packet-YPE3B663-DmtvbI4l.js +0 -1
- package/viewer-dist/assets/path-ZGOlHDxT.js +0 -1
- package/viewer-dist/assets/pie-LRSECV5Y-Y82O9nng.js +0 -1
- package/viewer-dist/assets/pieDiagram-4H26LBE5-BsHXB8IC.js +0 -30
- package/viewer-dist/assets/quadrantDiagram-W4KKPZXB-B3RaddW4.js +0 -7
- package/viewer-dist/assets/radar-GUYGQ44K-BHcHsGeF.js +0 -1
- package/viewer-dist/assets/requirementDiagram-4Y6WPE33-CanuKYuP.js +0 -84
- package/viewer-dist/assets/rough.esm-C6nrIGLg.js +0 -1
- package/viewer-dist/assets/sankeyDiagram-5OEKKPKP-B92qVA_9.js +0 -40
- package/viewer-dist/assets/sequenceDiagram-3UESZ5HK-IBhScJkH.js +0 -162
- package/viewer-dist/assets/src--c83fjKW.js +0 -1
- package/viewer-dist/assets/stateDiagram-AJRCARHV-D9ORfcYk.js +0 -1
- package/viewer-dist/assets/stateDiagram-v2-BHNVJYJU-CCmjUx_g.js +0 -1
- package/viewer-dist/assets/timeline-definition-PNZ67QCA-D4afYQ3m.js +0 -120
- package/viewer-dist/assets/treeView-BLDUP644-Cmu4mPLp.js +0 -1
- package/viewer-dist/assets/treemap-LRROVOQU-_N62KlUg.js +0 -1
- package/viewer-dist/assets/vennDiagram-CIIHVFJN-DjSaUOWp.js +0 -34
- package/viewer-dist/assets/wardley-L42UT6IY-DWSXD3L4.js +0 -1
- package/viewer-dist/assets/wardleyDiagram-YWT4CUSO-CBn2PjeZ.js +0 -78
- package/viewer-dist/assets/xychartDiagram-2RQKCTM6-CAAAsGIb.js +0 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.6
|
|
4
|
+
|
|
5
|
+
- Added `agent-md convert --file_name <file.agent.md> --html` for writing static HTML files.
|
|
6
|
+
- Embedded resolved Agent Markdown documents and self-contained viewer assets in generated HTML.
|
|
7
|
+
- Added CLI integration coverage and README guidance for static HTML conversion.
|
|
8
|
+
|
|
9
|
+
## 0.1.5
|
|
10
|
+
|
|
11
|
+
- Added controlled local artifact preview support to the bundled browser viewer.
|
|
12
|
+
- Added content types for text, JSON, CSV, images, PDFs, and videos served through the local artifact endpoint.
|
|
13
|
+
- Bundled the updated Agent Markdown Preview extension for richer embed cards and theme-visible chart colors.
|
|
14
|
+
|
|
3
15
|
## 0.1.4
|
|
4
16
|
|
|
5
17
|
- Added release workflow support for npm trusted publishing with provenance.
|
package/agent-md-preview.vsix
CHANGED
|
Binary file
|
package/dist/index.js
CHANGED
|
@@ -329,6 +329,7 @@ Rules:
|
|
|
329
329
|
- Prefer named data blocks or local files.
|
|
330
330
|
- Add frontmatter with format: agent-md and version: 0.1.
|
|
331
331
|
- Run agent-md validate before considering a document complete.
|
|
332
|
+
- When the user wants a shareable rendered artifact, run agent-md convert --file_name <file.agent.md> --html after validation.
|
|
332
333
|
|
|
333
334
|
Supporting files in this skill directory:
|
|
334
335
|
- agent-md.config.json: default runtime configuration.
|
|
@@ -343,6 +344,11 @@ Supported MVP primitives:
|
|
|
343
344
|
- ::callout for notes, warnings, decisions, risks, and tips.
|
|
344
345
|
- ::tabs for grouped alternative views.
|
|
345
346
|
- ::diagram, ::timeline, ::query, ::embed, ::form, ::map, and ::component are supported with conservative validation and graceful fallbacks.
|
|
347
|
+
|
|
348
|
+
Useful commands:
|
|
349
|
+
- agent-md validate --file <file.agent.md>
|
|
350
|
+
- agent-md convert --file_name <file.agent.md> --html
|
|
351
|
+
- agent-md convert --file_name <file.agent.md> --html --output <output.html>
|
|
346
352
|
`;
|
|
347
353
|
var exampleAgentMarkdown = `---
|
|
348
354
|
format: agent-md
|
|
@@ -627,7 +633,7 @@ function columnType(source, column) {
|
|
|
627
633
|
// src/index.ts
|
|
628
634
|
var program = new Command();
|
|
629
635
|
var cliDir = path2.dirname(fileURLToPath(import.meta.url));
|
|
630
|
-
var cliVersion = "0.1.
|
|
636
|
+
var cliVersion = "0.1.6";
|
|
631
637
|
var extensionId = "AbhinavSwaminathan.agent-md-preview";
|
|
632
638
|
var viewerDistCandidates = [
|
|
633
639
|
path2.resolve(cliDir, "../viewer-dist"),
|
|
@@ -703,6 +709,24 @@ program.command("export").argument("file").option("--format <format>", "html | j
|
|
|
703
709
|
else if (options.format === "markdown-fallback") console.log(renderFallback(document));
|
|
704
710
|
else console.log(renderStaticHtml(document));
|
|
705
711
|
});
|
|
712
|
+
program.command("convert").description("Convert an Agent Markdown document to another format").option("--file_name <file>", "Agent Markdown file to convert").option("--file-name <file>", "Agent Markdown file to convert").option("--html", "write a static HTML file").option("--output <file>", "output file path").option("--root <root>", "project root", ".").option("--config <config>", "config path", "agent-md.config.json").action(async (options, command) => {
|
|
713
|
+
const root = path2.resolve(options.root);
|
|
714
|
+
const file = options.file_name ?? options.fileName;
|
|
715
|
+
if (!file) command.error("error: required option '--file_name <file>' not specified");
|
|
716
|
+
if (!options.html) command.error("error: convert currently requires '--html'");
|
|
717
|
+
if (path2.extname(file) !== ".md" || !file.endsWith(".agent.md")) command.error("error: --file_name must point to a .agent.md file");
|
|
718
|
+
const config = await loadConfig(root, options.config);
|
|
719
|
+
const inputFile = path2.resolve(root, file);
|
|
720
|
+
const document = await parseAndResolve(inputFile, root, config);
|
|
721
|
+
const source = await fs2.readFile(document.sourcePath, "utf8");
|
|
722
|
+
const outputFile = path2.resolve(root, options.output ?? defaultHtmlOutputPath(file));
|
|
723
|
+
const html = await buildStaticHtml(document, source);
|
|
724
|
+
await fs2.mkdir(path2.dirname(outputFile), { recursive: true });
|
|
725
|
+
await fs2.writeFile(outputFile, html);
|
|
726
|
+
console.log(pc.green(`Wrote ${path2.relative(root, outputFile)}`));
|
|
727
|
+
printDiagnostics([document]);
|
|
728
|
+
process.exitCode = document.diagnostics.some((diagnostic) => diagnostic.severity === "error") ? 1 : 0;
|
|
729
|
+
});
|
|
706
730
|
program.command("vscode-extension").description("Print or run local VSCode/Cursor extension install instructions").option("--editor <editor>", "editor CLI to use: cursor or code", "cursor").option("--install", "install the bundled VSIX with the editor CLI").option("--force", "force reinstall when using --install", true).action(async (options) => {
|
|
707
731
|
const vsix = await findVsix();
|
|
708
732
|
if (!vsix) {
|
|
@@ -932,6 +956,65 @@ async function findViewerDistDir() {
|
|
|
932
956
|
}
|
|
933
957
|
return void 0;
|
|
934
958
|
}
|
|
959
|
+
function defaultHtmlOutputPath(file) {
|
|
960
|
+
if (file.endsWith(".agent.md")) return `${file.slice(0, -".agent.md".length)}.html`;
|
|
961
|
+
return `${file.slice(0, -path2.extname(file).length)}.html`;
|
|
962
|
+
}
|
|
963
|
+
async function buildStaticHtml(document, source) {
|
|
964
|
+
const viewerDistDir = await findViewerDistDir();
|
|
965
|
+
const payload = { document, source };
|
|
966
|
+
if (!viewerDistDir) return renderStaticHtml(document, source);
|
|
967
|
+
const indexPath = path2.join(viewerDistDir, "index.html");
|
|
968
|
+
let html = await fs2.readFile(indexPath, "utf8");
|
|
969
|
+
html = stripModulePreloadLinks(html);
|
|
970
|
+
html = await inlineCssAssets(html, viewerDistDir);
|
|
971
|
+
html = await inlineScriptAssets(html, viewerDistDir);
|
|
972
|
+
return html.replace("</head>", `${staticPayloadScript(payload)}</head>`);
|
|
973
|
+
}
|
|
974
|
+
function stripModulePreloadLinks(html) {
|
|
975
|
+
return html.replace(/<link\b[^>]*\brel="modulepreload"[^>]*>/g, "");
|
|
976
|
+
}
|
|
977
|
+
async function inlineCssAssets(html, viewerDistDir) {
|
|
978
|
+
const cssLinkPattern = /<link\b([^>]*?)href="([^"]+\.css)"([^>]*)>/g;
|
|
979
|
+
return replaceAsync(html, cssLinkPattern, async (_match, before, href, after) => {
|
|
980
|
+
const css = await readViewerAsset(viewerDistDir, href);
|
|
981
|
+
return `<style data-agent-md-asset="${escapeHtmlAttribute(href)}"${before.includes("media=") || after.includes("media=") ? `${before}${after}`.match(/\smedia="[^"]+"/)?.[0] ?? "" : ""}>
|
|
982
|
+
${css}
|
|
983
|
+
</style>`;
|
|
984
|
+
});
|
|
985
|
+
}
|
|
986
|
+
async function inlineScriptAssets(html, viewerDistDir) {
|
|
987
|
+
const scriptPattern = /<script\b([^>]*?)src="([^"]+\.js)"([^>]*)><\/script>/g;
|
|
988
|
+
return replaceAsync(html, scriptPattern, async (_match, before, src, after) => {
|
|
989
|
+
const js = await readViewerAsset(viewerDistDir, src);
|
|
990
|
+
const isModule = `${before}${after}`.includes('type="module"');
|
|
991
|
+
const dataUrl = `data:text/javascript;base64,${Buffer.from(js).toString("base64")}`;
|
|
992
|
+
return `<script${isModule ? ' type="module"' : ""} data-agent-md-asset="${escapeHtmlAttribute(src)}" src="${dataUrl}"></script>`;
|
|
993
|
+
});
|
|
994
|
+
}
|
|
995
|
+
async function readViewerAsset(viewerDistDir, assetPath) {
|
|
996
|
+
const relative = decodeURIComponent(assetPath.replace(/^\/+/, ""));
|
|
997
|
+
const absolute = path2.resolve(viewerDistDir, relative);
|
|
998
|
+
const insideViewer = !path2.relative(viewerDistDir, absolute).startsWith("..") && !path2.isAbsolute(path2.relative(viewerDistDir, absolute));
|
|
999
|
+
if (!insideViewer) throw new Error(`Viewer asset escapes dist directory: ${assetPath}`);
|
|
1000
|
+
return fs2.readFile(absolute, "utf8");
|
|
1001
|
+
}
|
|
1002
|
+
async function replaceAsync(source, pattern, replacer) {
|
|
1003
|
+
const matches = [...source.matchAll(pattern)];
|
|
1004
|
+
const replacements = await Promise.all(matches.map((match) => replacer(...match.map((value) => value ?? ""))));
|
|
1005
|
+
let result = source;
|
|
1006
|
+
for (let index = matches.length - 1; index >= 0; index--) {
|
|
1007
|
+
const match = matches[index];
|
|
1008
|
+
result = `${result.slice(0, match.index)}${replacements[index]}${result.slice((match.index ?? 0) + match[0].length)}`;
|
|
1009
|
+
}
|
|
1010
|
+
return result;
|
|
1011
|
+
}
|
|
1012
|
+
function staticPayloadScript(payload) {
|
|
1013
|
+
return `<script>window.__AGENT_MD_STATIC__=${jsonForScript(payload)};</script>`;
|
|
1014
|
+
}
|
|
1015
|
+
function jsonForScript(value) {
|
|
1016
|
+
return JSON.stringify(value).replace(/[<>&\u2028\u2029]/g, (char) => `\\u${char.charCodeAt(0).toString(16).padStart(4, "0")}`);
|
|
1017
|
+
}
|
|
935
1018
|
function contentType(file) {
|
|
936
1019
|
const ext = path2.extname(file);
|
|
937
1020
|
if (ext === ".html") return "text/html; charset=utf8";
|
|
@@ -939,17 +1022,42 @@ function contentType(file) {
|
|
|
939
1022
|
if (ext === ".css") return "text/css; charset=utf8";
|
|
940
1023
|
if (ext === ".svg") return "image/svg+xml";
|
|
941
1024
|
if (ext === ".json") return "application/json";
|
|
1025
|
+
if (ext === ".md" || ext === ".mmd" || ext === ".mermaid" || ext === ".txt") return "text/plain; charset=utf8";
|
|
1026
|
+
if (ext === ".csv") return "text/csv; charset=utf8";
|
|
1027
|
+
if (ext === ".tsv") return "text/tab-separated-values; charset=utf8";
|
|
1028
|
+
if (ext === ".png") return "image/png";
|
|
1029
|
+
if (ext === ".jpg" || ext === ".jpeg") return "image/jpeg";
|
|
1030
|
+
if (ext === ".gif") return "image/gif";
|
|
1031
|
+
if (ext === ".pdf") return "application/pdf";
|
|
1032
|
+
if (ext === ".mp4") return "video/mp4";
|
|
1033
|
+
if (ext === ".webm") return "video/webm";
|
|
942
1034
|
return "application/octet-stream";
|
|
943
1035
|
}
|
|
944
1036
|
function renderFallback(document) {
|
|
945
1037
|
return document.nodes.map((node) => node.type === "markdown" ? node.value : `[${node.type}]`).join("\n\n");
|
|
946
1038
|
}
|
|
947
|
-
function renderStaticHtml(document) {
|
|
948
|
-
return `<!doctype html
|
|
1039
|
+
function renderStaticHtml(document, source) {
|
|
1040
|
+
return `<!doctype html>
|
|
1041
|
+
<html><head><meta charset="utf8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Agent Markdown</title>
|
|
1042
|
+
${staticPayloadScript({ document, source: source ?? "" })}
|
|
1043
|
+
<style>:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#0f172a;background:#f8fafc}body{margin:0;padding:24px}.agent-md-card{border:1px solid #e2e8f0;border-radius:10px;background:white;padding:16px;margin:12px 0}pre{white-space:pre-wrap;background:#0f172a;color:#e2e8f0;padding:16px;border-radius:10px;overflow:auto}table{border-collapse:collapse;width:100%}th,td{border:1px solid #e2e8f0;padding:8px;text-align:left}th{background:#f1f5f9}</style></head>
|
|
1044
|
+
<body><main><h1>Agent Markdown</h1>${document.nodes.map(renderStaticNode).join("\n")}</main></body></html>`;
|
|
949
1045
|
}
|
|
950
1046
|
function escapeHtml(value) {
|
|
951
1047
|
return value.replace(/[&<>"]/g, (char) => ({ "&": "&", "<": "<", ">": ">", '"': """ })[char]);
|
|
952
1048
|
}
|
|
1049
|
+
function escapeHtmlAttribute(value) {
|
|
1050
|
+
return escapeHtml(value);
|
|
1051
|
+
}
|
|
1052
|
+
function renderStaticNode(node) {
|
|
1053
|
+
if (node.type === "markdown") return `<section>${escapeHtml(node.value).replace(/\n/g, "<br>")}</section>`;
|
|
1054
|
+
if (node.type === "metric") return `<section class="agent-md-card"><strong>${escapeHtml(node.label)}</strong><h2>${escapeHtml(String(node.value ?? ""))}</h2></section>`;
|
|
1055
|
+
if (node.type === "table" || node.type === "query") return `<section class="agent-md-card"><strong>${escapeHtml(node.type)}</strong><pre>${escapeHtml(JSON.stringify(node, null, 2))}</pre></section>`;
|
|
1056
|
+
if (node.type === "callout") return `<section class="agent-md-card"><strong>${escapeHtml(node.title ?? node.calloutType)}</strong><p>${escapeHtml(node.body ?? "")}</p></section>`;
|
|
1057
|
+
if (node.type === "tabs") return `<section class="agent-md-card"><strong>Tabs</strong>${node.tabs.map((tab) => `<h3>${escapeHtml(tab.label)}</h3>${tab.children.map(renderStaticNode).join("")}`).join("")}</section>`;
|
|
1058
|
+
if (node.type === "error") return `<section class="agent-md-card"><strong>${escapeHtml(node.message)}</strong></section>`;
|
|
1059
|
+
return `<section class="agent-md-card"><strong>${escapeHtml(node.type)}</strong><pre>${escapeHtml(JSON.stringify(node, null, 2))}</pre></section>`;
|
|
1060
|
+
}
|
|
953
1061
|
async function openBrowser(url) {
|
|
954
1062
|
await import("child_process").then(({ execFile }) => execFile(process.platform === "darwin" ? "open" : "xdg-open", [url]));
|
|
955
1063
|
}
|
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--background:#f8fafc;--card:#fff;--muted:#f1f5f9;--muted-foreground:#64748b;--foreground:#0f172a;--border:#e2e8f0;--primary:#2563eb;--danger:#dc2626;--warning:#d97706;--agent-md-chart-1:#2563eb;--agent-md-chart-2:#16a34a;--agent-md-chart-3:#f59e0b;color:var(--foreground);background:var(--background);font-family:Inter,ui-sans-serif,system-ui,sans-serif}body{margin:0}.app-frame{background:var(--background);min-height:100vh;padding:16px}.browser-shell{border:1px solid var(--border);background:var(--card);border-radius:10px;min-height:min(75vh,680px);display:flex;overflow:hidden}.browser-shell.static-shell{min-height:auto}.file-sidebar{border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent);background:var(--card);width:100%}.sidebar-strip{background:color-mix(in srgb,var(--muted) 40%,transparent);border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent);color:var(--muted-foreground);padding:9px 12px;font-size:12px;font-weight:500}.file-tree{overscroll-behavior:contain;max-height:min(40vh,320px);overflow:auto}.folder-group{border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent)}.folder-group:last-child{border-bottom:0}.folder-row{background:color-mix(in srgb,var(--muted) 25%,transparent);align-items:flex-start;gap:8px;padding:8px 12px;display:flex}.folder-name{letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);font-size:11px;font-weight:700}.folder-count{color:color-mix(in srgb,var(--muted-foreground) 80%,transparent);font-size:10px}ul{margin:0;padding:4px 0;list-style:none}.file-row{text-align:left;width:100%;color:var(--muted-foreground);cursor:pointer;background:0 0;border:0;align-items:flex-start;gap:8px;padding:7px 12px;font-size:12px;line-height:1.25;transition:background-color .12s,color .12s;display:flex}.file-row span:nth-child(2){overflow-wrap:anywhere;min-width:0}.file-row:hover{background:color-mix(in srgb,var(--muted) 80%,transparent);color:var(--foreground)}.file-row.active{background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--foreground);font-weight:500}.tree-icon{flex:none;width:14px;height:14px}.folder-icon{color:var(--muted-foreground)}.file-icon{opacity:.7;margin-top:2px}.status{border-radius:999px;flex:none;width:7px;height:7px;margin-top:4px;margin-left:auto}.ok-dot{background:#16a34a}.warning-dot{background:var(--warning)}.error-dot{background:var(--danger)}.preview-pane{flex-direction:column;flex:1;min-width:0;display:flex;overflow:auto}.preview-header{border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent);background:var(--card);justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px;display:flex}.preview-header h3{overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:600;line-height:1.35}.preview-header p{color:var(--muted-foreground);margin:3px 0 0;font-size:11px}.mode-button{border:1px solid var(--border);background:var(--card);color:var(--muted-foreground);cursor:pointer;border-radius:6px;padding:5px 8px;font-size:11px}.mode-button:hover{background:var(--muted);color:var(--foreground)}.preview-body{min-width:0;padding:16px;overflow:auto}.diagnostics-panel{border-top:1px solid color-mix(in srgb,var(--border) 60%,transparent);background:color-mix(in srgb,var(--muted) 30%,transparent);padding:8px 12px}.diagnostics-panel p{color:var(--muted-foreground);margin:4px 0;font-size:11px}.empty-state{color:var(--muted-foreground);font-size:13px}.agent-md-document{font-size:13px;line-height:1.55}.agent-md-document h1{margin:0 0 14px;font-size:24px}.agent-md-document h2{margin:18px 0 10px;font-size:18px}.agent-md-document h3{margin:0 0 10px;font-size:13px}.agent-md-card{border:1px solid color-mix(in srgb,var(--border) 75%,transparent);background:var(--card);box-shadow:none;border-radius:8px;margin:10px 0;padding:12px}.agent-md-embed-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.agent-md-embed-header h3{margin-bottom:2px}.agent-md-embed-header small,.agent-md-embed-caption,.agent-md-embed-loading{color:var(--muted-foreground);font-size:11px}.agent-md-embed-header a{color:var(--primary);font-size:12px;text-decoration:none}.agent-md-embed-header a:hover{text-decoration:underline}.agent-md-embed-image,.agent-md-embed-media{border:1px solid var(--border);border-radius:8px;max-width:100%;display:block}.agent-md-embed-markdown{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.agent-md-embed-text{max-height:360px}.agent-md-metric strong{margin-top:6px;font-size:22px;display:block}.agent-md-error,.error{border-color:color-mix(in srgb,var(--danger) 35%,var(--border));background:color-mix(in srgb,var(--danger) 6%,var(--card))}.warning{border-color:color-mix(in srgb,var(--warning) 35%,var(--border));background:color-mix(in srgb,var(--warning) 6%,var(--card))}.agent-md-tabs>div:first-child{border-bottom:1px solid var(--border);gap:4px;margin-bottom:10px;display:flex}.agent-md-tabs button{color:var(--muted-foreground);cursor:pointer;background:0 0;border:0;padding:6px 8px;font-size:12px}.agent-md-tabs button:hover{background:var(--muted);color:var(--foreground)}table{border-collapse:collapse;width:100%;font-size:12px}th,td{border:1px solid color-mix(in srgb,var(--border) 70%,transparent);text-align:left;padding:6px 8px}th{background:color-mix(in srgb,var(--muted) 45%,transparent);cursor:pointer;color:var(--muted-foreground);font-size:11px}input{border:1px solid var(--border);border-radius:6px;padding:6px 8px;font-size:12px}pre{color:#e2e8f0;background:#0f172a;border-radius:8px;padding:12px;font-size:12px;overflow:auto}@media (width>=1024px){.browser-shell{flex-direction:row}.file-sidebar{border-bottom:0;border-right:1px solid color-mix(in srgb,var(--border) 60%,transparent);width:min(100%,280px)}.file-tree{max-height:min(75vh,720px)}.preview-body{padding:18px 22px}}@media (width>=1280px){.file-sidebar{width:320px}}
|