@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 +6 -1
- package/dist/types/contract.d.ts +8 -0
- package/package.json +2 -2
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.
|
package/dist/types/contract.d.ts
CHANGED
|
@@ -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.
|
|
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.
|
|
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",
|