@specific.dev/cli 0.1.141 → 0.1.142

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 (95) hide show
  1. package/dist/admin/404/index.html +1 -1
  2. package/dist/admin/404.html +1 -1
  3. package/dist/admin/__next.!KGRlZmF1bHQp.__PAGE__.txt +2 -2
  4. package/dist/admin/__next.!KGRlZmF1bHQp.txt +5 -5
  5. package/dist/admin/__next._full.txt +7 -7
  6. package/dist/admin/__next._head.txt +1 -1
  7. package/dist/admin/__next._index.txt +2 -2
  8. package/dist/admin/__next._tree.txt +2 -2
  9. package/dist/admin/_next/static/chunks/{2dac1d24dcd83b5f.js → 00ed768604f00dc4.js} +2 -2
  10. package/dist/admin/_next/static/chunks/051b91c534cf9f23.js +1 -0
  11. package/dist/admin/_next/static/chunks/05dca3efccd1ccf3.js +1 -0
  12. package/dist/admin/_next/static/chunks/1437c65d19a610ec.js +5 -0
  13. package/dist/admin/_next/static/chunks/16e0c1b704eededd.js +2 -0
  14. package/dist/admin/_next/static/chunks/4bd3607000957431.js +1 -0
  15. package/dist/admin/_next/static/chunks/5953d56a33f0b7ea.js +4 -0
  16. package/dist/admin/_next/static/chunks/65ce370ab86b6df6.js +1 -0
  17. package/dist/admin/_next/static/chunks/99a055acecd950e9.js +1 -0
  18. package/dist/admin/_next/static/chunks/a088825647b58cc9.css +4 -0
  19. package/dist/admin/_next/static/chunks/ab7b22d870fdc67c.js +1 -0
  20. package/dist/admin/_next/static/chunks/turbopack-ea5c59f39d53507e.js +4 -0
  21. package/dist/admin/_not-found/__next._full.txt +2 -2
  22. package/dist/admin/_not-found/__next._head.txt +1 -1
  23. package/dist/admin/_not-found/__next._index.txt +2 -2
  24. package/dist/admin/_not-found/__next._not-found.__PAGE__.txt +1 -1
  25. package/dist/admin/_not-found/__next._not-found.txt +1 -1
  26. package/dist/admin/_not-found/__next._tree.txt +2 -2
  27. package/dist/admin/_not-found/index.html +1 -1
  28. package/dist/admin/_not-found/index.txt +2 -2
  29. package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.__PAGE__.txt +2 -2
  30. package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.txt +1 -1
  31. package/dist/admin/databases/__next.!KGRlZmF1bHQp.txt +5 -5
  32. package/dist/admin/databases/__next._full.txt +7 -7
  33. package/dist/admin/databases/__next._head.txt +1 -1
  34. package/dist/admin/databases/__next._index.txt +2 -2
  35. package/dist/admin/databases/__next._tree.txt +2 -2
  36. package/dist/admin/databases/index.html +1 -1
  37. package/dist/admin/databases/index.txt +7 -7
  38. package/dist/admin/fullscreen/__next._full.txt +3 -3
  39. package/dist/admin/fullscreen/__next._head.txt +1 -1
  40. package/dist/admin/fullscreen/__next._index.txt +2 -2
  41. package/dist/admin/fullscreen/__next._tree.txt +2 -2
  42. package/dist/admin/fullscreen/__next.fullscreen.__PAGE__.txt +2 -2
  43. package/dist/admin/fullscreen/__next.fullscreen.txt +1 -1
  44. package/dist/admin/fullscreen/databases/__next._full.txt +2 -2
  45. package/dist/admin/fullscreen/databases/__next._head.txt +1 -1
  46. package/dist/admin/fullscreen/databases/__next._index.txt +2 -2
  47. package/dist/admin/fullscreen/databases/__next._tree.txt +2 -2
  48. package/dist/admin/fullscreen/databases/__next.fullscreen.databases.__PAGE__.txt +1 -1
  49. package/dist/admin/fullscreen/databases/__next.fullscreen.databases.txt +1 -1
  50. package/dist/admin/fullscreen/databases/__next.fullscreen.txt +1 -1
  51. package/dist/admin/fullscreen/databases/index.html +1 -1
  52. package/dist/admin/fullscreen/databases/index.txt +2 -2
  53. package/dist/admin/fullscreen/index.html +1 -1
  54. package/dist/admin/fullscreen/index.txt +3 -3
  55. package/dist/admin/index.html +1 -1
  56. package/dist/admin/index.txt +7 -7
  57. package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.__PAGE__.txt +2 -2
  58. package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.txt +1 -1
  59. package/dist/admin/mail/__next.!KGRlZmF1bHQp.txt +5 -5
  60. package/dist/admin/mail/__next._full.txt +7 -7
  61. package/dist/admin/mail/__next._head.txt +1 -1
  62. package/dist/admin/mail/__next._index.txt +2 -2
  63. package/dist/admin/mail/__next._tree.txt +2 -2
  64. package/dist/admin/mail/index.html +1 -1
  65. package/dist/admin/mail/index.txt +7 -7
  66. package/dist/admin/services/__next.!KGRlZmF1bHQp.services.__PAGE__.txt +9 -0
  67. package/dist/admin/services/__next.!KGRlZmF1bHQp.services.txt +4 -0
  68. package/dist/admin/services/__next.!KGRlZmF1bHQp.txt +8 -0
  69. package/dist/admin/services/__next._full.txt +27 -0
  70. package/dist/admin/services/__next._head.txt +6 -0
  71. package/dist/admin/services/__next._index.txt +7 -0
  72. package/dist/admin/services/__next._tree.txt +5 -0
  73. package/dist/admin/services/index.html +1 -0
  74. package/dist/admin/services/index.txt +27 -0
  75. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.txt +5 -5
  76. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.__PAGE__.txt +2 -2
  77. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.txt +1 -1
  78. package/dist/admin/workflows/__next._full.txt +7 -7
  79. package/dist/admin/workflows/__next._head.txt +1 -1
  80. package/dist/admin/workflows/__next._index.txt +2 -2
  81. package/dist/admin/workflows/__next._tree.txt +2 -2
  82. package/dist/admin/workflows/index.html +1 -1
  83. package/dist/admin/workflows/index.txt +7 -7
  84. package/dist/cli.js +92 -9
  85. package/package.json +1 -1
  86. package/dist/admin/_next/static/chunks/48f1de3af928e439.js +0 -1
  87. package/dist/admin/_next/static/chunks/63473a6cb811ed42.js +0 -5
  88. package/dist/admin/_next/static/chunks/6877369fbd84f127.js +0 -1
  89. package/dist/admin/_next/static/chunks/71775bad64b386a3.js +0 -5
  90. package/dist/admin/_next/static/chunks/ad9c416be88c8c33.js +0 -1
  91. package/dist/admin/_next/static/chunks/bac545c7353852cd.css +0 -4
  92. package/dist/admin/_next/static/chunks/turbopack-2830c15bd3d8f58b.js +0 -4
  93. /package/dist/admin/_next/static/{nqwwIZDiCUZ_uLWlIk-a7 → 0m_Df0WwF7T1e25BA6Bff}/_buildManifest.js +0 -0
  94. /package/dist/admin/_next/static/{nqwwIZDiCUZ_uLWlIk-a7 → 0m_Df0WwF7T1e25BA6Bff}/_clientMiddlewareManifest.json +0 -0
  95. /package/dist/admin/_next/static/{nqwwIZDiCUZ_uLWlIk-a7 → 0m_Df0WwF7T1e25BA6Bff}/_ssgManifest.js +0 -0
package/dist/cli.js CHANGED
@@ -370451,6 +370451,23 @@ function killTrackedProcess(pid, detached, isProcessRunning) {
370451
370451
  var __dirname = path7.dirname(fileURLToPath(import.meta.url));
370452
370452
  var adminDir = path7.join(__dirname, "admin");
370453
370453
  var _embeddedAdmin = null;
370454
+ var LOG_LINE_REGEX = /^\[([^\]]+)\] \[([^\]]+)\] (.*)$/;
370455
+ function parseLogLines(buf) {
370456
+ const text = buf.toString("utf8");
370457
+ if (text.length === 0) return [];
370458
+ const trimmed = text.endsWith("\n") ? text.slice(0, -1) : text;
370459
+ if (trimmed.length === 0) return [];
370460
+ return trimmed.split("\n").map((line) => {
370461
+ const m = LOG_LINE_REGEX.exec(line);
370462
+ if (m) {
370463
+ return { timestamp: m[1], stream: m[2], text: m[3] };
370464
+ }
370465
+ return { timestamp: "", stream: "raw", text: line };
370466
+ });
370467
+ }
370468
+ function isSafeServiceName(name) {
370469
+ return name.length > 0 && !name.includes("/") && !name.includes("\\") && !name.includes("..") && !name.includes("\0");
370470
+ }
370454
370471
  var MIME_TYPES = {
370455
370472
  ".html": "text/html",
370456
370473
  ".css": "text/css",
@@ -370592,7 +370609,7 @@ function proxyRequest(req, res, targetPort) {
370592
370609
  });
370593
370610
  req.pipe(proxyReq, { end: true });
370594
370611
  }
370595
- async function startAdminServer(getState, listenPort = 0) {
370612
+ async function startAdminServer(getState, listenPort = 0, getLogsDir = () => null) {
370596
370613
  return new Promise((resolve62, reject) => {
370597
370614
  const server = http.createServer((req, res) => {
370598
370615
  const url = new URL(req.url || "/", "http://localhost");
@@ -370612,6 +370629,65 @@ async function startAdminServer(getState, listenPort = 0) {
370612
370629
  res.end(JSON.stringify(state));
370613
370630
  return;
370614
370631
  }
370632
+ const logsMatch = /^\/api\/services\/([^/]+)\/logs$/.exec(pathname);
370633
+ if (logsMatch) {
370634
+ const serviceName = decodeURIComponent(logsMatch[1]);
370635
+ if (!isSafeServiceName(serviceName)) {
370636
+ res.writeHead(400, { "Content-Type": "text/plain" });
370637
+ res.end("Invalid service name");
370638
+ return;
370639
+ }
370640
+ const logsDir = getLogsDir();
370641
+ if (!logsDir) {
370642
+ res.writeHead(404, { "Content-Type": "text/plain" });
370643
+ res.end("Logs not available");
370644
+ return;
370645
+ }
370646
+ const filePath = path7.join(logsDir, `${serviceName}.log`);
370647
+ let stat4;
370648
+ try {
370649
+ stat4 = fs7.statSync(filePath);
370650
+ } catch {
370651
+ res.writeHead(404, { "Content-Type": "application/json" });
370652
+ res.end(JSON.stringify({ size: 0, rotated: false, lines: [] }));
370653
+ return;
370654
+ }
370655
+ const offsetParam = url.searchParams.get("offset");
370656
+ const requestedOffset = offsetParam ? parseInt(offsetParam, 10) : 0;
370657
+ const offset = Number.isFinite(requestedOffset) && requestedOffset >= 0 ? requestedOffset : 0;
370658
+ const rotated = offset > stat4.size;
370659
+ const start = rotated ? 0 : offset;
370660
+ let buf;
370661
+ try {
370662
+ const fd = fs7.openSync(filePath, "r");
370663
+ try {
370664
+ const length = Math.max(0, stat4.size - start);
370665
+ buf = Buffer.alloc(length);
370666
+ if (length > 0) {
370667
+ fs7.readSync(fd, buf, 0, length, start);
370668
+ }
370669
+ } finally {
370670
+ fs7.closeSync(fd);
370671
+ }
370672
+ } catch (err) {
370673
+ writeLog("admin:logs", `Failed to read ${filePath}: ${err}`);
370674
+ res.writeHead(500, { "Content-Type": "text/plain" });
370675
+ res.end("Failed to read logs");
370676
+ return;
370677
+ }
370678
+ const lastNl = buf.lastIndexOf(10);
370679
+ const complete = lastNl >= 0 ? buf.subarray(0, lastNl + 1) : Buffer.alloc(0);
370680
+ const newOffset = start + complete.length;
370681
+ const body = {
370682
+ size: newOffset,
370683
+ rotated,
370684
+ lines: parseLogLines(complete)
370685
+ };
370686
+ res.setHeader("Content-Type", "application/json");
370687
+ res.writeHead(200);
370688
+ res.end(JSON.stringify(body));
370689
+ return;
370690
+ }
370615
370691
  if (pathname.startsWith("/temporal-ui")) {
370616
370692
  const state = getState();
370617
370693
  if (state.temporalUiPort) {
@@ -371768,17 +371844,20 @@ function watchConfigFile(configPath, debounceMs, onChange) {
371768
371844
  var MAX_BYTES = 1024 * 1024;
371769
371845
  var TAIL_BYTES = 512 * 1024;
371770
371846
  var ServiceLogFiles = class {
371771
- logsDir;
371847
+ _logsDir;
371772
371848
  files = /* @__PURE__ */ new Map();
371773
371849
  constructor(projectDir, instanceKey) {
371774
- this.logsDir = path13.resolve(
371850
+ this._logsDir = path13.resolve(
371775
371851
  projectDir,
371776
371852
  ".specific",
371777
371853
  "keys",
371778
371854
  instanceKey,
371779
371855
  "logs"
371780
371856
  );
371781
- fs12.mkdirSync(this.logsDir, { recursive: true });
371857
+ fs12.mkdirSync(this._logsDir, { recursive: true });
371858
+ }
371859
+ get logsDir() {
371860
+ return this._logsDir;
371782
371861
  }
371783
371862
  write(line) {
371784
371863
  const file = this.getOrCreate(line.service);
@@ -371801,7 +371880,7 @@ var ServiceLogFiles = class {
371801
371880
  getOrCreate(service) {
371802
371881
  const existing = this.files.get(service);
371803
371882
  if (existing) return existing;
371804
- const filePath = path13.join(this.logsDir, `${service}.log`);
371883
+ const filePath = path13.join(this._logsDir, `${service}.log`);
371805
371884
  let initialBytes = 0;
371806
371885
  try {
371807
371886
  initialBytes = fs12.statSync(filePath).size;
@@ -373233,7 +373312,11 @@ Add them to the config block in specific.local`
373233
373312
  ...temporalUiPort !== void 0 ? { temporalUiPort } : {}
373234
373313
  });
373235
373314
  const adminPort = portAllocator.getAdminPort();
373236
- const adminServer = await startAdminServer(getState, adminPort);
373315
+ const adminServer = await startAdminServer(
373316
+ getState,
373317
+ adminPort,
373318
+ () => this.serviceLogFiles?.logsDir ?? null
373319
+ );
373237
373320
  this.adminServer = adminServer;
373238
373321
  this.systemLog(
373239
373322
  `Admin server started on port ${adminServer.port}`
@@ -373856,7 +373939,7 @@ function trackEvent(event, properties) {
373856
373939
  event,
373857
373940
  properties: {
373858
373941
  ...properties,
373859
- cli_version: "0.1.141",
373942
+ cli_version: "0.1.142",
373860
373943
  platform: process.platform,
373861
373944
  node_version: process.version,
373862
373945
  project_id: getProjectId()
@@ -377967,7 +378050,7 @@ function compareVersions(a, b) {
377967
378050
  return 0;
377968
378051
  }
377969
378052
  async function checkForUpdate() {
377970
- const currentVersion = "0.1.141";
378053
+ const currentVersion = "0.1.142";
377971
378054
  const response = await fetch(`${BINARIES_BASE_URL}/latest?t=${Date.now()}`);
377972
378055
  if (!response.ok) {
377973
378056
  throw new Error(`Failed to check for updates: HTTP ${response.status}`);
@@ -378482,7 +378565,7 @@ function friendlyErrorMessage(raw) {
378482
378565
  var program = new Command();
378483
378566
  var env = "production";
378484
378567
  var envLabel = env !== "production" ? `[${env.toUpperCase()}] ` : "";
378485
- program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.141").enablePositionalOptions();
378568
+ program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.142").enablePositionalOptions();
378486
378569
  program.command("init").description("Initialize project for use with a coding agent").option("--agent <name...>", "Agents to configure (cursor, claude, codex, other)").addHelpText("after", `
378487
378570
  Examples:
378488
378571
  $ specific init
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specific.dev/cli",
3
- "version": "0.1.141",
3
+ "version": "0.1.142",
4
4
  "description": "CLI for Specific infrastructure-as-code",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,73737,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useUntrackedPathname",{enumerable:!0,get:function(){return i}});let n=e.r(59369),o=e.r(83564);function i(){return!function(){if("u"<typeof window){let{workUnitAsyncStorage:t}=e.r(27460),r=t.getStore();if(!r)return!1;switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":let n=r.fallbackRouteParams;return!!n&&n.size>0}}return!1}()?(0,n.useContext)(o.PathnameContext):null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},33238,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={handleHardNavError:function(){return u},useNavFailureHandler:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(59369);let i=e.r(3899);function u(e){return!!(e&&"u">typeof window)&&!!window.next.__pendingUrl&&(0,i.createHrefFromUrl)(new URL(window.location.href))!==(0,i.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function s(){}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},15220,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ErrorBoundary:function(){return y},ErrorBoundaryHandler:function(){return p}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(903),u=e.r(90795),s=i._(e.r(59369)),a=e.r(73737),l=e.r(15154);e.r(33238);let c=e.r(37165),f=e.r(49702),d="u">typeof window&&(0,f.isBot)(window.navigator.userAgent);class p extends s.default.Component{constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,l.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&!d?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(c.HandleISRError,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,(0,u.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset})]}):this.props.children}}function y({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let o=(0,a.useUntrackedPathname)();return e?(0,u.jsx)(p,{pathname:o,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,u.jsx)(u.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},58372,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RedirectBoundary:function(){return p},RedirectErrorBoundary:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(56158),u=e.r(90795),s=i._(e.r(59369)),a=e.r(52099),l=e.r(25994),c=e.r(91167);function f({redirect:e,reset:t,redirectType:r}){let n=(0,a.useRouter)();return(0,s.useEffect)(()=>{s.default.startTransition(()=>{r===c.RedirectType.push?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class d extends s.default.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,c.isRedirectError)(e)){let t=(0,l.getURLFromRedirectError)(e),r=(0,l.getRedirectTypeFromError)(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,u.jsx)(f,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function p({children:e}){let t=(0,a.useRouter)();return(0,u.jsx)(d,{router:t,children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},36673,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unresolvedThenable",{enumerable:!0,get:function(){return n}});let n={then:()=>{}};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},15478,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={MetadataBoundary:function(){return s},OutletBoundary:function(){return l},RootLayoutBoundary:function(){return c},ViewportBoundary:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(78285),u={[i.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[i.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[i.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[i.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},s=u[i.METADATA_BOUNDARY_NAME.slice(0)],a=u[i.VIEWPORT_BOUNDARY_NAME.slice(0)],l=u[i.OUTLET_BOUNDARY_NAME.slice(0)],c=u[i.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},37165,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HandleISRError",{enumerable:!0,get:function(){return o}});let n="u"<typeof window?e.r(65345).workAsyncStorage:void 0;function o({error:e}){if(n){let t=n.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}return null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},71432,(e,t,r)=>{var n={229:function(e){var t,r,n,o=e.exports={};function i(){throw Error("setTimeout has not been defined")}function u(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:u}catch(e){r=u}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var a=[],l=!1,c=-1;function f(){l&&n&&(l=!1,n.length?a=n.concat(a):c=-1,a.length&&d())}function d(){if(!l){var e=s(f);l=!0;for(var t=a.length;t;){for(n=a,a=[];++c<t;)n&&n[c].run();c=-1,t=a.length}n=null,l=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===u||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function y(){}o.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];a.push(new p(e,t)),1!==a.length||l||s(d)},p.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=y,o.addListener=y,o.once=y,o.off=y,o.removeListener=y,o.removeAllListeners=y,o.emit=y,o.prependListener=y,o.prependOnceListener=y,o.listeners=function(e){return[]},o.binding=function(e){throw Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw Error("process.chdir is not supported")},o.umask=function(){return 0}}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}},u=!0;try{n[e](r,r.exports,i),u=!1}finally{u&&delete o[e]}return r.exports}i.ab="/ROOT/packages/cli/admin/node_modules/.pnpm/next@16.1.4_@babel+core@7.28.6_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/process/",t.exports=i(229)},27455,(e,t,r)=>{"use strict";var n,o;t.exports=(null==(n=e.g.process)?void 0:n.env)&&"object"==typeof(null==(o=e.g.process)?void 0:o.env)?e.g.process:e.r(71432)},3693,(e,t,r)=>{"use strict";var n=Symbol.for("react.transitional.element");function o(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var i in r={},t)"key"!==i&&(r[i]=t[i]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}r.Fragment=Symbol.for("react.fragment"),r.jsx=o,r.jsxs=o},90795,(e,t,r)=>{"use strict";t.exports=e.r(3693)},9177,(e,t,r)=>{"use strict";var n=e.i(27455),o=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),c=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),_=Symbol.for("react.activity"),h=Symbol.for("react.view_transition"),v=Symbol.iterator,g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,b={};function O(e,t,r){this.props=e,this.context=t,this.refs=b,this.updater=r||g}function S(){}function E(e,t,r){this.props=e,this.context=t,this.refs=b,this.updater=r||g}O.prototype.isReactComponent={},O.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},O.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},S.prototype=O.prototype;var j=E.prototype=new S;j.constructor=E,m(j,O.prototype),j.isPureReactComponent=!0;var T=Array.isArray;function w(){}var R={H:null,A:null,T:null,S:null},A=Object.prototype.hasOwnProperty;function x(e,t,r){var n=r.ref;return{$$typeof:o,type:e,key:t,ref:void 0!==n?n:null,props:r}}function P(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var M=/\/+/g;function C(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function N(e,t,r){if(null==e)return e;var n=[],u=0;return!function e(t,r,n,u,s){var a,l,c,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var d=!1;if(null===t)d=!0;else switch(f){case"bigint":case"string":case"number":d=!0;break;case"object":switch(t.$$typeof){case o:case i:d=!0;break;case y:return e((d=t._init)(t._payload),r,n,u,s)}}if(d)return s=s(t),d=""===u?"."+C(t,0):u,T(s)?(n="",null!=d&&(n=d.replace(M,"$&/")+"/"),e(s,r,n,"",function(e){return e})):null!=s&&(P(s)&&(a=s,l=n+(null==s.key||t&&t.key===s.key?"":(""+s.key).replace(M,"$&/")+"/")+d,s=x(a.type,l,a.props)),r.push(s)),1;d=0;var p=""===u?".":u+":";if(T(t))for(var _=0;_<t.length;_++)f=p+C(u=t[_],_),d+=e(u,r,n,f,s);else if("function"==typeof(_=null===(c=t)||"object"!=typeof c?null:"function"==typeof(c=v&&c[v]||c["@@iterator"])?c:null))for(t=_.call(t),_=0;!(u=t.next()).done;)f=p+C(u=u.value,_++),d+=e(u,r,n,f,s);else if("object"===f){if("function"==typeof t.then)return e(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(w,w):(e.status="pending",e.then(function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)},function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(t),r,n,u,s);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(r=String(t))?"object with keys {"+Object.keys(t).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.")}return d}(e,n,"","",function(e){return t.call(r,e,u++)}),n}function H(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){(0===e._status||-1===e._status)&&(e._status=1,e._result=t)},function(t){(0===e._status||-1===e._status)&&(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var U="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof n.default&&"function"==typeof n.default.emit)return void n.default.emit("uncaughtException",e);console.error(e)};function k(e){var t=R.T,r={};r.types=null!==t?t.types:null,R.T=r;try{var n=e(),o=R.S;null!==o&&o(r,n),"object"==typeof n&&null!==n&&"function"==typeof n.then&&n.then(w,U)}catch(e){U(e)}finally{null!==t&&null!==r.types&&(t.types=r.types),R.T=t}}function D(e){var t=R.T;if(null!==t){var r=t.types;null===r?t.types=[e]:-1===r.indexOf(e)&&r.push(e)}else k(D.bind(null,e))}r.Activity=_,r.Children={map:N,forEach:function(e,t,r){N(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return N(e,function(){t++}),t},toArray:function(e){return N(e,function(e){return e})||[]},only:function(e){if(!P(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},r.Component=O,r.Fragment=u,r.Profiler=a,r.PureComponent=E,r.StrictMode=s,r.Suspense=d,r.ViewTransition=h,r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=R,r.__COMPILER_RUNTIME={__proto__:null,c:function(e){return R.H.useMemoCache(e)}},r.addTransitionType=D,r.cache=function(e){return function(){return e.apply(null,arguments)}},r.cacheSignal=function(){return null},r.cloneElement=function(e,t,r){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var n=m({},e.props),o=e.key;if(null!=t)for(i in void 0!==t.key&&(o=""+t.key),t)A.call(t,i)&&"key"!==i&&"__self"!==i&&"__source"!==i&&("ref"!==i||void 0!==t.ref)&&(n[i]=t[i]);var i=arguments.length-2;if(1===i)n.children=r;else if(1<i){for(var u=Array(i),s=0;s<i;s++)u[s]=arguments[s+2];n.children=u}return x(e.type,o,n)},r.createContext=function(e){return(e={$$typeof:c,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:l,_context:e},e},r.createElement=function(e,t,r){var n,o={},i=null;if(null!=t)for(n in void 0!==t.key&&(i=""+t.key),t)A.call(t,n)&&"key"!==n&&"__self"!==n&&"__source"!==n&&(o[n]=t[n]);var u=arguments.length-2;if(1===u)o.children=r;else if(1<u){for(var s=Array(u),a=0;a<u;a++)s[a]=arguments[a+2];o.children=s}if(e&&e.defaultProps)for(n in u=e.defaultProps)void 0===o[n]&&(o[n]=u[n]);return x(e,i,o)},r.createRef=function(){return{current:null}},r.forwardRef=function(e){return{$$typeof:f,render:e}},r.isValidElement=P,r.lazy=function(e){return{$$typeof:y,_payload:{_status:-1,_result:e},_init:H}},r.memo=function(e,t){return{$$typeof:p,type:e,compare:void 0===t?null:t}},r.startTransition=k,r.unstable_useCacheRefresh=function(){return R.H.useCacheRefresh()},r.use=function(e){return R.H.use(e)},r.useActionState=function(e,t,r){return R.H.useActionState(e,t,r)},r.useCallback=function(e,t){return R.H.useCallback(e,t)},r.useContext=function(e){return R.H.useContext(e)},r.useDebugValue=function(){},r.useDeferredValue=function(e,t){return R.H.useDeferredValue(e,t)},r.useEffect=function(e,t){return R.H.useEffect(e,t)},r.useEffectEvent=function(e){return R.H.useEffectEvent(e)},r.useId=function(){return R.H.useId()},r.useImperativeHandle=function(e,t,r){return R.H.useImperativeHandle(e,t,r)},r.useInsertionEffect=function(e,t){return R.H.useInsertionEffect(e,t)},r.useLayoutEffect=function(e,t){return R.H.useLayoutEffect(e,t)},r.useMemo=function(e,t){return R.H.useMemo(e,t)},r.useOptimistic=function(e,t){return R.H.useOptimistic(e,t)},r.useReducer=function(e,t,r){return R.H.useReducer(e,t,r)},r.useRef=function(e){return R.H.useRef(e)},r.useState=function(e){return R.H.useState(e)},r.useSyncExternalStore=function(e,t,r){return R.H.useSyncExternalStore(e,t,r)},r.useTransition=function(){return R.H.useTransition()},r.version="19.3.0-canary-f93b9fd4-20251217"},59369,(e,t,r)=>{"use strict";t.exports=e.r(9177)},2666,(e,t,r)=>{"use strict";var n=e.r(59369);function o(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var r=2;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function i(){}var u={d:{f:i,r:function(){throw Error(o(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},s=Symbol.for("react.portal"),a=Symbol.for("react.optimistic_key"),l=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=u,r.createPortal=function(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(o(299));return function(e,t,r){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:s,key:null==n?null:n===a?a:""+n,children:e,containerInfo:t,implementation:r}}(e,t,null,r)},r.flushSync=function(e){var t=l.T,r=u.p;try{if(l.T=null,u.p=2,e)return e()}finally{l.T=t,u.p=r,u.d.f()}},r.preconnect=function(e,t){"string"==typeof e&&(t=t?"string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:null,u.d.C(e,t))},r.prefetchDNS=function(e){"string"==typeof e&&u.d.D(e)},r.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var r=t.as,n=c(r,t.crossOrigin),o="string"==typeof t.integrity?t.integrity:void 0,i="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===r?u.d.S(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:n,integrity:o,fetchPriority:i}):"script"===r&&u.d.X(e,{crossOrigin:n,integrity:o,fetchPriority:i,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},r.preinitModule=function(e,t){if("string"==typeof e)if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var r=c(t.as,t.crossOrigin);u.d.M(e,{crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0})}}else null==t&&u.d.M(e)},r.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var r=t.as,n=c(r,t.crossOrigin);u.d.L(e,r,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0,media:"string"==typeof t.media?t.media:void 0})}},r.preloadModule=function(e,t){if("string"==typeof e)if(t){var r=c(t.as,t.crossOrigin);u.d.m(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0})}else u.d.m(e)},r.requestFormReset=function(e){u.d.r(e)},r.unstable_batchedUpdates=function(e,t){return e(t)},r.useFormState=function(e,t,r){return l.H.useFormState(e,t,r)},r.useFormStatus=function(){return l.H.useHostTransitionStatus()},r.version="19.3.0-canary-f93b9fd4-20251217"},4672,(e,t,r)=>{"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(2666)},48640,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return l},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class u{disable(){throw i}getStore(){}run(){throw i}exit(){throw i}enterWith(){throw i}static bind(e){return e}}let s="u">typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return s?new s:new u}function l(e){return s?s.bind(e):u.bind(e)}function c(){return s?s.snapshot():function(e,...t){return e(...t)}}},8472,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(48640).createAsyncLocalStorage)()},65345,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=e.r(8472)},47541,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let n=e.r(90795),o=e.r(37165),i={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},u={fontSize:"14px",fontWeight:400,lineHeight:"28px",margin:"0 8px"},s=function({error:e}){let t=e?.digest;return(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{}),(0,n.jsxs)("body",{children:[(0,n.jsx)(o.HandleISRError,{error:e}),(0,n.jsx)("div",{style:i,children:(0,n.jsxs)("div",{children:[(0,n.jsxs)("h2",{style:u,children:["Application error: a ",t?"server":"client","-side exception has occurred while loading ",window.location.hostname," (see the"," ",t?"server logs":"browser console"," for more information)."]}),t?(0,n.jsx)("p",{style:u,children:`Digest: ${t}`}):null]})})]})]})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);