refactor instructions to return object with full/system/user/event/runtime properties, fix duplicate modes and json prompt extraction (#110)
This commit is contained in:
committed by
pullfrog[bot]
parent
410b11db71
commit
cb925556e8
+7
-45
@@ -1,59 +1,21 @@
|
||||
import type { ToolState } from "../mcp/server.ts";
|
||||
import { createOctokit, parseRepoContext } from "./github.ts";
|
||||
import { getGitHubInstallationToken } from "./token.ts";
|
||||
import { fetchWorkflowRunInfo } from "./workflowRun.ts";
|
||||
|
||||
/**
|
||||
* Get progress comment ID from environment variable or database.
|
||||
*/
|
||||
function getProgressCommentIdFromEnv(): number | null {
|
||||
const envCommentId = process.env.PULLFROG_PROGRESS_COMMENT_ID;
|
||||
if (envCommentId) {
|
||||
const parsed = parseInt(envCommentId, 10);
|
||||
if (!Number.isNaN(parsed)) {
|
||||
return parsed;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export async function reportErrorToComment({
|
||||
error,
|
||||
title,
|
||||
}: {
|
||||
interface ReportErrorParams {
|
||||
toolState: ToolState;
|
||||
error: string;
|
||||
title?: string;
|
||||
}): Promise<void> {
|
||||
const formattedError = title ? `${title}\n\n${error}` : error;
|
||||
}
|
||||
|
||||
// try to get comment ID from env var first, then from database if needed
|
||||
let commentId = getProgressCommentIdFromEnv();
|
||||
export async function reportErrorToComment(ctx: ReportErrorParams): Promise<void> {
|
||||
const formattedError = ctx.title ? `${ctx.title}\n\n${ctx.error}` : ctx.error;
|
||||
|
||||
// if not in env var, try fetching from database using run ID
|
||||
if (!commentId) {
|
||||
const runId = process.env.GITHUB_RUN_ID;
|
||||
if (runId) {
|
||||
try {
|
||||
const workflowRunInfo = await fetchWorkflowRunInfo(runId);
|
||||
if (workflowRunInfo.progressCommentId) {
|
||||
const parsed = parseInt(workflowRunInfo.progressCommentId, 10);
|
||||
if (!Number.isNaN(parsed)) {
|
||||
commentId = parsed;
|
||||
// cache it in env var for future use
|
||||
process.env.PULLFROG_PROGRESS_COMMENT_ID = workflowRunInfo.progressCommentId;
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
// database fetch failed, continue without comment ID
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// if no comment ID available, can't update comment
|
||||
const commentId = ctx.toolState.progressComment.id;
|
||||
if (!commentId) {
|
||||
return;
|
||||
}
|
||||
|
||||
// update comment directly using GitHub API
|
||||
const repoContext = parseRepoContext();
|
||||
const octokit = createOctokit(getGitHubInstallationToken());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user