@launchsecure/launch-kit 0.0.41 → 0.0.42
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/dist/deck-client/assets/{_baseUniq-mvYvzeEJ.js → _baseUniq-BrhDuG3C.js} +1 -1
- package/dist/deck-client/assets/{arc-CX4ylnp2.js → arc-DXtPHMhw.js} +1 -1
- package/dist/deck-client/assets/{architectureDiagram-Q4EWVU46-BkR-5IRK.js → architectureDiagram-Q4EWVU46-Cs9IdLQQ.js} +1 -1
- package/dist/deck-client/assets/{blockDiagram-DXYQGD6D-DVNQht7c.js → blockDiagram-DXYQGD6D--wpvoBAt.js} +1 -1
- package/dist/deck-client/assets/{c4Diagram-AHTNJAMY-Cbq1rlG8.js → c4Diagram-AHTNJAMY-BNIKE8-Z.js} +1 -1
- package/dist/deck-client/assets/channel-Bb5wIjTD.js +1 -0
- package/dist/deck-client/assets/{chunk-4BX2VUAB-D58Co4lU.js → chunk-4BX2VUAB-Bz3EWmUo.js} +1 -1
- package/dist/deck-client/assets/{chunk-4TB4RGXK-BYvhTm3d.js → chunk-4TB4RGXK-D55BBvVZ.js} +1 -1
- package/dist/deck-client/assets/{chunk-55IACEB6-oWukUhYg.js → chunk-55IACEB6-BzjEcoTi.js} +1 -1
- package/dist/deck-client/assets/{chunk-EDXVE4YY-Cm58kVnZ.js → chunk-EDXVE4YY-CH1vs4Lu.js} +1 -1
- package/dist/deck-client/assets/{chunk-FMBD7UC4-Dg-i7kzi.js → chunk-FMBD7UC4-CVRnaGM0.js} +1 -1
- package/dist/deck-client/assets/{chunk-OYMX7WX6-C72wigPl.js → chunk-OYMX7WX6-BCTV_aEZ.js} +1 -1
- package/dist/deck-client/assets/{chunk-QZHKN3VN-CLgeuAKw.js → chunk-QZHKN3VN-BqM8r4ee.js} +1 -1
- package/dist/deck-client/assets/{chunk-YZCP3GAM-HDDlJ5oI.js → chunk-YZCP3GAM-Rhbb691A.js} +1 -1
- package/dist/deck-client/assets/classDiagram-6PBFFD2Q-CN-ZYMbT.js +1 -0
- package/dist/deck-client/assets/classDiagram-v2-HSJHXN6E-CN-ZYMbT.js +1 -0
- package/dist/deck-client/assets/clone-D6e7poKG.js +1 -0
- package/dist/deck-client/assets/{cose-bilkent-S5V4N54A-CUXQKg2M.js → cose-bilkent-S5V4N54A-fWyBR9Nn.js} +1 -1
- package/dist/deck-client/assets/{dagre-KV5264BT-C5M-fVDc.js → dagre-KV5264BT-Ds0Sqext.js} +1 -1
- package/dist/deck-client/assets/{diagram-5BDNPKRD-CcVsQ0S8.js → diagram-5BDNPKRD-BGz_X007.js} +1 -1
- package/dist/deck-client/assets/{diagram-G4DWMVQ6-DJswXyep.js → diagram-G4DWMVQ6-C78jeb-r.js} +1 -1
- package/dist/deck-client/assets/{diagram-MMDJMWI5-CGT76fm1.js → diagram-MMDJMWI5-BdoHW8mF.js} +1 -1
- package/dist/deck-client/assets/{diagram-TYMM5635-BBsYUNN6.js → diagram-TYMM5635-C8i9zc-U.js} +1 -1
- package/dist/deck-client/assets/{erDiagram-SMLLAGMA-DKWYEHQS.js → erDiagram-SMLLAGMA-DplAZ-yG.js} +1 -1
- package/dist/deck-client/assets/{flowDiagram-DWJPFMVM-DLuDYIKT.js → flowDiagram-DWJPFMVM-F3N9yTAB.js} +1 -1
- package/dist/deck-client/assets/{ganttDiagram-T4ZO3ILL-B19b6Qtj.js → ganttDiagram-T4ZO3ILL-DebdM4S5.js} +1 -1
- package/dist/deck-client/assets/{gitGraphDiagram-UUTBAWPF-BYLAfYVS.js → gitGraphDiagram-UUTBAWPF-htCk0oPz.js} +1 -1
- package/dist/deck-client/assets/{graph-CfzQUfPh.js → graph-Dtxc2PT4.js} +1 -1
- package/dist/deck-client/assets/{index-DlwdTgE_.js → index-CwAiam97.js} +2 -2
- package/dist/deck-client/assets/{infoDiagram-42DDH7IO-Dp3mUA9c.js → infoDiagram-42DDH7IO-gTxegviJ.js} +1 -1
- package/dist/deck-client/assets/{ishikawaDiagram-UXIWVN3A-BhrNX_jI.js → ishikawaDiagram-UXIWVN3A-DYSEsfUK.js} +1 -1
- package/dist/deck-client/assets/{journeyDiagram-VCZTEJTY-B5lJI492.js → journeyDiagram-VCZTEJTY-DgVc1q4D.js} +1 -1
- package/dist/deck-client/assets/{kanban-definition-6JOO6SKY-D9-lmhQf.js → kanban-definition-6JOO6SKY-DcOf3i9N.js} +1 -1
- package/dist/deck-client/assets/{layout-CfIe_Su8.js → layout-CHP9HIw4.js} +1 -1
- package/dist/deck-client/assets/{linear-09ZFRoh_.js → linear-XjVb7x4Q.js} +1 -1
- package/dist/deck-client/assets/{mermaid.core-BaQyIOvj.js → mermaid.core-bouKOnsR.js} +4 -4
- package/dist/deck-client/assets/{min-CYwCzYaL.js → min-Jl4GV9DB.js} +1 -1
- package/dist/deck-client/assets/{mindmap-definition-QFDTVHPH-CouFxf6C.js → mindmap-definition-QFDTVHPH-FXXf4cJx.js} +1 -1
- package/dist/deck-client/assets/{pieDiagram-DEJITSTG-DMB1ufC0.js → pieDiagram-DEJITSTG-Dl4plCTi.js} +1 -1
- package/dist/deck-client/assets/{quadrantDiagram-34T5L4WZ-CBiOKudN.js → quadrantDiagram-34T5L4WZ-BeOEeelg.js} +1 -1
- package/dist/deck-client/assets/{requirementDiagram-MS252O5E-BMc3GJkx.js → requirementDiagram-MS252O5E-CBh1jchM.js} +1 -1
- package/dist/deck-client/assets/{sankeyDiagram-XADWPNL6-CxACUncm.js → sankeyDiagram-XADWPNL6-BK6gG-ub.js} +1 -1
- package/dist/deck-client/assets/{sequenceDiagram-FGHM5R23-Ch-P3Mzc.js → sequenceDiagram-FGHM5R23-BtQwzsF5.js} +1 -1
- package/dist/deck-client/assets/{stateDiagram-FHFEXIEX-Cy8n7Yzk.js → stateDiagram-FHFEXIEX--kLQOi8R.js} +1 -1
- package/dist/deck-client/assets/stateDiagram-v2-QKLJ7IA2-CHEPjgB0.js +1 -0
- package/dist/deck-client/assets/{timeline-definition-GMOUNBTQ-C2V4sSkm.js → timeline-definition-GMOUNBTQ-CQ_-CLh7.js} +1 -1
- package/dist/deck-client/assets/{vennDiagram-DHZGUBPP-YOqt4VbE.js → vennDiagram-DHZGUBPP-DBhKYAFT.js} +1 -1
- package/dist/deck-client/assets/{wardley-RL74JXVD-Bxo5x40D.js → wardley-RL74JXVD-DLKe29q9.js} +1 -1
- package/dist/deck-client/assets/{wardleyDiagram-NUSXRM2D-DW9SOqbx.js → wardleyDiagram-NUSXRM2D-Brb8ezsV.js} +1 -1
- package/dist/deck-client/assets/{xychartDiagram-5P7HB3ND-D-rZvZOL.js → xychartDiagram-5P7HB3ND-LogZ0Az9.js} +1 -1
- package/dist/deck-client/index.html +1 -1
- package/dist/server/deck-mcp-entry.js +137 -2
- package/dist/server/deck-serve.js +93 -1
- package/dist/server/rover-entry.js +1 -1
- package/package.json +1 -1
- package/dist/deck-client/assets/channel-B9GC-CLn.js +0 -1
- package/dist/deck-client/assets/classDiagram-6PBFFD2Q-CFBvYQ9j.js +0 -1
- package/dist/deck-client/assets/classDiagram-v2-HSJHXN6E-CFBvYQ9j.js +0 -1
- package/dist/deck-client/assets/clone-n-WQlAGe.js +0 -1
- package/dist/deck-client/assets/stateDiagram-v2-QKLJ7IA2-C14VKCzi.js +0 -1
|
@@ -1441,6 +1441,24 @@ async function updateDeck(commentId, input) {
|
|
|
1441
1441
|
async function deleteDeck(commentId) {
|
|
1442
1442
|
await callTool("communication_delete", { comment_id: commentId });
|
|
1443
1443
|
}
|
|
1444
|
+
function authorLabel(c) {
|
|
1445
|
+
return c.author?.name || c.author?.email || "unknown";
|
|
1446
|
+
}
|
|
1447
|
+
async function readCloudDeck(commentId) {
|
|
1448
|
+
const result = await callTool("communication_read", {
|
|
1449
|
+
resource_type: "deck",
|
|
1450
|
+
limit: 50
|
|
1451
|
+
});
|
|
1452
|
+
const deck = result?.comments?.find((c) => c.id === commentId);
|
|
1453
|
+
if (!deck) return null;
|
|
1454
|
+
return {
|
|
1455
|
+
id: deck.id,
|
|
1456
|
+
title: deck.title ?? "(untitled deck)",
|
|
1457
|
+
author: authorLabel(deck),
|
|
1458
|
+
html: typeof deck.fields?.deckHtml === "string" ? deck.fields.deckHtml : null,
|
|
1459
|
+
blocks: Array.isArray(deck.fields?.deckBlocks) && deck.fields.deckBlocks.length > 0 ? deck.fields.deckBlocks : null
|
|
1460
|
+
};
|
|
1461
|
+
}
|
|
1444
1462
|
function currentMcpOrigin() {
|
|
1445
1463
|
const config = _config;
|
|
1446
1464
|
if (!config) throw new Error("MCP config not loaded \u2014 call loadMcpConfig first");
|
|
@@ -1487,6 +1505,10 @@ function sessionDir(cwd, session) {
|
|
|
1487
1505
|
function sessionJsonPath(cwd, session) {
|
|
1488
1506
|
return import_node_path4.default.join(sessionDir(cwd, session), "session.json");
|
|
1489
1507
|
}
|
|
1508
|
+
function sessionIdFromCloud(title, fallbackId) {
|
|
1509
|
+
const slug = title.trim().replace(/[^a-zA-Z0-9._-]+/g, "-").replace(/^[-.]+|[-.]+$/g, "").slice(0, 80);
|
|
1510
|
+
return slug || `deck-${fallbackId.slice(0, 8)}`;
|
|
1511
|
+
}
|
|
1490
1512
|
function readPersistedSession(cwd, session) {
|
|
1491
1513
|
try {
|
|
1492
1514
|
const raw = import_node_fs4.default.readFileSync(sessionJsonPath(cwd, session), "utf-8");
|
|
@@ -1532,7 +1554,9 @@ function listPersistedSessions(cwd) {
|
|
|
1532
1554
|
shared: Boolean(sync),
|
|
1533
1555
|
stale: Boolean(sync) && persisted.version > (sync?.version ?? 0),
|
|
1534
1556
|
shareUrl: sync?.publicShareUrl,
|
|
1535
|
-
course: sync?.course
|
|
1557
|
+
course: sync?.course,
|
|
1558
|
+
watching: sync?.watching,
|
|
1559
|
+
watchedFrom: sync?.watchedFrom
|
|
1536
1560
|
});
|
|
1537
1561
|
}
|
|
1538
1562
|
sessions.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
|
|
@@ -1931,6 +1955,74 @@ async function startDeckServer(opts = {}) {
|
|
|
1931
1955
|
jsonResponse(res, 200, { sessions: listPersistedSessions(cwd) });
|
|
1932
1956
|
return;
|
|
1933
1957
|
}
|
|
1958
|
+
const pullMatch = url2.pathname.match(/^\/api\/cloud-decks\/([^/]+)\/pull$/);
|
|
1959
|
+
if (pullMatch && req.method === "POST") {
|
|
1960
|
+
const deckId = decodeURIComponent(pullMatch[1]);
|
|
1961
|
+
let course;
|
|
1962
|
+
try {
|
|
1963
|
+
const raw = await readBody(req);
|
|
1964
|
+
if (raw.trim()) {
|
|
1965
|
+
const parsed = JSON.parse(raw);
|
|
1966
|
+
course = parsed.course?.trim() || void 0;
|
|
1967
|
+
}
|
|
1968
|
+
} catch {
|
|
1969
|
+
}
|
|
1970
|
+
const cfg = resolveShareConfig(cwd, course);
|
|
1971
|
+
if ("error" in cfg) {
|
|
1972
|
+
jsonResponse(res, 400, { ok: false, error: cfg.error });
|
|
1973
|
+
return;
|
|
1974
|
+
}
|
|
1975
|
+
try {
|
|
1976
|
+
const deck = await runWithShareConfig(cfg.override, () => readCloudDeck(deckId));
|
|
1977
|
+
if (!deck) {
|
|
1978
|
+
jsonResponse(res, 404, { ok: false, error: `No shared deck "${deckId}" in this course.` });
|
|
1979
|
+
return;
|
|
1980
|
+
}
|
|
1981
|
+
if (!deck.html && !deck.blocks) {
|
|
1982
|
+
jsonResponse(res, 422, { ok: false, error: "That deck carries no viewable content (no deckHtml or deckBlocks)." });
|
|
1983
|
+
return;
|
|
1984
|
+
}
|
|
1985
|
+
const session = sessionIdFromCloud(deck.title, deck.id);
|
|
1986
|
+
const sessionEncoded = encodeURIComponent(session);
|
|
1987
|
+
let blocks;
|
|
1988
|
+
if (deck.html) {
|
|
1989
|
+
const dir = sessionDir(cwd, session);
|
|
1990
|
+
import_node_fs4.default.mkdirSync(dir, { recursive: true });
|
|
1991
|
+
import_node_fs4.default.writeFileSync(import_node_path4.default.join(dir, "imported.html"), deck.html);
|
|
1992
|
+
blocks = [{ type: "iframe", label: deck.title, src: `/deck-files/${sessionEncoded}/imported.html` }];
|
|
1993
|
+
} else {
|
|
1994
|
+
blocks = deck.blocks;
|
|
1995
|
+
}
|
|
1996
|
+
const persisted = writePersistedSession(cwd, session, { mode: "show", blocks });
|
|
1997
|
+
writeSyncRecord(cwd, session, {
|
|
1998
|
+
resourceId: deck.id,
|
|
1999
|
+
sharedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
2000
|
+
version: persisted.version,
|
|
2001
|
+
course,
|
|
2002
|
+
watching: true,
|
|
2003
|
+
watchedFrom: deck.author
|
|
2004
|
+
});
|
|
2005
|
+
broadcastToClients({
|
|
2006
|
+
type: "session",
|
|
2007
|
+
session,
|
|
2008
|
+
mode: "show",
|
|
2009
|
+
blocks,
|
|
2010
|
+
version: persisted.version
|
|
2011
|
+
});
|
|
2012
|
+
jsonResponse(res, 200, {
|
|
2013
|
+
ok: true,
|
|
2014
|
+
session,
|
|
2015
|
+
deckId: deck.id,
|
|
2016
|
+
title: deck.title,
|
|
2017
|
+
author: deck.author,
|
|
2018
|
+
blockCount: blocks.length,
|
|
2019
|
+
course
|
|
2020
|
+
});
|
|
2021
|
+
} catch (err) {
|
|
2022
|
+
jsonResponse(res, 500, { ok: false, error: String(err) });
|
|
2023
|
+
}
|
|
2024
|
+
return;
|
|
2025
|
+
}
|
|
1934
2026
|
const shareMatch = url2.pathname.match(/^\/api\/sessions\/([^/]+)\/share$/);
|
|
1935
2027
|
if (shareMatch && req.method === "POST") {
|
|
1936
2028
|
const id = decodeURIComponent(shareMatch[1]);
|
|
@@ -608,7 +608,7 @@ var require_package = __commonJS({
|
|
|
608
608
|
"package.json"(exports2, module2) {
|
|
609
609
|
module2.exports = {
|
|
610
610
|
name: "@launchsecure/launch-kit",
|
|
611
|
-
version: "0.0.
|
|
611
|
+
version: "0.0.42",
|
|
612
612
|
description: "LaunchSecure toolkit \u2014 launch-sequencer (pipeline runner + terminal bridge), launch-radar (feedback webhook receiver), launch-chart (project graph MCP), launch-deck (visual playground MCP), launch-kit-beacon (feedback Web Component), launch-recall (file-watcher backup). launch-pod is the container image these run inside.",
|
|
613
613
|
license: "MIT",
|
|
614
614
|
author: "LaunchSecure - AutomateWithUs",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@launchsecure/launch-kit",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.42",
|
|
4
4
|
"description": "LaunchSecure toolkit — launch-sequencer (pipeline runner + terminal bridge), launch-radar (feedback webhook receiver), launch-chart (project graph MCP), launch-deck (visual playground MCP), launch-kit-beacon (feedback Web Component), launch-recall (file-watcher backup). launch-pod is the container image these run inside.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "LaunchSecure - AutomateWithUs",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aq as o,ar as n}from"./mermaid.core-BaQyIOvj.js";const t=(r,a)=>o.lang.round(n.parse(r)[a]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-BYvhTm3d.js";import{_ as i}from"./mermaid.core-BaQyIOvj.js";import"./chunk-FMBD7UC4-Dg-i7kzi.js";import"./chunk-YZCP3GAM-HDDlJ5oI.js";import"./chunk-55IACEB6-oWukUhYg.js";import"./chunk-EDXVE4YY-Cm58kVnZ.js";import"./index-DlwdTgE_.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-BYvhTm3d.js";import{_ as i}from"./mermaid.core-BaQyIOvj.js";import"./chunk-FMBD7UC4-Dg-i7kzi.js";import"./chunk-YZCP3GAM-HDDlJ5oI.js";import"./chunk-55IACEB6-oWukUhYg.js";import"./chunk-EDXVE4YY-Cm58kVnZ.js";import"./index-DlwdTgE_.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./graph-CfzQUfPh.js";var e=4;function a(o){return r(o,e)}export{a as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,b as r,a,S as s}from"./chunk-OYMX7WX6-C72wigPl.js";import{_ as i}from"./mermaid.core-BaQyIOvj.js";import"./chunk-55IACEB6-oWukUhYg.js";import"./chunk-EDXVE4YY-Cm58kVnZ.js";import"./index-DlwdTgE_.js";var p={parser:a,get db(){return new s(2)},renderer:r,styles:e,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{p as diagram};
|