@aroman22/codegraph-vba-darwin-arm64 1.15.0 → 1.17.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/lib/dist/bin/codegraph.js +13 -7
- package/lib/dist/bin/codegraph.js.map +1 -1
- package/lib/dist/bin/daemon-release.d.ts +7 -0
- package/lib/dist/bin/daemon-release.d.ts.map +1 -0
- package/lib/dist/bin/daemon-release.js +18 -0
- package/lib/dist/bin/daemon-release.js.map +1 -0
- package/lib/dist/db/queries.d.ts +41 -0
- package/lib/dist/db/queries.d.ts.map +1 -1
- package/lib/dist/db/queries.js +78 -1
- package/lib/dist/db/queries.js.map +1 -1
- package/lib/dist/extraction/access-erd-extractor.d.ts +57 -0
- package/lib/dist/extraction/access-erd-extractor.d.ts.map +1 -0
- package/lib/dist/extraction/access-erd-extractor.js +389 -0
- package/lib/dist/extraction/access-erd-extractor.js.map +1 -0
- package/lib/dist/extraction/extraction-version.d.ts +1 -1
- package/lib/dist/extraction/extraction-version.js +1 -1
- package/lib/dist/extraction/grammars.d.ts +20 -0
- package/lib/dist/extraction/grammars.d.ts.map +1 -1
- package/lib/dist/extraction/grammars.js +34 -0
- package/lib/dist/extraction/grammars.js.map +1 -1
- package/lib/dist/extraction/index.d.ts +1 -0
- package/lib/dist/extraction/index.d.ts.map +1 -1
- package/lib/dist/extraction/index.js +371 -351
- package/lib/dist/extraction/index.js.map +1 -1
- package/lib/dist/extraction/parse-pool.d.ts +8 -3
- package/lib/dist/extraction/parse-pool.d.ts.map +1 -1
- package/lib/dist/extraction/parse-pool.js +1 -2
- package/lib/dist/extraction/parse-pool.js.map +1 -1
- package/lib/dist/extraction/parse-worker.js +7 -6
- package/lib/dist/extraction/parse-worker.js.map +1 -1
- package/lib/dist/extraction/sql-query-extractor.d.ts +16 -14
- package/lib/dist/extraction/sql-query-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/sql-query-extractor.js +43 -31
- package/lib/dist/extraction/sql-query-extractor.js.map +1 -1
- package/lib/dist/extraction/sql-table-scan.d.ts +184 -0
- package/lib/dist/extraction/sql-table-scan.d.ts.map +1 -0
- package/lib/dist/extraction/sql-table-scan.js +288 -0
- package/lib/dist/extraction/sql-table-scan.js.map +1 -0
- package/lib/dist/extraction/tree-sitter.d.ts +10 -1
- package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter.js +34 -3
- package/lib/dist/extraction/tree-sitter.js.map +1 -1
- package/lib/dist/extraction/vba/call-sweep.d.ts +2 -7
- package/lib/dist/extraction/vba/call-sweep.d.ts.map +1 -1
- package/lib/dist/extraction/vba/call-sweep.js +144 -90
- package/lib/dist/extraction/vba/call-sweep.js.map +1 -1
- package/lib/dist/extraction/vba/calls.d.ts +24 -4
- package/lib/dist/extraction/vba/calls.d.ts.map +1 -1
- package/lib/dist/extraction/vba/calls.js +42 -12
- package/lib/dist/extraction/vba/calls.js.map +1 -1
- package/lib/dist/extraction/vba/constants.d.ts +7 -14
- package/lib/dist/extraction/vba/constants.d.ts.map +1 -1
- package/lib/dist/extraction/vba/constants.js +8 -36
- package/lib/dist/extraction/vba/constants.js.map +1 -1
- package/lib/dist/extraction/vba/context.d.ts +443 -7
- package/lib/dist/extraction/vba/context.d.ts.map +1 -1
- package/lib/dist/extraction/vba/context.js +325 -29
- package/lib/dist/extraction/vba/context.js.map +1 -1
- package/lib/dist/extraction/vba/controls.d.ts +18 -1
- package/lib/dist/extraction/vba/controls.d.ts.map +1 -1
- package/lib/dist/extraction/vba/controls.js +99 -27
- package/lib/dist/extraction/vba/controls.js.map +1 -1
- package/lib/dist/extraction/vba/declarations.d.ts +1 -6
- package/lib/dist/extraction/vba/declarations.d.ts.map +1 -1
- package/lib/dist/extraction/vba/declarations.js +5 -39
- package/lib/dist/extraction/vba/declarations.js.map +1 -1
- package/lib/dist/extraction/vba/dims.d.ts +11 -7
- package/lib/dist/extraction/vba/dims.d.ts.map +1 -1
- package/lib/dist/extraction/vba/dims.js +265 -29
- package/lib/dist/extraction/vba/dims.js.map +1 -1
- package/lib/dist/extraction/vba/docmd.d.ts +29 -2
- package/lib/dist/extraction/vba/docmd.d.ts.map +1 -1
- package/lib/dist/extraction/vba/docmd.js +297 -18
- package/lib/dist/extraction/vba/docmd.js.map +1 -1
- package/lib/dist/extraction/vba/enums-consts.d.ts +7 -14
- package/lib/dist/extraction/vba/enums-consts.d.ts.map +1 -1
- package/lib/dist/extraction/vba/enums-consts.js +11 -45
- package/lib/dist/extraction/vba/enums-consts.js.map +1 -1
- package/lib/dist/extraction/vba/error-channel.d.ts +57 -0
- package/lib/dist/extraction/vba/error-channel.d.ts.map +1 -0
- package/lib/dist/extraction/vba/error-channel.js +128 -0
- package/lib/dist/extraction/vba/error-channel.js.map +1 -0
- package/lib/dist/extraction/vba/errors.d.ts +64 -0
- package/lib/dist/extraction/vba/errors.d.ts.map +1 -0
- package/lib/dist/extraction/vba/errors.js +775 -0
- package/lib/dist/extraction/vba/errors.js.map +1 -0
- package/lib/dist/extraction/vba/filesystem-statements.d.ts +23 -0
- package/lib/dist/extraction/vba/filesystem-statements.d.ts.map +1 -0
- package/lib/dist/extraction/vba/filesystem-statements.js +70 -0
- package/lib/dist/extraction/vba/filesystem-statements.js.map +1 -0
- package/lib/dist/extraction/vba/implements.d.ts +1 -6
- package/lib/dist/extraction/vba/implements.d.ts.map +1 -1
- package/lib/dist/extraction/vba/implements.js +1 -22
- package/lib/dist/extraction/vba/implements.js.map +1 -1
- package/lib/dist/extraction/vba/labels.d.ts +26 -0
- package/lib/dist/extraction/vba/labels.d.ts.map +1 -0
- package/lib/dist/extraction/vba/labels.js +180 -0
- package/lib/dist/extraction/vba/labels.js.map +1 -0
- package/lib/dist/extraction/vba/module-vars.d.ts +36 -0
- package/lib/dist/extraction/vba/module-vars.d.ts.map +1 -0
- package/lib/dist/extraction/vba/module-vars.js +145 -0
- package/lib/dist/extraction/vba/module-vars.js.map +1 -0
- package/lib/dist/extraction/vba/options.d.ts +88 -0
- package/lib/dist/extraction/vba/options.d.ts.map +1 -0
- package/lib/dist/extraction/vba/options.js +39 -0
- package/lib/dist/extraction/vba/options.js.map +1 -0
- package/lib/dist/extraction/vba/parameters.d.ts +35 -0
- package/lib/dist/extraction/vba/parameters.d.ts.map +1 -0
- package/lib/dist/extraction/vba/parameters.js +110 -0
- package/lib/dist/extraction/vba/parameters.js.map +1 -0
- package/lib/dist/extraction/vba/procedures.d.ts +1 -9
- package/lib/dist/extraction/vba/procedures.d.ts.map +1 -1
- package/lib/dist/extraction/vba/procedures.js +174 -112
- package/lib/dist/extraction/vba/procedures.js.map +1 -1
- package/lib/dist/extraction/vba/rules.d.ts +10 -5
- package/lib/dist/extraction/vba/rules.d.ts.map +1 -1
- package/lib/dist/extraction/vba/rules.js +19 -0
- package/lib/dist/extraction/vba/rules.js.map +1 -1
- package/lib/dist/extraction/vba/runtime-objects.d.ts +59 -0
- package/lib/dist/extraction/vba/runtime-objects.d.ts.map +1 -0
- package/lib/dist/extraction/vba/runtime-objects.js +106 -0
- package/lib/dist/extraction/vba/runtime-objects.js.map +1 -0
- package/lib/dist/extraction/vba/signature.d.ts +57 -0
- package/lib/dist/extraction/vba/signature.d.ts.map +1 -0
- package/lib/dist/extraction/vba/signature.js +164 -0
- package/lib/dist/extraction/vba/signature.js.map +1 -0
- package/lib/dist/extraction/vba/sql-wrapper.d.ts +76 -3
- package/lib/dist/extraction/vba/sql-wrapper.d.ts.map +1 -1
- package/lib/dist/extraction/vba/sql-wrapper.js +725 -151
- package/lib/dist/extraction/vba/sql-wrapper.js.map +1 -1
- package/lib/dist/extraction/vba/tempvars.d.ts.map +1 -1
- package/lib/dist/extraction/vba/tempvars.js +4 -0
- package/lib/dist/extraction/vba/tempvars.js.map +1 -1
- package/lib/dist/extraction/vba/text-utils.d.ts +62 -2
- package/lib/dist/extraction/vba/text-utils.d.ts.map +1 -1
- package/lib/dist/extraction/vba/text-utils.js +84 -6
- package/lib/dist/extraction/vba/text-utils.js.map +1 -1
- package/lib/dist/extraction/vba-extractor.d.ts +18 -1
- package/lib/dist/extraction/vba-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/vba-extractor.js +111 -16
- package/lib/dist/extraction/vba-extractor.js.map +1 -1
- package/lib/dist/extraction/vba-form-extractor.d.ts +28 -14
- package/lib/dist/extraction/vba-form-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/vba-form-extractor.js +56 -21
- package/lib/dist/extraction/vba-form-extractor.js.map +1 -1
- package/lib/dist/extraction/vba-preprocess.d.ts +89 -3
- package/lib/dist/extraction/vba-preprocess.d.ts.map +1 -1
- package/lib/dist/extraction/vba-preprocess.js +221 -57
- package/lib/dist/extraction/vba-preprocess.js.map +1 -1
- package/lib/dist/extraction/vba-source.d.ts +0 -10
- package/lib/dist/extraction/vba-source.d.ts.map +1 -1
- package/lib/dist/extraction/vba-source.js +0 -13
- package/lib/dist/extraction/vba-source.js.map +1 -1
- package/lib/dist/extraction/vba-test-manifest-extractor.d.ts +0 -6
- package/lib/dist/extraction/vba-test-manifest-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/vba-test-manifest-extractor.js +0 -1
- package/lib/dist/extraction/vba-test-manifest-extractor.js.map +1 -1
- package/lib/dist/graph/behavior-evidence.d.ts +162 -0
- package/lib/dist/graph/behavior-evidence.d.ts.map +1 -0
- package/lib/dist/graph/behavior-evidence.js +529 -0
- package/lib/dist/graph/behavior-evidence.js.map +1 -0
- package/lib/dist/index.d.ts +22 -0
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +37 -1
- package/lib/dist/index.js.map +1 -1
- package/lib/dist/mcp/daemon-manager.d.ts.map +1 -1
- package/lib/dist/mcp/daemon-manager.js +7 -3
- package/lib/dist/mcp/daemon-manager.js.map +1 -1
- package/lib/dist/mcp/daemon-paths.d.ts +6 -0
- package/lib/dist/mcp/daemon-paths.d.ts.map +1 -1
- package/lib/dist/mcp/daemon-paths.js +15 -0
- package/lib/dist/mcp/daemon-paths.js.map +1 -1
- package/lib/dist/mcp/daemon-registry.d.ts +82 -7
- package/lib/dist/mcp/daemon-registry.d.ts.map +1 -1
- package/lib/dist/mcp/daemon-registry.js +557 -45
- package/lib/dist/mcp/daemon-registry.js.map +1 -1
- package/lib/dist/mcp/daemon-watchdog.d.ts +12 -0
- package/lib/dist/mcp/daemon-watchdog.d.ts.map +1 -1
- package/lib/dist/mcp/daemon-watchdog.js +37 -7
- package/lib/dist/mcp/daemon-watchdog.js.map +1 -1
- package/lib/dist/mcp/daemon.d.ts +20 -1
- package/lib/dist/mcp/daemon.d.ts.map +1 -1
- package/lib/dist/mcp/daemon.js +123 -30
- package/lib/dist/mcp/daemon.js.map +1 -1
- package/lib/dist/mcp/index.d.ts.map +1 -1
- package/lib/dist/mcp/index.js +13 -2
- package/lib/dist/mcp/index.js.map +1 -1
- package/lib/dist/mcp/proxy.d.ts +32 -0
- package/lib/dist/mcp/proxy.d.ts.map +1 -1
- package/lib/dist/mcp/proxy.js +163 -31
- package/lib/dist/mcp/proxy.js.map +1 -1
- package/lib/dist/mcp/server-instructions.d.ts +1 -1
- package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
- package/lib/dist/mcp/server-instructions.js +26 -4
- package/lib/dist/mcp/server-instructions.js.map +1 -1
- package/lib/dist/mcp/tools.d.ts +12 -0
- package/lib/dist/mcp/tools.d.ts.map +1 -1
- package/lib/dist/mcp/tools.js +92 -1
- package/lib/dist/mcp/tools.js.map +1 -1
- package/lib/dist/project-config.d.ts +43 -2
- package/lib/dist/project-config.d.ts.map +1 -1
- package/lib/dist/project-config.js +86 -2
- package/lib/dist/project-config.js.map +1 -1
- package/lib/dist/resolution/index.d.ts +47 -2
- package/lib/dist/resolution/index.d.ts.map +1 -1
- package/lib/dist/resolution/index.js +160 -5
- package/lib/dist/resolution/index.js.map +1 -1
- package/lib/dist/resolution/name-matcher.d.ts +25 -0
- package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
- package/lib/dist/resolution/name-matcher.js +59 -0
- package/lib/dist/resolution/name-matcher.js.map +1 -1
- package/lib/dist/resolution/vba-runtime-objects.d.ts +11 -11
- package/lib/dist/resolution/vba-runtime-objects.d.ts.map +1 -1
- package/lib/dist/resolution/vba-runtime-objects.js +18 -38
- package/lib/dist/resolution/vba-runtime-objects.js.map +1 -1
- package/lib/dist/types.d.ts +13 -5
- package/lib/dist/types.d.ts.map +1 -1
- package/lib/dist/types.js +17 -0
- package/lib/dist/types.js.map +1 -1
- package/lib/dist/utils/backtrace-helpers.d.ts +14 -2
- package/lib/dist/utils/backtrace-helpers.d.ts.map +1 -1
- package/lib/dist/utils/backtrace-helpers.js +81 -7
- package/lib/dist/utils/backtrace-helpers.js.map +1 -1
- package/lib/dist/utils/sql-impact-helpers.d.ts.map +1 -1
- package/lib/dist/utils/sql-impact-helpers.js +119 -30
- package/lib/dist/utils/sql-impact-helpers.js.map +1 -1
- package/lib/node_modules/.modules.yaml +1 -1
- package/lib/node_modules/.pnpm-workspace-state-v1.json +1 -1
- package/lib/package.json +3 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-registry.js","sourceRoot":"","sources":["../../src/mcp/daemon-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon-registry.js","sourceRoot":"","sources":["../../src/mcp/daemon-registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,wCAEC;AAYD,wCAQC;AAGD,wCAOC;AAGD,4CAMC;AAMD,kCA2BC;AAwGD,sEA2BC;AAED,gEAMC;AA4HD,kEAUC;AAGD,oEA0CC;AAGD,8DAiBC;AAWD,kDAEC;AAGD,wDAGC;AAGD,0CAEC;AAOD,oCAgEC;AAED,oDAUC;AAuDD,wCAMC;AA7mBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAiC;AACjC,yCAA2B;AAC3B,iDAA8K;AAY9K;;;GAGG;AACH,SAAgB,cAAc;IAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/F,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAQ,GAA6B,CAAC,IAAI,KAAK,OAAO,CAAC;IACzD,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,SAAgB,cAAc,CAAC,GAAiB;IAC9C,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,OAA4B,EAAE;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;IACjC,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,sBAAsB;IACnC,CAAC;IAED,MAAM,IAAI,GAAmB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,GAAG,GAAwB,IAAI,CAAC;QACpC,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAiB,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,GAAG,IAAI,CAAC;QACb,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;QACjF,IAAI,KAAK,IAAI,cAAc,CAAC,GAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,GAAI,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC;gBAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,cAAc,CAAC,MAAsC,EAAE,QAAwB;IACtF,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,MAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,IAAI,MAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QAChG,MAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,CAAC;AAC/C,CAAC;AAED,gFAAgF;AAChF,SAAS,sBAAsB,CAAC,IAAY,EAAE,QAAwB,EAAE,YAAyB;IAC/F,IAAI,IAAI,GAAsC,IAAI,CAAC;IACnD,IAAI,QAAQ,GAAwB,IAAI,CAAC;IACzC,IAAI,CAAC;QAAC,IAAI,GAAG,IAAA,6BAAc,EAAC,EAAE,CAAC,YAAY,CAAC,IAAA,+BAAgB,EAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IACpG,IAAI,CAAC;QAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAiB,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IAE9G,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/F,YAAY,EAAE,EAAE,CAAC;IAEjB,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,IAAA,+BAAgB,EAAC,IAAI,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IACD,4EAA4E;IAC5E,2EAA2E;IAC3E,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5E,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAEnF,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,SAAiB;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AA2BY,QAAA,2BAA2B,GAAG,MAAM,CAAC;AAClD,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAC1C,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAIvC,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,KAAK,GAAG,IAAA,qCAAsB,EAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC;QAAC,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAAC,CAAC;IAChJ,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACtB,CAAC;AAED,SAAS,gCAAgC,CAAC,IAAY,EAAE,GAAW;IACjE,MAAM,KAAK,GAAG,IAAA,qCAAsB,EAAC,IAAI,CAAC,CAAC;IAC3C,KAAK,MAAM,QAAQ,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAiC,CAAC;YAC5F,SAAS,GAAG,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,uBAAuB,CAAC;QAC9H,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,uBAAuB,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,SAAS;YAAC,CAAC;QAClG,CAAC;QACD,IAAI,SAAS,GAAG,GAAG;YAAE,SAAS;QAC9B,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,GAAG,KAAK,UAAU,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC;gBAAC,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,SAAS;YAAC,CAAC;YACxD,IAAI,CAAC;gBAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,SAAgB,6BAA6B,CAC3C,IAAY,EACZ,UAA2D,EAAE;IAE7D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACtC,gCAAgC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,KAAK,GAAG,IAAA,qCAAsB,EAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAwB,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,uBAAuB,EAAE,CAAC;IAClJ,MAAM,GAAG,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,MAAM,CAAC;IACzC,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC;YAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAClE,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;YACjD,IAAI,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACnC,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO;gBAAE,MAAM,GAAG,CAAC;YAC1E,IAAI,EAAU,CAAC;YACf,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,OAAO,EAAE,CAAC;gBAC7D,IAAK,OAAiC,CAAC,IAAI,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBACtE,MAAM,OAAO,CAAC;YAChB,CAAC;YACD,IAAI,CAAC;gBAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;oBAAS,CAAC;gBAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;QACjG,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,0BAA0B,CAAC,IAAY,EAAE,IAAyB;IAChF,MAAM,KAAK,GAAG,IAAA,qCAAsB,EAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAiC,CAAC;QAC3F,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;YAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;AACxB,CAAC;AAWD,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgC,CAAC;QAC7D,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;YACrE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;YAC5E,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU;YACxD,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,KAAK,QAAQ;YAC1F,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjE,OAAO,KAA2B,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1B,CAAC;AAID,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,UAAU,GAAG,IAAA,2CAA4B,EAAC,IAAI,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,CAAC;QAAC,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAAC,CAAC;IAChJ,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACtB,CAAC;AAED,yEAAyE;AACzE,SAAS,+BAA+B,CAAC,IAAY,EAAE,GAAW;IAChE,MAAM,UAAU,GAAG,IAAA,2CAA4B,EAAC,IAAI,CAAC,CAAC;IACtD,KAAK,MAAM,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAiD,CAAC;YAC1G,SAAS,GAAG,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,mCAA2B,CAAC;QAC9H,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,mCAA2B,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,SAAS;YAAC,CAAC;QACtG,CAAC;QACD,IAAI,SAAS,GAAG,GAAG;YAAE,SAAS;QAC9B,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,GAAG,UAAU,iBAAiB,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;YAClE,IAAI,CAAC;gBAAC,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,SAAS;YAAC,CAAC;YAC7D,IAAI,CAAC;gBAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,6DAA6D;YAC7D,IAAI,CAAC;gBAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,GAAW;IACtD,+BAA+B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,UAAU,GAAG,IAAA,2CAA4B,EAAC,IAAI,CAAC,CAAC;IACtD,MAAM,MAAM,GAAmB,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,mCAA2B,EAAE,CAAC;IAC5H,IAAI,CAAC;QAAC,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAAC,CAAC;IAC1F,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IACtB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,MAAsB;IACjE,MAAM,UAAU,GAAG,IAAA,2CAA4B,EAAC,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAA4B,CAAC;QAC3F,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;YAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;AACpC,CAAC;AAED,gFAAgF;AAChF,SAAS,wBAAwB,CAAC,IAAY,EAAE,GAAW,EAAE,SAAsB;IACjF,MAAM,SAAS,GAAG,IAAA,wCAAyB,EAAC,IAAI,CAAC,CAAC;IAClD,IAAI,OAAO,GAA8B,IAAI,CAAC;IAC9C,IAAI,UAAU,GAAG,GAAG,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,kBAAkB,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QACjE,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IACxB,6EAA6E;IAC7E,+EAA+E;IAC/E,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,mCAA2B,IAAI,GAAG,CAAC;IACrG,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,SAAS,EAAE,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,MAAM,SAAS,GAAG,GAAG,IAAA,2CAA4B,EAAC,IAAI,CAAC,gBAAgB,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;IAC/G,IAAI,CAAC;QACH,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QACnE,IAAI,OAAO,GAA8B,IAAI,CAAC;QAC9C,IAAI,WAAW,GAAG,GAAG,GAAG,mCAA2B,CAAC;QACpD,IAAI,CAAC;YACH,OAAO,GAAG,kBAAkB,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;YACjE,WAAW,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,GAAG,mCAA2B,CAAC;QACnG,CAAC;QAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAEnC,IAAI,WAAW,GAAG,GAAG,EAAE,CAAC;YACtB,qEAAqE;YACrE,0EAA0E;YAC1E,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;gBACrE,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS,IAAI,WAAW,EAAE,CAAC;oBAC9E,IAAI,CAAC;wBAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;oBACtD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,SAAgB,2BAA2B,CACzC,IAAY,EACZ,MAAc,IAAI,CAAC,GAAG,EAAE,EACxB,QAA4C,EAAE;IAE9C,MAAM,SAAS,GAAG,IAAA,wCAAyB,EAAC,IAAI,CAAC,CAAC;IAClD,+BAA+B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,CAAC,wBAAwB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACvE,CAAC;AAED,4EAA4E;AAC5E,SAAgB,4BAA4B,CAC1C,IAAY,EACZ,QAAwB,EACxB,UAA2D,EAAE;IAE7D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACtC,IAAI,2BAA2B,CAAC,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,MAAM,SAAS,GAAG,IAAA,wCAAyB,EAAC,IAAI,CAAC,CAAC;IAClD,MAAM,KAAK,GAAuB;QAChC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE;QAC1B,QAAQ,EAAE,OAAO,CAAC,GAAG;QACrB,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,GAAG,GAAG,mCAA2B;QAC5C,UAAU,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE;KAClG,CAAC;IACF,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,OAAO,GAAG,GAAG,SAAS,IAAI,KAAK,CAAC,KAAK,MAAM,CAAC;IAClD,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC;YAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAC1E,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAClE,qEAAqE;YACrE,uEAAuE;YACvE,8DAA8D;YAC9D,IAAI,EAAU,CAAC;YACf,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,OAAO,EAAE,CAAC;gBACjE,IAAK,OAAiC,CAAC,IAAI,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBACtE,MAAM,OAAO,CAAC;YAChB,CAAC;YACD,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBACxD,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;oBAAS,CAAC;gBACT,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kFAAkF;AAClF,SAAgB,yBAAyB,CAAC,IAAY,EAAE,KAAyB,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IACzG,MAAM,SAAS,GAAG,IAAA,wCAAyB,EAAC,IAAI,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,MAAM,OAAO,GAAG,GAAG,SAAS,IAAI,KAAK,CAAC,KAAK,gBAAgB,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QACvE,IAAI,OAAO,EAAE,KAAK,KAAK,KAAK,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACjD,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;QACxB,KAAK,CAAC,SAAS,GAAG,GAAG,GAAG,mCAA2B,CAAC;QACpD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAClF,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;QACjE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY,EAAE,KAAyB;IACxE,MAAM,SAAS,GAAG,IAAA,wCAAyB,EAAC,IAAI,CAAC,CAAC;IAClD,IAAI,OAAO,GAA8B,IAAI,CAAC;IAC9C,IAAI,CAAC;QAAC,OAAO,GAAG,kBAAkB,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO;IAAC,CAAC;IAC3F,IAAI,OAAO,EAAE,KAAK,KAAK,KAAK,CAAC,KAAK;QAAE,OAAO;IAC3C,IAAI,CAAC;QAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,+EAA+E;AAC/E,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,iEAAiE;AACjE,SAAgB,sBAAsB,CAAC,IAAY;IACjD,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5E,CAAC;AAED,yEAAyE;AAClE,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,OAA0B,EAAE;IAC9E,OAAO,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,OAA0B,EAAE;IAC3E,IAAI,SAAS,GAA+B,IAAI,CAAC;IACjD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC;QAC7D,SAAS,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS;YAAE,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IACxG,CAAC;IACD,IAAI,QAAQ,GAA0B,IAAI,CAAC;IAC3C,IAAI,KAAK,GAA8B,IAAI,CAAC;IAC5C,IAAI,CAAC;QACH,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAA,6BAAc,EAAC,EAAE,CAAC,YAAY,CAAC,IAAA,+BAAgB,EAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAC7E,IAAI,IAAI;gBAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACnG,IAAI,GAAG;gBAAE,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAChE,KAAK,GAAG,4BAA4B,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;QAC7H,IAAI,CAAC,0BAA0B,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;YAAS,CAAC;QACT,0BAA0B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC;IAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,2BAA2B,CAAC,CAAC;IACzG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAC7D,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,oBAAoB,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9E,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YAC5B,OAAO;gBACL,IAAI;gBACJ,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,OAAO,KAAK,mBAAmB;oBACtC,CAAC,CAAC,6FAA6F;oBAC/F,CAAC,CAAC,2EAA2E;aAChF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,IAAI;gBACJ,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,OAAO,EAAE,oBAAoB;gBAC7B,OAAO,EAAE,2GAA2G;aACrH,CAAC;QACJ,CAAC;QACD,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAC1D,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,QAAwB;IAExB,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,IAAA,wCAAyB,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAClF,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;IACjF,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClE,IAAI,MAAM,KAAK,aAAa;YAAE,OAAO,MAAM,CAAC;IAC9C,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,sBAAsB,CAC7B,UAAkB,EAClB,QAAwB;IAExB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,GAAyB,OAAO,CAAC;QAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,MAAyD,EAAE,EAAE;YAC3E,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5D,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC;YAChB,IAAI,OAAe,CAAC;YACpB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACtC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACnC,IAAI,KAA8B,CAAC;gBACnC,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAC3G,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBACtB,MAAM,QAAQ,GACZ,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG;wBAClD,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;wBACpE,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,CAAC;oBACrF,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;wBAAC,OAAO;oBAAC,CAAC;oBACvD,KAAK,GAAG,UAAU,CAAC;oBACnB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;wBAC1B,iBAAiB,EAAE,CAAC;wBACpB,MAAM,EAAE,SAAS;wBACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;wBACjB,SAAS,EAAE,QAAQ,CAAC,SAAS;qBAC9B,CAAC,GAAG,IAAI,CAAC,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;oBAC3G,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,0CAA0C;AACnC,KAAK,UAAU,cAAc;IAClC,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* Spawned detaches (own session/process group) so closing the MCP process
|
|
17
17
|
* does not take the watchdog down with it.
|
|
18
18
|
*/
|
|
19
|
+
import { type StopResult } from './daemon-registry';
|
|
19
20
|
export interface DaemonWatchdogOptions {
|
|
20
21
|
/** Poll interval (ms). Default 30s. */
|
|
21
22
|
intervalMs?: number;
|
|
@@ -33,6 +34,10 @@ export interface DaemonWatchdogOptions {
|
|
|
33
34
|
windowsHide?: boolean;
|
|
34
35
|
stdio?: 'ignore' | ['ignore', number, number];
|
|
35
36
|
}) => boolean;
|
|
37
|
+
/** Release seam for deterministic overlap/failure tests. */
|
|
38
|
+
releaseFn?: (root: string) => Promise<StopResult>;
|
|
39
|
+
/** Async boundary before spawn; defaults to one microtask for release ordering. */
|
|
40
|
+
beforeSpawn?: () => Promise<void>;
|
|
36
41
|
}
|
|
37
42
|
/**
|
|
38
43
|
* Per-project daemon liveness watchdog. Registers roots; polls every
|
|
@@ -40,16 +45,23 @@ export interface DaemonWatchdogOptions {
|
|
|
40
45
|
*/
|
|
41
46
|
export declare class DaemonWatchdog {
|
|
42
47
|
private readonly roots;
|
|
48
|
+
private readonly releasing;
|
|
43
49
|
private interval;
|
|
44
50
|
private readonly intervalMs;
|
|
45
51
|
private readonly scriptPath;
|
|
46
52
|
private readonly nodePath;
|
|
47
53
|
private readonly spawnFn;
|
|
54
|
+
private readonly releaseFn;
|
|
55
|
+
private readonly beforeSpawn;
|
|
48
56
|
constructor(opts?: DaemonWatchdogOptions);
|
|
49
57
|
/** Watch a project root: if its daemon dies, respawn it. Idempotent. */
|
|
50
58
|
watch(root: string): void;
|
|
59
|
+
/** Begin a new lifecycle for an intentionally released root. */
|
|
60
|
+
resume(root: string): void;
|
|
51
61
|
/** Stop watching a root. Idempotent. */
|
|
52
62
|
unwatch(root: string): void;
|
|
63
|
+
/** Intentionally release one project without allowing the next tick to respawn it. */
|
|
64
|
+
release(root: string): Promise<StopResult>;
|
|
53
65
|
/** Number of roots currently being watched. */
|
|
54
66
|
size(): number;
|
|
55
67
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-watchdog.d.ts","sourceRoot":"","sources":["../../src/mcp/daemon-watchdog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"daemon-watchdog.d.ts","sourceRoot":"","sources":["../../src/mcp/daemon-watchdog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,EAAgF,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA0BlI,MAAM,WAAW,qBAAqB;IACpC,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,CAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAE,CAAA;KAAE,KAAK,OAAO,CAAC;IACrL,4DAA4D;IAC5D,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAClD,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAUD;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6K;IACrM,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAClE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;gBAEtC,IAAI,GAAE,qBAA0B;IAY5C,wEAAwE;IACxE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOzB,gEAAgE;IAChE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM1B,wCAAwC;IACxC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,sFAAsF;IAChF,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAOhD,+CAA+C;IAC/C,IAAI,IAAI,MAAM;IAId;;;OAGG;IACH,KAAK,IAAI,IAAI;IAUb,yCAAyC;IACzC,IAAI,IAAI,IAAI;IAOZ;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B;;;;OAIG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBrD,gFAAgF;IAChF,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAoC5B;;;;OAIG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAyB,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBxF,sEAAsE;IACtE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAWrC"}
|
|
@@ -87,12 +87,15 @@ const SPAWN_BIND_RETRY_DELAY_MS = 25;
|
|
|
87
87
|
* `intervalMs`; respawns a daemon if the live one dies.
|
|
88
88
|
*/
|
|
89
89
|
class DaemonWatchdog {
|
|
90
|
-
roots = new
|
|
90
|
+
roots = new Map();
|
|
91
|
+
releasing = new Set();
|
|
91
92
|
interval = null;
|
|
92
93
|
intervalMs;
|
|
93
94
|
scriptPath;
|
|
94
95
|
nodePath;
|
|
95
96
|
spawnFn;
|
|
97
|
+
releaseFn;
|
|
98
|
+
beforeSpawn;
|
|
96
99
|
constructor(opts = {}) {
|
|
97
100
|
this.intervalMs = opts.intervalMs ?? DEFAULT_INTERVAL_MS;
|
|
98
101
|
// Resolve the spawn target at construction time. `process.argv[1]` is the
|
|
@@ -101,14 +104,33 @@ class DaemonWatchdog {
|
|
|
101
104
|
this.scriptPath = opts.scriptPath ?? process.argv[1] ?? '';
|
|
102
105
|
this.nodePath = opts.nodePath ?? process.execPath;
|
|
103
106
|
this.spawnFn = opts.spawnFn ?? defaultSpawnFn;
|
|
107
|
+
this.releaseFn = opts.releaseFn ?? daemon_registry_1.releaseDaemonAt;
|
|
108
|
+
this.beforeSpawn = opts.beforeSpawn ?? (() => Promise.resolve());
|
|
104
109
|
}
|
|
105
110
|
/** Watch a project root: if its daemon dies, respawn it. Idempotent. */
|
|
106
111
|
watch(root) {
|
|
107
|
-
|
|
112
|
+
const canonical = (0, daemon_registry_1.canonicalDaemonRoot)(root);
|
|
113
|
+
const key = (0, daemon_registry_1.canonicalDaemonRootKey)(canonical);
|
|
114
|
+
if (this.releasing.has(key))
|
|
115
|
+
return;
|
|
116
|
+
this.roots.set(key, canonical);
|
|
117
|
+
}
|
|
118
|
+
/** Begin a new lifecycle for an intentionally released root. */
|
|
119
|
+
resume(root) {
|
|
120
|
+
const canonical = (0, daemon_registry_1.canonicalDaemonRoot)(root);
|
|
121
|
+
this.releasing.delete((0, daemon_registry_1.canonicalDaemonRootKey)(canonical));
|
|
122
|
+
this.watch(canonical);
|
|
108
123
|
}
|
|
109
124
|
/** Stop watching a root. Idempotent. */
|
|
110
125
|
unwatch(root) {
|
|
111
|
-
this.roots.delete(
|
|
126
|
+
this.roots.delete((0, daemon_registry_1.canonicalDaemonRootKey)(root));
|
|
127
|
+
}
|
|
128
|
+
/** Intentionally release one project without allowing the next tick to respawn it. */
|
|
129
|
+
async release(root) {
|
|
130
|
+
const canonicalRoot = (0, daemon_registry_1.canonicalDaemonRoot)(root);
|
|
131
|
+
this.releasing.add((0, daemon_registry_1.canonicalDaemonRootKey)(canonicalRoot));
|
|
132
|
+
this.unwatch(canonicalRoot);
|
|
133
|
+
return this.releaseFn(canonicalRoot);
|
|
112
134
|
}
|
|
113
135
|
/** Number of roots currently being watched. */
|
|
114
136
|
size() {
|
|
@@ -140,7 +162,7 @@ class DaemonWatchdog {
|
|
|
140
162
|
* if missing. Exposed for tests + manual triggers.
|
|
141
163
|
*/
|
|
142
164
|
async tick() {
|
|
143
|
-
for (const root of this.roots) {
|
|
165
|
+
for (const root of this.roots.values()) {
|
|
144
166
|
await this.checkAndRespawn(root);
|
|
145
167
|
}
|
|
146
168
|
}
|
|
@@ -150,18 +172,26 @@ class DaemonWatchdog {
|
|
|
150
172
|
* was already running or no `.codegraph/` is reachable from `root`.
|
|
151
173
|
*/
|
|
152
174
|
async checkAndRespawn(root) {
|
|
175
|
+
const canonicalRoot = (0, daemon_registry_1.canonicalDaemonRoot)(root);
|
|
176
|
+
const key = (0, daemon_registry_1.canonicalDaemonRootKey)(canonicalRoot);
|
|
177
|
+
if (this.releasing.has(key))
|
|
178
|
+
return false;
|
|
153
179
|
// We can't trust `listDaemons` to surface a dead daemon for us — it filters
|
|
154
180
|
// out dead entries from its return value (even with `prune: false`, see
|
|
155
181
|
// daemon-registry.ts). So we check the pidfile directly: it IS the
|
|
156
182
|
// authoritative pointer (the registry is a discovery index, the lockfile
|
|
157
183
|
// is the source of truth).
|
|
158
|
-
if (this.hasLiveDaemon(
|
|
184
|
+
if (this.hasLiveDaemon(canonicalRoot))
|
|
159
185
|
return false;
|
|
160
186
|
// Only spawn if the project has a `.codegraph/` — no point spawning a
|
|
161
187
|
// daemon for an uninitialized project.
|
|
162
|
-
if (!(0, directory_1.findNearestCodeGraphRoot)(
|
|
188
|
+
if (!(0, directory_1.findNearestCodeGraphRoot)(canonicalRoot))
|
|
189
|
+
return false;
|
|
190
|
+
await this.beforeSpawn();
|
|
191
|
+
// A release may have started while liveness/index checks were awaiting.
|
|
192
|
+
if (this.releasing.has(key) || !this.roots.has(key))
|
|
163
193
|
return false;
|
|
164
|
-
return this.spawn(
|
|
194
|
+
return this.spawn(canonicalRoot);
|
|
165
195
|
}
|
|
166
196
|
/** Spawn a fresh daemon for `root`. Detached; safe to call from any context. */
|
|
167
197
|
spawn(root) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-watchdog.js","sourceRoot":"","sources":["../../src/mcp/daemon-watchdog.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAAsC;AACtC,uCAAyB;AACzB,2CAA6B;AAC7B,4CAAyE;AACzE,iDAA6F;AAC7F,
|
|
1
|
+
{"version":3,"file":"daemon-watchdog.js","sourceRoot":"","sources":["../../src/mcp/daemon-watchdog.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAAsC;AACtC,uCAAyB;AACzB,2CAA6B;AAC7B,4CAAyE;AACzE,iDAA6F;AAC7F,uDAAkI;AAElI,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AACxD,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAE5C,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC;;;GAGG;AACH,SAAS,cAAc,CACrB,QAAgB,EAChB,IAAc,EACd,IAA2H;IAE3H,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,QAAQ,EAAE,IAAI,EAAE;QAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,OAAO,IAAI,CAAC;AACd,CAAC;AAoBD;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC;;;GAGG;AACH,MAAa,cAAc;IACR,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClC,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,QAAQ,GAA0B,IAAI,CAAC;IAC9B,UAAU,CAAS;IACnB,UAAU,CAAS;IACnB,QAAQ,CAAS;IACjB,OAAO,CAA6K;IACpL,SAAS,CAAwC;IACjD,WAAW,CAAsB;IAElD,YAAY,OAA8B,EAAE;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC;QACzD,0EAA0E;QAC1E,sEAAsE;QACtE,4CAA4C;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,iCAAe,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,IAAY;QAChB,MAAM,SAAS,GAAG,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAA,wCAAsB,EAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,gEAAgE;IAChE,MAAM,CAAC,IAAY;QACjB,MAAM,SAAS,GAAG,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAA,wCAAsB,EAAC,SAAS,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,wCAAwC;IACxC,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAA,wCAAsB,EAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,sFAAsF;IACtF,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,MAAM,aAAa,GAAG,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAA,wCAAsB,EAAC,aAAa,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAED,+CAA+C;IAC/C,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,uEAAuE;QACvE,iCAAiC;QACjC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACrE,qEAAqE;QACrE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;IAC1B,CAAC;IAED,yCAAyC;IACzC,IAAI;QACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,MAAM,aAAa,GAAG,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAA,wCAAsB,EAAC,aAAa,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,4EAA4E;QAC5E,wEAAwE;QACxE,mEAAmE;QACnE,yEAAyE;QACzE,2BAA2B;QAC3B,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAAE,OAAO,KAAK,CAAC;QACpD,sEAAsE;QACtE,uCAAuC;QACvC,IAAI,CAAC,IAAA,oCAAwB,EAAC,aAAa,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3D,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,wEAAwE;QACxE,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IAED,gFAAgF;IAChF,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAA,2BAAe,EAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;QAC/D,IAAI,KAAK,GAAkB,IAAI,CAAC;QAChC,IAAI,KAAK,GAA4C,QAAQ,CAAC;QAC9D,IAAI,CAAC;YACH,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAClC,KAAK,GAAG,CAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAE,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;QACD,IAAI,CAAC;YACH,0EAA0E;YAC1E,qDAAqD;YACrD,MAAM,GAAG,GAAsB,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC;YAC9E,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC;YAC1B,IAAI,CAAC,OAAO,CACV,IAAI,CAAC,QAAQ,EACb,CAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAE,EAC1E;gBACE,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,IAAI;gBACjB,GAAG;gBACH,KAAK;aACN,CACF,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,IAAI,CAAC;oBAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,UAAU,GAAG,sBAAsB;QACnE,MAAM,UAAU,GAAG,IAAA,wCAAyB,EAAC,IAAI,CAAC,CAAC;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC;oBACH,iEAAiE;oBACjE,8DAA8D;oBAC9D,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACvB,OAAO,IAAI,CAAC;gBACd,CAAC;gBAAC,MAAM,CAAC;oBACP,aAAa;gBACf,CAAC;YACH,CAAC;YACD,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sEAAsE;IACtE,aAAa,CAAC,IAAY;QACxB,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAA,+BAAgB,EAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,6BAAc,EAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,OAAO,IAAA,gCAAc,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;CACF;AAxLD,wCAwLC"}
|
package/lib/dist/mcp/daemon.d.ts
CHANGED
|
@@ -63,8 +63,17 @@ export interface DaemonHello {
|
|
|
63
63
|
codegraph: string;
|
|
64
64
|
pid: number;
|
|
65
65
|
socketPath: string;
|
|
66
|
+
root: string;
|
|
67
|
+
startedAt: number;
|
|
66
68
|
protocol: 1;
|
|
67
69
|
}
|
|
70
|
+
export interface DaemonReleaseControl {
|
|
71
|
+
codegraph_control: 1;
|
|
72
|
+
action: 'release';
|
|
73
|
+
root: string;
|
|
74
|
+
pid: number;
|
|
75
|
+
startedAt: number;
|
|
76
|
+
}
|
|
68
77
|
/**
|
|
69
78
|
* Optional reverse-handshake line a proxy sends right after it verifies the
|
|
70
79
|
* daemon hello, carrying its own pids so the daemon can reap the client if its
|
|
@@ -112,9 +121,16 @@ export declare class Daemon {
|
|
|
112
121
|
private stopping;
|
|
113
122
|
private socketPath;
|
|
114
123
|
private pidPath;
|
|
124
|
+
private startedAt;
|
|
125
|
+
private acquiredGeneration;
|
|
126
|
+
private listenSocket;
|
|
127
|
+
private exit;
|
|
115
128
|
constructor(projectRoot: string, opts?: {
|
|
116
129
|
idleTimeoutMs?: number;
|
|
117
130
|
maxIdleMs?: number;
|
|
131
|
+
generation?: DaemonLockInfo;
|
|
132
|
+
listenSocket?: (socketPath: string, onConnection: (socket: net.Socket) => void) => Promise<net.Server>;
|
|
133
|
+
exit?: (code: number) => void;
|
|
118
134
|
});
|
|
119
135
|
/**
|
|
120
136
|
* Bind the socket, kick off engine init, and register signal handlers. The
|
|
@@ -222,7 +238,9 @@ export type AcquireResult = {
|
|
|
222
238
|
* widened). The race's worst case is two daemons briefly; on a single external
|
|
223
239
|
* drive that's strictly better than the daemon never starting at all.
|
|
224
240
|
*/
|
|
225
|
-
export declare function tryAcquireDaemonLock(projectRoot: string
|
|
241
|
+
export declare function tryAcquireDaemonLock(projectRoot: string, options?: {
|
|
242
|
+
afterLifecycleAcquired?: () => void;
|
|
243
|
+
}): AcquireResult;
|
|
226
244
|
/**
|
|
227
245
|
* Exclusive-create the pidfile (O_CREAT|O_EXCL via the `wx` flag) and write the
|
|
228
246
|
* full record through the same fd — the hard-link-free fallback used by
|
|
@@ -285,6 +303,7 @@ export declare function peerIsDead(peers: {
|
|
|
285
303
|
pid: number | null;
|
|
286
304
|
hostPid: number | null;
|
|
287
305
|
}, isAlive: (pid: number) => boolean): boolean;
|
|
306
|
+
export declare function parseReleaseControlLine(line: string): DaemonReleaseControl | null;
|
|
288
307
|
/** Exported for test stubs that need to bound the hello-line read. */
|
|
289
308
|
export { MAX_HELLO_LINE_BYTES };
|
|
290
309
|
//# sourceMappingURL=daemon.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/mcp/daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAGH,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAK3B,OAAO,EACL,cAAc,EAMf,MAAM,gBAAgB,CAAC;AA8BxB;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC3B,MAAM,CAAC,OAAO,GAAG,IAAI,CAYvB;AAQD,yFAAyF;AACzF,QAAA,MAAM,oBAAoB,OAAO,CAAC;AAElC;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,CAAC;CACb;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,CAAC,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,IAAI,EAAE,cAAc,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,MAAM;
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/mcp/daemon.ts"],"names":[],"mappings":"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"}
|
package/lib/dist/mcp/daemon.js
CHANGED
|
@@ -83,6 +83,7 @@ exports.isProcessAlive = isProcessAlive;
|
|
|
83
83
|
exports.bindFirstUsableSocket = bindFirstUsableSocket;
|
|
84
84
|
exports.parseClientHelloLine = parseClientHelloLine;
|
|
85
85
|
exports.peerIsDead = peerIsDead;
|
|
86
|
+
exports.parseReleaseControlLine = parseReleaseControlLine;
|
|
86
87
|
const fs = __importStar(require("fs"));
|
|
87
88
|
const net = __importStar(require("net"));
|
|
88
89
|
const path = __importStar(require("path"));
|
|
@@ -171,12 +172,20 @@ class Daemon {
|
|
|
171
172
|
stopping = false;
|
|
172
173
|
socketPath;
|
|
173
174
|
pidPath;
|
|
175
|
+
startedAt = 0;
|
|
176
|
+
acquiredGeneration;
|
|
177
|
+
listenSocket;
|
|
178
|
+
exit;
|
|
174
179
|
constructor(projectRoot, opts = {}) {
|
|
175
180
|
this.projectRoot = projectRoot;
|
|
176
181
|
this.socketPath = (0, daemon_paths_1.getDaemonSocketPath)(projectRoot);
|
|
177
182
|
this.pidPath = (0, daemon_paths_1.getDaemonPidPath)(projectRoot);
|
|
178
183
|
this.idleTimeoutMs = opts.idleTimeoutMs ?? resolveIdleTimeoutMs();
|
|
179
184
|
this.maxIdleMs = opts.maxIdleMs ?? resolveMaxIdleMs();
|
|
185
|
+
this.acquiredGeneration = opts.generation ?? null;
|
|
186
|
+
this.startedAt = this.acquiredGeneration?.startedAt ?? 0;
|
|
187
|
+
this.listenSocket = opts.listenSocket ?? null;
|
|
188
|
+
this.exit = opts.exit ?? ((code) => process.exit(code));
|
|
180
189
|
// Daemon mode serves many concurrent clients on one event loop, so off-load
|
|
181
190
|
// read-tool dispatch to a worker pool — otherwise concurrent explores
|
|
182
191
|
// serialize and starve the MCP transport (clients time out). Direct mode
|
|
@@ -204,27 +213,31 @@ class Daemon {
|
|
|
204
213
|
// before each attempt — safe because we hold the lockfile, so no live daemon
|
|
205
214
|
// owns it; without it `listen` would wedge on EADDRINUSE.
|
|
206
215
|
const candidates = (0, daemon_paths_1.getDaemonSocketCandidates)(this.projectRoot);
|
|
207
|
-
const listen = (socketPath) =>
|
|
208
|
-
if (
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}
|
|
212
|
-
catch { /* not-exists is fine */ }
|
|
213
|
-
}
|
|
214
|
-
const server = net.createServer((socket) => this.handleConnection(socket));
|
|
215
|
-
server.once('error', reject);
|
|
216
|
-
server.listen(socketPath, () => {
|
|
217
|
-
// POSIX: tighten permissions to user-only — the socket lives under
|
|
218
|
-
// `.codegraph/` (git-ignored, maybe a shared FS) or tmpdir.
|
|
216
|
+
const listen = (socketPath) => {
|
|
217
|
+
if (this.listenSocket)
|
|
218
|
+
return this.listenSocket(socketPath, (socket) => this.handleConnection(socket));
|
|
219
|
+
return new Promise((resolve, reject) => {
|
|
219
220
|
if (process.platform !== 'win32') {
|
|
220
221
|
try {
|
|
221
|
-
fs.
|
|
222
|
+
fs.unlinkSync(socketPath);
|
|
222
223
|
}
|
|
223
|
-
catch { /*
|
|
224
|
+
catch { /* not-exists is fine */ }
|
|
224
225
|
}
|
|
225
|
-
|
|
226
|
+
const server = net.createServer((socket) => this.handleConnection(socket));
|
|
227
|
+
server.once('error', reject);
|
|
228
|
+
server.listen(socketPath, () => {
|
|
229
|
+
// POSIX: tighten permissions to user-only — the socket lives under
|
|
230
|
+
// `.codegraph/` (git-ignored, maybe a shared FS) or tmpdir.
|
|
231
|
+
if (process.platform !== 'win32') {
|
|
232
|
+
try {
|
|
233
|
+
fs.chmodSync(socketPath, 0o600);
|
|
234
|
+
}
|
|
235
|
+
catch { /* best-effort */ }
|
|
236
|
+
}
|
|
237
|
+
resolve(server);
|
|
238
|
+
});
|
|
226
239
|
});
|
|
227
|
-
}
|
|
240
|
+
};
|
|
228
241
|
let bound;
|
|
229
242
|
try {
|
|
230
243
|
bound = await bindFirstUsableSocket(candidates, listen, {
|
|
@@ -258,8 +271,9 @@ class Daemon {
|
|
|
258
271
|
pid: process.pid,
|
|
259
272
|
version: version_1.CodeGraphPackageVersion,
|
|
260
273
|
socketPath: this.socketPath,
|
|
261
|
-
startedAt: Date.now(),
|
|
274
|
+
startedAt: this.acquiredGeneration?.startedAt ?? Date.now(),
|
|
262
275
|
};
|
|
276
|
+
this.startedAt = lock.startedAt;
|
|
263
277
|
// `tryAcquireDaemonLock` wrote the pidfile with the PREFERRED path (candidate
|
|
264
278
|
// 0) before we knew which one would bind. If we relocated, rewrite it so the
|
|
265
279
|
// per-project record is honest. Atomic temp+rename; safe because we hold the
|
|
@@ -335,7 +349,7 @@ class Daemon {
|
|
|
335
349
|
// POSIX exits here; Windows drains first (engine.stop() above began closing
|
|
336
350
|
// the file watcher, and exiting mid-teardown aborts the process). See
|
|
337
351
|
// finalizeDaemonExit / DAEMON_SHUTDOWN_BACKSTOP_MS.
|
|
338
|
-
finalizeDaemonExit(process.platform,
|
|
352
|
+
finalizeDaemonExit(process.platform, this.exit);
|
|
339
353
|
}
|
|
340
354
|
handleConnection(socket) {
|
|
341
355
|
// Hello first so the proxy can verify versions before piping any
|
|
@@ -344,6 +358,8 @@ class Daemon {
|
|
|
344
358
|
codegraph: version_1.CodeGraphPackageVersion,
|
|
345
359
|
pid: process.pid,
|
|
346
360
|
socketPath: this.socketPath,
|
|
361
|
+
root: this.projectRoot,
|
|
362
|
+
startedAt: this.startedAt,
|
|
347
363
|
protocol: 1,
|
|
348
364
|
};
|
|
349
365
|
socket.write(JSON.stringify(hello) + '\n');
|
|
@@ -351,7 +367,22 @@ class Daemon {
|
|
|
351
367
|
// peer pids, then hand the socket to the session. Fail-safe: any problem —
|
|
352
368
|
// timeout, a non-hello first line, an early close — yields null pids and we
|
|
353
369
|
// fall back to the socket-close lifecycle exactly as before (#692).
|
|
354
|
-
void readClientHello(socket).then((
|
|
370
|
+
void readClientHello(socket).then((initial) => {
|
|
371
|
+
if (initial.control) {
|
|
372
|
+
const control = initial.control;
|
|
373
|
+
const accepted = control.root === this.projectRoot &&
|
|
374
|
+
control.pid === process.pid &&
|
|
375
|
+
control.startedAt === this.startedAt;
|
|
376
|
+
if (!accepted) {
|
|
377
|
+
socket.end(JSON.stringify({ codegraph_control: 1, outcome: 'identity-mismatch' }) + '\n');
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
socket.end(JSON.stringify({ codegraph_control: 1, outcome: 'releasing' }) + '\n', () => {
|
|
381
|
+
void this.stop('project release');
|
|
382
|
+
});
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
const peers = initial.peers;
|
|
355
386
|
const transport = new transport_1.SocketTransport(socket);
|
|
356
387
|
const session = new session_1.MCPSession(transport, this.engine, {
|
|
357
388
|
explicitProjectPath: this.projectRoot,
|
|
@@ -534,11 +565,30 @@ exports.Daemon = Daemon;
|
|
|
534
565
|
* widened). The race's worst case is two daemons briefly; on a single external
|
|
535
566
|
* drive that's strictly better than the daemon never starting at all.
|
|
536
567
|
*/
|
|
537
|
-
function tryAcquireDaemonLock(projectRoot) {
|
|
568
|
+
function tryAcquireDaemonLock(projectRoot, options = {}) {
|
|
569
|
+
const pidPath = (0, daemon_paths_1.getDaemonPidPath)(projectRoot);
|
|
570
|
+
fs.mkdirSync(path.dirname(pidPath), { recursive: true });
|
|
571
|
+
const lifecycle = (0, daemon_registry_1.tryAcquireDaemonLifecycleLock)(projectRoot);
|
|
572
|
+
if (!lifecycle)
|
|
573
|
+
return { kind: 'taken', existing: null, pidPath };
|
|
574
|
+
try {
|
|
575
|
+
options.afterLifecycleAcquired?.();
|
|
576
|
+
return tryAcquireDaemonLockUnderLifecycle(projectRoot);
|
|
577
|
+
}
|
|
578
|
+
finally {
|
|
579
|
+
(0, daemon_registry_1.releaseDaemonLifecycleLock)(projectRoot, lifecycle);
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
function tryAcquireDaemonLockUnderLifecycle(projectRoot) {
|
|
538
583
|
const pidPath = (0, daemon_paths_1.getDaemonPidPath)(projectRoot);
|
|
539
584
|
// Make sure the .codegraph/ directory exists — the daemon may be the first
|
|
540
585
|
// thing to touch it on a fresh-clone-but-already-initialized checkout.
|
|
541
586
|
fs.mkdirSync(path.dirname(pidPath), { recursive: true });
|
|
587
|
+
// Intentional release owns the root lifecycle through artifact cleanup.
|
|
588
|
+
// Every daemon startup passes here, so no successor can enter that interval.
|
|
589
|
+
if ((0, daemon_registry_1.hasActiveDaemonReleaseLease)(projectRoot)) {
|
|
590
|
+
return { kind: 'taken', existing: null, pidPath };
|
|
591
|
+
}
|
|
542
592
|
const info = {
|
|
543
593
|
pid: process.pid,
|
|
544
594
|
version: version_1.CodeGraphPackageVersion,
|
|
@@ -576,8 +626,22 @@ function tryAcquireDaemonLock(projectRoot) {
|
|
|
576
626
|
}
|
|
577
627
|
catch { /* temp already gone */ }
|
|
578
628
|
}
|
|
579
|
-
if (acquired)
|
|
629
|
+
if (acquired) {
|
|
630
|
+
// Close the check→link race: release may claim the lifecycle after our first
|
|
631
|
+
// check but before the atomic daemon lock appears. Roll back only our exact
|
|
632
|
+
// generation and report contention instead of starting under a live lease.
|
|
633
|
+
if ((0, daemon_registry_1.hasActiveDaemonReleaseLease)(projectRoot)) {
|
|
634
|
+
try {
|
|
635
|
+
const current = (0, daemon_paths_1.decodeLockInfo)(fs.readFileSync(pidPath, 'utf8'));
|
|
636
|
+
if (current?.pid === info.pid && current.startedAt === info.startedAt && current.socketPath === info.socketPath) {
|
|
637
|
+
fs.unlinkSync(pidPath);
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
catch { /* release cleanup may already have removed it */ }
|
|
641
|
+
return { kind: 'taken', existing: null, pidPath };
|
|
642
|
+
}
|
|
580
643
|
return { kind: 'acquired', pidPath, info };
|
|
644
|
+
}
|
|
581
645
|
// Taken. Because the pidfile was link'd atomically it always holds a complete
|
|
582
646
|
// record — `existing` is null only for a genuinely corrupt leftover, never a
|
|
583
647
|
// mid-write race.
|
|
@@ -787,7 +851,7 @@ function readClientHello(socket) {
|
|
|
787
851
|
let chunks = [];
|
|
788
852
|
let total = 0;
|
|
789
853
|
let settled = false;
|
|
790
|
-
const finish = (
|
|
854
|
+
const finish = (initial, putBack) => {
|
|
791
855
|
if (settled)
|
|
792
856
|
return;
|
|
793
857
|
settled = true;
|
|
@@ -810,7 +874,7 @@ function readClientHello(socket) {
|
|
|
810
874
|
socket.removeListener('close', onEnd);
|
|
811
875
|
clearTimeout(timer);
|
|
812
876
|
if (process.env.CODEGRAPH_MCP_DEBUG) {
|
|
813
|
-
process.stderr.write(`[mcp-debug] clientHello finish pid=${String(peers.pid)} putBack=${putBack ? putBack.length : 0} flowing=${String(socket.readableFlowing)}\n`);
|
|
877
|
+
process.stderr.write(`[mcp-debug] clientHello finish pid=${String(initial.peers.pid)} putBack=${putBack ? putBack.length : 0} flowing=${String(socket.readableFlowing)}\n`);
|
|
814
878
|
}
|
|
815
879
|
if (putBack && putBack.length > 0 && !socket.destroyed) {
|
|
816
880
|
try {
|
|
@@ -818,7 +882,7 @@ function readClientHello(socket) {
|
|
|
818
882
|
}
|
|
819
883
|
catch { /* stream already gone */ }
|
|
820
884
|
}
|
|
821
|
-
resolve(
|
|
885
|
+
resolve(initial);
|
|
822
886
|
};
|
|
823
887
|
const onData = (chunk) => {
|
|
824
888
|
const buf = typeof chunk === 'string' ? Buffer.from(chunk, 'utf8') : chunk;
|
|
@@ -830,28 +894,34 @@ function readClientHello(socket) {
|
|
|
830
894
|
// No newline yet. If it's already too long to be a hello, it isn't one —
|
|
831
895
|
// hand the bytes back as data; otherwise keep accumulating.
|
|
832
896
|
if (total > MAX_HELLO_LINE_BYTES)
|
|
833
|
-
finish({ pid: null, hostPid: null }, all);
|
|
897
|
+
finish({ peers: { pid: null, hostPid: null }, control: null }, all);
|
|
834
898
|
else
|
|
835
899
|
chunks = [all];
|
|
836
900
|
return;
|
|
837
901
|
}
|
|
838
|
-
const
|
|
902
|
+
const line = all.subarray(0, nl).toString('utf8');
|
|
903
|
+
const control = parseReleaseControlLine(line);
|
|
904
|
+
if (control) {
|
|
905
|
+
finish({ peers: { pid: null, hostPid: null }, control });
|
|
906
|
+
return;
|
|
907
|
+
}
|
|
908
|
+
const peers = parseClientHelloLine(line);
|
|
839
909
|
if (peers) {
|
|
840
910
|
const tail = all.subarray(nl + 1);
|
|
841
|
-
finish(peers, tail.length > 0 ? tail : undefined);
|
|
911
|
+
finish({ peers, control: null }, tail.length > 0 ? tail : undefined);
|
|
842
912
|
}
|
|
843
913
|
else {
|
|
844
914
|
// First line is not a client-hello (legacy/direct client) — hand the
|
|
845
915
|
// whole buffer back so the transport sees the message verbatim.
|
|
846
|
-
finish({ pid: null, hostPid: null }, all);
|
|
916
|
+
finish({ peers: { pid: null, hostPid: null }, control: null }, all);
|
|
847
917
|
}
|
|
848
918
|
};
|
|
849
|
-
const onEnd = () => finish({ pid: null, hostPid: null });
|
|
919
|
+
const onEnd = () => finish({ peers: { pid: null, hostPid: null }, control: null });
|
|
850
920
|
// On timeout, hand back whatever partial bytes accumulated — discarding
|
|
851
921
|
// them would tear the first message the transport parses.
|
|
852
922
|
const timer = setTimeout(() => {
|
|
853
923
|
const partial = chunks.length === 0 ? undefined : (chunks.length === 1 ? chunks[0] : Buffer.concat(chunks, total));
|
|
854
|
-
finish({ pid: null, hostPid: null }, partial);
|
|
924
|
+
finish({ peers: { pid: null, hostPid: null }, control: null }, partial);
|
|
855
925
|
}, CLIENT_HELLO_TIMEOUT_MS);
|
|
856
926
|
timer.unref?.();
|
|
857
927
|
socket.on('data', onData);
|
|
@@ -859,4 +929,27 @@ function readClientHello(socket) {
|
|
|
859
929
|
socket.on('close', onEnd);
|
|
860
930
|
});
|
|
861
931
|
}
|
|
932
|
+
function parseReleaseControlLine(line) {
|
|
933
|
+
let parsed;
|
|
934
|
+
try {
|
|
935
|
+
parsed = JSON.parse(line);
|
|
936
|
+
}
|
|
937
|
+
catch {
|
|
938
|
+
return null;
|
|
939
|
+
}
|
|
940
|
+
if (!parsed || typeof parsed !== 'object')
|
|
941
|
+
return null;
|
|
942
|
+
const value = parsed;
|
|
943
|
+
if (value.codegraph_control !== 1 || value.action !== 'release' ||
|
|
944
|
+
typeof value.root !== 'string' || typeof value.pid !== 'number' ||
|
|
945
|
+
typeof value.startedAt !== 'number')
|
|
946
|
+
return null;
|
|
947
|
+
return {
|
|
948
|
+
codegraph_control: 1,
|
|
949
|
+
action: 'release',
|
|
950
|
+
root: value.root,
|
|
951
|
+
pid: value.pid,
|
|
952
|
+
startedAt: value.startedAt,
|
|
953
|
+
};
|
|
954
|
+
}
|
|
862
955
|
//# sourceMappingURL=daemon.js.map
|