@starlight-ai/discord-waifus 1.0.8 → 1.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/dist/cli/commands.js +2 -2
- package/dist/cli/commands.js.map +1 -1
- package/dist/orchestration/messageSplit.d.ts +4 -0
- package/dist/orchestration/messageSplit.js +15 -0
- package/dist/orchestration/messageSplit.js.map +1 -1
- package/dist/orchestration/runtime.d.ts +13 -0
- package/dist/orchestration/runtime.js +236 -53
- package/dist/orchestration/runtime.js.map +1 -1
- package/dist/orchestration/session.d.ts +8 -0
- package/dist/orchestration/session.js +12 -1
- package/dist/orchestration/session.js.map +1 -1
- package/dist/providers/pipelines.js +16 -3
- package/dist/providers/pipelines.js.map +1 -1
- package/dist/shared/schemas/domain.d.ts +13 -0
- package/dist/shared/schemas/domain.js +15 -1
- package/dist/shared/schemas/domain.js.map +1 -1
- package/dist-frontend/assets/{index-D-3UoBtg.js → index-wxBpQki4.js} +2 -45
- package/dist-frontend/assets/{index-D-3UoBtg.js.map → index-wxBpQki4.js.map} +1 -1
- package/dist-frontend/index.html +1 -1
- package/package.json +1 -1
package/dist/cli/commands.js
CHANGED
|
@@ -145,9 +145,9 @@ async function stopCommand(dataRoot, options = {}) {
|
|
|
145
145
|
return 0;
|
|
146
146
|
}
|
|
147
147
|
process.kill(pidState.pid, "SIGTERM");
|
|
148
|
-
const stopped = await waitForExit(pidState.pid,
|
|
148
|
+
const stopped = await waitForExit(pidState.pid, 10_000);
|
|
149
149
|
if (!stopped) {
|
|
150
|
-
console.error(`pid ${pidState.pid} did not stop within
|
|
150
|
+
console.error(`pid ${pidState.pid} did not stop within 10s`);
|
|
151
151
|
return 1;
|
|
152
152
|
}
|
|
153
153
|
await rm(appDataPath(dataRoot, "pid.json"), { force: true });
|
package/dist/cli/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC9H,OAAO,EAAa,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAiB;IAChD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE5C,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC;QACX,KAAK,OAAO;YACV,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/C,KAAK,MAAM;YACT,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC/B,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,KAAK,QAAQ;YACX,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjC,KAAK,QAAQ;YACX,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjC,KAAK,OAAO;YACV,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxC,KAAK,QAAQ;YACX,OAAO,aAAa,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAiB;IAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACtD,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;IAcV,aAAa;CAChB,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,MAAiB,EACjB,QAAgB,EAChB,IAAqB;IAErB,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;QACjE,OAAO,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,MAAiB,EAAE,QAAgB;IACrE,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC7D,IAAI,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,sDAAsD,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE;QAClH,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,wDAAwD,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,8CAA8C,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,MAAiB,EACjB,QAAgB,EAChB,IAAqB;IAErB,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,6BAA6B,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;IAEtC,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAsB,EAAE,EAAE;QAChD,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,2BAA2B,CAAC,CAAC;QAC3D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAElC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAiB,EAAE,QAAgB;IAC3D,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,UAA+B,EAAE;IAC5E,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,4CAA4C,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,GAAG,0BAA0B,CAAC,CAAC;QAC7D,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,8BAA8B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB;IAC3C,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAChE,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;QACE,OAAO;QACP,GAAG,EAAE,QAAQ,EAAE,GAAG;QAClB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;QAC7D,QAAQ;QACR,OAAO;KACR,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;IACF,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB;IAC3C,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,QAAQ,CACzC,qBAAqB,EACrB,6BAA6B,EAC7B,6BAA6B,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAClF,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,QAAQ,CACxC,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAC3F,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG;QACb,IAAI,EAAE;YACJ,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;YAC9B,EAAE,EAAE,SAAS,IAAI,EAAE;SACpB;QACD,QAAQ;QACR,MAAM;QACN,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QACxD,OAAO,EAAE;YACP,sBAAsB,EAAE,WAAW,CAAC,YAAY,EAAE,KAAK,KAAK,SAAS;YACrE,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM;YACxC,QAAQ,EAAE;gBACR,8EAA8E;gBAC9E,6EAA6E;aAC9E;SACF;KACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,MAAiB,EAAE,QAAgB;IAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,MAAM,OAAO,CAC7B,4CAA4C,QAAQ,+BAA+B,CACpF,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/B,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACvE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC7D,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACpE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;KACtG,CAAC,CAAC;IACH,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;uCAWyB,CAAC,CAAC;IACvC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,IAAiC;IAChF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAQ,KAA+B,CAAC,IAAI,KAAK,OAAO,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,SAAiB;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC;QACxC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,QAAgB,EAAE,GAAW,EAAE,SAAiB;IACjF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,GAAG,KAAK,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,MAAc;IACnC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC;IAClD,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
|
|
@@ -7,10 +7,25 @@ export function splitWaifuReply(content) {
|
|
|
7
7
|
.map((chunk) => chunk.trim())
|
|
8
8
|
.filter((chunk) => chunk.length > 0);
|
|
9
9
|
}
|
|
10
|
+
const IMMEDIATE_CHUNK_LIMIT = 2;
|
|
11
|
+
const SHORT_THIRD_CHUNK_CHAR_LIMIT = 18;
|
|
12
|
+
export function planWaifuReplyChunks(chunks) {
|
|
13
|
+
const immediateLimit = chunks[IMMEDIATE_CHUNK_LIMIT] &&
|
|
14
|
+
characterCount(chunks[IMMEDIATE_CHUNK_LIMIT]) < SHORT_THIRD_CHUNK_CHAR_LIMIT
|
|
15
|
+
? IMMEDIATE_CHUNK_LIMIT + 1
|
|
16
|
+
: IMMEDIATE_CHUNK_LIMIT;
|
|
17
|
+
return {
|
|
18
|
+
immediateChunks: chunks.slice(0, immediateLimit),
|
|
19
|
+
cachedChunks: chunks.slice(immediateLimit)
|
|
20
|
+
};
|
|
21
|
+
}
|
|
10
22
|
const MS_PER_CHAR = 30;
|
|
11
23
|
const MIN_DELAY_MS = 600;
|
|
12
24
|
const MAX_DELAY_MS = 4500;
|
|
13
25
|
export function typingDelayMs(chunk) {
|
|
14
26
|
return Math.min(MAX_DELAY_MS, Math.max(MIN_DELAY_MS, chunk.length * MS_PER_CHAR));
|
|
15
27
|
}
|
|
28
|
+
function characterCount(value) {
|
|
29
|
+
return Array.from(value).length;
|
|
30
|
+
}
|
|
16
31
|
//# sourceMappingURL=messageSplit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageSplit.js","sourceRoot":"","sources":["../../src/orchestration/messageSplit.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO;SACX,KAAK,CAAC,eAAe,CAAC;SACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;AACpF,CAAC"}
|
|
1
|
+
{"version":3,"file":"messageSplit.js","sourceRoot":"","sources":["../../src/orchestration/messageSplit.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO;SACX,KAAK,CAAC,eAAe,CAAC;SACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAExC,MAAM,UAAU,oBAAoB,CAAC,MAAgB;IAInD,MAAM,cAAc,GAClB,MAAM,CAAC,qBAAqB,CAAC;QAC7B,cAAc,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,GAAG,4BAA4B;QAC1E,CAAC,CAAC,qBAAqB,GAAG,CAAC;QAC3B,CAAC,CAAC,qBAAqB,CAAC;IAE5B,OAAO;QACL,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC;QAChD,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAClC,CAAC"}
|
|
@@ -8,6 +8,7 @@ export type RuntimeOrchestratorOptions = {
|
|
|
8
8
|
discord: DiscordGatewayFacade;
|
|
9
9
|
logger: Logger;
|
|
10
10
|
maxAutomaticTurns?: number;
|
|
11
|
+
continuationIdleMs?: number;
|
|
11
12
|
isPaused?: () => boolean;
|
|
12
13
|
onActiveRunsChange?: (activeRuns: number) => void;
|
|
13
14
|
createPipeline?: (modelId: string, credentials: PipelineCredentials) => ModelPipeline;
|
|
@@ -17,7 +18,9 @@ export declare class RuntimeOrchestrator {
|
|
|
17
18
|
private readonly options;
|
|
18
19
|
private readonly activeRuns;
|
|
19
20
|
private readonly retriggerTimers;
|
|
21
|
+
private readonly continuationTimers;
|
|
20
22
|
private readonly maxAutomaticTurns;
|
|
23
|
+
private readonly continuationIdleMs;
|
|
21
24
|
private readonly createPipeline;
|
|
22
25
|
private readonly sleep;
|
|
23
26
|
private readonly recentSelfSentIds;
|
|
@@ -26,6 +29,7 @@ export declare class RuntimeOrchestrator {
|
|
|
26
29
|
private readonly activeReviewerRuns;
|
|
27
30
|
private readonly channelRunVersions;
|
|
28
31
|
private static readonly SELF_SENT_TTL_MS;
|
|
32
|
+
private static readonly CONTINUATION_IDLE_MS;
|
|
29
33
|
private unsubscribes;
|
|
30
34
|
constructor(options: RuntimeOrchestratorOptions);
|
|
31
35
|
start(): Promise<void>;
|
|
@@ -51,6 +55,14 @@ export declare class RuntimeOrchestrator {
|
|
|
51
55
|
private clearLatestMessages;
|
|
52
56
|
private applyStageManagerCalls;
|
|
53
57
|
private scheduleRetrigger;
|
|
58
|
+
private sendCachedContinuationForSelection;
|
|
59
|
+
private sendCachedWaifuContinuation;
|
|
60
|
+
private sendCachedContinuationAfterIdle;
|
|
61
|
+
private cacheWaifuContinuation;
|
|
62
|
+
private clearCachedWaifuContinuation;
|
|
63
|
+
private scheduleContinuationTimer;
|
|
64
|
+
private setContinuationTimer;
|
|
65
|
+
private sendWaifuChunks;
|
|
54
66
|
private setActivePipeline;
|
|
55
67
|
private rememberSelfSent;
|
|
56
68
|
private wasSelfSent;
|
|
@@ -68,6 +80,7 @@ export declare class RuntimeOrchestrator {
|
|
|
68
80
|
private ensureChannelConfig;
|
|
69
81
|
private channelHasWaifus;
|
|
70
82
|
private ensureChannelSession;
|
|
83
|
+
private readChannelSession;
|
|
71
84
|
private updateSession;
|
|
72
85
|
private appendOrchestratorHistory;
|
|
73
86
|
private appendStageManagerHistory;
|
|
@@ -2,7 +2,7 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { readdir } from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { modelVisibleEmojiToken, stripLeakedContextHeader } from "../discord/normalization.js";
|
|
5
|
-
import { splitWaifuReply, typingDelayMs } from "./messageSplit.js";
|
|
5
|
+
import { planWaifuReplyChunks, splitWaifuReply, typingDelayMs } from "./messageSplit.js";
|
|
6
6
|
import { getModel } from "../providers/catalog.js";
|
|
7
7
|
import { createModelPipeline, ProviderPipelineError } from "../providers/pipelines.js";
|
|
8
8
|
import { AgentConfigSchema, DiscordBotsFileSchema, GuildEmojisFileSchema, MemoryStoreSchema, OrchestratorHistoryFileSchema, ProviderCredentialsFileSchema, ReviewerHistoryFileSchema, ServerConfigSchema, StageManagerHistoryFileSchema, WaifuConfigSchema, createEmptyRevisionedFile } from "../shared/schemas/domain.js";
|
|
@@ -13,7 +13,9 @@ export class RuntimeOrchestrator {
|
|
|
13
13
|
options;
|
|
14
14
|
activeRuns = new Map();
|
|
15
15
|
retriggerTimers = new Map();
|
|
16
|
+
continuationTimers = new Map();
|
|
16
17
|
maxAutomaticTurns;
|
|
18
|
+
continuationIdleMs;
|
|
17
19
|
createPipeline;
|
|
18
20
|
sleep;
|
|
19
21
|
recentSelfSentIds = new Map();
|
|
@@ -22,10 +24,12 @@ export class RuntimeOrchestrator {
|
|
|
22
24
|
activeReviewerRuns = new Map();
|
|
23
25
|
channelRunVersions = new Map();
|
|
24
26
|
static SELF_SENT_TTL_MS = 60_000;
|
|
27
|
+
static CONTINUATION_IDLE_MS = 120_000;
|
|
25
28
|
unsubscribes = [];
|
|
26
29
|
constructor(options) {
|
|
27
30
|
this.options = options;
|
|
28
31
|
this.maxAutomaticTurns = options.maxAutomaticTurns ?? 8;
|
|
32
|
+
this.continuationIdleMs = options.continuationIdleMs ?? RuntimeOrchestrator.CONTINUATION_IDLE_MS;
|
|
29
33
|
this.createPipeline = options.createPipeline ?? createModelPipeline;
|
|
30
34
|
this.sleep = options.sleep ?? defaultSleep;
|
|
31
35
|
}
|
|
@@ -60,10 +64,16 @@ export class RuntimeOrchestrator {
|
|
|
60
64
|
clearTimeout(timer);
|
|
61
65
|
}
|
|
62
66
|
this.retriggerTimers.clear();
|
|
67
|
+
const continuationTimers = [...this.continuationTimers.values()];
|
|
68
|
+
for (const entry of continuationTimers) {
|
|
69
|
+
clearTimeout(entry.timer);
|
|
70
|
+
}
|
|
71
|
+
this.continuationTimers.clear();
|
|
63
72
|
for (const run of this.activeRuns.values()) {
|
|
64
73
|
run.controller.abort(new Error("runtime paused"));
|
|
65
74
|
}
|
|
66
75
|
await Promise.allSettled([...this.activeRuns.values()].map((run) => run.promise));
|
|
76
|
+
await Promise.allSettled(continuationTimers.map((entry) => this.clearCachedWaifuContinuation(entry.guildId, entry.channelId, "runtime paused")));
|
|
67
77
|
this.activeRuns.clear();
|
|
68
78
|
this.options.onActiveRunsChange?.(0);
|
|
69
79
|
}
|
|
@@ -76,6 +86,7 @@ export class RuntimeOrchestrator {
|
|
|
76
86
|
if (event.authorBot && this.activeWaifuSendChannels.has(event.channelId)) {
|
|
77
87
|
return;
|
|
78
88
|
}
|
|
89
|
+
await this.clearCachedWaifuContinuation(event.guildId, event.channelId, "new Discord activity");
|
|
79
90
|
if (this.options.isPaused?.()) {
|
|
80
91
|
this.options.logger.info("Discord message ignored because runtime is paused", {
|
|
81
92
|
guildId: event.guildId,
|
|
@@ -375,22 +386,33 @@ export class RuntimeOrchestrator {
|
|
|
375
386
|
});
|
|
376
387
|
continue;
|
|
377
388
|
}
|
|
378
|
-
if (!waifu.
|
|
379
|
-
this.options.logger.warn("Orchestrator selected a waifu without a
|
|
389
|
+
if (!waifu.botId) {
|
|
390
|
+
this.options.logger.warn("Orchestrator selected a waifu without a linked Discord bot", {
|
|
380
391
|
guildId,
|
|
381
392
|
channelId,
|
|
382
393
|
selectedWaifuId: selected.waifuId
|
|
383
394
|
});
|
|
384
395
|
continue;
|
|
385
396
|
}
|
|
386
|
-
if (
|
|
387
|
-
|
|
397
|
+
if (await this.sendCachedContinuationForSelection({
|
|
398
|
+
guildId,
|
|
399
|
+
channelId,
|
|
400
|
+
selectedWaifuId: selected.waifuId,
|
|
401
|
+
sceneDirection: selected.sceneDirection,
|
|
402
|
+
signal
|
|
403
|
+
})) {
|
|
404
|
+
sentCount += 1;
|
|
405
|
+
continue;
|
|
406
|
+
}
|
|
407
|
+
if (!waifu.modelId) {
|
|
408
|
+
this.options.logger.warn("Orchestrator selected a waifu without a configured model", {
|
|
388
409
|
guildId,
|
|
389
410
|
channelId,
|
|
390
411
|
selectedWaifuId: selected.waifuId
|
|
391
412
|
});
|
|
392
413
|
continue;
|
|
393
414
|
}
|
|
415
|
+
await this.clearCachedWaifuContinuation(guildId, channelId, "new waifu generation");
|
|
394
416
|
await this.setActivePipeline(guildId, channelId, "waifu");
|
|
395
417
|
const waifuMessages = await this.options.discord.fetchFreshContext({
|
|
396
418
|
guildId,
|
|
@@ -456,6 +478,7 @@ export class RuntimeOrchestrator {
|
|
|
456
478
|
waifuId: waifu.id
|
|
457
479
|
});
|
|
458
480
|
}
|
|
481
|
+
const plannedChunks = planWaifuReplyChunks(chunks);
|
|
459
482
|
const replyToMessageId = replyTargetForFreshContext(selected.replyToMessageId, waifuMessages);
|
|
460
483
|
if (selected.replyToMessageId && !replyToMessageId) {
|
|
461
484
|
this.options.logger.info("Omitting reply target because it is the latest context message", {
|
|
@@ -465,37 +488,26 @@ export class RuntimeOrchestrator {
|
|
|
465
488
|
replyToMessageId: selected.replyToMessageId
|
|
466
489
|
});
|
|
467
490
|
}
|
|
468
|
-
this.
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
guildId,
|
|
489
|
-
channelId,
|
|
490
|
-
waifuId: waifu.id,
|
|
491
|
-
chunkIndex: i,
|
|
492
|
-
chunkCount: chunks.length,
|
|
493
|
-
chunkLength: chunks[i].length
|
|
494
|
-
});
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
finally {
|
|
498
|
-
this.activeWaifuSendChannels.delete(channelId);
|
|
491
|
+
await this.sendWaifuChunks({
|
|
492
|
+
guildId,
|
|
493
|
+
channelId,
|
|
494
|
+
waifuId: waifu.id,
|
|
495
|
+
senderBotId: waifu.botId,
|
|
496
|
+
chunks: plannedChunks.immediateChunks,
|
|
497
|
+
totalChunkCount: chunks.length,
|
|
498
|
+
replyToMessageId,
|
|
499
|
+
allowedUserMentionIds: activeAuthorIds,
|
|
500
|
+
signal
|
|
501
|
+
});
|
|
502
|
+
if (plannedChunks.cachedChunks.length > 0) {
|
|
503
|
+
await this.cacheWaifuContinuation({
|
|
504
|
+
guildId,
|
|
505
|
+
channelId,
|
|
506
|
+
waifuId: waifu.id,
|
|
507
|
+
senderBotId: waifu.botId,
|
|
508
|
+
chunks: plannedChunks.cachedChunks,
|
|
509
|
+
allowedUserMentionIds: activeAuthorIds
|
|
510
|
+
});
|
|
499
511
|
}
|
|
500
512
|
}
|
|
501
513
|
finally {
|
|
@@ -848,6 +860,164 @@ export class RuntimeOrchestrator {
|
|
|
848
860
|
}, bounded * 1000);
|
|
849
861
|
this.retriggerTimers.set(key, timer);
|
|
850
862
|
}
|
|
863
|
+
async sendCachedContinuationForSelection(input) {
|
|
864
|
+
if (input.sceneDirection?.trim()) {
|
|
865
|
+
return false;
|
|
866
|
+
}
|
|
867
|
+
const state = await this.readChannelSession(input.guildId, input.channelId);
|
|
868
|
+
const cached = state.cachedWaifuContinuation;
|
|
869
|
+
if (!cached || cached.waifuId !== input.selectedWaifuId) {
|
|
870
|
+
return false;
|
|
871
|
+
}
|
|
872
|
+
return this.sendCachedWaifuContinuation(input.guildId, input.channelId, "same-waifu-no-scene-direction", input.signal);
|
|
873
|
+
}
|
|
874
|
+
async sendCachedWaifuContinuation(guildId, channelId, reason, signal) {
|
|
875
|
+
throwIfAborted(signal);
|
|
876
|
+
const state = await this.readChannelSession(guildId, channelId);
|
|
877
|
+
const cached = state.cachedWaifuContinuation;
|
|
878
|
+
if (!cached) {
|
|
879
|
+
return false;
|
|
880
|
+
}
|
|
881
|
+
await this.clearCachedWaifuContinuation(guildId, channelId, `sending cached continuation: ${reason}`);
|
|
882
|
+
this.options.logger.info("Sending cached waifu continuation", {
|
|
883
|
+
guildId,
|
|
884
|
+
channelId,
|
|
885
|
+
waifuId: cached.waifuId,
|
|
886
|
+
reason,
|
|
887
|
+
chunkCount: cached.chunks.length
|
|
888
|
+
});
|
|
889
|
+
await this.sendWaifuChunks({
|
|
890
|
+
guildId,
|
|
891
|
+
channelId,
|
|
892
|
+
waifuId: cached.waifuId,
|
|
893
|
+
senderBotId: cached.senderBotId,
|
|
894
|
+
chunks: cached.chunks,
|
|
895
|
+
totalChunkCount: cached.chunks.length,
|
|
896
|
+
allowedUserMentionIds: cached.allowedUserMentionIds,
|
|
897
|
+
signal
|
|
898
|
+
});
|
|
899
|
+
return true;
|
|
900
|
+
}
|
|
901
|
+
async sendCachedContinuationAfterIdle(guildId, channelId) {
|
|
902
|
+
if (this.options.isPaused?.()) {
|
|
903
|
+
await this.clearCachedWaifuContinuation(guildId, channelId, "runtime paused before cached continuation");
|
|
904
|
+
return;
|
|
905
|
+
}
|
|
906
|
+
if (this.activeRuns.has(runKey(guildId))) {
|
|
907
|
+
this.setContinuationTimer(guildId, channelId, Math.min(1000, Math.max(1, this.continuationIdleMs)));
|
|
908
|
+
return;
|
|
909
|
+
}
|
|
910
|
+
await this.sendCachedWaifuContinuation(guildId, channelId, "idle-timeout");
|
|
911
|
+
}
|
|
912
|
+
async cacheWaifuContinuation(input) {
|
|
913
|
+
if (input.chunks.length === 0) {
|
|
914
|
+
return;
|
|
915
|
+
}
|
|
916
|
+
const cachedAt = nowIso();
|
|
917
|
+
const idleAfter = new Date(Date.now() + this.continuationIdleMs).toISOString();
|
|
918
|
+
await this.updateSession(input.guildId, input.channelId, (current) => ({
|
|
919
|
+
...current,
|
|
920
|
+
cachedWaifuContinuation: {
|
|
921
|
+
waifuId: input.waifuId,
|
|
922
|
+
senderBotId: input.senderBotId,
|
|
923
|
+
chunks: input.chunks,
|
|
924
|
+
allowedUserMentionIds: input.allowedUserMentionIds,
|
|
925
|
+
cachedAt,
|
|
926
|
+
idleAfter
|
|
927
|
+
}
|
|
928
|
+
}));
|
|
929
|
+
this.scheduleContinuationTimer(input.guildId, input.channelId, idleAfter);
|
|
930
|
+
this.options.logger.info("Cached unsent waifu continuation chunks", {
|
|
931
|
+
guildId: input.guildId,
|
|
932
|
+
channelId: input.channelId,
|
|
933
|
+
waifuId: input.waifuId,
|
|
934
|
+
chunkCount: input.chunks.length,
|
|
935
|
+
idleAfter
|
|
936
|
+
});
|
|
937
|
+
}
|
|
938
|
+
async clearCachedWaifuContinuation(guildId, channelId, reason) {
|
|
939
|
+
const key = timerKey(guildId, channelId);
|
|
940
|
+
const timer = this.continuationTimers.get(key);
|
|
941
|
+
if (timer) {
|
|
942
|
+
clearTimeout(timer.timer);
|
|
943
|
+
this.continuationTimers.delete(key);
|
|
944
|
+
}
|
|
945
|
+
const state = await this.readChannelSession(guildId, channelId);
|
|
946
|
+
if (!state.cachedWaifuContinuation) {
|
|
947
|
+
return;
|
|
948
|
+
}
|
|
949
|
+
const cached = state.cachedWaifuContinuation;
|
|
950
|
+
await this.updateSession(guildId, channelId, (current) => ({
|
|
951
|
+
...current,
|
|
952
|
+
cachedWaifuContinuation: null
|
|
953
|
+
}));
|
|
954
|
+
this.options.logger.info("Cleared cached waifu continuation chunks", {
|
|
955
|
+
guildId,
|
|
956
|
+
channelId,
|
|
957
|
+
waifuId: cached.waifuId,
|
|
958
|
+
reason,
|
|
959
|
+
chunkCount: cached.chunks.length
|
|
960
|
+
});
|
|
961
|
+
}
|
|
962
|
+
scheduleContinuationTimer(guildId, channelId, idleAfter) {
|
|
963
|
+
const delayMs = Math.max(0, new Date(idleAfter).getTime() - Date.now());
|
|
964
|
+
this.setContinuationTimer(guildId, channelId, delayMs);
|
|
965
|
+
}
|
|
966
|
+
setContinuationTimer(guildId, channelId, delayMs) {
|
|
967
|
+
const key = timerKey(guildId, channelId);
|
|
968
|
+
const existing = this.continuationTimers.get(key);
|
|
969
|
+
if (existing) {
|
|
970
|
+
clearTimeout(existing.timer);
|
|
971
|
+
}
|
|
972
|
+
const timer = setTimeout(() => {
|
|
973
|
+
this.continuationTimers.delete(key);
|
|
974
|
+
void this.sendCachedContinuationAfterIdle(guildId, channelId).catch((error) => {
|
|
975
|
+
this.options.logger.error("Cached waifu continuation failed", {
|
|
976
|
+
guildId,
|
|
977
|
+
channelId,
|
|
978
|
+
message: error instanceof Error ? error.message : String(error)
|
|
979
|
+
});
|
|
980
|
+
});
|
|
981
|
+
}, delayMs);
|
|
982
|
+
this.continuationTimers.set(key, { guildId, channelId, timer });
|
|
983
|
+
}
|
|
984
|
+
async sendWaifuChunks(input) {
|
|
985
|
+
if (input.chunks.length === 0) {
|
|
986
|
+
return;
|
|
987
|
+
}
|
|
988
|
+
this.activeWaifuSendChannels.add(input.channelId);
|
|
989
|
+
try {
|
|
990
|
+
for (let i = 0; i < input.chunks.length; i++) {
|
|
991
|
+
throwIfAborted(input.signal);
|
|
992
|
+
if (i > 0) {
|
|
993
|
+
void this.options.discord
|
|
994
|
+
.sendTyping({ guildId: input.guildId, channelId: input.channelId, senderBotId: input.senderBotId })
|
|
995
|
+
.catch(() => undefined);
|
|
996
|
+
await this.sleep(typingDelayMs(input.chunks[i]), input.signal);
|
|
997
|
+
}
|
|
998
|
+
const sentResult = await this.options.discord.sendWaifuMessage({
|
|
999
|
+
guildId: input.guildId,
|
|
1000
|
+
channelId: input.channelId,
|
|
1001
|
+
senderBotId: input.senderBotId,
|
|
1002
|
+
content: input.chunks[i],
|
|
1003
|
+
replyToMessageId: i === 0 ? input.replyToMessageId : undefined,
|
|
1004
|
+
allowedUserMentionIds: input.allowedUserMentionIds
|
|
1005
|
+
});
|
|
1006
|
+
this.rememberSelfSent(sentResult.messageId);
|
|
1007
|
+
this.options.logger.info("Waifu message chunk sent", {
|
|
1008
|
+
guildId: input.guildId,
|
|
1009
|
+
channelId: input.channelId,
|
|
1010
|
+
waifuId: input.waifuId,
|
|
1011
|
+
chunkIndex: i,
|
|
1012
|
+
chunkCount: input.totalChunkCount,
|
|
1013
|
+
chunkLength: input.chunks[i].length
|
|
1014
|
+
});
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
finally {
|
|
1018
|
+
this.activeWaifuSendChannels.delete(input.channelId);
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
851
1021
|
async setActivePipeline(guildId, channelId, kind) {
|
|
852
1022
|
await this.updateSession(guildId, channelId, (current) => ({
|
|
853
1023
|
...current,
|
|
@@ -975,7 +1145,7 @@ export class RuntimeOrchestrator {
|
|
|
975
1145
|
const behaviorBlock = `<${behaviorTag}>\n${behaviorSections.join("\n")}\n</${behaviorTag}>`;
|
|
976
1146
|
const currentTimeBlock = `<current_time>\n${formatTimestamp(new Date())} (UTC)\n</current_time>`;
|
|
977
1147
|
const emojiBlock = `<available_server_emojis>\n${emojiList || "(none cached)"}\n</available_server_emojis>`;
|
|
978
|
-
return `${behaviorBlock}\n${
|
|
1148
|
+
return `${behaviorBlock}\n${emojiBlock}\n${currentTimeBlock}`;
|
|
979
1149
|
}
|
|
980
1150
|
buildOrchestratorSystemPrompt(orchestrator, server, availableWaifus) {
|
|
981
1151
|
const activeWaifusContent = availableWaifus.length
|
|
@@ -995,16 +1165,16 @@ export class RuntimeOrchestrator {
|
|
|
995
1165
|
"- Use reviewer only when you suspect the latest waifu message is hallucinating or leaking internals; the reviewer model makes the final judgment.",
|
|
996
1166
|
"- retriggerAfterSeconds must be between 100 and 28800."
|
|
997
1167
|
].join("\n");
|
|
998
|
-
const taskInstructions =
|
|
1168
|
+
const taskInstructions = DEFAULT_ORCHESTRATOR_PROMPT;
|
|
999
1169
|
const loopBreaking = [
|
|
1000
1170
|
"The recent messages in context are your most important signal. If the waifus are circling the same topic, the same vibe, or the same back-and-forth, they will keep circling unless you actively redirect them — each waifu only sees her own persona and the chat, so only you can see the loop forming from the outside.",
|
|
1001
1171
|
"When you notice a loop forming (even a soft one — two or three messages already feeling similar is enough), pick the waifu whose personality most naturally fits a hard pivot and write a concrete sceneDirection that lands a brand-new topic, observation, memory, callback, or non-sequitur. Name the specific new topic in the sceneDirection — \"ask about Kevin's dog\", \"bring up the snowstorm last week\", \"complain about being hungry\" — rather than vague instructions like \"change the subject\". A jarring shift that still feels in-character is better than letting the conversation stagnate."
|
|
1002
1172
|
].join("\n\n");
|
|
1003
1173
|
const retriggerPacing = [
|
|
1004
1174
|
"retriggerAfterSeconds decides when you wake yourself up to reconsider. Every wake-up costs another orchestrator call, so pace it to how alive the conversation actually is — read the timestamps on recent messages:",
|
|
1005
|
-
"- Active chat (
|
|
1175
|
+
"- Active chat (participants engaging within the last few minutes): short, ~100-300s.",
|
|
1006
1176
|
"- Quiet but plausibly resuming (someone stepped away mid-thread): medium, ~600-1800s.",
|
|
1007
|
-
"- Cold (last
|
|
1177
|
+
"- Cold (last participant message is hours old, or nobody has engaged with the bots in a while): long, ~3600-14400s, and keep growing each time you wake up to the same silence. Don't burn calls poking a dead channel."
|
|
1008
1178
|
].join("\n");
|
|
1009
1179
|
const messageStructure = "Each message in the context is tagged with [index: #N], [timestamp: ISO-8601 UTC], and [sender: DisplayName] before its body, optionally followed by [reactions: ...] and [replying to: ...]. Reference messages by their #N index. replyToIndex must be one of the #N indices shown in the context.";
|
|
1010
1180
|
const toolUse = [
|
|
@@ -1015,20 +1185,22 @@ export class RuntimeOrchestrator {
|
|
|
1015
1185
|
"OR { \"action\": \"reviewer\", \"reasoning\": string }",
|
|
1016
1186
|
"OR { \"action\": \"no_reply\", \"retriggerAfterSeconds\": number, \"reasoning\": string }."
|
|
1017
1187
|
].join("\n");
|
|
1188
|
+
const sections = orchestrator.promptSections;
|
|
1018
1189
|
const behavior = [
|
|
1019
1190
|
`<hard_rules>\n${hardRules}\n</hard_rules>`,
|
|
1020
1191
|
`<task_instructions>\n${taskInstructions}\n</task_instructions>`,
|
|
1021
|
-
`<loop_breaking>\n${loopBreaking}\n</loop_breaking
|
|
1022
|
-
`<retrigger_pacing>\n${retriggerPacing}\n</retrigger_pacing
|
|
1023
|
-
`<message_structure>\n${messageStructure}\n</message_structure
|
|
1024
|
-
`<tool_use>\n${toolUse}\n</tool_use>`
|
|
1025
|
-
]
|
|
1192
|
+
sections.loopBreaking ? `<loop_breaking>\n${loopBreaking}\n</loop_breaking>` : null,
|
|
1193
|
+
sections.retriggerPacing ? `<retrigger_pacing>\n${retriggerPacing}\n</retrigger_pacing>` : null,
|
|
1194
|
+
sections.messageStructure ? `<message_structure>\n${messageStructure}\n</message_structure>` : null,
|
|
1195
|
+
sections.toolUse ? `<tool_use>\n${toolUse}\n</tool_use>` : null
|
|
1196
|
+
]
|
|
1197
|
+
.filter((section) => Boolean(section))
|
|
1198
|
+
.join("\n");
|
|
1026
1199
|
return [
|
|
1027
1200
|
`<identity>\n${identity}\n</identity>`,
|
|
1028
1201
|
`<behavior>\n${behavior}\n</behavior>`,
|
|
1029
1202
|
`<discord_server_information>\n${server.name ?? server.guildId}\n</discord_server_information>`,
|
|
1030
|
-
`<active_waifus>\n${activeWaifusContent}\n</active_waifus
|
|
1031
|
-
`<current_time>\n${formatTimestamp(new Date())} (UTC)\n</current_time>`
|
|
1203
|
+
`<active_waifus>\n${activeWaifusContent}\n</active_waifus>`
|
|
1032
1204
|
].join("\n");
|
|
1033
1205
|
}
|
|
1034
1206
|
async ensureServer(guildId) {
|
|
@@ -1074,6 +1246,9 @@ export class RuntimeOrchestrator {
|
|
|
1074
1246
|
transform: (current) => current
|
|
1075
1247
|
});
|
|
1076
1248
|
}
|
|
1249
|
+
async readChannelSession(guildId, channelId) {
|
|
1250
|
+
return this.options.storage.withLocks([`session:${guildId}:${channelId}`], () => this.options.storage.readJson(sessionRelativePath(guildId, channelId), ChannelSessionStateSchema, createEmptyChannelSessionState(guildId, channelId)));
|
|
1251
|
+
}
|
|
1077
1252
|
async updateSession(guildId, channelId, transform) {
|
|
1078
1253
|
return this.options.storage.updateRevisionedJson({
|
|
1079
1254
|
resourceKey: `session:${guildId}:${channelId}`,
|
|
@@ -1164,7 +1339,7 @@ function replyTargetForFreshContext(replyToMessageId, messages) {
|
|
|
1164
1339
|
return latestMessage?.id === replyToMessageId ? undefined : replyToMessageId;
|
|
1165
1340
|
}
|
|
1166
1341
|
function throwIfAborted(signal) {
|
|
1167
|
-
if (signal
|
|
1342
|
+
if (signal?.aborted) {
|
|
1168
1343
|
throw signal.reason instanceof Error ? signal.reason : new Error("Request aborted.");
|
|
1169
1344
|
}
|
|
1170
1345
|
}
|
|
@@ -1222,11 +1397,19 @@ const DEFAULT_REVIEWER_PROMPT = [
|
|
|
1222
1397
|
"The output must be the reviewer tool decision only."
|
|
1223
1398
|
].join("\n");
|
|
1224
1399
|
const DEFAULT_ORCHESTRATOR_PROMPT = [
|
|
1225
|
-
"You watch one Discord channel and orchestrate a small cast of waifu personas. On each new message decide
|
|
1226
|
-
"
|
|
1227
|
-
"
|
|
1228
|
-
"
|
|
1229
|
-
"
|
|
1400
|
+
"You watch one Discord channel and orchestrate a small cast of waifu personas. On each new message, decide from outside the scene which (if any) waifu should speak next, in what order, and with what scene direction.",
|
|
1401
|
+
"",
|
|
1402
|
+
"Be natural. Real group chats do not require everyone to reply every time, and not every beat needs a response — treat the room like a living scene, not a turn-taking queue. Pacing, silence, interruption, overlap, comedy, and escalation are all valid moves. Pick the waifu whose personality fits the moment based on her voice and the current flow; the same waifu may speak again, a different one may jump in, or two may chain if it feels right.",
|
|
1403
|
+
"",
|
|
1404
|
+
"Choose between the four actions based on what the room actually needs:",
|
|
1405
|
+
"- waifus when one or more waifus should respond now.",
|
|
1406
|
+
"- no_reply when answering right now would be intrusive, redundant, or aimed at no one — silence is a valid choice when the scene fits it.",
|
|
1407
|
+
"- stage_manager when something memorable has happened (a new fact about a user, a relationship change, an event worth remembering) and the memory pass should run before the next reply.",
|
|
1408
|
+
"- reviewer when the latest waifu message looks like leaked internals or hallucinated private model text.",
|
|
1409
|
+
"",
|
|
1410
|
+
"If a recent chat participant message or direct ping was missed while the room moved on, prefer steering a waifu to acknowledge it so the chat stays socially inclusive — unless silence is clearly the more natural choice.",
|
|
1411
|
+
"",
|
|
1412
|
+
"Reach for sceneDirection when the next reply needs steering that personality alone won't provide: redirecting topic, closing a beat, creating an interruption, shifting momentum, or deliberately starting something new even when it cuts against the current flow. Prefer a natural bridge when pivoting, but a jarring shift is fine if the scene needs it. Keep sceneDirection short, concrete, and immediately actionable — one sentence is usually enough. When you refer to a specific person, use their actual display name from the chat history, never generic phrases like \"the user\". Name intended participants explicitly when more than one person is involved; avoid ambiguous group references like \"us\", \"them\", or \"everyone\". If multiple waifus respond in the same turn, each may receive a different sceneDirection."
|
|
1230
1413
|
].join("\n");
|
|
1231
1414
|
const TYPING_REFRESH_MS = 8000;
|
|
1232
1415
|
const MAX_CLEAR_COUNT = 100;
|