@kernel.chat/kbot 1.3.1 → 2.3.1
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 +94 -0
- package/dist/agent.d.ts +9 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +576 -119
- package/dist/agent.js.map +1 -1
- package/dist/auth.d.ts +20 -35
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +224 -66
- package/dist/auth.js.map +1 -1
- package/dist/auth.test.d.ts +2 -0
- package/dist/auth.test.d.ts.map +1 -0
- package/dist/auth.test.js +89 -0
- package/dist/auth.test.js.map +1 -0
- package/dist/build-targets.d.ts +37 -0
- package/dist/build-targets.d.ts.map +1 -0
- package/dist/build-targets.js +507 -0
- package/dist/build-targets.js.map +1 -0
- package/dist/cli.js +1210 -130
- package/dist/cli.js.map +1 -1
- package/dist/context.d.ts +2 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +72 -22
- package/dist/context.js.map +1 -1
- package/dist/hooks.d.ts +27 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +145 -0
- package/dist/hooks.js.map +1 -0
- package/dist/ide/acp-server.d.ts +6 -0
- package/dist/ide/acp-server.d.ts.map +1 -0
- package/dist/ide/acp-server.js +319 -0
- package/dist/ide/acp-server.js.map +1 -0
- package/dist/ide/bridge.d.ts +128 -0
- package/dist/ide/bridge.d.ts.map +1 -0
- package/dist/ide/bridge.js +185 -0
- package/dist/ide/bridge.js.map +1 -0
- package/dist/ide/index.d.ts +5 -0
- package/dist/ide/index.d.ts.map +1 -0
- package/dist/ide/index.js +11 -0
- package/dist/ide/index.js.map +1 -0
- package/dist/ide/lsp-bridge.d.ts +27 -0
- package/dist/ide/lsp-bridge.d.ts.map +1 -0
- package/dist/ide/lsp-bridge.js +267 -0
- package/dist/ide/lsp-bridge.js.map +1 -0
- package/dist/ide/mcp-server.d.ts +7 -0
- package/dist/ide/mcp-server.d.ts.map +1 -0
- package/dist/ide/mcp-server.js +451 -0
- package/dist/ide/mcp-server.js.map +1 -0
- package/dist/learning.d.ts +179 -0
- package/dist/learning.d.ts.map +1 -0
- package/dist/learning.js +829 -0
- package/dist/learning.js.map +1 -0
- package/dist/learning.test.d.ts +2 -0
- package/dist/learning.test.d.ts.map +1 -0
- package/dist/learning.test.js +115 -0
- package/dist/learning.test.js.map +1 -0
- package/dist/matrix.d.ts +49 -0
- package/dist/matrix.d.ts.map +1 -0
- package/dist/matrix.js +302 -0
- package/dist/matrix.js.map +1 -0
- package/dist/memory.d.ts +11 -0
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +54 -2
- package/dist/memory.js.map +1 -1
- package/dist/multimodal.d.ts +57 -0
- package/dist/multimodal.d.ts.map +1 -0
- package/dist/multimodal.js +206 -0
- package/dist/multimodal.js.map +1 -0
- package/dist/permissions.d.ts +21 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +122 -0
- package/dist/permissions.js.map +1 -0
- package/dist/planner.d.ts +54 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +298 -0
- package/dist/planner.js.map +1 -0
- package/dist/plugins.d.ts +30 -0
- package/dist/plugins.d.ts.map +1 -0
- package/dist/plugins.js +135 -0
- package/dist/plugins.js.map +1 -0
- package/dist/sessions.d.ts +38 -0
- package/dist/sessions.d.ts.map +1 -0
- package/dist/sessions.js +177 -0
- package/dist/sessions.js.map +1 -0
- package/dist/streaming.d.ts +88 -0
- package/dist/streaming.d.ts.map +1 -0
- package/dist/streaming.js +317 -0
- package/dist/streaming.js.map +1 -0
- package/dist/tools/background.d.ts +2 -0
- package/dist/tools/background.d.ts.map +1 -0
- package/dist/tools/background.js +163 -0
- package/dist/tools/background.js.map +1 -0
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +26 -1
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/browser.js +7 -7
- package/dist/tools/browser.js.map +1 -1
- package/dist/tools/build-matrix.d.ts +2 -0
- package/dist/tools/build-matrix.d.ts.map +1 -0
- package/dist/tools/build-matrix.js +463 -0
- package/dist/tools/build-matrix.js.map +1 -0
- package/dist/tools/computer.js +5 -5
- package/dist/tools/computer.js.map +1 -1
- package/dist/tools/fetch.d.ts +2 -0
- package/dist/tools/fetch.d.ts.map +1 -0
- package/dist/tools/fetch.js +106 -0
- package/dist/tools/fetch.js.map +1 -0
- package/dist/tools/files.d.ts.map +1 -1
- package/dist/tools/files.js +112 -6
- package/dist/tools/files.js.map +1 -1
- package/dist/tools/git.js +3 -3
- package/dist/tools/git.js.map +1 -1
- package/dist/tools/github.d.ts +2 -0
- package/dist/tools/github.d.ts.map +1 -0
- package/dist/tools/github.js +196 -0
- package/dist/tools/github.js.map +1 -0
- package/dist/tools/index.d.ts +29 -5
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +136 -20
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/index.test.d.ts +2 -0
- package/dist/tools/index.test.d.ts.map +1 -0
- package/dist/tools/index.test.js +162 -0
- package/dist/tools/index.test.js.map +1 -0
- package/dist/tools/matrix.d.ts +2 -0
- package/dist/tools/matrix.d.ts.map +1 -0
- package/dist/tools/matrix.js +79 -0
- package/dist/tools/matrix.js.map +1 -0
- package/dist/tools/mcp-client.d.ts +2 -0
- package/dist/tools/mcp-client.d.ts.map +1 -0
- package/dist/tools/mcp-client.js +295 -0
- package/dist/tools/mcp-client.js.map +1 -0
- package/dist/tools/notebook.d.ts +2 -0
- package/dist/tools/notebook.d.ts.map +1 -0
- package/dist/tools/notebook.js +207 -0
- package/dist/tools/notebook.js.map +1 -0
- package/dist/tools/openclaw.d.ts +2 -0
- package/dist/tools/openclaw.d.ts.map +1 -0
- package/dist/tools/openclaw.js +187 -0
- package/dist/tools/openclaw.js.map +1 -0
- package/dist/tools/parallel.d.ts +2 -0
- package/dist/tools/parallel.d.ts.map +1 -0
- package/dist/tools/parallel.js +60 -0
- package/dist/tools/parallel.js.map +1 -0
- package/dist/tools/sandbox.d.ts +2 -0
- package/dist/tools/sandbox.d.ts.map +1 -0
- package/dist/tools/sandbox.js +352 -0
- package/dist/tools/sandbox.js.map +1 -0
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +135 -28
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/subagent.d.ts +4 -0
- package/dist/tools/subagent.d.ts.map +1 -0
- package/dist/tools/subagent.js +260 -0
- package/dist/tools/subagent.js.map +1 -0
- package/dist/tools/tasks.d.ts +14 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +210 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/tools/worktree.d.ts +2 -0
- package/dist/tools/worktree.d.ts.map +1 -0
- package/dist/tools/worktree.js +223 -0
- package/dist/tools/worktree.js.map +1 -0
- package/dist/tui.d.ts +73 -0
- package/dist/tui.d.ts.map +1 -0
- package/dist/tui.js +257 -0
- package/dist/tui.js.map +1 -0
- package/dist/ui.d.ts +11 -19
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +143 -171
- package/dist/ui.js.map +1 -1
- package/dist/updater.d.ts +3 -0
- package/dist/updater.d.ts.map +1 -0
- package/dist/updater.js +70 -0
- package/dist/updater.js.map +1 -0
- package/install.sh +5 -7
- package/package.json +9 -5
|
@@ -0,0 +1,507 @@
|
|
|
1
|
+
// K:BOT Build Targets — Platform definitions, detection, and toolchain configs
|
|
2
|
+
//
|
|
3
|
+
// Every hardware target K:BOT can build for.
|
|
4
|
+
// Each target defines: required tools, Docker image (for sandbox),
|
|
5
|
+
// build commands, and how to detect if the current project supports it.
|
|
6
|
+
import { existsSync } from 'node:fs';
|
|
7
|
+
import { execSync } from 'node:child_process';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
export const BUILD_TARGETS = {
|
|
10
|
+
// ── Mobile ──
|
|
11
|
+
ios: {
|
|
12
|
+
id: 'ios',
|
|
13
|
+
name: 'iOS',
|
|
14
|
+
category: 'mobile',
|
|
15
|
+
arch: ['arm64'],
|
|
16
|
+
dockerImage: null, // Requires macOS + Xcode
|
|
17
|
+
requiredTools: ['xcodebuild', 'xcrun', 'swift'],
|
|
18
|
+
detectFiles: ['*.xcodeproj', '*.xcworkspace', 'ios/', 'Podfile', 'Package.swift'],
|
|
19
|
+
initCommands: [
|
|
20
|
+
'swift package init --type executable --name $PROJECT_NAME',
|
|
21
|
+
],
|
|
22
|
+
buildCommands: [
|
|
23
|
+
'xcodebuild -scheme $SCHEME -sdk iphoneos -configuration Release build',
|
|
24
|
+
'swift build -c release',
|
|
25
|
+
],
|
|
26
|
+
runCommands: [
|
|
27
|
+
'xcrun simctl boot "iPhone 15"',
|
|
28
|
+
'xcrun simctl install booted $APP_PATH',
|
|
29
|
+
'xcrun simctl launch booted $BUNDLE_ID',
|
|
30
|
+
],
|
|
31
|
+
packageCommands: [
|
|
32
|
+
'xcodebuild -exportArchive -archivePath $ARCHIVE -exportPath $EXPORT -exportOptionsPlist ExportOptions.plist',
|
|
33
|
+
],
|
|
34
|
+
description: 'iOS apps — Swift/ObjC, Xcode, App Store',
|
|
35
|
+
},
|
|
36
|
+
android: {
|
|
37
|
+
id: 'android',
|
|
38
|
+
name: 'Android',
|
|
39
|
+
category: 'mobile',
|
|
40
|
+
arch: ['arm64', 'armv7', 'x86_64'],
|
|
41
|
+
dockerImage: 'thyrlian/android-sdk:latest',
|
|
42
|
+
requiredTools: ['gradle', 'adb'],
|
|
43
|
+
detectFiles: ['build.gradle', 'build.gradle.kts', 'android/', 'AndroidManifest.xml', 'settings.gradle'],
|
|
44
|
+
initCommands: [
|
|
45
|
+
'mkdir -p app/src/main/java/com/$ORG/$PROJECT_NAME',
|
|
46
|
+
'mkdir -p app/src/main/res/layout',
|
|
47
|
+
],
|
|
48
|
+
buildCommands: [
|
|
49
|
+
'./gradlew assembleRelease',
|
|
50
|
+
'./gradlew assembleDebug',
|
|
51
|
+
],
|
|
52
|
+
runCommands: [
|
|
53
|
+
'adb install -r app/build/outputs/apk/debug/app-debug.apk',
|
|
54
|
+
'adb shell am start -n $PACKAGE/$ACTIVITY',
|
|
55
|
+
],
|
|
56
|
+
packageCommands: [
|
|
57
|
+
'./gradlew bundleRelease',
|
|
58
|
+
'jarsigner -keystore $KEYSTORE app/build/outputs/bundle/release/app-release.aab $KEY_ALIAS',
|
|
59
|
+
],
|
|
60
|
+
description: 'Android apps — Kotlin/Java, Gradle, Play Store',
|
|
61
|
+
},
|
|
62
|
+
'react-native': {
|
|
63
|
+
id: 'react-native',
|
|
64
|
+
name: 'React Native',
|
|
65
|
+
category: 'mobile',
|
|
66
|
+
arch: ['arm64', 'x86_64'],
|
|
67
|
+
dockerImage: null,
|
|
68
|
+
requiredTools: ['npx', 'node'],
|
|
69
|
+
detectFiles: ['react-native.config.js', 'metro.config.js', 'app.json'],
|
|
70
|
+
initCommands: [
|
|
71
|
+
'npx react-native init $PROJECT_NAME',
|
|
72
|
+
],
|
|
73
|
+
buildCommands: [
|
|
74
|
+
'npx react-native build-android --mode=release',
|
|
75
|
+
'npx react-native build-ios --mode=Release',
|
|
76
|
+
],
|
|
77
|
+
runCommands: [
|
|
78
|
+
'npx react-native run-android',
|
|
79
|
+
'npx react-native run-ios',
|
|
80
|
+
],
|
|
81
|
+
packageCommands: [
|
|
82
|
+
'cd android && ./gradlew bundleRelease',
|
|
83
|
+
'cd ios && xcodebuild archive -workspace $PROJECT.xcworkspace -scheme $PROJECT',
|
|
84
|
+
],
|
|
85
|
+
description: 'React Native — cross-platform iOS + Android from JS/TS',
|
|
86
|
+
},
|
|
87
|
+
flutter: {
|
|
88
|
+
id: 'flutter',
|
|
89
|
+
name: 'Flutter',
|
|
90
|
+
category: 'mobile',
|
|
91
|
+
arch: ['arm64', 'x86_64'],
|
|
92
|
+
dockerImage: 'cirrusci/flutter:latest',
|
|
93
|
+
requiredTools: ['flutter', 'dart'],
|
|
94
|
+
detectFiles: ['pubspec.yaml', 'lib/main.dart', '.dart_tool/'],
|
|
95
|
+
initCommands: [
|
|
96
|
+
'flutter create $PROJECT_NAME',
|
|
97
|
+
],
|
|
98
|
+
buildCommands: [
|
|
99
|
+
'flutter build apk --release',
|
|
100
|
+
'flutter build ios --release',
|
|
101
|
+
'flutter build web',
|
|
102
|
+
],
|
|
103
|
+
runCommands: [
|
|
104
|
+
'flutter run',
|
|
105
|
+
'flutter run -d chrome',
|
|
106
|
+
],
|
|
107
|
+
packageCommands: [
|
|
108
|
+
'flutter build appbundle',
|
|
109
|
+
'flutter build ipa',
|
|
110
|
+
],
|
|
111
|
+
description: 'Flutter — Dart-based cross-platform (iOS, Android, Web, Desktop)',
|
|
112
|
+
},
|
|
113
|
+
// ── Desktop ──
|
|
114
|
+
electron: {
|
|
115
|
+
id: 'electron',
|
|
116
|
+
name: 'Electron',
|
|
117
|
+
category: 'desktop',
|
|
118
|
+
arch: ['x86_64', 'arm64'],
|
|
119
|
+
dockerImage: 'electronuserland/builder:wine',
|
|
120
|
+
requiredTools: ['node', 'npx'],
|
|
121
|
+
detectFiles: ['electron.js', 'electron/', 'main.js', 'electron-builder.yml'],
|
|
122
|
+
initCommands: [
|
|
123
|
+
'npm init -y',
|
|
124
|
+
'npm install electron electron-builder --save-dev',
|
|
125
|
+
],
|
|
126
|
+
buildCommands: [
|
|
127
|
+
'npx electron-builder --mac',
|
|
128
|
+
'npx electron-builder --win',
|
|
129
|
+
'npx electron-builder --linux',
|
|
130
|
+
],
|
|
131
|
+
runCommands: [
|
|
132
|
+
'npx electron .',
|
|
133
|
+
],
|
|
134
|
+
packageCommands: [
|
|
135
|
+
'npx electron-builder --mac --win --linux --publish never',
|
|
136
|
+
],
|
|
137
|
+
description: 'Electron — web tech → desktop app (macOS, Windows, Linux)',
|
|
138
|
+
},
|
|
139
|
+
tauri: {
|
|
140
|
+
id: 'tauri',
|
|
141
|
+
name: 'Tauri',
|
|
142
|
+
category: 'desktop',
|
|
143
|
+
arch: ['x86_64', 'arm64'],
|
|
144
|
+
dockerImage: null,
|
|
145
|
+
requiredTools: ['cargo', 'rustc', 'node'],
|
|
146
|
+
detectFiles: ['src-tauri/', 'tauri.conf.json'],
|
|
147
|
+
initCommands: [
|
|
148
|
+
'npm create tauri-app@latest $PROJECT_NAME',
|
|
149
|
+
],
|
|
150
|
+
buildCommands: [
|
|
151
|
+
'npx tauri build',
|
|
152
|
+
'npx tauri build --target universal-apple-darwin',
|
|
153
|
+
],
|
|
154
|
+
runCommands: [
|
|
155
|
+
'npx tauri dev',
|
|
156
|
+
],
|
|
157
|
+
packageCommands: [
|
|
158
|
+
'npx tauri build --bundles dmg,msi,deb,appimage',
|
|
159
|
+
],
|
|
160
|
+
description: 'Tauri — Rust backend + web frontend → tiny desktop app',
|
|
161
|
+
},
|
|
162
|
+
macos: {
|
|
163
|
+
id: 'macos',
|
|
164
|
+
name: 'macOS Native',
|
|
165
|
+
category: 'desktop',
|
|
166
|
+
arch: ['arm64', 'x86_64'],
|
|
167
|
+
dockerImage: null,
|
|
168
|
+
requiredTools: ['swift', 'xcodebuild'],
|
|
169
|
+
detectFiles: ['*.xcodeproj', 'Package.swift', 'Sources/'],
|
|
170
|
+
initCommands: [
|
|
171
|
+
'swift package init --type executable --name $PROJECT_NAME',
|
|
172
|
+
],
|
|
173
|
+
buildCommands: [
|
|
174
|
+
'swift build -c release',
|
|
175
|
+
'xcodebuild -scheme $SCHEME -configuration Release build',
|
|
176
|
+
],
|
|
177
|
+
runCommands: [
|
|
178
|
+
'swift run',
|
|
179
|
+
'.build/release/$PROJECT_NAME',
|
|
180
|
+
],
|
|
181
|
+
packageCommands: [
|
|
182
|
+
'productbuild --component $APP /Applications $PROJECT_NAME.pkg',
|
|
183
|
+
],
|
|
184
|
+
description: 'macOS native — Swift/SwiftUI, notarized for distribution',
|
|
185
|
+
},
|
|
186
|
+
windows: {
|
|
187
|
+
id: 'windows',
|
|
188
|
+
name: 'Windows',
|
|
189
|
+
category: 'desktop',
|
|
190
|
+
arch: ['x86_64', 'arm64'],
|
|
191
|
+
dockerImage: null,
|
|
192
|
+
requiredTools: [],
|
|
193
|
+
detectFiles: ['*.sln', '*.csproj', '*.vcxproj'],
|
|
194
|
+
initCommands: [
|
|
195
|
+
'dotnet new console -n $PROJECT_NAME',
|
|
196
|
+
],
|
|
197
|
+
buildCommands: [
|
|
198
|
+
'dotnet build -c Release',
|
|
199
|
+
'dotnet publish -c Release -r win-x64 --self-contained',
|
|
200
|
+
],
|
|
201
|
+
runCommands: [
|
|
202
|
+
'dotnet run',
|
|
203
|
+
],
|
|
204
|
+
packageCommands: [
|
|
205
|
+
'dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true --self-contained',
|
|
206
|
+
],
|
|
207
|
+
description: 'Windows native — .NET/C#, WinUI, MSIX packaging',
|
|
208
|
+
},
|
|
209
|
+
linux: {
|
|
210
|
+
id: 'linux',
|
|
211
|
+
name: 'Linux',
|
|
212
|
+
category: 'desktop',
|
|
213
|
+
arch: ['x86_64', 'arm64', 'armv7'],
|
|
214
|
+
dockerImage: 'ubuntu:24.04',
|
|
215
|
+
requiredTools: ['gcc', 'make'],
|
|
216
|
+
detectFiles: ['Makefile', 'CMakeLists.txt', 'meson.build', 'configure'],
|
|
217
|
+
initCommands: [
|
|
218
|
+
'mkdir -p src && touch src/main.c Makefile',
|
|
219
|
+
],
|
|
220
|
+
buildCommands: [
|
|
221
|
+
'make release',
|
|
222
|
+
'cmake --build build --config Release',
|
|
223
|
+
],
|
|
224
|
+
runCommands: [
|
|
225
|
+
'./build/$PROJECT_NAME',
|
|
226
|
+
],
|
|
227
|
+
packageCommands: [
|
|
228
|
+
'dpkg-deb --build $DEB_DIR',
|
|
229
|
+
'rpmbuild -ba $SPEC_FILE',
|
|
230
|
+
'makepkg -si',
|
|
231
|
+
],
|
|
232
|
+
description: 'Linux native — C/C++/Rust, deb/rpm/AUR packaging',
|
|
233
|
+
},
|
|
234
|
+
// ── Embedded ──
|
|
235
|
+
'raspberry-pi': {
|
|
236
|
+
id: 'raspberry-pi',
|
|
237
|
+
name: 'Raspberry Pi',
|
|
238
|
+
category: 'embedded',
|
|
239
|
+
arch: ['arm64', 'armv7'],
|
|
240
|
+
dockerImage: 'arm64v8/debian:bookworm',
|
|
241
|
+
requiredTools: [],
|
|
242
|
+
detectFiles: [],
|
|
243
|
+
initCommands: [
|
|
244
|
+
'mkdir -p src',
|
|
245
|
+
],
|
|
246
|
+
buildCommands: [
|
|
247
|
+
'docker run --rm --platform linux/arm64 -v $(pwd):/app -w /app arm64v8/debian:bookworm bash -c "apt-get update && apt-get install -y gcc && gcc src/main.c -o build/app"',
|
|
248
|
+
'cross-env GOOS=linux GOARCH=arm64 go build -o build/app',
|
|
249
|
+
],
|
|
250
|
+
runCommands: [
|
|
251
|
+
'scp build/app pi@$RPI_HOST:/home/pi/',
|
|
252
|
+
'ssh pi@$RPI_HOST ./app',
|
|
253
|
+
],
|
|
254
|
+
packageCommands: [],
|
|
255
|
+
description: 'Raspberry Pi — ARM64/ARMv7 cross-compilation',
|
|
256
|
+
},
|
|
257
|
+
arduino: {
|
|
258
|
+
id: 'arduino',
|
|
259
|
+
name: 'Arduino',
|
|
260
|
+
category: 'embedded',
|
|
261
|
+
arch: ['avr', 'arm'],
|
|
262
|
+
dockerImage: 'arduino/arduino-cli:latest',
|
|
263
|
+
requiredTools: ['arduino-cli'],
|
|
264
|
+
detectFiles: ['*.ino', 'sketch.yaml', 'arduino.yaml'],
|
|
265
|
+
initCommands: [
|
|
266
|
+
'arduino-cli sketch new $PROJECT_NAME',
|
|
267
|
+
'arduino-cli core install arduino:avr',
|
|
268
|
+
],
|
|
269
|
+
buildCommands: [
|
|
270
|
+
'arduino-cli compile --fqbn $BOARD_FQBN .',
|
|
271
|
+
],
|
|
272
|
+
runCommands: [
|
|
273
|
+
'arduino-cli upload -p $PORT --fqbn $BOARD_FQBN .',
|
|
274
|
+
'arduino-cli monitor -p $PORT',
|
|
275
|
+
],
|
|
276
|
+
packageCommands: [],
|
|
277
|
+
description: 'Arduino — AVR/ARM microcontrollers, sensors, IoT',
|
|
278
|
+
},
|
|
279
|
+
esp32: {
|
|
280
|
+
id: 'esp32',
|
|
281
|
+
name: 'ESP32',
|
|
282
|
+
category: 'embedded',
|
|
283
|
+
arch: ['xtensa', 'riscv'],
|
|
284
|
+
dockerImage: 'espressif/idf:v5.2',
|
|
285
|
+
requiredTools: ['idf.py'],
|
|
286
|
+
detectFiles: ['sdkconfig', 'main/CMakeLists.txt', 'CMakeLists.txt'],
|
|
287
|
+
initCommands: [
|
|
288
|
+
'idf.py create-project $PROJECT_NAME',
|
|
289
|
+
],
|
|
290
|
+
buildCommands: [
|
|
291
|
+
'idf.py build',
|
|
292
|
+
],
|
|
293
|
+
runCommands: [
|
|
294
|
+
'idf.py flash -p $PORT',
|
|
295
|
+
'idf.py monitor -p $PORT',
|
|
296
|
+
],
|
|
297
|
+
packageCommands: [],
|
|
298
|
+
description: 'ESP32 — WiFi/BLE IoT microcontroller (ESP-IDF)',
|
|
299
|
+
},
|
|
300
|
+
// ── Web ──
|
|
301
|
+
pwa: {
|
|
302
|
+
id: 'pwa',
|
|
303
|
+
name: 'PWA',
|
|
304
|
+
category: 'web',
|
|
305
|
+
arch: ['wasm32'],
|
|
306
|
+
dockerImage: 'node:22-slim',
|
|
307
|
+
requiredTools: ['node', 'npx'],
|
|
308
|
+
detectFiles: ['vite.config.ts', 'vite.config.js', 'next.config.js', 'webpack.config.js', 'package.json'],
|
|
309
|
+
initCommands: [
|
|
310
|
+
'npm create vite@latest $PROJECT_NAME -- --template react-ts',
|
|
311
|
+
],
|
|
312
|
+
buildCommands: [
|
|
313
|
+
'npm run build',
|
|
314
|
+
],
|
|
315
|
+
runCommands: [
|
|
316
|
+
'npm run dev',
|
|
317
|
+
'npm run preview',
|
|
318
|
+
],
|
|
319
|
+
packageCommands: [
|
|
320
|
+
'npm run build && npx serve dist',
|
|
321
|
+
],
|
|
322
|
+
description: 'Progressive Web App — works offline, installable',
|
|
323
|
+
},
|
|
324
|
+
// ── WASM ──
|
|
325
|
+
wasm: {
|
|
326
|
+
id: 'wasm',
|
|
327
|
+
name: 'WebAssembly',
|
|
328
|
+
category: 'wasm',
|
|
329
|
+
arch: ['wasm32'],
|
|
330
|
+
dockerImage: 'emscripten/emsdk:latest',
|
|
331
|
+
requiredTools: [],
|
|
332
|
+
detectFiles: ['Cargo.toml', '*.c', '*.cpp', '*.rs'],
|
|
333
|
+
initCommands: [
|
|
334
|
+
'cargo init --name $PROJECT_NAME',
|
|
335
|
+
'cargo add wasm-bindgen',
|
|
336
|
+
],
|
|
337
|
+
buildCommands: [
|
|
338
|
+
'wasm-pack build --target web',
|
|
339
|
+
'emcc src/main.c -o build/app.wasm -s WASM=1',
|
|
340
|
+
],
|
|
341
|
+
runCommands: [
|
|
342
|
+
'python3 -m http.server 8080',
|
|
343
|
+
],
|
|
344
|
+
packageCommands: [
|
|
345
|
+
'wasm-pack build --target bundler',
|
|
346
|
+
'wasm-opt -O3 build/app.wasm -o build/app.opt.wasm',
|
|
347
|
+
],
|
|
348
|
+
description: 'WebAssembly — near-native performance in browsers and edge',
|
|
349
|
+
},
|
|
350
|
+
// ── Server ──
|
|
351
|
+
docker: {
|
|
352
|
+
id: 'docker',
|
|
353
|
+
name: 'Docker Container',
|
|
354
|
+
category: 'server',
|
|
355
|
+
arch: ['x86_64', 'arm64'],
|
|
356
|
+
dockerImage: null,
|
|
357
|
+
requiredTools: ['docker'],
|
|
358
|
+
detectFiles: ['Dockerfile', 'docker-compose.yml', 'docker-compose.yaml', 'compose.yml'],
|
|
359
|
+
initCommands: [
|
|
360
|
+
'touch Dockerfile docker-compose.yml',
|
|
361
|
+
],
|
|
362
|
+
buildCommands: [
|
|
363
|
+
'docker build -t $IMAGE_NAME .',
|
|
364
|
+
'docker buildx build --platform linux/amd64,linux/arm64 -t $IMAGE_NAME .',
|
|
365
|
+
],
|
|
366
|
+
runCommands: [
|
|
367
|
+
'docker run --rm -it $IMAGE_NAME',
|
|
368
|
+
'docker compose up',
|
|
369
|
+
],
|
|
370
|
+
packageCommands: [
|
|
371
|
+
'docker push $REGISTRY/$IMAGE_NAME',
|
|
372
|
+
],
|
|
373
|
+
description: 'Docker — containerized deployment, multi-arch builds',
|
|
374
|
+
},
|
|
375
|
+
kubernetes: {
|
|
376
|
+
id: 'kubernetes',
|
|
377
|
+
name: 'Kubernetes',
|
|
378
|
+
category: 'server',
|
|
379
|
+
arch: ['x86_64', 'arm64'],
|
|
380
|
+
dockerImage: null,
|
|
381
|
+
requiredTools: ['kubectl', 'helm'],
|
|
382
|
+
detectFiles: ['k8s/', 'kubernetes/', 'helm/', 'Chart.yaml', 'kustomization.yaml'],
|
|
383
|
+
initCommands: [
|
|
384
|
+
'mkdir -p k8s',
|
|
385
|
+
'helm create $PROJECT_NAME',
|
|
386
|
+
],
|
|
387
|
+
buildCommands: [
|
|
388
|
+
'kubectl apply -f k8s/',
|
|
389
|
+
'helm install $RELEASE_NAME ./helm/$PROJECT_NAME',
|
|
390
|
+
],
|
|
391
|
+
runCommands: [
|
|
392
|
+
'kubectl port-forward svc/$SERVICE 8080:80',
|
|
393
|
+
'kubectl logs -f deployment/$DEPLOYMENT',
|
|
394
|
+
],
|
|
395
|
+
packageCommands: [
|
|
396
|
+
'helm package ./helm/$PROJECT_NAME',
|
|
397
|
+
],
|
|
398
|
+
description: 'Kubernetes — orchestrated container deployment',
|
|
399
|
+
},
|
|
400
|
+
'cloud-function': {
|
|
401
|
+
id: 'cloud-function',
|
|
402
|
+
name: 'Cloud Functions',
|
|
403
|
+
category: 'server',
|
|
404
|
+
arch: ['x86_64'],
|
|
405
|
+
dockerImage: 'node:22-slim',
|
|
406
|
+
requiredTools: ['node'],
|
|
407
|
+
detectFiles: ['serverless.yml', 'netlify.toml', 'vercel.json', 'supabase/functions/', 'functions/'],
|
|
408
|
+
initCommands: [
|
|
409
|
+
'npx serverless create --template aws-nodejs-typescript',
|
|
410
|
+
],
|
|
411
|
+
buildCommands: [
|
|
412
|
+
'npx serverless package',
|
|
413
|
+
'npx supabase functions deploy $FUNCTION_NAME',
|
|
414
|
+
],
|
|
415
|
+
runCommands: [
|
|
416
|
+
'npx serverless offline',
|
|
417
|
+
'npx supabase functions serve',
|
|
418
|
+
],
|
|
419
|
+
packageCommands: [
|
|
420
|
+
'npx serverless deploy',
|
|
421
|
+
],
|
|
422
|
+
description: 'Serverless — AWS Lambda, Supabase Edge, Vercel, Netlify',
|
|
423
|
+
},
|
|
424
|
+
};
|
|
425
|
+
// ── Detection ──
|
|
426
|
+
/** Check if a CLI tool is available */
|
|
427
|
+
export function isToolAvailable(tool) {
|
|
428
|
+
try {
|
|
429
|
+
execSync(`which ${tool}`, { stdio: 'ignore', timeout: 3000 });
|
|
430
|
+
return true;
|
|
431
|
+
}
|
|
432
|
+
catch {
|
|
433
|
+
return false;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
/** Detect which build targets the current project supports */
|
|
437
|
+
export function detectProjectTargets(cwd = process.cwd()) {
|
|
438
|
+
const detected = [];
|
|
439
|
+
for (const target of Object.values(BUILD_TARGETS)) {
|
|
440
|
+
for (const pattern of target.detectFiles) {
|
|
441
|
+
if (pattern.includes('*')) {
|
|
442
|
+
// Glob pattern — check with shell
|
|
443
|
+
try {
|
|
444
|
+
const result = execSync(`ls ${join(cwd, pattern)} 2>/dev/null`, {
|
|
445
|
+
encoding: 'utf-8', timeout: 3000,
|
|
446
|
+
}).trim();
|
|
447
|
+
if (result) {
|
|
448
|
+
detected.push(target);
|
|
449
|
+
break;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
catch { /* no match */ }
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
// Direct file/dir check
|
|
456
|
+
if (existsSync(join(cwd, pattern))) {
|
|
457
|
+
detected.push(target);
|
|
458
|
+
break;
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
return detected;
|
|
464
|
+
}
|
|
465
|
+
/** Check which required tools are missing for a target */
|
|
466
|
+
export function getMissingTools(target) {
|
|
467
|
+
return target.requiredTools.filter(t => !isToolAvailable(t));
|
|
468
|
+
}
|
|
469
|
+
/** Get all targets in a category */
|
|
470
|
+
export function getTargetsByCategory(category) {
|
|
471
|
+
return Object.values(BUILD_TARGETS).filter(t => t.category === category);
|
|
472
|
+
}
|
|
473
|
+
/** Format target info for display */
|
|
474
|
+
export function formatTargetInfo(target) {
|
|
475
|
+
const missing = getMissingTools(target);
|
|
476
|
+
const status = missing.length === 0 ? '✓ ready' : `✗ missing: ${missing.join(', ')}`;
|
|
477
|
+
const archStr = target.arch.join(', ');
|
|
478
|
+
return [
|
|
479
|
+
`${target.name} (${target.id})`,
|
|
480
|
+
` Category: ${target.category}`,
|
|
481
|
+
` Arch: ${archStr}`,
|
|
482
|
+
` Docker: ${target.dockerImage || 'requires local tools'}`,
|
|
483
|
+
` Status: ${status}`,
|
|
484
|
+
` ${target.description}`,
|
|
485
|
+
].join('\n');
|
|
486
|
+
}
|
|
487
|
+
/** Format a compact target list */
|
|
488
|
+
export function formatTargetList(targets) {
|
|
489
|
+
const categories = new Map();
|
|
490
|
+
for (const t of targets) {
|
|
491
|
+
if (!categories.has(t.category))
|
|
492
|
+
categories.set(t.category, []);
|
|
493
|
+
categories.get(t.category).push(t);
|
|
494
|
+
}
|
|
495
|
+
const lines = [];
|
|
496
|
+
for (const [category, categoryTargets] of categories) {
|
|
497
|
+
lines.push(` ${category.toUpperCase()}`);
|
|
498
|
+
for (const t of categoryTargets) {
|
|
499
|
+
const missing = getMissingTools(t);
|
|
500
|
+
const icon = missing.length === 0 ? '✓' : '○';
|
|
501
|
+
lines.push(` ${icon} ${t.id.padEnd(16)} ${t.name.padEnd(20)} ${t.arch.join(', ')}`);
|
|
502
|
+
}
|
|
503
|
+
lines.push('');
|
|
504
|
+
}
|
|
505
|
+
return lines.join('\n');
|
|
506
|
+
}
|
|
507
|
+
//# sourceMappingURL=build-targets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-targets.js","sourceRoot":"","sources":["../src/build-targets.ts"],"names":[],"mappings":"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"}
|