@shareai-lab/kode 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +649 -25
- package/README.zh-CN.md +579 -0
- package/cli-acp.js +3 -17
- package/cli.js +5 -7
- package/dist/chunks/Doctor-M3J7GRTJ.js +12 -0
- package/dist/chunks/LogList-ISWZ6DDD.js +121 -0
- package/dist/chunks/LogList-ISWZ6DDD.js.map +7 -0
- package/dist/chunks/REPL-RQ6LO6S7.js +56 -0
- package/dist/chunks/ResumeConversation-6DMVBEGH.js +56 -0
- package/dist/chunks/agentLoader-FCRG3TFJ.js +31 -0
- package/dist/{agentsValidate-XP3CFN6F.js → chunks/agentsValidate-PEWMYN4Q.js} +97 -69
- package/dist/chunks/agentsValidate-PEWMYN4Q.js.map +7 -0
- package/dist/{ask-3G5H5KD5.js → chunks/ask-D7SOHJ6Z.js} +36 -44
- package/dist/chunks/ask-D7SOHJ6Z.js.map +7 -0
- package/dist/chunks/autoUpdater-CNESBOKO.js +19 -0
- package/dist/{chunk-EH34V7CY.js → chunks/chunk-2JN5MY67.js} +12 -14
- package/dist/chunks/chunk-2JN5MY67.js.map +7 -0
- package/dist/chunks/chunk-2QONJ5MG.js +14 -0
- package/dist/chunks/chunk-2QONJ5MG.js.map +7 -0
- package/dist/chunks/chunk-2WEXPKHH.js +903 -0
- package/dist/chunks/chunk-2WEXPKHH.js.map +7 -0
- package/dist/{chunk-K2MI4TPB.js → chunks/chunk-3BYE3ME6.js} +717 -792
- package/dist/chunks/chunk-3BYE3ME6.js.map +7 -0
- package/dist/chunks/chunk-3JDNWX7W.js +1264 -0
- package/dist/chunks/chunk-3JDNWX7W.js.map +7 -0
- package/dist/chunks/chunk-3OEJVB5A.js +906 -0
- package/dist/chunks/chunk-3OEJVB5A.js.map +7 -0
- package/dist/chunks/chunk-3TNIOEBO.js +369 -0
- package/dist/chunks/chunk-3TNIOEBO.js.map +7 -0
- package/dist/chunks/chunk-4A46ZXMJ.js +67 -0
- package/dist/chunks/chunk-4A46ZXMJ.js.map +7 -0
- package/dist/{chunk-4GAIJGRH.js → chunks/chunk-4ATBQOFO.js} +107 -55
- package/dist/chunks/chunk-4ATBQOFO.js.map +7 -0
- package/dist/chunks/chunk-4CRUCZR4.js +0 -0
- package/dist/{chunk-54DNHKOD.js → chunks/chunk-4EO6SIQY.js} +32 -75
- package/dist/chunks/chunk-4EO6SIQY.js.map +7 -0
- package/dist/chunks/chunk-53M46S5I.js +64 -0
- package/dist/chunks/chunk-53M46S5I.js.map +7 -0
- package/dist/{chunk-JC6NCUG5.js → chunks/chunk-54KOYG5C.js} +0 -2
- package/dist/{chunk-EZXMVTDU.js → chunks/chunk-6BAS4WY6.js} +29 -45
- package/dist/chunks/chunk-6BAS4WY6.js.map +7 -0
- package/dist/{chunk-BHGTA6JQ.js → chunks/chunk-6KRRFSDN.js} +4 -6
- package/dist/chunks/chunk-6KRRFSDN.js.map +7 -0
- package/dist/chunks/chunk-6LJNZK4K.js +39 -0
- package/dist/chunks/chunk-6LJNZK4K.js.map +7 -0
- package/dist/chunks/chunk-6ZWEOSEI.js +666 -0
- package/dist/chunks/chunk-6ZWEOSEI.js.map +7 -0
- package/dist/chunks/chunk-77XDJMBP.js +3326 -0
- package/dist/chunks/chunk-77XDJMBP.js.map +7 -0
- package/dist/chunks/chunk-7RRW4NTB.js +6454 -0
- package/dist/chunks/chunk-7RRW4NTB.js.map +7 -0
- package/dist/chunks/chunk-7X3TW4JB.js +4520 -0
- package/dist/chunks/chunk-7X3TW4JB.js.map +7 -0
- package/dist/chunks/chunk-B3MW3YGY.js +1409 -0
- package/dist/chunks/chunk-B3MW3YGY.js.map +7 -0
- package/dist/chunks/chunk-BBJFHTBC.js +28 -0
- package/dist/chunks/chunk-BBJFHTBC.js.map +7 -0
- package/dist/chunks/chunk-BHDHXOXB.js +24 -0
- package/dist/chunks/chunk-BHDHXOXB.js.map +7 -0
- package/dist/{chunk-OZNRLY3E.js → chunks/chunk-BTA7SZ26.js} +152 -223
- package/dist/chunks/chunk-BTA7SZ26.js.map +7 -0
- package/dist/chunks/chunk-CDGRYGPZ.js +103 -0
- package/dist/chunks/chunk-CDGRYGPZ.js.map +7 -0
- package/dist/{chunk-S6HRABTA.js → chunks/chunk-CP6E5UG6.js} +1 -4
- package/dist/chunks/chunk-CP6E5UG6.js.map +7 -0
- package/dist/{chunk-2PMO2FS2.js → chunks/chunk-DQ4JHXMT.js} +462 -424
- package/dist/chunks/chunk-DQ4JHXMT.js.map +7 -0
- package/dist/chunks/chunk-DXD76CMV.js +208 -0
- package/dist/chunks/chunk-DXD76CMV.js.map +7 -0
- package/dist/chunks/chunk-GCQCAXJZ.js +0 -0
- package/dist/chunks/chunk-GELCZWMB.js +42 -0
- package/dist/chunks/chunk-GELCZWMB.js.map +7 -0
- package/dist/{chunk-NQLEUHMS.js → chunks/chunk-HJYOH4HC.js} +23 -18
- package/dist/chunks/chunk-HJYOH4HC.js.map +7 -0
- package/dist/chunks/chunk-HPYNW6TT.js +744 -0
- package/dist/chunks/chunk-HPYNW6TT.js.map +7 -0
- package/dist/{chunk-2KWKUXLT.js → chunks/chunk-HRJ3ICQK.js} +59 -55
- package/dist/chunks/chunk-HRJ3ICQK.js.map +7 -0
- package/dist/{chunk-ZQU3TXLC.js → chunks/chunk-IFCIADS3.js} +571 -573
- package/dist/chunks/chunk-IFCIADS3.js.map +7 -0
- package/dist/chunks/chunk-IN7XZ7BC.js +27 -0
- package/dist/chunks/chunk-IN7XZ7BC.js.map +7 -0
- package/dist/chunks/chunk-L7P4M4KW.js +193 -0
- package/dist/chunks/chunk-L7P4M4KW.js.map +7 -0
- package/dist/chunks/chunk-LB6TCPDI.js +0 -0
- package/dist/{chunk-3RUXVV4S.js → chunks/chunk-LOCXPQNJ.js} +1 -4
- package/dist/{chunk-3RUXVV4S.js.map → chunks/chunk-LOCXPQNJ.js.map} +2 -2
- package/dist/{chunk-IE2CG2TV.js → chunks/chunk-LOD5ZHCI.js} +213 -208
- package/dist/chunks/chunk-LOD5ZHCI.js.map +7 -0
- package/dist/{chunk-S3J2TLV6.js → chunks/chunk-M7P3QNRU.js} +1 -4
- package/dist/{chunk-S3J2TLV6.js.map → chunks/chunk-M7P3QNRU.js.map} +2 -2
- package/dist/chunks/chunk-PPHLQVL7.js +4234 -0
- package/dist/chunks/chunk-PPHLQVL7.js.map +7 -0
- package/dist/{chunk-ABLVTESJ.js → chunks/chunk-QAXE37B5.js} +1 -4
- package/dist/chunks/chunk-QAXE37B5.js.map +7 -0
- package/dist/chunks/chunk-QHQOBUF6.js +60 -0
- package/dist/chunks/chunk-QHQOBUF6.js.map +7 -0
- package/dist/{chunk-SRZZFAS7.js → chunks/chunk-RPJXO7GG.js} +241 -214
- package/dist/chunks/chunk-RPJXO7GG.js.map +7 -0
- package/dist/{chunk-NPFOMITO.js → chunks/chunk-SWQV4KSY.js} +1 -4
- package/dist/{chunk-NPFOMITO.js.map → chunks/chunk-SWQV4KSY.js.map} +2 -2
- package/dist/chunks/chunk-SZLAPULP.js +28 -0
- package/dist/chunks/chunk-SZLAPULP.js.map +7 -0
- package/dist/{chunk-SDGKPKDK.js → chunks/chunk-T7RB5V5J.js} +23 -25
- package/dist/chunks/chunk-T7RB5V5J.js.map +7 -0
- package/dist/{chunk-HN4E4UUQ.js → chunks/chunk-TI2CTTMA.js} +25 -17
- package/dist/chunks/chunk-TI2CTTMA.js.map +7 -0
- package/dist/{chunk-G6I7XROM.js → chunks/chunk-TNGVRTO5.js} +45 -20
- package/dist/chunks/chunk-TNGVRTO5.js.map +7 -0
- package/dist/chunks/chunk-TNWB3U5Y.js +2077 -0
- package/dist/chunks/chunk-TNWB3U5Y.js.map +7 -0
- package/dist/chunks/chunk-U2IHWPCU.js +12 -0
- package/dist/chunks/chunk-U2IHWPCU.js.map +7 -0
- package/dist/{chunk-KAA5BGMQ.js → chunks/chunk-UNOY3VJ2.js} +1 -4
- package/dist/{chunk-KAA5BGMQ.js.map → chunks/chunk-UNOY3VJ2.js.map} +2 -2
- package/dist/{chunk-3TXNP6HH.js → chunks/chunk-UVDJL6ZZ.js} +97 -58
- package/dist/chunks/chunk-UVDJL6ZZ.js.map +7 -0
- package/dist/chunks/chunk-VNCW4C2Z.js +13452 -0
- package/dist/chunks/chunk-VNCW4C2Z.js.map +7 -0
- package/dist/chunks/chunk-W5EGGA44.js +15 -0
- package/dist/chunks/chunk-W5EGGA44.js.map +7 -0
- package/dist/chunks/chunk-XR2W3MAM.js +1533 -0
- package/dist/chunks/chunk-XR2W3MAM.js.map +7 -0
- package/dist/{chunk-QYFKRZQC.js → chunks/chunk-YIO5EBMQ.js} +423 -377
- package/dist/chunks/chunk-YIO5EBMQ.js.map +7 -0
- package/dist/chunks/chunk-ZBVLKZ5V.js +1062 -0
- package/dist/chunks/chunk-ZBVLKZ5V.js.map +7 -0
- package/dist/{chunk-E6YNABER.js → chunks/chunk-ZCLTZIVP.js} +1 -4
- package/dist/chunks/chunk-ZCLTZIVP.js.map +7 -0
- package/dist/chunks/client-SILZNM5N.js +42 -0
- package/dist/{config-6ZMBCL23.js → chunks/config-25HRTPSP.js} +48 -10
- package/dist/chunks/cost-tracker-Z2UZT2J5.js +28 -0
- package/dist/{customCommands-DNEJS3ZU.js → chunks/customCommands-TYMYZRG5.js} +11 -8
- package/dist/chunks/engine-MRVF6FK6.js +39 -0
- package/dist/{env-OFAXZ3XG.js → chunks/env-TJ5NOBEB.js} +7 -5
- package/dist/{kodeAgentSessionId-X6XWQW7B.js → chunks/kodeAgentSessionId-VTNISJ2L.js} +2 -4
- package/dist/chunks/kodeAgentSessionLoad-YB2RKBGJ.js +15 -0
- package/dist/chunks/kodeAgentSessionResume-DZSIVKVA.js +13 -0
- package/dist/chunks/kodeAgentStreamJson-X5PLS2S6.js +11 -0
- package/dist/{kodeAgentStreamJsonSession-GRWG3SPE.js → chunks/kodeAgentStreamJsonSession-RDXM4XYF.js} +38 -24
- package/dist/chunks/kodeAgentStreamJsonSession-RDXM4XYF.js.map +7 -0
- package/dist/{chunk-4RTX4AG4.js → chunks/kodeAgentStructuredStdio-SVGDSB4P.js} +14 -9
- package/dist/chunks/kodeAgentStructuredStdio-SVGDSB4P.js.map +7 -0
- package/dist/{kodeHooks-TDMXFWSO.js → chunks/kodeHooks-RVKYRJHG.js} +11 -9
- package/dist/{llm-XVXWYOHK.js → chunks/llm-62N6T5ZT.js} +1734 -1526
- package/dist/chunks/llm-62N6T5ZT.js.map +7 -0
- package/dist/chunks/llmLazy-ZUSSE3ZA.js +13 -0
- package/dist/{mentionProcessor-YD7YXYGF.js → chunks/mentionProcessor-RJW5UPJD.js} +46 -16
- package/dist/chunks/mentionProcessor-RJW5UPJD.js.map +7 -0
- package/dist/{messages-OFUJSPRV.js → chunks/messages-EEWWLPHN.js} +2 -6
- package/dist/chunks/model-5TIEKQPD.js +37 -0
- package/dist/{openai-5G5D5Q4B.js → chunks/openai-XXK3YZG4.js} +13 -10
- package/dist/{outputStyles-HLDXFQK3.js → chunks/outputStyles-FAJTXN2A.js} +6 -9
- package/dist/chunks/permissions-HO7INPWM.js +27 -0
- package/dist/{pluginRuntime-FPTKK6NY.js → chunks/pluginRuntime-C7K5ULK2.js} +31 -48
- package/dist/chunks/pluginRuntime-C7K5ULK2.js.map +7 -0
- package/dist/chunks/pluginValidation-DAM7WRTC.js +20 -0
- package/dist/chunks/registry-XYJXMOA5.js +60 -0
- package/dist/chunks/responsesStreaming-JNGE2P3D.js +8 -0
- package/dist/chunks/runNonTextPrintMode-SVBLCZQX.js +577 -0
- package/dist/chunks/runNonTextPrintMode-SVBLCZQX.js.map +7 -0
- package/dist/chunks/server-REXXF5IK.js +46 -0
- package/dist/{skillMarketplace-PSNKDINM.js → chunks/skillMarketplace-N4HVHNST.js} +8 -6
- package/dist/chunks/src-OROQIWP3.js +44 -0
- package/dist/chunks/src-QXLGGMUW.js +1647 -0
- package/dist/chunks/src-QXLGGMUW.js.map +7 -0
- package/dist/{cli-SRV2INSL.js → chunks/src-SSDT6MVP.js} +2659 -3384
- package/dist/chunks/src-SSDT6MVP.js.map +7 -0
- package/dist/chunks/theme-YBJUIMWK.js +10 -0
- package/dist/{toolPermissionContext-65L65VEZ.js → chunks/toolPermissionContext-MOCTRR7N.js} +2 -4
- package/dist/chunks/toolPermissionSettings-EV2EJAXL.js +18 -0
- package/dist/chunks/toolPermissionSettings-EV2EJAXL.js.map +7 -0
- package/dist/chunks/uuid-6577SO6X.js +7 -0
- package/dist/chunks/uuid-6577SO6X.js.map +7 -0
- package/dist/chunks/webOnlyMode-ALXX7UQY.js +66 -0
- package/dist/chunks/webOnlyMode-ALXX7UQY.js.map +7 -0
- package/dist/entrypoints/cli.js +10 -0
- package/dist/entrypoints/cli.js.map +7 -0
- package/dist/entrypoints/daemon.js +10 -0
- package/dist/entrypoints/daemon.js.map +7 -0
- package/dist/entrypoints/mcp.js +71 -0
- package/dist/entrypoints/mcp.js.map +7 -0
- package/dist/index.js +6 -7
- package/dist/index.js.map +3 -3
- package/dist/sdk/client.cjs +391 -0
- package/dist/sdk/client.cjs.map +7 -0
- package/dist/sdk/client.js +364 -0
- package/dist/sdk/client.js.map +7 -0
- package/dist/sdk/core.cjs +19932 -0
- package/dist/sdk/core.cjs.map +7 -0
- package/dist/sdk/core.js +19893 -0
- package/dist/sdk/core.js.map +7 -0
- package/dist/sdk/daemon-client.cjs +257 -0
- package/dist/sdk/daemon-client.cjs.map +7 -0
- package/dist/sdk/daemon-client.js +221 -0
- package/dist/sdk/daemon-client.js.map +7 -0
- package/dist/sdk/protocol.cjs +170 -0
- package/dist/sdk/protocol.cjs.map +7 -0
- package/dist/sdk/protocol.js +140 -0
- package/dist/sdk/protocol.js.map +7 -0
- package/dist/sdk/runtime-node.cjs +236 -0
- package/dist/sdk/runtime-node.cjs.map +7 -0
- package/dist/sdk/runtime-node.js +222 -0
- package/dist/sdk/runtime-node.js.map +7 -0
- package/dist/sdk/runtime.cjs +17 -0
- package/dist/sdk/runtime.cjs.map +7 -0
- package/dist/sdk/runtime.js +0 -0
- package/dist/sdk/runtime.js.map +7 -0
- package/dist/sdk/tools.cjs +30300 -0
- package/dist/sdk/tools.cjs.map +7 -0
- package/dist/sdk/tools.js +30282 -0
- package/dist/sdk/tools.js.map +7 -0
- package/dist/webui/assets/index-5hlfByVS.css +1 -0
- package/dist/webui/assets/index-BR9lm1lA.js +82 -0
- package/dist/webui/index.html +28 -0
- package/package.json +93 -22
- package/scripts/binary-utils.cjs +12 -4
- package/scripts/cli-acp-wrapper.cjs +3 -17
- package/scripts/cli-wrapper.cjs +5 -7
- package/scripts/postinstall.js +8 -4
- package/dist/REPL-GIU4ZIXM.js +0 -42
- package/dist/acp-H3VJ77YG.js +0 -1357
- package/dist/acp-H3VJ77YG.js.map +0 -7
- package/dist/agentsValidate-XP3CFN6F.js.map +0 -7
- package/dist/ask-3G5H5KD5.js.map +0 -7
- package/dist/autoUpdater-DNRMJWFQ.js +0 -17
- package/dist/chunk-2KWKUXLT.js.map +0 -7
- package/dist/chunk-2PMO2FS2.js.map +0 -7
- package/dist/chunk-3TXNP6HH.js.map +0 -7
- package/dist/chunk-4GAIJGRH.js.map +0 -7
- package/dist/chunk-4RTX4AG4.js.map +0 -7
- package/dist/chunk-54DNHKOD.js.map +0 -7
- package/dist/chunk-67PY5IX6.js +0 -34
- package/dist/chunk-67PY5IX6.js.map +0 -7
- package/dist/chunk-6DRDLOLP.js +0 -2613
- package/dist/chunk-6DRDLOLP.js.map +0 -7
- package/dist/chunk-7CQVZNQV.js +0 -1609
- package/dist/chunk-7CQVZNQV.js.map +0 -7
- package/dist/chunk-ABLVTESJ.js.map +0 -7
- package/dist/chunk-AIMIPK4B.js +0 -835
- package/dist/chunk-AIMIPK4B.js.map +0 -7
- package/dist/chunk-BHGTA6JQ.js.map +0 -7
- package/dist/chunk-CIG63V4E.js +0 -72
- package/dist/chunk-CIG63V4E.js.map +0 -7
- package/dist/chunk-E6YNABER.js.map +0 -7
- package/dist/chunk-EH34V7CY.js.map +0 -7
- package/dist/chunk-EZXMVTDU.js.map +0 -7
- package/dist/chunk-FH5CHM6L.js +0 -148
- package/dist/chunk-FH5CHM6L.js.map +0 -7
- package/dist/chunk-G6I7XROM.js.map +0 -7
- package/dist/chunk-HN4E4UUQ.js.map +0 -7
- package/dist/chunk-HSPVVDIW.js +0 -30198
- package/dist/chunk-HSPVVDIW.js.map +0 -7
- package/dist/chunk-IE2CG2TV.js.map +0 -7
- package/dist/chunk-K2MI4TPB.js.map +0 -7
- package/dist/chunk-MN77D2F7.js +0 -2931
- package/dist/chunk-MN77D2F7.js.map +0 -7
- package/dist/chunk-NQLEUHMS.js.map +0 -7
- package/dist/chunk-OIFQB3S4.js +0 -515
- package/dist/chunk-OIFQB3S4.js.map +0 -7
- package/dist/chunk-OWTG2W3A.js +0 -164
- package/dist/chunk-OWTG2W3A.js.map +0 -7
- package/dist/chunk-OZNRLY3E.js.map +0 -7
- package/dist/chunk-QYFKRZQC.js.map +0 -7
- package/dist/chunk-S6HRABTA.js.map +0 -7
- package/dist/chunk-SDGKPKDK.js.map +0 -7
- package/dist/chunk-SRZZFAS7.js.map +0 -7
- package/dist/chunk-UKHTVRJM.js +0 -47
- package/dist/chunk-UKHTVRJM.js.map +0 -7
- package/dist/chunk-UYXEDKOZ.js +0 -24
- package/dist/chunk-UYXEDKOZ.js.map +0 -7
- package/dist/chunk-VBXVYQYY.js +0 -145
- package/dist/chunk-VBXVYQYY.js.map +0 -7
- package/dist/chunk-WVHORZQ5.js +0 -17
- package/dist/chunk-WVHORZQ5.js.map +0 -7
- package/dist/chunk-WWUWDNWW.js +0 -49
- package/dist/chunk-WWUWDNWW.js.map +0 -7
- package/dist/chunk-Z33T5YN5.js +0 -654
- package/dist/chunk-Z33T5YN5.js.map +0 -7
- package/dist/chunk-ZQU3TXLC.js.map +0 -7
- package/dist/cli-SRV2INSL.js.map +0 -7
- package/dist/commands-TWH6PGVG.js +0 -46
- package/dist/context-JQIOOI4W.js +0 -30
- package/dist/costTracker-6SL26FDB.js +0 -19
- package/dist/kodeAgentSessionLoad-6N27AC5K.js +0 -18
- package/dist/kodeAgentSessionResume-HUSAEO24.js +0 -16
- package/dist/kodeAgentStreamJson-NXFN7TXH.js +0 -13
- package/dist/kodeAgentStreamJsonSession-GRWG3SPE.js.map +0 -7
- package/dist/kodeAgentStructuredStdio-HGWJT7CU.js +0 -10
- package/dist/llm-XVXWYOHK.js.map +0 -7
- package/dist/llmLazy-7TD5N7XP.js +0 -15
- package/dist/loader-AUXIJTY6.js +0 -28
- package/dist/mcp-BXJ3K7NZ.js +0 -49
- package/dist/mentionProcessor-YD7YXYGF.js.map +0 -7
- package/dist/model-KPYCXWBK.js +0 -30
- package/dist/pluginRuntime-FPTKK6NY.js.map +0 -7
- package/dist/pluginValidation-DSFXZ4GF.js +0 -17
- package/dist/prompts-LWLAJRS2.js +0 -48
- package/dist/query-HVPWL27C.js +0 -50
- package/dist/responsesStreaming-AW344PQO.js +0 -10
- package/dist/ripgrep-YOPCY2GO.js +0 -17
- package/dist/state-KNRWP3FO.js +0 -16
- package/dist/theme-7S2QN2FO.js +0 -14
- package/dist/toolPermissionSettings-GPOBH4IV.js +0 -18
- package/dist/tools-FZU2FZBD.js +0 -47
- package/dist/userInput-VHNBN2MW.js +0 -311
- package/dist/userInput-VHNBN2MW.js.map +0 -7
- package/dist/uuid-QN2CNKKN.js +0 -9
- /package/dist/{REPL-GIU4ZIXM.js.map → chunks/Doctor-M3J7GRTJ.js.map} +0 -0
- /package/dist/{autoUpdater-DNRMJWFQ.js.map → chunks/REPL-RQ6LO6S7.js.map} +0 -0
- /package/dist/{chunk-JC6NCUG5.js.map → chunks/ResumeConversation-6DMVBEGH.js.map} +0 -0
- /package/dist/{commands-TWH6PGVG.js.map → chunks/agentLoader-FCRG3TFJ.js.map} +0 -0
- /package/dist/{config-6ZMBCL23.js.map → chunks/autoUpdater-CNESBOKO.js.map} +0 -0
- /package/dist/{context-JQIOOI4W.js.map → chunks/chunk-4CRUCZR4.js.map} +0 -0
- /package/dist/{costTracker-6SL26FDB.js.map → chunks/chunk-54KOYG5C.js.map} +0 -0
- /package/dist/{customCommands-DNEJS3ZU.js.map → chunks/chunk-GCQCAXJZ.js.map} +0 -0
- /package/dist/{env-OFAXZ3XG.js.map → chunks/chunk-LB6TCPDI.js.map} +0 -0
- /package/dist/{kodeAgentSessionId-X6XWQW7B.js.map → chunks/client-SILZNM5N.js.map} +0 -0
- /package/dist/{kodeAgentSessionLoad-6N27AC5K.js.map → chunks/config-25HRTPSP.js.map} +0 -0
- /package/dist/{kodeAgentSessionResume-HUSAEO24.js.map → chunks/cost-tracker-Z2UZT2J5.js.map} +0 -0
- /package/dist/{kodeAgentStreamJson-NXFN7TXH.js.map → chunks/customCommands-TYMYZRG5.js.map} +0 -0
- /package/dist/{kodeAgentStructuredStdio-HGWJT7CU.js.map → chunks/engine-MRVF6FK6.js.map} +0 -0
- /package/dist/{kodeHooks-TDMXFWSO.js.map → chunks/env-TJ5NOBEB.js.map} +0 -0
- /package/dist/{llmLazy-7TD5N7XP.js.map → chunks/kodeAgentSessionId-VTNISJ2L.js.map} +0 -0
- /package/dist/{loader-AUXIJTY6.js.map → chunks/kodeAgentSessionLoad-YB2RKBGJ.js.map} +0 -0
- /package/dist/{mcp-BXJ3K7NZ.js.map → chunks/kodeAgentSessionResume-DZSIVKVA.js.map} +0 -0
- /package/dist/{messages-OFUJSPRV.js.map → chunks/kodeAgentStreamJson-X5PLS2S6.js.map} +0 -0
- /package/dist/{model-KPYCXWBK.js.map → chunks/kodeHooks-RVKYRJHG.js.map} +0 -0
- /package/dist/{openai-5G5D5Q4B.js.map → chunks/llmLazy-ZUSSE3ZA.js.map} +0 -0
- /package/dist/{outputStyles-HLDXFQK3.js.map → chunks/messages-EEWWLPHN.js.map} +0 -0
- /package/dist/{pluginValidation-DSFXZ4GF.js.map → chunks/model-5TIEKQPD.js.map} +0 -0
- /package/dist/{prompts-LWLAJRS2.js.map → chunks/openai-XXK3YZG4.js.map} +0 -0
- /package/dist/{query-HVPWL27C.js.map → chunks/outputStyles-FAJTXN2A.js.map} +0 -0
- /package/dist/{responsesStreaming-AW344PQO.js.map → chunks/permissions-HO7INPWM.js.map} +0 -0
- /package/dist/{ripgrep-YOPCY2GO.js.map → chunks/pluginValidation-DAM7WRTC.js.map} +0 -0
- /package/dist/{skillMarketplace-PSNKDINM.js.map → chunks/registry-XYJXMOA5.js.map} +0 -0
- /package/dist/{state-KNRWP3FO.js.map → chunks/responsesStreaming-JNGE2P3D.js.map} +0 -0
- /package/dist/{theme-7S2QN2FO.js.map → chunks/server-REXXF5IK.js.map} +0 -0
- /package/dist/{toolPermissionContext-65L65VEZ.js.map → chunks/skillMarketplace-N4HVHNST.js.map} +0 -0
- /package/dist/{toolPermissionSettings-GPOBH4IV.js.map → chunks/src-OROQIWP3.js.map} +0 -0
- /package/dist/{tools-FZU2FZBD.js.map → chunks/theme-YBJUIMWK.js.map} +0 -0
- /package/dist/{uuid-QN2CNKKN.js.map → chunks/toolPermissionContext-MOCTRR7N.js.map} +0 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useTerminalSize
|
|
3
|
+
} from "./chunk-6LJNZK4K.js";
|
|
4
|
+
import {
|
|
5
|
+
Select
|
|
6
|
+
} from "./chunk-3TNIOEBO.js";
|
|
7
|
+
import {
|
|
8
|
+
getTheme
|
|
9
|
+
} from "./chunk-T7RB5V5J.js";
|
|
10
|
+
import {
|
|
11
|
+
CACHE_PATHS,
|
|
12
|
+
formatDate,
|
|
13
|
+
loadLogList,
|
|
14
|
+
logError
|
|
15
|
+
} from "./chunk-3OEJVB5A.js";
|
|
16
|
+
import "./chunk-BBJFHTBC.js";
|
|
17
|
+
import "./chunk-QHQOBUF6.js";
|
|
18
|
+
import "./chunk-W5EGGA44.js";
|
|
19
|
+
import "./chunk-DXD76CMV.js";
|
|
20
|
+
import "./chunk-LB6TCPDI.js";
|
|
21
|
+
import "./chunk-XR2W3MAM.js";
|
|
22
|
+
import "./chunk-B3MW3YGY.js";
|
|
23
|
+
import "./chunk-54KOYG5C.js";
|
|
24
|
+
|
|
25
|
+
// apps/cli/src/ui/screens/LogList.tsx
|
|
26
|
+
import React2, { useEffect, useState } from "react";
|
|
27
|
+
|
|
28
|
+
// apps/cli/src/ui/components/LogSelector.tsx
|
|
29
|
+
import React from "react";
|
|
30
|
+
import { Box, Text } from "ink";
|
|
31
|
+
function LogSelector({
|
|
32
|
+
logs,
|
|
33
|
+
onSelect
|
|
34
|
+
}) {
|
|
35
|
+
const { rows, columns } = useTerminalSize();
|
|
36
|
+
if (logs.length === 0) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
const visibleCount = rows - 3;
|
|
40
|
+
const hiddenCount = Math.max(0, logs.length - visibleCount);
|
|
41
|
+
const indexWidth = 7;
|
|
42
|
+
const modifiedWidth = 21;
|
|
43
|
+
const createdWidth = 21;
|
|
44
|
+
const countWidth = 9;
|
|
45
|
+
const options = logs.map((log, i) => {
|
|
46
|
+
const index = `[${i}]`.padEnd(indexWidth);
|
|
47
|
+
const modified = formatDate(log.modified).padEnd(modifiedWidth);
|
|
48
|
+
const created = formatDate(log.created).padEnd(createdWidth);
|
|
49
|
+
const msgCount = `${log.messageCount}`.padStart(countWidth);
|
|
50
|
+
const prompt = log.firstPrompt;
|
|
51
|
+
let branchInfo = "";
|
|
52
|
+
if (log.forkNumber) branchInfo += ` (fork #${log.forkNumber})`;
|
|
53
|
+
if (log.sidechainNumber)
|
|
54
|
+
branchInfo += ` (sidechain #${log.sidechainNumber})`;
|
|
55
|
+
const labelTxt = `${index}${modified}${created}${msgCount} ${prompt}${branchInfo}`;
|
|
56
|
+
const truncated = labelTxt.length > columns - 2 ? `${labelTxt.slice(0, columns - 5)}...` : labelTxt;
|
|
57
|
+
return {
|
|
58
|
+
label: truncated,
|
|
59
|
+
value: log.value.toString()
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
return /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", height: "100%", width: "100%" }, /* @__PURE__ */ React.createElement(Box, { paddingLeft: 9 }, /* @__PURE__ */ React.createElement(Text, { bold: true, color: getTheme().text }, "Modified"), /* @__PURE__ */ React.createElement(Text, null, " "), /* @__PURE__ */ React.createElement(Text, { bold: true, color: getTheme().text }, "Created"), /* @__PURE__ */ React.createElement(Text, null, " "), /* @__PURE__ */ React.createElement(Text, { bold: true, color: getTheme().text }, "# Messages"), /* @__PURE__ */ React.createElement(Text, null, " "), /* @__PURE__ */ React.createElement(Text, { bold: true, color: getTheme().text }, "First message")), /* @__PURE__ */ React.createElement(
|
|
63
|
+
Select,
|
|
64
|
+
{
|
|
65
|
+
options,
|
|
66
|
+
onChange: (index) => onSelect(parseInt(index, 10)),
|
|
67
|
+
visibleOptionCount: visibleCount
|
|
68
|
+
}
|
|
69
|
+
), hiddenCount > 0 && /* @__PURE__ */ React.createElement(Box, { paddingLeft: 2 }, /* @__PURE__ */ React.createElement(Text, { color: getTheme().secondaryText }, "and ", hiddenCount, " more\u2026")));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// apps/cli/src/ui/screens/LogList.tsx
|
|
73
|
+
function LogList({ context, type, logNumber }) {
|
|
74
|
+
const [logs, setLogs] = useState([]);
|
|
75
|
+
const [didSelectLog, setDidSelectLog] = useState(false);
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
loadLogList(
|
|
78
|
+
type === "messages" ? CACHE_PATHS.messages() : CACHE_PATHS.errors()
|
|
79
|
+
).then((logs2) => {
|
|
80
|
+
if (logNumber !== void 0) {
|
|
81
|
+
const log = logs2[logNumber >= 0 ? logNumber : 0];
|
|
82
|
+
if (log) {
|
|
83
|
+
console.log(JSON.stringify(log.messages, null, 2));
|
|
84
|
+
process.exit(0);
|
|
85
|
+
} else {
|
|
86
|
+
console.error("No log found at index", logNumber);
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
setLogs(logs2);
|
|
91
|
+
}).catch((error) => {
|
|
92
|
+
logError(error);
|
|
93
|
+
if (logNumber !== void 0) {
|
|
94
|
+
process.exit(1);
|
|
95
|
+
} else {
|
|
96
|
+
context.unmount?.();
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}, [context, type, logNumber]);
|
|
100
|
+
function onSelect(index) {
|
|
101
|
+
const log = logs[index];
|
|
102
|
+
if (!log) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
setDidSelectLog(true);
|
|
106
|
+
setTimeout(() => {
|
|
107
|
+
console.log(JSON.stringify(log.messages, null, 2));
|
|
108
|
+
process.exit(0);
|
|
109
|
+
}, 100);
|
|
110
|
+
}
|
|
111
|
+
if (logNumber !== void 0) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
if (didSelectLog) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
return /* @__PURE__ */ React2.createElement(LogSelector, { logs, onSelect });
|
|
118
|
+
}
|
|
119
|
+
export {
|
|
120
|
+
LogList
|
|
121
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../apps/cli/src/ui/screens/LogList.tsx", "../../apps/cli/src/ui/components/LogSelector.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { useEffect, useState } from 'react'\nimport { CACHE_PATHS } from '#core/utils/log'\nimport { LogSelector } from '#ui-ink/components/LogSelector'\nimport type { LogOption, LogListProps } from '#core/types/logs'\nimport { loadLogList } from '#core/utils/log'\nimport { logError } from '#core/utils/log'\n\ntype Props = LogListProps & {\n type: 'messages' | 'errors'\n logNumber?: number\n}\n\nexport function LogList({ context, type, logNumber }: Props): React.ReactNode {\n const [logs, setLogs] = useState<LogOption[]>([])\n const [didSelectLog, setDidSelectLog] = useState(false)\n\n useEffect(() => {\n loadLogList(\n type === 'messages' ? CACHE_PATHS.messages() : CACHE_PATHS.errors(),\n )\n .then(logs => {\n // If logNumber is provided, immediately display that log\n if (logNumber !== undefined) {\n const log = logs[logNumber >= 0 ? logNumber : 0] // Handle out of bounds\n if (log) {\n console.log(JSON.stringify(log.messages, null, 2))\n process.exit(0)\n } else {\n console.error('No log found at index', logNumber)\n process.exit(1)\n }\n }\n\n setLogs(logs)\n })\n .catch(error => {\n logError(error)\n if (logNumber !== undefined) {\n process.exit(1)\n } else {\n context.unmount?.()\n }\n })\n }, [context, type, logNumber])\n\n function onSelect(index: number): void {\n const log = logs[index]\n if (!log) {\n return\n }\n setDidSelectLog(true)\n setTimeout(() => {\n console.log(JSON.stringify(log.messages, null, 2))\n process.exit(0)\n }, 100)\n }\n\n // If logNumber is provided, don't render the selector\n if (logNumber !== undefined) {\n return null\n }\n\n if (didSelectLog) {\n return null\n }\n\n return <LogSelector logs={logs} onSelect={onSelect} />\n}\n", "import React from 'react'\nimport { Box, Text } from 'ink'\nimport { Select } from './CustomSelect/select'\nimport type { LogOption } from '#core/types/logs'\nimport { getTheme } from '#core/utils/theme'\nimport { useTerminalSize } from '#ui-ink/hooks/useTerminalSize'\nimport { formatDate } from '#core/utils/log'\n\ntype LogSelectorProps = {\n logs: LogOption[]\n onSelect: (logValue: number) => void\n}\n\nexport function LogSelector({\n logs,\n onSelect,\n}: LogSelectorProps): React.ReactNode {\n const { rows, columns } = useTerminalSize()\n if (logs.length === 0) {\n return null\n }\n\n const visibleCount = rows - 3 // Account for header and footer\n const hiddenCount = Math.max(0, logs.length - visibleCount)\n\n // Create formatted options\n // Calculate column widths\n const indexWidth = 7 // [0] to [99] with extra spaces\n const modifiedWidth = 21 // \"Yesterday at 7:49 pm\" with space\n const createdWidth = 21 // \"Yesterday at 7:49 pm\" with space\n const countWidth = 9 // \"999 msgs\" (right-aligned)\n\n const options = logs.map((log, i) => {\n const index = `[${i}]`.padEnd(indexWidth)\n const modified = formatDate(log.modified).padEnd(modifiedWidth)\n const created = formatDate(log.created).padEnd(createdWidth)\n const msgCount = `${log.messageCount}`.padStart(countWidth)\n const prompt = log.firstPrompt\n let branchInfo = ''\n if (log.forkNumber) branchInfo += ` (fork #${log.forkNumber})`\n if (log.sidechainNumber)\n branchInfo += ` (sidechain #${log.sidechainNumber})`\n\n const labelTxt = `${index}${modified}${created}${msgCount} ${prompt}${branchInfo}`\n const truncated =\n labelTxt.length > columns - 2 // Account for \"> \" selection cursor\n ? `${labelTxt.slice(0, columns - 5)}...`\n : labelTxt\n return {\n label: truncated,\n value: log.value.toString(),\n }\n })\n\n return (\n <Box flexDirection=\"column\" height=\"100%\" width=\"100%\">\n <Box paddingLeft={9}>\n <Text bold color={getTheme().text}>\n Modified\n </Text>\n <Text>{' '}</Text>\n <Text bold color={getTheme().text}>\n Created\n </Text>\n <Text>{' '}</Text>\n <Text bold color={getTheme().text}>\n # Messages\n </Text>\n <Text> </Text>\n <Text bold color={getTheme().text}>\n First message\n </Text>\n </Box>\n <Select\n options={options}\n onChange={index => onSelect(parseInt(index, 10))}\n visibleOptionCount={visibleCount}\n />\n {hiddenCount > 0 && (\n <Box paddingLeft={2}>\n <Text color={getTheme().secondaryText}>and {hiddenCount} more\u2026</Text>\n </Box>\n )}\n </Box>\n )\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "logs", "React"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import {
|
|
2
|
+
REPL
|
|
3
|
+
} from "./chunk-VNCW4C2Z.js";
|
|
4
|
+
import "./chunk-6LJNZK4K.js";
|
|
5
|
+
import "./chunk-7X3TW4JB.js";
|
|
6
|
+
import "./chunk-3TNIOEBO.js";
|
|
7
|
+
import "./chunk-IN7XZ7BC.js";
|
|
8
|
+
import "./chunk-4ATBQOFO.js";
|
|
9
|
+
import "./chunk-DQ4JHXMT.js";
|
|
10
|
+
import "./chunk-4EO6SIQY.js";
|
|
11
|
+
import "./chunk-TNGVRTO5.js";
|
|
12
|
+
import "./chunk-HJYOH4HC.js";
|
|
13
|
+
import "./chunk-SZLAPULP.js";
|
|
14
|
+
import "./chunk-2QONJ5MG.js";
|
|
15
|
+
import "./chunk-RPJXO7GG.js";
|
|
16
|
+
import "./chunk-4A46ZXMJ.js";
|
|
17
|
+
import "./chunk-2WEXPKHH.js";
|
|
18
|
+
import "./chunk-6BAS4WY6.js";
|
|
19
|
+
import "./chunk-IFCIADS3.js";
|
|
20
|
+
import "./chunk-QAXE37B5.js";
|
|
21
|
+
import "./chunk-7RRW4NTB.js";
|
|
22
|
+
import "./chunk-ZBVLKZ5V.js";
|
|
23
|
+
import "./chunk-BTA7SZ26.js";
|
|
24
|
+
import "./chunk-PPHLQVL7.js";
|
|
25
|
+
import "./chunk-2JN5MY67.js";
|
|
26
|
+
import "./chunk-CP6E5UG6.js";
|
|
27
|
+
import "./chunk-TNWB3U5Y.js";
|
|
28
|
+
import "./chunk-UVDJL6ZZ.js";
|
|
29
|
+
import "./chunk-CDGRYGPZ.js";
|
|
30
|
+
import "./chunk-T7RB5V5J.js";
|
|
31
|
+
import "./chunk-53M46S5I.js";
|
|
32
|
+
import "./chunk-HPYNW6TT.js";
|
|
33
|
+
import "./chunk-LOD5ZHCI.js";
|
|
34
|
+
import "./chunk-GELCZWMB.js";
|
|
35
|
+
import "./chunk-3BYE3ME6.js";
|
|
36
|
+
import "./chunk-M7P3QNRU.js";
|
|
37
|
+
import "./chunk-SWQV4KSY.js";
|
|
38
|
+
import "./chunk-LOCXPQNJ.js";
|
|
39
|
+
import "./chunk-ZCLTZIVP.js";
|
|
40
|
+
import "./chunk-4CRUCZR4.js";
|
|
41
|
+
import "./chunk-BHDHXOXB.js";
|
|
42
|
+
import "./chunk-HRJ3ICQK.js";
|
|
43
|
+
import "./chunk-6ZWEOSEI.js";
|
|
44
|
+
import "./chunk-YIO5EBMQ.js";
|
|
45
|
+
import "./chunk-3OEJVB5A.js";
|
|
46
|
+
import "./chunk-BBJFHTBC.js";
|
|
47
|
+
import "./chunk-QHQOBUF6.js";
|
|
48
|
+
import "./chunk-W5EGGA44.js";
|
|
49
|
+
import "./chunk-DXD76CMV.js";
|
|
50
|
+
import "./chunk-LB6TCPDI.js";
|
|
51
|
+
import "./chunk-XR2W3MAM.js";
|
|
52
|
+
import "./chunk-B3MW3YGY.js";
|
|
53
|
+
import "./chunk-54KOYG5C.js";
|
|
54
|
+
export {
|
|
55
|
+
REPL
|
|
56
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ResumeConversation
|
|
3
|
+
} from "./chunk-VNCW4C2Z.js";
|
|
4
|
+
import "./chunk-6LJNZK4K.js";
|
|
5
|
+
import "./chunk-7X3TW4JB.js";
|
|
6
|
+
import "./chunk-3TNIOEBO.js";
|
|
7
|
+
import "./chunk-IN7XZ7BC.js";
|
|
8
|
+
import "./chunk-4ATBQOFO.js";
|
|
9
|
+
import "./chunk-DQ4JHXMT.js";
|
|
10
|
+
import "./chunk-4EO6SIQY.js";
|
|
11
|
+
import "./chunk-TNGVRTO5.js";
|
|
12
|
+
import "./chunk-HJYOH4HC.js";
|
|
13
|
+
import "./chunk-SZLAPULP.js";
|
|
14
|
+
import "./chunk-2QONJ5MG.js";
|
|
15
|
+
import "./chunk-RPJXO7GG.js";
|
|
16
|
+
import "./chunk-4A46ZXMJ.js";
|
|
17
|
+
import "./chunk-2WEXPKHH.js";
|
|
18
|
+
import "./chunk-6BAS4WY6.js";
|
|
19
|
+
import "./chunk-IFCIADS3.js";
|
|
20
|
+
import "./chunk-QAXE37B5.js";
|
|
21
|
+
import "./chunk-7RRW4NTB.js";
|
|
22
|
+
import "./chunk-ZBVLKZ5V.js";
|
|
23
|
+
import "./chunk-BTA7SZ26.js";
|
|
24
|
+
import "./chunk-PPHLQVL7.js";
|
|
25
|
+
import "./chunk-2JN5MY67.js";
|
|
26
|
+
import "./chunk-CP6E5UG6.js";
|
|
27
|
+
import "./chunk-TNWB3U5Y.js";
|
|
28
|
+
import "./chunk-UVDJL6ZZ.js";
|
|
29
|
+
import "./chunk-CDGRYGPZ.js";
|
|
30
|
+
import "./chunk-T7RB5V5J.js";
|
|
31
|
+
import "./chunk-53M46S5I.js";
|
|
32
|
+
import "./chunk-HPYNW6TT.js";
|
|
33
|
+
import "./chunk-LOD5ZHCI.js";
|
|
34
|
+
import "./chunk-GELCZWMB.js";
|
|
35
|
+
import "./chunk-3BYE3ME6.js";
|
|
36
|
+
import "./chunk-M7P3QNRU.js";
|
|
37
|
+
import "./chunk-SWQV4KSY.js";
|
|
38
|
+
import "./chunk-LOCXPQNJ.js";
|
|
39
|
+
import "./chunk-ZCLTZIVP.js";
|
|
40
|
+
import "./chunk-4CRUCZR4.js";
|
|
41
|
+
import "./chunk-BHDHXOXB.js";
|
|
42
|
+
import "./chunk-HRJ3ICQK.js";
|
|
43
|
+
import "./chunk-6ZWEOSEI.js";
|
|
44
|
+
import "./chunk-YIO5EBMQ.js";
|
|
45
|
+
import "./chunk-3OEJVB5A.js";
|
|
46
|
+
import "./chunk-BBJFHTBC.js";
|
|
47
|
+
import "./chunk-QHQOBUF6.js";
|
|
48
|
+
import "./chunk-W5EGGA44.js";
|
|
49
|
+
import "./chunk-DXD76CMV.js";
|
|
50
|
+
import "./chunk-LB6TCPDI.js";
|
|
51
|
+
import "./chunk-XR2W3MAM.js";
|
|
52
|
+
import "./chunk-B3MW3YGY.js";
|
|
53
|
+
import "./chunk-54KOYG5C.js";
|
|
54
|
+
export {
|
|
55
|
+
ResumeConversation
|
|
56
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {
|
|
2
|
+
clearAgentCache,
|
|
3
|
+
getActiveAgents,
|
|
4
|
+
getAgentByType,
|
|
5
|
+
getAllAgents,
|
|
6
|
+
getAvailableAgentTypes,
|
|
7
|
+
setFlagAgentsFromCliJson,
|
|
8
|
+
startAgentWatcher,
|
|
9
|
+
stopAgentWatcher
|
|
10
|
+
} from "./chunk-BTA7SZ26.js";
|
|
11
|
+
import "./chunk-M7P3QNRU.js";
|
|
12
|
+
import "./chunk-4CRUCZR4.js";
|
|
13
|
+
import "./chunk-YIO5EBMQ.js";
|
|
14
|
+
import "./chunk-3OEJVB5A.js";
|
|
15
|
+
import "./chunk-BBJFHTBC.js";
|
|
16
|
+
import "./chunk-QHQOBUF6.js";
|
|
17
|
+
import "./chunk-W5EGGA44.js";
|
|
18
|
+
import "./chunk-DXD76CMV.js";
|
|
19
|
+
import "./chunk-XR2W3MAM.js";
|
|
20
|
+
import "./chunk-B3MW3YGY.js";
|
|
21
|
+
import "./chunk-54KOYG5C.js";
|
|
22
|
+
export {
|
|
23
|
+
clearAgentCache,
|
|
24
|
+
getActiveAgents,
|
|
25
|
+
getAgentByType,
|
|
26
|
+
getAllAgents,
|
|
27
|
+
getAvailableAgentTypes,
|
|
28
|
+
setFlagAgentsFromCliJson,
|
|
29
|
+
startAgentWatcher,
|
|
30
|
+
stopAgentWatcher
|
|
31
|
+
};
|
|
@@ -1,37 +1,24 @@
|
|
|
1
|
-
import { createRequire as __kodeCreateRequire } from "node:module";
|
|
2
|
-
const require = __kodeCreateRequire(import.meta.url);
|
|
3
1
|
import {
|
|
4
2
|
getModelManager
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-6ZWEOSEI.js";
|
|
4
|
+
import "./chunk-YIO5EBMQ.js";
|
|
5
|
+
import "./chunk-3OEJVB5A.js";
|
|
6
|
+
import "./chunk-BBJFHTBC.js";
|
|
7
|
+
import "./chunk-QHQOBUF6.js";
|
|
8
|
+
import "./chunk-W5EGGA44.js";
|
|
9
|
+
import "./chunk-DXD76CMV.js";
|
|
10
|
+
import "./chunk-XR2W3MAM.js";
|
|
11
|
+
import "./chunk-B3MW3YGY.js";
|
|
12
|
+
import "./chunk-54KOYG5C.js";
|
|
12
13
|
|
|
13
|
-
// src/entrypoints/cli/agentsValidate.ts
|
|
14
|
-
import { existsSync
|
|
14
|
+
// apps/cli/src/entrypoints/cli/agentsValidate.ts
|
|
15
|
+
import { existsSync as existsSync2, statSync as statSync2 } from "node:fs";
|
|
16
|
+
import { basename, resolve as resolve2 } from "node:path";
|
|
17
|
+
|
|
18
|
+
// apps/cli/src/entrypoints/cli/agentsValidatePaths.ts
|
|
19
|
+
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
15
20
|
import { homedir } from "node:os";
|
|
16
|
-
import {
|
|
17
|
-
import matter from "gray-matter";
|
|
18
|
-
import yaml from "js-yaml";
|
|
19
|
-
var VALID_PERMISSION_MODES = /* @__PURE__ */ new Set([
|
|
20
|
-
"default",
|
|
21
|
-
"acceptEdits",
|
|
22
|
-
"plan",
|
|
23
|
-
"bypassPermissions",
|
|
24
|
-
"dontAsk",
|
|
25
|
-
"delegate"
|
|
26
|
-
]);
|
|
27
|
-
var SUBAGENT_HARD_BLOCKED_TOOLS = /* @__PURE__ */ new Set([
|
|
28
|
-
"Task",
|
|
29
|
-
"TaskOutput",
|
|
30
|
-
"KillShell",
|
|
31
|
-
"EnterPlanMode",
|
|
32
|
-
"ExitPlanMode",
|
|
33
|
-
"AskUserQuestion"
|
|
34
|
-
]);
|
|
21
|
+
import { dirname, join, resolve } from "node:path";
|
|
35
22
|
function normalizeString(value) {
|
|
36
23
|
if (typeof value !== "string") return null;
|
|
37
24
|
const trimmed = value.trim();
|
|
@@ -54,9 +41,11 @@ function normalizeOverride(value) {
|
|
|
54
41
|
function getUserConfigRoots() {
|
|
55
42
|
const claudeOverride = normalizeOverride(process.env.CLAUDE_CONFIG_DIR);
|
|
56
43
|
const kodeOverride = normalizeOverride(process.env.KODE_CONFIG_DIR);
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
44
|
+
const overrides = [claudeOverride, kodeOverride].filter(
|
|
45
|
+
(value) => typeof value === "string" && value.length > 0
|
|
46
|
+
);
|
|
47
|
+
if (overrides.length > 0) {
|
|
48
|
+
return Array.from(new Set(overrides));
|
|
60
49
|
}
|
|
61
50
|
return [join(homedir(), ".claude"), join(homedir(), ".kode")];
|
|
62
51
|
}
|
|
@@ -124,22 +113,62 @@ function listMarkdownFilesRecursively(rootDir) {
|
|
|
124
113
|
walk(rootDir);
|
|
125
114
|
return files;
|
|
126
115
|
}
|
|
116
|
+
function defaultValidationPaths(cwd) {
|
|
117
|
+
const out = [];
|
|
118
|
+
const policyDir = join(getClaudePolicyBaseDir(), ".claude", "agents");
|
|
119
|
+
if (existsSync(policyDir)) out.push(policyDir);
|
|
120
|
+
for (const root of getUserConfigRoots()) {
|
|
121
|
+
const dirPath = join(root, "agents");
|
|
122
|
+
if (existsSync(dirPath)) out.push(dirPath);
|
|
123
|
+
}
|
|
124
|
+
for (const dirPath of findProjectAgentDirs(cwd)) {
|
|
125
|
+
if (existsSync(dirPath)) out.push(dirPath);
|
|
126
|
+
}
|
|
127
|
+
return out;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// apps/cli/src/entrypoints/cli/agentsValidateMarkdown.ts
|
|
131
|
+
import { readFileSync } from "node:fs";
|
|
132
|
+
import matter from "gray-matter";
|
|
133
|
+
function asRecord(value) {
|
|
134
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return {};
|
|
135
|
+
return value;
|
|
136
|
+
}
|
|
127
137
|
function readMarkdownFile(filePath) {
|
|
128
138
|
try {
|
|
129
139
|
const raw = readFileSync(filePath, "utf8");
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
return { frontmatter: parsed.data ?? {}, content: String(parsed.content ?? "") };
|
|
140
|
+
const parsed = matter(raw);
|
|
141
|
+
return {
|
|
142
|
+
frontmatter: asRecord(parsed.data),
|
|
143
|
+
content: String(parsed.content ?? "")
|
|
144
|
+
};
|
|
139
145
|
} catch (err) {
|
|
140
146
|
return { error: err instanceof Error ? err.message : String(err) };
|
|
141
147
|
}
|
|
142
148
|
}
|
|
149
|
+
|
|
150
|
+
// apps/cli/src/entrypoints/cli/agentsValidate.ts
|
|
151
|
+
var VALID_PERMISSION_MODES = /* @__PURE__ */ new Set([
|
|
152
|
+
"default",
|
|
153
|
+
"acceptEdits",
|
|
154
|
+
"plan",
|
|
155
|
+
"bypassPermissions",
|
|
156
|
+
"dontAsk",
|
|
157
|
+
"delegate"
|
|
158
|
+
]);
|
|
159
|
+
var SUBAGENT_HARD_BLOCKED_TOOLS = /* @__PURE__ */ new Set([
|
|
160
|
+
"Task",
|
|
161
|
+
"TaskOutput",
|
|
162
|
+
"KillShell",
|
|
163
|
+
"EnterPlanMode",
|
|
164
|
+
"ExitPlanMode",
|
|
165
|
+
"AskUserQuestion"
|
|
166
|
+
]);
|
|
167
|
+
function normalizeString2(value) {
|
|
168
|
+
if (typeof value !== "string") return null;
|
|
169
|
+
const trimmed = value.trim();
|
|
170
|
+
return trimmed ? trimmed : null;
|
|
171
|
+
}
|
|
143
172
|
function splitCliList(values) {
|
|
144
173
|
if (values.length === 0) return [];
|
|
145
174
|
const out = [];
|
|
@@ -214,17 +243,26 @@ function validateOneAgentFile(args) {
|
|
|
214
243
|
const issues = [];
|
|
215
244
|
const read = readMarkdownFile(args.filePath);
|
|
216
245
|
if ("error" in read) {
|
|
217
|
-
issues.push({
|
|
246
|
+
issues.push({
|
|
247
|
+
level: "error",
|
|
248
|
+
message: `Failed to parse file: ${read.error}`
|
|
249
|
+
});
|
|
218
250
|
return { filePath: args.filePath, agentType: null, issues };
|
|
219
251
|
}
|
|
220
|
-
const fm = read.frontmatter
|
|
221
|
-
const agentType =
|
|
222
|
-
const description =
|
|
252
|
+
const fm = read.frontmatter;
|
|
253
|
+
const agentType = normalizeString2(fm.name);
|
|
254
|
+
const description = normalizeString2(fm.description);
|
|
223
255
|
if (!agentType) {
|
|
224
|
-
issues.push({
|
|
256
|
+
issues.push({
|
|
257
|
+
level: "error",
|
|
258
|
+
message: `Missing required frontmatter field 'name'`
|
|
259
|
+
});
|
|
225
260
|
}
|
|
226
261
|
if (!description) {
|
|
227
|
-
issues.push({
|
|
262
|
+
issues.push({
|
|
263
|
+
level: "error",
|
|
264
|
+
message: `Missing required frontmatter field 'description'`
|
|
265
|
+
});
|
|
228
266
|
}
|
|
229
267
|
const toolsList = z2A(fm.tools);
|
|
230
268
|
const tools = toolsList === void 0 ? "*" : toolsList;
|
|
@@ -256,7 +294,7 @@ function validateOneAgentFile(args) {
|
|
|
256
294
|
}
|
|
257
295
|
}
|
|
258
296
|
}
|
|
259
|
-
const permissionMode =
|
|
297
|
+
const permissionMode = normalizeString2(fm.permissionMode);
|
|
260
298
|
if (permissionMode && !VALID_PERMISSION_MODES.has(permissionMode)) {
|
|
261
299
|
issues.push({
|
|
262
300
|
level: "error",
|
|
@@ -308,28 +346,15 @@ function validateOneAgentFile(args) {
|
|
|
308
346
|
...normalizedModel ? { normalizedModel } : {}
|
|
309
347
|
};
|
|
310
348
|
}
|
|
311
|
-
function defaultValidationPaths(cwd) {
|
|
312
|
-
const out = [];
|
|
313
|
-
const policyDir = join(getClaudePolicyBaseDir(), ".claude", "agents");
|
|
314
|
-
if (existsSync(policyDir)) out.push(policyDir);
|
|
315
|
-
for (const root of getUserConfigRoots()) {
|
|
316
|
-
const dirPath = join(root, "agents");
|
|
317
|
-
if (existsSync(dirPath)) out.push(dirPath);
|
|
318
|
-
}
|
|
319
|
-
for (const dirPath of findProjectAgentDirs(cwd)) {
|
|
320
|
-
if (existsSync(dirPath)) out.push(dirPath);
|
|
321
|
-
}
|
|
322
|
-
return out;
|
|
323
|
-
}
|
|
324
349
|
async function validateAgentTemplates(args) {
|
|
325
350
|
const inputPaths = args.paths.length > 0 ? args.paths : defaultValidationPaths(args.cwd);
|
|
326
351
|
const markdownFiles = /* @__PURE__ */ new Set();
|
|
327
352
|
for (const inputPath of inputPaths) {
|
|
328
|
-
const resolved =
|
|
329
|
-
if (!
|
|
353
|
+
const resolved = resolve2(args.cwd, inputPath);
|
|
354
|
+
if (!existsSync2(resolved)) continue;
|
|
330
355
|
let st;
|
|
331
356
|
try {
|
|
332
|
-
st =
|
|
357
|
+
st = statSync2(resolved);
|
|
333
358
|
} catch {
|
|
334
359
|
continue;
|
|
335
360
|
}
|
|
@@ -338,15 +363,18 @@ async function validateAgentTemplates(args) {
|
|
|
338
363
|
continue;
|
|
339
364
|
}
|
|
340
365
|
if (st.isDirectory()) {
|
|
341
|
-
for (const f of listMarkdownFilesRecursively(resolved))
|
|
366
|
+
for (const f of listMarkdownFilesRecursively(resolved))
|
|
367
|
+
markdownFiles.add(f);
|
|
342
368
|
}
|
|
343
369
|
}
|
|
344
370
|
let knownToolNames;
|
|
345
371
|
if (args.checkTools) {
|
|
346
372
|
try {
|
|
347
|
-
const { getTools } = await import("./
|
|
348
|
-
const { getCurrentProjectConfig } = await import("./config-
|
|
349
|
-
const allTools = await getTools(
|
|
373
|
+
const { getTools } = await import("./src-OROQIWP3.js");
|
|
374
|
+
const { getCurrentProjectConfig } = await import("./config-25HRTPSP.js");
|
|
375
|
+
const allTools = await getTools(
|
|
376
|
+
getCurrentProjectConfig().enableArchitectTool
|
|
377
|
+
);
|
|
350
378
|
knownToolNames = new Set(allTools.map((t) => t.name));
|
|
351
379
|
} catch {
|
|
352
380
|
knownToolNames = void 0;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../apps/cli/src/entrypoints/cli/agentsValidate.ts", "../../apps/cli/src/entrypoints/cli/agentsValidatePaths.ts", "../../apps/cli/src/entrypoints/cli/agentsValidateMarkdown.ts"],
|
|
4
|
+
"sourcesContent": ["import { existsSync, statSync } from 'node:fs'\nimport { basename, resolve } from 'node:path'\nimport { getModelManager } from '#core/utils/model'\nimport {\n defaultValidationPaths,\n listMarkdownFilesRecursively,\n} from './agentsValidatePaths'\nimport { readMarkdownFile } from './agentsValidateMarkdown'\n\nexport type AgentValidateIssue = {\n level: 'error' | 'warning'\n message: string\n}\n\nexport type AgentValidateFileResult = {\n filePath: string\n agentType: string | null\n issues: AgentValidateIssue[]\n model?: string\n normalizedModel?: string\n}\n\nconst VALID_PERMISSION_MODES = new Set([\n 'default',\n 'acceptEdits',\n 'plan',\n 'bypassPermissions',\n 'dontAsk',\n 'delegate',\n])\n\nconst SUBAGENT_HARD_BLOCKED_TOOLS = new Set<string>([\n 'Task',\n 'TaskOutput',\n 'KillShell',\n 'EnterPlanMode',\n 'ExitPlanMode',\n 'AskUserQuestion',\n])\n\nfunction normalizeString(value: unknown): string | null {\n if (typeof value !== 'string') return null\n const trimmed = value.trim()\n return trimmed ? trimmed : null\n}\n\n// moved: path scanning and markdown parsing helpers\n\nfunction splitCliList(values: string[]): string[] {\n if (values.length === 0) return []\n const out: string[] = []\n\n for (const value of values) {\n if (!value) continue\n let current = ''\n let inParens = false\n\n for (const ch of value) {\n switch (ch) {\n case '(':\n inParens = true\n current += ch\n break\n case ')':\n inParens = false\n current += ch\n break\n case ',':\n case ' ': {\n if (inParens) {\n current += ch\n break\n }\n const trimmed = current.trim()\n if (trimmed) out.push(trimmed)\n current = ''\n break\n }\n default:\n current += ch\n }\n }\n\n const trimmed = current.trim()\n if (trimmed) out.push(trimmed)\n }\n\n return out\n}\n\nfunction normalizeToolList(value: unknown): string[] | null {\n if (value === undefined || value === null) return null\n if (!value) return []\n\n let raw: string[] = []\n if (typeof value === 'string') raw = [value]\n else if (Array.isArray(value))\n raw = value.filter((v): v is string => typeof v === 'string')\n\n if (raw.length === 0) return []\n const parsed = splitCliList(raw)\n if (parsed.includes('*')) return ['*']\n return parsed\n}\n\nfunction z2A(value: unknown): string[] | undefined {\n const normalized = normalizeToolList(value)\n if (normalized === null) return value === undefined ? undefined : []\n if (normalized.includes('*')) return undefined\n return normalized\n}\n\nfunction toolNameFromSpec(spec: string): string {\n const trimmed = spec.trim()\n if (!trimmed) return trimmed\n const match = trimmed.match(/^([^(]+)\\(([^)]+)\\)$/)\n if (!match) return trimmed\n const toolName = match[1]?.trim()\n return toolName || trimmed\n}\n\nfunction mapClaudeModelToKode(model: string): string | 'inherit' {\n if (model === 'inherit') return 'inherit'\n if (model === 'opus') return 'main'\n if (model === 'sonnet') return 'task'\n if (model === 'haiku') return 'quick'\n return model\n}\n\nfunction validateOneAgentFile(args: {\n filePath: string\n knownToolNames?: Set<string>\n}): AgentValidateFileResult {\n const issues: AgentValidateIssue[] = []\n const read = readMarkdownFile(args.filePath)\n if ('error' in read) {\n issues.push({\n level: 'error',\n message: `Failed to parse file: ${read.error}`,\n })\n return { filePath: args.filePath, agentType: null, issues }\n }\n\n const fm = read.frontmatter\n const agentType = normalizeString(fm.name)\n const description = normalizeString(fm.description)\n\n if (!agentType) {\n issues.push({\n level: 'error',\n message: `Missing required frontmatter field 'name'`,\n })\n }\n if (!description) {\n issues.push({\n level: 'error',\n message: `Missing required frontmatter field 'description'`,\n })\n }\n\n const toolsList = z2A(fm.tools)\n const tools = toolsList === undefined ? '*' : toolsList\n if (Array.isArray(tools) && tools.length === 0) {\n issues.push({ level: 'warning', message: `No tools selected (tools: [])` })\n }\n\n const disallowedRaw =\n fm.disallowedTools ?? fm['disallowed-tools'] ?? fm['disallowed_tools']\n const disallowed =\n disallowedRaw !== undefined ? z2A(disallowedRaw) : undefined\n if (disallowedRaw !== undefined && disallowed === undefined) {\n issues.push({\n level: 'warning',\n message: `disallowedTools contains '*' and will be ignored (compatibility behavior)`,\n })\n }\n\n if (Array.isArray(tools)) {\n for (const spec of tools) {\n const toolName = toolNameFromSpec(spec)\n if (SUBAGENT_HARD_BLOCKED_TOOLS.has(toolName)) {\n issues.push({\n level: 'warning',\n message: `Tool '${toolName}' is not available to subagents and will be ignored`,\n })\n }\n if (\n args.knownToolNames &&\n toolName &&\n !args.knownToolNames.has(toolName)\n ) {\n issues.push({\n level: 'warning',\n message: `Unknown tool '${toolName}' (from '${spec}')`,\n })\n }\n }\n }\n\n const permissionMode = normalizeString(fm.permissionMode)\n if (permissionMode && !VALID_PERMISSION_MODES.has(permissionMode)) {\n issues.push({\n level: 'error',\n message: `Invalid permissionMode '${permissionMode}' (expected: ${Array.from(VALID_PERMISSION_MODES).join(', ')})`,\n })\n }\n\n const forkContextValue: unknown = fm.forkContext\n if (\n forkContextValue !== undefined &&\n forkContextValue !== 'true' &&\n forkContextValue !== 'false'\n ) {\n issues.push({\n level: 'error',\n message: `Invalid forkContext value '${String(forkContextValue)}' (must be the string 'true' or 'false')`,\n })\n }\n const forkContext = forkContextValue === 'true'\n\n let modelRaw: unknown = fm.model\n if (typeof modelRaw !== 'string' && typeof fm.model_name === 'string') {\n modelRaw = fm.model_name\n }\n const model = typeof modelRaw === 'string' ? modelRaw.trim() : undefined\n\n if (forkContext && model && model !== 'inherit') {\n issues.push({\n level: 'warning',\n message: `forkContext is true, so model will be forced to 'inherit' (compatibility behavior)`,\n })\n }\n\n const normalizedModel =\n model && model.length > 0 ? mapClaudeModelToKode(model) : undefined\n\n if (normalizedModel && normalizedModel !== 'inherit') {\n const manager = getModelManager()\n const resolved = manager.resolveModelWithInfo(normalizedModel)\n if (!resolved.success || !resolved.profile) {\n issues.push({\n level: 'error',\n message:\n resolved.error ??\n `Model '${String(normalizedModel)}' could not be resolved`,\n })\n }\n }\n\n const filename = basename(args.filePath, '.md')\n if (agentType && filename !== agentType) {\n issues.push({\n level: 'warning',\n message: `Filename '${filename}.md' does not match agent name '${agentType}'`,\n })\n }\n\n return {\n filePath: args.filePath,\n agentType: agentType ?? null,\n issues,\n ...(model ? { model } : {}),\n ...(normalizedModel ? { normalizedModel } : {}),\n }\n}\n\nexport async function validateAgentTemplates(args: {\n cwd: string\n paths: string[]\n checkTools: boolean\n}): Promise<{\n ok: boolean\n errorCount: number\n warningCount: number\n results: AgentValidateFileResult[]\n}> {\n const inputPaths =\n args.paths.length > 0 ? args.paths : defaultValidationPaths(args.cwd)\n const markdownFiles = new Set<string>()\n for (const inputPath of inputPaths) {\n const resolved = resolve(args.cwd, inputPath)\n if (!existsSync(resolved)) continue\n let st: ReturnType<typeof statSync>\n try {\n st = statSync(resolved)\n } catch {\n continue\n }\n if (st.isFile()) {\n if (resolved.toLowerCase().endsWith('.md')) markdownFiles.add(resolved)\n continue\n }\n if (st.isDirectory()) {\n for (const f of listMarkdownFilesRecursively(resolved))\n markdownFiles.add(f)\n }\n }\n\n let knownToolNames: Set<string> | undefined\n if (args.checkTools) {\n try {\n const { getTools } = await import('#tools')\n const { getCurrentProjectConfig } = await import('#core/utils/config')\n const allTools = await getTools(\n getCurrentProjectConfig().enableArchitectTool,\n )\n knownToolNames = new Set(allTools.map(t => t.name))\n } catch {\n knownToolNames = undefined\n }\n }\n\n const results = Array.from(markdownFiles)\n .sort((a, b) => a.localeCompare(b))\n .map(filePath =>\n validateOneAgentFile({\n filePath,\n knownToolNames,\n }),\n )\n\n const errorCount = results.reduce(\n (sum, r) => sum + r.issues.filter(i => i.level === 'error').length,\n 0,\n )\n const warningCount = results.reduce(\n (sum, r) => sum + r.issues.filter(i => i.level === 'warning').length,\n 0,\n )\n\n return { ok: errorCount === 0, errorCount, warningCount, results }\n}\n", "import { existsSync, readdirSync, statSync } from 'node:fs'\nimport type { Dirent } from 'node:fs'\nimport { homedir } from 'node:os'\nimport { dirname, join, resolve } from 'node:path'\n\nfunction normalizeString(value: unknown): string | null {\n if (typeof value !== 'string') return null\n const trimmed = value.trim()\n return trimmed ? trimmed : null\n}\n\nfunction getClaudePolicyBaseDir(): string {\n switch (process.platform) {\n case 'darwin':\n return '/Library/Application Support/ClaudeCode'\n case 'win32':\n return existsSync('C:\\\\Program Files\\\\ClaudeCode')\n ? 'C:\\\\Program Files\\\\ClaudeCode'\n : 'C:\\\\ProgramData\\\\ClaudeCode'\n default:\n return '/etc/claude-code'\n }\n}\n\nfunction normalizeOverride(value: unknown): string | null {\n const normalized = normalizeString(value)\n return normalized ? resolve(normalized) : null\n}\n\nexport function getUserConfigRoots(): string[] {\n const claudeOverride = normalizeOverride(process.env.CLAUDE_CONFIG_DIR)\n const kodeOverride = normalizeOverride(process.env.KODE_CONFIG_DIR)\n const overrides = [claudeOverride, kodeOverride].filter(\n (value): value is string => typeof value === 'string' && value.length > 0,\n )\n\n if (overrides.length > 0) {\n return Array.from(new Set(overrides))\n }\n\n return [join(homedir(), '.claude'), join(homedir(), '.kode')]\n}\n\nexport function findProjectAgentDirs(cwd: string): string[] {\n const result: string[] = []\n const home = resolve(homedir())\n let current = resolve(cwd)\n\n while (current !== home) {\n const claudeDir = join(current, '.claude', 'agents')\n if (existsSync(claudeDir)) result.push(claudeDir)\n\n const kodeDir = join(current, '.kode', 'agents')\n if (existsSync(kodeDir)) result.push(kodeDir)\n\n const parent = dirname(current)\n if (parent === current) break\n current = parent\n }\n\n return result\n}\n\nexport function listMarkdownFilesRecursively(rootDir: string): string[] {\n const files: string[] = []\n const visitedDirs = new Set<string>()\n\n const walk = (dirPath: string) => {\n let dirStat: ReturnType<typeof statSync>\n try {\n dirStat = statSync(dirPath)\n } catch {\n return\n }\n if (!dirStat.isDirectory()) return\n\n const dirKey = `${dirStat.dev}:${dirStat.ino}`\n if (visitedDirs.has(dirKey)) return\n visitedDirs.add(dirKey)\n\n let entries: Dirent[]\n try {\n entries = readdirSync(dirPath, { withFileTypes: true })\n } catch {\n return\n }\n\n for (const entry of entries) {\n const name = String(entry.name ?? '')\n const fullPath = join(dirPath, name)\n\n if (entry.isDirectory()) {\n walk(fullPath)\n continue\n }\n\n if (entry.isFile()) {\n if (name.toLowerCase().endsWith('.md')) files.push(fullPath)\n continue\n }\n\n if (entry.isSymbolicLink()) {\n try {\n const st = statSync(fullPath)\n if (st.isDirectory()) {\n walk(fullPath)\n } else if (st.isFile() && name.toLowerCase().endsWith('.md')) {\n files.push(fullPath)\n }\n } catch {\n continue\n }\n }\n }\n }\n\n if (!existsSync(rootDir)) return []\n walk(rootDir)\n return files\n}\n\nexport function defaultValidationPaths(cwd: string): string[] {\n const out: string[] = []\n\n const policyDir = join(getClaudePolicyBaseDir(), '.claude', 'agents')\n if (existsSync(policyDir)) out.push(policyDir)\n\n for (const root of getUserConfigRoots()) {\n const dirPath = join(root, 'agents')\n if (existsSync(dirPath)) out.push(dirPath)\n }\n\n for (const dirPath of findProjectAgentDirs(cwd)) {\n if (existsSync(dirPath)) out.push(dirPath)\n }\n\n return out\n}\n", "import { readFileSync } from 'node:fs'\nimport matter from 'gray-matter'\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return {}\n return value as Record<string, unknown>\n}\n\nexport function readMarkdownFile(\n filePath: string,\n):\n | { frontmatter: Record<string, unknown>; content: string }\n | { error: string } {\n try {\n const raw = readFileSync(filePath, 'utf8')\n const parsed = matter(raw)\n return {\n frontmatter: asRecord(parsed.data),\n content: String(parsed.content ?? ''),\n }\n } catch (err) {\n return { error: err instanceof Error ? err.message : String(err) }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["existsSync", "statSync", "resolve", "normalizeString", "trimmed", "resolve", "existsSync", "statSync"]
|
|
7
|
+
}
|