ft-scout 9.4.1 → 9.4.4
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/.firebase/hosting.d2Vi.cache +7 -7
- package/README.md +4 -4
- package/artifacts/scout_drone_3d.glb +0 -0
- package/artifacts/scout_drone_3d_render.png +0 -0
- package/bin/src/commands/agent.d.ts.map +1 -1
- package/bin/src/commands/agent.js +21 -0
- package/bin/src/commands/agent.js.map +1 -1
- package/bin/src/commands/authCommand.d.ts.map +1 -1
- package/bin/src/commands/authCommand.js +10 -4
- package/bin/src/commands/authCommand.js.map +1 -1
- package/bin/src/commands/brief.d.ts.map +1 -1
- package/bin/src/commands/brief.js +31 -1
- package/bin/src/commands/brief.js.map +1 -1
- package/bin/src/commands/plan.d.ts.map +1 -1
- package/bin/src/commands/plan.js +23 -3
- package/bin/src/commands/plan.js.map +1 -1
- package/bin/src/commands/risky.d.ts.map +1 -1
- package/bin/src/commands/risky.js +82 -1
- package/bin/src/commands/risky.js.map +1 -1
- package/bin/src/discovery/messages.js +2 -2
- package/bin/src/discovery/messages.js.map +1 -1
- package/bin/src/engine/agentEngine.d.ts.map +1 -1
- package/bin/src/engine/agentEngine.js +23 -0
- package/bin/src/engine/agentEngine.js.map +1 -1
- package/bin/src/engine/computer/computerController.d.ts.map +1 -1
- package/bin/src/engine/computer/computerController.js +5 -0
- package/bin/src/engine/computer/computerController.js.map +1 -1
- package/bin/src/engine/computer/scoutDriver.cs +152 -18
- package/bin/src/engine/computer/scout_driver.exe +0 -0
- package/bin/src/engine/llm.d.ts.map +1 -1
- package/bin/src/engine/llm.js +16 -6
- package/bin/src/engine/llm.js.map +1 -1
- package/bin/src/engine/runtime/agentRuntime.d.ts.map +1 -1
- package/bin/src/engine/runtime/agentRuntime.js +20 -8
- package/bin/src/engine/runtime/agentRuntime.js.map +1 -1
- package/bin/src/engine/verifier.d.ts.map +1 -1
- package/bin/src/engine/verifier.js +31 -12
- package/bin/src/engine/verifier.js.map +1 -1
- package/bin/src/engine/workspace/agentWorkspace.d.ts.map +1 -1
- package/bin/src/engine/workspace/agentWorkspace.js +43 -0
- package/bin/src/engine/workspace/agentWorkspace.js.map +1 -1
- package/bin/src/index.js +21 -10
- package/bin/src/index.js.map +1 -1
- package/bin/src/mcp/client.js +1 -1
- package/bin/src/utils/branding.js +1 -1
- package/bin/src/utils/payment.d.ts.map +1 -1
- package/bin/src/utils/payment.js +38 -0
- package/bin/src/utils/payment.js.map +1 -1
- package/bin/src/utils/qrBridge.d.ts.map +1 -1
- package/bin/src/utils/qrBridge.js +148 -8
- package/bin/src/utils/qrBridge.js.map +1 -1
- package/package.json +4 -3
- package/scripts/build_3d_drone.js +130 -0
- package/scripts/export_and_capture.js +48 -0
- package/scripts/render_and_export_drone.js +94 -0
- package/scripts/render_front_view.js +76 -0
- package/web/app.js +4 -4
- package/web/styles.css +338 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qrBridge.d.ts","sourceRoot":"","sources":["qrBridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"qrBridge.d.ts","sourceRoot":"","sources":["qrBridge.ts"],"names":[],"mappings":"AAQA,OAAO,EAAkB,KAAK,UAAU,EAAoB,MAAM,WAAW,CAAC;AAO9E,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,GAAG,QAAQ,GAAG,SAAS,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAuBxE;AAED;;GAEG;AAEH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CA4B9F;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,oBAAoB,CAAC,QAqBtE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,UAAU,CAAC,CAgRjE"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import QRCode from 'qrcode';
|
|
1
2
|
import http from 'http';
|
|
2
3
|
import os from 'os';
|
|
3
4
|
import crypto from 'crypto';
|
|
@@ -7,6 +8,7 @@ import chalk from 'chalk';
|
|
|
7
8
|
import { spinner } from '@clack/prompts';
|
|
8
9
|
import { saveAuthConfig } from './auth.js';
|
|
9
10
|
import { safeNote } from './markdown.js';
|
|
11
|
+
import { FIREBASE_API_KEY, FIREBASE_PROJECT_ID } from './firebaseAuth.js';
|
|
10
12
|
const BRIDGE_PORT = 4290;
|
|
11
13
|
const TELEMETRY_PATH = path.join(os.homedir(), '.ft', 'scout_telemetry.json');
|
|
12
14
|
/**
|
|
@@ -38,6 +40,37 @@ export function generateAsciiQrPattern(code, url) {
|
|
|
38
40
|
/**
|
|
39
41
|
* Saves live telemetry snapshot to ~/.ft/scout_telemetry.json
|
|
40
42
|
*/
|
|
43
|
+
export async function pushTelemetryToCloud(sessionId, telemetry) {
|
|
44
|
+
try {
|
|
45
|
+
const controller = new AbortController();
|
|
46
|
+
const timeout = setTimeout(() => controller.abort(), 3500);
|
|
47
|
+
const url = `https://firestore.googleapis.com/v1/projects/${FIREBASE_PROJECT_ID}/databases/(default)/documents/scout_sessions/${encodeURIComponent(sessionId)}?key=${FIREBASE_API_KEY}`;
|
|
48
|
+
const fields = {};
|
|
49
|
+
for (const [key, val] of Object.entries(telemetry)) {
|
|
50
|
+
if (typeof val === 'number') {
|
|
51
|
+
fields[key] = { integerValue: String(Math.round(val)) };
|
|
52
|
+
}
|
|
53
|
+
else if (typeof val === 'boolean') {
|
|
54
|
+
fields[key] = { booleanValue: val };
|
|
55
|
+
}
|
|
56
|
+
else if (val !== undefined && val !== null) {
|
|
57
|
+
fields[key] = { stringValue: String(val) };
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
fields.lastPing = { stringValue: new Date().toISOString() };
|
|
61
|
+
const res = await fetch(url, {
|
|
62
|
+
method: 'PATCH',
|
|
63
|
+
headers: { 'Content-Type': 'application/json' },
|
|
64
|
+
body: JSON.stringify({ fields }),
|
|
65
|
+
signal: controller.signal,
|
|
66
|
+
});
|
|
67
|
+
clearTimeout(timeout);
|
|
68
|
+
return res.ok;
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
41
74
|
export function writeTelemetry(telemetry) {
|
|
42
75
|
try {
|
|
43
76
|
const ftDir = path.join(os.homedir(), '.ft');
|
|
@@ -57,6 +90,10 @@ export function writeTelemetry(telemetry) {
|
|
|
57
90
|
lastPing: new Date().toISOString(),
|
|
58
91
|
};
|
|
59
92
|
fs.writeFileSync(TELEMETRY_PATH, JSON.stringify(updated, null, 2), 'utf-8');
|
|
93
|
+
const sessId = updated.sessionId || current.sessionId;
|
|
94
|
+
if (sessId) {
|
|
95
|
+
pushTelemetryToCloud(sessId, updated).catch(() => { });
|
|
96
|
+
}
|
|
60
97
|
}
|
|
61
98
|
catch { }
|
|
62
99
|
}
|
|
@@ -68,15 +105,34 @@ export async function startQrPairingSession() {
|
|
|
68
105
|
const pairingCode = `SCT-${rawNum}`;
|
|
69
106
|
const sessionId = `sct_sess_${Date.now().toString(36)}_${crypto.randomBytes(3).toString('hex')}`;
|
|
70
107
|
const hostName = os.hostname() || 'workstation.local';
|
|
71
|
-
const version = '9.
|
|
72
|
-
|
|
108
|
+
const version = '9.4.4';
|
|
109
|
+
let localIp = '127.0.0.1';
|
|
110
|
+
try {
|
|
111
|
+
const nets = os.networkInterfaces();
|
|
112
|
+
for (const name of Object.keys(nets)) {
|
|
113
|
+
for (const net of nets[name] || []) {
|
|
114
|
+
if (net.family === 'IPv4' && !net.internal) {
|
|
115
|
+
localIp = net.address;
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch { }
|
|
122
|
+
const deepLink = `frontterrain://pair?session=${sessionId}&code=${pairingCode}&host=${hostName}&ip=${localIp}&port=${BRIDGE_PORT}&v=${version}`;
|
|
73
123
|
console.log();
|
|
74
124
|
console.log(chalk.bold.white(' ┌──────────────────────────────────────────────────────────┐'));
|
|
75
125
|
console.log(chalk.bold.white(' │ FRONTTERRAIN SCOUT CLI │'));
|
|
76
126
|
console.log(chalk.dim(' │ Universal Sovereign Agent QR Bridge │'));
|
|
77
127
|
console.log(chalk.bold.white(' └──────────────────────────────────────────────────────────┘'));
|
|
78
128
|
console.log();
|
|
79
|
-
|
|
129
|
+
try {
|
|
130
|
+
const qrString = await QRCode.toString(deepLink, { type: 'terminal', small: true });
|
|
131
|
+
console.log(qrString);
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
console.log(generateAsciiQrPattern(pairingCode, deepLink));
|
|
135
|
+
}
|
|
80
136
|
console.log();
|
|
81
137
|
console.log(chalk.bold.white(' PAIRING CODE : ') + chalk.bold.black.bgWhite(` ${pairingCode} `));
|
|
82
138
|
console.log(chalk.dim(` DEEP LINK : ${deepLink}`));
|
|
@@ -88,12 +144,91 @@ export async function startQrPairingSession() {
|
|
|
88
144
|
s.start('Awaiting authorization from FrontTerrain One mobile app...');
|
|
89
145
|
return new Promise((resolve, reject) => {
|
|
90
146
|
let server;
|
|
147
|
+
let isResolved = false;
|
|
148
|
+
let cloudPollInterval = null;
|
|
91
149
|
const cleanup = () => {
|
|
150
|
+
if (cloudPollInterval) {
|
|
151
|
+
clearInterval(cloudPollInterval);
|
|
152
|
+
cloudPollInterval = null;
|
|
153
|
+
}
|
|
92
154
|
try {
|
|
93
155
|
server.close();
|
|
94
156
|
}
|
|
95
157
|
catch { }
|
|
96
158
|
};
|
|
159
|
+
const handleSuccessAuth = (authConfig) => {
|
|
160
|
+
if (isResolved)
|
|
161
|
+
return;
|
|
162
|
+
isResolved = true;
|
|
163
|
+
cleanup();
|
|
164
|
+
s.stop(chalk.bold.green('✔ Successfully paired with FrontTerrain One!'));
|
|
165
|
+
const u = authConfig.user;
|
|
166
|
+
const displayName = u?.name || 'Developer';
|
|
167
|
+
const displayEmail = u?.email || 'frontterrainowner@gmail.com';
|
|
168
|
+
const displayTier = (authConfig.currentTier || 'PRO').toUpperCase();
|
|
169
|
+
safeNote(`${chalk.bold('Welcome to Scout CLI, ' + displayName + '!')}\n\n` +
|
|
170
|
+
`Status: ${chalk.bold.green('Authenticated via FrontTerrain One Bridge')}\n` +
|
|
171
|
+
`Account: ${chalk.cyan(displayEmail)}\n` +
|
|
172
|
+
(u?.username ? `Username: ${chalk.white('@' + u.username)}\n` : '') +
|
|
173
|
+
`Tier: ${chalk.bold.white(displayTier)}\n` +
|
|
174
|
+
`Live Telemetry: ${chalk.dim('Connected & Streaming to FrontTerrain One Mission Control')}`, ' FrontTerrain Sovereign Auth ');
|
|
175
|
+
resolve(authConfig);
|
|
176
|
+
};
|
|
177
|
+
// Cloud Firestore Realtime Poller (handles mobile Wi-Fi, 5G, NAT, and Windows Firewall effortlessly)
|
|
178
|
+
cloudPollInterval = setInterval(async () => {
|
|
179
|
+
if (isResolved)
|
|
180
|
+
return;
|
|
181
|
+
try {
|
|
182
|
+
const controller = new AbortController();
|
|
183
|
+
const timeout = setTimeout(() => controller.abort(), 2500);
|
|
184
|
+
const url = `https://firestore.googleapis.com/v1/projects/${FIREBASE_PROJECT_ID}/databases/(default)/documents/scout_sessions/${encodeURIComponent(sessionId)}?key=${FIREBASE_API_KEY}`;
|
|
185
|
+
const res = await fetch(url, { signal: controller.signal });
|
|
186
|
+
clearTimeout(timeout);
|
|
187
|
+
if (res.ok) {
|
|
188
|
+
const data = await res.json();
|
|
189
|
+
const fields = data.fields;
|
|
190
|
+
if (fields && (fields.authorized?.booleanValue || fields.user || fields.pairedAt)) {
|
|
191
|
+
let userName = 'FrontTerrain Operator';
|
|
192
|
+
let userEmail = fields.email?.stringValue || fields.userEmail?.stringValue || 'frontterrainowner@gmail.com';
|
|
193
|
+
let username = 'scout_operator';
|
|
194
|
+
let userId = `usr_${Date.now().toString(36)}`;
|
|
195
|
+
let userTier = 'pro';
|
|
196
|
+
if (fields.user?.mapValue?.fields) {
|
|
197
|
+
const uf = fields.user.mapValue.fields;
|
|
198
|
+
if (uf.name?.stringValue)
|
|
199
|
+
userName = uf.name.stringValue;
|
|
200
|
+
if (uf.email?.stringValue)
|
|
201
|
+
userEmail = uf.email.stringValue;
|
|
202
|
+
if (uf.username?.stringValue)
|
|
203
|
+
username = uf.username.stringValue;
|
|
204
|
+
if (uf.id?.stringValue)
|
|
205
|
+
userId = uf.id.stringValue;
|
|
206
|
+
}
|
|
207
|
+
if (fields.tier?.stringValue)
|
|
208
|
+
userTier = fields.tier.stringValue;
|
|
209
|
+
const authConfig = {
|
|
210
|
+
token: fields.token?.stringValue || `ft_tok_${Date.now().toString(36)}`,
|
|
211
|
+
provider: 'frontterrain-one',
|
|
212
|
+
tenantId: fields.tenantId?.stringValue || 'ft-scout-auth-gc2v5',
|
|
213
|
+
user: {
|
|
214
|
+
id: userId,
|
|
215
|
+
email: userEmail,
|
|
216
|
+
name: userName,
|
|
217
|
+
username,
|
|
218
|
+
createdAt: new Date().toISOString(),
|
|
219
|
+
},
|
|
220
|
+
loggedInAt: new Date().toISOString(),
|
|
221
|
+
currentTier: userTier,
|
|
222
|
+
creditsTotal: userTier === 'pro' ? 999999 : 50,
|
|
223
|
+
creditsUsed: 0,
|
|
224
|
+
};
|
|
225
|
+
saveAuthConfig(authConfig);
|
|
226
|
+
handleSuccessAuth(authConfig);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
catch { }
|
|
231
|
+
}, 1200);
|
|
97
232
|
server = http.createServer(async (req, res) => {
|
|
98
233
|
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
99
234
|
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
|
|
@@ -118,7 +253,7 @@ export async function startQrPairingSession() {
|
|
|
118
253
|
if ((reqUrl.startsWith('/pair') || reqUrl.startsWith('/auth/pair')) && req.method === 'POST') {
|
|
119
254
|
let body = '';
|
|
120
255
|
req.on('data', chunk => { body += chunk; });
|
|
121
|
-
req.on('end', () => {
|
|
256
|
+
req.on('end', async () => {
|
|
122
257
|
try {
|
|
123
258
|
const payload = JSON.parse(body || '{}');
|
|
124
259
|
const token = payload.token || `ft_tok_${Date.now().toString(36)}`;
|
|
@@ -140,14 +275,19 @@ export async function startQrPairingSession() {
|
|
|
140
275
|
creditsUsed: 0,
|
|
141
276
|
};
|
|
142
277
|
saveAuthConfig(authConfig);
|
|
143
|
-
|
|
278
|
+
const initialTelemetry = {
|
|
279
|
+
sessionId,
|
|
280
|
+
pairingCode,
|
|
281
|
+
hostName,
|
|
144
282
|
status: 'idle',
|
|
145
283
|
currentProject: path.basename(process.cwd()),
|
|
146
284
|
tokensConsumed: 0,
|
|
147
285
|
filesModified: 0,
|
|
148
286
|
commandsExecuted: 0,
|
|
149
|
-
lastLogSnippet:
|
|
150
|
-
}
|
|
287
|
+
lastLogSnippet: `scout: paired with FrontTerrain One (${pairingCode})`,
|
|
288
|
+
};
|
|
289
|
+
writeTelemetry(initialTelemetry);
|
|
290
|
+
await pushTelemetryToCloud(sessionId, initialTelemetry);
|
|
151
291
|
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
152
292
|
res.end(JSON.stringify({
|
|
153
293
|
success: true,
|
|
@@ -210,7 +350,7 @@ export async function startQrPairingSession() {
|
|
|
210
350
|
s.stop(chalk.red('Failed to start QR bridge listener.'));
|
|
211
351
|
reject(err);
|
|
212
352
|
});
|
|
213
|
-
server.listen(BRIDGE_PORT, () => { });
|
|
353
|
+
server.listen(BRIDGE_PORT, '0.0.0.0', () => { });
|
|
214
354
|
});
|
|
215
355
|
}
|
|
216
356
|
//# sourceMappingURL=qrBridge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qrBridge.js","sourceRoot":"","sources":["qrBridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"qrBridge.js","sourceRoot":"","sources":["qrBridge.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAC;AACzB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAqC,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;AAsB9E;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,GAAW;IAC5D,MAAM,OAAO,GAAG;QACZ,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;QAChD,gDAAgD;KACnD,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AAEH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAiB,EAAE,SAAc;IACxE,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,gDAAgD,mBAAmB,iDAAiD,kBAAkB,CAAC,SAAS,CAAC,QAAQ,gBAAgB,EAAE,CAAC;QACxL,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACjD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5D,CAAC;iBAAM,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;YACxC,CAAC;iBAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,CAAC;QACL,CAAC;QACD,MAAM,CAAC,QAAQ,GAAG,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAE5D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YACzB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;SAC5B,CAAC,CAAC;QACH,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,GAAG,CAAC,EAAE,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAwC;IACnE,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,OAAO,GAAQ,EAAE,CAAC;QACtB,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACpF,CAAC;QACD,MAAM,OAAO,GAAG;YACZ,GAAG,OAAO;YACV,GAAG,SAAS;YACZ,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;QACF,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;QACtD,IAAI,MAAM,EAAE,CAAC;YACT,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,OAAO,MAAM,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACjG,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC;IAExB,IAAI,OAAO,GAAG,WAAW,CAAC;IAC1B,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACzC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;oBACtB,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,MAAM,QAAQ,GAAG,+BAA+B,SAAS,SAAS,WAAW,SAAS,QAAQ,OAAO,OAAO,SAAS,WAAW,MAAM,OAAO,EAAE,CAAC;IAEhJ,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC,CAAC;IAChG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC,CAAC;IAChG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC,CAAC;IAChG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;IAClG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC,CAAC;IAC7I,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAEtE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,MAAmB,CAAC;QACxB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,iBAAiB,GAA0B,IAAI,CAAC;QAEpD,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,IAAI,iBAAiB,EAAE,CAAC;gBACpB,aAAa,CAAC,iBAAiB,CAAC,CAAC;gBACjC,iBAAiB,GAAG,IAAI,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC;gBAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACpC,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,CAAC,UAAsB,EAAE,EAAE;YACjD,IAAI,UAAU;gBAAE,OAAO;YACvB,UAAU,GAAG,IAAI,CAAC;YAClB,OAAO,EAAE,CAAC;YAEV,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC;YAC1B,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,IAAI,WAAW,CAAC;YAC3C,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,IAAI,6BAA6B,CAAC;YAC/D,MAAM,WAAW,GAAG,CAAC,UAAU,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAEpE,QAAQ,CACJ,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAwB,GAAG,WAAW,GAAG,GAAG,CAAC,MAAM;gBACjE,WAAW,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,IAAI;gBAC5E,YAAY,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI;gBACxC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,SAAS,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;gBAC1C,mBAAmB,KAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,EAAE,EAC3F,+BAA+B,CAClC,CAAC;YAEF,OAAO,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC,CAAC;QAEF,qGAAqG;QACrG,iBAAiB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACvC,IAAI,UAAU;gBAAE,OAAO;YACvB,IAAI,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC3D,MAAM,GAAG,GAAG,gDAAgD,mBAAmB,iDAAiD,kBAAkB,CAAC,SAAS,CAAC,QAAQ,gBAAgB,EAAE,CAAC;gBACxL,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5D,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACT,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC3B,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAChF,IAAI,QAAQ,GAAG,uBAAuB,CAAC;wBACvC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,WAAW,IAAI,MAAM,CAAC,SAAS,EAAE,WAAW,IAAI,6BAA6B,CAAC;wBAC5G,IAAI,QAAQ,GAAG,gBAAgB,CAAC;wBAChC,IAAI,MAAM,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC9C,IAAI,QAAQ,GAAG,KAAK,CAAC;wBAErB,IAAI,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;4BAChC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;4BACvC,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW;gCAAE,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;4BACzD,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW;gCAAE,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;4BAC5D,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW;gCAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;4BACjE,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW;gCAAE,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC;wBACvD,CAAC;wBACD,IAAI,MAAM,CAAC,IAAI,EAAE,WAAW;4BAAE,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;wBAEjE,MAAM,UAAU,GAAe;4BAC3B,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;4BACvE,QAAQ,EAAE,kBAAkB;4BAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,IAAI,qBAAqB;4BAC/D,IAAI,EAAE;gCACF,EAAE,EAAE,MAAM;gCACV,KAAK,EAAE,SAAS;gCAChB,IAAI,EAAE,QAAQ;gCACd,QAAQ;gCACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;6BACtC;4BACD,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACpC,WAAW,EAAE,QAAQ;4BACrB,YAAY,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BAC9C,WAAW,EAAE,CAAC;yBACjB,CAAC;wBAEF,cAAc,CAAC,UAAU,CAAC,CAAC;wBAC3B,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBAClC,CAAC;gBACL,CAAC;YACL,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACd,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC1C,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAClD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC;YACpE,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,6BAA6B,CAAC,CAAC;YAE7E,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC3B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACX,CAAC;YAED,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;YAE9B,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBACvD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;oBACnB,MAAM,EAAE,eAAe;oBACvB,SAAS;oBACT,IAAI,EAAE,WAAW;oBACjB,QAAQ;oBACR,OAAO;iBACV,CAAC,CAAC,CAAC;gBACJ,OAAO;YACX,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3F,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;oBACrB,IAAI,CAAC;wBACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;wBACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;wBACnE,MAAM,IAAI,GAAgB,OAAO,CAAC,IAAI,IAAI;4BACtC,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;4BACpC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,4BAA4B;4BACpD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,uBAAuB;4BAC7C,QAAQ,EAAE,gBAAgB;4BAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBACtC,CAAC;wBAEF,MAAM,UAAU,GAAe;4BAC3B,KAAK;4BACL,QAAQ,EAAE,kBAAkB;4BAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,qBAAqB;4BACnD,IAAI;4BACJ,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACpC,WAAW,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;4BAClC,YAAY,EAAE,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BAClD,WAAW,EAAE,CAAC;yBACjB,CAAC;wBAEF,cAAc,CAAC,UAAU,CAAC,CAAC;wBAE3B,MAAM,gBAAgB,GAAG;4BACrB,SAAS;4BACT,WAAW;4BACX,QAAQ;4BACR,MAAM,EAAE,MAAe;4BACvB,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;4BAC5C,cAAc,EAAE,CAAC;4BACjB,aAAa,EAAE,CAAC;4BAChB,gBAAgB,EAAE,CAAC;4BACnB,cAAc,EAAE,wCAAwC,WAAW,GAAG;yBACzE,CAAC;wBACF,cAAc,CAAC,gBAAgB,CAAC,CAAC;wBACjC,MAAM,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;wBAExD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,uCAAuC;4BAChD,SAAS;yBACZ,CAAC,CAAC,CAAC;wBAEJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;wBACzE,QAAQ,CACJ,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM;4BAC/D,WAAW,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,IAAI;4BAC5E,YAAY,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;4BACvC,SAAS,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI;4BAC7E,mBAAmB,KAAK,CAAC,GAAG,CAAC,+CAA+C,CAAC,EAAE,EAC/E,+BAA+B,CAClC,CAAC;wBAEF,OAAO,EAAE,CAAC;wBACV,OAAO,CAAC,UAAU,CAAC,CAAC;oBACxB,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC;oBACxF,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YAED,IAAI,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC1D,IAAI,gBAAgB,GAAG,EAAE,CAAC;gBAC1B,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC;wBAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;gBAC7F,CAAC;gBACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC1C,OAAO;YACX,CAAC;YAED,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACxD,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACf,IAAI,CAAC;wBACD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;wBAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;wBACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gDAAgD,MAAM,EAAE,CAAC,CAAC,CAAC;wBACvF,cAAc,CAAC;4BACX,cAAc,EAAE,4BAA4B,MAAM,gCAAgC;yBACrF,CAAC,CAAC;wBACH,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;oBACvD,CAAC;oBAAC,MAAM,CAAC;wBACL,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAChD,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YAED,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC5B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ft-scout",
|
|
3
|
-
"version": "9.4.
|
|
3
|
+
"version": "9.4.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "FrontTerrain — The Onboarding Co-Pilot for New Codebases",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"bin": {
|
|
8
|
-
"ft": "bin/ft.js",
|
|
9
8
|
"scout": "bin/ft.js"
|
|
10
9
|
},
|
|
11
10
|
"scripts": {
|
|
@@ -35,11 +34,13 @@
|
|
|
35
34
|
"dependencies": {
|
|
36
35
|
"@clack/prompts": "^1.7.0",
|
|
37
36
|
"@types/nodemailer": "^8.0.2",
|
|
37
|
+
"@types/qrcode": "^1.5.6",
|
|
38
38
|
"chalk": "^6.0.0",
|
|
39
39
|
"commander": "^13.1.0",
|
|
40
40
|
"dotenv": "^17.4.2",
|
|
41
41
|
"nodemailer": "^9.0.4",
|
|
42
42
|
"openai": "^7.1.0",
|
|
43
|
+
"qrcode": "^1.5.4",
|
|
43
44
|
"razorpay": "^2.9.8",
|
|
44
45
|
"simple-git": "^3.36.0"
|
|
45
46
|
},
|
|
@@ -48,4 +49,4 @@
|
|
|
48
49
|
"tsx": "^4.23.1",
|
|
49
50
|
"typescript": "^7.0.2"
|
|
50
51
|
}
|
|
51
|
-
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { getMCPManager } from '../bin/src/mcp/index.js';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
|
|
5
|
+
async function main() {
|
|
6
|
+
const mgr = getMCPManager();
|
|
7
|
+
|
|
8
|
+
const pyCode = `
|
|
9
|
+
import bpy
|
|
10
|
+
import math
|
|
11
|
+
|
|
12
|
+
# 1. Clean up default objects except camera/light
|
|
13
|
+
for obj in list(bpy.data.objects):
|
|
14
|
+
if obj.type == 'MESH':
|
|
15
|
+
bpy.data.objects.remove(obj, do_unlink=True)
|
|
16
|
+
|
|
17
|
+
# Helper to create PBR material
|
|
18
|
+
def make_mat(name, base_color, metallic=0.0, roughness=0.5, emission=None, emission_strength=1.0):
|
|
19
|
+
mat = bpy.data.materials.new(name=name)
|
|
20
|
+
mat.use_nodes = True
|
|
21
|
+
nodes = mat.node_tree.nodes
|
|
22
|
+
bsdf = nodes.get('Principled BSDF')
|
|
23
|
+
if bsdf:
|
|
24
|
+
bsdf.inputs['Base Color'].default_value = base_color
|
|
25
|
+
bsdf.inputs['Metallic'].default_value = metallic
|
|
26
|
+
bsdf.inputs['Roughness'].default_value = roughness
|
|
27
|
+
if emission:
|
|
28
|
+
if 'Emission Color' in bsdf.inputs:
|
|
29
|
+
bsdf.inputs['Emission Color'].default_value = emission
|
|
30
|
+
bsdf.inputs['Emission Strength'].default_value = emission_strength
|
|
31
|
+
elif 'Emission' in bsdf.inputs:
|
|
32
|
+
bsdf.inputs['Emission'].default_value = emission
|
|
33
|
+
if 'Emission Strength' in bsdf.inputs:
|
|
34
|
+
bsdf.inputs['Emission Strength'].default_value = emission_strength
|
|
35
|
+
return mat
|
|
36
|
+
|
|
37
|
+
mat_hull = make_mat('Hull_Obsidian', (0.05, 0.06, 0.08, 1.0), metallic=0.92, roughness=0.22)
|
|
38
|
+
mat_gold = make_mat('Accent_Gold', (0.95, 0.72, 0.18, 1.0), metallic=0.98, roughness=0.18)
|
|
39
|
+
mat_cyan_glow = make_mat('Core_CyanGlow', (0.0, 0.9, 1.0, 1.0), emission=(0.0, 0.9, 1.0, 1.0), emission_strength=12.0)
|
|
40
|
+
mat_plasma = make_mat('Thruster_Plasma', (0.65, 0.1, 1.0, 1.0), emission=(0.65, 0.1, 1.0, 1.0), emission_strength=16.0)
|
|
41
|
+
|
|
42
|
+
# 2. Main Aerodynamic Chassis
|
|
43
|
+
bpy.ops.mesh.primitive_uv_sphere_add(segments=32, ring_count=24, radius=1.0, location=(0, 0, 0))
|
|
44
|
+
body = bpy.context.active_object
|
|
45
|
+
body.name = 'Scout_Chassis'
|
|
46
|
+
body.scale = (1.35, 1.65, 0.62)
|
|
47
|
+
bpy.ops.object.transform_apply(scale=True)
|
|
48
|
+
body.data.materials.append(mat_hull)
|
|
49
|
+
|
|
50
|
+
# 3. Cockpit Sensor Eye (Front Core)
|
|
51
|
+
bpy.ops.mesh.primitive_uv_sphere_add(segments=24, ring_count=16, radius=0.38, location=(0, 1.5, 0.08))
|
|
52
|
+
eye = bpy.context.active_object
|
|
53
|
+
eye.name = 'Scout_SensorEye'
|
|
54
|
+
eye.scale = (1.1, 0.5, 0.6)
|
|
55
|
+
bpy.ops.object.transform_apply(scale=True)
|
|
56
|
+
eye.data.materials.append(mat_cyan_glow)
|
|
57
|
+
|
|
58
|
+
# 4. Center Power Ring
|
|
59
|
+
bpy.ops.mesh.primitive_torus_add(major_radius=0.78, minor_radius=0.08, location=(0, 0, 0.35))
|
|
60
|
+
ring = bpy.context.active_object
|
|
61
|
+
ring.name = 'Scout_PowerRing'
|
|
62
|
+
ring.scale = (1.15, 1.3, 0.8)
|
|
63
|
+
bpy.ops.object.transform_apply(scale=True)
|
|
64
|
+
ring.data.materials.append(mat_gold)
|
|
65
|
+
|
|
66
|
+
# 5. Four Thruster Arms & Turbine Pods
|
|
67
|
+
angles = [45, 135, 225, 315]
|
|
68
|
+
for i, deg in enumerate(angles):
|
|
69
|
+
rad = math.radians(deg)
|
|
70
|
+
arm_x = math.cos(rad) * 1.6
|
|
71
|
+
arm_y = math.sin(rad) * 1.8
|
|
72
|
+
|
|
73
|
+
# Arm strut
|
|
74
|
+
bpy.ops.mesh.primitive_cube_add(size=0.18, location=(arm_x * 0.55, arm_y * 0.55, 0))
|
|
75
|
+
arm = bpy.context.active_object
|
|
76
|
+
arm.name = f'Scout_Arm_{i+1}'
|
|
77
|
+
arm.scale = (2.2, 0.5, 0.4)
|
|
78
|
+
arm.rotation_euler = (0, 0, rad)
|
|
79
|
+
arm.data.materials.append(mat_gold)
|
|
80
|
+
|
|
81
|
+
# Thruster outer nacelle
|
|
82
|
+
bpy.ops.mesh.primitive_cylinder_add(radius=0.45, depth=0.8, location=(arm_x, arm_y, 0))
|
|
83
|
+
thruster = bpy.context.active_object
|
|
84
|
+
thruster.name = f'Scout_Thruster_{i+1}'
|
|
85
|
+
thruster.rotation_euler = (math.radians(15) if arm_y > 0 else math.radians(-15), 0, 0)
|
|
86
|
+
thruster.data.materials.append(mat_hull)
|
|
87
|
+
|
|
88
|
+
# Inner plasma exhaust
|
|
89
|
+
bpy.ops.mesh.primitive_cylinder_add(radius=0.32, depth=0.15, location=(arm_x, arm_y, -0.35))
|
|
90
|
+
plasma = bpy.context.active_object
|
|
91
|
+
plasma.name = f'Scout_Plasma_{i+1}'
|
|
92
|
+
plasma.data.materials.append(mat_plasma)
|
|
93
|
+
|
|
94
|
+
# 6. Twin High-Gain Communication Antennas (Rear)
|
|
95
|
+
for side in [-0.4, 0.4]:
|
|
96
|
+
bpy.ops.mesh.primitive_cylinder_add(radius=0.025, depth=0.9, location=(side, -1.3, 0.5))
|
|
97
|
+
ant = bpy.context.active_object
|
|
98
|
+
ant.name = f'Scout_Antenna_{"L" if side < 0 else "R"}'
|
|
99
|
+
ant.rotation_euler = (math.radians(-25), math.radians(side * 15), 0)
|
|
100
|
+
ant.data.materials.append(mat_gold)
|
|
101
|
+
|
|
102
|
+
# Antenna LED tip
|
|
103
|
+
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.06, location=(side * 1.25, -1.65, 0.9))
|
|
104
|
+
tip = bpy.context.active_object
|
|
105
|
+
tip.name = f'Scout_AntennaTip_{"L" if side < 0 else "R"}'
|
|
106
|
+
tip.data.materials.append(mat_cyan_glow)
|
|
107
|
+
|
|
108
|
+
# Smooth shading across all meshes
|
|
109
|
+
for obj in bpy.data.objects:
|
|
110
|
+
if obj.type == 'MESH':
|
|
111
|
+
for poly in obj.data.polygons:
|
|
112
|
+
poly.use_smooth = True
|
|
113
|
+
|
|
114
|
+
print('SCOUT_3D_DRONE_CREATED_SUCCESSFULLY')
|
|
115
|
+
`;
|
|
116
|
+
|
|
117
|
+
console.log('Sending 3D Model Python code to Blender MCP...');
|
|
118
|
+
const result = await mgr.executeTool('execute_blender_code', {
|
|
119
|
+
code: pyCode,
|
|
120
|
+
user_prompt: 'Generate a 3D Sci-Fi Autonomous Scout Drone model with PBR metallic hull and glowing cyan core'
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
console.log('Status:', result.status);
|
|
124
|
+
console.log('Output Summary:', result.outputSummary);
|
|
125
|
+
if (result.error) {
|
|
126
|
+
console.error('Error:', result.error);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
main().catch(console.error);
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { getMCPManager } from '../bin/src/mcp/index.js';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
|
|
5
|
+
async function main() {
|
|
6
|
+
const mgr = getMCPManager();
|
|
7
|
+
|
|
8
|
+
console.log('1. Querying updated Blender scene...');
|
|
9
|
+
const sceneInfo = await mgr.executeTool('get_scene_info', {});
|
|
10
|
+
console.log('Scene Info:', sceneInfo.result);
|
|
11
|
+
|
|
12
|
+
const artifactsDir = path.resolve('artifacts');
|
|
13
|
+
if (!fs.existsSync(artifactsDir)) {
|
|
14
|
+
fs.mkdirSync(artifactsDir, { recursive: true });
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const glbPath = path.resolve('artifacts', 'scout_drone_3d.glb');
|
|
18
|
+
console.log('\n2. Exporting 3D Drone Scene to GLB at:', glbPath);
|
|
19
|
+
const exportRes = await mgr.executeTool('export_scene', {
|
|
20
|
+
filepath: glbPath,
|
|
21
|
+
format: 'glb',
|
|
22
|
+
apply_modifiers: true,
|
|
23
|
+
user_prompt: 'Export the complete Scout 3D Drone model to GLB format'
|
|
24
|
+
});
|
|
25
|
+
console.log('Export Result:', exportRes.outputSummary);
|
|
26
|
+
|
|
27
|
+
console.log('\n3. Capturing Viewport Screenshot from Blender...');
|
|
28
|
+
const shotRes = await mgr.executeTool('get_viewport_screenshot', {
|
|
29
|
+
user_prompt: 'Capture high-res viewport screenshot of Scout 3D Drone'
|
|
30
|
+
});
|
|
31
|
+
console.log('Screenshot Status:', shotRes.status);
|
|
32
|
+
if (shotRes.result) {
|
|
33
|
+
try {
|
|
34
|
+
const parsed = typeof shotRes.result === 'string' ? JSON.parse(shotRes.result) : shotRes.result;
|
|
35
|
+
if (parsed && parsed.image_base64) {
|
|
36
|
+
const imgPath = path.resolve('artifacts', 'scout_drone_3d_render.png');
|
|
37
|
+
fs.writeFileSync(imgPath, Buffer.from(parsed.image_base64, 'base64'));
|
|
38
|
+
console.log('Saved 3D render to:', imgPath);
|
|
39
|
+
}
|
|
40
|
+
} catch (e) {
|
|
41
|
+
console.log('Screenshot raw result snippet:', String(shotRes.result).slice(0, 200));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
console.log('\nAll 3D modeling and export steps complete!');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
main().catch(console.error);
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { getMCPManager } from '../bin/src/mcp/index.js';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
|
|
5
|
+
async function main() {
|
|
6
|
+
const mgr = getMCPManager();
|
|
7
|
+
|
|
8
|
+
const artifactsDir = path.resolve('artifacts');
|
|
9
|
+
if (!fs.existsSync(artifactsDir)) {
|
|
10
|
+
fs.mkdirSync(artifactsDir, { recursive: true });
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const glbPath = path.resolve(artifactsDir, 'scout_drone_3d.glb').replace(/\\/g, '/');
|
|
14
|
+
const renderPath = path.resolve(artifactsDir, 'scout_drone_3d_render.png').replace(/\\/g, '/');
|
|
15
|
+
|
|
16
|
+
const pyCode = `
|
|
17
|
+
import bpy
|
|
18
|
+
import math
|
|
19
|
+
|
|
20
|
+
# 1. Setup Camera for dramatic isometric perspective
|
|
21
|
+
cam = bpy.data.objects.get('Camera')
|
|
22
|
+
if not cam:
|
|
23
|
+
bpy.ops.object.camera_add(location=(4.5, -4.5, 3.2))
|
|
24
|
+
cam = bpy.context.active_object
|
|
25
|
+
else:
|
|
26
|
+
cam.location = (4.5, -4.5, 3.2)
|
|
27
|
+
|
|
28
|
+
# Point camera at drone center (0, 0, 0.2)
|
|
29
|
+
cam.rotation_euler = (math.radians(62), 0, math.radians(45))
|
|
30
|
+
bpy.context.scene.camera = cam
|
|
31
|
+
|
|
32
|
+
# 2. Studio Lighting Setup
|
|
33
|
+
# Key Light (Warm gold rim)
|
|
34
|
+
light_key = bpy.data.objects.get('Light')
|
|
35
|
+
if not light_key:
|
|
36
|
+
bpy.ops.object.light_add(type='POINT', location=(3.5, 2.5, 4.0))
|
|
37
|
+
light_key = bpy.context.active_object
|
|
38
|
+
light_key.location = (3.5, 2.5, 4.0)
|
|
39
|
+
light_key.data.energy = 800
|
|
40
|
+
light_key.data.color = (1.0, 0.85, 0.6)
|
|
41
|
+
|
|
42
|
+
# Fill Light (Cool cyan accent)
|
|
43
|
+
bpy.ops.object.light_add(type='POINT', location=(-3.5, -2.5, 2.5))
|
|
44
|
+
light_fill = bpy.context.active_object
|
|
45
|
+
light_fill.name = 'Light_Fill'
|
|
46
|
+
light_fill.data.energy = 500
|
|
47
|
+
light_fill.data.color = (0.2, 0.8, 1.0)
|
|
48
|
+
|
|
49
|
+
# Underglow Rim Light (Purple/Violet rim)
|
|
50
|
+
bpy.ops.object.light_add(type='POINT', location=(0, 0, -2.0))
|
|
51
|
+
light_under = bpy.context.active_object
|
|
52
|
+
light_under.name = 'Light_Underglow'
|
|
53
|
+
light_under.data.energy = 400
|
|
54
|
+
light_under.data.color = (0.7, 0.2, 1.0)
|
|
55
|
+
|
|
56
|
+
# 3. Export to GLB
|
|
57
|
+
bpy.ops.export_scene.gltf(
|
|
58
|
+
filepath='${glbPath}',
|
|
59
|
+
export_format='GLB',
|
|
60
|
+
use_selection=False,
|
|
61
|
+
export_apply=True
|
|
62
|
+
)
|
|
63
|
+
print('EXPORTED_GLB_TO: ${glbPath}')
|
|
64
|
+
|
|
65
|
+
# 4. Render Still Screenshot to PNG
|
|
66
|
+
bpy.context.scene.render.resolution_x = 1280
|
|
67
|
+
bpy.context.scene.render.resolution_y = 720
|
|
68
|
+
bpy.context.scene.render.image_settings.file_format = 'PNG'
|
|
69
|
+
bpy.context.scene.render.filepath = '${renderPath}'
|
|
70
|
+
bpy.ops.render.render(write_still=True)
|
|
71
|
+
print('RENDERED_PNG_TO: ${renderPath}')
|
|
72
|
+
`;
|
|
73
|
+
|
|
74
|
+
console.log('Running GLB Export and Camera Render in Blender via MCP...');
|
|
75
|
+
const result = await mgr.executeTool('execute_blender_code', {
|
|
76
|
+
code: pyCode,
|
|
77
|
+
user_prompt: 'Export 3D Scout Drone to GLB and render studio PNG image'
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
console.log('Result Status:', result.status);
|
|
81
|
+
console.log('Result Output:', result.outputSummary);
|
|
82
|
+
|
|
83
|
+
if (fs.existsSync(glbPath)) {
|
|
84
|
+
const stats = fs.statSync(glbPath);
|
|
85
|
+
console.log(`\n Verified GLB file: ${glbPath} (${stats.size} bytes)`);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (fs.existsSync(renderPath)) {
|
|
89
|
+
const stats = fs.statSync(renderPath);
|
|
90
|
+
console.log(` Verified Render Image: ${renderPath} (${stats.size} bytes)`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
main().catch(console.error);
|