@celsoft/coordinator 0.0.0 → 0.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/CHANGELOG.md +11 -0
- package/README.md +107 -0
- package/THIRD_PARTY_NOTICES.md +2005 -0
- package/agents/console.md +20 -0
- package/agents/free.md +110 -0
- package/build/0-JP6XL6LB.js +17 -0
- package/build/1-A52YZWNS.js +17 -0
- package/build/2-CLH2NM6F.js +32 -0
- package/build/3-4N467IB6.js +45 -0
- package/build/4-WL5H4LUW.js +29 -0
- package/build/_layout.svelte-KPUSX7LQ.js +27 -0
- package/build/_page.svelte-22H56UR6.js +7972 -0
- package/build/_page.svelte-CVWUNRQC.js +135 -0
- package/build/_page.svelte-LTZXBHMT.js +57 -0
- package/build/_server.ts-3KVBYN6P.js +20 -0
- package/build/_server.ts-3POPKVEM.js +47 -0
- package/build/_server.ts-5735T2V5.js +31 -0
- package/build/_server.ts-5VXGNWV2.js +38 -0
- package/build/_server.ts-645KP7WP.js +42 -0
- package/build/_server.ts-A3AA24Z2.js +28 -0
- package/build/_server.ts-CITUOEM6.js +58 -0
- package/build/_server.ts-I7HMTPOA.js +25 -0
- package/build/_server.ts-M5BQ4LLX.js +30 -0
- package/build/_server.ts-OB4O27HF.js +683 -0
- package/build/_server.ts-OJT7HE7M.js +15 -0
- package/build/_server.ts-OYGWVLZM.js +12 -0
- package/build/_server.ts-T75UVMQP.js +38 -0
- package/build/_server.ts-WYZYNHUZ.js +28 -0
- package/build/_server.ts-Z26EB47B.js +486 -0
- package/build/chunk-4CIG53L5.js +33 -0
- package/build/chunk-BJTJS3XY.js +338 -0
- package/build/chunk-F2CNWJZM.js +14 -0
- package/build/chunk-HGYE3UTU.js +416 -0
- package/build/chunk-KAYW2W7H.js +1311 -0
- package/build/chunk-LFP3UPCM.js +10 -0
- package/build/chunk-M44JEFEH.js +62 -0
- package/build/chunk-MC5AGLMY.js +39 -0
- package/build/chunk-NCZ77J5E.js +19798 -0
- package/build/chunk-NVNLDPUJ.js +2122 -0
- package/build/chunk-PDCON4KS.js +494 -0
- package/build/chunk-Q4OQNY5M.js +25 -0
- package/build/chunk-QCUOR2U5.js +75 -0
- package/build/chunk-R6RYZZWA.js +46 -0
- package/build/chunk-SOJTASZC.js +51 -0
- package/build/chunk-SU26PJVX.js +410 -0
- package/build/chunk-U5BSBG4R.js +506 -0
- package/build/chunk-UEKOZGRO.js +37 -0
- package/build/chunk-W6EFUWJ2.js +9 -0
- package/build/chunk-WOPREK6Q.js +117 -0
- package/build/chunk-WWJ3F4QS.js +127 -0
- package/build/chunk-ZGZJEEE3.js +1091 -0
- package/build/client/_app/immutable/assets/0.BGa5ZNDM.css +1 -0
- package/build/client/_app/immutable/chunks/BUrrLYDt.js +2 -0
- package/build/client/_app/immutable/chunks/BgFr_EyZ.js +4 -0
- package/build/client/_app/immutable/chunks/Bjy-W4x2.js +82 -0
- package/build/client/_app/immutable/chunks/C8qZab0y.js +56 -0
- package/build/client/_app/immutable/chunks/C90fLsA5.js +4 -0
- package/build/client/_app/immutable/chunks/CRzLMJPS.js +1 -0
- package/build/client/_app/immutable/chunks/DLT1iIlz.js +2 -0
- package/build/client/_app/immutable/chunks/pIrVVOVY.js +2 -0
- package/build/client/_app/immutable/entry/app.0DERehLW.js +3 -0
- package/build/client/_app/immutable/entry/payload.DSmR2FwN.js +2 -0
- package/build/client/_app/immutable/entry/start.B7srFiqh.js +3 -0
- package/build/client/_app/immutable/nodes/0.aD9vJoxR.js +2 -0
- package/build/client/_app/immutable/nodes/1.Br4FL91i.js +2 -0
- package/build/client/_app/immutable/nodes/2.vl6OYfu3.js +8 -0
- package/build/client/_app/immutable/nodes/3.VYqJOLAF.js +2 -0
- package/build/client/_app/immutable/nodes/4.jF9UVlFN.js +2 -0
- package/build/client/_app/version.json +1 -0
- package/build/client/apple-touch-icon.png +0 -0
- package/build/client/favicon.ico +0 -0
- package/build/client/favicon.svg +48 -0
- package/build/client/icon-192.png +0 -0
- package/build/client/icon-512.png +0 -0
- package/build/client/icon-maskable-512.png +0 -0
- package/build/client/icon.svg +44 -0
- package/build/client/manifest.webmanifest +15 -0
- package/build/error.svelte-JXZDY65F.js +51 -0
- package/build/handler.js +716 -0
- package/build/hooks.server-34IMHRKC.js +43 -0
- package/build/instance-NP3FJIWW.js +2967 -0
- package/client/client.mjs +28 -0
- package/client/hooks.mjs +7 -0
- package/client/register.mjs +5 -0
- package/dist/cli.js +62826 -0
- package/dist/port.js +36691 -0
- package/package.json +20 -1
- package/skills/agents/.claude-plugin/plugin.json +5 -0
- package/skills/agents/hooks/hooks.json +1 -0
- package/skills/agents/hooks/register.ts +57 -0
- package/skills/agents/skills/bus-work/SKILL.md +66 -0
- package/skills/agents/skills/plan/SKILL.md +98 -0
- package/skills/console/.claude-plugin/plugin.json +5 -0
- package/skills/console/hooks/hooks.json +1 -0
- package/skills/console/hooks/register.ts +10 -0
- package/skills/console/skills/bus/SKILL.md +61 -0
- package/skills/default/.claude-plugin/plugin.json +5 -0
- package/skills/default/skills/git-workflow/SKILL.md +294 -0
- package/skills/default/skills/git-workflow/mise-tasks/_lib.sh +107 -0
- package/skills/default/skills/git-workflow/mise-tasks/clone +36 -0
- package/skills/default/skills/git-workflow/mise-tasks/repo-list +8 -0
- package/skills/default/skills/git-workflow/mise-tasks/unpushed +26 -0
- package/skills/default/skills/git-workflow/mise-tasks/worktree-add +60 -0
- package/skills/default/skills/github/SKILL.md +208 -0
- package/skills/default/skills/github/scripts/gh-org +196 -0
- package/skills/default/skills/plan-page/SKILL.md +300 -0
- package/skills/default/skills/plan-page/assets/index.html +854 -0
- package/skills/default/skills/plan-page/scripts/inline +46 -0
- package/skills/default/skills/plan-page/scripts/stage +26 -0
- package/skills/default/skills/secrets/SKILL.md +134 -0
- package/skills/default/skills/secrets/scripts/secrets-check +87 -0
- package/skills/default/skills/writing-style/SKILL.md +45 -0
- package/skills/extra/.claude-plugin/plugin.json +5 -0
- package/skills/extra/skills/artifacts/SKILL.md +52 -0
- package/skills/extra/skills/github-actions/SKILL.md +78 -0
- package/skills/extra/skills/github-actions/scan +32 -0
- package/skills/extra/skills/markdown-review/SKILL.md +70 -0
- package/skills/extra/skills/markdown-review/assets/index.html +201 -0
- package/skills/extra/skills/markdown-review/scripts/stage +36 -0
- package/skills/extra/skills/mise-usage/SKILL.md +155 -0
- package/skills/extra/skills/plugin-authoring/SKILL.md +317 -0
- package/skills/extra/skills/project-conventions/SKILL.md +64 -0
- package/skills/extra/skills/questions/SKILL.md +156 -0
- package/skills/extra/skills/questions/assets/index.html +376 -0
- package/skills/extra/skills/questions/scripts/stage +26 -0
- package/skills/extra/skills/serve/SKILL.md +165 -0
- package/skills/extra/skills/serve/scripts/serve +268 -0
- package/skills/extra/skills/serve/scripts/server.py +345 -0
- package/skills/extra/skills/skill-dependencies/SKILL.md +65 -0
- package/skills/extra/skills/skill-maintenance/SKILL.md +101 -0
- package/skills/extra/skills/ticketing/SKILL.md +125 -0
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// build/server/chunks/uneval.js
|
|
4
|
+
var MAX_ARRAY_LEN = 2 ** 32 - 1;
|
|
5
|
+
var MAX_ARRAY_INDEX = MAX_ARRAY_LEN - 1;
|
|
6
|
+
var escaped = {
|
|
7
|
+
"<": "\\u003C",
|
|
8
|
+
"\\": "\\\\",
|
|
9
|
+
"\b": "\\b",
|
|
10
|
+
"\f": "\\f",
|
|
11
|
+
"\n": "\\n",
|
|
12
|
+
"\r": "\\r",
|
|
13
|
+
" ": "\\t",
|
|
14
|
+
"\u2028": "\\u2028",
|
|
15
|
+
"\u2029": "\\u2029"
|
|
16
|
+
};
|
|
17
|
+
var DevalueError = class extends Error {
|
|
18
|
+
/**
|
|
19
|
+
* @param {string} message
|
|
20
|
+
* @param {string[]} keys
|
|
21
|
+
* @param {any} [value] - The value that failed to be serialized
|
|
22
|
+
* @param {any} [root] - The root value being serialized
|
|
23
|
+
*/
|
|
24
|
+
constructor(message, keys, value, root) {
|
|
25
|
+
super(message);
|
|
26
|
+
this.name = "DevalueError";
|
|
27
|
+
this.path = keys.join("");
|
|
28
|
+
this.value = value;
|
|
29
|
+
this.root = root;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
function is_primitive(thing) {
|
|
33
|
+
return thing === null || typeof thing !== "object" && typeof thing !== "function";
|
|
34
|
+
}
|
|
35
|
+
var object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames(Object.prototype).sort().join("\0");
|
|
36
|
+
function is_plain_object(thing) {
|
|
37
|
+
const proto = Object.getPrototypeOf(thing);
|
|
38
|
+
return proto === Object.prototype || proto === null || Object.getPrototypeOf(proto) === null || Object.getOwnPropertyNames(proto).sort().join("\0") === object_proto_names;
|
|
39
|
+
}
|
|
40
|
+
function get_type(thing) {
|
|
41
|
+
return Object.prototype.toString.call(thing).slice(8, -1);
|
|
42
|
+
}
|
|
43
|
+
function is_buffer(thing) {
|
|
44
|
+
return typeof Buffer !== "undefined" && Buffer.isBuffer(thing);
|
|
45
|
+
}
|
|
46
|
+
function get_escaped_char(char) {
|
|
47
|
+
switch (char) {
|
|
48
|
+
case '"':
|
|
49
|
+
return '\\"';
|
|
50
|
+
case "<":
|
|
51
|
+
return "\\u003C";
|
|
52
|
+
case "\\":
|
|
53
|
+
return "\\\\";
|
|
54
|
+
case "\n":
|
|
55
|
+
return "\\n";
|
|
56
|
+
case "\r":
|
|
57
|
+
return "\\r";
|
|
58
|
+
case " ":
|
|
59
|
+
return "\\t";
|
|
60
|
+
case "\b":
|
|
61
|
+
return "\\b";
|
|
62
|
+
case "\f":
|
|
63
|
+
return "\\f";
|
|
64
|
+
case "\u2028":
|
|
65
|
+
return "\\u2028";
|
|
66
|
+
case "\u2029":
|
|
67
|
+
return "\\u2029";
|
|
68
|
+
default:
|
|
69
|
+
return char < " " ? `\\u${char.charCodeAt(0).toString(16).padStart(4, "0")}` : "";
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function stringify_string(str) {
|
|
73
|
+
let result = "";
|
|
74
|
+
let last_pos = 0;
|
|
75
|
+
const len = str.length;
|
|
76
|
+
for (let i = 0; i < len; i += 1) {
|
|
77
|
+
const char = str[i];
|
|
78
|
+
const replacement = get_escaped_char(char);
|
|
79
|
+
if (replacement) {
|
|
80
|
+
result += str.slice(last_pos, i) + replacement;
|
|
81
|
+
last_pos = i + 1;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return `"${last_pos === 0 ? str : result + str.slice(last_pos)}"`;
|
|
85
|
+
}
|
|
86
|
+
function enumerable_symbols(object) {
|
|
87
|
+
return Object.getOwnPropertySymbols(object).filter((symbol) => Object.getOwnPropertyDescriptor(object, symbol).enumerable);
|
|
88
|
+
}
|
|
89
|
+
var is_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;
|
|
90
|
+
function stringify_key(key) {
|
|
91
|
+
return is_identifier.test(key) ? "." + key : "[" + JSON.stringify(key) + "]";
|
|
92
|
+
}
|
|
93
|
+
function is_valid_array_index(n) {
|
|
94
|
+
if (!Number.isInteger(n)) return false;
|
|
95
|
+
if (n < 0) return false;
|
|
96
|
+
if (n > MAX_ARRAY_INDEX) return false;
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
function is_valid_array_len(n) {
|
|
100
|
+
if (!Number.isInteger(n)) return false;
|
|
101
|
+
if (n < 0) return false;
|
|
102
|
+
if (n > MAX_ARRAY_LEN) return false;
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
function is_valid_array_index_string(s) {
|
|
106
|
+
if (s.length === 0) return false;
|
|
107
|
+
if (s.length > 1 && s.charCodeAt(0) === 48) return false;
|
|
108
|
+
for (let i = 0; i < s.length; i++) {
|
|
109
|
+
const c = s.charCodeAt(i);
|
|
110
|
+
if (c < 48 || c > 57) return false;
|
|
111
|
+
}
|
|
112
|
+
return is_valid_array_index(+s);
|
|
113
|
+
}
|
|
114
|
+
function array_index_cut(keys) {
|
|
115
|
+
for (var i = keys.length - 1; i >= 0; i--) if (is_valid_array_index_string(keys[i])) break;
|
|
116
|
+
return i + 1;
|
|
117
|
+
}
|
|
118
|
+
function valid_array_indices(array) {
|
|
119
|
+
const keys = Object.keys(array);
|
|
120
|
+
keys.length = array_index_cut(keys);
|
|
121
|
+
return keys;
|
|
122
|
+
}
|
|
123
|
+
var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$";
|
|
124
|
+
var MIN_STRING_LENGTH = 128;
|
|
125
|
+
var unsafe_chars = /[<\b\f\n\r\t\0\u2028\u2029]/g;
|
|
126
|
+
var reserved = /^(?:do|if|in|for|int|let|new|try|var|byte|case|char|else|enum|goto|long|this|void|with|await|break|catch|class|const|final|float|short|super|throw|while|yield|delete|double|export|import|native|return|switch|throws|typeof|boolean|default|extends|finally|package|private|abstract|continue|debugger|function|volatile|interface|protected|transient|implements|instanceof|synchronized)$/;
|
|
127
|
+
function uneval(value, replacer) {
|
|
128
|
+
const counts = /* @__PURE__ */ new Map();
|
|
129
|
+
const keys = [];
|
|
130
|
+
const custom = /* @__PURE__ */ new Map();
|
|
131
|
+
let primitives;
|
|
132
|
+
function stringify_cached_primitive(thing) {
|
|
133
|
+
if (typeof thing === "string" && thing.length >= MIN_STRING_LENGTH || typeof thing === "bigint") {
|
|
134
|
+
primitives ??= /* @__PURE__ */ new Map();
|
|
135
|
+
let literal = primitives.get(thing);
|
|
136
|
+
if (literal === void 0) {
|
|
137
|
+
literal = stringify_primitive(thing);
|
|
138
|
+
primitives.set(thing, literal);
|
|
139
|
+
}
|
|
140
|
+
return literal;
|
|
141
|
+
}
|
|
142
|
+
return stringify_primitive(thing);
|
|
143
|
+
}
|
|
144
|
+
function walk(thing) {
|
|
145
|
+
if (!is_primitive(thing)) {
|
|
146
|
+
if (counts.has(thing)) {
|
|
147
|
+
counts.set(thing, counts.get(thing) + 1);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
counts.set(thing, 1);
|
|
151
|
+
if (replacer) {
|
|
152
|
+
const str2 = replacer(thing, (value2) => uneval(value2, replacer));
|
|
153
|
+
if (typeof str2 === "string") {
|
|
154
|
+
custom.set(thing, str2);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (typeof thing === "function") throw new DevalueError(`Cannot stringify a function`, keys, thing, value);
|
|
159
|
+
switch (get_type(thing)) {
|
|
160
|
+
case "BigInt":
|
|
161
|
+
case "String":
|
|
162
|
+
walk(thing.valueOf());
|
|
163
|
+
return;
|
|
164
|
+
case "Number":
|
|
165
|
+
case "Boolean":
|
|
166
|
+
case "Date":
|
|
167
|
+
case "RegExp":
|
|
168
|
+
case "URL":
|
|
169
|
+
case "URLSearchParams":
|
|
170
|
+
return;
|
|
171
|
+
case "Array":
|
|
172
|
+
for (const i of valid_array_indices(thing)) {
|
|
173
|
+
keys.push(`[${i}]`);
|
|
174
|
+
walk(thing[i]);
|
|
175
|
+
keys.pop();
|
|
176
|
+
}
|
|
177
|
+
break;
|
|
178
|
+
case "Set":
|
|
179
|
+
Array.from(thing).forEach(walk);
|
|
180
|
+
break;
|
|
181
|
+
case "Map":
|
|
182
|
+
for (const [key, value2] of thing) {
|
|
183
|
+
keys.push(`.get(${is_primitive(key) ? stringify_cached_primitive(key) : "..."})`);
|
|
184
|
+
walk(key);
|
|
185
|
+
walk(value2);
|
|
186
|
+
keys.pop();
|
|
187
|
+
}
|
|
188
|
+
break;
|
|
189
|
+
case "Int8Array":
|
|
190
|
+
case "Uint8Array":
|
|
191
|
+
case "Uint8ClampedArray":
|
|
192
|
+
case "Int16Array":
|
|
193
|
+
case "Uint16Array":
|
|
194
|
+
case "Float16Array":
|
|
195
|
+
case "Int32Array":
|
|
196
|
+
case "Uint32Array":
|
|
197
|
+
case "Float32Array":
|
|
198
|
+
case "Float64Array":
|
|
199
|
+
case "BigInt64Array":
|
|
200
|
+
case "BigUint64Array":
|
|
201
|
+
case "DataView":
|
|
202
|
+
if (!is_buffer(thing)) walk(thing.buffer);
|
|
203
|
+
return;
|
|
204
|
+
case "ArrayBuffer":
|
|
205
|
+
return;
|
|
206
|
+
case "Temporal.Duration":
|
|
207
|
+
case "Temporal.Instant":
|
|
208
|
+
case "Temporal.PlainDate":
|
|
209
|
+
case "Temporal.PlainTime":
|
|
210
|
+
case "Temporal.PlainDateTime":
|
|
211
|
+
case "Temporal.PlainMonthDay":
|
|
212
|
+
case "Temporal.PlainYearMonth":
|
|
213
|
+
case "Temporal.ZonedDateTime":
|
|
214
|
+
return;
|
|
215
|
+
default:
|
|
216
|
+
if (!is_plain_object(thing)) throw new DevalueError(`Cannot stringify arbitrary non-POJOs`, keys, thing, value);
|
|
217
|
+
if (enumerable_symbols(thing).length > 0) throw new DevalueError(`Cannot stringify POJOs with symbolic keys`, keys, thing, value);
|
|
218
|
+
for (const key of Object.keys(thing)) {
|
|
219
|
+
if (key === "__proto__") throw new DevalueError(`Cannot stringify objects with __proto__ keys`, keys, thing, value);
|
|
220
|
+
keys.push(stringify_key(key));
|
|
221
|
+
walk(thing[key]);
|
|
222
|
+
keys.pop();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
} else if (typeof thing === "symbol") throw new DevalueError(`Cannot stringify a Symbol primitive`, keys, thing, value);
|
|
226
|
+
else if (typeof thing === "string" && thing.length >= MIN_STRING_LENGTH || typeof thing === "bigint") counts.set(thing, (counts.get(thing) || 0) + 1);
|
|
227
|
+
}
|
|
228
|
+
walk(value);
|
|
229
|
+
const names = /* @__PURE__ */ new Map();
|
|
230
|
+
const repeated = [];
|
|
231
|
+
counts.forEach((count, thing) => {
|
|
232
|
+
if (count > 1) repeated.push([thing, count]);
|
|
233
|
+
});
|
|
234
|
+
repeated.sort((a, b) => b[1] - a[1]).forEach(([thing, count]) => {
|
|
235
|
+
const name = get_name(names.size);
|
|
236
|
+
if (is_primitive(thing)) {
|
|
237
|
+
const length = stringify_cached_primitive(thing).length;
|
|
238
|
+
if (length * count <= length + (count + 1) * name.length + 25) return;
|
|
239
|
+
}
|
|
240
|
+
names.set(thing, name);
|
|
241
|
+
});
|
|
242
|
+
function stringify(thing) {
|
|
243
|
+
if (names.has(thing)) return names.get(thing);
|
|
244
|
+
if (is_primitive(thing)) return stringify_primitive(thing);
|
|
245
|
+
if (custom.has(thing)) return custom.get(thing);
|
|
246
|
+
const type = get_type(thing);
|
|
247
|
+
switch (type) {
|
|
248
|
+
case "Number":
|
|
249
|
+
case "String":
|
|
250
|
+
case "Boolean":
|
|
251
|
+
case "BigInt":
|
|
252
|
+
return `Object(${stringify(thing.valueOf())})`;
|
|
253
|
+
case "RegExp":
|
|
254
|
+
const { source, flags } = thing;
|
|
255
|
+
return flags ? `new RegExp(${stringify_string(source)},"${flags}")` : `new RegExp(${stringify_string(source)})`;
|
|
256
|
+
case "Date":
|
|
257
|
+
return `new Date(${thing.getTime()})`;
|
|
258
|
+
case "URL":
|
|
259
|
+
return `new URL(${stringify_string(thing.toString())})`;
|
|
260
|
+
case "URLSearchParams":
|
|
261
|
+
return `new URLSearchParams(${stringify_string(thing.toString())})`;
|
|
262
|
+
case "Array": {
|
|
263
|
+
let has_holes = false;
|
|
264
|
+
let result = "[";
|
|
265
|
+
for (let i = 0; i < thing.length; i += 1) {
|
|
266
|
+
if (i > 0) result += ",";
|
|
267
|
+
if (Object.hasOwn(thing, i)) result += stringify(thing[i]);
|
|
268
|
+
else if (!has_holes) {
|
|
269
|
+
const populated_keys = valid_array_indices(thing);
|
|
270
|
+
const population = populated_keys.length;
|
|
271
|
+
const d = String(thing.length).length;
|
|
272
|
+
const array = stringify_sparse_array(thing.length);
|
|
273
|
+
if (thing.length + 2 > array.length + 18 + population * (d + 2)) return `Object.assign(${array},{${populated_keys.map((k) => `${k}:${stringify(thing[k])}`).join(",")}})`;
|
|
274
|
+
has_holes = true;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
const tail = thing.length === 0 || Object.hasOwn(thing, thing.length - 1) ? "" : ",";
|
|
278
|
+
return result + tail + "]";
|
|
279
|
+
}
|
|
280
|
+
case "Set":
|
|
281
|
+
case "Map":
|
|
282
|
+
return `new ${type}([${Array.from(thing).map(stringify).join(",")}])`;
|
|
283
|
+
case "Int8Array":
|
|
284
|
+
case "Uint8Array":
|
|
285
|
+
case "Uint8ClampedArray":
|
|
286
|
+
case "Int16Array":
|
|
287
|
+
case "Uint16Array":
|
|
288
|
+
case "Float16Array":
|
|
289
|
+
case "Int32Array":
|
|
290
|
+
case "Uint32Array":
|
|
291
|
+
case "Float32Array":
|
|
292
|
+
case "Float64Array":
|
|
293
|
+
case "BigInt64Array":
|
|
294
|
+
case "BigUint64Array": {
|
|
295
|
+
if (is_buffer(thing)) thing = new Uint8Array(thing);
|
|
296
|
+
let str2 = `new ${type}`;
|
|
297
|
+
if (!names.has(thing.buffer)) str2 += `([${stringify_typed_array_elements(type, thing.buffer)}])`;
|
|
298
|
+
else str2 += `(${stringify(thing.buffer)})`;
|
|
299
|
+
if (thing.byteLength !== thing.buffer.byteLength) {
|
|
300
|
+
const start = thing.byteOffset / thing.BYTES_PER_ELEMENT;
|
|
301
|
+
const end = start + thing.length;
|
|
302
|
+
str2 += `.subarray(${start},${end})`;
|
|
303
|
+
}
|
|
304
|
+
return str2;
|
|
305
|
+
}
|
|
306
|
+
case "DataView": {
|
|
307
|
+
let str2 = `new DataView`;
|
|
308
|
+
if (!names.has(thing.buffer)) str2 += `(new Uint8Array([${new Uint8Array(thing.buffer)}]).buffer`;
|
|
309
|
+
else str2 += `(${stringify(thing.buffer)}`;
|
|
310
|
+
if (thing.byteLength !== thing.buffer.byteLength) str2 += `,${thing.byteOffset},${thing.byteLength}`;
|
|
311
|
+
return str2 + ")";
|
|
312
|
+
}
|
|
313
|
+
case "ArrayBuffer":
|
|
314
|
+
return `new Uint8Array([${new Uint8Array(thing).toString()}]).buffer`;
|
|
315
|
+
case "Temporal.Duration":
|
|
316
|
+
case "Temporal.Instant":
|
|
317
|
+
case "Temporal.PlainDate":
|
|
318
|
+
case "Temporal.PlainTime":
|
|
319
|
+
case "Temporal.PlainDateTime":
|
|
320
|
+
case "Temporal.PlainMonthDay":
|
|
321
|
+
case "Temporal.PlainYearMonth":
|
|
322
|
+
case "Temporal.ZonedDateTime":
|
|
323
|
+
return `${type}.from(${stringify_string(thing.toString())})`;
|
|
324
|
+
default:
|
|
325
|
+
const keys2 = Object.keys(thing);
|
|
326
|
+
const obj = keys2.map((key) => `${safe_key(key)}:${stringify(thing[key])}`).join(",");
|
|
327
|
+
if (Object.getPrototypeOf(thing) === null) return keys2.length > 0 ? `{${obj},__proto__:null}` : `{__proto__:null}`;
|
|
328
|
+
return `{${obj}}`;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
const str = stringify(value);
|
|
332
|
+
if (names.size) {
|
|
333
|
+
const params = [];
|
|
334
|
+
const statements = [];
|
|
335
|
+
const values = [];
|
|
336
|
+
const reconstructions = [];
|
|
337
|
+
names.forEach((name, thing) => {
|
|
338
|
+
params.push(name);
|
|
339
|
+
if (custom.has(thing)) {
|
|
340
|
+
values.push(custom.get(thing));
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
if (is_primitive(thing)) {
|
|
344
|
+
values.push(stringify_cached_primitive(thing));
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
const type = get_type(thing);
|
|
348
|
+
switch (type) {
|
|
349
|
+
case "Number":
|
|
350
|
+
case "String":
|
|
351
|
+
case "Boolean":
|
|
352
|
+
case "BigInt": {
|
|
353
|
+
const primitive = thing.valueOf();
|
|
354
|
+
if (names.has(primitive)) {
|
|
355
|
+
values.push("{}");
|
|
356
|
+
reconstructions.push(`${name}=Object(${stringify(primitive)})`);
|
|
357
|
+
} else values.push(`Object(${stringify(primitive)})`);
|
|
358
|
+
break;
|
|
359
|
+
}
|
|
360
|
+
case "RegExp":
|
|
361
|
+
const { source, flags } = thing;
|
|
362
|
+
const regexp = flags ? `new RegExp(${stringify_string(source)},"${flags}")` : `new RegExp(${stringify_string(source)})`;
|
|
363
|
+
values.push(regexp);
|
|
364
|
+
break;
|
|
365
|
+
case "Date":
|
|
366
|
+
values.push(`new Date(${thing.getTime()})`);
|
|
367
|
+
break;
|
|
368
|
+
case "URL":
|
|
369
|
+
values.push(`new URL(${stringify_string(thing.toString())})`);
|
|
370
|
+
break;
|
|
371
|
+
case "URLSearchParams":
|
|
372
|
+
values.push(`new URLSearchParams(${stringify_string(thing.toString())})`);
|
|
373
|
+
break;
|
|
374
|
+
case "Array": {
|
|
375
|
+
const populated_keys = valid_array_indices(thing);
|
|
376
|
+
values.push(thing.length > 32 + 2 * populated_keys.length ? stringify_sparse_array(thing.length) : `Array(${thing.length})`);
|
|
377
|
+
for (const i of populated_keys) statements.push(`${name}[${i}]=${stringify(thing[i])}`);
|
|
378
|
+
break;
|
|
379
|
+
}
|
|
380
|
+
case "Set": {
|
|
381
|
+
values.push(`new Set`);
|
|
382
|
+
const adds = Array.from(thing).map((v) => `.add(${stringify(v)})`);
|
|
383
|
+
if (adds.length > 0) statements.push(name + adds.join(""));
|
|
384
|
+
break;
|
|
385
|
+
}
|
|
386
|
+
case "Map": {
|
|
387
|
+
values.push(`new Map`);
|
|
388
|
+
const sets = Array.from(thing).map(([k, v]) => `.set(${stringify(k)}, ${stringify(v)})`);
|
|
389
|
+
if (sets.length > 0) statements.push(name + sets.join(""));
|
|
390
|
+
break;
|
|
391
|
+
}
|
|
392
|
+
case "Int8Array":
|
|
393
|
+
case "Uint8Array":
|
|
394
|
+
case "Uint8ClampedArray":
|
|
395
|
+
case "Int16Array":
|
|
396
|
+
case "Uint16Array":
|
|
397
|
+
case "Float16Array":
|
|
398
|
+
case "Int32Array":
|
|
399
|
+
case "Uint32Array":
|
|
400
|
+
case "Float32Array":
|
|
401
|
+
case "Float64Array":
|
|
402
|
+
case "BigInt64Array":
|
|
403
|
+
case "BigUint64Array": {
|
|
404
|
+
if (is_buffer(thing)) thing = new Uint8Array(thing);
|
|
405
|
+
let str2 = `new ${type}`;
|
|
406
|
+
if (!names.has(thing.buffer)) str2 += `([${stringify_typed_array_elements(type, thing.buffer)}])`;
|
|
407
|
+
else str2 += `(${stringify(thing.buffer)})`;
|
|
408
|
+
if (thing.byteLength !== thing.buffer.byteLength) {
|
|
409
|
+
const start = thing.byteOffset / thing.BYTES_PER_ELEMENT;
|
|
410
|
+
const end = start + thing.length;
|
|
411
|
+
str2 += `.subarray(${start},${end})`;
|
|
412
|
+
}
|
|
413
|
+
values.push(`{}`);
|
|
414
|
+
reconstructions.push(`${name}=${str2}`);
|
|
415
|
+
break;
|
|
416
|
+
}
|
|
417
|
+
case "DataView": {
|
|
418
|
+
let str2 = `new DataView`;
|
|
419
|
+
if (!names.has(thing.buffer)) str2 += `(new Uint8Array([${new Uint8Array(thing.buffer)}]).buffer`;
|
|
420
|
+
else str2 += `(${stringify(thing.buffer)}`;
|
|
421
|
+
if (thing.byteLength !== thing.buffer.byteLength) str2 += `,${thing.byteOffset},${thing.byteLength}`;
|
|
422
|
+
str2 += ")";
|
|
423
|
+
values.push(`{}`);
|
|
424
|
+
reconstructions.push(`${name}=${str2}`);
|
|
425
|
+
break;
|
|
426
|
+
}
|
|
427
|
+
case "ArrayBuffer":
|
|
428
|
+
values.push(`new Uint8Array([${new Uint8Array(thing)}]).buffer`);
|
|
429
|
+
break;
|
|
430
|
+
case "Temporal.Duration":
|
|
431
|
+
case "Temporal.Instant":
|
|
432
|
+
case "Temporal.PlainDate":
|
|
433
|
+
case "Temporal.PlainTime":
|
|
434
|
+
case "Temporal.PlainDateTime":
|
|
435
|
+
case "Temporal.PlainMonthDay":
|
|
436
|
+
case "Temporal.PlainYearMonth":
|
|
437
|
+
case "Temporal.ZonedDateTime":
|
|
438
|
+
values.push(`${type}.from(${stringify_string(thing.toString())})`);
|
|
439
|
+
break;
|
|
440
|
+
default:
|
|
441
|
+
values.push(Object.getPrototypeOf(thing) === null ? "Object.create(null)" : "{}");
|
|
442
|
+
Object.keys(thing).forEach((key) => {
|
|
443
|
+
statements.push(`${name}${safe_prop(key)}=${stringify(thing[key])}`);
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
statements.push(`return ${str}`);
|
|
448
|
+
const body = [...reconstructions, ...statements].join(";");
|
|
449
|
+
if (params.length > 65534) return `(function(){var[${params.join(",")}]=arguments[0];${body}}([${values.join(",")}]))`;
|
|
450
|
+
return `(function(${params.join(",")}){${body}}(${values.join(",")}))`;
|
|
451
|
+
} else return str;
|
|
452
|
+
}
|
|
453
|
+
function stringify_sparse_array(length) {
|
|
454
|
+
return `(function(a){a[${MAX_ARRAY_INDEX}]=0;delete a[${MAX_ARRAY_INDEX}];a.length=${length};return a}([]))`;
|
|
455
|
+
}
|
|
456
|
+
function stringify_typed_array_elements(type, buffer) {
|
|
457
|
+
const array = new globalThis[type](buffer);
|
|
458
|
+
if (type === "BigInt64Array" || type === "BigUint64Array") return Array.from(array, (element) => `${element}n`).join(",");
|
|
459
|
+
if (array instanceof Float32Array || array instanceof Float64Array || typeof Float16Array !== "undefined" && array instanceof Float16Array) return Array.from(array, (element) => Object.is(element, -0) ? "-0" : `${element}`).join(",");
|
|
460
|
+
return array.toString();
|
|
461
|
+
}
|
|
462
|
+
function get_name(num) {
|
|
463
|
+
let name = "";
|
|
464
|
+
do {
|
|
465
|
+
name = chars[num % 54] + name;
|
|
466
|
+
num = ~~(num / 54) - 1;
|
|
467
|
+
} while (num >= 0);
|
|
468
|
+
return reserved.test(name) ? `${name}0` : name;
|
|
469
|
+
}
|
|
470
|
+
function escape_unsafe_char(c) {
|
|
471
|
+
return escaped[c] || c;
|
|
472
|
+
}
|
|
473
|
+
function escape_unsafe_chars(str) {
|
|
474
|
+
return str.replace(unsafe_chars, escape_unsafe_char);
|
|
475
|
+
}
|
|
476
|
+
function safe_key(key) {
|
|
477
|
+
return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key) ? key : escape_unsafe_chars(JSON.stringify(key));
|
|
478
|
+
}
|
|
479
|
+
function safe_prop(key) {
|
|
480
|
+
return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key) ? `.${key}` : `[${escape_unsafe_chars(JSON.stringify(key))}]`;
|
|
481
|
+
}
|
|
482
|
+
function stringify_primitive(thing) {
|
|
483
|
+
const type = typeof thing;
|
|
484
|
+
if (type === "string") return stringify_string(thing);
|
|
485
|
+
if (thing === void 0) return "void 0";
|
|
486
|
+
if (thing === 0 && 1 / thing < 0) return "-0";
|
|
487
|
+
const str = String(thing);
|
|
488
|
+
if (type === "number") return str.replace(/^(-)?0\./, "$1.");
|
|
489
|
+
if (type === "bigint") return thing + "n";
|
|
490
|
+
return str;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
export {
|
|
494
|
+
MAX_ARRAY_INDEX,
|
|
495
|
+
DevalueError,
|
|
496
|
+
is_plain_object,
|
|
497
|
+
get_type,
|
|
498
|
+
is_buffer,
|
|
499
|
+
stringify_string,
|
|
500
|
+
enumerable_symbols,
|
|
501
|
+
stringify_key,
|
|
502
|
+
is_valid_array_index,
|
|
503
|
+
is_valid_array_len,
|
|
504
|
+
valid_array_indices,
|
|
505
|
+
uneval
|
|
506
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
SETTINGS
|
|
4
|
+
} from "./chunk-WOPREK6Q.js";
|
|
5
|
+
|
|
6
|
+
// build/server/chunks/settings2.js
|
|
7
|
+
import { existsSync, statSync } from "node:fs";
|
|
8
|
+
import { join } from "node:path";
|
|
9
|
+
import { homedir } from "node:os";
|
|
10
|
+
function expandHome(path) {
|
|
11
|
+
return path === "~" || path.startsWith("~/") ? join(homedir(), path.slice(1)) : path;
|
|
12
|
+
}
|
|
13
|
+
function hasRepos(value) {
|
|
14
|
+
const repos = join(expandHome(value), "repos");
|
|
15
|
+
return existsSync(repos) && statSync(repos).isDirectory();
|
|
16
|
+
}
|
|
17
|
+
var FIELDS = {
|
|
18
|
+
...SETTINGS,
|
|
19
|
+
development_root: {
|
|
20
|
+
...SETTINGS.development_root,
|
|
21
|
+
schema: SETTINGS.development_root.schema.refine((v) => hasRepos(String(v)), { error: (i) => `no repos folder in ${String(i.input)}` })
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
function describe(settings) {
|
|
25
|
+
return Object.entries(FIELDS).map(([name, f]) => ({
|
|
26
|
+
name,
|
|
27
|
+
label: f.label,
|
|
28
|
+
description: f.description,
|
|
29
|
+
type: f.type,
|
|
30
|
+
default: f.default,
|
|
31
|
+
value: settings[name]
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export {
|
|
36
|
+
describe
|
|
37
|
+
};
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
external_exports
|
|
4
|
+
} from "./chunk-NCZ77J5E.js";
|
|
5
|
+
|
|
6
|
+
// build/server/chunks/settings.js
|
|
7
|
+
var CATEGORIES = {
|
|
8
|
+
agents: {
|
|
9
|
+
title: "Agents",
|
|
10
|
+
description: "Where agents start and how you reach them. Each change is saved on the bus and applies at once.",
|
|
11
|
+
icon: "users"
|
|
12
|
+
},
|
|
13
|
+
throttle: {
|
|
14
|
+
title: "Throttle",
|
|
15
|
+
description: "When memory, disk, or load run short, new work waits and agents are closed or paused.",
|
|
16
|
+
icon: "activity"
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
function whole(min, max) {
|
|
20
|
+
return external_exports.number({ error: "A whole number." }).int("A whole number.").min(min, `At least ${min}.`).max(max, `At most ${max}.`);
|
|
21
|
+
}
|
|
22
|
+
var SETTINGS = {
|
|
23
|
+
development_root: {
|
|
24
|
+
label: "Development folder",
|
|
25
|
+
description: "Agents start in the git clones under its repos folder, one per org/repo, as the git-workflow skill lays them out.",
|
|
26
|
+
category: "agents",
|
|
27
|
+
type: "string",
|
|
28
|
+
default: "~/Development",
|
|
29
|
+
schema: external_exports.string().min(1, "Name a folder.")
|
|
30
|
+
},
|
|
31
|
+
user_name: {
|
|
32
|
+
label: "Your name",
|
|
33
|
+
description: "What agents call you. Left empty, it is your account's full name. Your address on the bus is always user.",
|
|
34
|
+
category: "agents",
|
|
35
|
+
type: "string",
|
|
36
|
+
default: "",
|
|
37
|
+
schema: external_exports.string().max(80, "At most 80 characters.")
|
|
38
|
+
},
|
|
39
|
+
agent_plugins: {
|
|
40
|
+
label: "Agent plugins",
|
|
41
|
+
description: "Plugin folders every agent on a slot loads whole beside the coordinator's own, separated by commas: your Attached Skills. A folder may start with ~ or $COORDINATOR_ROOT. Each agent loads them when it starts or is resumed.",
|
|
42
|
+
category: "agents",
|
|
43
|
+
type: "string",
|
|
44
|
+
default: "",
|
|
45
|
+
schema: external_exports.string()
|
|
46
|
+
},
|
|
47
|
+
console: {
|
|
48
|
+
label: "Console",
|
|
49
|
+
description: "Keep your console running: a Claude Session in a Herdr workspace of its own that can do through the bus only what this page can, and nothing else. Turn on Remote Control for it in Herdr to reach it from the Claude app.",
|
|
50
|
+
category: "agents",
|
|
51
|
+
type: "boolean",
|
|
52
|
+
default: true,
|
|
53
|
+
schema: external_exports.boolean()
|
|
54
|
+
},
|
|
55
|
+
wake_budget: {
|
|
56
|
+
label: "Wake budget",
|
|
57
|
+
description: "How many times in an hour the bus may wake one agent. Past it, the bus stops waking that agent until you message it, and tells you.",
|
|
58
|
+
category: "agents",
|
|
59
|
+
unit: "per hour",
|
|
60
|
+
type: "integer",
|
|
61
|
+
default: 12,
|
|
62
|
+
schema: whole(1, 120)
|
|
63
|
+
},
|
|
64
|
+
idle_warning_minutes: {
|
|
65
|
+
label: "Idle warning",
|
|
66
|
+
description: "An agent at rest this long with nothing asked, nothing unread, and not kept open is flagged gone quiet on this page; nothing is typed into it.",
|
|
67
|
+
category: "agents",
|
|
68
|
+
unit: "minutes",
|
|
69
|
+
type: "integer",
|
|
70
|
+
default: 10,
|
|
71
|
+
schema: whole(1, 1440)
|
|
72
|
+
},
|
|
73
|
+
throttle: {
|
|
74
|
+
label: "Throttle",
|
|
75
|
+
description: "When memory runs short, hold new work and close idle agents; when it runs out, pause working agents and bring them back once it recovers.",
|
|
76
|
+
category: "throttle",
|
|
77
|
+
type: "boolean",
|
|
78
|
+
default: true,
|
|
79
|
+
schema: external_exports.boolean()
|
|
80
|
+
},
|
|
81
|
+
soft_available_percent: percent("Soft limit: available memory", "Memory is short at or below this share of RAM available.", 15, "% of RAM"),
|
|
82
|
+
hard_available_percent: percent("Hard limit: available memory", "Memory is nearly out at or below this share of RAM available.", 5, "% of RAM"),
|
|
83
|
+
soft_swap_percent: percent("Soft limit: swap", "Memory is short at or above this much swap in use.", 50, "% of RAM"),
|
|
84
|
+
hard_swap_percent: percent("Hard limit: swap", "Memory is nearly out at or above this much swap in use.", 75, "% of RAM"),
|
|
85
|
+
low_disk_percent: percent("Low disk", "New work is held at or below this share of the disk free.", 10, "% free"),
|
|
86
|
+
high_load_per_core: {
|
|
87
|
+
label: "High load",
|
|
88
|
+
description: "New work is held while the 1-minute load is at or above this many times the cores.",
|
|
89
|
+
category: "throttle",
|
|
90
|
+
unit: "per core",
|
|
91
|
+
type: "integer",
|
|
92
|
+
default: 2,
|
|
93
|
+
schema: whole(1, 100)
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
function percent(label, description, value, unit) {
|
|
97
|
+
return {
|
|
98
|
+
label,
|
|
99
|
+
description,
|
|
100
|
+
category: "throttle",
|
|
101
|
+
unit,
|
|
102
|
+
type: "integer",
|
|
103
|
+
default: value,
|
|
104
|
+
schema: whole(0, 100)
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
var SETTINGS_SCHEMA = external_exports.object(Object.fromEntries(Object.entries(CATEGORIES).map(([id, c]) => [id, external_exports.object(Object.fromEntries(Object.entries(SETTINGS).filter(([, f]) => f.category === id).map(([name, f]) => [name, f.schema.default(f.default).meta({
|
|
108
|
+
title: f.label,
|
|
109
|
+
description: f.description,
|
|
110
|
+
unit: f.unit,
|
|
111
|
+
mono: f.type === "string"
|
|
112
|
+
})]))).meta(c)])));
|
|
113
|
+
|
|
114
|
+
export {
|
|
115
|
+
SETTINGS,
|
|
116
|
+
SETTINGS_SCHEMA
|
|
117
|
+
};
|