@genkaku/protocol 0.1.13 → 0.1.14
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/dist/bridge.d.ts +6 -0
- package/dist/bridge.d.ts.map +1 -1
- package/dist/bridge.js +47 -0
- package/package.json +1 -1
package/dist/bridge.d.ts
CHANGED
|
@@ -32,6 +32,12 @@ export type BridgeOptions = {
|
|
|
32
32
|
status?: (base: BridgeStatus) => Record<string, unknown> | Promise<Record<string, unknown>>;
|
|
33
33
|
/** optional live mode switch from POST /genkaku/mode */
|
|
34
34
|
onMode?: (mode: RoleMode) => void | Promise<void>;
|
|
35
|
+
/** Persist the panel's settings edits (workers / payments) into the plugin's
|
|
36
|
+
* settings document. The runtime applies them by restarting the bridge. */
|
|
37
|
+
onSettings?: (patch: {
|
|
38
|
+
workers?: string[];
|
|
39
|
+
settle?: boolean;
|
|
40
|
+
}) => void | Promise<void>;
|
|
35
41
|
/** P4.9h: derived credit per worker wallet (escrow events, not self-report).
|
|
36
42
|
* Absent = offers keep whatever the worker claimed. */
|
|
37
43
|
credit?: (wallets: string[]) => Map<string, {
|
package/dist/bridge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAc/B,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAgB,MAAM,EAAc,MAAM,YAAY,CAAA;AAI7D,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;KAAE,CAAC,CAAA;IACjE,GAAG,EAAE,MAAM,CAAA;IACX,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAA;CAChD,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9B,OAAO,EAAE,MAAM,GAAG,CAAA;IAClB,yEAAyE;IACzE,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,wFAAwF;IACxF,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACnC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3F,wDAAwD;IACxD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD;4DACwD;IACxD,MAAM,CAAC,EAAE,CACP,OAAO,EAAE,MAAM,EAAE,KACd,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;CAClH,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B,CAAA;AAuJD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAc/B,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAgB,MAAM,EAAc,MAAM,YAAY,CAAA;AAI7D,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;KAAE,CAAC,CAAA;IACjE,GAAG,EAAE,MAAM,CAAA;IACX,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAA;CAChD,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9B,OAAO,EAAE,MAAM,GAAG,CAAA;IAClB,yEAAyE;IACzE,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,wFAAwF;IACxF,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACnC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3F,wDAAwD;IACxD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD;gFAC4E;IAC5E,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtF;4DACwD;IACxD,MAAM,CAAC,EAAE,CACP,OAAO,EAAE,MAAM,EAAE,KACd,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;CAClH,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B,CAAA;AAuJD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAkjBlF"}
|
package/dist/bridge.js
CHANGED
|
@@ -564,6 +564,53 @@ export async function startOpenAiBridge(opts) {
|
|
|
564
564
|
json(res, 200, { ok: true });
|
|
565
565
|
return;
|
|
566
566
|
}
|
|
567
|
+
if (req.method === 'POST' && (path === '/genkaku/settings' || path === '/genkaku/settings/')) {
|
|
568
|
+
let body;
|
|
569
|
+
try {
|
|
570
|
+
body = await readJson(req);
|
|
571
|
+
}
|
|
572
|
+
catch {
|
|
573
|
+
failure(res, 400, 'invalid JSON body');
|
|
574
|
+
return;
|
|
575
|
+
}
|
|
576
|
+
if (body.refresh === true) {
|
|
577
|
+
// Drop the 10s offer cache so the next status/model read re-dials
|
|
578
|
+
// every discovered worker right now.
|
|
579
|
+
cache.clear();
|
|
580
|
+
}
|
|
581
|
+
const patch = {};
|
|
582
|
+
if (body.workers !== undefined) {
|
|
583
|
+
if (!Array.isArray(body.workers)) {
|
|
584
|
+
failure(res, 400, 'workers must be an array of multiaddrs');
|
|
585
|
+
return;
|
|
586
|
+
}
|
|
587
|
+
const workers = body.workers
|
|
588
|
+
.filter((w) => typeof w === 'string')
|
|
589
|
+
.map(w => w.trim())
|
|
590
|
+
.filter(w => w.startsWith('/'));
|
|
591
|
+
if (workers.length !== body.workers.length || workers.length > 16 || workers.some(w => w.length > 512)) {
|
|
592
|
+
failure(res, 400, 'each worker must be a multiaddr (max 16)');
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
595
|
+
patch.workers = workers;
|
|
596
|
+
}
|
|
597
|
+
if (body.settle !== undefined) {
|
|
598
|
+
if (typeof body.settle !== 'boolean') {
|
|
599
|
+
failure(res, 400, 'settle must be a boolean');
|
|
600
|
+
return;
|
|
601
|
+
}
|
|
602
|
+
patch.settle = body.settle;
|
|
603
|
+
}
|
|
604
|
+
if (Object.keys(patch).length > 0) {
|
|
605
|
+
if (opts.onSettings == null) {
|
|
606
|
+
failure(res, 501, 'settings are not writable in this profile');
|
|
607
|
+
return;
|
|
608
|
+
}
|
|
609
|
+
await opts.onSettings(patch);
|
|
610
|
+
}
|
|
611
|
+
json(res, 200, { ok: true, applied: Object.keys(patch), refreshed: body.refresh === true });
|
|
612
|
+
return;
|
|
613
|
+
}
|
|
567
614
|
if (req.method === 'GET' && (path === '/genkaku/status' || path === '/genkaku/status/')) {
|
|
568
615
|
await status(res);
|
|
569
616
|
return;
|
package/package.json
CHANGED