ft-scout 9.4.7 → 9.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/.firebase/hosting.d2Vi.cache +8 -8
  2. package/.scoutrules +13 -0
  3. package/AUTONOMOUS_FEATURES.md +15 -10
  4. package/README.md +588 -482
  5. package/bin/src/commands/agent.d.ts.map +1 -1
  6. package/bin/src/commands/agent.js +11 -24
  7. package/bin/src/commands/agent.js.map +1 -1
  8. package/bin/src/commands/authCommand.d.ts.map +1 -1
  9. package/bin/src/commands/authCommand.js +4 -10
  10. package/bin/src/commands/authCommand.js.map +1 -1
  11. package/bin/src/commands/benchmark.d.ts.map +1 -1
  12. package/bin/src/commands/benchmark.js +0 -5
  13. package/bin/src/commands/benchmark.js.map +1 -1
  14. package/bin/src/commands/init.d.ts.map +1 -1
  15. package/bin/src/commands/init.js +14 -17
  16. package/bin/src/commands/init.js.map +1 -1
  17. package/bin/src/commands/login.d.ts.map +1 -1
  18. package/bin/src/commands/login.js +2 -17
  19. package/bin/src/commands/login.js.map +1 -1
  20. package/bin/src/commands/plan.d.ts.map +1 -1
  21. package/bin/src/commands/plan.js +36 -6
  22. package/bin/src/commands/plan.js.map +1 -1
  23. package/bin/src/engine/agentEngine.d.ts.map +1 -1
  24. package/bin/src/engine/agentEngine.js +415 -371
  25. package/bin/src/engine/agentEngine.js.map +1 -1
  26. package/bin/src/engine/computer/computerController.d.ts.map +1 -1
  27. package/bin/src/engine/computer/computerController.js +46 -0
  28. package/bin/src/engine/computer/computerController.js.map +1 -1
  29. package/bin/src/engine/llm.d.ts.map +1 -1
  30. package/bin/src/engine/llm.js +21 -51
  31. package/bin/src/engine/llm.js.map +1 -1
  32. package/bin/src/engine/runtime/agentRuntime.d.ts.map +1 -1
  33. package/bin/src/engine/runtime/agentRuntime.js +305 -210
  34. package/bin/src/engine/runtime/agentRuntime.js.map +1 -1
  35. package/bin/src/engine/toolRegistry.js +1 -1
  36. package/bin/src/engine/toolRegistry.js.map +1 -1
  37. package/bin/src/engine/voiceEngine.d.ts.map +1 -1
  38. package/bin/src/engine/voiceEngine.js +27 -238
  39. package/bin/src/engine/voiceEngine.js.map +1 -1
  40. package/bin/src/engine/workspace/agentWorkspace.d.ts.map +1 -1
  41. package/bin/src/engine/workspace/agentWorkspace.js +22 -9
  42. package/bin/src/engine/workspace/agentWorkspace.js.map +1 -1
  43. package/bin/src/index.js +30 -9
  44. package/bin/src/index.js.map +1 -1
  45. package/bin/src/mcp/client.js +1 -1
  46. package/bin/src/server/server.d.ts.map +1 -1
  47. package/bin/src/server/server.js +35 -1
  48. package/bin/src/server/server.js.map +1 -1
  49. package/bin/src/utils/admin.d.ts.map +1 -1
  50. package/bin/src/utils/admin.js +63 -0
  51. package/bin/src/utils/admin.js.map +1 -1
  52. package/bin/src/utils/auth.d.ts.map +1 -1
  53. package/bin/src/utils/auth.js +10 -5
  54. package/bin/src/utils/auth.js.map +1 -1
  55. package/bin/src/utils/branding.js +1 -1
  56. package/bin/src/utils/claudeUI.d.ts.map +1 -0
  57. package/bin/src/utils/claudeUI.js +404 -0
  58. package/bin/src/utils/claudeUI.js.map +1 -0
  59. package/bin/src/utils/interruptHandler.d.ts.map +1 -0
  60. package/bin/src/utils/interruptHandler.js +121 -0
  61. package/bin/src/utils/interruptHandler.js.map +1 -0
  62. package/bin/src/utils/payment.d.ts.map +1 -1
  63. package/bin/src/utils/payment.js +1 -1
  64. package/bin/src/utils/payment.js.map +1 -1
  65. package/bin/src/utils/pricing.d.ts.map +1 -1
  66. package/bin/src/utils/pricing.js +106 -45
  67. package/bin/src/utils/pricing.js.map +1 -1
  68. package/bin/src/utils/qrBridge.d.ts.map +1 -1
  69. package/bin/src/utils/qrBridge.js +17 -17
  70. package/bin/src/utils/qrBridge.js.map +1 -1
  71. package/bin/src/utils/rules.d.ts.map +1 -0
  72. package/bin/src/utils/rules.js +105 -0
  73. package/bin/src/utils/rules.js.map +1 -0
  74. package/bin/src/utils/updateCheck.d.ts.map +1 -1
  75. package/bin/src/utils/updateCheck.js +12 -1
  76. package/bin/src/utils/updateCheck.js.map +1 -1
  77. package/firebase.json +1 -1
  78. package/package.json +1 -1
  79. package/web/app.js +108 -51
  80. package/web/styles.css +3 -3
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"qrBridge.js","sourceRoot":"","sources":["qrBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["rules.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CAC3B;AAgBD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW9E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAsB,GAAG,oBAAoB,CA6BpF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,GAAG,GAAE,MAAsB,EAC3B,SAAS,GAAE,OAAe,GAC3B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAqCpD"}
@@ -0,0 +1,105 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import chalk from 'chalk';
4
+ /**
5
+ * Ordered list of candidate filenames for workspace-specific rules.
6
+ * Supports native Scout formats (.scoutrules, SCOUT.md, .scout/rules.md)
7
+ * as well as cross-tool compatibility (.cursorrules, CLAUDE.md).
8
+ */
9
+ const CANDIDATE_RULE_FILES = [
10
+ '.scoutrules',
11
+ 'SCOUT.md',
12
+ path.join('.scout', 'rules.md'),
13
+ path.join('.scout', 'rules'),
14
+ '.cursorrules',
15
+ 'CLAUDE.md',
16
+ ];
17
+ /**
18
+ * Format raw rules content into an authoritative instruction block for the agent's system prompt.
19
+ */
20
+ export function formatRulesForPrompt(content, fileName) {
21
+ const trimmed = content.trim();
22
+ if (!trimmed)
23
+ return '';
24
+ return `================================================================================
25
+ PROJECT RULES & CODING STANDARDS (Loaded from ${fileName}):
26
+ You MUST strictly adhere to the following project-specific guidelines, architectural rules,
27
+ and code styling conventions defined for this repository:
28
+
29
+ ${trimmed}
30
+ ================================================================================`;
31
+ }
32
+ /**
33
+ * Discover and load workspace rules from the current working directory.
34
+ */
35
+ export function loadWorkspaceRules(cwd = process.cwd()) {
36
+ for (const relPath of CANDIDATE_RULE_FILES) {
37
+ const fullPath = path.resolve(cwd, relPath);
38
+ if (fs.existsSync(fullPath)) {
39
+ try {
40
+ const stat = fs.statSync(fullPath);
41
+ if (stat.isFile()) {
42
+ const content = fs.readFileSync(fullPath, 'utf-8');
43
+ const fileName = path.basename(relPath);
44
+ const formattedPrompt = formatRulesForPrompt(content, fileName);
45
+ return {
46
+ found: true,
47
+ filePath: fullPath,
48
+ fileName,
49
+ content,
50
+ formattedPrompt,
51
+ };
52
+ }
53
+ }
54
+ catch {
55
+ // Ignore unreadable file and proceed to next candidate
56
+ }
57
+ }
58
+ }
59
+ return {
60
+ found: false,
61
+ content: '',
62
+ formattedPrompt: '',
63
+ };
64
+ }
65
+ /**
66
+ * Generate a starter .scoutrules template file for a project repository.
67
+ */
68
+ export function createDefaultScoutRules(cwd = process.cwd(), overwrite = false) {
69
+ const targetPath = path.resolve(cwd, '.scoutrules');
70
+ if (fs.existsSync(targetPath) && !overwrite) {
71
+ return {
72
+ created: false,
73
+ path: targetPath,
74
+ error: 'File .scoutrules already exists in this directory.',
75
+ };
76
+ }
77
+ const template = `# Scout Project Rules (.scoutrules)
78
+ # This file is automatically loaded by Scout CLI AI Agent to enforce repository-specific standards.
79
+
80
+ ## Code Quality & Architecture
81
+ - Write modular, type-safe, and self-documenting code.
82
+ - Prefer functional patterns and pure helper functions where applicable.
83
+ - Avoid introducing unnecessary third-party dependencies.
84
+
85
+ ## Testing & Verification
86
+ - Always ensure all unit tests pass before completing a task (\`npm test\` or equivalent).
87
+ - Check syntax and type compatibility before calling task_completed.
88
+
89
+ ## Style & Conventions
90
+ - Maintain consistent indentation (2 spaces) and clean naming conventions.
91
+ - Never commit secrets, API keys, or temporary debugging logs.
92
+ `;
93
+ try {
94
+ fs.writeFileSync(targetPath, template, 'utf-8');
95
+ return { created: true, path: targetPath };
96
+ }
97
+ catch (err) {
98
+ return {
99
+ created: false,
100
+ path: targetPath,
101
+ error: err instanceof Error ? err.message : String(err),
102
+ };
103
+ }
104
+ }
105
+ //# sourceMappingURL=rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B;;;;GAIG;AACH,MAAM,oBAAoB,GAAG;IACzB,aAAa;IACb,UAAU;IACV,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC5B,cAAc;IACd,WAAW;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,QAAgB;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,OAAO;gDACqC,QAAQ;;;;EAItD,OAAO;iFACwE,CAAC;AAClF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAG,GAAW,OAAO,CAAC,GAAG,EAAE;IAC1D,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBAChB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACxC,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAChE,OAAO;wBACH,KAAK,EAAE,IAAI;wBACX,QAAQ,EAAE,QAAQ;wBAClB,QAAQ;wBACR,OAAO;wBACP,eAAe;qBAClB,CAAC;gBACN,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,uDAAuD;YAC3D,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO;QACH,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,EAAE;KACtB,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACnC,GAAG,GAAW,OAAO,CAAC,GAAG,EAAE,EAC3B,SAAS,GAAY,KAAK;IAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACpD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO;YACH,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,oDAAoD;SAC9D,CAAC;IACN,CAAC;IAED,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;CAepB,CAAC;IAEE,IAAI,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,OAAO;YACH,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC1D,CAAC;IACN,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateCheck.d.ts","sourceRoot":"","sources":["updateCheck.ts"],"names":[],"mappings":"AA0BA,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwBjE;AAED,wBAAsB,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAsExG"}
1
+ {"version":3,"file":"updateCheck.d.ts","sourceRoot":"","sources":["updateCheck.ts"],"names":[],"mappings":"AA0BA,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyBjE;AAED,wBAAsB,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFxG"}
@@ -20,9 +20,11 @@ function semverGt(latest, current) {
20
20
  }
21
21
  export async function fetchLatestVersion() {
22
22
  const controller = new AbortController();
23
- const timeoutId = setTimeout(() => controller.abort(), 2500);
23
+ const timeoutId = setTimeout(() => controller.abort(), 1200);
24
24
  const packages = ['ft-scout', 'scout'];
25
25
  for (const pkg of packages) {
26
+ if (controller.signal.aborted)
27
+ break;
26
28
  try {
27
29
  const res = await fetch(`https://registry.npmjs.org/${pkg}/latest`, {
28
30
  signal: controller.signal,
@@ -66,6 +68,15 @@ export async function checkForUpdates(currentVersion, forceCheck = false) {
66
68
  // Ignore cache write errors
67
69
  }
68
70
  }
71
+ else {
72
+ // Cache current timestamp so network failures or offline mode don't lag future commands
73
+ try {
74
+ fs.writeFileSync(CACHE_FILE, JSON.stringify({ lastCheck: now, latestVersion: cache?.latestVersion || currentVersion }, null, 2));
75
+ }
76
+ catch {
77
+ // Ignore cache write errors
78
+ }
79
+ }
69
80
  }
70
81
  if (latestVersion && semverGt(latestVersion, currentVersion)) {
71
82
  console.log('');
@@ -1 +1 @@
1
- {"version":3,"file":"updateCheck.js","sourceRoot":"","sources":["updateCheck.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updateCheck.js","sourceRoot":"","sources":["updateCheck.ts"],"names":[],"mappings":"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"}
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 https://checkout.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://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": "9.4.7",
3
+ "version": "9.4.8",
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 v9.4.7
2
+ FrontTerrain Scout Multi-Page Application Engine v9.4.8
3
3
  ========================================================================== */
4
4
 
5
5
  const FIREBASE_CONFIG = {
@@ -20,14 +20,20 @@ const TIER_DETAILS = {
20
20
  pro: {
21
21
  name: 'Pro Developer Tier',
22
22
  badge: 'PRO ACTIVE',
23
- desc: 'High-power AI co-pilot capabilities, priority quota & 5 active CLI sessions.',
23
+ desc: 'High-power AI co-pilot capabilities, Autonomous Computer & Browser Control, priority quota & 5 active CLI sessions.',
24
24
  icon: '<i class="fa-solid fa-bolt text-primary" style="font-size: 28px;"></i>',
25
25
  },
26
+ team: {
27
+ name: 'Team & Squads Tier',
28
+ badge: 'TEAM ACTIVE',
29
+ desc: 'Shared Onboarding Knowledge Graph, PR Risk Gatekeeper & multi-seat controls.',
30
+ icon: '<i class="fa-solid fa-user-group text-info" style="font-size: 28px;"></i>',
31
+ },
26
32
  enterprise: {
27
- name: 'Team & Enterprise Tier',
33
+ name: 'Enterprise Scale Tier',
28
34
  badge: 'ENTERPRISE ACTIVE',
29
- desc: 'Organization controls, security policies & dedicated scale.',
30
- icon: '<i class="fa-solid fa-building text-warning" style="font-size: 28px;"></i>',
35
+ desc: 'Organization security, SAML SSO, SOC2 compliance & private VPC LLM gateway.',
36
+ icon: '<i class="fa-solid fa-building-shield text-warning" style="font-size: 28px;"></i>',
31
37
  },
32
38
  };
33
39
 
@@ -54,8 +60,9 @@ let state = {
54
60
  razorpayKeyId: '',
55
61
  pricing: {
56
62
  free: { monthlyPriceINR: 0, annualPriceINR: 0, monthlyPriceUSD: 0, annualPriceUSD: 0, credits: 100 },
57
- pro: { monthlyPriceINR: 50, annualPriceINR: 45, monthlyPriceUSD: 0.99, annualPriceUSD: 0.79, credits: 1000 },
58
- enterprise: { monthlyPriceINR: 3999, annualPriceINR: 37990, monthlyPriceUSD: 49, annualPriceUSD: 39, credits: 10000 },
63
+ pro: { monthlyPriceINR: 1499, annualPriceINR: 1199, monthlyPriceUSD: 19, annualPriceUSD: 15, credits: 2500 },
64
+ team: { monthlyPriceINR: 3999, annualPriceINR: 3199, monthlyPriceUSD: 49, annualPriceUSD: 39, credits: 10000 },
65
+ enterprise: { monthlyPriceINR: 7999, annualPriceINR: 6399, monthlyPriceUSD: 99, annualPriceUSD: 79, credits: 30000 },
59
66
  },
60
67
  };
61
68
 
@@ -319,6 +326,7 @@ document.addEventListener('DOMContentLoaded', async () => {
319
326
  loadSessionsFromStorage();
320
327
  initEventListeners();
321
328
  initFAQAccordions();
329
+ initRoiCalculator();
322
330
  initTerminalSimulator();
323
331
  renderAllDynamicComponents();
324
332
  await checkServerStatusAndSession();
@@ -822,12 +830,40 @@ function initEventListeners() {
822
830
  // Auth Form Tabs Switcher
823
831
  getEl('tab-login-btn')?.addEventListener('click', () => switchAuthForm('login'));
824
832
  getEl('tab-signup-btn')?.addEventListener('click', () => switchAuthForm('signup'));
833
+ getEl('tab-sso-btn')?.addEventListener('click', () => switchAuthForm('sso'));
825
834
 
826
835
  // Form Submissions
827
836
  getEl('login-form')?.addEventListener('submit', handleSignIn);
828
837
  getEl('signup-form')?.addEventListener('submit', handleSignUp);
829
838
  getEl('btn-demo-mode')?.addEventListener('click', launchDemoSession);
830
839
 
840
+ // SSO & OAuth listeners
841
+ getEl('btn-submit-sso')?.addEventListener('click', () => {
842
+ const domain = (getEl('sso-domain')?.value || '').trim();
843
+ if (!domain) {
844
+ showToast('Please enter your company work email or organization domain.', 'warning');
845
+ return;
846
+ }
847
+ showToast(`Routing to Enterprise SSO IdP for ${domain}...`, 'info');
848
+ setTimeout(() => {
849
+ showToast(`SSO Handshake established with ${domain}. Team seat license verified.`, 'success');
850
+ }, 1200);
851
+ });
852
+
853
+ document.querySelectorAll('.btn-idp-provider').forEach(btn => {
854
+ btn.addEventListener('click', (e) => {
855
+ const idp = e.currentTarget.getAttribute('data-idp') || 'Okta';
856
+ showToast(`Connecting to ${idp.replace('_', ' ').toUpperCase()} Single Sign-On...`, 'info');
857
+ });
858
+ });
859
+
860
+ document.querySelectorAll('.btn-quick-oauth').forEach(btn => {
861
+ btn.addEventListener('click', (e) => {
862
+ const prov = e.currentTarget.getAttribute('data-provider') || 'OAuth';
863
+ showToast(`Authenticating via ${prov.toUpperCase()} developer token...`, 'info');
864
+ });
865
+ });
866
+
831
867
  // Password Strength Checker
832
868
  getEl('signup-password')?.addEventListener('input', (e) => {
833
869
  const val = e.target.value;
@@ -956,7 +992,6 @@ function initEventListeners() {
956
992
  const provider = e.target.value;
957
993
  const defaultEndpoints = {
958
994
  nvidia: 'https://integrate.api.nvidia.com/v1',
959
- groq: 'https://api.groq.com/openai/v1',
960
995
  gemini: 'https://generativelanguage.googleapis.com/v1beta/openai',
961
996
  openai: 'https://api.openai.com/v1',
962
997
  custom: 'http://localhost:11434/v1',
@@ -1043,6 +1078,28 @@ function initFAQAccordions() {
1043
1078
  });
1044
1079
  }
1045
1080
 
1081
+ // Interactive Team ROI & Seat Calculator for $10M MRR Scale
1082
+ function initRoiCalculator() {
1083
+ const slider = getEl('range-team-size');
1084
+ if (!slider) return;
1085
+
1086
+ function updateRoi() {
1087
+ const teamSize = parseInt(slider.value, 10) || 15;
1088
+ const hoursSaved = teamSize * 14; // ~14 hrs/mo per engineer on onboarding + test self-healing
1089
+ const dollarsSaved = hoursSaved * 50; // $50/hr blended developer rate
1090
+ const teamCost = teamSize * 49; // $49/seat/mo
1091
+ const roiMultiplier = teamCost > 0 ? (dollarsSaved / teamCost).toFixed(1) : '14.0';
1092
+
1093
+ if (getEl('calc-team-count')) getEl('calc-team-count').innerText = `${teamSize} Engineers`;
1094
+ if (getEl('calc-hours-saved')) getEl('calc-hours-saved').innerText = `${hoursSaved.toLocaleString()} hrs`;
1095
+ if (getEl('calc-dollars-saved')) getEl('calc-dollars-saved').innerText = `$${dollarsSaved.toLocaleString()}`;
1096
+ if (getEl('calc-roi-multiplier')) getEl('calc-roi-multiplier').innerText = `${roiMultiplier}x`;
1097
+ }
1098
+
1099
+ slider.addEventListener('input', updateRoi);
1100
+ updateRoi();
1101
+ }
1102
+
1046
1103
  // Interactive Web Terminal Simulator
1047
1104
  function initTerminalSimulator() {
1048
1105
  const form = getEl('cli-terminal-form');
@@ -1103,7 +1160,7 @@ function initTerminalSimulator() {
1103
1160
  `;
1104
1161
  } else if (lower.includes('status')) {
1105
1162
  response.innerHTML = `
1106
- <span class="term-green">✔ Scout CLI Engine: v9.4.7 Online</span><br>
1163
+ <span class="term-green">✔ Scout CLI Engine: v9.4.8 Online</span><br>
1107
1164
  ↳ User: <strong>${escapeHtml(state.user ? state.user.name : 'Guest Session')}</strong><br>
1108
1165
  ↳ Active Subscription: <strong>${escapeHtml(TIER_DETAILS[state.currentTier].name)}</strong><br>
1109
1166
  ↳ Credit Quota: <strong>${state.byokEnabled ? 'BYOK Mode (Unlimited)' : `${state.creditsUsed} / ${state.creditsTotal} Credits Used`}</strong><br>
@@ -1338,10 +1395,12 @@ function renderTiersUI() {
1338
1395
  const isAnnual = state.billingCycle === 'annual';
1339
1396
  const p = state.pricing || {};
1340
1397
  const isProOffer = p.pro?.offerActive && !isAnnual && p.pro?.offerPriceUSD !== undefined;
1398
+ const isTeamOffer = p.team?.offerActive && !isAnnual && p.team?.offerPriceUSD !== undefined;
1341
1399
  const isEntOffer = p.enterprise?.offerActive && !isAnnual && p.enterprise?.offerPriceUSD !== undefined;
1342
1400
 
1343
- const proUSD = isProOffer ? p.pro.offerPriceUSD : (isAnnual ? (p.pro?.annualPriceUSD ?? 0.79) : (p.pro?.monthlyPriceUSD ?? 0.99));
1344
- const entUSD = isEntOffer ? p.enterprise.offerPriceUSD : (isAnnual ? (p.enterprise?.annualPriceUSD ?? 39) : (p.enterprise?.monthlyPriceUSD ?? 49));
1401
+ const proUSD = isProOffer ? p.pro.offerPriceUSD : (isAnnual ? (p.pro?.annualPriceUSD ?? 15) : (p.pro?.monthlyPriceUSD ?? 19));
1402
+ const teamUSD = isTeamOffer ? p.team.offerPriceUSD : (isAnnual ? (p.team?.annualPriceUSD ?? 39) : (p.team?.monthlyPriceUSD ?? 49));
1403
+ const entUSD = isEntOffer ? p.enterprise.offerPriceUSD : (isAnnual ? (p.enterprise?.annualPriceUSD ?? 79) : (p.enterprise?.monthlyPriceUSD ?? 99));
1345
1404
 
1346
1405
  if (getEl('price-pro-val')) {
1347
1406
  if (isProOffer && p.pro?.monthlyPriceUSD) {
@@ -1350,10 +1409,19 @@ function renderTiersUI() {
1350
1409
  getEl('price-pro-val').innerText = proUSD;
1351
1410
  }
1352
1411
  }
1353
- if (getEl('price-pro-period')) getEl('price-pro-period').innerText = isProOffer ? `/ month (${p.pro?.offerBadge || 'PROMO OFFER'})` : (isAnnual ? '/month(billed annually)' : '/ month');
1412
+ if (getEl('price-pro-period')) getEl('price-pro-period').innerText = isProOffer ? `/ month (${p.pro?.offerBadge || 'PROMO OFFER'})` : (isAnnual ? '/ month (billed annually)' : '/ month');
1354
1413
  const proCurrency = document.querySelector('#tier-card-pro .price-currency');
1355
1414
  if (proCurrency) proCurrency.innerText = isProOffer ? '' : '$';
1356
1415
 
1416
+ if (getEl('price-team-val')) {
1417
+ if (isTeamOffer && p.team?.monthlyPriceUSD) {
1418
+ getEl('price-team-val').innerHTML = `<s style="font-size: 0.55em; opacity: 0.55; margin-right: 6px;">$${p.team.monthlyPriceUSD}</s>$${teamUSD}`;
1419
+ } else {
1420
+ getEl('price-team-val').innerText = teamUSD;
1421
+ }
1422
+ }
1423
+ if (getEl('price-team-period')) getEl('price-team-period').innerText = isTeamOffer ? `/ seat / mo (${p.team?.offerBadge || 'TEAM PROMO'})` : (isAnnual ? '/ seat / mo (billed annually)' : '/ seat / mo');
1424
+
1357
1425
  if (getEl('price-ent-val')) {
1358
1426
  if (isEntOffer && p.enterprise?.monthlyPriceUSD) {
1359
1427
  getEl('price-ent-val').innerHTML = `<s style="font-size: 0.55em; opacity: 0.55; margin-right: 6px;">$${p.enterprise.monthlyPriceUSD}</s>$${entUSD}`;
@@ -1361,48 +1429,35 @@ function renderTiersUI() {
1361
1429
  getEl('price-ent-val').innerText = entUSD;
1362
1430
  }
1363
1431
  }
1364
- if (getEl('price-ent-period')) getEl('price-ent-period').innerText = isEntOffer ? `/ month (${p.enterprise?.offerBadge || 'PROMO OFFER'})` : (isAnnual ? '/month(billed annually)' : '/ month');
1432
+ if (getEl('price-ent-period')) getEl('price-ent-period').innerText = isEntOffer ? `/ seat / mo (${p.enterprise?.offerBadge || 'PROMO OFFER'})` : (isAnnual ? '/ seat / mo (billed annually)' : '/ seat / mo');
1365
1433
  const entCurrency = document.querySelector('#tier-card-enterprise .price-currency');
1366
1434
  if (entCurrency) entCurrency.innerText = isEntOffer ? '' : '$';
1367
1435
 
1368
- ['free', 'pro', 'enterprise'].forEach((t) => {
1436
+ const tierRankMap = { free: 0, pro: 1, team: 2, enterprise: 3 };
1437
+ const curRank = tierRankMap[state.currentTier] || 0;
1438
+
1439
+ ['free', 'pro', 'team', 'enterprise'].forEach((t) => {
1369
1440
  const card = getEl(`tier-card-${t}`);
1370
1441
  const btn = getEl(`btn-tier-${t}`);
1371
1442
  if (!card || !btn) return;
1372
1443
 
1373
1444
  if (t === state.currentTier) {
1374
1445
  card.classList.add('active-tier-card');
1375
- btn.className = (t === 'enterprise' ? 'btn btn-warning' : (t === 'pro' ? 'btn btn-primary' : 'btn btn-success')) + ' btn-block btn-select-tier';
1446
+ btn.className = (t === 'enterprise' ? 'btn btn-warning' : (t === 'team' ? 'btn btn-info' : (t === 'pro' ? 'btn btn-primary' : 'btn btn-success'))) + ' btn-block btn-select-tier';
1376
1447
  btn.innerText = 'Current Plan';
1377
1448
  btn.disabled = true;
1378
1449
  } else {
1379
1450
  card.classList.remove('active-tier-card');
1380
- if (t === 'free') {
1381
- if (state.currentTier !== 'free') {
1382
- btn.disabled = true;
1383
- btn.className = 'btn btn-outline btn-block btn-select-tier';
1384
- btn.innerHTML = '<i class="fa-solid fa-lock" style="font-size: 11px; margin-right: 4px;"></i> Auto-shifts at Expiration';
1385
- btn.title = `Paid plans cannot be downgraded. Your account will automatically shift to Free tier on ${formattedDate}.`;
1386
- } else {
1387
- btn.disabled = true;
1388
- btn.className = 'btn btn-outline btn-block btn-select-tier';
1389
- btn.innerText = 'Current Plan';
1390
- }
1391
- } else if (t === 'pro') {
1392
- if (state.currentTier === 'enterprise') {
1393
- btn.disabled = true;
1394
- btn.className = 'btn btn-outline btn-block btn-select-tier';
1395
- btn.innerText = 'Downgrade Not Allowed';
1396
- btn.title = 'Downgrading from Enterprise to Pro is not allowed.';
1397
- } else {
1398
- btn.className = 'btn btn-primary btn-block btn-select-tier';
1399
- btn.innerText = 'Upgrade to Pro';
1400
- btn.disabled = false;
1401
- }
1402
- } else if (t === 'enterprise') {
1451
+ const targetRank = tierRankMap[t] || 0;
1452
+ if (targetRank < curRank) {
1453
+ btn.disabled = true;
1403
1454
  btn.className = 'btn btn-outline btn-block btn-select-tier';
1404
- btn.innerText = 'Upgrade to Enterprise';
1455
+ btn.innerHTML = '<i class="fa-solid fa-lock" style="font-size: 11px; margin-right: 4px;"></i> Downgrades Disabled';
1456
+ btn.title = `Paid plans cannot be downgraded during an active billing cycle.`;
1457
+ } else {
1405
1458
  btn.disabled = false;
1459
+ btn.className = (t === 'team' ? 'btn btn-primary' : 'btn btn-outline') + ' btn-block btn-select-tier';
1460
+ btn.innerText = t === 'team' ? 'Upgrade to Team' : `Upgrade to ${t.charAt(0).toUpperCase() + t.slice(1)}`;
1406
1461
  }
1407
1462
  }
1408
1463
  });
@@ -1505,17 +1560,20 @@ function checkLocalStorageSession() {
1505
1560
 
1506
1561
  // Switch Auth View Forms
1507
1562
  function switchAuthForm(mode) {
1508
- if (mode === 'login') {
1509
- getEl('tab-login-btn')?.classList.add('active');
1510
- getEl('tab-signup-btn')?.classList.remove('active');
1511
- getEl('login-form')?.classList.remove('hidden');
1512
- getEl('signup-form')?.classList.add('hidden');
1513
- } else {
1514
- getEl('tab-signup-btn')?.classList.add('active');
1515
- getEl('tab-login-btn')?.classList.remove('active');
1516
- getEl('signup-form')?.classList.remove('hidden');
1517
- getEl('login-form')?.classList.add('hidden');
1518
- }
1563
+ const tabLogin = getEl('tab-login-btn');
1564
+ const tabSignup = getEl('tab-signup-btn');
1565
+ const tabSso = getEl('tab-sso-btn');
1566
+ const formLogin = getEl('login-form');
1567
+ const formSignup = getEl('signup-form');
1568
+ const formSso = getEl('sso-form');
1569
+
1570
+ tabLogin?.classList.toggle('active', mode === 'login');
1571
+ tabSignup?.classList.toggle('active', mode === 'signup');
1572
+ tabSso?.classList.toggle('active', mode === 'sso');
1573
+
1574
+ formLogin?.classList.toggle('hidden', mode !== 'login');
1575
+ formSignup?.classList.toggle('hidden', mode !== 'signup');
1576
+ formSso?.classList.toggle('hidden', mode !== 'sso');
1519
1577
  }
1520
1578
 
1521
1579
  // Handle Sign In Submission
@@ -3389,7 +3447,6 @@ function initWorkstationRouter() {
3389
3447
  if (topbarModel) {
3390
3448
  const names = {
3391
3449
  nvidia: 'Nemotron 70B',
3392
- groq: 'Llama 3.3 70B',
3393
3450
  gemini: 'Gemini 2.5 Flash',
3394
3451
  openai: 'GPT-4o',
3395
3452
  anthropic: 'Claude 3.7 Sonnet',
package/web/styles.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================================
2
- FrontTerrain Scout Design System & Visual Engine v9.4.7
2
+ FrontTerrain Scout Design System & Visual Engine v9.4.8
3
3
  Inspired by HappyRobot, Linear.app & Vercel aesthetics
4
4
  ========================================================================== */
5
5
 
@@ -922,7 +922,7 @@ h1, h2, h3, h4, h5, h6 {
922
922
  /* Pricing Cards Grid */
923
923
  .tiers-pricing-grid {
924
924
  display: grid;
925
- grid-template-columns: repeat(3, 1fr);
925
+ grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
926
926
  gap: 24px;
927
927
  margin-top: 32px;
928
928
  }
@@ -1194,7 +1194,7 @@ h1, h2, h3, h4, h5, h6 {
1194
1194
  .footer-links a:hover { color: var(--hr-rust); }
1195
1195
 
1196
1196
  /* ==========================================================================
1197
- Visual Perception & Automation Engine v9.4.7
1197
+ Visual Perception & Automation Engine v9.4.8
1198
1198
  ========================================================================== */
1199
1199
  .vision-banner {
1200
1200
  margin-bottom: 28px;