sigelo-mcp 0.1.2 → 0.1.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.
package/README.md CHANGED
@@ -15,7 +15,7 @@ never in the plugin.
15
15
  |---|---|
16
16
  | `sigelo_invite` | a one-line code for another agent's operator |
17
17
  | `sigelo_accept` | answer a code; pairs once the reply verifies |
18
- | `sigelo_contacts` | contacts, pairing ids, pending codes |
18
+ | `sigelo_contacts` | contacts, pairing ids, `re_pair`, pending codes |
19
19
  | `sigelo_send` | an end-to-end encrypted message |
20
20
  | `sigelo_inbox` | messages and events since the last call |
21
21
  | `sigelo_forget_contact` | revoke a contact, locally |
package/contact.mjs CHANGED
@@ -38,10 +38,10 @@ const TOOLS = [
38
38
  obj({ name: str('the name you will call the new contact'), ttl: int('seconds the code lives, at most 604800 (7 days)') })],
39
39
  ['sigelo_accept', `Accept an invite code from another agent's operator: sends your answer (whoever holds the code learns your DID); pairs once the inviter's reply verifies against the code. Returns connected with the pairing id, or waiting until the inviter's agent next connects (sigelo_inbox then reports the pairing). ${CONFIRM} ${POW} ${RELAY_DATA}`,
40
40
  obj({ code: str('the sgl1… code, exactly as received'), name: str('the name you will call this contact'), wait: int(`seconds to wait for the reply, default 10, at most ${WAIT_MAX}`, WAIT_MAX) }, ['code'])],
41
- ['sigelo_contacts', `Your contacts (name, original DID, current DID, revoked, relay, messages queued for them, pairing id) and your pending invites and answers. ${CONFIRM}`, obj()],
42
- ['sigelo_send', `Send an end-to-end encrypted message to a contact, by name or DID. The relay sees only ciphertext. status sent = the relay accepted it (it holds it while the contact reads that mailbox); queued = it goes at your next connection (detail says why: e.g. waiting for the contact's fresh prekeys, asked for). Error no_reader = nobody reads that mailbox now (the contact is away longer than it claims ahead): nothing is held, send again later. ${RELAY_DATA}`,
41
+ ['sigelo_contacts', `Your contacts (name, original DID, current DID, revoked, relay, messages queued for them, pairing id, re_pair) and your pending invites and answers. re_pair not null = after a recovery (own_recovery: yours; contact_recovery: theirs) the pairing key may be a thief's: nothing is sent to that contact until you pair again (sigelo_invite, they accept). ${CONFIRM}`, obj()],
42
+ ['sigelo_send', `Send an end-to-end encrypted message to a contact, by name or DID. The relay sees only ciphertext. status sent = the relay accepted it (it holds it while the contact reads that mailbox); queued = it goes at your next connection (detail says why: e.g. waiting for the contact's fresh prekeys, asked for). Error no_reader = nobody reads that mailbox now (the contact is away longer than it claims ahead): nothing is held, send again later. Error re_pair = pair again first (see sigelo_contacts). ${RELAY_DATA}`,
43
43
  obj({ to: str('contact name or DID'), text: str('the message'), label: str('optional conversation label, e.g. "billing"') }, ['to', 'text'])],
44
- ['sigelo_inbox', `Messages from your contacts since you last asked (each returned once), and events: pairings completed or failed (with the reason), contacts' key rotations, messages waiting for a contact's fresh prekeys. last_resort = sent with weaker forward secrecy. dropped counts what was refused, by check. more > 0: the rest did not fit this result and are held beside your identity file: call again now. ${DATA} ${RELAY_DATA}`,
44
+ ['sigelo_inbox', `Messages from your contacts since you last asked (each returned once), and events: pairings completed or failed (with the reason), contacts' key rotations, contacts to pair again after a recovery (re_pair) and messages queued for them, refused unsent (refused), messages waiting for a contact's fresh prekeys. last_resort = sent with weaker forward secrecy. dropped counts what was refused, by check. more > 0: the rest did not fit this result and are held beside your identity file: call again now. ${DATA} ${RELAY_DATA}`,
45
45
  obj({ wait: int(`seconds to wait for a first message, default 0, at most ${WAIT_MAX}`, WAIT_MAX) })],
46
46
  ['sigelo_forget_contact', 'Forget a contact: revoked in your store for good, its mailboxes given up at the relay. Local: the other side is not told.',
47
47
  obj({ did: str('the contact\'s DID "did:sigelo:z…"') }, ['did'])],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sigelo-mcp",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "mcpName": "io.github.csigelo/sigelo",
5
5
  "description": "MCP server: portable, offline-verifiable identity for AI agents (DID, challenges, attestations, bundles), optional Monero wallet",
6
6
  "keywords": [
@@ -43,8 +43,8 @@
43
43
  "prepublishOnly": "node -e \"if(process.env.SIGELO_PUBLISH!=='1'){console.error('refusing: the npm account and names are an Owner decision (ROADMAP D1); publish the release/build.sh tarballs with SIGELO_PUBLISH=1');process.exit(1)}\""
44
44
  },
45
45
  "dependencies": {
46
- "sigelo": "^0.1.2",
47
- "sigelo-agent": "^0.1.2",
48
- "sigelo-spend": "^0.1.2"
46
+ "sigelo": "^0.1.3",
47
+ "sigelo-agent": "^0.1.3",
48
+ "sigelo-spend": "^0.1.3"
49
49
  }
50
50
  }
package/server.mjs CHANGED
@@ -25,7 +25,7 @@ console.log = console.info = console.debug = console.error;
25
25
 
26
26
  const MODERN = ['2026-07-28']; // per-request _meta era
27
27
  const LEGACY = ['2025-11-25', '2025-06-18', '2025-03-26', '2024-11-05']; // initialize era
28
- const SERVER_INFO = { name: 'sigelo', version: '0.1.2' };
28
+ const SERVER_INFO = { name: 'sigelo', version: '0.1.3' };
29
29
  const PV = 'io.modelcontextprotocol/protocolVersion';
30
30
  const env = process.env;
31
31
  const WALLET = Boolean(env.SIGELO_WALLET_URL && env.SIGELO_WALLET_TOKEN);