@ai-ecoverse/slicc-spectrum 1.90.0 → 1.91.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
@@ -429,7 +429,7 @@ The secrets, sorted by name (`li[data-secret][data-state]`, with `[data-rules]`,
429
429
  Locked, every form (Add secret, Replace value, Import, Export) says "Unlock the vault first" (`p[data-locked]`) next to the vault's own small **Unlock** button (`slicc-vault-button[data-action=unlock]`) and disables its submit; once unlocked, the form stays open with what was typed and its submit enables.
430
430
  Vault errors show their message, EACCES as "Unlock the vault first" and ENOTSUP as "This arrives with a later vault version".
431
431
  Each action shows only when the port has its method.
432
- Then **Rules SLICC refused** (`[data-refused]`), where the rules live (`[data-policy]`) and **Activity** (`ol.audit li[data-seq][data-type]`; an entry with `uid` and `tag` both `null` reads "by you", a `refresh` entry "Refreshed automatically" (with the sign-in it used), an `mcp` entry "Sent to the MCP server SERVER at DOMAIN" with its request and exit, and a policy entry lists its changes, its warning and, when accepted, how to change the file back; **Only reveals to programs**, `data-action="reveals"`, and **Show older**, `data-action="older"`).
432
+ Then **Rules SLICC refused** (`[data-refused]`), where the rules live (`[data-policy]`) and **Activity** (`ol.audit li[data-seq][data-type]`; an entry with `uid` and `tag` both `null` reads "by you", a `refresh` entry "Refreshed automatically" (with the sign-in it used), an `endpoints` entry (the vault removing model URLs an older agent registered) "Removed custom model URLs an agent set, automatically:" with each provider and URL and no "by …", an `mcp` entry "Sent to the MCP server SERVER at DOMAIN" with its request and exit, and a policy entry lists its changes, its warning and, when accepted, how to change the file back; **Only reveals to programs**, `data-action="reveals"`, and **Show older**, `data-action="older"`).
433
433
  The section's `data-vault` is `locked`, `unlocked` or `loading`.
434
434
  A popup the browser blocked shows how to allow it (`[data-popup=blocked]`).
435
435
  Widened-rule notices aren't shown.
@@ -982,7 +982,8 @@ Like slicc-agent's snapshot, the dummy's vitals are the budget, Spend, Active ag
982
982
  (`guest-follower`: the same without `decide`), or (`guest-always`) one guest tool call from Seat 2 (Mara) to `read_file` with `always: true`.
983
983
  Decisions are recorded in `model.approvals.decisions`, and `model.approvals.end(id, reason)` ends a request.
984
984
 
985
- `createDummyModel({ vault: 'empty' | 'secrets' | 'policy' | 'locked' | 'request' | 'backup' | 'waiting' | 'off' })` (`?vault=` on `/ui/`, off by default; `notice` is kept as another name for `policy`) adds an invented vault: no secrets yet; five secrets (an API key, a jerk lease from pier-nuc revealed to `pier publish`, a Tide Mail sign-in, one without a rule and a removed one) with an activity log that pages back once; the same with a refused rule and a policy change in the log; locked before the first unlock, with a waiting request from docs-pass; unlocked with a `fnox set` request for `TIDE_STATION_TOKEN`; the secrets with a due backup reminder; or a vault that hasn't answered yet (`model.vault.arrive()` brings it).
985
+ `createDummyModel({ vault: 'empty' | 'secrets' | 'policy' | 'locked' | 'request' | 'backup' | 'waiting' | 'purged' | 'off' })` (`?vault=` on `/ui/`, off by default; `notice` is kept as another name for `policy`) adds an invented vault: no secrets yet; five secrets (an API key, a jerk lease from pier-nuc revealed to `pier publish`, a Tide Mail sign-in, one without a rule and a removed one) with an activity log that pages back once; the same with a refused rule and a policy change in the log; locked before the first unlock, with a waiting request from docs-pass; unlocked with a `fnox set` request for `TIDE_STATION_TOKEN`; the secrets with a due backup reminder; or a vault that hasn't answered yet (`model.vault.arrive()` brings it).
986
+ `purged` is `secrets` plus an `endpoints` audit entry for two invented model URLs.
986
987
  It implements every op with the vault's checks, and keeps only names: `model.vault.puts` records `{ name, request? }`, `cancelled` the cancelled requests, `imports` each import's kind, size and pick, and `exported` the exports.
987
988
  Import offers five invented candidates (one replaces a secret, one is a model key, one is refused with a reason that the done stage repeats; KeePass adds a `_2` duplicate), six answers ENOTSUP, page ops are recorded with `uid: null, tag: null`, and value ops while locked answer EACCES.
988
989
  `model.vault.fail(code, message)` makes the next op fail.
@@ -7020,6 +7020,20 @@ function vaultRefused() {
7020
7020
  }
7021
7021
  ];
7022
7022
  }
7023
+ function vaultPurged(now2 = Date.now()) {
7024
+ return {
7025
+ type: "endpoints",
7026
+ seq: 13,
7027
+ id: "audit-13",
7028
+ at: now2 - 30 * minute3,
7029
+ uid: null,
7030
+ tag: null,
7031
+ purged: [
7032
+ { provider: "openai", url: "https://models.harbor.example/v1" },
7033
+ { provider: "anthropic", url: "https://relay.harbor.example" }
7034
+ ]
7035
+ };
7036
+ }
7023
7037
  function vaultPolicy(now2 = Date.now()) {
7024
7038
  return {
7025
7039
  type: "policy",
@@ -7109,7 +7123,11 @@ function vaultFixtures(scenario, now2 = Date.now()) {
7109
7123
  const list = {
7110
7124
  secrets,
7111
7125
  refused: policy ? vaultRefused() : [],
7112
- audit: empty ? [] : [...policy ? [vaultPolicy(now2)] : [], ...vaultAudit(now2)],
7126
+ audit: empty ? [] : [
7127
+ ...policy ? [vaultPolicy(now2)] : [],
7128
+ ...scenario === "purged" ? [vaultPurged(now2)] : [],
7129
+ ...vaultAudit(now2)
7130
+ ],
7113
7131
  auditMore: !empty,
7114
7132
  exits: {
7115
7133
  file: "/etc/slicc/secrets-policy.toml",
@@ -7615,6 +7633,7 @@ export {
7615
7633
  vaultNotice,
7616
7634
  vaultOlder,
7617
7635
  vaultPolicy,
7636
+ vaultPurged,
7618
7637
  vaultRefused,
7619
7638
  vaultSecrets
7620
7639
  };