@agentvault/agentvault 0.23.19 → 0.23.21

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.
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Map a `GET /api/v1/mls/groups/{id}` status onto "do I still hold state for
3
+ * this group?" — LEAF MODULE (#629).
4
+ *
5
+ * `quarantineOrphanedMlsState` takes this decision as an injected dependency
6
+ * precisely so its failure modes stay testable without a network. This is that
7
+ * decision, isolated so the mapping itself is pinned.
8
+ *
9
+ * ⚠️ The load-bearing case is `null`. The quarantine treats `null` as "leave it
10
+ * alone" and only acts on an explicit `false`, because a transient API failure
11
+ * that looks like "you were removed" is how a working agent loses its history.
12
+ * Every status we do not positively understand must therefore map to `null`,
13
+ * never to `false`.
14
+ *
15
+ * Backend semantics (app/api/v1/mls.py:457):
16
+ * 200 membership (or A2A observer) confirmed -> keep
17
+ * 404 no such group at all -> definitively gone
18
+ * 403 group exists, caller is not a member -> definitively not ours
19
+ * else unknown -> null
20
+ *
21
+ * 401 is deliberately `null`, not `false`: an expired device JWT is an auth
22
+ * problem, not a statement about membership, and treating it as removal would
23
+ * quarantine every group on the device at once.
24
+ */
25
+ /** `true` keep · `false` quarantine · `null` unknown, do nothing. */
26
+ export type MembershipVerdict = boolean | null;
27
+ export declare function mlsMembershipFromStatus(status: number): MembershipVerdict;
28
+ //# sourceMappingURL=mls-membership-probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mls-membership-probe.d.ts","sourceRoot":"","sources":["../src/mls-membership-probe.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,qEAAqE;AACrE,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,IAAI,CAAC;AAE/C,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAIzE"}
@@ -2,7 +2,7 @@
2
2
  "id": "agentvault",
3
3
  "name": "AgentVault",
4
4
  "description": "End-to-end encrypted, zero-knowledge messaging between AI agent owners and their agents.",
5
- "version": "0.23.19",
5
+ "version": "0.23.21",
6
6
  "channels": [
7
7
  "agentvault"
8
8
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentvault/agentvault",
3
- "version": "0.23.19",
3
+ "version": "0.23.21",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -22,7 +22,8 @@
22
22
  "scripts": {
23
23
  "build": "tsc --emitDeclarationOnly && node build.mjs",
24
24
  "test": "vitest run",
25
- "test:watch": "vitest"
25
+ "test:watch": "vitest",
26
+ "check:harness": "node scripts/check-harness-compat.mjs"
26
27
  },
27
28
  "bin": {
28
29
  "agentvault": "dist/cli.js"