@ai-ecoverse/slicc-spectrum 1.65.1 → 1.66.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 +3 -2
- package/dist/{chunk-ZS4XIKFR.js → chunk-2PKRU2CL.js} +2 -2
- package/dist/{chunk-ZS4XIKFR.js.map → chunk-2PKRU2CL.js.map} +2 -2
- package/dist/{chunk-XI74SELH.js → chunk-ZGJM5WUN.js} +4 -1
- package/dist/{chunk-XI74SELH.js.map → chunk-ZGJM5WUN.js.map} +2 -2
- package/dist/slicc-dummy.js +51 -11
- package/dist/slicc-dummy.js.map +3 -3
- package/dist/slicc-kernel-model.js +1 -1
- package/dist/slicc-terminal.js +1 -1
- package/dist/slicc-ui.js +403 -64
- package/dist/slicc-ui.js.map +4 -4
- package/dist/types/app/records.d.ts +5 -0
- package/dist/types/app/secrets.d.ts +4 -1
- package/dist/types/app/settings.d.ts +17 -4
- package/dist/types/app/terminals.d.ts +10 -2
- package/dist/types/dummy/index.d.ts +4 -2
- package/dist/types/dummy/vault.d.ts +5 -3
- package/dist/types/model/types.d.ts +17 -2
- package/dist/types/slicc-terminal.d.ts +1 -0
- package/package.json +3 -3
package/dist/slicc-dummy.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
DummySettings,
|
|
8
8
|
clock
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-2PKRU2CL.js";
|
|
10
10
|
import {
|
|
11
11
|
Emitter
|
|
12
12
|
} from "./chunk-T5NHW4KC.js";
|
|
@@ -5592,6 +5592,24 @@ function vaultSecrets(now2 = Date.now()) {
|
|
|
5592
5592
|
}
|
|
5593
5593
|
];
|
|
5594
5594
|
}
|
|
5595
|
+
function accountRecords(now2 = Date.now()) {
|
|
5596
|
+
return [
|
|
5597
|
+
{
|
|
5598
|
+
name: "MCP_DOCS_TOKEN",
|
|
5599
|
+
kind: "mcp",
|
|
5600
|
+
placeholder: "fnox_proxy_docs0006",
|
|
5601
|
+
state: "active",
|
|
5602
|
+
source: "settings",
|
|
5603
|
+
sourceDevice: null,
|
|
5604
|
+
server: "docs",
|
|
5605
|
+
domains: ["docs.example"],
|
|
5606
|
+
rules: [{ domain: "docs.example", header: "Authorization", methods: [], paths: [] }],
|
|
5607
|
+
exec: false,
|
|
5608
|
+
createdAt: now2 - 6 * day2,
|
|
5609
|
+
usedAt: now2 - 20 * minute2
|
|
5610
|
+
}
|
|
5611
|
+
];
|
|
5612
|
+
}
|
|
5595
5613
|
function vaultAudit(now2 = Date.now()) {
|
|
5596
5614
|
const who = { uid: 1e3, tag: "cone" };
|
|
5597
5615
|
return [
|
|
@@ -5944,11 +5962,11 @@ var DummyVault = class extends Emitter {
|
|
|
5944
5962
|
imports = [];
|
|
5945
5963
|
exported = 0;
|
|
5946
5964
|
acknowledged = [];
|
|
5947
|
-
constructor(scenario, time) {
|
|
5965
|
+
constructor(scenario, time, records = []) {
|
|
5948
5966
|
super();
|
|
5949
5967
|
const { status, list } = vaultFixtures(scenario);
|
|
5950
5968
|
this.#status = status;
|
|
5951
|
-
this.#list = list;
|
|
5969
|
+
this.#list = { ...list, secrets: [...list.secrets, ...records] };
|
|
5952
5970
|
this.#time = time;
|
|
5953
5971
|
this.#available = scenario === "waiting" ? "waiting" : "ready";
|
|
5954
5972
|
}
|
|
@@ -6014,18 +6032,23 @@ var DummyVault = class extends Emitter {
|
|
|
6014
6032
|
#save(secret, rotated) {
|
|
6015
6033
|
this.#list = {
|
|
6016
6034
|
...this.#list,
|
|
6017
|
-
secrets: [
|
|
6035
|
+
secrets: [
|
|
6036
|
+
...this.#list.secrets.filter(
|
|
6037
|
+
(item) => item.name !== secret.name || item.kind !== secret.kind
|
|
6038
|
+
),
|
|
6039
|
+
secret
|
|
6040
|
+
]
|
|
6018
6041
|
};
|
|
6019
6042
|
this.#log(secret.name, { type: "seal", source: secret.source, rotated });
|
|
6020
6043
|
this.emit("list", this.#list);
|
|
6021
6044
|
return { name: secret.name, placeholder: secret.placeholder, state: secret.state };
|
|
6022
6045
|
}
|
|
6023
|
-
#seal(name2, source, kind = "secret") {
|
|
6046
|
+
#seal(name2, source, kind = "secret", binding = {}) {
|
|
6024
6047
|
const old = this.#list.secrets.find((item) => item.name === name2 && item.kind === kind);
|
|
6025
6048
|
if (old) {
|
|
6026
6049
|
const state = old.state === "removed" ? old.rules.length ? "active" : "inert" : old.state;
|
|
6027
6050
|
const { removedAt: _, ...kept } = old;
|
|
6028
|
-
return this.#save({ ...kept, state, source }, true);
|
|
6051
|
+
return this.#save({ ...kept, ...binding, state, source }, true);
|
|
6029
6052
|
}
|
|
6030
6053
|
this.#serial += 1;
|
|
6031
6054
|
return this.#save(
|
|
@@ -6036,6 +6059,7 @@ var DummyVault = class extends Emitter {
|
|
|
6036
6059
|
state: "inert",
|
|
6037
6060
|
source,
|
|
6038
6061
|
sourceDevice: null,
|
|
6062
|
+
...binding,
|
|
6039
6063
|
domains: [],
|
|
6040
6064
|
rules: [],
|
|
6041
6065
|
exec: false,
|
|
@@ -6044,14 +6068,22 @@ var DummyVault = class extends Emitter {
|
|
|
6044
6068
|
false
|
|
6045
6069
|
);
|
|
6046
6070
|
}
|
|
6047
|
-
async put(name2, value, request) {
|
|
6071
|
+
async put(name2, value, request, options) {
|
|
6048
6072
|
await this.#time.sleep(5);
|
|
6049
6073
|
this.#unlocked();
|
|
6050
6074
|
const problem = nameProblem(name2) ?? valueProblem(value);
|
|
6051
6075
|
if (problem) throw vaultFailure("EINVAL", problem);
|
|
6052
6076
|
if (request !== void 0) this.#take(request, name2);
|
|
6053
|
-
this.puts.push({
|
|
6054
|
-
|
|
6077
|
+
this.puts.push({
|
|
6078
|
+
name: name2,
|
|
6079
|
+
...request === void 0 ? {} : { request },
|
|
6080
|
+
...options ? { options: { ...options } } : {}
|
|
6081
|
+
});
|
|
6082
|
+
const { kind = "secret", provider, server } = options ?? {};
|
|
6083
|
+
return this.#seal(name2, "settings", kind, {
|
|
6084
|
+
...provider === void 0 ? {} : { provider },
|
|
6085
|
+
...server === void 0 ? {} : { server }
|
|
6086
|
+
});
|
|
6055
6087
|
}
|
|
6056
6088
|
#take(request, name2) {
|
|
6057
6089
|
const found = this.#status.waiting.find((item) => item.id === request);
|
|
@@ -6160,6 +6192,11 @@ var DummyVault = class extends Emitter {
|
|
|
6160
6192
|
};
|
|
6161
6193
|
|
|
6162
6194
|
// src/dummy/index.ts
|
|
6195
|
+
function vaultAccounts(accounts2) {
|
|
6196
|
+
return accounts2.map(
|
|
6197
|
+
(account) => account.auth === "api-key" || account.id === "github" ? { ...account, store: "vault" } : account
|
|
6198
|
+
);
|
|
6199
|
+
}
|
|
6163
6200
|
function createDummyModel({
|
|
6164
6201
|
delay = 30,
|
|
6165
6202
|
storage = null,
|
|
@@ -6176,6 +6213,7 @@ function createDummyModel({
|
|
|
6176
6213
|
approvals = "off",
|
|
6177
6214
|
follow = "off",
|
|
6178
6215
|
vault = "off",
|
|
6216
|
+
accounts: accounts2 = "settings",
|
|
6179
6217
|
hold = "off",
|
|
6180
6218
|
browser: scenario = "idle",
|
|
6181
6219
|
sprinkles: sprinkles2 = "builtin",
|
|
@@ -6212,7 +6250,7 @@ function createDummyModel({
|
|
|
6212
6250
|
settings: new DummySettings(
|
|
6213
6251
|
defaults,
|
|
6214
6252
|
models,
|
|
6215
|
-
accounts,
|
|
6253
|
+
accounts2 === "vault" ? vaultAccounts(accounts) : accounts,
|
|
6216
6254
|
storage,
|
|
6217
6255
|
time
|
|
6218
6256
|
),
|
|
@@ -6237,7 +6275,9 @@ function createDummyModel({
|
|
|
6237
6275
|
...tabs2 === "off" ? {} : { tabs: new DummyTabs(tabs2, time) },
|
|
6238
6276
|
...approvals === "off" ? {} : { approvals: new DummyApprovals(approvals, time) },
|
|
6239
6277
|
...follow === "off" ? {} : { follow: new DummyFollow(follow, time) },
|
|
6240
|
-
...vault === "off" ? {} : {
|
|
6278
|
+
...vault === "off" ? {} : {
|
|
6279
|
+
vault: new DummyVault(vault, time, accounts2 === "vault" ? accountRecords() : [])
|
|
6280
|
+
}
|
|
6241
6281
|
};
|
|
6242
6282
|
base.vault?.on("status", (status) => {
|
|
6243
6283
|
if (!status.locked && agent.hold()?.reason === "locked") agent.setHold(null);
|