@aimarket/warden 0.20.0 → 0.21.0
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/CHANGELOG.md +91 -0
- package/README-es.md +26 -11
- package/README-fr.md +26 -11
- package/README-ru.md +26 -11
- package/README-zh.md +26 -11
- package/README.md +26 -11
- package/dist/atomic-screen.d.ts +61 -0
- package/dist/atomic-screen.d.ts.map +1 -0
- package/dist/atomic-screen.js +165 -0
- package/dist/atomic-screen.js.map +1 -0
- package/dist/flow-guard.d.ts +181 -2
- package/dist/flow-guard.d.ts.map +1 -1
- package/dist/flow-guard.js +1194 -72
- package/dist/flow-guard.js.map +1 -1
- package/dist/mcp-server.js +5 -0
- package/dist/mcp-server.js.map +1 -1
- package/dist/mcp-tools.d.ts.map +1 -1
- package/dist/mcp-tools.js +46 -9
- package/dist/mcp-tools.js.map +1 -1
- package/dist/review-diff.d.ts +36 -0
- package/dist/review-diff.d.ts.map +1 -1
- package/dist/review-diff.js +179 -7
- package/dist/review-diff.js.map +1 -1
- package/dist/task-adapter.d.ts +73 -0
- package/dist/task-adapter.d.ts.map +1 -0
- package/dist/task-adapter.js +379 -0
- package/dist/task-adapter.js.map +1 -0
- package/dist/task-cli.d.ts +3 -0
- package/dist/task-cli.d.ts.map +1 -0
- package/dist/task-cli.js +162 -0
- package/dist/task-cli.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/wrap-cli.d.ts +5 -0
- package/dist/wrap-cli.d.ts.map +1 -1
- package/dist/wrap-cli.js +27 -1
- package/dist/wrap-cli.js.map +1 -1
- package/dist/wrap-screen.d.ts +3 -0
- package/dist/wrap-screen.d.ts.map +1 -0
- package/dist/wrap-screen.js +20 -0
- package/dist/wrap-screen.js.map +1 -0
- package/dist/wrap-state.d.ts +5 -0
- package/dist/wrap-state.d.ts.map +1 -1
- package/dist/wrap-state.js +3 -1
- package/dist/wrap-state.js.map +1 -1
- package/dist/wrap.d.ts.map +1 -1
- package/dist/wrap.js +161 -5
- package/dist/wrap.js.map +1 -1
- package/docs/flow-guard.es.md +274 -9
- package/docs/flow-guard.fr.md +274 -9
- package/docs/flow-guard.md +275 -10
- package/docs/flow-guard.ru.md +275 -10
- package/docs/flow-guard.zh.md +273 -5
- package/docs/security-hardening.es.md +1 -1
- package/docs/security-hardening.fr.md +1 -1
- package/docs/security-hardening.md +1 -1
- package/docs/security-hardening.ru.md +1 -1
- package/docs/security-hardening.zh.md +1 -1
- package/examples/atomic-screen-server.mjs +42 -0
- package/native/macos/Package.swift +9 -0
- package/native/macos/Sources/WardenDesktop/NativeSurface.swift +246 -0
- package/native/macos/Sources/WardenDesktop/StandardIO.swift +139 -0
- package/native/macos/Sources/WardenDesktopHost/Main.swift +211 -0
- package/package.json +17 -5
- package/scripts/build-macos.mjs +22 -0
package/dist/mcp-tools.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FilePinStore, pinRevision } from "./pin-store.js";
|
|
2
2
|
import { pinToolsHash, serverIdentityHash } from "./pinning.js";
|
|
3
|
-
import { diffToolDefinitions, formatDefinitionDiff } from "./review-diff.js";
|
|
3
|
+
import { diffToolDefinitions, formatDefinitionDiff, formatOriginLines, launchSpec, plainVersion } from "./review-diff.js";
|
|
4
4
|
import { displaySafe } from "./sanitize.js";
|
|
5
5
|
/**
|
|
6
6
|
* MCP tool surface for the WARDEN stdio server.
|
|
@@ -456,6 +456,11 @@ const PIN_SCHEMA = {
|
|
|
456
456
|
type: "object",
|
|
457
457
|
description: "A stored approval: serverId, toolsHash, identityHash, approvalMode (operator | automatic), toolNames, the approved tool definitions and approvedAt.",
|
|
458
458
|
};
|
|
459
|
+
const SERVER_INFO = {
|
|
460
|
+
type: "object", additionalProperties: false,
|
|
461
|
+
properties: { name: { type: "string", maxLength: 200 }, version: { type: "string", maxLength: 200 } },
|
|
462
|
+
description: "Optional: the serverInfo object from the server's initialize result, unmodified ({ name, version }). Shown next to the review as the version the server reports, and stored with an approval; it is the server's own word, so it is never hashed or trusted.",
|
|
463
|
+
};
|
|
459
464
|
const PREVIOUS_PIN_REVISION = {
|
|
460
465
|
type: ["string", "null"],
|
|
461
466
|
description: "The previousRevision value status_mcp_server returned when you reviewed this server (null when it reported no stored approval). The write is refused if the stored approval changed since then, so two reviewers cannot overwrite each other.",
|
|
@@ -474,6 +479,7 @@ MCP_TOOLS.push({
|
|
|
474
479
|
properties: {
|
|
475
480
|
server: vetProps.server,
|
|
476
481
|
tools: { ...vetProps.tools, description: "The server's current tools/list payload, unmodified. Its hash is compared with the stored approval and returned as currentToolsHash." },
|
|
482
|
+
server_info: SERVER_INFO,
|
|
477
483
|
},
|
|
478
484
|
},
|
|
479
485
|
outputSchema: {
|
|
@@ -498,7 +504,16 @@ MCP_TOOLS.push({
|
|
|
498
504
|
}, { type: "null" }],
|
|
499
505
|
description: "What changed since the stored approval, field by field; null when nothing is stored.",
|
|
500
506
|
},
|
|
501
|
-
reviewText: { type: "string", description: "The same changes as plain lines for a person: [-removed-] and {+added+} inside text, before → after for values." },
|
|
507
|
+
reviewText: { type: "string", description: "The same changes as plain lines for a person: where they came from (reported version, launch command), [-removed-] and {+added+} inside text, before → after for values, and which tools gain text about the user's approval or tool choice." },
|
|
508
|
+
origin: {
|
|
509
|
+
type: "object", required: ["approvedVersion", "currentVersion", "launch"],
|
|
510
|
+
properties: {
|
|
511
|
+
approvedVersion: { type: ["string", "null"], description: "serverInfo.version stored with the approval (the server's own word), or null." },
|
|
512
|
+
currentVersion: { type: ["string", "null"], description: "serverInfo.version you passed now, or null." },
|
|
513
|
+
launch: { anyOf: [{ type: "object" }, { type: "null" }], description: "For npx / uvx style launches: runner, ecosystem, package, requested version or range, and pinned (an exact version in the command). null for other launches." },
|
|
514
|
+
},
|
|
515
|
+
description: "Where a change came from: the versions the server reported and whether the launch command pins one.",
|
|
516
|
+
},
|
|
502
517
|
mutationsEnabled: { type: "boolean", description: "false means approve_mcp_server and revoke_mcp_server will refuse in this process." },
|
|
503
518
|
},
|
|
504
519
|
},
|
|
@@ -520,6 +535,7 @@ MCP_TOOLS.push({
|
|
|
520
535
|
reviewed_tools_hash: { type: "string", description: "currentToolsHash from the status_mcp_server call the operator reviewed." },
|
|
521
536
|
reviewed_identity_hash: { type: "string", description: "currentIdentityHash from the same status_mcp_server call." },
|
|
522
537
|
previous_pin_revision: PREVIOUS_PIN_REVISION,
|
|
538
|
+
server_info: SERVER_INFO,
|
|
523
539
|
},
|
|
524
540
|
},
|
|
525
541
|
outputSchema: {
|
|
@@ -732,13 +748,16 @@ async function managePin(name, args) {
|
|
|
732
748
|
return { revoked: true, serverId: server.id };
|
|
733
749
|
}
|
|
734
750
|
const tools = asTools(args.tools);
|
|
751
|
+
const serverInfo = asServerInfo(args.server_info);
|
|
735
752
|
const toolsHash = pinToolsHash(tools);
|
|
736
753
|
const identityHash = serverIdentityHash(server);
|
|
737
754
|
if (name === "status_mcp_server") {
|
|
755
|
+
const launch = launchSpec(server) ?? null;
|
|
756
|
+
const origin = { approvedVersion: plainVersion(previous?.serverInfo?.version) ?? null, currentVersion: plainVersion(serverInfo?.version) ?? null, launch };
|
|
738
757
|
return { serverId: server.id, previous: previous ?? null, previousRevision: pinRevision(previous), currentToolsHash: toolsHash, currentIdentityHash: identityHash,
|
|
739
758
|
changed: !!previous && (previous.toolsHash !== toolsHash || previous.identityHash !== identityHash),
|
|
740
|
-
currentTools: tools, mutationsEnabled: PIN_MUTATIONS_ENABLED,
|
|
741
|
-
...review(previous?.tools, tools) };
|
|
759
|
+
currentTools: tools, mutationsEnabled: PIN_MUTATIONS_ENABLED, origin,
|
|
760
|
+
...review(previous?.tools, tools, formatOriginLines(launch ?? undefined, origin.approvedVersion ?? undefined, origin.currentVersion ?? undefined, !!previous && previous.toolsHash !== toolsHash)) };
|
|
742
761
|
}
|
|
743
762
|
if (args.reviewed_tools_hash !== toolsHash || args.reviewed_identity_hash !== identityHash) {
|
|
744
763
|
throw new McpToolError("Payload differs from reviewed tool/identity hashes");
|
|
@@ -750,16 +769,34 @@ async function managePin(name, args) {
|
|
|
750
769
|
if (!verdict.allow)
|
|
751
770
|
throw new McpToolError("Server failed security checks; approval refused");
|
|
752
771
|
const pin = { serverId: server.id, toolsHash, toolsHashVersion: 2, identityHash, tools, approvalMode: "operator",
|
|
753
|
-
toolNames: tools.map(t => t.name).sort(), approvedAt: new Date().toISOString() };
|
|
772
|
+
toolNames: tools.map(t => t.name).sort(), approvedAt: new Date().toISOString(), ...(serverInfo ? { serverInfo } : {}) };
|
|
754
773
|
await store.replace(server.id, args.previous_pin_revision, pin);
|
|
755
774
|
return { approved: true, pin };
|
|
756
775
|
}
|
|
757
|
-
function review(approved, current) {
|
|
776
|
+
function review(approved, current, origin = []) {
|
|
777
|
+
// A server's own text goes to a person's screen: escape control and bidi characters, as the CLI does.
|
|
778
|
+
const safe = (lines) => lines.map(line => displaySafe(line, 20_000)).join("\n");
|
|
758
779
|
if (!approved)
|
|
759
|
-
return { changes: null, reviewText: "No stored approval: every tool below is new to this store." };
|
|
780
|
+
return { changes: null, reviewText: safe([...origin, "No stored approval: every tool below is new to this store."]) };
|
|
760
781
|
const diff = diffToolDefinitions(approved, current);
|
|
761
|
-
|
|
762
|
-
|
|
782
|
+
return { changes: diff, reviewText: safe([...origin, ...formatDefinitionDiff(diff)]) };
|
|
783
|
+
}
|
|
784
|
+
/** The client's copy of serverInfo from the initialize result: an object with short string name and version. */
|
|
785
|
+
function asServerInfo(raw) {
|
|
786
|
+
if (raw === undefined || raw === null)
|
|
787
|
+
return undefined;
|
|
788
|
+
if (typeof raw !== "object" || Array.isArray(raw))
|
|
789
|
+
throw new McpToolError("server_info must be the serverInfo object from initialize");
|
|
790
|
+
const out = {};
|
|
791
|
+
for (const key of ["name", "version"]) {
|
|
792
|
+
const v = raw[key];
|
|
793
|
+
if (v === undefined)
|
|
794
|
+
continue;
|
|
795
|
+
if (typeof v !== "string" || v.length > 200)
|
|
796
|
+
throw new McpToolError(`server_info.${key} must be a string of at most 200 characters`);
|
|
797
|
+
out[key] = v;
|
|
798
|
+
}
|
|
799
|
+
return Object.keys(out).length ? out : undefined;
|
|
763
800
|
}
|
|
764
801
|
async function staticScan(args) {
|
|
765
802
|
const tools = asTools(args.tools);
|
package/dist/mcp-tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tools.js","sourceRoot":"","sources":["../src/mcp-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-tools.js","sourceRoot":"","sources":["../src/mcp-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/review-diff.d.ts
CHANGED
|
@@ -23,7 +23,17 @@ export interface FieldChange {
|
|
|
23
23
|
words?: WordOp[];
|
|
24
24
|
/** Only digits, separators or whitespace differ (a counter, a date, a limit). Still a change. */
|
|
25
25
|
numbersOnly: boolean;
|
|
26
|
+
/** Text this change adds about the user's approval or about which tool to use (see Attention). */
|
|
27
|
+
attention?: Attention[];
|
|
26
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* What a reviewer should read first: text a change ADDS about the user's approval ("without asking", "the user has
|
|
31
|
+
* already approved") or about which tool the model should pick ("prefer this over web search", "never use another
|
|
32
|
+
* tool"). A reader asked for it (dev.to, 2026-10-23); in HISTOR's 20 October snapshot, 12 of 23,821 changes added or
|
|
33
|
+
* dropped such a routing hint, 9 of them in nothing but the description. It marks; it never approves or refuses.
|
|
34
|
+
* English phrasing only.
|
|
35
|
+
*/
|
|
36
|
+
export type Attention = "approval" | "tool choice";
|
|
27
37
|
export interface ToolChange {
|
|
28
38
|
tool: string;
|
|
29
39
|
kind: "added" | "removed" | "changed";
|
|
@@ -33,6 +43,8 @@ export interface ToolChange {
|
|
|
33
43
|
definition?: ToolDef;
|
|
34
44
|
/** A changed tool whose every field change is numbers only. */
|
|
35
45
|
numbersOnly: boolean;
|
|
46
|
+
/** For `changed`: every Attention its fields add. For `added`: every Attention in the new tool's text. */
|
|
47
|
+
attention?: Attention[];
|
|
36
48
|
}
|
|
37
49
|
export interface DefinitionDiff {
|
|
38
50
|
changes: ToolChange[];
|
|
@@ -41,6 +53,8 @@ export interface DefinitionDiff {
|
|
|
41
53
|
changed: number;
|
|
42
54
|
/** Changed tools whose changes are numbers only. */
|
|
43
55
|
numbersOnly: number;
|
|
56
|
+
/** Added or changed tools whose new text is about the user's approval or about tool choice. */
|
|
57
|
+
attention: number;
|
|
44
58
|
}
|
|
45
59
|
/** Words and the spaces between them, so that joining the tokens gives the text back. */
|
|
46
60
|
export declare function tokenize(text: string): string[];
|
|
@@ -49,4 +63,26 @@ export declare function wordDiff(before: string, after: string): WordOp[];
|
|
|
49
63
|
export declare function diffToolDefinitions(before: readonly ToolDef[], after: readonly ToolDef[]): DefinitionDiff;
|
|
50
64
|
/** The diff as review lines: `[-removed-]` and `{+added+}` inside text, `before → after` for values. */
|
|
51
65
|
export declare function formatDefinitionDiff(diff: DefinitionDiff): string[];
|
|
66
|
+
/** The kinds of Attention whose phrasing appears in `after` and not in `before`. */
|
|
67
|
+
export declare function addedAttention(before: string, after: string): Attention[];
|
|
68
|
+
/** A package a launcher fetches by name at each start (`npx pkg`, `uvx pkg`), and whether the command names an
|
|
69
|
+
* exact version. Without one, the code can change between two starts while the command stays the same, and so
|
|
70
|
+
* does the server's identity hash. */
|
|
71
|
+
export interface LaunchSpec {
|
|
72
|
+
runner: string;
|
|
73
|
+
ecosystem: "npm" | "pypi";
|
|
74
|
+
package: string;
|
|
75
|
+
/** The version or range in the command, if any (`1.4.2`, `latest`, `^1`, `>=2`). */
|
|
76
|
+
requested?: string;
|
|
77
|
+
pinned: boolean;
|
|
78
|
+
}
|
|
79
|
+
export declare function launchSpec(server: {
|
|
80
|
+
command?: string;
|
|
81
|
+
args?: readonly string[];
|
|
82
|
+
}): LaunchSpec | undefined;
|
|
83
|
+
/** A version string a server reports about itself, if it is short and plain; anything else is not shown. */
|
|
84
|
+
export declare function plainVersion(v: unknown): string | undefined;
|
|
85
|
+
/** Review lines on where a change came from: the version the server reported at approval and now, and whether
|
|
86
|
+
* the launch command pins one. The reported version is the server's own word; the launch command is not. */
|
|
87
|
+
export declare function formatOriginLines(launch: LaunchSpec | undefined, approved: string | undefined, current: string | undefined, toolsChanged: boolean): string[];
|
|
52
88
|
//# sourceMappingURL=review-diff.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-diff.d.ts","sourceRoot":"","sources":["../src/review-diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,gGAAgG;IAChG,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,iGAAiG;IACjG,WAAW,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"review-diff.d.ts","sourceRoot":"","sources":["../src/review-diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,gGAAgG;IAChG,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,iGAAiG;IACjG,WAAW,EAAE,OAAO,CAAC;IACrB,kGAAkG;IAClG,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACtC,+CAA+C;IAC/C,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB,0GAA0G;IAC1G,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,SAAS,EAAE,MAAM,CAAC;CACnB;AAyBD,yFAAyF;AACzF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAG/C;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAuChE;AAoED,mGAAmG;AACnG,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,cAAc,CAwBzG;AAOD,wGAAwG;AACxG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,EAAE,CA8BnE;AAoCD,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAGzE;AAqBD;;uCAEuC;AACvC,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAQD,wBAAgB,UAAU,CAAC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,UAAU,GAAG,SAAS,CAwBzG;AAkBD,4GAA4G;AAC5G,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE3D;AAED;6GAC6G;AAC7G,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,OAAO,GAAG,MAAM,EAAE,CAiB5J"}
|
package/dist/review-diff.js
CHANGED
|
@@ -135,7 +135,7 @@ function walk(path, before, after, out) {
|
|
|
135
135
|
else if (hasB)
|
|
136
136
|
out.push({ path: p, before: before[key], numbersOnly: false });
|
|
137
137
|
else
|
|
138
|
-
out.push({ path: p, after: after[key], numbersOnly: false });
|
|
138
|
+
out.push({ path: p, after: after[key], numbersOnly: false, ...flag(addedAttention("", textsOf(after[key]))) });
|
|
139
139
|
if (out.length >= MAX_FIELDS_PER_TOOL)
|
|
140
140
|
return;
|
|
141
141
|
}
|
|
@@ -146,7 +146,7 @@ function walk(path, before, after, out) {
|
|
|
146
146
|
for (let i = 0; i < n; i++) {
|
|
147
147
|
const p = joinPath(path, i);
|
|
148
148
|
if (i >= before.length)
|
|
149
|
-
out.push({ path: p, after: after[i], numbersOnly: false });
|
|
149
|
+
out.push({ path: p, after: after[i], numbersOnly: false, ...flag(addedAttention("", textsOf(after[i]))) });
|
|
150
150
|
else if (i >= after.length)
|
|
151
151
|
out.push({ path: p, before: before[i], numbersOnly: false });
|
|
152
152
|
else
|
|
@@ -158,7 +158,7 @@ function walk(path, before, after, out) {
|
|
|
158
158
|
}
|
|
159
159
|
if (typeof before === "string" && typeof after === "string") {
|
|
160
160
|
const words = wordDiff(before, after);
|
|
161
|
-
out.push({ path, before, after, words, numbersOnly: textNumbersOnly(words) });
|
|
161
|
+
out.push({ path, before, after, words, numbersOnly: textNumbersOnly(words), ...flag(addedAttention(before, after)) });
|
|
162
162
|
return;
|
|
163
163
|
}
|
|
164
164
|
const numbersOnly = typeof before === "number" && typeof after === "number";
|
|
@@ -172,13 +172,15 @@ export function diffToolDefinitions(before, after) {
|
|
|
172
172
|
for (const name of names) {
|
|
173
173
|
const b = old.get(name), a = next.get(name);
|
|
174
174
|
if (!b && a)
|
|
175
|
-
changes.push({ tool: name, kind: "added", fields: [], definition: a, numbersOnly: false
|
|
175
|
+
changes.push({ tool: name, kind: "added", fields: [], definition: a, numbersOnly: false,
|
|
176
|
+
...flag(addedAttention("", textsOf([a.description, a.inputSchema, a.outputSchema]))) });
|
|
176
177
|
else if (b && !a)
|
|
177
178
|
changes.push({ tool: name, kind: "removed", fields: [], definition: b, numbersOnly: false });
|
|
178
179
|
else if (b && a && !same(b, a)) {
|
|
179
180
|
const fields = [];
|
|
180
181
|
walk("", b, a, fields);
|
|
181
|
-
|
|
182
|
+
const attention = ATTENTION_ORDER.filter(k => fields.some(f => f.attention?.includes(k)));
|
|
183
|
+
changes.push({ tool: name, kind: "changed", fields, numbersOnly: fields.length > 0 && fields.every(f => f.numbersOnly), ...flag(attention) });
|
|
182
184
|
}
|
|
183
185
|
}
|
|
184
186
|
return {
|
|
@@ -187,6 +189,7 @@ export function diffToolDefinitions(before, after) {
|
|
|
187
189
|
removed: changes.filter(c => c.kind === "removed").length,
|
|
188
190
|
changed: changes.filter(c => c.kind === "changed").length,
|
|
189
191
|
numbersOnly: changes.filter(c => c.numbersOnly).length,
|
|
192
|
+
attention: changes.filter(c => c.attention?.length).length,
|
|
190
193
|
};
|
|
191
194
|
}
|
|
192
195
|
function show(value, max = 400) {
|
|
@@ -199,9 +202,13 @@ export function formatDefinitionDiff(diff) {
|
|
|
199
202
|
return ["Tool definitions: unchanged."];
|
|
200
203
|
const lines = [`Tool definitions: ${diff.changed} changed, ${diff.added} added, ${diff.removed} removed` +
|
|
201
204
|
(diff.numbersOnly ? ` (${diff.numbersOnly} changed only in numbers: still a change, a number can be a limit)` : "")];
|
|
205
|
+
if (diff.attention) {
|
|
206
|
+
const names = diff.changes.filter(c => c.attention?.length).map(c => `${c.tool} (${c.attention.join(", ")})`);
|
|
207
|
+
lines.push(`Read first: ${diff.attention} ${diff.attention === 1 ? "tool gains" : "tools gain"} text about the user's approval or about which tool to use: ${names.join("; ")}`);
|
|
208
|
+
}
|
|
202
209
|
for (const c of diff.changes) {
|
|
203
210
|
if (c.kind === "added") {
|
|
204
|
-
lines.push(`+ ${c.tool} (new tool)`, ` ${show(c.definition, 4000)}`);
|
|
211
|
+
lines.push(`+ ${c.tool} (new tool${attentionNote(c.attention)})`, ` ${show(c.definition, 4000)}`);
|
|
205
212
|
continue;
|
|
206
213
|
}
|
|
207
214
|
if (c.kind === "removed") {
|
|
@@ -210,7 +217,7 @@ export function formatDefinitionDiff(diff) {
|
|
|
210
217
|
}
|
|
211
218
|
lines.push(`~ ${c.tool}${c.numbersOnly ? " (numbers only)" : ""}`);
|
|
212
219
|
for (const f of c.fields) {
|
|
213
|
-
const tag = f.numbersOnly && !c.numbersOnly ? " (numbers only)" : "";
|
|
220
|
+
const tag = (f.numbersOnly && !c.numbersOnly ? " (numbers only)" : "") + (f.attention?.length ? ` (adds text about ${f.attention.map(k => k === "approval" ? "the user's approval" : "tool choice").join(" and ")})` : "");
|
|
214
221
|
if (f.words) {
|
|
215
222
|
const rendered = f.words.map(([op, text]) => op === "=" ? text : op === "-" ? `[-${text}-]` : `{+${text}+}`).join("");
|
|
216
223
|
lines.push(` ${f.path}: ${rendered}${tag}`);
|
|
@@ -234,4 +241,169 @@ export function formatDefinitionDiff(diff) {
|
|
|
234
241
|
}
|
|
235
242
|
return lines;
|
|
236
243
|
}
|
|
244
|
+
// ── What a reviewer should read first ─────────────────────────────────────
|
|
245
|
+
const ATTENTION_ORDER = ["approval", "tool choice"];
|
|
246
|
+
const ATTENTION = [
|
|
247
|
+
// Asking the model to act without the user, or telling it the user already agreed.
|
|
248
|
+
["approval", /\bwithout\s+(?:asking|confirm(?:ing|ation)|(?:the\s+)?user'?s?\s+(?:approval|consent|permission)|approval|permission|(?:telling|informing|notifying)\s+(?:the\s+)?user)\b/gi],
|
|
249
|
+
["approval", /\b(?:do\s+not|don'?t|never|no\s+need\s+to)\s+(?:ask|confirm\s+with|check\s+with|prompt)\s+(?:the\s+)?user(?:\s+(?:for\s+(?:confirmation|approval|permission|consent)|before|first|again)\b|\s*(?:[.;!,]|$))/gim],
|
|
250
|
+
["approval", /\b(?:do\s+not|don'?t|never)\s+(?:tell|inform|notify|alert)\s+(?:the\s+)?user\b/gi],
|
|
251
|
+
["approval", /\b(?:skip|bypass|avoid|suppress|disable)\s+(?:the\s+|any\s+)?(?:user\s+)?(?:confirmation|approval|consent)(?:\s+(?:step|prompt|dialog))?\b/gi],
|
|
252
|
+
["approval", /\b(?:auto[-\s]?approved?|pre[-\s]?approved|already\s+(?:been\s+)?(?:approved|confirmed|authori[sz]ed))\b/gi],
|
|
253
|
+
["approval", /\b(?:the\s+)?user\s+(?:has\s+)?(?:already\s+)?(?:approved|consented|agreed\s+to|authori[sz]ed)\b/gi],
|
|
254
|
+
// Steering the model towards this tool or away from others.
|
|
255
|
+
["tool choice", /\b(?:prefer|use|call|choose|pick|select)\s+(?:this|these)\s+(?:tool|tools|server|function|one)\b[^.\n]{0,60}?\b(?:over|instead|rather\s+than|first|before|always)\b/gi],
|
|
256
|
+
["tool choice", /\b(?:prefer(?:red)?|use|call)\b[^.\n]{0,40}?\b(?:over|instead\s+of|rather\s+than)\s+(?:the\s+|any\s+|your\s+|a\s+)?(?:web[\s_-]?search|search(?:ing)?|fetch(?:ing)?|brows(?:er|ing)|built[\s-]?in|other\s+(?:tools?|servers?|sources?)|another\s+(?:tool|server)|(?:your\s+)?(?:own\s+)?knowledge|training\s+data)\b/gi],
|
|
257
|
+
["tool choice", /\bprefer\s+(?:this|it)\s+over\b/gi],
|
|
258
|
+
["tool choice", /\b(?:always|only)\s+(?:use|call)\s+(?:this|the\s+[\w-]+)\s+(?:tool|server|function)\b/gi],
|
|
259
|
+
["tool choice", /\b(?:do\s+not|don'?t|never)\s+(?:use|call)\s+(?:any\s+)?(?:other|another|the\s+built[\s-]?in|web[\s_-]?search|fetch)\b/gi],
|
|
260
|
+
["tool choice", /\bbefore\s+(?:using|calling)\s+any\s+other\s+(?:tool|server)\b/gi],
|
|
261
|
+
];
|
|
262
|
+
const MAX_ATTENTION_TEXT = 200_000;
|
|
263
|
+
function phrases(text) {
|
|
264
|
+
const out = new Map();
|
|
265
|
+
const body = text.slice(0, MAX_ATTENTION_TEXT);
|
|
266
|
+
for (const [kind, re] of ATTENTION) {
|
|
267
|
+
for (const m of body.matchAll(re)) {
|
|
268
|
+
const set = out.get(kind) ?? new Set();
|
|
269
|
+
set.add(m[0].toLowerCase().replace(/\s+/g, " ").trim());
|
|
270
|
+
out.set(kind, set);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return out;
|
|
274
|
+
}
|
|
275
|
+
/** The kinds of Attention whose phrasing appears in `after` and not in `before`. */
|
|
276
|
+
export function addedAttention(before, after) {
|
|
277
|
+
const was = phrases(before), now = phrases(after);
|
|
278
|
+
return ATTENTION_ORDER.filter(kind => [...(now.get(kind) ?? [])].some(p => !was.get(kind)?.has(p)));
|
|
279
|
+
}
|
|
280
|
+
/** Every string inside a value (descriptions nested in a schema), bounded. */
|
|
281
|
+
function textsOf(value, out = [], depth = 0) {
|
|
282
|
+
if (out.length > 2_000 || depth > 20)
|
|
283
|
+
return out.join("\n");
|
|
284
|
+
if (typeof value === "string")
|
|
285
|
+
out.push(value);
|
|
286
|
+
else if (Array.isArray(value))
|
|
287
|
+
for (const v of value)
|
|
288
|
+
textsOf(v, out, depth + 1);
|
|
289
|
+
else if (isPlainObject(value))
|
|
290
|
+
for (const v of Object.values(value))
|
|
291
|
+
textsOf(v, out, depth + 1);
|
|
292
|
+
return out.join("\n");
|
|
293
|
+
}
|
|
294
|
+
function flag(attention) {
|
|
295
|
+
return attention.length ? { attention } : {};
|
|
296
|
+
}
|
|
297
|
+
function attentionNote(attention) {
|
|
298
|
+
return attention?.length ? `; text about ${attention.map(k => k === "approval" ? "the user's approval" : "tool choice").join(" and ")}` : "";
|
|
299
|
+
}
|
|
300
|
+
const VALUE_FLAGS = new Set(["--registry", "--cache", "--userconfig", "--prefix", "--python", "--with", "--with-requirements",
|
|
301
|
+
"--index-url", "--extra-index-url", "--index", "--pip-args", "--suffix", "-w", "--workspace", "-c", "--call"]);
|
|
302
|
+
const SPEC_FLAGS = new Set(["-p", "--package", "--from", "--spec"]);
|
|
303
|
+
const EXACT_NPM = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
|
|
304
|
+
const EXACT_PY = /^\d+(?:\.\d+)*(?:(?:a|b|rc|\.post|\.dev)\d+)*$/;
|
|
305
|
+
export function launchSpec(server) {
|
|
306
|
+
const command = (server.command ?? "").split(/[\\/]/).pop()?.replace(/\.(?:cmd|exe)$/i, "") ?? "";
|
|
307
|
+
const args = [...(server.args ?? [])];
|
|
308
|
+
let runner;
|
|
309
|
+
let ecosystem;
|
|
310
|
+
if (["npx", "bunx", "pnpx"].includes(command)) {
|
|
311
|
+
runner = command;
|
|
312
|
+
ecosystem = "npm";
|
|
313
|
+
}
|
|
314
|
+
else if (command === "npm" && args[0] === "exec") {
|
|
315
|
+
runner = "npm exec";
|
|
316
|
+
ecosystem = "npm";
|
|
317
|
+
args.shift();
|
|
318
|
+
}
|
|
319
|
+
else if ((command === "pnpm" || command === "yarn") && args[0] === "dlx") {
|
|
320
|
+
runner = `${command} dlx`;
|
|
321
|
+
ecosystem = "npm";
|
|
322
|
+
args.shift();
|
|
323
|
+
}
|
|
324
|
+
else if (command === "uvx") {
|
|
325
|
+
runner = "uvx";
|
|
326
|
+
ecosystem = "pypi";
|
|
327
|
+
}
|
|
328
|
+
else if (command === "uv" && args[0] === "tool" && args[1] === "run") {
|
|
329
|
+
runner = "uv tool run";
|
|
330
|
+
ecosystem = "pypi";
|
|
331
|
+
args.splice(0, 2);
|
|
332
|
+
}
|
|
333
|
+
else if (command === "pipx" && args[0] === "run") {
|
|
334
|
+
runner = "pipx run";
|
|
335
|
+
ecosystem = "pypi";
|
|
336
|
+
args.shift();
|
|
337
|
+
}
|
|
338
|
+
else
|
|
339
|
+
return undefined;
|
|
340
|
+
let spec;
|
|
341
|
+
for (let i = 0; i < args.length; i++) {
|
|
342
|
+
const a = args[i];
|
|
343
|
+
if (a === "--") {
|
|
344
|
+
spec ??= args[i + 1];
|
|
345
|
+
break;
|
|
346
|
+
}
|
|
347
|
+
const [flagName, inline] = a.startsWith("--") && a.includes("=") ? [a.slice(0, a.indexOf("=")), a.slice(a.indexOf("=") + 1)] : [a, undefined];
|
|
348
|
+
if (SPEC_FLAGS.has(flagName) && !(ecosystem === "pypi" && flagName === "-p")) {
|
|
349
|
+
spec = inline ?? args[++i];
|
|
350
|
+
continue;
|
|
351
|
+
}
|
|
352
|
+
if (VALUE_FLAGS.has(flagName) || (ecosystem === "pypi" && flagName === "-p")) {
|
|
353
|
+
if (inline === undefined)
|
|
354
|
+
i++;
|
|
355
|
+
continue;
|
|
356
|
+
}
|
|
357
|
+
if (a.startsWith("-"))
|
|
358
|
+
continue;
|
|
359
|
+
spec ??= a;
|
|
360
|
+
break;
|
|
361
|
+
}
|
|
362
|
+
if (!spec)
|
|
363
|
+
return undefined;
|
|
364
|
+
return ecosystem === "npm" ? npmSpec(runner, spec) : pySpec(runner, spec);
|
|
365
|
+
}
|
|
366
|
+
function npmSpec(runner, spec) {
|
|
367
|
+
// Paths, git and tarball URLs are not a registry name: what they run is a different question.
|
|
368
|
+
if (/^(?:[.~/]|file:|git[+:]|github:|gitlab:|bitbucket:|https?:)/i.test(spec) || (spec.includes("/") && !spec.startsWith("@")))
|
|
369
|
+
return undefined;
|
|
370
|
+
const at = spec.indexOf("@", spec.startsWith("@") ? 1 : 0);
|
|
371
|
+
const name = at > 0 ? spec.slice(0, at) : spec, requested = at > 0 ? spec.slice(at + 1) : undefined;
|
|
372
|
+
if (!/^(?:@[a-z0-9][\w.-]*\/)?[a-z0-9][\w.-]*$/i.test(name))
|
|
373
|
+
return undefined;
|
|
374
|
+
return { runner, ecosystem: "npm", package: name, ...(requested ? { requested } : {}), pinned: !!requested && EXACT_NPM.test(requested) };
|
|
375
|
+
}
|
|
376
|
+
function pySpec(runner, spec) {
|
|
377
|
+
const m = /^([A-Za-z0-9][\w.-]*)(\[[\w,.-]+\])?\s*(?:(==|===|@)\s*([^\s;,]+)|((?:~=|!=|>=|<=|>|<)\s*[^\s;]+))?$/.exec(spec);
|
|
378
|
+
if (!m)
|
|
379
|
+
return undefined;
|
|
380
|
+
const requested = m[4] ?? m[5]?.replace(/\s+/g, "");
|
|
381
|
+
return { runner, ecosystem: "pypi", package: m[1] + (m[2] ?? ""), ...(requested ? { requested } : {}), pinned: !!m[4] && EXACT_PY.test(m[4]) };
|
|
382
|
+
}
|
|
383
|
+
/** A version string a server reports about itself, if it is short and plain; anything else is not shown. */
|
|
384
|
+
export function plainVersion(v) {
|
|
385
|
+
return typeof v === "string" && /^[0-9A-Za-z][0-9A-Za-z.+_-]{0,63}$/.test(v) ? v : undefined;
|
|
386
|
+
}
|
|
387
|
+
/** Review lines on where a change came from: the version the server reported at approval and now, and whether
|
|
388
|
+
* the launch command pins one. The reported version is the server's own word; the launch command is not. */
|
|
389
|
+
export function formatOriginLines(launch, approved, current, toolsChanged) {
|
|
390
|
+
const lines = [];
|
|
391
|
+
if (approved || current) {
|
|
392
|
+
const both = approved && current;
|
|
393
|
+
lines.push(`Version the server reports (initialize serverInfo): ${both ? (approved === current ? `${current}, unchanged since the approval` : `${approved} at the approval, ${current} now`) : current ? `${current} now; none was stored with the approval` : `${approved} at the approval; none reported now`}`);
|
|
394
|
+
if (both && approved === current && toolsChanged)
|
|
395
|
+
lines.push(`The tool definitions changed while the reported version stayed ${current}.`);
|
|
396
|
+
}
|
|
397
|
+
if (launch) {
|
|
398
|
+
const how = `${launch.runner} ${launch.package}${launch.requested ? (launch.ecosystem === "npm" ? "@" : launch.requested.match(/^[<>=!~]/) ? "" : "==") + launch.requested : ""}`;
|
|
399
|
+
if (launch.pinned)
|
|
400
|
+
lines.push(`Launch: ${how} (an exact version).`);
|
|
401
|
+
else {
|
|
402
|
+
const which = launch.ecosystem === "npm" ? "the version npm tags latest" : "the newest version on the index";
|
|
403
|
+
const pin = current ? `; to pin it: ${launch.package}${launch.ecosystem === "npm" ? "@" : "=="}${current}` : "";
|
|
404
|
+
lines.push(`Launch: ${how} (no exact version: each start runs ${which}, so the code can change while this command stays the same${pin}).`);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
return lines;
|
|
408
|
+
}
|
|
237
409
|
//# sourceMappingURL=review-diff.js.map
|