default.config === config defaults :)

stable
Valerie 2021-12-22 08:12:12 -05:00
parent a0a6315e93
commit 5ca6f94e04
7 changed files with 101 additions and 50 deletions

42
.system
View File

@ -10,10 +10,50 @@
"600F5B3828BC4D78BCBA375596F6898B": {
"config": {},
"module": "sshd"
},
"51E27DEEE43B4731A700D1E01E4CD27A": {
"config": {
"variance": 3.3541307827308686,
"base": 8.708580891798924
},
"module": "n-arm-bandit/bandit"
},
"05EA8268E28F4C9FAC7F8E5BE0ABAB5F": {
"config": {
"variance": 3.1710920949168986,
"base": 1.8243272668986266
},
"module": "n-arm-bandit/bandit"
},
"0F0B6AEB69754319A7E480E3989F7E54": {
"config": {
"variance": 3.4606530100151267,
"base": 7.154055540463526
},
"module": "n-arm-bandit/bandit"
},
"34064741B6324D9BBCEE0A1364F21220": {
"config": {
"variance": 6.020933937139774,
"base": 3.6188560055328733
},
"module": "n-arm-bandit/bandit"
},
"18461538E5A1487EBC9F54040295440A": {
"config": {
"variance": 5.750266712617811,
"base": 7.786595862237511
},
"module": "n-arm-bandit/bandit"
}
},
"aliases": {
"systemd": "B7FFCD6C11974FC7A74509B6683D7420",
"sshd": "600F5B3828BC4D78BCBA375596F6898B"
"sshd": "600F5B3828BC4D78BCBA375596F6898B",
"SLOT1": "51E27DEEE43B4731A700D1E01E4CD27A",
"SLOT2": "05EA8268E28F4C9FAC7F8E5BE0ABAB5F",
"SLOT3": "0F0B6AEB69754319A7E480E3989F7E54",
"SLOT4": "34064741B6324D9BBCEE0A1364F21220",
"SLOT5": "18461538E5A1487EBC9F54040295440A"
}
}

View File

@ -9,10 +9,12 @@
"tsc": "tsc"
},
"dependencies": {
"@types/lodash": "^4.14.178",
"@types/md5": "^2.3.1",
"@types/node": "^16.11.12",
"@types/uuid": "^8.3.3",
"chalk": "^5.0.0",
"lodash": "^4.17.21",
"md5": "^2.3.0",
"serverline": "^1.5.0",
"ssh2": "^1.5.0",

View File

@ -1,13 +1,14 @@
import { system, autoColorString } from '@kernel:base';
import chalk from 'chalk';
import * as uuid from 'uuid';
import { merge } from 'lodash';
export default async function create(module: string, name: string, id: string) {
if(!module || typeof module !== 'string' || module.trim() === '') {
throw new Error('INVALID_MODULE_NAME');
}
if(name && (typeof name !== 'string' || name.trim() === '')) {
throw new Error('IVALID_MODULE_ALIAS');
throw new Error('INVALID_MODULE_ALIAS');
}
// undefined means no paramter given. this is treated as a default alias
// otherise, null should be to create anonymous instances. only addressable
@ -21,11 +22,24 @@ export default async function create(module: string, name: string, id: string) {
}
}
const imported = (await import('@builtin:' + module));
const functions = 'default' in imported ? imported.default : imported;
const { default: moduleOptions, ...functions} = imported;
const config: object = (function () {
if(moduleOptions && 'config' in moduleOptions) {
if(typeof moduleOptions.config === 'function') {
return moduleOptions.config();
} else {
return moduleOptions.config;
}
} else {
return {};
}
})();
id ??= uuid.v4().replace(/-/g, '').toUpperCase();
system.instances.set(id, {
privateScope: {
config: {},
config,
ram: {}
},
module: module,

View File

@ -0,0 +1,6 @@
export function run(tries: string) {
}

View File

@ -0,0 +1,20 @@
export default {
config: () => {
return {
variance: Math.random() * 10,
base: Math.random() * 10
};
}
}
function randomNormal(width: number = 1, offset: number = 0) {
var u = 0, v = 0;
while(u === 0) u = Math.random(); //Converting [0,1) to (0,1)
while(v === 0) v = Math.random();
const base = Math.sqrt( -2.0 * Math.log( u ) ) * Math.cos( 2.0 * Math.PI * v );
}
export function pull() {
console.log(randomNormal(this.config.variance, this.config.base));
}

5
vsh/bandits.vsh 100644
View File

@ -0,0 +1,5 @@
create n-arm-bandit/bandit SLOT1
create n-arm-bandit/bandit SLOT2
create n-arm-bandit/bandit SLOT3
create n-arm-bandit/bandit SLOT4
create n-arm-bandit/bandit SLOT5

View File

@ -39,6 +39,11 @@
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
"@types/lodash@^4.14.178":
version "4.14.178"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.178.tgz#341f6d2247db528d4a13ddbb374bcdc80406f4f8"
integrity sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==
"@types/md5@^2.3.1":
version "2.3.1"
resolved "https://registry.yarnpkg.com/@types/md5/-/md5-2.3.1.tgz#010bcf3bb50a2cff3a574cb1c0b4051a9c67d6bc"
@ -85,26 +90,6 @@ bcrypt-pbkdf@^1.0.2:
dependencies:
tweetnacl "^0.14.3"
binary@*:
version "0.3.0"
resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79"
integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=
dependencies:
buffers "~0.1.1"
chainsaw "~0.1.0"
buffers@*, buffers@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s=
chainsaw@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98"
integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=
dependencies:
traverse ">=0.3.0 <0.4"
chalk@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.0.tgz#bd96c6bb8e02b96e08c0c3ee2a9d90e050c7b832"
@ -132,13 +117,6 @@ crypt@0.0.2:
resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
debug@*:
version "4.3.3"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
dependencies:
ms "2.1.2"
diff@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
@ -156,6 +134,11 @@ json5@^1.0.1:
dependencies:
minimist "^1.2.0"
lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
make-error@^1.1.1:
version "1.3.6"
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
@ -175,11 +158,6 @@ minimist@^1.2.0:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
ms@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
nan@^2.14.1, nan@^2.15.0:
version "2.15.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
@ -211,24 +189,10 @@ strip-bom@^3.0.0:
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
telnet@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/telnet/-/telnet-0.0.1.tgz#db164465c551a99ee785ea7fbba5a67cfc26c4af"
integrity sha1-2xZEZcVRqZ7nhep/u6WmfPwmxK8=
dependencies:
binary "*"
buffers "*"
debug "*"
"telnet@git+https://github.com/TooTallNate/node-telnet.git#780340617e1f223de384cdfcb7cecf0a1a6f1159":
version "0.0.1"
resolved "git+https://github.com/TooTallNate/node-telnet.git#780340617e1f223de384cdfcb7cecf0a1a6f1159"
"traverse@>=0.3.0 <0.4":
version "0.3.9"
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=
ts-node@^10.4.0:
version "10.4.0"
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.4.0.tgz#680f88945885f4e6cf450e7f0d6223dd404895f7"