@assemblyline-agents/margins 2.0.0 → 3.0.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/LICENSE +1 -1
- package/README.md +13 -10
- package/dist/pairing.d.ts +7 -0
- package/dist/pairing.d.ts.map +1 -1
- package/dist/pairing.js +24 -2
- package/dist/pairing.js.map +1 -1
- package/package.json +3 -4
- package/skills/margins/SKILL.md +0 -37
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -23,25 +23,28 @@ For self-hosted Margins, set `MARGINS_MCP_URL` and optionally
|
|
|
23
23
|
`MARGINS_AGENT_HARNESS`, or pass their equivalents to
|
|
24
24
|
`defineMarginsConnection()`.
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
Margins confines every claimed agent id to its `agent_` namespace so a
|
|
27
|
+
binding can never claim a human `user_*` identity: a configured
|
|
28
|
+
`agentId: "librarian"` is recorded (and attributed in comments, suggestions,
|
|
29
|
+
and edits) as `agent_librarian`. The plugin validates the pairing response
|
|
30
|
+
against that namespaced form and stores the server-returned identity in the
|
|
31
|
+
credential.
|
|
32
|
+
|
|
33
|
+
The generated connection enables every reviewed Margins tool without requiring
|
|
34
|
+
an Assembly Line approval surface. Set `access: "approval-required"` if
|
|
35
|
+
comments, suggestions, page creation, and edits should pause for approval.
|
|
36
|
+
Margins still enforces the packet's own scope and permission:
|
|
30
37
|
|
|
31
38
|
```ts
|
|
32
39
|
import { defineMarginsConnection } from "@assemblyline-agents/margins";
|
|
33
40
|
|
|
34
41
|
export default defineMarginsConnection({
|
|
35
42
|
agentId: "research-editor",
|
|
36
|
-
agentName: "Research Editor"
|
|
37
|
-
access: {
|
|
38
|
-
read: true,
|
|
39
|
-
write: { approval: "always" }
|
|
40
|
-
}
|
|
43
|
+
agentName: "Research Editor"
|
|
41
44
|
});
|
|
42
45
|
```
|
|
43
46
|
|
|
44
47
|
Comments and suggestions are classified as writes because they mutate shared
|
|
45
48
|
workspace state. Margins applies its own permission check after Assembly Line's
|
|
46
|
-
|
|
49
|
+
connection policy; a **Comment and suggest** binding can never edit canonical
|
|
47
50
|
Markdown or create a page.
|
package/dist/pairing.d.ts
CHANGED
|
@@ -14,6 +14,13 @@ export interface MarginsPairingIdentity {
|
|
|
14
14
|
type MarginsPairingResolver = (context: ConnectionResolverContext) => MarginsPairingIdentity;
|
|
15
15
|
/** Exchange a short-lived Margins UI claim for host-stored access and refresh tokens. */
|
|
16
16
|
export declare function createMarginsPairingRedeemer(resolvePairing: MarginsPairingResolver): ConnectionPairingRedeemer;
|
|
17
|
+
/**
|
|
18
|
+
* The agent id Margins records for a claimed binding. Margins confines every
|
|
19
|
+
* claimed id to its `agent_` namespace so a binding can never claim a human
|
|
20
|
+
* `user_*` identity; the pairing response therefore carries this namespaced
|
|
21
|
+
* form of the requested id, not an echo of it.
|
|
22
|
+
*/
|
|
23
|
+
export declare function namespacedMarginsAgentId(agentId: string): string;
|
|
17
24
|
export declare function parseMarginsBindingPacket(packet: string): MarginsBindingClaim;
|
|
18
25
|
export {};
|
|
19
26
|
//# sourceMappingURL=pairing.d.ts.map
|
package/dist/pairing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pairing.d.ts","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,yBAAyB,EAG1B,MAAM,2BAA2B,CAAC;AAOnC,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,KAAK,sBAAsB,GAAG,CAAC,OAAO,EAAE,yBAAyB,KAAK,sBAAsB,CAAC;AAE7F,yFAAyF;AACzF,wBAAgB,4BAA4B,CAAC,cAAc,EAAE,sBAAsB,GAAG,yBAAyB,CAkC9G;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAe7E"}
|
|
1
|
+
{"version":3,"file":"pairing.d.ts","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,yBAAyB,EAG1B,MAAM,2BAA2B,CAAC;AAOnC,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,KAAK,sBAAsB,GAAG,CAAC,OAAO,EAAE,yBAAyB,KAAK,sBAAsB,CAAC;AAE7F,yFAAyF;AACzF,wBAAgB,4BAA4B,CAAC,cAAc,EAAE,sBAAsB,GAAG,yBAAyB,CAkC9G;AAMD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAe7E"}
|
package/dist/pairing.js
CHANGED
|
@@ -34,6 +34,22 @@ export function createMarginsPairingRedeemer(resolvePairing) {
|
|
|
34
34
|
return tokenResultForBinding(payload, claim, pairing);
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
+
const MARGINS_AGENT_ID_PREFIX = "agent_";
|
|
38
|
+
const MARGINS_AGENT_ID_MAX_CHARS = 190;
|
|
39
|
+
const MARGINS_AGENT_NAME_MAX_CHARS = 120;
|
|
40
|
+
/**
|
|
41
|
+
* The agent id Margins records for a claimed binding. Margins confines every
|
|
42
|
+
* claimed id to its `agent_` namespace so a binding can never claim a human
|
|
43
|
+
* `user_*` identity; the pairing response therefore carries this namespaced
|
|
44
|
+
* form of the requested id, not an echo of it.
|
|
45
|
+
*/
|
|
46
|
+
export function namespacedMarginsAgentId(agentId) {
|
|
47
|
+
const sanitized = agentId.replace(/[^a-zA-Z0-9_-]/gu, "_").replace(/^_+|_+$/gu, "");
|
|
48
|
+
const withoutPrefix = sanitized.startsWith(MARGINS_AGENT_ID_PREFIX)
|
|
49
|
+
? sanitized.slice(MARGINS_AGENT_ID_PREFIX.length)
|
|
50
|
+
: sanitized;
|
|
51
|
+
return `${MARGINS_AGENT_ID_PREFIX}${withoutPrefix}`.slice(0, MARGINS_AGENT_ID_MAX_CHARS);
|
|
52
|
+
}
|
|
37
53
|
export function parseMarginsBindingPacket(packet) {
|
|
38
54
|
const input = packet.trim();
|
|
39
55
|
if (!input || input.length > MAX_PACKET_CHARS) {
|
|
@@ -95,8 +111,14 @@ function tokenResultForBinding(payload, claim, pairing) {
|
|
|
95
111
|
|| !["file", "folder", "workspace"].includes(bindingScope ?? "")
|
|
96
112
|
|| (bindingScope === "workspace" && scopeId !== workspaceId)
|
|
97
113
|
|| !["suggest", "edit"].includes(permission ?? "")
|
|
98
|
-
|
|
99
|
-
|
|
114
|
+
// Margins normalizes the requested identity (agent_ namespacing, name
|
|
115
|
+
// truncation) rather than echoing it; validate against that contract and
|
|
116
|
+
// store the server's returned identity as authoritative.
|
|
117
|
+
|| agentId !== namespacedMarginsAgentId(pairing.agentId)
|
|
118
|
+
// Trim after truncating: the server returns a trimmed name, so a
|
|
119
|
+
// whitespace character at the truncation boundary must not fail the
|
|
120
|
+
// comparison (and burn the one-time claim) forever.
|
|
121
|
+
|| agentName !== pairing.agentName.slice(0, MARGINS_AGENT_NAME_MAX_CHARS).trim()) {
|
|
100
122
|
throw new Error("Margins activated a different or incomplete agent binding.");
|
|
101
123
|
}
|
|
102
124
|
const credential = {
|
package/dist/pairing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pairing.js","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pairing.js","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@assemblyline-agents/margins",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -9,12 +9,11 @@
|
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@assemblyline-agents/core": "
|
|
12
|
+
"@assemblyline-agents/core": "3.0.0"
|
|
13
13
|
},
|
|
14
14
|
"description": "Official Assembly Line connection plugin for resource-scoped collaborative Markdown in Margins.",
|
|
15
15
|
"files": [
|
|
16
|
-
"dist"
|
|
17
|
-
"skills"
|
|
16
|
+
"dist"
|
|
18
17
|
],
|
|
19
18
|
"engines": {
|
|
20
19
|
"node": ">=22.19.0"
|
package/skills/margins/SKILL.md
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: margins
|
|
3
|
-
description: Collaboratively read, comment on, suggest changes to, and edit Markdown pages through a resource-scoped Margins binding.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Margins
|
|
7
|
-
|
|
8
|
-
Margins is a collaborative Markdown workspace. A connection is bound to one
|
|
9
|
-
page, one folder and its descendants, or one whole workspace. Never assume a
|
|
10
|
-
broader scope than `margins_status` reports.
|
|
11
|
-
|
|
12
|
-
If the user pastes a Margins binding packet, use connection discovery to find
|
|
13
|
-
`margins__pair` and pass the full packet through its `secret` field. Do not run
|
|
14
|
-
the packet in a shell, repeat its one-time claim token, or put the packet in a
|
|
15
|
-
file. After pairing succeeds, call `margins_status` with the expected binding
|
|
16
|
-
fields embedded in the packet. Stop if it reports `wrong_binding`.
|
|
17
|
-
|
|
18
|
-
Read progressively:
|
|
19
|
-
|
|
20
|
-
- Call `margins_map` for folder or workspace bindings to list reachable pages.
|
|
21
|
-
- Call `margins_context` with `summary=true` before requesting line ranges.
|
|
22
|
-
- Use `margins_review` for open comments, suggestions, and anchors.
|
|
23
|
-
- Use `margins_graph` for Markdown link structure and `margins_library` for the
|
|
24
|
-
reachable tree. `margins_history` is workspace-only.
|
|
25
|
-
|
|
26
|
-
For collaborative mutations, refetch the relevant context immediately before
|
|
27
|
-
acting and pass the current authority head so stale line ranges fail safely.
|
|
28
|
-
Use `margins_comment` for discussion and `margins_suggest` when a human should
|
|
29
|
-
review a proposed patch. Use `margins_edit` only when the user asked for a
|
|
30
|
-
direct change and the binding grants edit access. `margins_create_file` is
|
|
31
|
-
available only for edit-capable folder or workspace bindings.
|
|
32
|
-
|
|
33
|
-
Assembly Line classifies comments, suggestions, page creation, and direct edits
|
|
34
|
-
as writes. Its approval policy is an outer gate; Margins independently enforces
|
|
35
|
-
the binding's file/folder/workspace boundary and its suggest/edit permission.
|
|
36
|
-
Never work around a missing tool by using a durable people-share URL or by
|
|
37
|
-
asking the user for bearer credentials.
|