@aggroot-team/aggroot 1.7.2

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.
Files changed (87) hide show
  1. package/.env.example +106 -0
  2. package/LICENSE +21 -0
  3. package/README.md +496 -0
  4. package/dist/cli.cjs +26 -0
  5. package/dist/index.cjs +45238 -0
  6. package/dist/native/better_sqlite3.node +0 -0
  7. package/dist/tree-sitter-c.wasm +0 -0
  8. package/dist/tree-sitter-cpp.wasm +0 -0
  9. package/dist/web-tree-sitter.wasm +0 -0
  10. package/install-linux.sh +123 -0
  11. package/install-windows.bat +121 -0
  12. package/package.json +155 -0
  13. package/scripts/build-all.mjs +42 -0
  14. package/scripts/fix-workspace-deps.mjs +41 -0
  15. package/scripts/generate-example-skills.ts +238 -0
  16. package/scripts/import-meta-shim.js +3 -0
  17. package/scripts/install-browsers.mjs +132 -0
  18. package/scripts/obfuscate.mjs +215 -0
  19. package/scripts/test-bash-parser.ts +37 -0
  20. package/scripts/test-parser2.ts +24 -0
  21. package/scripts/test-parser3.js +4 -0
  22. package/scripts/test-tokenizer.js +148 -0
  23. package/scripts/verify-no-source.mjs +83 -0
  24. package/share/agents/agent-coder.json +256 -0
  25. package/share/agents/agent-devops.json +61 -0
  26. package/share/agents/agent-writer.json +213 -0
  27. package/share/scripts/_utils.py +105 -0
  28. package/share/scripts/market_overview.py +244 -0
  29. package/share/scripts/stock_compare.py +244 -0
  30. package/share/scripts/stock_financial.py +211 -0
  31. package/share/scripts/stock_news.py +181 -0
  32. package/share/scripts/stock_quote.py +433 -0
  33. package/share/scripts/stock_technical.py +402 -0
  34. package/share/web/dist/assets/arc-DmQ0lviI.js +1 -0
  35. package/share/web/dist/assets/architectureDiagram-3BPJPVTR-KELFQLRt.js +36 -0
  36. package/share/web/dist/assets/blockDiagram-GPEHLZMM-D_2waPJB.js +132 -0
  37. package/share/web/dist/assets/c4Diagram-AAUBKEIU-BxaYriMP.js +10 -0
  38. package/share/web/dist/assets/channel-DppiAmuZ.js +1 -0
  39. package/share/web/dist/assets/chunk-2J33WTMH-D_wcMArK.js +1 -0
  40. package/share/web/dist/assets/chunk-4BX2VUAB-C4Mm8aE8.js +1 -0
  41. package/share/web/dist/assets/chunk-55IACEB6-Djo1jBPb.js +1 -0
  42. package/share/web/dist/assets/chunk-727SXJPM-D-9kzLrQ.js +206 -0
  43. package/share/web/dist/assets/chunk-AQP2D5EJ-BV58AHlG.js +231 -0
  44. package/share/web/dist/assets/chunk-FMBD7UC4-D3AHszVJ.js +15 -0
  45. package/share/web/dist/assets/chunk-ND2GUHAM-CCuQ63c7.js +1 -0
  46. package/share/web/dist/assets/chunk-QZHKN3VN-Dl9PXzs1.js +1 -0
  47. package/share/web/dist/assets/classDiagram-4FO5ZUOK-BnkzOZLJ.js +1 -0
  48. package/share/web/dist/assets/classDiagram-v2-Q7XG4LA2-BnkzOZLJ.js +1 -0
  49. package/share/web/dist/assets/cose-bilkent-S5V4N54A-BuRspznV.js +1 -0
  50. package/share/web/dist/assets/cytoscape.esm-CkSuTymj.js +321 -0
  51. package/share/web/dist/assets/dagre-BM42HDAG-D4fhww9y.js +4 -0
  52. package/share/web/dist/assets/defaultLocale-CrowFXzY.js +1 -0
  53. package/share/web/dist/assets/diagram-2AECGRRQ-dMi9m1J4.js +43 -0
  54. package/share/web/dist/assets/diagram-5GNKFQAL-CjRIIBA8.js +10 -0
  55. package/share/web/dist/assets/diagram-KO2AKTUF-gR1tXbmQ.js +3 -0
  56. package/share/web/dist/assets/diagram-LMA3HP47-CQkJCjQX.js +24 -0
  57. package/share/web/dist/assets/diagram-OG6HWLK6-DBEvIvu5.js +24 -0
  58. package/share/web/dist/assets/erDiagram-TEJ5UH35-ChwS3Oys.js +85 -0
  59. package/share/web/dist/assets/flowDiagram-I6XJVG4X-yYT7qyQr.js +162 -0
  60. package/share/web/dist/assets/ganttDiagram-6RSMTGT7-9TgEI2XC.js +292 -0
  61. package/share/web/dist/assets/gitGraphDiagram-PVQCEYII-PVcWiaLN.js +106 -0
  62. package/share/web/dist/assets/graph-D2o_JWn5.js +1 -0
  63. package/share/web/dist/assets/index-BWshepxw.js +407 -0
  64. package/share/web/dist/assets/index-aC35iubs.css +1 -0
  65. package/share/web/dist/assets/infoDiagram-5YYISTIA-C5_cYCEE.js +2 -0
  66. package/share/web/dist/assets/init-Gi6I4Gst.js +1 -0
  67. package/share/web/dist/assets/ishikawaDiagram-YF4QCWOH-Day2c-1K.js +70 -0
  68. package/share/web/dist/assets/journeyDiagram-JHISSGLW-BZdHoYic.js +139 -0
  69. package/share/web/dist/assets/kanban-definition-UN3LZRKU-DoEoEViV.js +89 -0
  70. package/share/web/dist/assets/katex-HP8lGamR.js +257 -0
  71. package/share/web/dist/assets/layout-UJbxhwF7.js +1 -0
  72. package/share/web/dist/assets/linear-z8LqGvHi.js +1 -0
  73. package/share/web/dist/assets/mindmap-definition-RKZ34NQL-DshJGF7V.js +96 -0
  74. package/share/web/dist/assets/ordinal-Cboi1Yqb.js +1 -0
  75. package/share/web/dist/assets/pieDiagram-4H26LBE5-MKBdIMr0.js +30 -0
  76. package/share/web/dist/assets/quadrantDiagram-W4KKPZXB-Rc8VkAHd.js +7 -0
  77. package/share/web/dist/assets/requirementDiagram-4Y6WPE33-DIvF0TEG.js +84 -0
  78. package/share/web/dist/assets/sankeyDiagram-5OEKKPKP-FTZOsw4G.js +40 -0
  79. package/share/web/dist/assets/sequenceDiagram-3UESZ5HK-BXnFdz67.js +162 -0
  80. package/share/web/dist/assets/stateDiagram-AJRCARHV-N_DEea7F.js +1 -0
  81. package/share/web/dist/assets/stateDiagram-v2-BHNVJYJU-9RyR03R8.js +1 -0
  82. package/share/web/dist/assets/timeline-definition-PNZ67QCA-nelw3asj.js +120 -0
  83. package/share/web/dist/assets/vennDiagram-CIIHVFJN-BkfB2ea3.js +34 -0
  84. package/share/web/dist/assets/wardley-L42UT6IY-ChtTMLrY.js +161 -0
  85. package/share/web/dist/assets/wardleyDiagram-YWT4CUSO-CEsObJvL.js +78 -0
  86. package/share/web/dist/assets/xychartDiagram-2RQKCTM6-DNog7YuY.js +7 -0
  87. package/share/web/dist/index.html +13 -0
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,123 @@
1
+ #!/bin/bash
2
+
3
+ # AggRoot 项目 Linux/macOS 安装脚本
4
+
5
+ set -e
6
+
7
+ # 颜色定义
8
+ RED='\033[0;31m'
9
+ GREEN='\033[0;32m'
10
+ YELLOW='\033[1;33m'
11
+ BLUE='\033[0;34m'
12
+ NC='\033[0m' # No Color
13
+
14
+ echo -e "${BLUE}========================================${NC}"
15
+ echo -e "${BLUE} AggRoot 项目 Linux/macOS 安装脚本${NC}"
16
+ echo -e "${BLUE}========================================${NC}"
17
+ echo ""
18
+
19
+ # 检查 Node.js
20
+ if ! command -v node &> /dev/null; then
21
+ echo -e "${RED}❌ 错误: Node.js 未安装${NC}"
22
+ echo ""
23
+ echo "请先安装 Node.js (版本 >= 20.0.0)"
24
+ echo "Linux: 使用 nvm 或包管理器安装"
25
+ echo "macOS: 使用 brew install node 或从官网下载"
26
+ echo "官网: https://nodejs.org/"
27
+ echo ""
28
+ exit 1
29
+ fi
30
+
31
+ NODE_VERSION=$(node -v)
32
+ echo -e "${GREEN}✅ Node.js 版本: $NODE_VERSION${NC}"
33
+ echo ""
34
+
35
+ # 检查 npm
36
+ if ! command -v npm &> /dev/null; then
37
+ echo -e "${RED}❌ 错误: npm 未安装${NC}"
38
+ echo ""
39
+ exit 1
40
+ fi
41
+
42
+ echo -e "${YELLOW}📦 开始安装 AggRoot 项目...${NC}"
43
+ echo ""
44
+
45
+ # 步骤 1: 安装依赖
46
+ echo -e "${YELLOW}[1/3] 安装依赖...${NC}"
47
+ if ! npm install; then
48
+ echo -e "${YELLOW}⚠️ 警告: 依赖安装遇到问题${NC}"
49
+ echo "尝试使用淘宝镜像..."
50
+ npm config set registry https://registry.npmmirror.com
51
+ if ! npm install; then
52
+ echo -e "${RED}❌ 错误: 依赖安装失败${NC}"
53
+ echo "请检查网络连接或手动安装"
54
+ exit 1
55
+ fi
56
+ fi
57
+ echo -e "${GREEN}✅ 依赖安装完成${NC}"
58
+ echo ""
59
+
60
+ # 步骤 2: 重建原生模块
61
+ echo -e "${YELLOW}[2/3] 重建原生模块...${NC}"
62
+ echo "注意: 这可能需要几分钟时间..."
63
+ if ! npm run rebuild:linux; then
64
+ echo -e "${YELLOW}⚠️ 警告: Linux 特定重建失败,尝试标准重建...${NC}"
65
+ if ! npm run rebuild-native; then
66
+ echo -e "${YELLOW}⚠️ 警告: 原生模块重建失败${NC}"
67
+ echo "如果项目运行正常,可以忽略此警告"
68
+ echo "如果遇到模块错误,请安装构建工具:"
69
+ echo " Ubuntu/Debian: sudo apt install build-essential python3 make g++"
70
+ echo " CentOS/RHEL: sudo yum groupinstall 'Development Tools'"
71
+ echo " macOS: xcode-select --install"
72
+ else
73
+ echo -e "${GREEN}✅ 原生模块重建完成${NC}"
74
+ fi
75
+ else
76
+ echo -e "${GREEN}✅ 原生模块重建完成${NC}"
77
+ fi
78
+ echo ""
79
+
80
+ # 步骤 3: 安装浏览器
81
+ echo -e "${YELLOW}[3/4] 安装 Playwright 浏览器...${NC}"
82
+ export PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/mirrors/playwright
83
+ if ! npx playwright install chromium; then
84
+ echo -e "${YELLOW}淘宝镜像失败,尝试官方源...${NC}"
85
+ unset PLAYWRIGHT_DOWNLOAD_HOST
86
+ if ! npx playwright install chromium; then
87
+ echo -e "${YELLOW}⚠️ 警告: 浏览器安装失败,将在首次使用时自动下载${NC}"
88
+ else
89
+ echo -e "${GREEN}✅ 浏览器安装完成${NC}"
90
+ fi
91
+ else
92
+ echo -e "${GREEN}✅ 浏览器安装完成${NC}"
93
+ fi
94
+ echo ""
95
+
96
+ # 步骤 4: 构建项目
97
+ echo -e "${YELLOW}[4/4] 构建项目...${NC}"
98
+ if ! npm run build:dev; then
99
+ echo -e "${RED}❌ 错误: 构建失败${NC}"
100
+ echo "请检查 TypeScript 配置"
101
+ exit 1
102
+ fi
103
+ echo -e "${GREEN}✅ 项目构建完成${NC}"
104
+ echo ""
105
+
106
+ echo -e "${BLUE}========================================${NC}"
107
+ echo -e "${BLUE} 🎉 安装完成!${NC}"
108
+ echo -e "${BLUE}========================================${NC}"
109
+ echo ""
110
+ echo "运行以下命令启动项目:"
111
+ echo ""
112
+ echo " npm run dev # 开发模式(热重载)"
113
+ echo " npm start # 生产模式"
114
+ echo ""
115
+ echo "其他有用命令:"
116
+ echo " npm test # 运行测试"
117
+ echo " npm run lint # 代码检查"
118
+ echo " npm run format # 代码格式化"
119
+ echo ""
120
+ echo "查看 README.md 获取详细文档"
121
+ echo "查看 INSTALL.md 获取安装说明"
122
+ echo ""
123
+ echo -e "${BLUE}========================================${NC}"
@@ -0,0 +1,121 @@
1
+ @echo off
2
+ chcp 65001 >nul
3
+ echo ========================================
4
+ echo AggRoot 项目 Windows 安装脚本
5
+ echo ========================================
6
+ echo.
7
+
8
+ REM 检查 Node.js
9
+ where node >nul 2>nul
10
+ if %errorlevel% neq 0 (
11
+ echo ❌ 错误: Node.js 未安装
12
+ echo.
13
+ echo 请先安装 Node.js (版本 >= 20.0.0)
14
+ echo 下载地址: https://nodejs.org/
15
+ echo.
16
+ pause
17
+ exit /b 1
18
+ )
19
+
20
+ for /f "tokens=*" %%i in ('node -v') do set NODE_VERSION=%%i
21
+ echo ✅ Node.js 版本: %NODE_VERSION%
22
+ echo.
23
+
24
+ REM 检查 npm
25
+ where npm >nul 2>nul
26
+ if %errorlevel% neq 0 (
27
+ echo ❌ 错误: npm 未安装
28
+ echo.
29
+ pause
30
+ exit /b 1
31
+ )
32
+
33
+ echo 📦 开始安装 AggRoot 项目...
34
+ echo.
35
+
36
+ REM 步骤 1: 安装依赖
37
+ echo [1/3] 安装依赖...
38
+ call npm install
39
+ if %errorlevel% neq 0 (
40
+ echo ⚠️ 警告: 依赖安装遇到问题
41
+ echo 尝试使用淘宝镜像...
42
+ call npm config set registry https://registry.npmmirror.com
43
+ call npm install
44
+ if %errorlevel% neq 0 (
45
+ echo ❌ 错误: 依赖安装失败
46
+ echo 请检查网络连接或手动安装
47
+ pause
48
+ exit /b 1
49
+ )
50
+ )
51
+ echo ✅ 依赖安装完成
52
+ echo.
53
+
54
+ REM 步骤 2: 重建原生模块
55
+ echo [2/3] 重建原生模块...
56
+ echo 注意: 这可能需要几分钟时间...
57
+ call npm run rebuild:windows
58
+ if %errorlevel% neq 0 (
59
+ echo ⚠️ 警告: Windows 特定重建失败,尝试标准重建...
60
+ call npm run rebuild-native
61
+ if %errorlevel% neq 0 (
62
+ echo ⚠️ 警告: 原生模块重建失败
63
+ echo 如果项目运行正常,可以忽略此警告
64
+ echo 如果遇到模块错误,请安装 Visual Studio Build Tools
65
+ ) else (
66
+ echo ✅ 原生模块重建完成
67
+ )
68
+ ) else (
69
+ echo ✅ 原生模块重建完成
70
+ )
71
+ echo.
72
+
73
+ REM 步骤 3: 安装浏览器
74
+ echo [3/4] 安装 Playwright 浏览器...
75
+ set PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/mirrors/playwright
76
+ call npx playwright install chromium
77
+ if %errorlevel% neq 0 (
78
+ echo 淘宝镜像失败,尝试官方源...
79
+ set PLAYWRIGHT_DOWNLOAD_HOST=
80
+ call npx playwright install chromium
81
+ if !errorlevel! neq 0 (
82
+ echo ⚠️ 警告: 浏览器安装失败,将在首次使用时自动下载
83
+ ) else (
84
+ echo ✅ 浏览器安装完成
85
+ )
86
+ ) else (
87
+ echo ✅ 浏览器安装完成
88
+ )
89
+ echo.
90
+
91
+ REM 步骤 4: 构建项目
92
+ echo [4/4] 构建项目...
93
+ call npm run build:dev
94
+ if %errorlevel% neq 0 (
95
+ echo ❌ 错误: 构建失败
96
+ echo 请检查 TypeScript 配置
97
+ pause
98
+ exit /b 1
99
+ )
100
+ echo ✅ 项目构建完成
101
+ echo.
102
+
103
+ echo ========================================
104
+ echo 🎉 安装完成!
105
+ echo ========================================
106
+ echo.
107
+ echo 运行以下命令启动项目:
108
+ echo.
109
+ echo npm run dev ^# 开发模式(热重载)
110
+ echo npm start ^# 生产模式
111
+ echo.
112
+ echo 其他有用命令:
113
+ echo npm test ^# 运行测试
114
+ echo npm run lint ^# 代码检查
115
+ echo npm run format ^# 代码格式化
116
+ echo.
117
+ echo 查看 README.md 获取详细文档
118
+ echo 查看 INSTALL.md 获取安装说明
119
+ echo.
120
+ echo ========================================
121
+ pause
package/package.json ADDED
@@ -0,0 +1,155 @@
1
+ {
2
+ "name": "@aggroot-team/aggroot",
3
+ "version": "1.7.2",
4
+ "description": "AggRoot - AI Assistant (Node.js/TypeScript Version)",
5
+ "keywords": [
6
+ "ai",
7
+ "assistant",
8
+ "llm",
9
+ "agent"
10
+ ],
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://gitcode.com/Mario_z/aita.git"
14
+ },
15
+ "license": "MIT",
16
+ "author": "zhangzhuo",
17
+ "type": "module",
18
+ "imports": {
19
+ "#core/*": "./dist/core/*.js",
20
+ "#tools/*": "./dist/tools/*.js",
21
+ "#models/*": "./dist/models/*.js",
22
+ "#memory/*": "./dist/memory/*.js",
23
+ "#types": "./dist/types/index.js",
24
+ "#config": "./dist/config.js"
25
+ },
26
+ "main": "./dist/index.cjs",
27
+ "bin": {
28
+ "aggroot": "dist/cli.cjs"
29
+ },
30
+ "directories": {
31
+ "doc": "docs",
32
+ "test": "tests"
33
+ },
34
+ "files": [
35
+ "dist/",
36
+ "share/",
37
+ "scripts/",
38
+ ".env.example",
39
+ "install-windows.bat",
40
+ "install-linux.sh",
41
+ "README.md"
42
+ ],
43
+ "scripts": {
44
+ "dev": "node --no-warnings --import=tsx --watch src/index.ts",
45
+ "dev:no-watch": "node --no-warnings --import=tsx src/index.ts",
46
+ "dev:silent": "node --no-warnings --import=tsx --watch src/index.ts",
47
+ "build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json && node scripts/obfuscate.mjs && node scripts/verify-no-source.mjs && cd packages/web && npx vite build && cd ../..",
48
+ "build:all": "node scripts/build-all.mjs",
49
+ "build:dev": "tsc",
50
+ "prepack": "npm run build && cd packages/web && npx vite build && cd ../.. && node -e \"const{mkdirSync,readdirSync,copyFileSync,existsSync}=require('fs');const{join}=require('path');function cpR(s,d){mkdirSync(d,{recursive:true});for(const f of readdirSync(s)){const sp=join(s,f),dp=join(d,f);const st=require('fs').statSync(sp);st.isDirectory()?cpR(sp,dp):copyFileSync(sp,dp)}if(!existsSync('share/web'))mkdirSync('share/web',{recursive:true})}if(existsSync('packages/web/dist'))cpR(join('packages','web','dist'),join('share','web','dist'))\"",
51
+ "start": "node --no-warnings --max-old-space-size=4096 dist/index.cjs",
52
+ "type-check": "tsc --noEmit",
53
+ "lint": "eslint .",
54
+ "lint:fix": "eslint . --fix",
55
+ "format": "prettier --write .",
56
+ "format:check": "prettier --check .",
57
+ "test": "vitest",
58
+ "test:run": "vitest run",
59
+ "test:coverage": "vitest run --coverage",
60
+ "test:cross-platform": "node test-cross-platform.js",
61
+ "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true});require('fs').rmSync('logs',{recursive:true,force:true})\"",
62
+ "rebuild-native": "npm rebuild better-sqlite3 sharp",
63
+ "rebuild:windows": "npm rebuild --build-from-source better-sqlite3 sharp",
64
+ "rebuild:linux": "npm rebuild --build-from-source better-sqlite3 sharp",
65
+ "install:all": "npm install && npm run rebuild-native"
66
+ },
67
+ "dependencies": {
68
+ "@aggroot-team/server": "workspace:*",
69
+ "@modelcontextprotocol/sdk": "^1.29.0",
70
+ "@sqlite.org/sqlite-wasm": "3.53.0-build1",
71
+ "@vscode/ripgrep": "^1.17.1",
72
+ "@xenova/transformers": "^2.17.0",
73
+ "ajv": "^8.18.0",
74
+ "ajv-formats": "^3.0.1",
75
+ "chalk": "^5.6.2",
76
+ "chokidar": "^5.0.0",
77
+ "cli-table3": "^0.6.5",
78
+ "diff": "^9.0.0",
79
+ "docx": "^9.6.1",
80
+ "dotenv": "^17.3.1",
81
+ "exceljs": "^4.4.0",
82
+ "glob": "^13.0.6",
83
+ "iconv-lite": "^0.7.2",
84
+ "ink": "^6.8.0",
85
+ "inquirer": "^12.0.0",
86
+ "lru-cache": "^11.2.7",
87
+ "mammoth": "^1.12.0",
88
+ "marked": "^18.0.3",
89
+ "openai": "^4.67.0",
90
+ "ora": "^8.1.0",
91
+ "pino": "^9.5.0",
92
+ "pino-pretty": "^11.2.0",
93
+ "playwright": "^1.60.0",
94
+ "pptxgenjs": "^4.0.1",
95
+ "react": "^19.2.4",
96
+ "react-reconciler": "^0.31.0",
97
+ "scheduler": "^0.27.0",
98
+ "simple-git": "^3.26.0",
99
+ "string-width": "^8.2.1",
100
+ "tiktoken": "^1.0.22",
101
+ "tree-sitter-c": "^0.24.1",
102
+ "tree-sitter-cpp": "^0.23.4",
103
+ "ts-morph": "^27.0.2",
104
+ "uuid": "^13.0.0",
105
+ "web-tree-sitter": "^0.26.8",
106
+ "zod": "^3.25.76"
107
+ },
108
+ "optionalDependencies": {
109
+ "@honcho-ai/sdk": "^2.1.1",
110
+ "better-sqlite3": "^11.10.0",
111
+ "sharp": "^0.34.5"
112
+ },
113
+ "devDependencies": {
114
+ "@eslint/js": "^9.13.0",
115
+ "@types/ajv": "^0.0.5",
116
+ "@types/better-sqlite3": "^7.6.13",
117
+ "@types/diff": "^7.0.2",
118
+ "@types/node": "^20.14.0",
119
+ "@types/react": "^19.2.14",
120
+ "@types/react-reconciler": "^0.31.0",
121
+ "@vitest/coverage-v8": "^2.1.0",
122
+ "esbuild": "^0.28.0",
123
+ "eslint": "^9.13.0",
124
+ "eslint-config-prettier": "^9.1.0",
125
+ "husky": "^9.1.0",
126
+ "javascript-obfuscator": "^4.2.2",
127
+ "lint-staged": "^15.5.0",
128
+ "prettier": "^3.3.3",
129
+ "tsx": "^4.19.0",
130
+ "typescript": "^5.6.0",
131
+ "typescript-eslint": "^8.10.0",
132
+ "vitest": "^2.1.0"
133
+ },
134
+ "engines": {
135
+ "node": ">=20.0.0"
136
+ },
137
+ "os": [
138
+ "win32",
139
+ "linux",
140
+ "darwin"
141
+ ],
142
+ "cpu": [
143
+ "x64",
144
+ "arm64",
145
+ "ia32"
146
+ ],
147
+ "publishConfig": {
148
+ "access": "public"
149
+ },
150
+ "lint-staged": {
151
+ "*.{ts,tsx,json,md,css}": [
152
+ "prettier --write"
153
+ ]
154
+ }
155
+ }
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * AggRoot 一键构建脚本
5
+ * 按依赖顺序编译所有 workspace 包
6
+ */
7
+
8
+ import { execSync } from "node:child_process";
9
+
10
+ const packages = [
11
+ { name: "@aggroot/protocol", label: "Protocol (共享类型)" },
12
+ { name: "@aggroot/server", label: "Server (网关服务)" },
13
+ { name: "@aggroot/web", label: "Web (前端)" },
14
+ { name: "aggroot", label: "AggRoot (主包)" },
15
+ ];
16
+
17
+ function run(cmd) {
18
+ execSync(cmd, { stdio: "inherit", shell: true });
19
+ }
20
+
21
+ function build(pkg) {
22
+ const cmd = pkg.name === "aggroot"
23
+ ? "npm run build"
24
+ : `npm run build -w ${pkg.name}`;
25
+ run(cmd);
26
+ }
27
+
28
+ // --- main ---
29
+ console.log("=== AggRoot 全量构建 ===\n");
30
+
31
+ for (const pkg of packages) {
32
+ console.log(`>> 构建 ${pkg.label} ...`);
33
+ try {
34
+ build(pkg);
35
+ } catch {
36
+ console.error(`\n!! 构建 ${pkg.label} 失败,已中止`);
37
+ process.exit(1);
38
+ }
39
+ console.log(`>> ${pkg.label} 完成\n`);
40
+ }
41
+
42
+ console.log("=== 全部构建完成 ===");
@@ -0,0 +1,41 @@
1
+ import { readFileSync, writeFileSync } from "node:fs";
2
+
3
+ /**
4
+ * Fix workspace protocol dependencies before npm publish.
5
+ *
6
+ * pnpm workspace dependencies (workspace:*) are not understood by npm.
7
+ *
8
+ * For packages that are statically imported (bundled by esbuild into dist/),
9
+ * we DELETE them from package.json since they're already embedded in the bundle.
10
+ *
11
+ * For packages that are NOT bundled but still needed at runtime,
12
+ * replace workspace:* with the actual published version number.
13
+ */
14
+
15
+ const rootPkg = JSON.parse(readFileSync("package.json", "utf8"));
16
+
17
+ // Packages that are statically imported → esbuild bundles them → remove from deps
18
+ const BUNDLED_WORKSPACE_PKGS = ["@aggroot/server"];
19
+
20
+ function fixDeps(deps) {
21
+ if (!deps) return;
22
+ for (const [k, v] of Object.entries(deps)) {
23
+ if (typeof v === "string" && v.startsWith("workspace:")) {
24
+ if (BUNDLED_WORKSPACE_PKGS.includes(k)) {
25
+ delete deps[k];
26
+ console.log(`[fix-workspace] Removed bundled dependency: ${k}`);
27
+ } else {
28
+ // Fallback: would need to look up version - for now just remove
29
+ delete deps[k];
30
+ console.log(`[fix-workspace] Removed unbundled dependency: ${k}`);
31
+ }
32
+ }
33
+ }
34
+ }
35
+
36
+ fixDeps(rootPkg.dependencies);
37
+ fixDeps(rootPkg.optionalDependencies);
38
+ fixDeps(rootPkg.devDependencies);
39
+
40
+ writeFileSync("package.json", JSON.stringify(rootPkg, null, 2) + "\n");
41
+ console.log("[fix-workspace] Done — all workspace:* dependencies removed");