@launchsecure/launch-kit 0.0.33 → 0.0.35
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/server/chart-serve.js +167 -2
- package/dist/server/cli.js +286 -50
- package/dist/server/course-entry.js +1 -1
- package/dist/server/graph-mcp-entry.js +180 -4
- package/dist/server/init-entry.js +563 -60
- package/dist/server/launch-bot-entry.js +4078 -0
- package/dist/server/launch-radar-entry.js +45 -0
- package/dist/server/orbit-entry.js +123 -26
- package/dist/server/parse-worker-entry.js +167 -2
- package/dist/server/radar-docker-init-entry.js +496 -39
- package/dist/server/radar-teardown-entry.js +23 -22
- package/dist/server/rover-entry.js +20555 -0
- package/package.json +8 -5
- package/scaffolds/ls-marketplace/plugins/kit/commands/standup.md +6 -6
- package/scaffolds/ls-marketplace/plugins/kit/skills/analyse/SKILL.md +6 -0
- package/scaffolds/ls-marketplace/plugins/kit/skills/brief/SKILL.md +72 -49
- package/scaffolds/ls-marketplace/plugins/kit/skills/brief/briefs.mjs +152 -0
- package/scaffolds/ls-marketplace/plugins/kit/skills/debug/SKILL.md +45 -20
- package/scaffolds/ls-marketplace/plugins/kit/skills/deploy-check/SKILL.md +76 -67
- package/scaffolds/ls-marketplace/plugins/kit/skills/handoff/SKILL.md +132 -0
- package/scaffolds/ls-marketplace/plugins/kit/skills/kickoff/SKILL.md +151 -0
- package/scaffolds/ls-marketplace/plugins/kit/skills/orbit/SKILL.md +14 -2
- package/scaffolds/ls-marketplace/plugins/kit/skills/ship/SKILL.md +149 -133
|
@@ -145,21 +145,22 @@ function parseBody(text) {
|
|
|
145
145
|
|
|
146
146
|
// src/server/radar-teardown-entry.ts
|
|
147
147
|
var COMPOSE_FILE = (0, import_node_path.resolve)(process.cwd(), "docker-compose.yml");
|
|
148
|
-
var
|
|
148
|
+
var LAUNCH_POD_DIR = (0, import_node_path.dirname)(COMPOSE_FILE);
|
|
149
149
|
var COMPOSE_BASE = ["compose", "-f", COMPOSE_FILE];
|
|
150
|
-
var
|
|
151
|
-
|
|
150
|
+
var COMPOSE_SERVICE = "launch-pod";
|
|
151
|
+
var ENV_PATH = (0, import_node_path.join)(LAUNCH_POD_DIR, ".env");
|
|
152
|
+
function ensureLaunchPodCompose() {
|
|
152
153
|
if (!(0, import_node_fs.existsSync)(COMPOSE_FILE)) {
|
|
153
154
|
console.error(`[teardown] aborting \u2014 no docker-compose.yml at ${COMPOSE_FILE}`);
|
|
154
|
-
console.error(`[teardown] run from packages/cli/docker/
|
|
155
|
+
console.error(`[teardown] run from packages/cli/docker/launch-pod/ (the directory holding the launch-pod compose).`);
|
|
155
156
|
process.exit(1);
|
|
156
157
|
}
|
|
157
158
|
const text = (0, import_node_fs.readFileSync)(COMPOSE_FILE, "utf-8");
|
|
158
159
|
const hasServices = /(^|\n)services:\s*(\n|$)/.test(text);
|
|
159
|
-
const
|
|
160
|
-
if (!hasServices || !
|
|
161
|
-
console.error(`[teardown] aborting \u2014 ${COMPOSE_FILE} does not define a '
|
|
162
|
-
console.error(`[teardown] this command is only for the launch-pod
|
|
160
|
+
const hasLaunchPod = /\n[ \t]+launch-pod:/.test(text);
|
|
161
|
+
if (!hasServices || !hasLaunchPod) {
|
|
162
|
+
console.error(`[teardown] aborting \u2014 ${COMPOSE_FILE} does not define a 'launch-pod' service.`);
|
|
163
|
+
console.error(`[teardown] this command is only for the launch-pod container; refusing to touch this compose project.`);
|
|
163
164
|
process.exit(1);
|
|
164
165
|
}
|
|
165
166
|
}
|
|
@@ -188,10 +189,10 @@ function parseArgs(argv) {
|
|
|
188
189
|
return out;
|
|
189
190
|
}
|
|
190
191
|
function printHelp() {
|
|
191
|
-
console.log("usage: launch-
|
|
192
|
+
console.log("usage: launch-sequencer radar:teardown [--remove-env] [--remove-image] [--force]");
|
|
192
193
|
console.log("");
|
|
193
194
|
console.log(" --remove-env also delete .env (default: keep \u2014 contains live creds)");
|
|
194
|
-
console.log(" --remove-image also remove
|
|
195
|
+
console.log(" --remove-image also remove launch-pod:local image");
|
|
195
196
|
console.log(" --force skip the workspace-safety preflight (discards");
|
|
196
197
|
console.log(" uncommitted changes / unpushed commits / in-flight");
|
|
197
198
|
console.log(" analyzer sessions without warning)");
|
|
@@ -205,11 +206,11 @@ function sh(cmd, args, opts = {}) {
|
|
|
205
206
|
};
|
|
206
207
|
}
|
|
207
208
|
function workspaceSh(command) {
|
|
208
|
-
const psQ = sh("docker", [...COMPOSE_BASE, "ps", "-q",
|
|
209
|
+
const psQ = sh("docker", [...COMPOSE_BASE, "ps", "-q", COMPOSE_SERVICE]);
|
|
209
210
|
if (psQ.status === 0 && psQ.stdout.trim()) {
|
|
210
|
-
return sh("docker", [...COMPOSE_BASE, "exec", "-T",
|
|
211
|
+
return sh("docker", [...COMPOSE_BASE, "exec", "-T", COMPOSE_SERVICE, "sh", "-c", command]).stdout;
|
|
211
212
|
}
|
|
212
|
-
return sh("docker", [...COMPOSE_BASE, "run", "--rm", "--no-deps", "--entrypoint", "sh",
|
|
213
|
+
return sh("docker", [...COMPOSE_BASE, "run", "--rm", "--no-deps", "--entrypoint", "sh", COMPOSE_SERVICE, "-c", command]).stdout;
|
|
213
214
|
}
|
|
214
215
|
function loadIgnoreSegs() {
|
|
215
216
|
const json = workspaceSh("cat /workspace/.recall/config.json 2>/dev/null");
|
|
@@ -303,7 +304,7 @@ function filterStatusSignal(raw, modeOnly, segs, scaffoldClean) {
|
|
|
303
304
|
return out;
|
|
304
305
|
}
|
|
305
306
|
function probeDocker() {
|
|
306
|
-
const containerRunning = sh("docker", [...COMPOSE_BASE, "ps", "-q",
|
|
307
|
+
const containerRunning = sh("docker", [...COMPOSE_BASE, "ps", "-q", COMPOSE_SERVICE]).stdout.trim().length > 0;
|
|
307
308
|
const projectName = (sh("docker", [...COMPOSE_BASE, "config", "--format", "json"]).stdout.match(/"name"\s*:\s*"([^"]+)"/) ?? [])[1] ?? "";
|
|
308
309
|
let workspaceVolumeExists = false;
|
|
309
310
|
if (projectName) {
|
|
@@ -319,7 +320,7 @@ function preflightWorkspace(args) {
|
|
|
319
320
|
}
|
|
320
321
|
const state = probeDocker();
|
|
321
322
|
if (!state.containerRunning && !state.workspaceVolumeExists) {
|
|
322
|
-
console.log("[teardown] no
|
|
323
|
+
console.log("[teardown] no launch-pod container or workspace volume present \u2014 nothing to check");
|
|
323
324
|
return;
|
|
324
325
|
}
|
|
325
326
|
console.log("[teardown] checking workspace for unsaved work\u2026");
|
|
@@ -357,7 +358,7 @@ function preflightWorkspace(args) {
|
|
|
357
358
|
if (blocked) {
|
|
358
359
|
console.log("");
|
|
359
360
|
console.log("[teardown] aborting \u2014 workspace has unsaved work.");
|
|
360
|
-
console.log(" \u2022 commit + push from inside the container (docker compose exec
|
|
361
|
+
console.log(" \u2022 commit + push from inside the container (docker compose exec launch-pod sh), then re-run, OR");
|
|
361
362
|
console.log(" \u2022 re-run with --force to discard the work and tear down anyway.");
|
|
362
363
|
process.exit(2);
|
|
363
364
|
}
|
|
@@ -380,7 +381,7 @@ function parseEnvFile(path) {
|
|
|
380
381
|
return env;
|
|
381
382
|
}
|
|
382
383
|
async function releaseWebhook() {
|
|
383
|
-
const psQ = sh("docker", [...COMPOSE_BASE, "ps", "-q",
|
|
384
|
+
const psQ = sh("docker", [...COMPOSE_BASE, "ps", "-q", COMPOSE_SERVICE]);
|
|
384
385
|
if (psQ.status !== 0 || !psQ.stdout.trim()) {
|
|
385
386
|
console.log("[teardown] container not running \u2014 skipping webhook release");
|
|
386
387
|
console.log("[teardown] (any prior registration is now orphaned \u2014 clean up via cloud LS settings UI)");
|
|
@@ -435,15 +436,15 @@ function dockerComposeDown() {
|
|
|
435
436
|
}
|
|
436
437
|
function cleanupLocalArtifacts(args) {
|
|
437
438
|
if (args.removeImage) {
|
|
438
|
-
console.log("[teardown] removing image
|
|
439
|
-
const rmi = sh("docker", ["rmi", "
|
|
439
|
+
console.log("[teardown] removing image launch-pod:local");
|
|
440
|
+
const rmi = sh("docker", ["rmi", "launch-pod:local"]);
|
|
440
441
|
console.log(rmi.status === 0 ? " removed" : " not present");
|
|
441
442
|
}
|
|
442
|
-
for (const f of (0, import_node_fs.readdirSync)(
|
|
443
|
+
for (const f of (0, import_node_fs.readdirSync)(LAUNCH_POD_DIR)) {
|
|
443
444
|
if (f.startsWith("launchsecure-launch-kit-") && f.endsWith(".tgz")) {
|
|
444
445
|
console.log("[teardown] removing launch-kit tarball(s)");
|
|
445
446
|
try {
|
|
446
|
-
(0, import_node_fs.unlinkSync)((0, import_node_path.join)(
|
|
447
|
+
(0, import_node_fs.unlinkSync)((0, import_node_path.join)(LAUNCH_POD_DIR, f));
|
|
447
448
|
} catch {
|
|
448
449
|
}
|
|
449
450
|
}
|
|
@@ -464,7 +465,7 @@ async function main() {
|
|
|
464
465
|
printHelp();
|
|
465
466
|
return;
|
|
466
467
|
}
|
|
467
|
-
|
|
468
|
+
ensureLaunchPodCompose();
|
|
468
469
|
preflightWorkspace(args);
|
|
469
470
|
await releaseWebhook();
|
|
470
471
|
dockerComposeDown();
|