flashclaw 1.3.0 → 1.5.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/README.md +61 -5
- package/dist/agent-runner.d.ts +3 -0
- package/dist/agent-runner.d.ts.map +1 -1
- package/dist/agent-runner.js +82 -3
- package/dist/agent-runner.js.map +1 -1
- package/dist/cli.js +118 -51
- package/dist/cli.js.map +1 -1
- package/dist/commands/daemon.d.ts +9 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/daemon.js +425 -0
- package/dist/commands/daemon.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +66 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.js +23 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/security.d.ts +9 -0
- package/dist/commands/security.d.ts.map +1 -0
- package/dist/commands/security.js +440 -0
- package/dist/commands/security.js.map +1 -0
- package/dist/core/api-client.d.ts +17 -0
- package/dist/core/api-client.d.ts.map +1 -1
- package/dist/core/api-client.js +90 -2
- package/dist/core/api-client.js.map +1 -1
- package/dist/core/context-guard.d.ts +59 -0
- package/dist/core/context-guard.d.ts.map +1 -0
- package/dist/core/context-guard.js +94 -0
- package/dist/core/context-guard.js.map +1 -0
- package/dist/core/memory.js +7 -7
- package/dist/core/model-capabilities.d.ts +7 -0
- package/dist/core/model-capabilities.d.ts.map +1 -1
- package/dist/core/model-capabilities.js +24 -4
- package/dist/core/model-capabilities.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +65 -57
- package/dist/index.js.map +1 -1
- package/dist/plugins/installer.d.ts.map +1 -1
- package/dist/plugins/installer.js +33 -0
- package/dist/plugins/installer.js.map +1 -1
- package/dist/plugins/loader.d.ts.map +1 -1
- package/dist/plugins/loader.js +37 -0
- package/dist/plugins/loader.js.map +1 -1
- package/package.json +2 -1
- package/plugins/send-message/index.ts +15 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE1C,oDAAoD;AACpD,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU;IACtD,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS;CAC3D,CAAC;AAEX,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AAClE,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AACpE,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AAC9D,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AAChE,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AAChE,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AAW9D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,gBAAgB;IAChB,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEjC,mBAAmB;IACnB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEnD,eAAe;IACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAElD,gBAAgB;IAChB,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE3B,2BAA2B;IAC3B,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,MAAM,oBAAoB,EAAE,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,SAAS;IACT,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAE9C,UAAU;IACV,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,qBAAqB,EAAE,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAE5D,aAAa;IACb,OAAO,CAAC,IAAI,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC;IAEnC,UAAU;IACV,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAElC,8CAA8C;IAC9C,MAAM,iBAAiB,GAAG,MAAM,sBAAsB,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;IAEnC,SAAS;IACT,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3F,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK;IACL,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAClE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAElE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,MAAM,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,OAAO,MAAM,CAAC,KAAK,MAAM,CAAC,GAAG,SAAS,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,GAAG,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,mDAAmD;AAEnD,SAAS,gBAAgB;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3D,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,UAAU,EAAE,CAAC;IAC7E,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,aAAa,EAAE,CAAC;AAClF,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,OAAe;IACpD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,OAAO,EAAE,EAAE,CAAC;AAC9D,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,QAAgB;IAChD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnD,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;AACzE,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAe;IACxC,sBAAsB;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACjF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5D,CAAC;IAED,gBAAgB;IAChB,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACzD,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC/B,IAAI,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;AACpF,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACjF,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAE1E,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,0BAA0B,CAAC;QAEhG,MAAM,SAAS,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;YAC3B,MAAM;YACN,OAAO,EAAE,OAAO,IAAI,SAAS;YAC7B,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC3B,KAAK;YACL,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAEnC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,QAAQ,OAAO,IAAI,EAAE,CAAC;IACjF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,YAAY;QACZ,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,MAAM,MAAM,EAAE,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,qBAAqB;IAClC,IAAI,CAAC;QACH,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC7D,OAAO,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,IAAI,CAAC;QACH,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC7D,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC5D,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACjE,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC1D,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,IAAI,CAAC;QACrG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,KAAK,MAAM,GAAG,EAAE,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAEhD,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IACpF,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CAAC,cAAsB;IAC1D,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,OAAO,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAErE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACrE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;gBAAE,SAAS;YAExC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;gBACjE,IAAI,CAAC,QAAQ,CAAC,MAAM;oBAAE,SAAS;gBAE/B,yBAAyB;gBACzB,MAAM,WAAW,GAAa,EAAE,CAAC;gBACjC,MAAM,cAAc,GAAa,EAAE,CAAC;gBAEpC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzD,MAAM,OAAO,GAAI,GAAW,EAAE,GAAG,CAAC;oBAClC,MAAM,QAAQ,GAAI,GAAW,EAAE,QAAQ,CAAC;oBACxC,IAAI,CAAC,OAAO;wBAAE,SAAS;oBAEvB,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;wBACzB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC/B,CAAC;yBAAM,IAAI,QAAQ,EAAE,CAAC;wBACpB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAElD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,MAAM;wBACd,KAAK;wBACL,MAAM,EAAE,WAAW,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBAC5C,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,IAAI;wBACZ,KAAK;wBACL,MAAM,EAAE,QAAQ,cAAc,CAAC,MAAM,SAAS;qBAC/C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,WAAW;IACb,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* 引导用户完成首次配置,生成 ~/.flashclaw/.env
|
|
4
4
|
*/
|
|
5
5
|
import { existsSync, writeFileSync } from 'fs';
|
|
6
|
+
import { join, dirname } from 'path';
|
|
6
7
|
// ==================== ANSI 颜色(与 cli.ts 保持一致) ====================
|
|
7
8
|
const colors = {
|
|
8
9
|
green: '\x1b[32m', yellow: '\x1b[33m', red: '\x1b[31m',
|
|
@@ -145,7 +146,26 @@ async function runInteractive(prompts, envPath, isFirstTime, paths, ensureDirect
|
|
|
145
146
|
prompts.cancel('已取消初始化');
|
|
146
147
|
process.exit(0);
|
|
147
148
|
}
|
|
148
|
-
// Step 6:
|
|
149
|
+
// Step 6: AI 人格设定(可选)
|
|
150
|
+
const configSoul = await prompts.confirm({
|
|
151
|
+
message: '是否设置 AI 人格?(让 Bot 有独特的性格和语调)',
|
|
152
|
+
initialValue: false,
|
|
153
|
+
});
|
|
154
|
+
if (!prompts.isCancel(configSoul) && configSoul) {
|
|
155
|
+
const soulContent = await prompts.text({
|
|
156
|
+
message: '描述你希望 AI 拥有的人格(直接输入,或稍后编辑 SOUL.md)',
|
|
157
|
+
placeholder: '例如:你是一只幽默的龙虾,说话简短有力,偶尔用海洋相关的比喻',
|
|
158
|
+
});
|
|
159
|
+
if (!prompts.isCancel(soulContent) && soulContent && soulContent.trim()) {
|
|
160
|
+
const { mkdirSync } = await import('fs');
|
|
161
|
+
const soulPath = join(paths.home(), 'SOUL.md');
|
|
162
|
+
mkdirSync(dirname(soulPath), { recursive: true });
|
|
163
|
+
writeFileSync(soulPath, soulContent.trim() + '\n', 'utf-8');
|
|
164
|
+
prompts.log.success(`人格设定已保存到 ${dim(soulPath)}`);
|
|
165
|
+
prompts.log.info(`提示: 可随时编辑该文件修改人格,删除文件则恢复默认`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// Step 7: 飞书配置(可选)
|
|
149
169
|
let feishuAppId = '';
|
|
150
170
|
let feishuAppSecret = '';
|
|
151
171
|
const configFeishu = await prompts.confirm({
|
|
@@ -167,7 +187,7 @@ async function runInteractive(prompts, envPath, isFirstTime, paths, ensureDirect
|
|
|
167
187
|
if (!prompts.isCancel(appSecret))
|
|
168
188
|
feishuAppSecret = appSecret;
|
|
169
189
|
}
|
|
170
|
-
// Step
|
|
190
|
+
// Step 8: 生成配置文件
|
|
171
191
|
s.start('写入配置文件...');
|
|
172
192
|
const envContent = buildEnvContent({
|
|
173
193
|
apiKey: apiKey,
|
|
@@ -179,7 +199,7 @@ async function runInteractive(prompts, envPath, isFirstTime, paths, ensureDirect
|
|
|
179
199
|
});
|
|
180
200
|
writeFileSync(envPath, envContent, 'utf-8');
|
|
181
201
|
s.stop(`配置文件已保存到 ${dim(envPath)}`);
|
|
182
|
-
// Step
|
|
202
|
+
// Step 9: 验证 API 连通性
|
|
183
203
|
s.start('验证 API 连通性...');
|
|
184
204
|
const ok = await testApiConnection(apiKey, baseUrl || 'https://api.anthropic.com', model);
|
|
185
205
|
if (ok) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAgB,aAAa,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/commands/security.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4BH;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsD1D"}
|
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FlashClaw 安全审计命令
|
|
3
|
+
* 检查配置和环境的安全隐患,帮助用户加固部署
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync, readdirSync, readFileSync, statSync } from 'fs';
|
|
6
|
+
import { join, resolve } from 'path';
|
|
7
|
+
import { homedir } from 'os';
|
|
8
|
+
// ==================== ANSI 颜色 ====================
|
|
9
|
+
const colors = {
|
|
10
|
+
green: '\x1b[32m', yellow: '\x1b[33m', red: '\x1b[31m',
|
|
11
|
+
cyan: '\x1b[36m', reset: '\x1b[0m', bold: '\x1b[1m', dim: '\x1b[2m',
|
|
12
|
+
};
|
|
13
|
+
const green = (t) => `${colors.green}${t}${colors.reset}`;
|
|
14
|
+
const yellow = (t) => `${colors.yellow}${t}${colors.reset}`;
|
|
15
|
+
const red = (t) => `${colors.red}${t}${colors.reset}`;
|
|
16
|
+
const cyan = (t) => `${colors.cyan}${t}${colors.reset}`;
|
|
17
|
+
const bold = (t) => `${colors.bold}${t}${colors.reset}`;
|
|
18
|
+
const dim = (t) => `${colors.dim}${t}${colors.reset}`;
|
|
19
|
+
/**
|
|
20
|
+
* 执行安全审计命令
|
|
21
|
+
*/
|
|
22
|
+
export async function securityAuditCommand() {
|
|
23
|
+
console.log(`\n${bold('🔒 FlashClaw 安全审计')}\n`);
|
|
24
|
+
const { paths } = await import('../paths.js');
|
|
25
|
+
const results = [];
|
|
26
|
+
// 1. API Key 安全
|
|
27
|
+
results.push(...checkApiKeySecurity(paths.env()));
|
|
28
|
+
// 2. .env 文件安全
|
|
29
|
+
results.push(...checkEnvFileSecurity(paths.env()));
|
|
30
|
+
// 3. 数据目录安全
|
|
31
|
+
results.push(...checkDataDirSecurity(paths.home()));
|
|
32
|
+
// 4. Telegram 白名单
|
|
33
|
+
results.push(...checkTelegramSecurity());
|
|
34
|
+
// 5. 代理安全
|
|
35
|
+
results.push(...checkProxySecurity());
|
|
36
|
+
// 6. 日志安全
|
|
37
|
+
results.push(...checkLogSecurity());
|
|
38
|
+
// 7. 插件安全
|
|
39
|
+
results.push(...checkPluginSecurity(paths.userPlugins()));
|
|
40
|
+
// 输出所有结果
|
|
41
|
+
console.log('');
|
|
42
|
+
for (const r of results) {
|
|
43
|
+
const icon = r.status === 'ok' ? green('✓') : r.status === 'warn' ? yellow('⚠') : red('✗');
|
|
44
|
+
const detail = r.detail ? ` ${dim(r.detail)}` : '';
|
|
45
|
+
console.log(` ${icon} ${r.label}${detail}`);
|
|
46
|
+
}
|
|
47
|
+
// 统计
|
|
48
|
+
const okCount = results.filter(r => r.status === 'ok').length;
|
|
49
|
+
const warnCount = results.filter(r => r.status === 'warn').length;
|
|
50
|
+
const failCount = results.filter(r => r.status === 'fail').length;
|
|
51
|
+
console.log('');
|
|
52
|
+
if (failCount > 0) {
|
|
53
|
+
console.log(` ${red(`${failCount} 个安全问题`)} 需要立即修复`);
|
|
54
|
+
if (warnCount > 0) {
|
|
55
|
+
console.log(` ${yellow(`${warnCount} 个安全警告`)} 建议处理`);
|
|
56
|
+
}
|
|
57
|
+
console.log(` 整体评估: ${red('存在风险')} 🚨\n`);
|
|
58
|
+
}
|
|
59
|
+
else if (warnCount > 0) {
|
|
60
|
+
console.log(` ${green(`${okCount} 项安全`)}, ${yellow(`${warnCount} 项警告`)}`);
|
|
61
|
+
console.log(` 整体评估: ${yellow('基本安全')} ⚠\n`);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
console.log(` 全部 ${green(`${okCount} 项检查通过`)}`);
|
|
65
|
+
console.log(` 整体评估: ${green('安全就绪')} 🔒\n`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// ==================== 1. API Key 安全 ====================
|
|
69
|
+
function checkApiKeySecurity(envPath) {
|
|
70
|
+
const results = [];
|
|
71
|
+
// 从环境变量或 .env 文件获取 key
|
|
72
|
+
let apiKey = process.env.ANTHROPIC_AUTH_TOKEN || process.env.ANTHROPIC_API_KEY || '';
|
|
73
|
+
if (!apiKey && existsSync(envPath)) {
|
|
74
|
+
try {
|
|
75
|
+
const content = readFileSync(envPath, 'utf-8');
|
|
76
|
+
const match = content.match(/ANTHROPIC_(?:AUTH_TOKEN|API_KEY)=(.+)/);
|
|
77
|
+
apiKey = match?.[1]?.trim() || '';
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// 忽略读取错误
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// 检查是否已配置
|
|
84
|
+
if (!apiKey) {
|
|
85
|
+
results.push({ status: 'fail', label: 'API Key 配置', detail: '未配置 API Key' });
|
|
86
|
+
return results;
|
|
87
|
+
}
|
|
88
|
+
results.push({ status: 'ok', label: 'API Key 配置', detail: '已配置' });
|
|
89
|
+
// 检查是否使用了测试/假 Key
|
|
90
|
+
const lowerKey = apiKey.toLowerCase();
|
|
91
|
+
const testPatterns = ['test', 'fake', 'example', 'demo', 'placeholder', 'xxx', 'your-key', 'sk-xxx', 'your_api_key'];
|
|
92
|
+
const isTestKey = testPatterns.some(p => lowerKey.includes(p));
|
|
93
|
+
if (isTestKey) {
|
|
94
|
+
results.push({ status: 'fail', label: 'API Key 有效性', detail: '检测到测试/示例 Key,请使用真实 Key' });
|
|
95
|
+
}
|
|
96
|
+
else if (apiKey.length < 20) {
|
|
97
|
+
results.push({ status: 'warn', label: 'API Key 有效性', detail: `长度 ${apiKey.length},看起来过短` });
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
results.push({ status: 'ok', label: 'API Key 有效性', detail: '未检测到明显问题' });
|
|
101
|
+
}
|
|
102
|
+
return results;
|
|
103
|
+
}
|
|
104
|
+
// ==================== 2. .env 文件安全 ====================
|
|
105
|
+
function checkEnvFileSecurity(envPath) {
|
|
106
|
+
const results = [];
|
|
107
|
+
// 检查 ~/.flashclaw/.env
|
|
108
|
+
if (existsSync(envPath)) {
|
|
109
|
+
results.push({ status: 'ok', label: '.env 文件 (主目录)', detail: envPath });
|
|
110
|
+
// Windows 下检查是否在公共目录
|
|
111
|
+
if (process.platform === 'win32') {
|
|
112
|
+
const publicCheck = checkWindowsPublicDir(envPath);
|
|
113
|
+
if (publicCheck) {
|
|
114
|
+
results.push(publicCheck);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
results.push({ status: 'warn', label: '.env 文件 (主目录)', detail: '不存在(运行 flashclaw init 创建)' });
|
|
120
|
+
}
|
|
121
|
+
// 检查项目根目录 .env(如果存在,可能包含敏感信息)
|
|
122
|
+
const projectRootEnv = resolve(process.cwd(), '.env');
|
|
123
|
+
if (existsSync(projectRootEnv)) {
|
|
124
|
+
// 检查项目根 .env 是否包含 API Key 等敏感信息
|
|
125
|
+
try {
|
|
126
|
+
const content = readFileSync(projectRootEnv, 'utf-8');
|
|
127
|
+
const hasSensitive = /(?:API_KEY|AUTH_TOKEN|SECRET|PASSWORD)=/i.test(content);
|
|
128
|
+
if (hasSensitive) {
|
|
129
|
+
results.push({
|
|
130
|
+
status: 'warn',
|
|
131
|
+
label: '.env 文件 (项目根)',
|
|
132
|
+
detail: '包含敏感信息,请确保已加入 .gitignore',
|
|
133
|
+
});
|
|
134
|
+
// 检查 .gitignore 是否包含 .env
|
|
135
|
+
const gitignorePath = resolve(process.cwd(), '.gitignore');
|
|
136
|
+
if (existsSync(gitignorePath)) {
|
|
137
|
+
const gitignore = readFileSync(gitignorePath, 'utf-8');
|
|
138
|
+
const hasEnvRule = gitignore.split('\n').some(line => {
|
|
139
|
+
const trimmed = line.trim();
|
|
140
|
+
return trimmed === '.env' || trimmed === '.env*' || trimmed === '*.env';
|
|
141
|
+
});
|
|
142
|
+
if (!hasEnvRule) {
|
|
143
|
+
results.push({
|
|
144
|
+
status: 'warn',
|
|
145
|
+
label: '.gitignore 保护',
|
|
146
|
+
detail: '.gitignore 未包含 .env 规则,敏感信息可能被提交',
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
results.push({ status: 'ok', label: '.gitignore 保护', detail: '.env 已在 .gitignore 中' });
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
results.push({ status: 'ok', label: '.env 文件 (项目根)', detail: '存在但未包含敏感信息' });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
results.push({ status: 'warn', label: '.env 文件 (项目根)', detail: '存在但无法读取' });
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return results;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Windows 下检查路径是否在公共目录中
|
|
166
|
+
* 公共目录如 C:\Users\Public 下的文件所有用户可访问
|
|
167
|
+
*/
|
|
168
|
+
function checkWindowsPublicDir(filePath) {
|
|
169
|
+
const normalized = filePath.toLowerCase().replace(/\//g, '\\');
|
|
170
|
+
// 检查常见公共目录
|
|
171
|
+
const publicPaths = [
|
|
172
|
+
join(homedir(), '..', 'Public').toLowerCase().replace(/\//g, '\\'),
|
|
173
|
+
'c:\\users\\public',
|
|
174
|
+
'c:\\temp',
|
|
175
|
+
'c:\\tmp',
|
|
176
|
+
];
|
|
177
|
+
for (const pubPath of publicPaths) {
|
|
178
|
+
if (normalized.startsWith(pubPath)) {
|
|
179
|
+
return {
|
|
180
|
+
status: 'fail',
|
|
181
|
+
label: '.env 文件位置',
|
|
182
|
+
detail: `位于公共目录 ${pubPath},所有用户可访问!请移至私有目录`,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// 检查桌面目录(可能被他人物理访问到)
|
|
187
|
+
const desktopPath = join(homedir(), 'Desktop').toLowerCase().replace(/\//g, '\\');
|
|
188
|
+
const oneDriveDesktop = join(homedir(), 'OneDrive', 'Desktop').toLowerCase().replace(/\//g, '\\');
|
|
189
|
+
if (normalized.startsWith(desktopPath) || normalized.startsWith(oneDriveDesktop)) {
|
|
190
|
+
return {
|
|
191
|
+
status: 'warn',
|
|
192
|
+
label: '.env 文件位置',
|
|
193
|
+
detail: '位于桌面目录,可能被意外访问',
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
// ==================== 3. 数据目录安全 ====================
|
|
199
|
+
function checkDataDirSecurity(flashclawHome) {
|
|
200
|
+
const results = [];
|
|
201
|
+
// 检查 ~/.flashclaw/ 是否存在
|
|
202
|
+
if (!existsSync(flashclawHome)) {
|
|
203
|
+
results.push({
|
|
204
|
+
status: 'warn',
|
|
205
|
+
label: '数据目录',
|
|
206
|
+
detail: `${flashclawHome} 不存在(运行 flashclaw init 创建)`,
|
|
207
|
+
});
|
|
208
|
+
return results;
|
|
209
|
+
}
|
|
210
|
+
results.push({ status: 'ok', label: '数据目录', detail: flashclawHome });
|
|
211
|
+
// 检查目录权限(Unix 系统下检查文件模式)
|
|
212
|
+
if (process.platform !== 'win32') {
|
|
213
|
+
try {
|
|
214
|
+
const stat = statSync(flashclawHome);
|
|
215
|
+
const mode = stat.mode & 0o777;
|
|
216
|
+
// 权限过于开放(其他用户可读写)
|
|
217
|
+
if (mode & 0o007) {
|
|
218
|
+
results.push({
|
|
219
|
+
status: 'warn',
|
|
220
|
+
label: '数据目录权限',
|
|
221
|
+
detail: `权限 ${mode.toString(8)},其他用户可访问,建议 chmod 700`,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
results.push({ status: 'ok', label: '数据目录权限', detail: `权限 ${mode.toString(8)}` });
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
results.push({ status: 'warn', label: '数据目录权限', detail: '无法读取权限信息' });
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
// Windows: 检查目录是否在公共位置
|
|
234
|
+
const publicCheck = checkWindowsPublicDir(flashclawHome);
|
|
235
|
+
if (publicCheck) {
|
|
236
|
+
publicCheck.label = '数据目录位置';
|
|
237
|
+
results.push(publicCheck);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
results.push({ status: 'ok', label: '数据目录位置', detail: '位于私有用户目录' });
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// 检查数据库文件
|
|
244
|
+
const dbPath = join(flashclawHome, 'data', 'flashclaw.db');
|
|
245
|
+
if (existsSync(dbPath)) {
|
|
246
|
+
try {
|
|
247
|
+
const stat = statSync(dbPath);
|
|
248
|
+
const sizeMB = (stat.size / (1024 * 1024)).toFixed(1);
|
|
249
|
+
results.push({ status: 'ok', label: '数据库文件', detail: `${sizeMB} MB` });
|
|
250
|
+
}
|
|
251
|
+
catch {
|
|
252
|
+
results.push({ status: 'warn', label: '数据库文件', detail: '存在但无法读取' });
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return results;
|
|
256
|
+
}
|
|
257
|
+
// ==================== 4. Telegram 白名单 ====================
|
|
258
|
+
function checkTelegramSecurity() {
|
|
259
|
+
const results = [];
|
|
260
|
+
const telegramToken = process.env.TELEGRAM_BOT_TOKEN;
|
|
261
|
+
const allowedUsers = process.env.TELEGRAM_ALLOWED_USERS;
|
|
262
|
+
if (!telegramToken) {
|
|
263
|
+
results.push({ status: 'ok', label: 'Telegram 渠道', detail: '未启用(无需检查)' });
|
|
264
|
+
return results;
|
|
265
|
+
}
|
|
266
|
+
// Telegram 已启用,检查白名单
|
|
267
|
+
if (allowedUsers && allowedUsers.trim().length > 0) {
|
|
268
|
+
const userCount = allowedUsers.split(',').filter(u => u.trim()).length;
|
|
269
|
+
results.push({
|
|
270
|
+
status: 'ok',
|
|
271
|
+
label: 'Telegram 用户白名单',
|
|
272
|
+
detail: `已配置 ${userCount} 个允许用户`,
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
results.push({
|
|
277
|
+
status: 'warn',
|
|
278
|
+
label: 'Telegram 用户白名单',
|
|
279
|
+
detail: '未配置 TELEGRAM_ALLOWED_USERS,任何人可使用机器人',
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
return results;
|
|
283
|
+
}
|
|
284
|
+
// ==================== 5. 代理安全 ====================
|
|
285
|
+
function checkProxySecurity() {
|
|
286
|
+
const results = [];
|
|
287
|
+
const httpProxy = process.env.HTTP_PROXY || process.env.http_proxy || '';
|
|
288
|
+
const httpsProxy = process.env.HTTPS_PROXY || process.env.https_proxy || '';
|
|
289
|
+
const telegramProxy = process.env.TELEGRAM_PROXY || '';
|
|
290
|
+
const allProxies = [httpProxy, httpsProxy, telegramProxy].filter(Boolean);
|
|
291
|
+
if (allProxies.length === 0) {
|
|
292
|
+
results.push({ status: 'ok', label: '代理配置', detail: '未使用代理' });
|
|
293
|
+
return results;
|
|
294
|
+
}
|
|
295
|
+
for (const proxy of allProxies) {
|
|
296
|
+
try {
|
|
297
|
+
const url = new URL(proxy);
|
|
298
|
+
const host = url.hostname;
|
|
299
|
+
// 检查是否指向公网(非本机/内网地址)
|
|
300
|
+
const isLocal = isLocalAddress(host);
|
|
301
|
+
if (isLocal) {
|
|
302
|
+
results.push({
|
|
303
|
+
status: 'ok',
|
|
304
|
+
label: '代理地址',
|
|
305
|
+
detail: `${proxy} (本地代理)`,
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
results.push({
|
|
310
|
+
status: 'warn',
|
|
311
|
+
label: '代理地址',
|
|
312
|
+
detail: `${proxy} 指向公网,流量经第三方转发,存在泄露风险`,
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
catch {
|
|
317
|
+
results.push({
|
|
318
|
+
status: 'warn',
|
|
319
|
+
label: '代理地址',
|
|
320
|
+
detail: `${proxy} 格式不正确`,
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
return results;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* 判断地址是否为本地/内网地址
|
|
328
|
+
*/
|
|
329
|
+
function isLocalAddress(host) {
|
|
330
|
+
if (host === 'localhost' || host === '127.0.0.1' || host === '::1')
|
|
331
|
+
return true;
|
|
332
|
+
// 内网地址段
|
|
333
|
+
if (host.startsWith('192.168.'))
|
|
334
|
+
return true;
|
|
335
|
+
if (host.startsWith('10.'))
|
|
336
|
+
return true;
|
|
337
|
+
if (/^172\.(1[6-9]|2\d|3[01])\./.test(host))
|
|
338
|
+
return true;
|
|
339
|
+
return false;
|
|
340
|
+
}
|
|
341
|
+
// ==================== 6. 日志安全 ====================
|
|
342
|
+
function checkLogSecurity() {
|
|
343
|
+
const results = [];
|
|
344
|
+
const logLevel = (process.env.LOG_LEVEL || 'info').toLowerCase();
|
|
345
|
+
if (logLevel === 'debug') {
|
|
346
|
+
results.push({
|
|
347
|
+
status: 'warn',
|
|
348
|
+
label: '日志级别',
|
|
349
|
+
detail: 'debug 级别可能泄露敏感信息,生产环境建议使用 info 或 warn',
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
results.push({ status: 'ok', label: '日志级别', detail: logLevel });
|
|
354
|
+
}
|
|
355
|
+
// 检查环境变量中敏感键的数量(提醒用户注意日志输出)
|
|
356
|
+
const sensitivePatterns = ['PASSWORD', 'SECRET', 'TOKEN', 'API_KEY', 'AUTH_TOKEN', 'PRIVATE_KEY'];
|
|
357
|
+
const envKeys = Object.keys(process.env);
|
|
358
|
+
const sensitiveEnvVars = envKeys.filter(key => sensitivePatterns.some(sp => key.toUpperCase().includes(sp)) && process.env[key]);
|
|
359
|
+
if (sensitiveEnvVars.length > 0) {
|
|
360
|
+
const preview = sensitiveEnvVars.slice(0, 3).join(', ');
|
|
361
|
+
const suffix = sensitiveEnvVars.length > 3 ? `...共 ${sensitiveEnvVars.length} 个` : '';
|
|
362
|
+
results.push({
|
|
363
|
+
status: 'ok',
|
|
364
|
+
label: '敏感环境变量',
|
|
365
|
+
detail: `检测到 ${preview}${suffix},请确保日志中不输出其值`,
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
results.push({ status: 'ok', label: '敏感环境变量', detail: '未检测到敏感环境变量' });
|
|
370
|
+
}
|
|
371
|
+
return results;
|
|
372
|
+
}
|
|
373
|
+
// ==================== 7. 插件安全 ====================
|
|
374
|
+
function checkPluginSecurity(userPluginsDir) {
|
|
375
|
+
const results = [];
|
|
376
|
+
if (!existsSync(userPluginsDir)) {
|
|
377
|
+
results.push({ status: 'ok', label: '用户插件', detail: '目录不存在,无需检查' });
|
|
378
|
+
return results;
|
|
379
|
+
}
|
|
380
|
+
try {
|
|
381
|
+
const entries = readdirSync(userPluginsDir, { withFileTypes: true });
|
|
382
|
+
const dirs = entries.filter(e => e.isDirectory());
|
|
383
|
+
if (dirs.length === 0) {
|
|
384
|
+
results.push({ status: 'ok', label: '用户插件', detail: '无已安装插件' });
|
|
385
|
+
return results;
|
|
386
|
+
}
|
|
387
|
+
const suspicious = [];
|
|
388
|
+
const untrusted = [];
|
|
389
|
+
let validCount = 0;
|
|
390
|
+
for (const dir of dirs) {
|
|
391
|
+
const manifestPath = join(userPluginsDir, dir.name, 'plugin.json');
|
|
392
|
+
if (!existsSync(manifestPath)) {
|
|
393
|
+
suspicious.push(dir.name);
|
|
394
|
+
continue;
|
|
395
|
+
}
|
|
396
|
+
try {
|
|
397
|
+
const manifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));
|
|
398
|
+
// 检查插件来源:有 source 字段且指向官方仓库认为可信
|
|
399
|
+
const source = manifest.source || '';
|
|
400
|
+
const isTrusted = !source || source.includes('github.com/GuLu9527/flashclaw');
|
|
401
|
+
if (!isTrusted) {
|
|
402
|
+
untrusted.push(`${dir.name} (${source})`);
|
|
403
|
+
}
|
|
404
|
+
else {
|
|
405
|
+
validCount++;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
catch {
|
|
409
|
+
suspicious.push(dir.name);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
// 报告结果
|
|
413
|
+
if (suspicious.length > 0) {
|
|
414
|
+
results.push({
|
|
415
|
+
status: 'warn',
|
|
416
|
+
label: '可疑插件目录',
|
|
417
|
+
detail: `${suspicious.join(', ')} 缺少 plugin.json 或格式错误`,
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
if (untrusted.length > 0) {
|
|
421
|
+
results.push({
|
|
422
|
+
status: 'warn',
|
|
423
|
+
label: '第三方插件',
|
|
424
|
+
detail: `${untrusted.join(', ')} 来自非官方源,请确认可信`,
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
if (validCount > 0) {
|
|
428
|
+
results.push({
|
|
429
|
+
status: 'ok',
|
|
430
|
+
label: '用户插件',
|
|
431
|
+
detail: `${validCount} 个插件来源正常`,
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
catch {
|
|
436
|
+
results.push({ status: 'warn', label: '用户插件', detail: '无法读取插件目录' });
|
|
437
|
+
}
|
|
438
|
+
return results;
|
|
439
|
+
}
|
|
440
|
+
//# sourceMappingURL=security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/commands/security.ts"],"names":[],"mappings":"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"}
|