@limeadelabs/launchpad-mcp 1.2.3 → 1.2.4
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/index.js +28 -13
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -621,14 +621,19 @@ function registerSessionTools(server2, client2) {
|
|
|
621
621
|
);
|
|
622
622
|
server2.tool(
|
|
623
623
|
"lp_session_progress",
|
|
624
|
-
|
|
624
|
+
"Report progress on an active session. Provide session_id directly or task_id to look up session from disk.",
|
|
625
625
|
{
|
|
626
|
-
session_id: z9.coerce.number().describe("Session ID"),
|
|
626
|
+
session_id: z9.coerce.number().optional().describe("Session ID"),
|
|
627
|
+
task_id: z9.coerce.number().optional().describe("Task ID to look up session from disk"),
|
|
627
628
|
detail: z9.string().describe("Description of progress made")
|
|
628
629
|
},
|
|
629
|
-
async ({ session_id, detail }) => {
|
|
630
|
+
async ({ session_id, task_id, detail }) => {
|
|
630
631
|
try {
|
|
631
|
-
const
|
|
632
|
+
const resolvedId = session_id ?? (task_id !== void 0 ? getSessionId(task_id) : null);
|
|
633
|
+
if (resolvedId === null) {
|
|
634
|
+
return { content: [{ type: "text", text: "No active session found. Provide session_id or task_id." }] };
|
|
635
|
+
}
|
|
636
|
+
const result = await client2.updateSession(resolvedId, {
|
|
632
637
|
activity: { action: "progress", detail }
|
|
633
638
|
});
|
|
634
639
|
return {
|
|
@@ -641,15 +646,20 @@ function registerSessionTools(server2, client2) {
|
|
|
641
646
|
);
|
|
642
647
|
server2.tool(
|
|
643
648
|
"lp_session_event",
|
|
644
|
-
"Log a discrete event for a session (commit, ci_pass, ci_fail, pr_opened, blocker, cost_update).",
|
|
649
|
+
"Log a discrete event for a session (commit, ci_pass, ci_fail, pr_opened, blocker, cost_update). Provide session_id or task_id.",
|
|
645
650
|
{
|
|
646
|
-
session_id: z9.coerce.number().describe("Session ID"),
|
|
651
|
+
session_id: z9.coerce.number().optional().describe("Session ID"),
|
|
652
|
+
task_id: z9.coerce.number().optional().describe("Task ID to look up session from disk"),
|
|
647
653
|
event_type: z9.enum(["commit", "ci_pass", "ci_fail", "pr_opened", "blocker", "cost_update"]).describe("Type of event"),
|
|
648
654
|
payload: z9.record(z9.unknown()).describe("Event payload data")
|
|
649
655
|
},
|
|
650
|
-
async ({ session_id, event_type, payload }) => {
|
|
656
|
+
async ({ session_id, task_id, event_type, payload }) => {
|
|
651
657
|
try {
|
|
652
|
-
const
|
|
658
|
+
const resolvedId = session_id ?? (task_id !== void 0 ? getSessionId(task_id) : null);
|
|
659
|
+
if (resolvedId === null) {
|
|
660
|
+
return { content: [{ type: "text", text: "No active session found. Provide session_id or task_id." }] };
|
|
661
|
+
}
|
|
662
|
+
const result = await client2.createSessionEvent(resolvedId, event_type, payload);
|
|
653
663
|
return {
|
|
654
664
|
content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
|
|
655
665
|
};
|
|
@@ -660,16 +670,21 @@ function registerSessionTools(server2, client2) {
|
|
|
660
670
|
);
|
|
661
671
|
server2.tool(
|
|
662
672
|
"lp_session_blocked",
|
|
663
|
-
'Mark a session as blocked. Updates status to "blocked" and logs a blocker event.',
|
|
673
|
+
'Mark a session as blocked. Updates status to "blocked" and logs a blocker event. Provide session_id or task_id.',
|
|
664
674
|
{
|
|
665
|
-
session_id: z9.coerce.number().describe("Session ID"),
|
|
675
|
+
session_id: z9.coerce.number().optional().describe("Session ID"),
|
|
676
|
+
task_id: z9.coerce.number().optional().describe("Task ID to look up session from disk"),
|
|
666
677
|
reason: z9.string().describe("Reason the session is blocked")
|
|
667
678
|
},
|
|
668
|
-
async ({ session_id, reason }) => {
|
|
679
|
+
async ({ session_id, task_id, reason }) => {
|
|
669
680
|
try {
|
|
681
|
+
const resolvedId = session_id ?? (task_id !== void 0 ? getSessionId(task_id) : null);
|
|
682
|
+
if (resolvedId === null) {
|
|
683
|
+
return { content: [{ type: "text", text: "No active session found. Provide session_id or task_id." }] };
|
|
684
|
+
}
|
|
670
685
|
const [sessionResult, eventResult] = await Promise.all([
|
|
671
|
-
client2.updateSession(
|
|
672
|
-
client2.createSessionEvent(
|
|
686
|
+
client2.updateSession(resolvedId, { status: "blocked" }),
|
|
687
|
+
client2.createSessionEvent(resolvedId, "blocker", { reason })
|
|
673
688
|
]);
|
|
674
689
|
return {
|
|
675
690
|
content: [{
|