agent-passport-system-mcp 2.24.0 → 2.25.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/README.md CHANGED
@@ -12,13 +12,13 @@ Enforcement and accountability layer for AI agents. Bring your own identity. 20
12
12
  APS_PROFILE=essential npx agent-passport-system-mcp
13
13
  ```
14
14
 
15
- `essential` is the default profile — the 20 tools 90% of integrations need. Set `APS_PROFILE=full` for all 143 tools.
15
+ `essential` is the default profile — the 149 tools 90% of integrations need. Set `APS_PROFILE=full` for all 149 tools.
16
16
 
17
17
  Available profiles: essential (default), identity, governance, coordination, commerce, data, gateway, comms, minimal, full.
18
18
 
19
19
  > **For AI agents:** visit [aeoess.com/llms.txt](https://aeoess.com/llms.txt) for machine-readable documentation or [llms-full.txt](https://aeoess.com/llms-full.txt) for the complete technical reference. MCP discovery: [.well-known/mcp.json](https://aeoess.com/.well-known/mcp.json).
20
20
 
21
- Works with any MCP client: Claude Desktop, Claude Code, Cursor, Windsurf, and more. Full surface area under `APS_PROFILE=full`: 143 tools across 103 modules (71 core + 32 v2 constitutional governance). Independently cited by [PDR in Production (Nanook & Gerundium, UBC)](https://doi.org/10.5281/zenodo.19323172).
21
+ Works with any MCP client: Claude Desktop, Claude Code, Cursor, Windsurf, and more. Full surface area under `APS_PROFILE=full`: 149 tools across 103 modules (71 core + 32 v2 constitutional governance). Independently cited by [PDR in Production (Nanook & Gerundium, UBC)](https://doi.org/10.5281/zenodo.19323172).
22
22
 
23
23
  ## Quick Start
24
24
 
@@ -216,7 +216,7 @@ Layer 1 — Agent Passport Protocol (Ed25519 identity)
216
216
 
217
217
  ## Links
218
218
 
219
- - npm SDK: [agent-passport-system](https://www.npmjs.com/package/agent-passport-system) (v1.42.0, 2844 tests)
219
+ - npm SDK: [agent-passport-system](https://www.npmjs.com/package/agent-passport-system) (v1.44.0, 2910 tests)
220
220
  - Python SDK: [agent-passport-system](https://pypi.org/project/agent-passport-system/) (v0.8.0)
221
221
  - Paper (Protocol): [doi.org/10.5281/zenodo.18749779](https://doi.org/10.5281/zenodo.18749779)
222
222
  - Paper (Faceted Narrowing): [doi.org/10.5281/zenodo.19260073](https://doi.org/10.5281/zenodo.19260073)
package/build/index.js CHANGED
@@ -64,7 +64,9 @@ import { createDerivationReceipt, resolveExtendedLineage, evaluateRevocationImpa
64
64
  // Rome-Complete: Charter, Approval, Time, Reserve, Federation
65
65
  import { createCharter, signCharter, verifyCharter, evaluateThreshold, createApprovalRequest, addApprovalSignature, createHybridTimestamp, compareTimestamps, validateTemporalRights, createReserveAttestation, vouchReputation, applyReputationDowngrade,
66
66
  // v2 boundary primitives (AttributionConsent, ProvisionalStatement, HumanEscalationFlag)
67
- createAttributionReceipt, signAttributionConsent, verifyAttributionConsent, checkArtifactCitations, receiptCore, createProvisional, promoteStatement, verifyPromotion, withdrawProvisional, withdrawalPayload, isBinding, checkEscalationRequired, requestOwnerConfirmation, recordOwnerConfirmation, } from "agent-passport-system";
67
+ createAttributionReceipt, signAttributionConsent, verifyAttributionConsent, checkArtifactCitations, receiptCore, createProvisional, promoteStatement, verifyPromotion, withdrawProvisional, withdrawalPayload, isBinding, checkEscalationRequired, requestOwnerConfirmation, recordOwnerConfirmation,
68
+ // Attribution Primitive (unified four-axis signed Merkle receipt)
69
+ computeAttributionActionRef, constructAttributionPrimitive, projectAttribution, verifyAttributionProjection, verifyAttributionPrimitive, checkProjectionConsistency, } from "agent-passport-system";
68
70
  // ═══════════════════════════════════════
69
71
  // State Management
70
72
  // ═══════════════════════════════════════
@@ -649,6 +651,13 @@ const TOOL_SCOPE_MAP = {
649
651
  'aps_withdraw_provisional': 'coordination',
650
652
  'aps_check_escalation_required': 'delegation',
651
653
  'aps_record_owner_confirmation': 'delegation',
654
+ // Attribution Primitive (unified four-axis signed Merkle receipt)
655
+ 'aps_construct_attribution_primitive': 'governance',
656
+ 'aps_project_attribution': 'governance',
657
+ 'aps_verify_attribution_projection': 'governance',
658
+ 'aps_verify_attribution_primitive': 'governance',
659
+ 'aps_check_projection_consistency': 'governance',
660
+ 'aps_compute_attribution_action_ref': 'identity',
652
661
  };
653
662
  // ═══════════════════════════════════════
654
663
  // TOOL: list_profiles
@@ -4738,6 +4747,109 @@ server.tool("aps_record_owner_confirmation", "Escalation boundary: owner signs a
4738
4747
  return { content: [{ type: "text", text: safeError("recordOwnerConfirmation failed", e) }], isError: true };
4739
4748
  }
4740
4749
  });
4750
+ // ═══════════════════════════════════════
4751
+ // Attribution Primitive — unified four-axis signed Merkle receipt
4752
+ // Spec: ATTRIBUTION-PRIMITIVE-v1.1.md. One signed object per action with
4753
+ // four axis projections (D, P, G, C) that verify independently.
4754
+ // ═══════════════════════════════════════
4755
+ server.tool("aps_construct_attribution_primitive", "Build and sign a four-axis AttributionPrimitive for an action. Axes: D (data sources), P (protocol modules), G (delegation chain), C (compute providers). Returns the complete signed object.", {
4756
+ action: z.object({
4757
+ agentId: z.string(),
4758
+ actionType: z.string(),
4759
+ params: z.record(z.any()),
4760
+ nonce: z.string(),
4761
+ }).describe("Action identity tuple; the action_ref is derived as sha256(canonical(this))"),
4762
+ axes: z.object({
4763
+ D: z.array(z.any()),
4764
+ P: z.array(z.any()),
4765
+ G: z.array(z.any()),
4766
+ C: z.array(z.any()),
4767
+ }).describe("Four-axis content. See spec §1.2 for entry shapes per axis."),
4768
+ issuer: z.string().describe("Issuer DID (gateway or agent producing the receipt)"),
4769
+ issuer_private_key: z.string().describe("Ed25519 private key hex that signs the envelope"),
4770
+ timestamp: z.string().optional().describe("ISO-8601 UTC with ms precision + Z (§2.5). Defaults to now()."),
4771
+ }, async (args) => {
4772
+ try {
4773
+ const primitive = constructAttributionPrimitive({
4774
+ action: args.action,
4775
+ axes: args.axes,
4776
+ issuer: args.issuer,
4777
+ issuerPrivateKey: args.issuer_private_key,
4778
+ timestamp: args.timestamp,
4779
+ });
4780
+ return { content: [{ type: "text", text: JSON.stringify(primitive, null, 2) }] };
4781
+ }
4782
+ catch (e) {
4783
+ return { content: [{ type: "text", text: safeError("constructAttributionPrimitive failed", e) }], isError: true };
4784
+ }
4785
+ });
4786
+ server.tool("aps_project_attribution", "Extract a single-axis projection from an AttributionPrimitive. The projection carries the axis content plus a two-hop Merkle path that lets a downstream verifier reconstruct the signed root without seeing the other three axes. axis: 'D' | 'P' | 'G' | 'C'.", {
4787
+ primitive: z.any().describe("An AttributionPrimitive (from aps_construct_attribution_primitive)"),
4788
+ axis: z.enum(["D", "P", "G", "C"]).describe("Axis to project"),
4789
+ }, async (args) => {
4790
+ try {
4791
+ const projection = projectAttribution(args.primitive, args.axis);
4792
+ return { content: [{ type: "text", text: JSON.stringify(projection, null, 2) }] };
4793
+ }
4794
+ catch (e) {
4795
+ return { content: [{ type: "text", text: safeError("projectAttribution failed", e) }], isError: true };
4796
+ }
4797
+ });
4798
+ server.tool("aps_verify_attribution_projection", "Verify a single-axis AttributionProjection under the issuer's Ed25519 public key. Returns {valid: true} or {valid: false, reason: 'INVALID_AXIS_TAG'|'MERKLE_MISMATCH'|'SIGNATURE_INVALID'|'MALFORMED'}. Verification is purely local — no other axes required.", {
4799
+ projection: z.any().describe("An AttributionProjection (from aps_project_attribution)"),
4800
+ issuer_public_key: z.string().describe("Issuer Ed25519 public key hex"),
4801
+ }, async (args) => {
4802
+ try {
4803
+ const result = verifyAttributionProjection(args.projection, args.issuer_public_key);
4804
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
4805
+ }
4806
+ catch (e) {
4807
+ return { content: [{ type: "text", text: safeError("verifyAttributionProjection failed", e) }], isError: true };
4808
+ }
4809
+ });
4810
+ server.tool("aps_verify_attribution_primitive", "End-to-end verify of a full AttributionPrimitive: constructs projections for all four axes and verifies each one. Useful as a post-construction sanity check or for verifying a primitive received from a peer.", {
4811
+ primitive: z.any().describe("An AttributionPrimitive"),
4812
+ issuer_public_key: z.string().describe("Issuer Ed25519 public key hex"),
4813
+ }, async (args) => {
4814
+ try {
4815
+ const result = verifyAttributionPrimitive(args.primitive, args.issuer_public_key);
4816
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
4817
+ }
4818
+ catch (e) {
4819
+ return { content: [{ type: "text", text: safeError("verifyAttributionPrimitive failed", e) }], isError: true };
4820
+ }
4821
+ });
4822
+ server.tool("aps_check_projection_consistency", "Cross-projection consistency check (§2.4): given two projections, confirm they originate from the same signed receipt. Returns {same_receipt: true} or {same_receipt: false, reason: 'DIFFERENT_ACTIONS'|'DIFFERENT_RECEIPTS'|'DIFFERENT_SIGNATURES'|'METADATA_MISMATCH'}.", {
4823
+ projection_a: z.any().describe("First AttributionProjection"),
4824
+ projection_b: z.any().describe("Second AttributionProjection"),
4825
+ }, async (args) => {
4826
+ try {
4827
+ const result = checkProjectionConsistency(args.projection_a, args.projection_b);
4828
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
4829
+ }
4830
+ catch (e) {
4831
+ return { content: [{ type: "text", text: safeError("checkProjectionConsistency failed", e) }], isError: true };
4832
+ }
4833
+ });
4834
+ server.tool("aps_compute_attribution_action_ref", "Derive the action_ref (hex sha256) for an action tuple. action_ref is the content-addressed anchor that all four axis projections bind to. Useful for indexing primitives by action without constructing the full primitive.", {
4835
+ agentId: z.string(),
4836
+ actionType: z.string(),
4837
+ params: z.record(z.any()),
4838
+ nonce: z.string(),
4839
+ }, async (args) => {
4840
+ try {
4841
+ const action_ref = computeAttributionActionRef({
4842
+ agentId: args.agentId,
4843
+ actionType: args.actionType,
4844
+ params: args.params,
4845
+ nonce: args.nonce,
4846
+ });
4847
+ return { content: [{ type: "text", text: JSON.stringify({ action_ref }, null, 2) }] };
4848
+ }
4849
+ catch (e) {
4850
+ return { content: [{ type: "text", text: safeError("computeAttributionActionRef failed", e) }], isError: true };
4851
+ }
4852
+ });
4741
4853
  server.prompt("coordination_role", "Get instructions for your assigned coordination role", {}, async () => {
4742
4854
  const role = state.agentRole || 'default';
4743
4855
  const instructions = ROLE_PROMPTS[role] || ROLE_PROMPTS['default'];
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "agent-passport-system-mcp",
3
- "version": "2.24.0",
3
+ "version": "2.25.0",
4
4
  "mcpName": "io.github.aeoess/agent-passport-mcp",
5
- "description": "MCP server for the Agent Passport System — enforcement infrastructure for the agent economy. 143 tools across 103 modules. Policy eval <2ms. Identity, delegation, reputation, enforcement, attestation, feeless Nano wallet, commerce. Tracks SDK v1.42.0 (2,843 tests).",
5
+ "description": "MCP server for the Agent Passport System — enforcement infrastructure for the agent economy. 149 tools across 122 modules. Policy eval <2ms. Identity, delegation, reputation, enforcement, attestation, feeless Nano wallet, commerce, attribution primitive. Tracks SDK v1.44.0 (2,910 tests).",
6
6
  "type": "module",
7
7
  "bin": {
8
8
  "agent-passport-system-mcp": "./build/bin.js",
@@ -50,7 +50,7 @@
50
50
  "homepage": "https://github.com/aeoess/agent-passport-mcp",
51
51
  "dependencies": {
52
52
  "@modelcontextprotocol/sdk": "^1.27.1",
53
- "agent-passport-system": "^1.42.0",
53
+ "agent-passport-system": "^1.44.0",
54
54
  "zod": "^3.25.76"
55
55
  },
56
56
  "devDependencies": {