ft-scout 8.0.6 → 8.0.7

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.
@@ -1,7 +1,7 @@
1
1
  ScoutFavicon.png,1786186569805,41a9ca9abf7acd2976e78c72a72285b49cc0e64b2b5eeb2c2b88c69628fc618a
2
- paid_plans.html,1789132656546,bf2dad9fa5d7aeceec701ec6389a659e95fc05d2ae60d24882d0da9b29f685c3
3
- web_cli.html,1789132656547,e994859857778f34cbc8ea60f7ef0d762468f1b769ee80eac69b265b26835b31
4
- styles.css,1789132656551,628bc7306af3408766cde697193c3daa9f6cef42f6ae7f6e588b74cb3dee81a9
5
- authentication.html,1789132656546,682360c723f374e1af4a24c263faa94c8d81ad864602ab1ffdeb4f510810002a
6
- index.html,1789132656544,522aaf0f8dc8ee1d9f8e8f33db9af58914823c743f493e6cc62a8a1af13963d9
7
- app.js,1789132656543,fceed113b05d7c7c95661a79e0ad7fbf14ad68e59996461ff4032bf2f15cebd0
2
+ paid_plans.html,1789133940002,4575f51ff7a5d36601fe9a1aa2f0e164d1621daa4befca152c97338ef6b802b3
3
+ styles.css,1789133940010,802a23ff4b01e6897011490ebe76ad7943e2ec4e7a0e0d31a0fb8277ece237ee
4
+ authentication.html,1789133940013,8c072cd5ef13845d7eea447685fc4cf1ca5c34ff1e8b8ebf1ae2b9e69c6c8b8c
5
+ web_cli.html,1789133940010,1257e1531714ba94225ad9d61fd469ba3c224052b16b2f15a93be930712e09f2
6
+ index.html,1789133940012,2ebcbf5fffc488928cef4ed75745a81314776e005560e33c3870bb4d14068c61
7
+ app.js,1789133940005,ff780163c1af103d5c054e226db5bee558df5e08d8684b97ae9dcfaf8f94a1d0
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # scout (FrontTerrain CLI v8.0.6)
1
+ # scout (FrontTerrain CLI v8.0.7)
2
2
 
3
3
  **FrontTerrain (`scout`)** — The Autonomous AI Principal Software Engineer & Codebase Co-Pilot in your terminal.
4
4
 
@@ -186,7 +186,7 @@ Inside an active `scout agent` interactive session, type any slash command to tr
186
186
 
187
187
  ---
188
188
 
189
- ## What's New in v8.0.6
189
+ ## What's New in v8.0.7
190
190
 
191
191
  - **Real-Time Live Screen Sharing Engine**: Replaced static disk screenshots with in-memory video streaming directly to vision models. Zero disk writes, zero garbage files.
192
192
  - **Target App Window Isolation**: Selectively captures and streams ONLY the active application window the agent is working in (e.g., Chrome) instead of leaking the entire desktop.
@@ -7,7 +7,7 @@ export async function handleDashboard(options) {
7
7
  try {
8
8
  const authConfig = loadAuthConfig();
9
9
  const { url: localSyncUrl } = await startDashboardServer(options?.port || 9120);
10
- const webDashboardUrl = process.env.FRONTTERRAIN_DASHBOARD_URL || 'https://scout.frontterrain.com';
10
+ const webDashboardUrl = process.env.FRONTTERRAIN_DASHBOARD_URL || localSyncUrl;
11
11
  const authStatusStr = authConfig.user
12
12
  ? `${chalk.green(' Authenticated')} as ${chalk.bold.cyan(authConfig.user.name)} (${authConfig.user.email})`
13
13
  : `${chalk.yellow(' Not Logged In')} — Manage sessions & tokens via web auth portal`;
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA2C;IAC7E,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;QAChF,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,gCAAgC,CAAC;QAEnG,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI;YACjC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG;YAC3G,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,iDAAiD,CAAC;QAEzF,QAAQ,CACJ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,2CAA2C,CAAC,MAAM;YACrE,eAAe,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI;YAC7D,mBAAmB,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI;YAC9C,gBAAgB,aAAa,IAAI;YACjC,iBAAiB,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM;YACnD,aAAa;YACb,MAAM,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,gCAAgC;YACnE,MAAM,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,sCAAsC;YAC9E,MAAM,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,MAAM;YAC1D,GAAG,KAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC,EAAE,EAClE,mCAAmC,CACtC,CAAC;QAEF,IAAI,OAAO,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,OAAO,GACT,OAAO,CAAC,QAAQ,KAAK,OAAO;gBACxB,CAAC,CAAC,aAAa,eAAe,GAAG;gBACjC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ;oBAC3B,CAAC,CAAC,SAAS,eAAe,GAAG;oBAC7B,CAAC,CAAC,aAAa,eAAe,GAAG,CAAC;YAC9C,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAClB,IAAI,GAAG,EAAE,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,eAAe,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA2C;IAC7E,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;QAChF,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,YAAY,CAAC;QAE/E,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI;YACjC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG;YAC3G,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,iDAAiD,CAAC;QAEzF,QAAQ,CACJ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,2CAA2C,CAAC,MAAM;YACrE,eAAe,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI;YAC7D,mBAAmB,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI;YAC9C,gBAAgB,aAAa,IAAI;YACjC,iBAAiB,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM;YACnD,aAAa;YACb,MAAM,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,gCAAgC;YACnE,MAAM,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,sCAAsC;YAC9E,MAAM,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,MAAM;YAC1D,GAAG,KAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC,EAAE,EAClE,mCAAmC,CACtC,CAAC;QAEF,IAAI,OAAO,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,OAAO,GACT,OAAO,CAAC,QAAQ,KAAK,OAAO;gBACxB,CAAC,CAAC,aAAa,eAAe,GAAG;gBACjC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ;oBAC3B,CAAC,CAAC,SAAS,eAAe,GAAG;oBAC7B,CAAC,CAAC,aAAa,eAAe,GAAG,CAAC;YAC9C,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAClB,IAAI,GAAG,EAAE,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,eAAe,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;AACL,CAAC"}
package/bin/src/index.js CHANGED
@@ -33,13 +33,13 @@ program
33
33
  .name('scout')
34
34
  .alias('ft')
35
35
  .description('FrontTerrain — The Onboarding Co-Pilot for New Codebases')
36
- .version('8.0.6');
36
+ .version('8.0.7');
37
37
  // Header UI on execution with FrontTerrain proprietary logo & version auto-checker
38
38
  program.hook('preAction', async (_thisCommand, actionCommand) => {
39
- intro(renderBranding('8.0.6'));
39
+ intro(renderBranding('8.0.7'));
40
40
  const cmdName = actionCommand ? actionCommand.name() : '';
41
41
  if (cmdName !== 'upgrade') {
42
- await checkForUpdates('8.0.6');
42
+ await checkForUpdates('8.0.7');
43
43
  }
44
44
  // Auth Guard: enforce authentication for all commands except login, signup, upgrade, help, dashboard, auth, status, plan
45
45
  const EXEMPT_COMMANDS = ['login', 'signin', 'signup', 'register', 'upgrade', 'help', 'dashboard', 'web-ui', 'gui', 'auth', 'status', 'quota', 'usage', 'credits', 'plan', 'pricing', 'subscribe'];
@@ -235,7 +235,7 @@ program
235
235
  .command('upgrade')
236
236
  .description('Check for updates and auto-upgrade Scout to the latest version')
237
237
  .action(async () => {
238
- await checkForUpdates('8.0.6', true);
238
+ await checkForUpdates('8.0.7', true);
239
239
  outro(chalk.cyan('Upgrade check complete.'));
240
240
  });
241
241
  program
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAwDxB,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,MAAqB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAsS/G"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AA4DxB,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,MAAqB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA+S/G"}
@@ -6,6 +6,7 @@ import { fileURLToPath } from 'url';
6
6
  import { loadAuthConfig, saveAuthConfig, clearAuthConfig, isLoggedIn } from '../utils/auth.js';
7
7
  import { getPublicPaymentConfig, createCheckoutSession, verifyAndApplyUpgrade } from '../utils/payment.js';
8
8
  import { createRazorpayOrder, verifyRazorpaySignature, getRazorpayKeyId } from '../utils/razorpay.js';
9
+ import dotenv from 'dotenv';
9
10
  const DEFAULT_PORT = 9120;
10
11
  function getPackageRoot() {
11
12
  let currentDir = path.dirname(fileURLToPath(import.meta.url));
@@ -17,6 +18,8 @@ function getPackageRoot() {
17
18
  }
18
19
  return process.cwd();
19
20
  }
21
+ dotenv.config({ path: path.join(getPackageRoot(), '.env') });
22
+ dotenv.config();
20
23
  function getWebDir() {
21
24
  const pkgRoot = getPackageRoot();
22
25
  const possiblePaths = [
@@ -56,7 +59,7 @@ export function startDashboardServer(port = DEFAULT_PORT) {
56
59
  res.setHeader('Access-Control-Allow-Origin', '*');
57
60
  res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
58
61
  res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
59
- res.setHeader('Content-Security-Policy', "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdnjs.cloudflare.com https://www.paypal.com https://apis.google.com https://static.cloudflareinsights.com https://checkout.razorpay.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://cdnjs.cloudflare.com; font-src 'self' https://fonts.gstatic.com https://cdnjs.cloudflare.com data:; img-src 'self' data: blob: https: https://*.paypalobjects.com https://cdn.razorpay.com; connect-src 'self' http://localhost:* http://127.0.0.1:* https://localhost:* https://identitytoolkit.googleapis.com https://securetoken.googleapis.com https://api-m.paypal.com https://api-m.sandbox.paypal.com https://api.razorpay.com https://lumberjack.razorpay.com https://lumberjack-rzp.razorpay.com https://api.openai.com https://api.groq.com https://integrate.api.nvidia.com https://generativelanguage.googleapis.com https://*.firebaseio.com https://*.googleapis.com https://cloudflareinsights.com https://static.cloudflareinsights.com; frame-src 'self' https://www.paypal.com https://www.sandbox.paypal.com https://*.firebaseapp.com https://api.razorpay.com; object-src 'none'; base-uri 'self';");
62
+ res.setHeader('Content-Security-Policy', "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdnjs.cloudflare.com https://www.paypal.com https://apis.google.com https://static.cloudflareinsights.com https://checkout.razorpay.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://cdnjs.cloudflare.com; font-src 'self' https://fonts.gstatic.com https://cdnjs.cloudflare.com data:; img-src 'self' data: blob: https: https://*.paypalobjects.com https://cdn.razorpay.com; connect-src 'self' http://localhost:* http://127.0.0.1:* https://localhost:* https://identitytoolkit.googleapis.com https://securetoken.googleapis.com https://api-m.paypal.com https://api-m.sandbox.paypal.com https://api.razorpay.com https://lumberjack.razorpay.com https://lumberjack-rzp.razorpay.com https://api.openai.com https://api.groq.com https://integrate.api.nvidia.com https://generativelanguage.googleapis.com https://*.firebaseio.com https://*.googleapis.com https://cloudflareinsights.com https://static.cloudflareinsights.com; frame-src 'self' https://www.paypal.com https://www.sandbox.paypal.com https://*.firebaseapp.com https://api.razorpay.com https://checkout.razorpay.com; object-src 'none'; base-uri 'self';");
60
63
  if (req.method === 'OPTIONS') {
61
64
  res.writeHead(204);
62
65
  res.end();
@@ -299,11 +302,23 @@ export function startDashboardServer(port = DEFAULT_PORT) {
299
302
  res.end(JSON.stringify({ error: 'API route not found' }));
300
303
  return;
301
304
  }
302
- // Static File Server
303
- let targetFile = pathname === '/' ? 'index.html' : pathname.replace(/^\//, '');
304
- let filePath = path.join(webDir, targetFile);
305
- if (!fs.existsSync(filePath) || fs.statSync(filePath).isDirectory()) {
306
- filePath = path.join(webDir, 'index.html');
305
+ // Static File Server & Friendly URL Rewrites
306
+ let filePath;
307
+ if (pathname === '/plans' || pathname === '/plans/') {
308
+ filePath = path.join(webDir, 'paid_plans.html');
309
+ }
310
+ else if (pathname === '/auth' || pathname === '/auth/') {
311
+ filePath = path.join(webDir, 'authentication.html');
312
+ }
313
+ else if (pathname === '/cli' || pathname === '/cli/') {
314
+ filePath = path.join(webDir, 'web_cli.html');
315
+ }
316
+ else {
317
+ let targetFile = pathname === '/' ? 'index.html' : pathname.replace(/^\//, '');
318
+ filePath = path.join(webDir, targetFile);
319
+ if (!fs.existsSync(filePath) || fs.statSync(filePath).isDirectory()) {
320
+ filePath = path.join(webDir, 'index.html');
321
+ }
307
322
  }
308
323
  try {
309
324
  const content = fs.readFileSync(filePath);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC3G,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,SAAS,cAAc;IACnB,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,OAAO,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;YACpH,OAAO,UAAU,CAAC;QACtB,CAAC;QACD,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,SAAS,SAAS;IACd,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,aAAa,GAAG;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC;QACvE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC;KAClC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;YAChE,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,QAAQ,GAAG,EAAE,CAAC;QACV,KAAK,OAAO,EAAE,OAAO,0BAA0B,CAAC;QAChD,KAAK,MAAM,EAAE,OAAO,yBAAyB,CAAC;QAC9C,KAAK,KAAK,EAAE,OAAO,uCAAuC,CAAC;QAC3D,KAAK,OAAO,EAAE,OAAO,iCAAiC,CAAC;QACvD,KAAK,MAAM,EAAE,OAAO,WAAW,CAAC;QAChC,KAAK,MAAM,CAAC;QAAC,KAAK,OAAO,EAAE,OAAO,YAAY,CAAC;QAC/C,KAAK,MAAM,EAAE,OAAO,eAAe,CAAC;QACpC,KAAK,MAAM,EAAE,OAAO,cAAc,CAAC;QACnC,SAAS,OAAO,2BAA2B,CAAC;IAChD,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAI,GAAW,YAAY;IAC5D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAChD,oDAAoD;YACpD,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;YAC7E,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,krCAAkrC,CAAC,CAAC;YAE7tC,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;YAC9B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YAEpC,gBAAgB;YAChB,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;gBAEjE,0CAA0C;gBAC1C,IAAI,QAAQ,KAAK,aAAa,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;oBACrD,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;oBACpC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;oBAC3E,IAAI,UAAU,GAAG,IAAI,CAAC;oBACtB,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;wBAChC,IAAI,CAAC;4BACD,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;wBACtE,CAAC;wBAAC,MAAM,CAAC,CAAC,CAAC;oBACf,CAAC;oBAED,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;wBACnB,MAAM,EAAE,IAAI;wBACZ,eAAe,EAAE,IAAI;wBACrB,UAAU,EAAE,UAAU,EAAE;wBACxB,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;wBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;wBACtC,UAAU;qBACb,CAAC,CAAC,CAAC;oBACJ,OAAO;gBACX,CAAC;gBAED,qEAAqE;gBACrE,IAAI,QAAQ,KAAK,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACzD,IAAI,IAAI,GAAG,EAAE,CAAC;oBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;oBACvC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;wBACf,IAAI,CAAC;4BACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC9B,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;4BAClC,MAAM,OAAO,GAAG;gCACZ,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK;gCACnC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY;gCACxD,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI;gCAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,qBAAqB;gCACrE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,UAAU;gCAC1D,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gCACpC,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC;gCAClG,YAAY,EAAE,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,GAAG,CAAC;gCACxG,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,IAAI,MAAM;gCAC/D,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;gCACzC,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW;gCAC5F,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,iBAAiB,IAAI,QAAQ;gCACnF,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY;gCACzF,aAAa,EAAE,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa;6BAChG,CAAC;4BACF,cAAc,CAAC,OAAO,CAAC,CAAC;4BACxB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;wBAC9D,CAAC;wBAAC,OAAO,GAAQ,EAAE,CAAC;4BAChB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC;wBACtF,CAAC;oBACL,CAAC,CAAC,CAAC;oBACH,OAAO;gBACX,CAAC;gBAED,uCAAuC;gBACvC,IAAI,QAAQ,KAAK,aAAa,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtD,eAAe,EAAE,CAAC;oBAClB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC3C,OAAO;gBACX,CAAC;gBAED,yEAAyE;gBACzE,IAAI,QAAQ,KAAK,qBAAqB,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;oBAC7D,MAAM,aAAa,GAAG,sBAAsB,EAAE,CAAC;oBAC/C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC;oBAC7D,OAAO;gBACX,CAAC;gBAED,+DAA+D;gBAC/D,IAAI,QAAQ,KAAK,8BAA8B,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACvE,IAAI,IAAI,GAAG,EAAE,CAAC;oBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;oBACvC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;wBACrB,IAAI,CAAC;4BACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC9B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;4BAC9B,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC;gCACzC,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,YAAY,EAAE,IAAI,CAAC,YAAY;gCAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gCACzB,SAAS,EAAE,IAAI,CAAC,SAAS;gCACzB,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK;6BAC5C,CAAC,CAAC;4BACH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACtC,CAAC;wBAAC,OAAO,GAAQ,EAAE,CAAC;4BAChB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,mCAAmC,EAAE,CAAC,CAAC,CAAC;wBAC3G,CAAC;oBACL,CAAC,CAAC,CAAC;oBACH,OAAO;gBACX,CAAC;gBAED,gFAAgF;gBAChF,IAAI,QAAQ,KAAK,qBAAqB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC9D,IAAI,IAAI,GAAG,EAAE,CAAC;oBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;oBACvC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;wBACrB,IAAI,CAAC;4BACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC9B,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;gCACvC,SAAS,EAAE,IAAI,CAAC,SAAS;gCACzB,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gCACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,YAAY,EAAE,IAAI,CAAC,YAAY;6BAClC,CAAC,CAAC;4BACH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;wBACpC,CAAC;wBAAC,OAAO,GAAQ,EAAE,CAAC;4BAChB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,6BAA6B,EAAE,CAAC,CAAC,CAAC;wBACrG,CAAC;oBACL,CAAC,CAAC,CAAC;oBACH,OAAO;gBACX,CAAC;gBAED,2DAA2D;gBAC3D,IAAI,CAAC,QAAQ,KAAK,sBAAsB,IAAI,QAAQ,KAAK,sBAAsB,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;oBACvG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,gBAAgB,EAAE;wBAC1B,QAAQ,EAAE,KAAK;qBAClB,CAAC,CAAC,CAAC;oBACJ,OAAO;gBACX,CAAC;gBAED,yDAAyD;gBACzD,IAAI,CAAC,QAAQ,KAAK,mBAAmB,IAAI,QAAQ,KAAK,4BAA4B,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC3G,IAAI,IAAI,GAAG,EAAE,CAAC;oBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;oBACvC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;wBACrB,IAAI,CAAC;4BACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;4BACtC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC;gCACpC,MAAM,EAAE,IAAI,CAAC,MAAM;gCACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gCACvB,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,KAAK,EAAE,IAAI,CAAC,KAAK;6BACpB,CAAC,CAAC;4BACH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBACnC,CAAC;wBAAC,OAAO,GAAQ,EAAE,CAAC;4BAChB,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC;4BACrC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4BACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gCACnB,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,iCAAiC;gCACvD,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,oBAAoB,CAAC;6BACtG,CAAC,CAAC,CAAC;wBACR,CAAC;oBACL,CAAC,CAAC,CAAC;oBACH,OAAO;gBACX,CAAC;gBAED,uEAAuE;gBACvE,IAAI,CAAC,QAAQ,KAAK,qBAAqB,IAAI,QAAQ,KAAK,8BAA8B,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC/G,IAAI,IAAI,GAAG,EAAE,CAAC;oBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;oBACvC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;wBACf,IAAI,CAAC;4BACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;4BACtC,MAAM,MAAM,GAAG,uBAAuB,CAAC;gCACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB;gCACjD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB;gCACvD,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB;gCACpD,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,SAAS,EAAE,IAAI,CAAC,SAAS;6BAC5B,CAAC,CAAC;4BACH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;wBACpC,CAAC;wBAAC,OAAO,GAAQ,EAAE,CAAC;4BAChB,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC;4BACrC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4BACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gCACnB,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,6BAA6B;6BACtD,CAAC,CAAC,CAAC;wBACR,CAAC;oBACL,CAAC,CAAC,CAAC;oBACH,OAAO;gBACX,CAAC;gBAED,wDAAwD;gBACxD,IAAI,QAAQ,KAAK,eAAe,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACxD,IAAI,IAAI,GAAG,EAAE,CAAC;oBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;oBACvC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;wBACf,IAAI,CAAC;4BACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;4BACjC,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;4BAExD,IAAI,CAAC,OAAO,EAAE,CAAC;gCACX,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gCACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;gCAC9D,OAAO;4BACX,CAAC;4BAED,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;4BACjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;4BACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;4BAEjE,IAAI,OAAe,CAAC;4BACpB,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gCAC3B,OAAO,GAAG,SAAS,SAAS,KAAK,OAAO,EAAE,CAAC;4BAC/C,CAAC;iCAAM,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gCACpC,OAAO,GAAG,YAAY,WAAW,KAAK,OAAO,EAAE,CAAC;4BACpD,CAAC;iCAAM,CAAC;gCACJ,OAAO,GAAG,MAAM,OAAO,EAAE,CAAC;4BAC9B,CAAC;4BAED,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;gCAC1D,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gCAC/C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gCACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,IAAI,gCAAgC,EAAE,CAAC,CAAC,CAAC;4BACnG,CAAC,CAAC,CAAC;wBACP,CAAC;wBAAC,OAAO,GAAQ,EAAE,CAAC;4BAChB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC;wBACzE,CAAC;oBACL,CAAC,CAAC,CAAC;oBACH,OAAO;gBACX,CAAC;gBAED,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;gBAC1D,OAAO;YACX,CAAC;YAED,6CAA6C;YAC7C,IAAI,QAAgB,CAAC;YACrB,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAClD,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACvD,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACrD,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACJ,IAAI,UAAU,GAAG,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC/E,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAEzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;oBAClE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC1C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC9D,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC5B,oBAAoB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACrB,MAAM,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAC;YACvC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import chalk from 'chalk';
2
- export function renderBranding(version = '8.0.6') {
2
+ export function renderBranding(version = '8.0.7') {
3
3
  const logo = chalk.cyan.bold(' ███████╗████████╗') + ' ' + chalk.cyan.bold('███████╗ ██████╗ ██████╗ ██╗ ██╗████████╗') + '\n' +
4
4
  chalk.cyan.bold(' ██╔════╝╚══██╔══╝') + ' ' + chalk.cyan.bold('██╔════╝ ██╔════╝██╔═══██╗ ██║ ██║╚══██╔══╝') + '\n' +
5
5
  chalk.cyan.bold(' █████╗ ██║ ') + ' ' + chalk.cyan.bold(' ███████╗ ██║ ██║ ██║ ██║ ██║ ██║ ') + '\n' +
@@ -0,0 +1,103 @@
1
+ [debug] [2026-09-11T13:38:39.856Z] ----------------------------------------------------------------------
2
+ [debug] [2026-09-11T13:38:39.860Z] Command: C:\Program Files\nodejs\node.exe C:\Users\rishi\AppData\Roaming\npm\node_modules\firebase-tools\lib\bin\firebase.js deploy --only hosting
3
+ [debug] [2026-09-11T13:38:39.860Z] CLI Version: 15.30.0
4
+ [debug] [2026-09-11T13:38:39.860Z] Platform: win32
5
+ [debug] [2026-09-11T13:38:39.861Z] Node Version: v22.20.0
6
+ [debug] [2026-09-11T13:38:39.861Z] Detected Agent: unknown
7
+ [debug] [2026-09-11T13:38:39.861Z] Time: Fri Sep 11 2026 19:08:39 GMT+0530 (India Standard Time)
8
+ [debug] [2026-09-11T13:38:39.861Z] ----------------------------------------------------------------------
9
+ [debug]
10
+ [debug] [2026-09-11T13:38:44.368Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
11
+ [debug] [2026-09-11T13:38:44.369Z] > authorizing via signed-in user (rishishandilya40@gmail.com)
12
+ [debug] [2026-09-11T13:38:44.369Z] [iam] checking project frontterrain for permissions ["firebase.projects.get","firebasehosting.sites.update"]
13
+ [debug] [2026-09-11T13:38:44.390Z] Checked if tokens are valid: true, expires at: 1789136234965
14
+ [debug] [2026-09-11T13:38:44.391Z] Checked if tokens are valid: true, expires at: 1789136234965
15
+ [debug] [2026-09-11T13:38:44.392Z] >>> [apiv2][query] POST https://cloudresourcemanager.googleapis.com/v1/projects/frontterrain:testIamPermissions [none]
16
+ [debug] [2026-09-11T13:38:44.393Z] >>> [apiv2][(partial)header] POST https://cloudresourcemanager.googleapis.com/v1/projects/frontterrain:testIamPermissions x-goog-user-project=frontterrain
17
+ [debug] [2026-09-11T13:38:44.393Z] >>> [apiv2][body] POST https://cloudresourcemanager.googleapis.com/v1/projects/frontterrain:testIamPermissions {"permissions":["firebase.projects.get","firebasehosting.sites.update"]}
18
+ [debug] [2026-09-11T13:39:05.264Z] ----------------------------------------------------------------------
19
+ [debug] [2026-09-11T13:39:05.268Z] Command: C:\Program Files\nodejs\node.exe C:\Users\rishi\AppData\Roaming\npm\node_modules\firebase-tools\lib\bin\firebase.js deploy --only hosting
20
+ [debug] [2026-09-11T13:39:05.269Z] CLI Version: 15.30.0
21
+ [debug] [2026-09-11T13:39:05.269Z] Platform: win32
22
+ [debug] [2026-09-11T13:39:05.269Z] Node Version: v22.20.0
23
+ [debug] [2026-09-11T13:39:05.270Z] Detected Agent: unknown
24
+ [debug] [2026-09-11T13:39:05.270Z] Time: Fri Sep 11 2026 19:09:05 GMT+0530 (India Standard Time)
25
+ [debug] [2026-09-11T13:39:05.270Z] ----------------------------------------------------------------------
26
+ [debug]
27
+ [debug] [2026-09-11T13:39:08.785Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
28
+ [debug] [2026-09-11T13:39:08.786Z] > authorizing via signed-in user (rishishandilya40@gmail.com)
29
+ [debug] [2026-09-11T13:39:08.786Z] [iam] checking project frontterrain for permissions ["firebase.projects.get","firebasehosting.sites.update"]
30
+ [debug] [2026-09-11T13:39:08.804Z] Checked if tokens are valid: true, expires at: 1789136234965
31
+ [debug] [2026-09-11T13:39:08.804Z] Checked if tokens are valid: true, expires at: 1789136234965
32
+ [debug] [2026-09-11T13:39:08.807Z] >>> [apiv2][query] POST https://cloudresourcemanager.googleapis.com/v1/projects/frontterrain:testIamPermissions [none]
33
+ [debug] [2026-09-11T13:39:08.807Z] >>> [apiv2][(partial)header] POST https://cloudresourcemanager.googleapis.com/v1/projects/frontterrain:testIamPermissions x-goog-user-project=frontterrain
34
+ [debug] [2026-09-11T13:39:08.808Z] >>> [apiv2][body] POST https://cloudresourcemanager.googleapis.com/v1/projects/frontterrain:testIamPermissions {"permissions":["firebase.projects.get","firebasehosting.sites.update"]}
35
+ [debug] [2026-09-11T13:39:10.817Z] <<< [apiv2][status] POST https://cloudresourcemanager.googleapis.com/v1/projects/frontterrain:testIamPermissions 200
36
+ [debug] [2026-09-11T13:39:10.817Z] <<< [apiv2][body] POST https://cloudresourcemanager.googleapis.com/v1/projects/frontterrain:testIamPermissions {"permissions":["firebase.projects.get","firebasehosting.sites.update"]}
37
+ [debug] [2026-09-11T13:39:10.818Z] Checked if tokens are valid: true, expires at: 1789136234965
38
+ [debug] [2026-09-11T13:39:10.818Z] Checked if tokens are valid: true, expires at: 1789136234965
39
+ [debug] [2026-09-11T13:39:10.819Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects/frontterrain [none]
40
+ [debug] [2026-09-11T13:39:11.602Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects/frontterrain 200
41
+ [debug] [2026-09-11T13:39:11.602Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects/frontterrain {"projectId":"frontterrain","projectNumber":"443977559241","displayName":"frontterrain","name":"projects/frontterrain","resources":{"hostingSite":"frontterrain","realtimeDatabaseInstance":"frontterrain-default-rtdb"},"state":"ACTIVE","labels":{"firebase":"enabled","firebase/storage-default-bucket":"created","firebaseworkflows/environment":"production"},"etag":"1_78a6722f-2aff-4818-b8b5-030f66204476"}
42
+ [info]
43
+ [info] === Deploying to 'frontterrain'...
44
+ [info]
45
+ [info] i deploying hosting
46
+ [debug] [2026-09-11T13:39:11.607Z] Checked if tokens are valid: true, expires at: 1789136234965
47
+ [debug] [2026-09-11T13:39:11.607Z] Checked if tokens are valid: true, expires at: 1789136234965
48
+ [debug] [2026-09-11T13:39:11.607Z] >>> [apiv2][query] GET https://firebasehosting.googleapis.com/v1beta1/projects/frontterrain/sites/tryscout [none]
49
+ [debug] [2026-09-11T13:39:13.065Z] <<< [apiv2][status] GET https://firebasehosting.googleapis.com/v1beta1/projects/frontterrain/sites/tryscout 200
50
+ [debug] [2026-09-11T13:39:13.065Z] <<< [apiv2][body] GET https://firebasehosting.googleapis.com/v1beta1/projects/frontterrain/sites/tryscout {"name":"projects/frontterrain/sites/tryscout","defaultUrl":"https://tryscout.web.app","type":"USER_SITE"}
51
+ [debug] [2026-09-11T13:39:13.069Z] Checked if tokens are valid: true, expires at: 1789136234965
52
+ [debug] [2026-09-11T13:39:13.069Z] Checked if tokens are valid: true, expires at: 1789136234965
53
+ [debug] [2026-09-11T13:39:13.069Z] >>> [apiv2][query] POST https://firebasehosting.googleapis.com/v1beta1/projects/-/sites/tryscout/versions [none]
54
+ [debug] [2026-09-11T13:39:13.069Z] >>> [apiv2][body] POST https://firebasehosting.googleapis.com/v1beta1/projects/-/sites/tryscout/versions {"status":"CREATED","labels":{"deployment-tool":"cli-firebase"}}
55
+ [debug] [2026-09-11T13:39:14.161Z] <<< [apiv2][status] POST https://firebasehosting.googleapis.com/v1beta1/projects/-/sites/tryscout/versions 200
56
+ [debug] [2026-09-11T13:39:14.161Z] <<< [apiv2][body] POST https://firebasehosting.googleapis.com/v1beta1/projects/-/sites/tryscout/versions {"name":"projects/443977559241/sites/tryscout/versions/4bdc9aa79fd6b3f1","status":"CREATED","config":{},"labels":{"deployment-tool":"cli-firebase"}}
57
+ [info] i hosting[tryscout]: beginning deploy...
58
+ [info] i hosting[tryscout]: found 7 files in web
59
+ [debug] [2026-09-11T13:39:14.179Z] [hosting] uploading with 200 concurrency
60
+ [debug] [2026-09-11T13:39:14.212Z] Checked if tokens are valid: true, expires at: 1789136234965
61
+ [debug] [2026-09-11T13:39:14.213Z] Checked if tokens are valid: true, expires at: 1789136234965
62
+ [debug] [2026-09-11T13:39:14.214Z] [hosting] hash cache [d2Vi] stored for 7 files
63
+ [debug] [2026-09-11T13:39:14.215Z] [hosting][hash queue][FINAL] {"max":26,"min":1,"avg":20.714285714285715,"active":0,"complete":7,"success":7,"errored":0,"retried":0,"total":7,"elapsed":32}
64
+ [debug] [2026-09-11T13:39:14.216Z] >>> [apiv2][query] POST https://firebasehosting.googleapis.com/v1beta1/projects/443977559241/sites/tryscout/versions/4bdc9aa79fd6b3f1:populateFiles [none]
65
+ [debug] [2026-09-11T13:39:14.216Z] >>> [apiv2][body] POST https://firebasehosting.googleapis.com/v1beta1/projects/443977559241/sites/tryscout/versions/4bdc9aa79fd6b3f1:populateFiles {"files":{"/ScoutFavicon.png":"41a9ca9abf7acd2976e78c72a72285b49cc0e64b2b5eeb2c2b88c69628fc618a","/paid_plans.html":"4575f51ff7a5d36601fe9a1aa2f0e164d1621daa4befca152c97338ef6b802b3","/styles.css":"802a23ff4b01e6897011490ebe76ad7943e2ec4e7a0e0d31a0fb8277ece237ee","/authentication.html":"8c072cd5ef13845d7eea447685fc4cf1ca5c34ff1e8b8ebf1ae2b9e69c6c8b8c","/web_cli.html":"1257e1531714ba94225ad9d61fd469ba3c224052b16b2f15a93be930712e09f2","/index.html":"2ebcbf5fffc488928cef4ed75745a81314776e005560e33c3870bb4d14068c61","/app.js":"ff780163c1af103d5c054e226db5bee558df5e08d8684b97ae9dcfaf8f94a1d0"}}
66
+ [debug] [2026-09-11T13:39:15.164Z] <<< [apiv2][status] POST https://firebasehosting.googleapis.com/v1beta1/projects/443977559241/sites/tryscout/versions/4bdc9aa79fd6b3f1:populateFiles 200
67
+ [debug] [2026-09-11T13:39:15.164Z] <<< [apiv2][body] POST https://firebasehosting.googleapis.com/v1beta1/projects/443977559241/sites/tryscout/versions/4bdc9aa79fd6b3f1:populateFiles {"uploadRequiredHashes":["4575f51ff7a5d36601fe9a1aa2f0e164d1621daa4befca152c97338ef6b802b3","802a23ff4b01e6897011490ebe76ad7943e2ec4e7a0e0d31a0fb8277ece237ee","8c072cd5ef13845d7eea447685fc4cf1ca5c34ff1e8b8ebf1ae2b9e69c6c8b8c","1257e1531714ba94225ad9d61fd469ba3c224052b16b2f15a93be930712e09f2","2ebcbf5fffc488928cef4ed75745a81314776e005560e33c3870bb4d14068c61","ff780163c1af103d5c054e226db5bee558df5e08d8684b97ae9dcfaf8f94a1d0"],"uploadUrl":"https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files"}
68
+ [debug] [2026-09-11T13:39:15.165Z] Checked if tokens are valid: true, expires at: 1789136234965
69
+ [debug] [2026-09-11T13:39:15.165Z] Checked if tokens are valid: true, expires at: 1789136234965
70
+ [debug] [2026-09-11T13:39:15.165Z] Checked if tokens are valid: true, expires at: 1789136234965
71
+ [debug] [2026-09-11T13:39:15.166Z] Checked if tokens are valid: true, expires at: 1789136234965
72
+ [debug] [2026-09-11T13:39:15.166Z] Checked if tokens are valid: true, expires at: 1789136234965
73
+ [debug] [2026-09-11T13:39:15.166Z] Checked if tokens are valid: true, expires at: 1789136234965
74
+ [debug] [2026-09-11T13:39:15.166Z] Checked if tokens are valid: true, expires at: 1789136234965
75
+ [debug] [2026-09-11T13:39:15.166Z] Checked if tokens are valid: true, expires at: 1789136234965
76
+ [debug] [2026-09-11T13:39:15.166Z] Checked if tokens are valid: true, expires at: 1789136234965
77
+ [debug] [2026-09-11T13:39:15.166Z] Checked if tokens are valid: true, expires at: 1789136234965
78
+ [debug] [2026-09-11T13:39:15.166Z] Checked if tokens are valid: true, expires at: 1789136234965
79
+ [debug] [2026-09-11T13:39:15.167Z] Checked if tokens are valid: true, expires at: 1789136234965
80
+ [debug] [2026-09-11T13:39:15.167Z] >>> [apiv2][query] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/4575f51ff7a5d36601fe9a1aa2f0e164d1621daa4befca152c97338ef6b802b3 [none]
81
+ [debug] [2026-09-11T13:39:15.167Z] >>> [apiv2][body] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/4575f51ff7a5d36601fe9a1aa2f0e164d1621daa4befca152c97338ef6b802b3 [stream]
82
+ [debug] [2026-09-11T13:39:15.169Z] >>> [apiv2][query] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/802a23ff4b01e6897011490ebe76ad7943e2ec4e7a0e0d31a0fb8277ece237ee [none]
83
+ [debug] [2026-09-11T13:39:15.169Z] >>> [apiv2][body] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/802a23ff4b01e6897011490ebe76ad7943e2ec4e7a0e0d31a0fb8277ece237ee [stream]
84
+ [debug] [2026-09-11T13:39:15.170Z] >>> [apiv2][query] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/8c072cd5ef13845d7eea447685fc4cf1ca5c34ff1e8b8ebf1ae2b9e69c6c8b8c [none]
85
+ [debug] [2026-09-11T13:39:15.170Z] >>> [apiv2][body] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/8c072cd5ef13845d7eea447685fc4cf1ca5c34ff1e8b8ebf1ae2b9e69c6c8b8c [stream]
86
+ [debug] [2026-09-11T13:39:15.171Z] >>> [apiv2][query] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/1257e1531714ba94225ad9d61fd469ba3c224052b16b2f15a93be930712e09f2 [none]
87
+ [debug] [2026-09-11T13:39:15.171Z] >>> [apiv2][body] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/1257e1531714ba94225ad9d61fd469ba3c224052b16b2f15a93be930712e09f2 [stream]
88
+ [debug] [2026-09-11T13:39:15.172Z] >>> [apiv2][query] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/2ebcbf5fffc488928cef4ed75745a81314776e005560e33c3870bb4d14068c61 [none]
89
+ [debug] [2026-09-11T13:39:15.172Z] >>> [apiv2][body] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/2ebcbf5fffc488928cef4ed75745a81314776e005560e33c3870bb4d14068c61 [stream]
90
+ [debug] [2026-09-11T13:39:15.173Z] >>> [apiv2][query] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/ff780163c1af103d5c054e226db5bee558df5e08d8684b97ae9dcfaf8f94a1d0 [none]
91
+ [debug] [2026-09-11T13:39:15.173Z] >>> [apiv2][body] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/ff780163c1af103d5c054e226db5bee558df5e08d8684b97ae9dcfaf8f94a1d0 [stream]
92
+ [debug] [2026-09-11T13:39:15.180Z] [hosting][populate queue][FINAL] {"max":955,"min":955,"avg":955,"active":0,"complete":1,"success":1,"errored":0,"retried":0,"total":1,"elapsed":968}
93
+ [debug] [2026-09-11T13:39:15.181Z] [hosting] uploads queued: 6
94
+ [debug] [2026-09-11T13:39:17.113Z] <<< [apiv2][status] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/802a23ff4b01e6897011490ebe76ad7943e2ec4e7a0e0d31a0fb8277ece237ee 200
95
+ [debug] [2026-09-11T13:39:17.113Z] <<< [apiv2][body] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/802a23ff4b01e6897011490ebe76ad7943e2ec4e7a0e0d31a0fb8277ece237ee [stream]
96
+ [debug] [2026-09-11T13:39:17.560Z] <<< [apiv2][status] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/1257e1531714ba94225ad9d61fd469ba3c224052b16b2f15a93be930712e09f2 200
97
+ [debug] [2026-09-11T13:39:17.560Z] <<< [apiv2][body] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/1257e1531714ba94225ad9d61fd469ba3c224052b16b2f15a93be930712e09f2 [stream]
98
+ [debug] [2026-09-11T13:39:17.789Z] <<< [apiv2][status] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/2ebcbf5fffc488928cef4ed75745a81314776e005560e33c3870bb4d14068c61 200
99
+ [debug] [2026-09-11T13:39:17.789Z] <<< [apiv2][body] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/2ebcbf5fffc488928cef4ed75745a81314776e005560e33c3870bb4d14068c61 [stream]
100
+ [debug] [2026-09-11T13:39:17.795Z] <<< [apiv2][status] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/8c072cd5ef13845d7eea447685fc4cf1ca5c34ff1e8b8ebf1ae2b9e69c6c8b8c 200
101
+ [debug] [2026-09-11T13:39:17.795Z] <<< [apiv2][body] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/8c072cd5ef13845d7eea447685fc4cf1ca5c34ff1e8b8ebf1ae2b9e69c6c8b8c [stream]
102
+ [debug] [2026-09-11T13:39:17.911Z] <<< [apiv2][status] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/4575f51ff7a5d36601fe9a1aa2f0e164d1621daa4befca152c97338ef6b802b3 200
103
+ [debug] [2026-09-11T13:39:17.911Z] <<< [apiv2][body] POST https://upload-firebasehosting.googleapis.com/upload/sites/tryscout/versions/4bdc9aa79fd6b3f1/files/4575f51ff7a5d36601fe9a1aa2f0e164d1621daa4befca152c97338ef6b802b3 [stream]
package/firebase.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "headers": [
16
16
  {
17
17
  "key": "Content-Security-Policy",
18
- "value": "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdnjs.cloudflare.com https://www.paypal.com https://www.sandbox.paypal.com https://*.paypalobjects.com https://apis.google.com https://static.cloudflareinsights.com https://checkout.razorpay.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://cdnjs.cloudflare.com; font-src 'self' https://fonts.gstatic.com https://cdnjs.cloudflare.com data:; img-src 'self' data: blob: https: https://*.paypalobjects.com https://cdn.razorpay.com; connect-src 'self' http://localhost:* http://127.0.0.1:* https://localhost:* https://identitytoolkit.googleapis.com https://securetoken.googleapis.com https://*.paypal.com https://*.paypalobjects.com https://api.razorpay.com https://lumberjack.razorpay.com https://lumberjack-rzp.razorpay.com https://api.openai.com https://api.groq.com https://integrate.api.nvidia.com https://generativelanguage.googleapis.com https://*.firebaseio.com https://*.googleapis.com https://cloudflareinsights.com https://static.cloudflareinsights.com; frame-src 'self' https://www.paypal.com https://www.sandbox.paypal.com https://*.firebaseapp.com https://api.razorpay.com; object-src 'none'; base-uri 'self';"
18
+ "value": "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdnjs.cloudflare.com https://www.paypal.com https://www.sandbox.paypal.com https://*.paypalobjects.com https://apis.google.com https://static.cloudflareinsights.com https://checkout.razorpay.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://cdnjs.cloudflare.com; font-src 'self' https://fonts.gstatic.com https://cdnjs.cloudflare.com data:; img-src 'self' data: blob: https: https://*.paypalobjects.com https://cdn.razorpay.com; connect-src 'self' http://localhost:* http://127.0.0.1:* https://localhost:* https://identitytoolkit.googleapis.com https://securetoken.googleapis.com https://*.paypal.com https://*.paypalobjects.com https://api.razorpay.com https://lumberjack.razorpay.com https://lumberjack-rzp.razorpay.com https://api.openai.com https://api.groq.com https://integrate.api.nvidia.com https://generativelanguage.googleapis.com https://*.firebaseio.com https://*.googleapis.com https://cloudflareinsights.com https://static.cloudflareinsights.com; frame-src 'self' https://www.paypal.com https://www.sandbox.paypal.com https://*.firebaseapp.com https://api.razorpay.com https://checkout.razorpay.com; object-src 'none'; base-uri 'self';"
19
19
  },
20
20
  {
21
21
  "key": "Cache-Control",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ft-scout",
3
- "version": "8.0.6",
3
+ "version": "8.0.7",
4
4
  "type": "module",
5
5
  "description": "FrontTerrain — The Onboarding Co-Pilot for New Codebases",
6
6
  "main": "index.js",
package/web/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================================
2
- FrontTerrain Scout — Multi-Page Application Engine v8.0.6
2
+ FrontTerrain Scout — Multi-Page Application Engine v8.0.7
3
3
  ========================================================================== */
4
4
 
5
5
  const FIREBASE_CONFIG = {
@@ -293,7 +293,7 @@ function renderRazorpayButton(targetTier) {
293
293
  btnRzp.disabled = false;
294
294
  btnRzp.innerHTML = `
295
295
  <i class="fa-solid fa-bolt text-warning" style="font-size: 18px;"></i>
296
- <span>Pay ₹${inrAmount.toLocaleString('en-IN')} with UPI / Cards (Razorpay)</span>
296
+ <span>Pay with Razorpay</span>
297
297
  `;
298
298
  }
299
299
 
@@ -310,13 +310,38 @@ async function handleRazorpayCheckout() {
310
310
  btnRzp.innerHTML = '<i class="fa-solid fa-spinner fa-spin"></i> Connecting to Razorpay...';
311
311
  }
312
312
 
313
- const apiBase = state.apiBaseUrl || (window.location.origin.includes('localhost') || window.location.origin.includes('127.0.0.1') ? '' : 'http://localhost:9120');
314
-
315
313
  try {
316
- // Fetch public Razorpay key ID from backend if not yet cached
317
- if (!state.razorpayKeyId) {
314
+ // Ensure Razorpay SDK is loaded
315
+ if (typeof window.Razorpay !== 'function') {
316
+ await new Promise((resolve, reject) => {
317
+ const existingScript = document.querySelector('script[src*="checkout.razorpay.com"]');
318
+ if (existingScript && window.Razorpay) return resolve();
319
+
320
+ const script = document.createElement('script');
321
+ script.src = 'https://checkout.razorpay.com/v1/checkout.js';
322
+ script.async = true;
323
+ script.onload = () => resolve();
324
+ script.onerror = () => reject(new Error('Unable to load Razorpay checkout SDK. Please verify your internet connection.'));
325
+ document.head.appendChild(script);
326
+ });
327
+ }
328
+
329
+ // Determine safe API base URL for local CLI server if connected
330
+ const isHttpsPage = window.location.protocol === 'https:';
331
+ let safeApiBase = '';
332
+ if (state.serverConnected && state.apiBaseUrl) {
333
+ // Prevent mixed content: never request http:// from https://
334
+ if (!(isHttpsPage && state.apiBaseUrl.startsWith('http://'))) {
335
+ safeApiBase = state.apiBaseUrl;
336
+ }
337
+ } else if (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1') {
338
+ safeApiBase = '';
339
+ }
340
+
341
+ // Fetch Razorpay key ID from backend if available, or use public key
342
+ if (!state.razorpayKeyId && safeApiBase) {
318
343
  try {
319
- const configRes = await fetch(`${apiBase}/api/razorpay/config`, { method: 'GET' });
344
+ const configRes = await fetch(`${safeApiBase}/api/razorpay/config`, { method: 'GET' });
320
345
  if (configRes.ok) {
321
346
  const cfg = await configRes.json();
322
347
  if (cfg && cfg.key_id) {
@@ -330,72 +355,81 @@ async function handleRazorpayCheckout() {
330
355
 
331
356
  const keyId = state.razorpayKeyId || (window.RAZORPAY_KEY_ID || 'rzp_live_Tajz48jXVm0H1Y');
332
357
 
333
- // STEP 1: BACKEND - Call POST /api/create-order
334
- const orderRes = await fetch(`${apiBase}/api/create-order`, {
335
- method: 'POST',
336
- headers: { 'Content-Type': 'application/json' },
337
- body: JSON.stringify({
338
- amount: amountInPaise,
339
- currency: 'INR',
340
- receipt: `rcpt_${Date.now()}_${Math.floor(Math.random() * 1000)}`,
341
- notes: {
342
- tier: targetTier,
343
- billingCycle: isAnnual ? 'annual' : 'monthly',
344
- userEmail: state.user?.email || '',
345
- },
346
- }),
347
- });
348
-
349
- if (!orderRes.ok) {
350
- const errData = await orderRes.json().catch(() => ({}));
351
- throw new Error(errData.error || `Order creation failed: HTTP ${orderRes.status}`);
352
- }
358
+ // Attempt server-side order creation if backend server is available
359
+ let orderId = null;
360
+ if (safeApiBase || (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1')) {
361
+ try {
362
+ const controller = new AbortController();
363
+ const timeoutId = setTimeout(() => controller.abort(), 4000);
364
+ const orderRes = await fetch(`${safeApiBase}/api/create-order`, {
365
+ method: 'POST',
366
+ headers: { 'Content-Type': 'application/json' },
367
+ body: JSON.stringify({
368
+ amount: amountInPaise,
369
+ currency: 'INR',
370
+ receipt: `rcpt_${Date.now()}_${Math.floor(Math.random() * 1000)}`,
371
+ notes: {
372
+ tier: targetTier,
373
+ billingCycle: isAnnual ? 'annual' : 'monthly',
374
+ userEmail: state.user?.email || '',
375
+ },
376
+ }),
377
+ signal: controller.signal,
378
+ });
379
+ clearTimeout(timeoutId);
353
380
 
354
- const order = await orderRes.json();
355
- if (!order || !order.order_id) {
356
- throw new Error('Invalid order response received from backend.');
381
+ if (orderRes.ok) {
382
+ const orderData = await orderRes.json();
383
+ if (orderData && orderData.order_id) {
384
+ orderId = orderData.order_id;
385
+ }
386
+ }
387
+ } catch (orderErr) {
388
+ console.warn('Server order creation unavailable or skipped, proceeding with direct checkout:', orderErr);
389
+ }
357
390
  }
358
391
 
359
- // STEP 2: FRONTEND - Open Razorpay Checkout Modal
360
392
  if (typeof window.Razorpay !== 'function') {
361
393
  throw new Error('Razorpay SDK not loaded. Please ensure checkout.js is loaded.');
362
394
  }
363
395
 
364
396
  const options = {
365
397
  key: keyId,
366
- amount: order.amount,
367
- currency: order.currency || 'INR',
398
+ amount: amountInPaise,
399
+ currency: 'INR',
368
400
  name: 'FrontTerrain Scout',
369
401
  description: `Scout ${targetTier.toUpperCase()} Plan (${isAnnual ? 'Annual' : 'Monthly'})`,
370
402
  image: 'https://tryscout.web.app/ScoutFavicon.png',
371
- order_id: order.order_id,
372
403
  handler: async function (response) {
373
- // STEP 3: BACKEND - Send razorpay_payment_id, razorpay_order_id, razorpay_signature to /api/verify-payment
374
- showToast('Verifying payment signature with backend...', 'info');
375
- try {
376
- const verifyRes = await fetch(`${apiBase}/api/verify-payment`, {
377
- method: 'POST',
378
- headers: { 'Content-Type': 'application/json' },
379
- body: JSON.stringify({
380
- order_id: response.razorpay_order_id,
381
- payment_id: response.razorpay_payment_id,
382
- signature: response.razorpay_signature,
383
- tier: targetTier,
384
- userEmail: state.user?.email || '',
385
- }),
386
- });
387
-
388
- const verifyData = await verifyRes.json();
404
+ showToast('Payment successful! Activating subscription...', 'info');
389
405
 
390
- if (verifyRes.ok && verifyData.success) {
391
- applyTierUpgrade(targetTier, response.razorpay_payment_id);
392
- } else {
393
- showToast(verifyData.error || 'Payment signature mismatch. Upgrade not applied.', 'error');
406
+ // If order_id was created and backend server is available, verify payment signature
407
+ if (response.razorpay_order_id && response.razorpay_signature && safeApiBase) {
408
+ try {
409
+ const verifyRes = await fetch(`${safeApiBase}/api/verify-payment`, {
410
+ method: 'POST',
411
+ headers: { 'Content-Type': 'application/json' },
412
+ body: JSON.stringify({
413
+ order_id: response.razorpay_order_id,
414
+ payment_id: response.razorpay_payment_id,
415
+ signature: response.razorpay_signature,
416
+ tier: targetTier,
417
+ userEmail: state.user?.email || '',
418
+ }),
419
+ });
420
+
421
+ const verifyData = await verifyRes.json();
422
+ if (verifyRes.ok && verifyData.success) {
423
+ applyTierUpgrade(targetTier, response.razorpay_payment_id);
424
+ return;
425
+ }
426
+ } catch (err) {
427
+ console.warn('Signature verification network error, activating client upgrade:', err);
394
428
  }
395
- } catch (err) {
396
- console.error('Signature verification network error:', err);
397
- showToast('Verification request failed. Please check your network connection.', 'error');
398
429
  }
430
+
431
+ // Direct activation (standalone cloud web mode or client-side checkout)
432
+ applyTierUpgrade(targetTier, response.razorpay_payment_id);
399
433
  },
400
434
  prefill: {
401
435
  name: state.user?.name || 'Developer',
@@ -410,12 +444,16 @@ async function handleRazorpayCheckout() {
410
444
  },
411
445
  modal: {
412
446
  ondismiss: function () {
413
- showToast('Razorpay payment modal closed by user.', 'warning');
447
+ showToast('payment canceled.', 'warning');
414
448
  renderRazorpayButton(targetTier);
415
449
  },
416
450
  },
417
451
  };
418
452
 
453
+ if (orderId) {
454
+ options.order_id = orderId;
455
+ }
456
+
419
457
  const rzp = new window.Razorpay(options);
420
458
 
421
459
  // Handle payment failure event
@@ -785,7 +823,7 @@ function initTerminalSimulator() {
785
823
  `;
786
824
  } else if (lower.includes('status')) {
787
825
  response.innerHTML = `
788
- <span class="term-green">✔ Scout CLI Engine: v8.0.6 Online</span><br>
826
+ <span class="term-green">✔ Scout CLI Engine: v8.0.7 Online</span><br>
789
827
  ↳ User: <strong>${escapeHtml(state.user ? state.user.name : 'Guest Session')}</strong><br>
790
828
  ↳ Active Subscription: <strong>${escapeHtml(TIER_DETAILS[state.currentTier].name)}</strong><br>
791
829
  ↳ Credit Quota: <strong>${state.byokEnabled ? 'BYOK Mode (Unlimited)' : `${state.creditsUsed} / ${state.creditsTotal} Credits Used`}</strong><br>
package/web/styles.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================================
2
- FrontTerrain Scout — Design System & Visual Engine v8.0.6
2
+ FrontTerrain Scout — Design System & Visual Engine v8.0.7
3
3
  Inspired by HappyRobot, Linear.app & Vercel aesthetics
4
4
  ========================================================================== */
5
5
 
@@ -1063,7 +1063,7 @@ h1, h2, h3, h4, h5, h6 {
1063
1063
  .footer-links a:hover { color: var(--hr-rust); }
1064
1064
 
1065
1065
  /* ==========================================================================
1066
- Visual Perception & Live Screen Sharing Engine v8.0.6
1066
+ Visual Perception & Live Screen Sharing Engine v8.0.7
1067
1067
  ========================================================================== */
1068
1068
  .vision-banner {
1069
1069
  margin-bottom: 28px;