@lucascouts/claude-agent-acp-plus 0.25.1 → 0.25.3
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classifier-escalation.d.ts","sourceRoot":"","sources":["../src/classifier-escalation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,gCAAgC,CAAC;AAGnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG7E,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAC;AAoBnC;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAqBhF;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAE3C,6EAA6E;AAC7E,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI3B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI9B,qDAAqD;IACrD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAM1C,2DAA2D;IAC3D,SAAS,IAAI,IAAI;IAIjB,wBAAwB;IACxB,KAAK,IAAI,IAAI;CAId;AAED,sFAAsF;AACtF,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAEtE,kEAAkE;AAClE,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE;IAAE,aAAa,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAAC;AAEpG,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAgBF;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiC;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoE;IAC5F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoD;IAC9E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;gBAEpD,IAAI,EAAE,sBAAsB;IAMxC,6FAA6F;IAC7F,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAyCnC,mFAAmF;IACnF,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA0B/D;;;OAGG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAOjC,mEAAmE;IACnE,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAiBhC,wEAAwE;IACxE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAI5D,4CAA4C;IAC5C,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIvC,8EAA8E;IAC9E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIvC,oEAAoE;IACpE,KAAK,IAAI,IAAI;IAWb,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,IAAI;IAYZ,OAAO,CAAC,aAAa;CAMtB;AA4DD,sFAAsF;AACtF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAMzC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"classifier-escalation.d.ts","sourceRoot":"","sources":["../src/classifier-escalation.ts"],"names":[],"mappings":"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"}
|
|
@@ -255,7 +255,7 @@ export class EscalationRegistry {
|
|
|
255
255
|
this.send(toolUseId, buildFinalUpdate(toolUseId, outcome, frame));
|
|
256
256
|
}
|
|
257
257
|
send(toolUseId, update) {
|
|
258
|
-
const warn = (error) => this.logger.log(`classifier escalation: final tool_call_update failed level=warn sessionId=${this.sessionId} toolUseId=${toolUseId} error=${
|
|
258
|
+
const warn = (error) => this.logger.log(`classifier escalation: final tool_call_update failed level=warn sessionId=${this.sessionId} toolUseId=${toolUseId} error=${errorKind(error)}`);
|
|
259
259
|
try {
|
|
260
260
|
void Promise.resolve(this.emit(toolUseId, update)).catch(warn);
|
|
261
261
|
}
|
|
@@ -349,7 +349,11 @@ export function createAskOperator(agent, sessionId) {
|
|
|
349
349
|
input,
|
|
350
350
|
toolUseID: req.toolUseId,
|
|
351
351
|
cwd: session.cwd,
|
|
352
|
-
|
|
352
|
+
// Never a terminal here, whatever the client supports: a client that
|
|
353
|
+
// renders terminals (Zed) draws a tool call carrying one as the terminal
|
|
354
|
+
// alone and drops the reason below. The denied call never runs — the
|
|
355
|
+
// retry is a new tool_use — so there is no output for a terminal to show.
|
|
356
|
+
supportsTerminalOutput: false,
|
|
353
357
|
});
|
|
354
358
|
// The reason goes into the request content itself, beside the command:
|
|
355
359
|
// the operator decides on both, not on the command alone.
|
|
@@ -398,7 +402,7 @@ export function createPermissionDeniedHook(deps) {
|
|
|
398
402
|
return {};
|
|
399
403
|
const toolName = input.tool_name;
|
|
400
404
|
// Never the command or the input: ids, tool name and outcome only (R6.3).
|
|
401
|
-
const line = (level, event, fields) => logger.log(`classifier escalation: ${event} level=${level} sessionId=${sessionId} toolUseId=${toolUseId} toolName=${toolName} ${fields}`);
|
|
405
|
+
const line = (level, event, fields) => logger.log(`classifier escalation: ${event} level=${level} sessionId=${sessionId} toolUseId=${toolUseId} toolName=${logToken(toolName)} ${fields}`);
|
|
402
406
|
let claimed = false;
|
|
403
407
|
try {
|
|
404
408
|
const reasonType = await escalations.awaitReasonType(toolUseId);
|
|
@@ -467,7 +471,7 @@ export function createPermissionDeniedHook(deps) {
|
|
|
467
471
|
escalations.resolve(toolUseId, "rejected");
|
|
468
472
|
else
|
|
469
473
|
escalations.abandon(toolUseId);
|
|
470
|
-
logger.error(`classifier escalation: hook failed level=error sessionId=${sessionId} toolUseId=${toolUseId} toolName=${toolName} error=${errorKind(error)}`);
|
|
474
|
+
logger.error(`classifier escalation: hook failed level=error sessionId=${sessionId} toolUseId=${toolUseId} toolName=${logToken(toolName)} error=${errorKind(error)}`);
|
|
471
475
|
return {};
|
|
472
476
|
}
|
|
473
477
|
};
|
|
@@ -515,11 +519,15 @@ async function askWithBounds(askOperator, req, signal) {
|
|
|
515
519
|
}
|
|
516
520
|
}
|
|
517
521
|
const GRANT_ALLOW_REASON = "approved by the operator after a classifier denial";
|
|
518
|
-
/**
|
|
519
|
-
|
|
520
|
-
|
|
522
|
+
/**
|
|
523
|
+
* A value from the hook input as a log token — a mode or a tool name, both
|
|
524
|
+
* chosen outside the adapter (an MCP tool's name is model-steerable): word
|
|
525
|
+
* characters and dashes only, capped, so it cannot forge a field or a line.
|
|
526
|
+
*/
|
|
527
|
+
function logToken(value) {
|
|
528
|
+
if (typeof value !== "string")
|
|
521
529
|
return "none";
|
|
522
|
-
const token =
|
|
530
|
+
const token = value.replace(/[^\w-]/gu, "").slice(0, 64);
|
|
523
531
|
return token || "none";
|
|
524
532
|
}
|
|
525
533
|
/**
|
|
@@ -543,14 +551,14 @@ export function createGrantPreToolUseHook(session, logger) {
|
|
|
543
551
|
const mode = input.permission_mode;
|
|
544
552
|
if (mode !== "auto") {
|
|
545
553
|
if (session.classifierGrants.has(fp)) {
|
|
546
|
-
logger.log(`classifier escalation: grant held level=info sessionId=${session.sessionId} toolUseId=${toolUseID ?? input.tool_use_id} toolName=${input.tool_name} mode=${
|
|
554
|
+
logger.log(`classifier escalation: grant held level=info sessionId=${session.sessionId} toolUseId=${toolUseID ?? input.tool_use_id} toolName=${logToken(input.tool_name)} mode=${logToken(mode)}`);
|
|
547
555
|
}
|
|
548
556
|
return {};
|
|
549
557
|
}
|
|
550
558
|
const kind = session.classifierGrants.consume(fp);
|
|
551
559
|
if (!kind)
|
|
552
560
|
return {};
|
|
553
|
-
logger.log(`classifier escalation: grant consumed level=info sessionId=${session.sessionId} toolUseId=${toolUseID ?? input.tool_use_id} toolName=${input.tool_name} grant=${kind}`);
|
|
561
|
+
logger.log(`classifier escalation: grant consumed level=info sessionId=${session.sessionId} toolUseId=${toolUseID ?? input.tool_use_id} toolName=${logToken(input.tool_name)} grant=${kind}`);
|
|
554
562
|
return {
|
|
555
563
|
hookSpecificOutput: {
|
|
556
564
|
hookEventName: "PreToolUse",
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.25.
|
|
6
|
+
"version": "0.25.3",
|
|
7
7
|
"description": "Claude Code in Zed and other ACP clients with the VS Code extension's UX — multi-select questions, refusal consent, live quota windows, background tasks, Ultracode effort and session notices. Fork of claude-agent-acp.",
|
|
8
8
|
"main": "dist/lib.js",
|
|
9
9
|
"types": "dist/lib.d.ts",
|