@ai-ecoverse/slicc-vault 1.0.0 → 1.1.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
@@ -68,6 +68,10 @@ Everything lives in the vault origin's IndexedDB, database `slicc-vault`, versio
68
68
  - **Removing** sets `removedAt`. A removed record keeps its placeholder, can be restored with `restore`, and is deleted for good 30 days later. Sealing a removed name brings it back with a new value and the same placeholder.
69
69
  - **Times** are epoch milliseconds everywhere.
70
70
 
71
+ ## Backup reminder
72
+
73
+ `status.exportedAt` is the time of the namespace's last successful `export`, or `null` if it never exported. `status.backupReminder` is `due` once the namespace holds a `secret` record and has never exported, `dismissed` after `dismissBackupReminder`, and `null` otherwise (no secrets yet, or exported). `export` arrives with VAULT-1e; until then `exportedAt` stays `null`.
74
+
71
75
  ## Scrub state
72
76
 
73
77
  `scrub { needed, version, ready }` tells bios and the agent whether output must pass the vault's scrubber before it reaches the model. It's per namespace:
@@ -97,7 +101,7 @@ iframe.contentWindow.postMessage({ type: 'slicc-vault', v: 1, op: 'hello', role:
97
101
  | op (page role) | fields | reply |
98
102
  |---|---|---|
99
103
  | `sealed` | `req` (the `/dev/sealed` request object, or its JSON text), `stamp` (`{ pid, ppid, uid, gid, tag }` from the kernel) | `{ reply }`, the §3.7 reply, below |
100
- | `status` | — | `{ status: { version, protocol, origin, locked, lock, scrub, waiting } }` |
104
+ | `status` | — | `{ status: { version, protocol, origin, locked, lock, scrub, waiting, exportedAt, backupReminder } }` |
101
105
  | `placeholders` | — | `{ placeholders, scrub }`: every placeholder of a record that isn't removed, active and inert, sorted |
102
106
  | `list` | — | `{ list: { secrets, refused, audit, auditMore, exits } }` for Settings › Secrets |
103
107
  | `audit` | `before?` (a `seq`), `limit?` (1–1000, default 100) | `{ audit, more, next? }`, newest first; pass `next` as `before` for the next page |
@@ -106,6 +110,7 @@ iframe.contentWindow.postMessage({ type: 'slicc-vault', v: 1, op: 'hello', role:
106
110
  | `remove`, `restore` | `name`, `kind?` (default `secret`) | `{ name, placeholder, state }`. A record removed more than 30 days ago can't be restored (`ENOENT`) |
107
111
  | `cancel` | `request` | `{ state }`; the request's `/dev/sealed` `status` becomes `cancelled` |
108
112
  | `lock` | — | `{}`; drops the key everywhere when the lock is on |
113
+ | `dismissBackupReminder` | — | `{ backupReminder }`; the reminder becomes `dismissed` for this namespace |
109
114
  | `import`, `export`, anything else | | `ENOTSUP` |
110
115
 
111
116
  `put` and `seal` need the vault unlocked. They answer `EACCES` with a message starting `vault is locked` otherwise.
@@ -77,7 +77,10 @@ export interface VaultStatus {
77
77
  lock: LockMode;
78
78
  scrub: ScrubState;
79
79
  waiting: PendingRequest[];
80
+ exportedAt: EpochMs | null;
81
+ backupReminder: BackupReminder;
80
82
  }
83
+ export type BackupReminder = 'due' | 'dismissed' | null;
81
84
  export type Availability = 'connecting' | 'waiting' | 'locked' | 'ready';
82
85
  export type PolicyFile = '/etc/fnox/config.toml' | '/etc/slicc/secrets-policy.toml';
83
86
  export type PolicyChange = {
@@ -263,6 +266,8 @@ export type Op = {
263
266
  passphrase: string;
264
267
  } | {
265
268
  op: 'lock';
269
+ } | {
270
+ op: 'dismissBackupReminder';
266
271
  };
267
272
  export type OpReply = {
268
273
  op: 'sealed';
@@ -291,6 +296,9 @@ export type OpReply = {
291
296
  bundle: Uint8Array;
292
297
  } | {
293
298
  op: 'lock';
299
+ } | {
300
+ op: 'dismissBackupReminder';
301
+ backupReminder: BackupReminder;
294
302
  };
295
303
  export type Request = Op & {
296
304
  v: Protocol;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-vault",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "The separate-origin vault at vault.sliccy.ai: sealed secrets, OAuth tokens, and model and MCP credentials for SLICC seven, used only by its injector",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -46,7 +46,7 @@
46
46
  "release": "semantic-release"
47
47
  },
48
48
  "devDependencies": {
49
- "@ai-ecoverse/slicc-shared-web": "1.13.0",
49
+ "@ai-ecoverse/slicc-shared-web": "1.13.1",
50
50
  "@biomejs/biome": "2.5.15",
51
51
  "@happy-dom/global-registrator": "20.14.5",
52
52
  "@spectrum-css/button": "14.2.0",