@clawos-dev/clawd 0.2.220-beta.431.c9364d8 → 0.2.221-beta.432.4424967
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/share-ui/guest.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Clawd 分享</title>
|
|
7
|
-
<script type="module" crossorigin src="/share-ui/assets/guest-
|
|
7
|
+
<script type="module" crossorigin src="/share-ui/assets/guest-ZjGuFfc2.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="/share-ui/assets/guest-CuXP1xCR.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body style="margin: 0">
|
|
@@ -6899,7 +6899,9 @@ __export(mcp_server_exports, {
|
|
|
6899
6899
|
handleOpenPr: () => handleOpenPr,
|
|
6900
6900
|
handleReleaseTicket: () => handleReleaseTicket,
|
|
6901
6901
|
handleStartTicket: () => handleStartTicket,
|
|
6902
|
-
handleUpdateTicket: () => handleUpdateTicket
|
|
6902
|
+
handleUpdateTicket: () => handleUpdateTicket,
|
|
6903
|
+
makeCallerAwareHandler: () => makeCallerAwareHandler,
|
|
6904
|
+
resolveTicketCaller: () => resolveTicketCaller
|
|
6903
6905
|
});
|
|
6904
6906
|
module.exports = __toCommonJS(mcp_server_exports);
|
|
6905
6907
|
var import_node_fs = __toESM(require("fs"), 1);
|
|
@@ -21236,36 +21238,75 @@ async function handleOpenPr(input, client) {
|
|
|
21236
21238
|
async function handleAbandonTicket(input, client) {
|
|
21237
21239
|
return unwrap(await client.call("POST", `/tickets/${encodeURIComponent(input.id)}/abandon`, {}));
|
|
21238
21240
|
}
|
|
21239
|
-
function
|
|
21240
|
-
const
|
|
21241
|
-
const
|
|
21242
|
-
|
|
21243
|
-
|
|
21244
|
-
|
|
21245
|
-
|
|
21246
|
-
|
|
21247
|
-
|
|
21248
|
-
|
|
21249
|
-
|
|
21250
|
-
|
|
21251
|
-
|
|
21252
|
-
|
|
21241
|
+
async function resolveTicketCaller(opts = {}) {
|
|
21242
|
+
const daemonUrl = process.env.CLAWD_DAEMON_URL;
|
|
21243
|
+
const sessionId = process.env.CLAWD_SESSION_ID;
|
|
21244
|
+
if (!daemonUrl || !sessionId) {
|
|
21245
|
+
logLine("resolveCaller: env missing", { hasDaemonUrl: !!daemonUrl, hasSessionId: !!sessionId });
|
|
21246
|
+
return null;
|
|
21247
|
+
}
|
|
21248
|
+
const f = opts.fetch ?? fetch;
|
|
21249
|
+
let res;
|
|
21250
|
+
try {
|
|
21251
|
+
res = await f(`${daemonUrl}/api/rpc/session.currentTurnSender`, {
|
|
21252
|
+
method: "POST",
|
|
21253
|
+
headers: { "content-type": "application/json", "x-clawd-session-id": sessionId },
|
|
21254
|
+
body: "{}"
|
|
21253
21255
|
});
|
|
21256
|
+
} catch (err) {
|
|
21257
|
+
logLine("resolveCaller: fetch threw", { err: String(err) });
|
|
21258
|
+
return null;
|
|
21254
21259
|
}
|
|
21255
|
-
|
|
21260
|
+
if (!res.ok) {
|
|
21261
|
+
logLine("resolveCaller: non-2xx", { status: res.status });
|
|
21262
|
+
return null;
|
|
21263
|
+
}
|
|
21264
|
+
let json;
|
|
21265
|
+
try {
|
|
21266
|
+
json = await res.json();
|
|
21267
|
+
} catch {
|
|
21268
|
+
logLine("resolveCaller: non-JSON");
|
|
21269
|
+
return null;
|
|
21270
|
+
}
|
|
21271
|
+
const sender = json?.result?.sender;
|
|
21272
|
+
if (!sender?.did || !sender?.displayName) {
|
|
21273
|
+
logLine("resolveCaller: no active sender", { hasSender: !!sender });
|
|
21274
|
+
return null;
|
|
21275
|
+
}
|
|
21276
|
+
return { did: sender.did, name: sender.displayName };
|
|
21277
|
+
}
|
|
21278
|
+
function makeCallerAwareHandler(logic, deps = {}) {
|
|
21279
|
+
return async (input) => {
|
|
21280
|
+
const resolve = deps.resolveCaller ?? resolveTicketCaller;
|
|
21281
|
+
const caller = await resolve();
|
|
21282
|
+
if (!caller) {
|
|
21283
|
+
return fail(
|
|
21284
|
+
"no active sender: ticket call rejected (session.currentTurnSender returned no caller)"
|
|
21285
|
+
);
|
|
21286
|
+
}
|
|
21287
|
+
const sceneRaw = process.env.CLAWD_TICKET_SCENE ?? "persona";
|
|
21288
|
+
const scene = sceneRaw === "daemon" || sceneRaw === "ci" || sceneRaw === "persona" ? sceneRaw : "persona";
|
|
21289
|
+
const client = makeTicketApiClient({
|
|
21290
|
+
apiUrl: process.env.CLAWD_TICKET_API_URL ?? "",
|
|
21291
|
+
apiKey: process.env.CLAWD_TICKET_API_KEY ?? "",
|
|
21292
|
+
did: caller.did,
|
|
21293
|
+
name: caller.name,
|
|
21294
|
+
scene
|
|
21295
|
+
});
|
|
21296
|
+
return logic(input, client);
|
|
21297
|
+
};
|
|
21256
21298
|
}
|
|
21257
21299
|
async function main() {
|
|
21258
|
-
const ctx = readCtxFromEnv();
|
|
21259
21300
|
logLine("startup: server boot", {
|
|
21260
21301
|
server: SERVER_NAME,
|
|
21261
21302
|
version: SERVER_VERSION,
|
|
21262
|
-
apiUrl:
|
|
21263
|
-
|
|
21264
|
-
|
|
21265
|
-
|
|
21303
|
+
apiUrl: process.env.CLAWD_TICKET_API_URL ?? "",
|
|
21304
|
+
hasApiKey: !!process.env.CLAWD_TICKET_API_KEY,
|
|
21305
|
+
daemonUrl: process.env.CLAWD_DAEMON_URL ?? "(missing)",
|
|
21306
|
+
sessionId: process.env.CLAWD_SESSION_ID ?? "(missing)",
|
|
21307
|
+
scene: process.env.CLAWD_TICKET_SCENE ?? "persona",
|
|
21266
21308
|
logTarget: TICKET_LOG ?? "stderr (no CLAWD_TICKET_LOG env)"
|
|
21267
21309
|
});
|
|
21268
|
-
const client = makeTicketApiClient(ctx);
|
|
21269
21310
|
const server = new McpServer({ name: SERVER_NAME, version: SERVER_VERSION });
|
|
21270
21311
|
const TICKET_STATUS_ENUM = [
|
|
21271
21312
|
"open",
|
|
@@ -21284,7 +21325,7 @@ async function main() {
|
|
|
21284
21325
|
summary: external_exports.string().min(1),
|
|
21285
21326
|
type: external_exports.enum(TICKET_TYPE_ENUM)
|
|
21286
21327
|
},
|
|
21287
|
-
|
|
21328
|
+
makeCallerAwareHandler(handleCreateTicket)
|
|
21288
21329
|
);
|
|
21289
21330
|
server.tool(
|
|
21290
21331
|
"list_tickets",
|
|
@@ -21294,13 +21335,13 @@ async function main() {
|
|
|
21294
21335
|
all: external_exports.boolean().optional(),
|
|
21295
21336
|
version: external_exports.string().optional()
|
|
21296
21337
|
},
|
|
21297
|
-
|
|
21338
|
+
makeCallerAwareHandler(handleListTickets)
|
|
21298
21339
|
);
|
|
21299
21340
|
server.tool(
|
|
21300
21341
|
"get_ticket",
|
|
21301
21342
|
"Get one ticket by id (T-<num>).",
|
|
21302
21343
|
{ id: external_exports.string().min(1) },
|
|
21303
|
-
|
|
21344
|
+
makeCallerAwareHandler(handleGetTicket)
|
|
21304
21345
|
);
|
|
21305
21346
|
server.tool(
|
|
21306
21347
|
"update_ticket",
|
|
@@ -21312,19 +21353,19 @@ async function main() {
|
|
|
21312
21353
|
release_note: external_exports.string().nullable().optional(),
|
|
21313
21354
|
type: external_exports.enum(TICKET_TYPE_ENUM).optional()
|
|
21314
21355
|
},
|
|
21315
|
-
|
|
21356
|
+
makeCallerAwareHandler(handleUpdateTicket)
|
|
21316
21357
|
);
|
|
21317
21358
|
server.tool(
|
|
21318
21359
|
"claim_ticket",
|
|
21319
21360
|
"Claim an unassigned ticket (status open \u2192 claimed). Fails 409 ASSIGNEE_LOCKED if already taken.",
|
|
21320
21361
|
{ id: external_exports.string().min(1) },
|
|
21321
|
-
|
|
21362
|
+
makeCallerAwareHandler(handleClaimTicket)
|
|
21322
21363
|
);
|
|
21323
21364
|
server.tool(
|
|
21324
21365
|
"release_ticket",
|
|
21325
21366
|
"Release a ticket back to unassigned (status \u2192 open). Only current assignee or requester can release. Precondition to reassigning (\u5148\u91CA\u653E\u518D\u8BA4\u9886).",
|
|
21326
21367
|
{ id: external_exports.string().min(1) },
|
|
21327
|
-
|
|
21368
|
+
makeCallerAwareHandler(handleReleaseTicket)
|
|
21328
21369
|
);
|
|
21329
21370
|
server.tool(
|
|
21330
21371
|
"assign_ticket",
|
|
@@ -21334,13 +21375,13 @@ async function main() {
|
|
|
21334
21375
|
assignee_did: external_exports.string().min(1),
|
|
21335
21376
|
assignee_name: external_exports.string().min(1)
|
|
21336
21377
|
},
|
|
21337
|
-
|
|
21378
|
+
makeCallerAwareHandler(handleAssignTicket)
|
|
21338
21379
|
);
|
|
21339
21380
|
server.tool(
|
|
21340
21381
|
"start_ticket",
|
|
21341
21382
|
"Move a ticket claimed \u2192 in_progress. Only the current assignee can start.",
|
|
21342
21383
|
{ id: external_exports.string().min(1) },
|
|
21343
|
-
|
|
21384
|
+
makeCallerAwareHandler(handleStartTicket)
|
|
21344
21385
|
);
|
|
21345
21386
|
server.tool(
|
|
21346
21387
|
"open_pr",
|
|
@@ -21349,13 +21390,13 @@ async function main() {
|
|
|
21349
21390
|
id: external_exports.string().min(1),
|
|
21350
21391
|
pr_url: external_exports.string().url()
|
|
21351
21392
|
},
|
|
21352
|
-
|
|
21393
|
+
makeCallerAwareHandler(handleOpenPr)
|
|
21353
21394
|
);
|
|
21354
21395
|
server.tool(
|
|
21355
21396
|
"abandon_ticket",
|
|
21356
21397
|
"Requester abandons a ticket (any non-shipped status \u2192 abandoned). Terminal state.",
|
|
21357
21398
|
{ id: external_exports.string().min(1) },
|
|
21358
|
-
|
|
21399
|
+
makeCallerAwareHandler(handleAbandonTicket)
|
|
21359
21400
|
);
|
|
21360
21401
|
const transport = new StdioServerTransport();
|
|
21361
21402
|
await server.connect(transport);
|
|
@@ -21378,5 +21419,7 @@ if (require.main === module) {
|
|
|
21378
21419
|
handleOpenPr,
|
|
21379
21420
|
handleReleaseTicket,
|
|
21380
21421
|
handleStartTicket,
|
|
21381
|
-
handleUpdateTicket
|
|
21422
|
+
handleUpdateTicket,
|
|
21423
|
+
makeCallerAwareHandler,
|
|
21424
|
+
resolveTicketCaller
|
|
21382
21425
|
});
|
package/package.json
CHANGED