evo.ninja

我首先阅读的是 evo.ninja 这个仓库的代码
在它根目录的 package.json 中,它的 script 是这样写的:

  "scripts": {  
    "reset": "yarn clean && yarn && yarn build",  
    "clean": "npx rimraf ./node_modules ./*/**/node_modules ./*/**/yarn.lock ./*/**/build",  
    "build": "npx turbo build",  
    "build:browser": "yarn workspace @evo-ninja/ui run build",  
    "start": "yarn workspace evo-ninja run start",  
    "start:browser": "yarn workspace @evo-ninja/ui run start",  
    "start:api": "yarn workspace evo-ninja run start:api",  
    "lint": "npx turbo lint",  
    "lint:fix": "npx turbo lint -- --fix"  
  },  

然后在 run 中,它运行的是 start:api。所以我们直接来看 start:api 的代码。
可以看到 start:api 的代码是在工作区中 package.json 的 name 是 evo-ninja 的这个文件夹中的 package.json 中的 script 中的 start:api

具体位置就是 evo.ninja/app.cli 了

这个代码的package.json是这样写的:
 
``` json  
"scripts": {  
  "start": "ts-node src/cli.ts",  
  "start:api": "ts-node src/api.ts",  
  "build": "rimraf build && tsc --project tsconfig.build.json",  
},  

也就是说命令在 cli.ts,服务在 api.ts,而这两个文件都依赖于 app.ts,它才是主体。

evo.ninja api
它用到了一个叫做 agent-protocol 的库来实现
agent-protocol代码阅读