@relayflows/sdk 2.0.1 → 2.0.3
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/daemon-refusal.d.ts +12 -0
- package/dist/cli/daemon-refusal.d.ts.map +1 -0
- package/dist/cli/daemon-refusal.js +42 -0
- package/dist/cli/daemon-refusal.js.map +1 -0
- package/dist/cli/direct-run.d.ts +1 -1
- package/dist/cli/direct-run.d.ts.map +1 -1
- package/dist/cli/direct-run.js +2 -2
- package/dist/cli/direct-run.js.map +1 -1
- package/dist/cli/run.d.ts +26 -4
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +51 -6
- package/dist/cli/run.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +39 -8
- package/dist/cli.js.map +1 -1
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +35 -4
- package/dist/compile.js.map +1 -1
- package/dist/daemon-connection.d.ts +127 -0
- package/dist/daemon-connection.d.ts.map +1 -0
- package/dist/daemon-connection.js +249 -0
- package/dist/daemon-connection.js.map +1 -0
- package/dist/daemon-lifecycle.d.ts +29 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -0
- package/dist/daemon-lifecycle.js +152 -0
- package/dist/daemon-lifecycle.js.map +1 -0
- package/dist/failure-kinds.d.ts +19 -2
- package/dist/failure-kinds.d.ts.map +1 -1
- package/dist/failure-kinds.js +23 -1
- package/dist/failure-kinds.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/journal-client.d.ts +12 -0
- package/dist/journal-client.d.ts.map +1 -1
- package/dist/journal-client.js +10 -0
- package/dist/journal-client.js.map +1 -1
- package/dist/protocol.d.ts +21 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/relayflowd-path.d.ts +39 -0
- package/dist/relayflowd-path.d.ts.map +1 -0
- package/dist/relayflowd-path.js +162 -0
- package/dist/relayflowd-path.js.map +1 -0
- package/dist/spec.d.ts +30 -2
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js.map +1 -1
- package/dist/step-fields.d.ts +1 -1
- package/dist/step-fields.d.ts.map +1 -1
- package/dist/step-fields.js +2 -0
- package/dist/step-fields.js.map +1 -1
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +53 -6
- package/dist/validate.js.map +1 -1
- package/dist/worker.js +6 -1
- package/dist/worker.js.map +1 -1
- package/package.json +2 -2
- package/src/cli/daemon-refusal.ts +49 -0
- package/src/cli/direct-run.ts +2 -2
- package/src/cli/run.ts +62 -9
- package/src/cli.ts +42 -15
- package/src/compile.ts +37 -4
- package/src/daemon-connection.ts +336 -0
- package/src/daemon-lifecycle.ts +198 -0
- package/src/failure-kinds.ts +25 -1
- package/src/index.ts +6 -0
- package/src/journal-client.ts +21 -0
- package/src/protocol.ts +19 -1
- package/src/relayflowd-path.ts +190 -0
- package/src/spec.ts +34 -2
- package/src/step-fields.ts +2 -0
- package/src/validate.ts +50 -6
- package/src/worker.ts +7 -1
package/dist/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,yEAAyE;AACzE,0CAA0C;AAC1C,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,6EAA6E;AAC7E,yEAAyE;AACzE,6EAA6E;AAC7E,gDAAgD;AAChD,EAAE;AACF,8EAA8E;AAC9E,wEAAwE;AACxE,qEAAqE;AACrE,yEAAyE;AAEzE,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAmB1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAyB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,MAAM,CAAW;IAC1B,YAAY,MAAgB;QAC1B,KAAK,CAAC,4BAA4B,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,YAAY,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CAAC;YACrB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC;SAC/E,CAAC,CAAC;IACL,CAAC;IACD,MAAM,UAAU,GAAqB,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAG,QAAoB,CAAC;IACnC,6EAA6E;IAC7E,sEAAsE;IACtE,sEAAsE;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAa;QACrB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,6EAA6E;QAC7E,8EAA8E;QAC9E,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,KAAK;QACL,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,IAAc;IACjC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG;QACX,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,aAAa;KACd,CAAC;IAEF,QAAQ,IAAI,CAAC,IAAgB,EAAE,CAAC;QAC9B,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,GAAG,IAA6B,CAAC;YACxC,wEAAwE;YACxE,yEAAyE;YACzE,gEAAgE;YAChE,yEAAyE;YACzE,0EAA0E;YAC1E,yEAAyE;YACzE,kEAAkE;YAClE,OAAO;gBACL,GAAG,IAAI;gBACP,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,YAAY,EAAE,YAAY,IAAI,EAAE,IAAI,EAAE,WAAoB,EAAE;gBAC5D,oEAAoE;gBACpE,wEAAwE;gBACxE,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjE,CAAC;QACJ,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,CAAC,GAAG,IAAmB,CAAC;YAC9B,OAAO;gBACL,GAAG,IAAI;gBACP,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,uEAAuE;gBACvE,uEAAuE;gBACvE,iBAAiB;gBACjB,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvF,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/C,CAAC;QACJ,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,GAAG,IAAqB,CAAC;YAChC,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC;YAC/C,OAAO;gBACL,GAAG,IAAI;gBACP,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvF,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,YAAY;gBACZ,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvE,CAAC;QACJ,CAAC;QACD;YACE,gDAAgD;YAChD,MAAM,IAAI,YAAY,CAAC,CAAC,SAAS,IAAI,CAAC,EAAE,oBAAoB,MAAM,CAAE,IAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9G,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAsB,EAAE,MAAc;IACxD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,YAAY,CAAC;YACrB,SAAS,MAAM,uDAAuD;SACvE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAc;IAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC,YAAY,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CACxB,IAAc,EACd,MAAkD;IAElD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,WAAW,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;QAC3E,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,YAAY,CAAC;YACrB,SAAS,IAAI,CAAC,EAAE,2BAA2B,IAAI,CAAC,KAAK,GAAG;SACzD,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,6EAA6E;AAC7E,MAAM,qBAAqB,GAAG;IAC5B,kBAAkB,EAAE,GAAG;IACvB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,EAAE;CACV,CAAC;AAEX;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,yEAAyE;QACzE,yEAAyE;QACzE,6EAA6E;QAC7E,uEAAuE;QACvE,uEAAuE;QACvE,2EAA2E;QAC3E,yEAAyE;QACzE,2EAA2E;QAC3E,0EAA0E;QAC1E,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3F,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS;YAC/B,CAAC,CAAC;gBACE,MAAM,EAAE;oBACN,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjG;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CAAC;YACrB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC;SAC/E,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,GAAG,mBAAmB,CAC9B,QAAQ,EACR,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EACxE,MAAM,CACP,CAAC;IACF,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;SAC1D,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,cAAc,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO;QACL,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QAC/D,GAAG,CAAC,QAAQ,KAAK,SAAS;YACxB,CAAC,CAAC;gBACE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC;qBACpD,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,KAAK,GAAG,CAAC,CAAC;aACzF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,KAAK;QACL,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS;YAC9B,CAAC,CAAC,EAAE,MAAM,EAAE,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,EAAE;YACpE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,eAAe,CAAC,OAAoB;IAC3C,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACzC,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,iBAAiB,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxF,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAS,wBAAwB,CAAC,KAAc,EAAE,EAAU;IAC1D,MAAM,OAAO,GAAG,mBAAmB,CACjC,KAAK,EACL,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,EACpF,EAAE,CACH,CAAC;IACF,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;QAC7B,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,SAAS;YAC9C,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAAE;YACvD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChG,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,EAAU;IACvD,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc;QACrE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa;QAChE,eAAe,EAAE,UAAU,EAAE,aAAa;KAClC,CAAC;IACX,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,CAAU,CAAC;IACpG,MAAM,QAAQ,GAAG,IAAI,KAAK,eAAe;QACvC,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,CAAU;QACpC,CAAC,CAAC,IAAI,KAAK,KAAK;YACd,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAU;YACrC,CAAC,CAAC,IAAI,KAAK,OAAO;gBAChB,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,CAAU;gBACtF,CAAC,CAAC,EAAE,CAAC;IACX,gBAAgB,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACzD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS;QAAE,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACnF,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG;QACb,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;QACd,IAAI;QACJ,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAChF,CAAC,CAAC,EAAE,SAAS,EAAE;YACf,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,GAAG,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC;KACnF,CAAC;IACF,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;QAC7B,OAAO;YACL,GAAG,MAAM;YACT,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/E,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;IACvF,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO;YACL,GAAG,MAAM;YACT,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;YAChC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,SAAS;gBACnC,CAAC,CAAC,EAAE,WAAW,EAAE,4BAA4B,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE;gBACzF,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,EAAU;IACrD,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE;QACvC,oBAAoB,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB;KACvE,EAAE,EAAE,CAAC,CAAC;IACP,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACtE,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,YAAY,CAAC;gBACrB,GAAG,EAAE,IAAI,KAAK,qCAAqC,QAAQ,EAAE;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CACpC,IAAa,EACb,KAAc,EACd,EAAU;IAEV,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;IACxF,IAAI,YAAY,CAAC,iBAAiB,CAAC,KAAK,SAAS,IAAI,YAAY,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;QAC/F,MAAM,IAAI,YAAY,CAAC,CAAC,GAAG,EAAE,2CAA2C,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,YAAY,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;QAClD,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC;IAC/F,CAAC;IACD,IAAI,YAAY,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;IACxF,CAAC;IACD,OAAO,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACjF,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc,EAAE,EAAU;IACzD,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;IAClG,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtF,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAc,EAAE,EAAU;IAC9D,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC;IACzG,OAAO;QACL,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtG,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAc,EACd,OAA0B,EAC1B,EAAU;IAEV,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,YAAY,CAAC,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CACvB,KAA8B,EAC9B,OAA0B,EAC1B,EAAU;IAEV,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,YAAY,CAAC;YACrB,GAAG,EAAE,aAAa,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;SAClJ,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,EAAU;IACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAChF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAA8B,EAAE,IAAuB;IAC1E,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5G,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,YAAY,CAAC,IAAc;IAClC,MAAM,MAAM,GAAqB;QAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAChC,cAAc,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;QACvC,KAAK,EAAE,EAAE,GAAG,qBAAqB,EAAE;QACnC,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC;KACzC,CAAC;IACF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,eAAe;YAClB,OAAO;gBACL,GAAG,MAAM;gBACT,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,CAAC;QACJ,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO;gBACL,GAAG,MAAM;gBACT,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD,CAAC;QACJ,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,GAAG,GAAoB;gBAC3B,GAAG,MAAM;gBACT,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,aAAa,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO;aAC5C,CAAC;YACF,MAAM,QAAQ,GAAG;gBACf,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxH,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChH,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjF,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC9D,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACnC,GAAG,CAAC,WAAW,GAAG;oBAChB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/F,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpH,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzG,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAc;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IACjC,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;IAC/B,2EAA2E;IAC3E,uEAAuE;IACvE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,EAAE,CAAC;IAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB;QAAE,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5E,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACrE,MAAM,IAAI,YAAY,CAAC;QACrB,SAAS,IAAI,CAAC,EAAE,yEAAyE;KAC1F,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { type ChildProcess, type SpawnOptions } from 'node:child_process';
|
|
2
|
+
/**
|
|
3
|
+
* The `hello` probe runs before every command, so it must be short. §4 gives
|
|
4
|
+
* `connect()` the same bound for the same reason: a listener that accepts and
|
|
5
|
+
* never answers must not hold the CLI for the 30s request default.
|
|
6
|
+
*/
|
|
7
|
+
export declare const PROBE_TIMEOUT_MS = 2000;
|
|
8
|
+
export declare const CONNECTION_FILE = "connection.json";
|
|
9
|
+
export declare const SOCKET_FILE = "relayflowd.sock";
|
|
10
|
+
export declare const DAEMON_LOG_FILE = "relayflowd.log";
|
|
11
|
+
/** `<data-dir>/connection.json`, exactly the shape in §1. */
|
|
12
|
+
export interface DaemonConnection {
|
|
13
|
+
socket_path: string;
|
|
14
|
+
pid: number;
|
|
15
|
+
version: string;
|
|
16
|
+
protocol: number;
|
|
17
|
+
started_at_ms: number;
|
|
18
|
+
}
|
|
19
|
+
/** Why an existing `connection.json` was not believed (§2's four cases). */
|
|
20
|
+
export type StaleReason =
|
|
21
|
+
/** §2 step 3: the file names a socket that is not this data dir's. */
|
|
22
|
+
'socket_path_mismatch'
|
|
23
|
+
/** §2 row 1: nothing serving, and the pid is gone. A corpse. */
|
|
24
|
+
| 'dead_pid_dead_socket'
|
|
25
|
+
/** §2 row 3: pid alive but nothing answers — mid-boot, or a reused pid. */
|
|
26
|
+
| 'live_pid_dead_socket';
|
|
27
|
+
/** Closed refusal taxonomy for the lifecycle itself. Mirrored in failure-kinds.ts. */
|
|
28
|
+
export type DaemonFailureKind = 'daemon_unreachable' | 'relayflowd_not_found' | 'daemon_start_failed' | 'daemon_start_timeout';
|
|
29
|
+
export type DaemonState = {
|
|
30
|
+
kind: 'attached';
|
|
31
|
+
socketPath: string;
|
|
32
|
+
connection: DaemonConnection | null;
|
|
33
|
+
warning?: string;
|
|
34
|
+
} | {
|
|
35
|
+
kind: 'absent';
|
|
36
|
+
} | {
|
|
37
|
+
kind: 'stale';
|
|
38
|
+
reason: StaleReason;
|
|
39
|
+
message: string;
|
|
40
|
+
} | {
|
|
41
|
+
kind: 'incompatible';
|
|
42
|
+
protocol: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* `ensureDaemon` only. §4's sketch types `ensureDaemon` as returning a
|
|
46
|
+
* `DaemonState` while §3 branches D.b/D.d refuse with kinds that union has
|
|
47
|
+
* no member for; this is that refusal channel, kept as data rather than a
|
|
48
|
+
* thrown error so it reads like the rest of cli/run.ts.
|
|
49
|
+
*/
|
|
50
|
+
| {
|
|
51
|
+
kind: 'unavailable';
|
|
52
|
+
failure: DaemonFailureKind;
|
|
53
|
+
message: string;
|
|
54
|
+
};
|
|
55
|
+
/** A probe of the socket itself — the only check that proves something serves. */
|
|
56
|
+
export interface SocketProbe {
|
|
57
|
+
reachable: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* The protocol the daemon reported. Absent when something is demonstrably
|
|
60
|
+
* serving the socket but would not say — see `probeSocket`.
|
|
61
|
+
*/
|
|
62
|
+
protocol?: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Injectable seams, following the `deps` pattern of the ../relay file this is
|
|
66
|
+
* modelled on. Unit tests reach no real filesystem and spawn no process.
|
|
67
|
+
*/
|
|
68
|
+
export interface DaemonLifecycleDeps {
|
|
69
|
+
readFile(path: string): string | null;
|
|
70
|
+
removeFile(path: string): void;
|
|
71
|
+
makeDirectory(path: string): void;
|
|
72
|
+
openAppend(path: string): number;
|
|
73
|
+
closeFd(fd: number): void;
|
|
74
|
+
readTail(path: string, bytes: number): string;
|
|
75
|
+
killProcess(pid: number, signal: number): void;
|
|
76
|
+
spawnProcess(command: string, args: readonly string[], options: SpawnOptions): ChildProcess;
|
|
77
|
+
resolveBinary(): string;
|
|
78
|
+
probe(socketPath: string, timeoutMs: number): Promise<SocketProbe>;
|
|
79
|
+
now(): number;
|
|
80
|
+
sleep(ms: number): Promise<void>;
|
|
81
|
+
}
|
|
82
|
+
export declare const defaultDaemonLifecycleDeps: DaemonLifecycleDeps;
|
|
83
|
+
export declare function socketPathFor(dataDir: string): string;
|
|
84
|
+
export declare function connectionPathFor(dataDir: string): string;
|
|
85
|
+
/**
|
|
86
|
+
* §2 steps 1-2. Absent, unparseable, and wrongly-typed all read the same:
|
|
87
|
+
* `null`. Unknown fields are ignored, so adding one later is not breaking.
|
|
88
|
+
* The `socket_path` agreement check is §2 step 3 and lives in `checkDaemon`,
|
|
89
|
+
* which knows the data dir the path must agree with.
|
|
90
|
+
*/
|
|
91
|
+
export declare function readConnectionFile(dataDir: string, deps?: DaemonLifecycleDeps): DaemonConnection | null;
|
|
92
|
+
/**
|
|
93
|
+
* §2 step 4. **`EPERM` means alive** — the process exists and is owned by
|
|
94
|
+
* another user. ../relay's `isProcessRunning` treats every throw as dead,
|
|
95
|
+
* which would spawn a second daemon over a live one owned by someone else.
|
|
96
|
+
* That bug is not ported.
|
|
97
|
+
*/
|
|
98
|
+
export declare function isProcessAlive(pid: number, deps?: DaemonLifecycleDeps): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* §2 step 5. Connect, `hello`, close. A refused connection, a connect timeout,
|
|
101
|
+
* or a `hello` that does not answer inside the probe timeout is a failed
|
|
102
|
+
* probe. This is the only check that proves something is *serving*.
|
|
103
|
+
*
|
|
104
|
+
* A `hello` that answers with a structured REFUSAL is not a failed probe. §2
|
|
105
|
+
* step 5 was written against silence, and silence is what it must catch;
|
|
106
|
+
* something that returns `{ ok: false, error: ... }` is unmistakably a live
|
|
107
|
+
* server, and calling it absent would spawn a second daemon over it — the one
|
|
108
|
+
* outcome this whole design exists to prevent. It is reported as reachable
|
|
109
|
+
* with no protocol, which leaves the refusal to be reported by the command's
|
|
110
|
+
* own `hello`, where it becomes a `protocol_error` naming the server's code
|
|
111
|
+
* instead of a lifecycle guess.
|
|
112
|
+
*/
|
|
113
|
+
export declare function probeSocket(socketPath: string, timeoutMs?: number): Promise<SocketProbe>;
|
|
114
|
+
/**
|
|
115
|
+
* §2, decided as one function. The socket is probed at the path recomputed
|
|
116
|
+
* from `--data-dir`, never at the path the file names, so a file that points
|
|
117
|
+
* elsewhere is stale rather than a redirect.
|
|
118
|
+
*
|
|
119
|
+
* One addition to §2's table, licensed by §1's governing rule: a socket that
|
|
120
|
+
* answers `hello` with **no** connection file at all is an attach, not an
|
|
121
|
+
* absence. §2 row 2 already attaches on the socket's authority over a file
|
|
122
|
+
* describing a dead pid; a missing file is strictly less evidence against the
|
|
123
|
+
* socket than a stale one. It also keeps the CLI honest about a daemon started
|
|
124
|
+
* from a build that predates the connection file.
|
|
125
|
+
*/
|
|
126
|
+
export declare function checkDaemon(dataDir: string, deps?: DaemonLifecycleDeps): Promise<DaemonState>;
|
|
127
|
+
//# sourceMappingURL=daemon-connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-connection.d.ts","sourceRoot":"","sources":["../src/daemon-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
// Reading and validating relayflowd's connection file, and deciding whether
|
|
2
|
+
// anything is actually serving a data dir (kernel/DAEMON-LIFECYCLE.md §§1-2).
|
|
3
|
+
//
|
|
4
|
+
// Split from daemon-lifecycle.ts along the same seam ../relay uses between
|
|
5
|
+
// broker-connection.ts and broker-lifecycle.ts: this file answers "what is
|
|
6
|
+
// there?", that one answers "put something there". Neither approaches the
|
|
7
|
+
// 500-line smell in AGENTS.md rule 1.
|
|
8
|
+
//
|
|
9
|
+
// The governing rule, from §1: **the socket is the authority;
|
|
10
|
+
// `connection.json` is an index over it.** A file is never believed on its
|
|
11
|
+
// own. Every "attach" in this module is backed by a `hello` that a live
|
|
12
|
+
// daemon answered on the socket path recomputed from `--data-dir` — never by
|
|
13
|
+
// what a file says about itself.
|
|
14
|
+
import { spawn } from 'node:child_process';
|
|
15
|
+
import { closeSync, mkdirSync, openSync, readFileSync, rmSync, } from 'node:fs';
|
|
16
|
+
import { join, resolve } from 'node:path';
|
|
17
|
+
import { JournalClient, JournalProtocolError } from './journal-client.js';
|
|
18
|
+
import { PROTOCOL_VERSION } from './protocol.js';
|
|
19
|
+
import { defaultRelayflowdPathDeps, resolveRelayflowdBinary, } from './relayflowd-path.js';
|
|
20
|
+
/**
|
|
21
|
+
* The `hello` probe runs before every command, so it must be short. §4 gives
|
|
22
|
+
* `connect()` the same bound for the same reason: a listener that accepts and
|
|
23
|
+
* never answers must not hold the CLI for the 30s request default.
|
|
24
|
+
*/
|
|
25
|
+
export const PROBE_TIMEOUT_MS = 2_000;
|
|
26
|
+
export const CONNECTION_FILE = 'connection.json';
|
|
27
|
+
export const SOCKET_FILE = 'relayflowd.sock';
|
|
28
|
+
export const DAEMON_LOG_FILE = 'relayflowd.log';
|
|
29
|
+
export const defaultDaemonLifecycleDeps = {
|
|
30
|
+
readFile(path) {
|
|
31
|
+
try {
|
|
32
|
+
return readFileSync(path, 'utf8');
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
removeFile(path) {
|
|
39
|
+
rmSync(path, { force: true });
|
|
40
|
+
},
|
|
41
|
+
makeDirectory(path) {
|
|
42
|
+
mkdirSync(path, { recursive: true });
|
|
43
|
+
},
|
|
44
|
+
openAppend: (path) => openSync(path, 'a'),
|
|
45
|
+
closeFd: (fd) => closeSync(fd),
|
|
46
|
+
readTail(path, bytes) {
|
|
47
|
+
try {
|
|
48
|
+
const content = readFileSync(path, 'utf8');
|
|
49
|
+
return content.length <= bytes ? content : content.slice(-bytes);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return '';
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
killProcess: (pid, signal) => {
|
|
56
|
+
process.kill(pid, signal);
|
|
57
|
+
},
|
|
58
|
+
spawnProcess: (command, args, options) => spawn(command, args, options),
|
|
59
|
+
resolveBinary: () => resolveRelayflowdBinary(defaultRelayflowdPathDeps),
|
|
60
|
+
probe: (socketPath, timeoutMs) => probeSocket(socketPath, timeoutMs),
|
|
61
|
+
now: () => Date.now(),
|
|
62
|
+
// Deliberately NOT unref'd: an unref'd timer lets Node exit the event loop
|
|
63
|
+
// mid-poll, which would abandon the await and end the CLI with no report.
|
|
64
|
+
// The deadline in `pollForDaemon` is what bounds this wait.
|
|
65
|
+
sleep: (ms) => new Promise((done) => {
|
|
66
|
+
setTimeout(done, ms);
|
|
67
|
+
}),
|
|
68
|
+
};
|
|
69
|
+
export function socketPathFor(dataDir) {
|
|
70
|
+
return join(resolve(dataDir), SOCKET_FILE);
|
|
71
|
+
}
|
|
72
|
+
export function connectionPathFor(dataDir) {
|
|
73
|
+
return join(resolve(dataDir), CONNECTION_FILE);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* §2 steps 1-2. Absent, unparseable, and wrongly-typed all read the same:
|
|
77
|
+
* `null`. Unknown fields are ignored, so adding one later is not breaking.
|
|
78
|
+
* The `socket_path` agreement check is §2 step 3 and lives in `checkDaemon`,
|
|
79
|
+
* which knows the data dir the path must agree with.
|
|
80
|
+
*/
|
|
81
|
+
export function readConnectionFile(dataDir, deps = defaultDaemonLifecycleDeps) {
|
|
82
|
+
const raw = deps.readFile(connectionPathFor(dataDir));
|
|
83
|
+
if (raw === null)
|
|
84
|
+
return null;
|
|
85
|
+
let parsed;
|
|
86
|
+
try {
|
|
87
|
+
parsed = JSON.parse(raw);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
|
|
93
|
+
return null;
|
|
94
|
+
const record = parsed;
|
|
95
|
+
const socketPath = record['socket_path'];
|
|
96
|
+
const pid = record['pid'];
|
|
97
|
+
const version = record['version'];
|
|
98
|
+
const protocol = record['protocol'];
|
|
99
|
+
const startedAtMs = record['started_at_ms'];
|
|
100
|
+
if (typeof socketPath !== 'string' || socketPath.length === 0)
|
|
101
|
+
return null;
|
|
102
|
+
if (typeof pid !== 'number' || !Number.isInteger(pid) || pid <= 0)
|
|
103
|
+
return null;
|
|
104
|
+
if (typeof version !== 'string')
|
|
105
|
+
return null;
|
|
106
|
+
if (typeof protocol !== 'number' || !Number.isInteger(protocol))
|
|
107
|
+
return null;
|
|
108
|
+
if (typeof startedAtMs !== 'number' || !Number.isInteger(startedAtMs) || startedAtMs <= 0) {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
socket_path: socketPath,
|
|
113
|
+
pid,
|
|
114
|
+
version,
|
|
115
|
+
protocol,
|
|
116
|
+
started_at_ms: startedAtMs,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* §2 step 4. **`EPERM` means alive** — the process exists and is owned by
|
|
121
|
+
* another user. ../relay's `isProcessRunning` treats every throw as dead,
|
|
122
|
+
* which would spawn a second daemon over a live one owned by someone else.
|
|
123
|
+
* That bug is not ported.
|
|
124
|
+
*/
|
|
125
|
+
export function isProcessAlive(pid, deps = defaultDaemonLifecycleDeps) {
|
|
126
|
+
if (!Number.isInteger(pid) || pid <= 0)
|
|
127
|
+
return false;
|
|
128
|
+
try {
|
|
129
|
+
deps.killProcess(pid, 0);
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
return error.code === 'EPERM';
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* §2 step 5. Connect, `hello`, close. A refused connection, a connect timeout,
|
|
138
|
+
* or a `hello` that does not answer inside the probe timeout is a failed
|
|
139
|
+
* probe. This is the only check that proves something is *serving*.
|
|
140
|
+
*
|
|
141
|
+
* A `hello` that answers with a structured REFUSAL is not a failed probe. §2
|
|
142
|
+
* step 5 was written against silence, and silence is what it must catch;
|
|
143
|
+
* something that returns `{ ok: false, error: ... }` is unmistakably a live
|
|
144
|
+
* server, and calling it absent would spawn a second daemon over it — the one
|
|
145
|
+
* outcome this whole design exists to prevent. It is reported as reachable
|
|
146
|
+
* with no protocol, which leaves the refusal to be reported by the command's
|
|
147
|
+
* own `hello`, where it becomes a `protocol_error` naming the server's code
|
|
148
|
+
* instead of a lifecycle guess.
|
|
149
|
+
*/
|
|
150
|
+
export async function probeSocket(socketPath, timeoutMs = PROBE_TIMEOUT_MS) {
|
|
151
|
+
const client = new JournalClient(socketPath, {
|
|
152
|
+
connectTimeoutMs: timeoutMs,
|
|
153
|
+
requestTimeoutMs: timeoutMs,
|
|
154
|
+
});
|
|
155
|
+
try {
|
|
156
|
+
await client.connect();
|
|
157
|
+
const hello = await client.hello('flows-probe');
|
|
158
|
+
return { reachable: true, protocol: hello.protocol };
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
return error instanceof JournalProtocolError ? { reachable: true } : { reachable: false };
|
|
162
|
+
}
|
|
163
|
+
finally {
|
|
164
|
+
client.close();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* §2, decided as one function. The socket is probed at the path recomputed
|
|
169
|
+
* from `--data-dir`, never at the path the file names, so a file that points
|
|
170
|
+
* elsewhere is stale rather than a redirect.
|
|
171
|
+
*
|
|
172
|
+
* One addition to §2's table, licensed by §1's governing rule: a socket that
|
|
173
|
+
* answers `hello` with **no** connection file at all is an attach, not an
|
|
174
|
+
* absence. §2 row 2 already attaches on the socket's authority over a file
|
|
175
|
+
* describing a dead pid; a missing file is strictly less evidence against the
|
|
176
|
+
* socket than a stale one. It also keeps the CLI honest about a daemon started
|
|
177
|
+
* from a build that predates the connection file.
|
|
178
|
+
*/
|
|
179
|
+
export async function checkDaemon(dataDir, deps = defaultDaemonLifecycleDeps) {
|
|
180
|
+
const socketPath = socketPathFor(dataDir);
|
|
181
|
+
const connection = readConnectionFile(dataDir, deps);
|
|
182
|
+
const agrees = connection !== null && connection.socket_path === socketPath;
|
|
183
|
+
// §2's reason for carrying `protocol` in the file: an incompatible daemon
|
|
184
|
+
// owning this data dir is decided without a round trip.
|
|
185
|
+
if (agrees && connection.protocol !== PROTOCOL_VERSION) {
|
|
186
|
+
return { kind: 'incompatible', protocol: connection.protocol };
|
|
187
|
+
}
|
|
188
|
+
const probe = await deps.probe(socketPath, PROBE_TIMEOUT_MS);
|
|
189
|
+
if (probe.reachable) {
|
|
190
|
+
// Only a KNOWN mismatch refuses. An undefined protocol means the daemon
|
|
191
|
+
// is serving but declined to say, which the command's own `hello` will
|
|
192
|
+
// report far better than this function could.
|
|
193
|
+
if (probe.protocol !== undefined && probe.protocol !== PROTOCOL_VERSION) {
|
|
194
|
+
return { kind: 'incompatible', protocol: probe.protocol };
|
|
195
|
+
}
|
|
196
|
+
if (!agrees) {
|
|
197
|
+
// No warning when the file is merely ABSENT: that is the ordinary state
|
|
198
|
+
// during a daemon's boot window, and the ordinary state of any daemon
|
|
199
|
+
// built before the connection file existed. A file that CONTRADICTS the
|
|
200
|
+
// socket is a different matter and is named.
|
|
201
|
+
const mismatch = connection === null
|
|
202
|
+
? undefined
|
|
203
|
+
: `"${connectionPathFor(dataDir)}" names a different socket (${connection.socket_path}); attaching to "${socketPath}" instead.`;
|
|
204
|
+
return {
|
|
205
|
+
kind: 'attached',
|
|
206
|
+
socketPath,
|
|
207
|
+
connection: null,
|
|
208
|
+
...(mismatch === undefined ? {} : { warning: mismatch }),
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
// §2 row 2: dead pid, live socket. Something is serving; do not spawn.
|
|
212
|
+
// Binding over a live daemon is the corruption this design prevents.
|
|
213
|
+
const warning = isProcessAlive(connection.pid, deps)
|
|
214
|
+
? undefined
|
|
215
|
+
: `${CONNECTION_FILE} names pid ${connection.pid}, which is not running, but "${socketPath}" is serving. Attaching to the socket.`;
|
|
216
|
+
return {
|
|
217
|
+
kind: 'attached',
|
|
218
|
+
socketPath,
|
|
219
|
+
connection,
|
|
220
|
+
...(warning === undefined ? {} : { warning }),
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
// Nothing is serving.
|
|
224
|
+
if (connection === null)
|
|
225
|
+
return { kind: 'absent' };
|
|
226
|
+
if (!agrees) {
|
|
227
|
+
return {
|
|
228
|
+
kind: 'stale',
|
|
229
|
+
reason: 'socket_path_mismatch',
|
|
230
|
+
message: `${CONNECTION_FILE} names socket "${connection.socket_path}", not "${socketPath}".`,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
// §2 row 3: a live pid proves nothing — a daemon mid-boot and an unrelated
|
|
234
|
+
// process that inherited the pid look identical from here, and neither is
|
|
235
|
+
// an attach. Spawning is safe in both cases because the daemon holds the
|
|
236
|
+
// mutex (§3): a redundant child loses the flock and exits 3.
|
|
237
|
+
return isProcessAlive(connection.pid, deps)
|
|
238
|
+
? {
|
|
239
|
+
kind: 'stale',
|
|
240
|
+
reason: 'live_pid_dead_socket',
|
|
241
|
+
message: `pid ${connection.pid} is alive but "${socketPath}" is not accepting connections.`,
|
|
242
|
+
}
|
|
243
|
+
: {
|
|
244
|
+
kind: 'stale',
|
|
245
|
+
reason: 'dead_pid_dead_socket',
|
|
246
|
+
message: `pid ${connection.pid} is gone and "${socketPath}" is not accepting connections.`,
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=daemon-connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-connection.js","sourceRoot":"","sources":["../src/daemon-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type DaemonLifecycleDeps, type DaemonState } from './daemon-connection.js';
|
|
2
|
+
export * from './daemon-connection.js';
|
|
3
|
+
/** `relayflowd serve` lost the singleton lock — someone else is serving (§3). */
|
|
4
|
+
export declare const EXIT_ALREADY_SERVING = 3;
|
|
5
|
+
/** §3: matches ../relay's DETACHED_START_READY_TIMEOUT_MS. */
|
|
6
|
+
export declare const DEFAULT_START_TIMEOUT_MS = 10000;
|
|
7
|
+
/** §3: matches the existing poll in scripts/run-local-workflow.mjs:64-71. */
|
|
8
|
+
export declare const START_POLL_INTERVAL_MS = 50;
|
|
9
|
+
export interface EnsureDaemonOptions {
|
|
10
|
+
/** `false` restores today's fail-closed behavior (`--no-spawn`). */
|
|
11
|
+
spawn?: boolean;
|
|
12
|
+
timeoutMs?: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* §3's CLI algorithm. Attach if something is serving; otherwise spawn
|
|
16
|
+
* `relayflowd serve` detached and poll for it, bounded.
|
|
17
|
+
*
|
|
18
|
+
* The CLI never has to be clever here, and that is the load-bearing
|
|
19
|
+
* simplification: because the singleton mutex lives in the daemon
|
|
20
|
+
* (`flock` on `<data-dir>/relayflowd.lock`, §3), spawning when in doubt is
|
|
21
|
+
* always safe. A child that loses the race exits `EXIT_ALREADY_SERVING`
|
|
22
|
+
* having unlinked nothing, bound nothing and written nothing, and this loop
|
|
23
|
+
* keeps polling until the winner publishes.
|
|
24
|
+
*
|
|
25
|
+
* The CLI never terminates a daemon — not one it found, and not one it
|
|
26
|
+
* spawned.
|
|
27
|
+
*/
|
|
28
|
+
export declare function ensureDaemon(dataDir: string, options?: EnsureDaemonOptions, deps?: DaemonLifecycleDeps): Promise<DaemonState>;
|
|
29
|
+
//# sourceMappingURL=daemon-lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-lifecycle.d.ts","sourceRoot":"","sources":["../src/daemon-lifecycle.ts"],"names":[],"mappings":"AAUA,OAAO,EAML,KAAK,mBAAmB,EACxB,KAAK,WAAW,EACjB,MAAM,wBAAwB,CAAC;AAGhC,cAAc,wBAAwB,CAAC;AAEvC,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAIzC,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAwB,EACjC,IAAI,GAAE,mBAAgD,GACrD,OAAO,CAAC,WAAW,CAAC,CA0CtB"}
|