AIEONE commited on
Commit
490ec84
·
1 Parent(s): 4bef7d0

Initial commit syncing local server with Hugging Face Space

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .env +3 -0
  2. Dockerfile +27 -11
  3. agentic-ui-static.zip +0 -0
  4. agentic_dashboard_full_nonssr_latest.zip +0 -0
  5. agentic_dashboard_fully_valid.zip +0 -0
  6. angular-fix-prod.sh +64 -0
  7. backend/app.py +80 -125
  8. backend/digs_engine/__pycache__/digest_segment.cpython-310.pyc +0 -0
  9. backend/digs_engine/__pycache__/export_to_spreadsheet.cpython-310.pyc +0 -0
  10. backend/digs_engine/digest_paths/test_segment_001.txt +1 -0
  11. backend/digs_engine/digest_paths/test_segment_001.txt.digested +3 -0
  12. backend/digs_engine/digest_segment.py +31 -1
  13. backend/digs_engine/digs_back_daemon.sh +12 -0
  14. backend/digs_engine/digs_daemon_script.sh +30 -0
  15. backend/digs_engine/export_to_spreadsheet.py +20 -1
  16. backend/digs_engine/run_digs.py +31 -1
  17. backend/digs_engine/run_digs_daemon.py +54 -0
  18. backend/requirements.txt +8 -1
  19. backend/scripts/__init__.py +0 -0
  20. backend/scripts/execution_engine.py +2 -25
  21. dependencies-7.7.1-py2.py3-none-any.whl +0 -0
  22. file +0 -0
  23. fix_agentic_errors.sh +45 -0
  24. frontend/agentic-dashboard/agentic-ui-static.zip +0 -0
  25. frontend/agentic-dashboard/angular.json +56 -0
  26. frontend/agentic-dashboard/deploy_dashboard.sh +6 -0
  27. frontend/agentic-dashboard/dist/agentic-dashboard/3rdpartylicenses.txt +238 -0
  28. frontend/agentic-dashboard/dist/agentic-dashboard/index.html +1 -0
  29. frontend/agentic-dashboard/dist/agentic-dashboard/main.46a637be0b03da77.js +1 -0
  30. frontend/agentic-dashboard/dist/agentic-dashboard/polyfills.c0d2b2dc49300de4.js +1 -0
  31. frontend/agentic-dashboard/dist/agentic-dashboard/runtime.e476dc6eb7f932f8.js +1 -0
  32. frontend/agentic-dashboard/dist/agentic-dashboard/styles.4a07a471aee040e9.css +1 -0
  33. frontend/agentic-dashboard/launch_fresh_env.sh +32 -0
  34. frontend/agentic-dashboard/main.ts +5 -0
  35. frontend/agentic-dashboard/package-lock.json +0 -0
  36. frontend/agentic-dashboard/package.json +35 -0
  37. frontend/agentic-dashboard/src/app/app.component.ts +7 -0
  38. frontend/agentic-dashboard/src/app/app.module.ts +9 -0
  39. frontend/agentic-dashboard/src/environments/environment.prod.ts +4 -0
  40. frontend/agentic-dashboard/src/environments/environment.ts +4 -0
  41. frontend/agentic-dashboard/src/index.html +1 -0
  42. frontend/agentic-dashboard/src/main.ts +5 -0
  43. frontend/agentic-dashboard/src/polyfills.ts +1 -0
  44. frontend/agentic-dashboard/src/styles.css +4 -0
  45. frontend/agentic-dashboard/tsconfig.app.json +9 -0
  46. frontend/agentic-dashboard/tsconfig.json +17 -0
  47. frontend/package-lock.json +6 -0
  48. index.html +7 -0
  49. openapi.yaml +76 -0
  50. package-lock.json +6 -0
.env ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ STATIC_FILES_DIR=/app/static
2
+ FLASK_APP=backend.app
3
+ FLASK_ENV=production
Dockerfile CHANGED
@@ -1,18 +1,34 @@
1
- # Base image
2
- FROM python:3.11-slim
 
 
 
 
 
 
 
3
 
4
- # Set work directory
 
 
 
 
 
 
 
 
 
5
  WORKDIR /app
6
 
7
- # Install dependencies
8
  COPY requirements.txt .
9
- RUN pip install --no-cache-dir -r requirements.txt
10
 
11
- # Copy source code
12
- COPY . .
 
13
 
14
- # Expose FastAPI app
15
- EXPOSE 8000
 
16
 
17
- # Start FastAPI server
18
- CMD ["uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "8000"]
 
1
+ # --- Backend Build Stage ---
2
+ FROM python:3.9-slim as backend
3
+ WORKDIR /app
4
+ COPY requirements.txt .
5
+ RUN pip install --no-cache-dir -r requirements.txt
6
+ COPY backend/ ./backend
7
+ COPY routes/ ./routes
8
+ COPY templates/ ./templates
9
+ COPY static/ ./static
10
 
11
+ # --- Frontend Build Stage ---
12
+ FROM node:18 as frontend
13
+ WORKDIR /app
14
+ COPY frontend/agentic-dashboard/package*.json ./
15
+ RUN npm install --legacy-peer-deps
16
+ COPY frontend/agentic-dashboard/ .
17
+ RUN npm run build
18
+
19
+ # --- Final Runtime Stage ---
20
+ FROM python:3.9-slim
21
  WORKDIR /app
22
 
 
23
  COPY requirements.txt .
24
+ RUN pip install --no-cache-dir --force-reinstall -r requirements.txt
25
 
26
+ # Copy backend + frontend artifacts
27
+ COPY --from=backend /app /app
28
+ COPY --from=frontend /app/dist/agentic-dashboard /app/static
29
 
30
+ # Set Flask app and expose port
31
+ ENV FLASK_APP=backend.app
32
+ EXPOSE 5000
33
 
34
+ CMD ["uvicorn", "backend.app:app", "--host", "0.0.0.0", "--port", "5000"]
 
agentic-ui-static.zip ADDED
Binary file (46 kB). View file
 
agentic_dashboard_full_nonssr_latest.zip ADDED
Binary file (2.58 kB). View file
 
agentic_dashboard_fully_valid.zip ADDED
Binary file (2.85 kB). View file
 
angular-fix-prod.sh ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ # Angular Project Structure Fixer
4
+ # Version 1.3 - Production Ready
5
+
6
+ # Fix component files
7
+ fix_angular_files() {
8
+ # Fix app.component.ts
9
+ local component_ts="src/app/app.component.ts"
10
+ if [ -f "$component_ts" ]; then
11
+ if ! grep -q 'templateUrl' "$component_ts"; then
12
+ echo "🔄 Fixing app.component.ts"
13
+ cat > "$component_ts" <<EOF
14
+ import { Component } from '@angular/core';
15
+
16
+ @Component({
17
+ selector: 'app-root',
18
+ templateUrl: './app.component.html',
19
+ styleUrls: ['./app.component.css']
20
+ })
21
+ export class AppComponent {
22
+ title = 'agentic-dashboard';
23
+ }
24
+ EOF
25
+ fi
26
+ fi
27
+
28
+ # Fix app.component.html
29
+ local component_html="src/app/app.component.html"
30
+ if [ -f "$component_html" ]; then
31
+ if ! grep -q 'router-outlet' "$component_html"; then
32
+ echo "🔄 Fixing app.component.html"
33
+ echo "<router-outlet></router-outlet>" > "$component_html"
34
+ fi
35
+ fi
36
+ }
37
+
38
+ # Safe file search function
39
+ check_project_structure() {
40
+ echo "🔍 Checking project structure..."
41
+ find src \
42
+ -name "*.ts" -o \
43
+ -name "*.html" -o \
44
+ -name "*.css" \
45
+ -not -path "src/app/*" \
46
+ -not -path "*/environments/*" \
47
+ -not -path "*/node_modules/*" \
48
+ -not -path "*/dist/*" \
49
+ -print0 | xargs -0 -I {} sh -c 'echo "⚠️ Found file in non-standard location: {}"'
50
+ }
51
+
52
+ # Main execution
53
+ echo "🚀 Starting Angular project fix..."
54
+ fix_angular_files
55
+ check_project_structure
56
+
57
+ echo "✅ All fixes applied"
58
+ echo "Running production build..."
59
+ ng build --configuration=production --project=agentic-dashboard
60
+
61
+ echo "Next steps:"
62
+ echo "1. Check build output above"
63
+ echo "2. Deploy files from dist/ directory"
64
+ echo "3. Configure server routing for Angular"
backend/app.py CHANGED
@@ -1,36 +1,12 @@
1
-
2
- from fastapi import FastAPI, UploadFile, File, Form
3
  from fastapi.middleware.cors import CORSMiddleware
 
 
4
  from pydantic import BaseModel
5
  import pandas as pd
6
- import os
7
- import json
8
- from core.engine.multiplexing_engine import run_simulation # must be a callable function
9
 
10
- from routes.reddit_auth import router as reddit_router
11
- from routes.discord_auth import router as discord_router
12
- from routes.github_auth import router as github_router
13
- from routes.huggingface_auth import router as hf_router
14
- from routes.wayback_lookup import router as wayback_router
15
- from routes.dork_search import router as dork_router
16
- from routes.exploitdb_lookup import router as exploitdb_router
17
- app.include_router(reddit_router)
18
- app.include_router(discord_router)
19
- app.include_router(github_router)
20
- app.include_router(hf_router)
21
- app.include_router(wayback_router)
22
- app.include_router(dork_router)
23
- app.include_router(exploitdb_router)
24
- from routes.reddit_auth import router as reddit_router
25
- from routes.discord_auth import router as discord_router
26
- from routes.github_auth import router as github_router
27
- from routes.huggingface_auth import router as hf_router
28
- from routes.wayback_lookup import router as wayback_router
29
- from routes.dork_search import router as dork_router
30
- from routes.exploitdb_lookup import router as exploitdb_router
31
- from routes.spreadsheet_intake import router as spreadsheet_router
32
- from routes.neurocircuit_api import router as neurocircuit_router
33
- from routes.mindmap_api import router as mindmap_router
34
  app = FastAPI()
35
 
36
  app.add_middleware(
@@ -41,68 +17,65 @@ app.add_middleware(
41
  allow_headers=["*"],
42
  )
43
 
44
- DATA_DIR = os.path.join(os.path.dirname(__file__), "data")
 
 
 
 
 
45
  AGENTS_FILE = os.path.join(DATA_DIR, "Agentic_Deployment_Master_Plan_v3.2.csv")
46
- DIGS_FILE = os.path.join(DATA_DIR, "DIGS_Cognitive_Psychology_Final_Output.csv")
47
- MATRIX_FILE = os.path.join(DATA_DIR, "matrix.csv")
48
 
 
49
  class SimulationInput(BaseModel):
50
  asset: str
51
  capital: float
52
  risk: int
53
 
54
- @app.post("/simulate")
55
- def simulate(input: SimulationInput):
56
- try:
57
- result = run_simulation(
58
- asset=input.asset,
59
- capital=input.capital,
60
- risk=input.risk,
61
- digs_path=DIGS_FILE,
62
- matrix_path=MATRIX_FILE
63
- )
64
- return {"projected_yield": result["yield"], "agent_notes": result.get("notes", "")}
65
- except Exception as e:
66
- return {"error": str(e)}
67
 
 
 
 
 
 
68
 
 
69
 
70
  @app.get("/agent_status")
71
  def agent_status():
72
  try:
73
  df = pd.read_csv(AGENTS_FILE)
74
- enriched_agents = []
75
- for idx, row in df.iterrows():
76
- enriched_agents.append({
77
  "id": f"agent{idx}",
78
  "name": row.get("name", f"Agent {idx}"),
79
  "traits": row.get("traits", "unspecified"),
80
  "risk": int(row.get("risk", 3)),
81
  "status": "active",
82
- "memory_kb": 0, # using whole CSV as memory file
83
- "endpoints": ["Google", "Notion", "Shodan"] # example endpoints
84
- })
85
- return {"active_agents": len(enriched_agents), "agents": enriched_agents}
 
 
86
  except Exception as e:
87
  return {"error": str(e)}
88
- def agent_status():
89
- try:
90
- df = pd.read_csv(AGENTS_FILE)
91
- enriched_agents = []
92
- for _, row in df.iterrows():
93
- enriched_agents.append({
94
- "name": row.get("name", f"Agent"),
95
- "traits": row.get("traits", "unknown"),
96
- "risk": row.get("risk", 3),
97
- "status": "active"
98
- })
99
- return {"active_agents": len(enriched_agents), "agents": enriched_agents}
100
- except Exception as e:
101
- return {"error": str(e)}
102
- def agent_status():
103
  try:
104
- df = pd.read_csv(AGENTS_FILE)
105
- return {"active_agents": len(df), "agents": df.to_dict(orient="records")}
 
 
 
106
  except Exception as e:
107
  return {"error": str(e)}
108
 
@@ -110,57 +83,39 @@ def agent_status():
110
  def upload_csv(file: UploadFile = File(...)):
111
  try:
112
  contents = file.file.read()
113
- new_path = os.path.join(DATA_DIR, file.filename)
114
- with open(new_path, "wb") as f:
115
  f.write(contents)
116
- return {"status": "uploaded", "path": new_path}
117
  except Exception as e:
118
  return {"error": str(e)}
119
 
120
-
121
-
122
- from fastapi import FastAPI, UploadFile, File, Request
123
- from fastapi.middleware.cors import CORSMiddleware
124
- from pydantic import BaseModel
125
- import os, json
126
-
127
- CREDENTIALS_PATH = os.path.join(os.path.dirname(__file__), "data", "user_credentials.json")
128
- ADMIN_ENV_PATH = os.path.join(os.path.dirname(__file__), "..", ".env")
129
-
130
- class IntakeData(BaseModel):
131
- role: str
132
- github: str = None
133
- docker: str = None
134
- digitalocean: str = None
135
- google: str = None
136
- notion: str = None
137
- custom: str = None
138
-
139
  @app.post("/intake")
140
  def handle_intake(data: IntakeData):
141
- if data.role == "admin":
142
- creds = {
143
- "GITHUB_TOKEN": data.github,
144
- "DOCKER_TOKEN": data.docker,
145
- "DO_API_KEY": data.digitalocean
146
- }
147
- with open(ADMIN_ENV_PATH, "a") as f:
148
- for k, v in creds.items():
149
- if v:
150
- f.write(f"{k}={v}\n")
151
- return {"message": "Admin credentials saved to .env."}
152
-
153
- elif data.role == "user":
154
- session_data = {
155
- "google": data.google,
156
- "notion": data.notion,
157
- "custom": data.custom
158
- }
159
- with open(CREDENTIALS_PATH, "w") as f:
160
- json.dump(session_data, f)
161
- return {"message": "User session credentials stored."}
162
-
163
- return {"message": "Invalid role or missing data."}
 
164
 
165
  @app.post("/upload_credentials")
166
  def upload_cred_file(file: UploadFile = File(...)):
@@ -180,25 +135,25 @@ def view_creds():
180
  except FileNotFoundError:
181
  return {"error": "No credentials file found."}
182
 
183
- app.include_router(google_router)
184
-
185
- app.include_router(notion_router)
 
 
 
 
 
 
 
 
186
 
187
  app.include_router(reddit_router)
188
-
189
  app.include_router(discord_router)
190
-
191
  app.include_router(github_router)
192
-
193
  app.include_router(hf_router)
194
-
195
  app.include_router(wayback_router)
196
-
197
  app.include_router(dork_router)
198
-
199
  app.include_router(exploitdb_router)
200
-
201
  app.include_router(spreadsheet_router)
202
-
203
  app.include_router(neurocircuit_router)
204
  app.include_router(mindmap_router)
 
1
+ from fastapi import FastAPI, UploadFile, File, Request
 
2
  from fastapi.middleware.cors import CORSMiddleware
3
+ from fastapi.responses import FileResponse
4
+ from fastapi.staticfiles import StaticFiles
5
  from pydantic import BaseModel
6
  import pandas as pd
7
+ import os, json
 
 
8
 
9
+ # ----------------- Setup -----------------
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  app = FastAPI()
11
 
12
  app.add_middleware(
 
17
  allow_headers=["*"],
18
  )
19
 
20
+ BASE_DIR = os.path.dirname(__file__)
21
+ DATA_DIR = os.path.join(BASE_DIR, "data")
22
+ FRONTEND_DIST = os.getenv('STATIC_FILES_DIR', '/app/static')
23
+ #FRONTEND_DIST = os.path.join(BASE_DIR, "../frontend/dist/agentic-dashboard")
24
+ CREDENTIALS_PATH = os.path.join(DATA_DIR, "user_credentials.json")
25
+ ADMIN_ENV_PATH = os.path.join(BASE_DIR, "../.env")
26
  AGENTS_FILE = os.path.join(DATA_DIR, "Agentic_Deployment_Master_Plan_v3.2.csv")
 
 
27
 
28
+ # ----------------- Models -----------------
29
  class SimulationInput(BaseModel):
30
  asset: str
31
  capital: float
32
  risk: int
33
 
34
+ class IntakeData(BaseModel):
35
+ role: str
36
+ github: str = None
37
+ docker: str = None
38
+ digitalocean: str = None
39
+ google: str = None
40
+ notion: str = None
41
+ custom: str = None
 
 
 
 
 
42
 
43
+ # ----------------- Routes -----------------
44
+ @app.get("/")
45
+ def serve_frontend():
46
+ index_file = os.path.join(FRONTEND_DIST, "index.html")
47
+ return FileResponse(index_file)
48
 
49
+ app.mount("/static", StaticFiles(directory=FRONTEND_DIST), name="static")
50
 
51
  @app.get("/agent_status")
52
  def agent_status():
53
  try:
54
  df = pd.read_csv(AGENTS_FILE)
55
+ enriched = [
56
+ {
 
57
  "id": f"agent{idx}",
58
  "name": row.get("name", f"Agent {idx}"),
59
  "traits": row.get("traits", "unspecified"),
60
  "risk": int(row.get("risk", 3)),
61
  "status": "active",
62
+ "memory_kb": 0,
63
+ "endpoints": ["Google", "Notion", "Shodan"]
64
+ }
65
+ for idx, row in df.iterrows()
66
+ ]
67
+ return {"active_agents": len(enriched), "agents": enriched}
68
  except Exception as e:
69
  return {"error": str(e)}
70
+
71
+ @app.post("/simulate")
72
+ def simulate(input: SimulationInput):
 
 
 
 
 
 
 
 
 
 
 
 
73
  try:
74
+ projected = input.capital * (1 + input.risk / 10)
75
+ return {
76
+ "projected_yield": projected,
77
+ "agent_notes": f"Simulated projection for {input.asset}"
78
+ }
79
  except Exception as e:
80
  return {"error": str(e)}
81
 
 
83
  def upload_csv(file: UploadFile = File(...)):
84
  try:
85
  contents = file.file.read()
86
+ path = os.path.join(DATA_DIR, file.filename)
87
+ with open(path, "wb") as f:
88
  f.write(contents)
89
+ return {"status": "uploaded", "path": path}
90
  except Exception as e:
91
  return {"error": str(e)}
92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  @app.post("/intake")
94
  def handle_intake(data: IntakeData):
95
+ try:
96
+ if data.role == "admin":
97
+ creds = {
98
+ "GITHUB_TOKEN": data.github,
99
+ "DOCKER_TOKEN": data.docker,
100
+ "DO_API_KEY": data.digitalocean
101
+ }
102
+ with open(ADMIN_ENV_PATH, "a") as f:
103
+ for k, v in creds.items():
104
+ if v:
105
+ f.write(f"{k}={v}\n")
106
+ return {"message": "Admin credentials saved to .env."}
107
+ elif data.role == "user":
108
+ session_data = {
109
+ "google": data.google,
110
+ "notion": data.notion,
111
+ "custom": data.custom
112
+ }
113
+ with open(CREDENTIALS_PATH, "w") as f:
114
+ json.dump(session_data, f)
115
+ return {"message": "User session credentials stored."}
116
+ return {"message": "Invalid role or missing data."}
117
+ except Exception as e:
118
+ return {"error": str(e)}
119
 
120
  @app.post("/upload_credentials")
121
  def upload_cred_file(file: UploadFile = File(...)):
 
135
  except FileNotFoundError:
136
  return {"error": "No credentials file found."}
137
 
138
+ # ----------------- Routers -----------------
139
+ from routes.reddit_auth import router as reddit_router
140
+ from routes.discord_auth import router as discord_router
141
+ from routes.github_auth import router as github_router
142
+ from routes.huggingface_auth import router as hf_router
143
+ from routes.wayback_lookup import router as wayback_router
144
+ from routes.dork_search import router as dork_router
145
+ from routes.exploitdb_lookup import router as exploitdb_router
146
+ from routes.spreadsheet_intake import router as spreadsheet_router
147
+ from routes.neurocircuit_api import router as neurocircuit_router
148
+ from routes.mindmap_api import router as mindmap_router
149
 
150
  app.include_router(reddit_router)
 
151
  app.include_router(discord_router)
 
152
  app.include_router(github_router)
 
153
  app.include_router(hf_router)
 
154
  app.include_router(wayback_router)
 
155
  app.include_router(dork_router)
 
156
  app.include_router(exploitdb_router)
 
157
  app.include_router(spreadsheet_router)
 
158
  app.include_router(neurocircuit_router)
159
  app.include_router(mindmap_router)
backend/digs_engine/__pycache__/digest_segment.cpython-310.pyc ADDED
Binary file (1.03 kB). View file
 
backend/digs_engine/__pycache__/export_to_spreadsheet.cpython-310.pyc ADDED
Binary file (817 Bytes). View file
 
backend/digs_engine/digest_paths/test_segment_001.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ test segment line
backend/digs_engine/digest_paths/test_segment_001.txt.digested ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ [DIGS] File: test_segment_001.txt
2
+ [DIGS] Length: 18 characters
3
+ [DIGS] Processed paths: Literal, Conceptual, Terminology, Structure, Data, Comparative, Application, CrossRef
backend/digs_engine/digest_segment.py CHANGED
@@ -1 +1,31 @@
1
- # Splits large docs into 2000-char segments
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # digest_segment.py
2
+
3
+ import os
4
+
5
+ def process_segment(filepath):
6
+ try:
7
+ with open(filepath, 'r', encoding='utf-8') as file:
8
+ data = file.read()
9
+
10
+ # Simulated 8-path DIGS processing result
11
+ result_text = f"[DIGS] File: {os.path.basename(filepath)}\n" \
12
+ f"[DIGS] Length: {len(data)} characters\n" \
13
+ f"[DIGS] Processed paths: Literal, Conceptual, Terminology, Structure, Data, Comparative, Application, CrossRef\n"
14
+
15
+ # Save .digested file
16
+ digested_path = filepath + ".digested"
17
+ with open(digested_path, 'w', encoding='utf-8') as out:
18
+ out.write(result_text)
19
+
20
+ print(f"Segment processed: {filepath}")
21
+
22
+ # Return structured result for CSV export
23
+ return {
24
+ "filename": os.path.basename(filepath),
25
+ "char_count": len(data),
26
+ "processed_paths": "Literal, Conceptual, Terminology, Structure, Data, Comparative, Application, CrossRef"
27
+ }
28
+
29
+ except Exception as e:
30
+ print(f"Error processing {filepath}: {e}")
31
+ return None
backend/digs_engine/digs_back_daemon.sh ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ # DIGS Daemon Launcher Script
4
+ # Starts the continuous DIGS engine monitor in background
5
+ # Logs output to daemon.log for review
6
+
7
+ SCRIPT_PATH="/root/late.io/backend/digs_engine/run_digs_daemon.py"
8
+ LOG_PATH="/root/late.io/backend/digs_engine/daemon.log"
9
+
10
+ echo "Launching DIGS daemon..."
11
+ nohup python3 "$SCRIPT_PATH" > "$LOG_PATH" 2>&1 &
12
+ echo "DIGS daemon started in background. Logs: $LOG_PATH"
backend/digs_engine/digs_daemon_script.sh ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3 import os import time from datetime import datetime from digest_segment import process_segment from export_to_spreadsheet import export_to_csv
2
+
3
+ SEGMENT_PATH = os.path.join(os.path.dirname(file), "digest_paths") CSV_PATH = os.path.join(os.path.dirname(file), "digs_results.csv") PROCESSED_LOG = os.path.join(os.path.dirname(file), ".digested_files.log")
4
+
5
+ def load_processed(): if os.path.exists(PROCESSED_LOG): with open(PROCESSED_LOG, 'r') as f: return set(line.strip() for line in f.readlines()) return set()
6
+
7
+ def save_processed(filename): with open(PROCESSED_LOG, 'a') as f: f.write(filename + "\n")
8
+
9
+ def append_to_csv(result): import csv exists = os.path.exists(CSV_PATH) with open(CSV_PATH, 'a', newline='', encoding='utf-8') as csvfile: writer = csv.DictWriter(csvfile, fieldnames=["timestamp", "filename", "char_count", "processed_paths"]) if not exists: writer.writeheader() writer.writerow({ "timestamp": datetime.utcnow().isoformat(), **result })
10
+
11
+ def watch_and_digs(): print("DIGS Daemon running. Watching for new .txt files...") seen = load_processed()
12
+
13
+ while True:
14
+ for file in os.listdir(SEGMENT_PATH):
15
+ if file.endswith(".txt") and file not in seen:
16
+ full_path = os.path.join(SEGMENT_PATH, file)
17
+ print(f"Processing new file: {file}")
18
+ try:
19
+ result = process_segment(full_path)
20
+ if result:
21
+ append_to_csv(result)
22
+ save_processed(file)
23
+ print(f"Done: {file}")
24
+ except Exception as e:
25
+ print(f"Error processing {file}: {e}")
26
+ time.sleep(2)
27
+
28
+ if name == "main": watch_and_digs()
29
+
30
+
backend/digs_engine/export_to_spreadsheet.py CHANGED
@@ -1 +1,20 @@
1
- # Converts DIGS output JSON to CSV
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # export_to_spreadsheet.py
2
+
3
+ import csv
4
+ import os
5
+
6
+ def export_to_csv(data):
7
+ if not data:
8
+ print("No data to export. Skipping CSV creation.")
9
+ return
10
+
11
+ output_file = os.path.join(os.path.dirname(__file__), "digs_results.csv")
12
+
13
+ try:
14
+ with open(output_file, mode='w', newline='', encoding='utf-8') as csvfile:
15
+ writer = csv.DictWriter(csvfile, fieldnames=data[0].keys())
16
+ writer.writeheader()
17
+ writer.writerows(data)
18
+ print(f"CSV export successful: {output_file}")
19
+ except Exception as e:
20
+ print(f"Error writing CSV: {e}")
backend/digs_engine/run_digs.py CHANGED
@@ -1 +1,31 @@
1
- # Runs 8-path DIGS on each segment
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # run_digs.py
2
+
3
+ import os
4
+ import time
5
+ from digest_segment import process_segment
6
+ from export_to_spreadsheet import export_to_csv
7
+
8
+ # Directory containing segment files
9
+ SEGMENT_PATH = os.path.join(os.path.dirname(__file__), "digest_paths")
10
+
11
+ def run_digs_on_all():
12
+ print("Starting DIGS engine...")
13
+ all_results = []
14
+
15
+ for filename in os.listdir(SEGMENT_PATH):
16
+ if filename.endswith(".txt"):
17
+ filepath = os.path.join(SEGMENT_PATH, filename)
18
+ print(f"Processing: {filename}")
19
+ try:
20
+ result = process_segment(filepath)
21
+ if result:
22
+ all_results.append(result)
23
+ except Exception as e:
24
+ print(f"Error processing {filename}: {e}")
25
+
26
+ print("Exporting results...")
27
+ export_to_csv(all_results)
28
+ print("DIGS processing complete.")
29
+
30
+ if __name__ == "__main__":
31
+ run_digs_on_all()
backend/digs_engine/run_digs_daemon.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ import os
3
+ import time
4
+ from datetime import datetime
5
+ from digest_segment import process_segment
6
+ from export_to_spreadsheet import export_to_csv
7
+
8
+ SEGMENT_PATH = os.path.join(os.path.dirname(__file__), "digest_paths")
9
+ CSV_PATH = os.path.join(os.path.dirname(__file__), "digs_results.csv")
10
+ PROCESSED_LOG = os.path.join(os.path.dirname(__file__), ".digested_files.log")
11
+
12
+ def load_processed():
13
+ if os.path.exists(PROCESSED_LOG):
14
+ with open(PROCESSED_LOG, 'r') as f:
15
+ return set(line.strip() for line in f.readlines())
16
+ return set()
17
+
18
+ def save_processed(filename):
19
+ with open(PROCESSED_LOG, 'a') as f:
20
+ f.write(filename + "\n")
21
+
22
+ def append_to_csv(result):
23
+ import csv
24
+ exists = os.path.exists(CSV_PATH)
25
+ with open(CSV_PATH, 'a', newline='', encoding='utf-8') as csvfile:
26
+ writer = csv.DictWriter(csvfile, fieldnames=["timestamp", "filename", "char_count", "processed_paths"])
27
+ if not exists:
28
+ writer.writeheader()
29
+ writer.writerow({
30
+ "timestamp": datetime.utcnow().isoformat(),
31
+ **result
32
+ })
33
+
34
+ def watch_and_digs():
35
+ print("DIGS Daemon running. Watching for new .txt files...")
36
+ seen = load_processed()
37
+
38
+ while True:
39
+ for file in os.listdir(SEGMENT_PATH):
40
+ if file.endswith(".txt") and file not in seen:
41
+ full_path = os.path.join(SEGMENT_PATH, file)
42
+ print(f"Processing new file: {file}")
43
+ try:
44
+ result = process_segment(full_path)
45
+ if result:
46
+ append_to_csv(result)
47
+ save_processed(file)
48
+ print(f"Done: {file}")
49
+ except Exception as e:
50
+ print(f"Error processing {file}: {e}")
51
+ time.sleep(2)
52
+
53
+ if __name__ == "__main__":
54
+ watch_and_digs()
backend/requirements.txt CHANGED
@@ -3,8 +3,15 @@ requests
3
  pandas
4
  numpy
5
  fpdf
6
- webdav3
7
  kubernetes
8
  pyyaml
9
  stripe
10
  stable-baselines3
 
 
 
 
 
 
 
 
3
  pandas
4
  numpy
5
  fpdf
6
+ easywebdav
7
  kubernetes
8
  pyyaml
9
  stripe
10
  stable-baselines3
11
+ uvicorn
12
+ jinja2
13
+ python-multipart
14
+ aiofiles
15
+ pydantic
16
+ requests
17
+ httpx
backend/scripts/__init__.py ADDED
File without changes
backend/scripts/execution_engine.py CHANGED
@@ -1,25 +1,2 @@
1
-
2
- import json
3
-
4
- class AgentExecutionEngine:
5
- def __init__(self, agent):
6
- self.agent = agent
7
-
8
- def execute(self, env_input: dict):
9
- decision = self.agent.decide_behavior(env_input)
10
- result = {
11
- "agent_id": self.agent.agent_id,
12
- "input": env_input,
13
- "decision": decision,
14
- "log_entry": self._log_to_memory(env_input, decision)
15
- }
16
- return result
17
-
18
- def _log_to_memory(self, input_data, decision):
19
- memory_path = f"memory/{self.agent.agent_id}_memory.csv"
20
- try:
21
- with open(memory_path, "a") as f:
22
- f.write(f"{json.dumps(input_data)},{json.dumps(decision)}\n")
23
- return f"Memory updated: {memory_path}"
24
- except Exception as e:
25
- return f"Memory log failed: {str(e)}"
 
1
+ def execute_agent_logic():
2
+ pass
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dependencies-7.7.1-py2.py3-none-any.whl ADDED
Binary file (17.6 kB). View file
 
file ADDED
File without changes
fix_agentic_errors.sh ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ cd ~/late.io
4
+
5
+ # Create missing scripts directory with placeholder
6
+ mkdir -p scripts
7
+ touch scripts/__init__.py
8
+ cat <<EOF > scripts/execution_engine.py
9
+ def execute_agent_logic():
10
+ pass
11
+ EOF
12
+
13
+ # Ensure Dockerfile explicitly uses port 7860 internally
14
+ cat <<EOF > Dockerfile
15
+ FROM python:3.11-slim
16
+
17
+ WORKDIR /app
18
+
19
+ COPY ./backend /app/backend
20
+ COPY ./routes /app/routes
21
+ COPY ./scripts /app/scripts
22
+ COPY requirements.txt /app/
23
+
24
+ RUN pip install --no-cache-dir --upgrade -r requirements.txt
25
+
26
+ EXPOSE 7860
27
+
28
+ CMD ["uvicorn", "backend.app:app", "--host", "0.0.0.0", "--port", "7860"]
29
+ EOF
30
+
31
+ # Remove any old containers and images
32
+ docker stop agentic-app || true
33
+ docker rm agentic-app || true
34
+ docker rmi agentic-app:latest -f || true
35
+
36
+ # Rebuild Docker image explicitly without cache
37
+ docker build --no-cache -t agentic-app:latest .
38
+
39
+ # Run the Docker container mapping port 7860 correctly
40
+ docker run -d -p 7860:7860 --name agentic-app agentic-app:latest
41
+
42
+ # Wait and verify
43
+ sleep 3
44
+ docker logs agentic-app
45
+ docker ps
frontend/agentic-dashboard/agentic-ui-static.zip ADDED
Binary file (46 kB). View file
 
frontend/agentic-dashboard/angular.json ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3
+ "version": 1,
4
+ "defaultProject": "agentic-dashboard",
5
+ "projects": {
6
+ "agentic-dashboard": {
7
+ "projectType": "application",
8
+ "schematics": {},
9
+ "root": "",
10
+ "sourceRoot": "src",
11
+ "prefix": "app",
12
+ "architect": {
13
+ "build": {
14
+ "builder": "@angular-devkit/build-angular:browser",
15
+ "options": {
16
+ "outputPath": "dist/agentic-dashboard",
17
+ "index": "src/index.html",
18
+ "main": "src/main.ts",
19
+ "polyfills": "src/polyfills.ts",
20
+ "tsConfig": "tsconfig.app.json",
21
+ "assets": ["src/favicon.ico", "src/assets"],
22
+ "styles": ["src/styles.css"],
23
+ "scripts": []
24
+ },
25
+ "configurations": {
26
+ "production": {
27
+ "optimization": true,
28
+ "outputHashing": "all",
29
+ "sourceMap": false,
30
+ "namedChunks": false,
31
+ "aot": true,
32
+ "extractLicenses": true,
33
+ "vendorChunk": false,
34
+ "buildOptimizer": true,
35
+ "fileReplacements": [
36
+ {
37
+ "replace": "src/environments/environment.ts",
38
+ "with": "src/environments/environment.prod.ts"
39
+ }
40
+ ]
41
+ }
42
+ }
43
+ },
44
+ "serve": {
45
+ "builder": "@angular-devkit/build-angular:dev-server",
46
+ "options": {
47
+ "browserTarget": "agentic-dashboard:build"
48
+ }
49
+ }
50
+ }
51
+ }
52
+ },
53
+ "cli": {
54
+ "analytics": false
55
+ }
56
+ }
frontend/agentic-dashboard/deploy_dashboard.sh ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ cd $(dirname "$0")
3
+ npm install
4
+ ng build --configuration production
5
+ mkdir -p ../../static
6
+ cp -r ./dist/agentic-dashboard/* ../../static/
frontend/agentic-dashboard/dist/agentic-dashboard/3rdpartylicenses.txt ADDED
@@ -0,0 +1,238 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @angular/common
2
+ MIT
3
+
4
+ @angular/core
5
+ MIT
6
+
7
+ @angular/platform-browser
8
+ MIT
9
+
10
+ rxjs
11
+ Apache-2.0
12
+ Apache License
13
+ Version 2.0, January 2004
14
+ http://www.apache.org/licenses/
15
+
16
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
17
+
18
+ 1. Definitions.
19
+
20
+ "License" shall mean the terms and conditions for use, reproduction,
21
+ and distribution as defined by Sections 1 through 9 of this document.
22
+
23
+ "Licensor" shall mean the copyright owner or entity authorized by
24
+ the copyright owner that is granting the License.
25
+
26
+ "Legal Entity" shall mean the union of the acting entity and all
27
+ other entities that control, are controlled by, or are under common
28
+ control with that entity. For the purposes of this definition,
29
+ "control" means (i) the power, direct or indirect, to cause the
30
+ direction or management of such entity, whether by contract or
31
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
32
+ outstanding shares, or (iii) beneficial ownership of such entity.
33
+
34
+ "You" (or "Your") shall mean an individual or Legal Entity
35
+ exercising permissions granted by this License.
36
+
37
+ "Source" form shall mean the preferred form for making modifications,
38
+ including but not limited to software source code, documentation
39
+ source, and configuration files.
40
+
41
+ "Object" form shall mean any form resulting from mechanical
42
+ transformation or translation of a Source form, including but
43
+ not limited to compiled object code, generated documentation,
44
+ and conversions to other media types.
45
+
46
+ "Work" shall mean the work of authorship, whether in Source or
47
+ Object form, made available under the License, as indicated by a
48
+ copyright notice that is included in or attached to the work
49
+ (an example is provided in the Appendix below).
50
+
51
+ "Derivative Works" shall mean any work, whether in Source or Object
52
+ form, that is based on (or derived from) the Work and for which the
53
+ editorial revisions, annotations, elaborations, or other modifications
54
+ represent, as a whole, an original work of authorship. For the purposes
55
+ of this License, Derivative Works shall not include works that remain
56
+ separable from, or merely link (or bind by name) to the interfaces of,
57
+ the Work and Derivative Works thereof.
58
+
59
+ "Contribution" shall mean any work of authorship, including
60
+ the original version of the Work and any modifications or additions
61
+ to that Work or Derivative Works thereof, that is intentionally
62
+ submitted to Licensor for inclusion in the Work by the copyright owner
63
+ or by an individual or Legal Entity authorized to submit on behalf of
64
+ the copyright owner. For the purposes of this definition, "submitted"
65
+ means any form of electronic, verbal, or written communication sent
66
+ to the Licensor or its representatives, including but not limited to
67
+ communication on electronic mailing lists, source code control systems,
68
+ and issue tracking systems that are managed by, or on behalf of, the
69
+ Licensor for the purpose of discussing and improving the Work, but
70
+ excluding communication that is conspicuously marked or otherwise
71
+ designated in writing by the copyright owner as "Not a Contribution."
72
+
73
+ "Contributor" shall mean Licensor and any individual or Legal Entity
74
+ on behalf of whom a Contribution has been received by Licensor and
75
+ subsequently incorporated within the Work.
76
+
77
+ 2. Grant of Copyright License. Subject to the terms and conditions of
78
+ this License, each Contributor hereby grants to You a perpetual,
79
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
80
+ copyright license to reproduce, prepare Derivative Works of,
81
+ publicly display, publicly perform, sublicense, and distribute the
82
+ Work and such Derivative Works in Source or Object form.
83
+
84
+ 3. Grant of Patent License. Subject to the terms and conditions of
85
+ this License, each Contributor hereby grants to You a perpetual,
86
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
87
+ (except as stated in this section) patent license to make, have made,
88
+ use, offer to sell, sell, import, and otherwise transfer the Work,
89
+ where such license applies only to those patent claims licensable
90
+ by such Contributor that are necessarily infringed by their
91
+ Contribution(s) alone or by combination of their Contribution(s)
92
+ with the Work to which such Contribution(s) was submitted. If You
93
+ institute patent litigation against any entity (including a
94
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
95
+ or a Contribution incorporated within the Work constitutes direct
96
+ or contributory patent infringement, then any patent licenses
97
+ granted to You under this License for that Work shall terminate
98
+ as of the date such litigation is filed.
99
+
100
+ 4. Redistribution. You may reproduce and distribute copies of the
101
+ Work or Derivative Works thereof in any medium, with or without
102
+ modifications, and in Source or Object form, provided that You
103
+ meet the following conditions:
104
+
105
+ (a) You must give any other recipients of the Work or
106
+ Derivative Works a copy of this License; and
107
+
108
+ (b) You must cause any modified files to carry prominent notices
109
+ stating that You changed the files; and
110
+
111
+ (c) You must retain, in the Source form of any Derivative Works
112
+ that You distribute, all copyright, patent, trademark, and
113
+ attribution notices from the Source form of the Work,
114
+ excluding those notices that do not pertain to any part of
115
+ the Derivative Works; and
116
+
117
+ (d) If the Work includes a "NOTICE" text file as part of its
118
+ distribution, then any Derivative Works that You distribute must
119
+ include a readable copy of the attribution notices contained
120
+ within such NOTICE file, excluding those notices that do not
121
+ pertain to any part of the Derivative Works, in at least one
122
+ of the following places: within a NOTICE text file distributed
123
+ as part of the Derivative Works; within the Source form or
124
+ documentation, if provided along with the Derivative Works; or,
125
+ within a display generated by the Derivative Works, if and
126
+ wherever such third-party notices normally appear. The contents
127
+ of the NOTICE file are for informational purposes only and
128
+ do not modify the License. You may add Your own attribution
129
+ notices within Derivative Works that You distribute, alongside
130
+ or as an addendum to the NOTICE text from the Work, provided
131
+ that such additional attribution notices cannot be construed
132
+ as modifying the License.
133
+
134
+ You may add Your own copyright statement to Your modifications and
135
+ may provide additional or different license terms and conditions
136
+ for use, reproduction, or distribution of Your modifications, or
137
+ for any such Derivative Works as a whole, provided Your use,
138
+ reproduction, and distribution of the Work otherwise complies with
139
+ the conditions stated in this License.
140
+
141
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
142
+ any Contribution intentionally submitted for inclusion in the Work
143
+ by You to the Licensor shall be under the terms and conditions of
144
+ this License, without any additional terms or conditions.
145
+ Notwithstanding the above, nothing herein shall supersede or modify
146
+ the terms of any separate license agreement you may have executed
147
+ with Licensor regarding such Contributions.
148
+
149
+ 6. Trademarks. This License does not grant permission to use the trade
150
+ names, trademarks, service marks, or product names of the Licensor,
151
+ except as required for reasonable and customary use in describing the
152
+ origin of the Work and reproducing the content of the NOTICE file.
153
+
154
+ 7. Disclaimer of Warranty. Unless required by applicable law or
155
+ agreed to in writing, Licensor provides the Work (and each
156
+ Contributor provides its Contributions) on an "AS IS" BASIS,
157
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
158
+ implied, including, without limitation, any warranties or conditions
159
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
160
+ PARTICULAR PURPOSE. You are solely responsible for determining the
161
+ appropriateness of using or redistributing the Work and assume any
162
+ risks associated with Your exercise of permissions under this License.
163
+
164
+ 8. Limitation of Liability. In no event and under no legal theory,
165
+ whether in tort (including negligence), contract, or otherwise,
166
+ unless required by applicable law (such as deliberate and grossly
167
+ negligent acts) or agreed to in writing, shall any Contributor be
168
+ liable to You for damages, including any direct, indirect, special,
169
+ incidental, or consequential damages of any character arising as a
170
+ result of this License or out of the use or inability to use the
171
+ Work (including but not limited to damages for loss of goodwill,
172
+ work stoppage, computer failure or malfunction, or any and all
173
+ other commercial damages or losses), even if such Contributor
174
+ has been advised of the possibility of such damages.
175
+
176
+ 9. Accepting Warranty or Additional Liability. While redistributing
177
+ the Work or Derivative Works thereof, You may choose to offer,
178
+ and charge a fee for, acceptance of support, warranty, indemnity,
179
+ or other liability obligations and/or rights consistent with this
180
+ License. However, in accepting such obligations, You may act only
181
+ on Your own behalf and on Your sole responsibility, not on behalf
182
+ of any other Contributor, and only if You agree to indemnify,
183
+ defend, and hold each Contributor harmless for any liability
184
+ incurred by, or claims asserted against, such Contributor by reason
185
+ of your accepting any such warranty or additional liability.
186
+
187
+ END OF TERMS AND CONDITIONS
188
+
189
+ APPENDIX: How to apply the Apache License to your work.
190
+
191
+ To apply the Apache License to your work, attach the following
192
+ boilerplate notice, with the fields enclosed by brackets "[]"
193
+ replaced with your own identifying information. (Don't include
194
+ the brackets!) The text should be enclosed in the appropriate
195
+ comment syntax for the file format. We also recommend that a
196
+ file or class name and description of purpose be included on the
197
+ same "printed page" as the copyright notice for easier
198
+ identification within third-party archives.
199
+
200
+ Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
201
+
202
+ Licensed under the Apache License, Version 2.0 (the "License");
203
+ you may not use this file except in compliance with the License.
204
+ You may obtain a copy of the License at
205
+
206
+ http://www.apache.org/licenses/LICENSE-2.0
207
+
208
+ Unless required by applicable law or agreed to in writing, software
209
+ distributed under the License is distributed on an "AS IS" BASIS,
210
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
211
+ See the License for the specific language governing permissions and
212
+ limitations under the License.
213
+
214
+
215
+
216
+ zone.js
217
+ MIT
218
+ The MIT License
219
+
220
+ Copyright (c) 2010-2024 Google LLC. https://angular.io/license
221
+
222
+ Permission is hereby granted, free of charge, to any person obtaining a copy
223
+ of this software and associated documentation files (the "Software"), to deal
224
+ in the Software without restriction, including without limitation the rights
225
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
226
+ copies of the Software, and to permit persons to whom the Software is
227
+ furnished to do so, subject to the following conditions:
228
+
229
+ The above copyright notice and this permission notice shall be included in
230
+ all copies or substantial portions of the Software.
231
+
232
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
233
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
234
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
235
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
236
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
237
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
238
+ THE SOFTWARE.
frontend/agentic-dashboard/dist/agentic-dashboard/index.html ADDED
@@ -0,0 +1 @@
 
 
1
+ <!doctype html><html data-critters-container><head><meta charset="utf-8"><title>Agentic Dashboard</title><style>@tailwind base;@tailwind components;@tailwind utilities;body{@apply bg-dark-bg text-white}</style><link rel="stylesheet" href="styles.4a07a471aee040e9.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.4a07a471aee040e9.css"></noscript></head><body><app-root></app-root><script src="runtime.e476dc6eb7f932f8.js" type="module"></script><script src="polyfills.c0d2b2dc49300de4.js" type="module"></script><script src="main.46a637be0b03da77.js" type="module"></script></body></html>
frontend/agentic-dashboard/dist/agentic-dashboard/main.46a637be0b03da77.js ADDED
@@ -0,0 +1 @@
 
 
1
+ "use strict";(self.webpackChunkagentic_dashboard=self.webpackChunkagentic_dashboard||[]).push([[792],{627:()=>{let se=null,Wo=1;const Yt=Symbol("SIGNAL");function P(e){const t=se;return se=e,t}function td(e){if((!Sr(e)||e.dirty)&&(e.dirty||e.lastCleanEpoch!==Wo)){if(!e.producerMustRecompute(e)&&!na(e))return e.dirty=!1,void(e.lastCleanEpoch=Wo);e.producerRecomputeValue(e),e.dirty=!1,e.lastCleanEpoch=Wo}}function na(e){vn(e);for(let t=0;t<e.producerNode.length;t++){const n=e.producerNode[t],r=e.producerLastReadVersion[t];if(r!==n.version||(td(n),r!==n.version))return!0}return!1}function Zo(e,t){if(function cd(e){e.liveConsumerNode??=[],e.liveConsumerIndexOfThis??=[]}(e),vn(e),1===e.liveConsumerNode.length)for(let r=0;r<e.producerNode.length;r++)Zo(e.producerNode[r],e.producerIndexOfThis[r]);const n=e.liveConsumerNode.length-1;if(e.liveConsumerNode[t]=e.liveConsumerNode[n],e.liveConsumerIndexOfThis[t]=e.liveConsumerIndexOfThis[n],e.liveConsumerNode.length--,e.liveConsumerIndexOfThis.length--,t<e.liveConsumerNode.length){const r=e.liveConsumerIndexOfThis[t],o=e.liveConsumerNode[t];vn(o),o.producerIndexOfThis[r]=t}}function Sr(e){return e.consumerIsAlwaysLive||(e?.liveConsumerNode?.length??0)>0}function vn(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}let ld=null;function dt(e){return"function"==typeof e}function hd(e){const n=e(r=>{Error.call(r),r.stack=(new Error).stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}const oa=hd(e=>function(n){e(this),this.message=n?`${n.length} errors occurred during unsubscription:\n${n.map((r,o)=>`${o+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=n});function ia(e,t){if(e){const n=e.indexOf(t);0<=n&&e.splice(n,1)}}class Je{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:n}=this;if(n)if(this._parentage=null,Array.isArray(n))for(const i of n)i.remove(this);else n.remove(this);const{initialTeardown:r}=this;if(dt(r))try{r()}catch(i){t=i instanceof oa?i.errors:[i]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const i of o)try{md(i)}catch(s){t=t??[],s instanceof oa?t=[...t,...s.errors]:t.push(s)}}if(t)throw new oa(t)}}add(t){var n;if(t&&t!==this)if(this.closed)md(t);else{if(t instanceof Je){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}}_hasParent(t){const{_parentage:n}=this;return n===t||Array.isArray(n)&&n.includes(t)}_addParent(t){const{_parentage:n}=this;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t}_removeParent(t){const{_parentage:n}=this;n===t?this._parentage=null:Array.isArray(n)&&ia(n,t)}remove(t){const{_finalizers:n}=this;n&&ia(n,t),t instanceof Je&&t._removeParent(this)}}Je.EMPTY=(()=>{const e=new Je;return e.closed=!0,e})();const pd=Je.EMPTY;function gd(e){return e instanceof Je||e&&"closed"in e&&dt(e.remove)&&dt(e.add)&&dt(e.unsubscribe)}function md(e){dt(e)?e():e.unsubscribe()}const Kt={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Qo={setTimeout(e,t,...n){const{delegate:r}=Qo;return r?.setTimeout?r.setTimeout(e,t,...n):setTimeout(e,t,...n)},clearTimeout(e){const{delegate:t}=Qo;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function yd(){}const aE=sa("C",void 0,void 0);function sa(e,t,n){return{kind:e,value:t,error:n}}let Xt=null;function Yo(e){if(Kt.useDeprecatedSynchronousErrorHandling){const t=!Xt;if(t&&(Xt={errorThrown:!1,error:null}),e(),t){const{errorThrown:n,error:r}=Xt;if(Xt=null,n)throw r}}else e()}class aa extends Je{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,gd(t)&&t.add(this)):this.destination=pE}static create(t,n,r){return new ca(t,n,r)}next(t){this.isStopped?la(function cE(e){return sa("N",e,void 0)}(t),this):this._next(t)}error(t){this.isStopped?la(function uE(e){return sa("E",void 0,e)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?la(aE,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const dE=Function.prototype.bind;function ua(e,t){return dE.call(e,t)}class fE{constructor(t){this.partialObserver=t}next(t){const{partialObserver:n}=this;if(n.next)try{n.next(t)}catch(r){Ko(r)}}error(t){const{partialObserver:n}=this;if(n.error)try{n.error(t)}catch(r){Ko(r)}else Ko(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(n){Ko(n)}}}class ca extends aa{constructor(t,n,r){let o;if(super(),dt(t)||!t)o={next:t??void 0,error:n??void 0,complete:r??void 0};else{let i;this&&Kt.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&ua(t.next,i),error:t.error&&ua(t.error,i),complete:t.complete&&ua(t.complete,i)}):o=t}this.destination=new fE(o)}}function Ko(e){Kt.useDeprecatedSynchronousErrorHandling?function lE(e){Kt.useDeprecatedSynchronousErrorHandling&&Xt&&(Xt.errorThrown=!0,Xt.error=e)}(e):function sE(e){Qo.setTimeout(()=>{const{onUnhandledError:t}=Kt;if(!t)throw e;t(e)})}(e)}function la(e,t){const{onStoppedNotification:n}=Kt;n&&Qo.setTimeout(()=>n(e,t))}const pE={closed:!0,next:yd,error:function hE(e){throw e},complete:yd},gE="function"==typeof Symbol&&Symbol.observable||"@@observable";function mE(e){return e}let vd=(()=>{class e{constructor(n){n&&(this._subscribe=n)}lift(n){const r=new e;return r.source=this,r.operator=n,r}subscribe(n,r,o){const i=function DE(e){return e&&e instanceof aa||function yE(e){return e&&dt(e.next)&&dt(e.error)&&dt(e.complete)}(e)&&gd(e)}(n)?n:new ca(n,r,o);return Yo(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(n){try{return this._subscribe(n)}catch(r){n.error(r)}}forEach(n,r){return new(r=Ed(r))((o,i)=>{const s=new ca({next:a=>{try{n(a)}catch(u){i(u),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(n){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(n)}[gE](){return this}pipe(...n){return function Dd(e){return 0===e.length?mE:1===e.length?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}(n)(this)}toPromise(n){return new(n=Ed(n))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=t=>new e(t),e})();function Ed(e){var t;return null!==(t=e??Kt.Promise)&&void 0!==t?t:Promise}const vE=hd(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Tr=(()=>{class e extends vd{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){const r=new Cd(this,this);return r.operator=n,r}_throwIfClosed(){if(this.closed)throw new vE}next(n){Yo(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const r of this.currentObservers)r.next(n)}})}error(n){Yo(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;const{observers:r}=this;for(;r.length;)r.shift().error(n)}})}complete(){Yo(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var n;return(null===(n=this.observers)||void 0===n?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){const{hasError:r,isStopped:o,observers:i}=this;return r||o?pd:(this.currentObservers=null,i.push(n),new Je(()=>{this.currentObservers=null,ia(i,n)}))}_checkFinalizedStatuses(n){const{hasError:r,thrownError:o,isStopped:i}=this;r?n.error(o):i&&n.complete()}asObservable(){const n=new vd;return n.source=this,n}}return e.create=(t,n)=>new Cd(t,n),e})();class Cd extends Tr{constructor(t,n){super(),this.destination=t,this.source=n}next(t){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.next)||void 0===r||r.call(n,t)}error(t){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.error)||void 0===r||r.call(n,t)}complete(){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===n||n.call(t)}_subscribe(t){var n,r;return null!==(r=null===(n=this.source)||void 0===n?void 0:n.subscribe(t))&&void 0!==r?r:pd}}class EE extends Tr{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const n=super._subscribe(t);return!n.closed&&t.next(this._value),n}getValue(){const{hasError:t,thrownError:n,_value:r}=this;if(t)throw n;return this._throwIfClosed(),r}next(t){super.next(this._value=t)}}class _E extends aa{constructor(t,n,r,o,i,s){super(t),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=n?function(a){try{n(a)}catch(u){t.error(u)}}:super._next,this._error=o?function(a){try{o(a)}catch(u){t.error(u)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:n}=this;super.unsubscribe(),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function ME(e,t){return function wE(e){return t=>{if(function CE(e){return dt(e?.lift)}(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}((n,r)=>{let o=0;n.subscribe(function IE(e,t,n,r,o){return new _E(e,t,n,r,o)}(r,i=>{r.next(e.call(t,i,o++))}))})}class C extends Error{constructor(t,n){super(function En(e,t){return`NG0${Math.abs(e)}${t?": "+t:""}`}(t,n)),this.code=t}}const q=globalThis;function W(e){for(let t in e)if(e[t]===W)return t;throw Error("Could not find renamed property on target object.")}function ge(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(ge).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return""+t;const n=t.indexOf("\n");return-1===n?t:t.substring(0,n)}function fa(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}const SE=W({__forward_ref__:W});function ha(e){return e.__forward_ref__=ha,e.toString=function(){return ge(this())},e}function M(e){return function Jo(e){return"function"==typeof e&&e.hasOwnProperty(SE)&&e.__forward_ref__===ha}(e)?e():e}function B(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function Mn(e){return{providers:e.providers||[],imports:e.imports||[]}}function ei(e){return bd(e,ni)||bd(e,Sd)}function bd(e,t){return e.hasOwnProperty(t)?e[t]:null}function ti(e){return e&&(e.hasOwnProperty(pa)||e.hasOwnProperty(RE))?e[pa]:null}const ni=W({\u0275prov:W}),pa=W({\u0275inj:W}),Sd=W({ngInjectableDef:W}),RE=W({ngInjectorDef:W});class b{constructor(t,n){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\u0275prov=B({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function va(e){return e&&!!e.\u0275providers}const Nr=W({\u0275cmp:W}),Ea=W({\u0275dir:W}),Ca=W({\u0275pipe:W}),Nd=W({\u0275mod:W}),Tt=W({\u0275fac:W}),Ar=W({__NG_ELEMENT_ID__:W}),Ad=W({__NG_ENV_ID__:W});function U(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():function N(e){return"string"==typeof e?e:null==e?"":String(e)}(e)}function wa(e,t){throw new C(-201,!1)}var V=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(V||{});let Ia;function xd(){return Ia}function Oe(e){const t=Ia;return Ia=e,t}function Rd(e,t,n){const r=ei(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:n&V.Optional?null:void 0!==t?t:void wa()}const xr={},_a="__NG_DI_FLAG__",ri="ngTempTokenPath",VE=/\n/gm,Od="__source";let bn;function Ht(e){const t=bn;return bn=e,t}function BE(e,t=V.Default){if(void 0===bn)throw new C(-203,!1);return null===bn?Rd(e,void 0,t):bn.get(e,t&V.Optional?null:void 0,t)}function H(e,t=V.Default){return(xd()||BE)(M(e),t)}function R(e,t=V.Default){return H(e,oi(t))}function oi(e){return typeof e>"u"||"number"==typeof e?e:(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Ma(e){const t=[];for(let n=0;n<e.length;n++){const r=M(e[n]);if(Array.isArray(r)){if(0===r.length)throw new C(900,!1);let o,i=V.Default;for(let s=0;s<r.length;s++){const a=r[s],u=$E(a);"number"==typeof u?-1===u?o=a.token:i|=u:o=a}t.push(H(o,i))}else t.push(H(r))}return t}function $E(e){return e[_a]}function Jt(e,t){return e.hasOwnProperty(Tt)?e[Tt]:null}function Sn(e,t){e.forEach(n=>Array.isArray(n)?Sn(n,t):t(n))}function ii(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}const ft={},$=[],Nn=new b(""),Vd=new b("",-1),Aa=new b("");class ai{get(t,n=xr){if(n===xr){const r=new Error(`NullInjectorError: No provider for ${ge(t)}!`);throw r.name="NullInjectorError",r}return n}}var et=function(e){return e[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",e}(et||{}),Bt=function(e){return e[e.None=0]="None",e[e.SignalBased=1]="SignalBased",e[e.HasDecoratorInputTransform=2]="HasDecoratorInputTransform",e}(Bt||{});function xa(e,t,n){let r=0;for(;r<n.length;){const o=n[r];if("number"==typeof o){if(0!==o)break;r++;const i=n[r++],s=n[r++],a=n[r++];e.setAttribute(t,s,a,i)}else{const i=o,s=n[++r];Hd(i)?e.setProperty(t,i,s):e.setAttribute(t,i,s),r++}}return r}function Hd(e){return 64===e.charCodeAt(0)}function Or(e,t){if(null!==t&&0!==t.length)if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){const o=t[r];"number"==typeof o?n=o:0===n||Bd(e,n,o,null,-1===n||2===n?t[++r]:null)}}return e}function Bd(e,t,n,r,o){let i=0,s=e.length;if(-1===t)s=-1;else for(;i<e.length;){const a=e[i++];if("number"==typeof a){if(a===t){s=-1;break}if(a>t){s=i-1;break}}}for(;i<e.length;){const a=e[i];if("number"==typeof a)break;if(a===n){if(null===r)return void(null!==o&&(e[i+1]=o));if(r===e[i+1])return void(e[i+2]=o)}i++,null!==r&&i++,null!==o&&i++}-1!==s&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),null!==r&&e.splice(i++,0,r),null!==o&&e.splice(i++,0,o)}const $d="ng-template";function Ra(e){return 4===e.type&&e.value!==$d}function tt(e){return!(1&e)}function zd(e,t){return e?":not("+t.trim()+")":t}function oC(e){let t=e[0],n=1,r=2,o="",i=!1;for(;n<e.length;){let s=e[n];if("string"==typeof s)if(2&r){const a=e[++n];o+="["+s+(a.length>0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!tt(s)&&(t+=zd(i,o),o=""),r=s,i=i||!tt(r);n++}return""!==o&&(t+=zd(i,o)),t}function Pr(e){return function St(e){return{toString:e}.toString()}(()=>({type:e.type,bootstrap:e.bootstrap||$,declarations:e.declarations||$,imports:e.imports||$,exports:e.exports||$,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function F(e){return e[Nr]||null}function en(e){const t=F(e)||function me(e){return e[Ea]||null}(e)||function Ce(e){return e[Ca]||null}(e);return null!==t&&t.standalone}function fC(...e){return{\u0275providers:Oa(0,e),\u0275fromNgModule:!0}}function Oa(e,...t){const n=[],r=new Set;let o;const i=s=>{n.push(s)};return Sn(t,s=>{const a=s;di(a,i,[],r)&&(o||=[],o.push(a))}),void 0!==o&&Zd(o,i),n}function Zd(e,t){for(let n=0;n<e.length;n++){const{ngModule:r,providers:o}=e[n];Pa(o,i=>{t(i,r)})}}function di(e,t,n,r){if(!(e=M(e)))return!1;let o=null,i=ti(e);const s=!i&&F(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const u=e.ngModule;if(i=ti(u),!i)return!1;o=u}const a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){const u="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of u)di(c,t,n,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;r.add(o);try{Sn(i.imports,l=>{di(l,t,n,r)&&(c||=[],c.push(l))})}finally{}void 0!==c&&Zd(c,t)}if(!a){const c=Jt(o)||(()=>new o);t({provide:o,useFactory:c,deps:$},o),t({provide:Aa,useValue:o,multi:!0},o),t({provide:Nn,useValue:()=>H(o),multi:!0},o)}const u=i.providers;if(null!=u&&!a){const c=e;Pa(u,l=>{t(l,c)})}}}return o!==e&&void 0!==e.providers}function Pa(e,t){for(let n of e)va(n)&&(n=n.\u0275providers),Array.isArray(n)?Pa(n,t):t(n)}const hC=W({provide:String,useValue:W});function Fa(e){return null!==e&&"object"==typeof e&&hC in e}function tn(e){return"function"==typeof e}const ka=new b(""),fi={},gC={};let La;function hi(){return void 0===La&&(La=new ai),La}class ht{}class An extends ht{get destroyed(){return this._destroyed}constructor(t,n,r,o){super(),this.parent=n,this.source=r,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,ja(t,s=>this.processProvider(s)),this.records.set(Vd,xn(void 0,this)),o.has("environment")&&this.records.set(ht,xn(void 0,this));const i=this.records.get(ka);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(Aa,$,V.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const t=P(null);try{for(const r of this._ngOnDestroyHooks)r.ngOnDestroy();const n=this._onDestroyHooks;this._onDestroyHooks=[];for(const r of n)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),P(t)}}onDestroy(t){return this.assertNotDestroyed(),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){this.assertNotDestroyed();const n=Ht(this),r=Oe(void 0);try{return t()}finally{Ht(n),Oe(r)}}get(t,n=xr,r=V.Default){if(this.assertNotDestroyed(),t.hasOwnProperty(Ad))return t[Ad](this);r=oi(r);const i=Ht(this),s=Oe(void 0);try{if(!(r&V.SkipSelf)){let u=this.records.get(t);if(void 0===u){const c=function EC(e){return"function"==typeof e||"object"==typeof e&&e instanceof b}(t)&&ei(t);u=c&&this.injectableDefInScope(c)?xn(Va(t),fi):null,this.records.set(t,u)}if(null!=u)return this.hydrate(t,u)}return(r&V.Self?hi():this.parent).get(t,n=r&V.Optional&&n===xr?null:n)}catch(a){if("NullInjectorError"===a.name){if((a[ri]=a[ri]||[]).unshift(ge(t)),i)throw a;return function UE(e,t,n,r){const o=e[ri];throw t[Od]&&o.unshift(t[Od]),e.message=function zE(e,t,n,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=ge(t);if(Array.isArray(t))o=t.map(ge).join(" -> ");else if("object"==typeof t){let i=[];for(let s in t)if(t.hasOwnProperty(s)){let a=t[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):ge(a)))}o=`{${i.join(", ")}}`}return`${n}${r?"("+r+")":""}[${o}]: ${e.replace(VE,"\n ")}`}("\n"+e.message,o,n,r),e.ngTokenPath=o,e[ri]=null,e}(a,t,"R3InjectorError",this.source)}throw a}finally{Oe(s),Ht(i)}}resolveInjectorInitializers(){const t=P(null),n=Ht(this),r=Oe(void 0);try{const i=this.get(Nn,$,V.Self);for(const s of i)s()}finally{Ht(n),Oe(r),P(t)}}toString(){const t=[],n=this.records;for(const r of n.keys())t.push(ge(r));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new C(205,!1)}processProvider(t){let n=tn(t=M(t))?t:M(t&&t.provide);const r=function yC(e){return Fa(e)?xn(void 0,e.useValue):xn(function Kd(e,t,n){let r;if(tn(e)){const o=M(e);return Jt(o)||Va(o)}if(Fa(e))r=()=>M(e.useValue);else if(function Yd(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...Ma(e.deps||[]));else if(function Qd(e){return!(!e||!e.useExisting)}(e))r=()=>H(M(e.useExisting));else{const o=M(e&&(e.useClass||e.provide));if(!function DC(e){return!!e.deps}(e))return Jt(o)||Va(o);r=()=>new o(...Ma(e.deps))}return r}(e),fi)}(t);if(!tn(t)&&!0===t.multi){let o=this.records.get(n);o||(o=xn(void 0,fi,!0),o.factory=()=>Ma(o.multi),this.records.set(n,o)),n=t,o.multi.push(t)}this.records.set(n,r)}hydrate(t,n){const r=P(null);try{return n.value===fi&&(n.value=gC,n.value=n.factory()),"object"==typeof n.value&&n.value&&function vC(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}finally{P(r)}}injectableDefInScope(t){if(!t.providedIn)return!1;const n=M(t.providedIn);return"string"==typeof n?"any"===n||this.scopes.has(n):this.injectorDefTypes.has(n)}removeOnDestroy(t){const n=this._onDestroyHooks.indexOf(t);-1!==n&&this._onDestroyHooks.splice(n,1)}}function Va(e){const t=ei(e),n=null!==t?t.factory:Jt(e);if(null!==n)return n;if(e instanceof b)throw new C(204,!1);if(e instanceof Function)return function mC(e){if(e.length>0)throw new C(204,!1);const n=function xE(e){return e&&(e[ni]||e[Sd])||null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new C(204,!1)}function xn(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function ja(e,t){for(const n of e)Array.isArray(n)?ja(n,t):n&&va(n)?ja(n.\u0275providers,t):t(n)}const ne=0,E=1,I=2,ae=3,nt=4,Ie=5,Ue=6,On=7,K=8,fe=9,rt=10,S=11,kr=12,Pn=14,oe=15,Lr=16,Fn=17,Nt=18,Vr=19,nf=20,$t=21,mi=22,nn=23,A=25,Ba=1,pt=7,kn=9,ue=10;var $a=function(e){return e[e.None=0]="None",e[e.HasTransplantedViews=2]="HasTransplantedViews",e}($a||{});function _e(e){return Array.isArray(e)&&"object"==typeof e[Ba]}function Me(e){return Array.isArray(e)&&!0===e[Ba]}function ot(e){return!!e.template}function za(e){return!!(512&e[I])}class OC{constructor(t,n,r){this.previousValue=t,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}}function af(e,t,n,r){null!==t?t.applyValueToInputSignal(t,r):e[n]=r}function uf(e){return e.type.prototype.ngOnChanges&&(e.setInput=FC),PC}function PC(){const e=lf(this),t=e?.current;if(t){const n=e.previous;if(n===ft)e.previous=t;else for(let r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}}function FC(e,t,n,r,o){const i=this.declaredInputs[r],s=lf(e)||function kC(e,t){return e[cf]=t}(e,{previous:ft,current:null}),a=s.current||(s.current={}),u=s.previous,c=u[i];a[i]=new OC(c&&c.currentValue,n,u===ft),af(e,t,o,n)}const cf="__ngSimpleChanges__";function lf(e){return e[cf]||null}const gt=function(e,t,n){};function Q(e){for(;Array.isArray(e);)e=e[ne];return e}function Te(e,t){return Q(t[e.index])}function ze(e,t){const n=t[e];return _e(n)?n:n[ne]}function Qa(e){return!(128&~e[I])}function pf(e){e[Fn]=0}function $C(e){1024&e[I]||(e[I]|=1024,Qa(e)&&$r(e))}function Ya(e){return!!(9216&e[I]||e[nn]?.dirty)}function Ka(e){e[rt].changeDetectionScheduler?.notify(1),Ya(e)?$r(e):64&e[I]&&e[rt].changeDetectionScheduler?.notify()}function $r(e){e[rt].changeDetectionScheduler?.notify();let t=on(e);for(;null!==t&&!(8192&t[I])&&(t[I]|=8192,Qa(t));)t=on(t)}function Ei(e,t){if(!(256&~e[I]))throw new C(911,!1);null===e[$t]&&(e[$t]=[]),e[$t].push(t)}function on(e){const t=e[ae];return Me(t)?t[ae]:t}const T={lFrame:_f(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function m(){return T.lFrame.lView}function Z(){let e=Df();for(;null!==e&&64===e.type;)e=e.parent;return e}function Df(){return T.lFrame.currentTNode}function tw(e,t){const n=T.lFrame;n.bindingIndex=n.bindingRootIndex=e,tu(t)}function tu(e){T.lFrame.currentDirectiveIndex=e}function Ci(e){T.lFrame.currentQueryIndex=e}function rw(e){const t=e[E];return 2===t.type?t.declTNode:1===t.type?e[Ie]:null}function wf(e,t,n){if(n&V.SkipSelf){let o=t,i=e;for(;!(o=o.parent,null!==o||n&V.Host||(o=rw(i),null===o||(i=i[Pn],10&o.type))););if(null===o)return!1;t=o,e=i}const r=T.lFrame=If();return r.currentTNode=t,r.lView=e,!0}function ou(e){const t=If(),n=e[E];T.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function If(){const e=T.lFrame,t=null===e?null:e.child;return null===t?_f(e):t}function _f(e){const t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=t),t}function Mf(){const e=T.lFrame;return T.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const bf=Mf;function iu(){const e=Mf();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function sn(e){T.lFrame.selectedIndex=e}function Ii(e,t,n){Nf(e,t,3,n)}function _i(e,t,n,r){(3&e[I])===n&&Nf(e,t,n,r)}function su(e,t){let n=e[I];(3&n)===t&&(n&=16383,n+=1,e[I]=n)}function Nf(e,t,n,r){const i=r??-1,s=t.length-1;let a=0;for(let u=void 0!==r?65535&e[Fn]:0;u<s;u++)if("number"==typeof t[u+1]){if(a=t[u],null!=r&&a>=r)break}else t[u]<0&&(e[Fn]+=65536),(a<i||-1==i)&&(lw(e,n,t,u),e[Fn]=(4294901760&e[Fn])+u+2),u++}function Af(e,t){gt(4,e,t);const n=P(null);try{t.call(e)}finally{P(n),gt(5,e,t)}}function lw(e,t,n,r){const o=n[r]<0,i=n[r+1],a=e[o?-n[r]:n[r]];o?e[I]>>14<e[Fn]>>16&&(3&e[I])===t&&(e[I]+=16384,Af(a,i)):Af(a,i)}const jn=-1;class Gr{constructor(t,n,r){this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r}}function qr(e){return 32767&e}function Wr(e,t){let n=function gw(e){return e>>16}(e),r=t;for(;n>0;)r=r[Pn],n--;return r}let cu=!0;function Mi(e){const t=cu;return cu=e,t}const xf=255,Rf=5;let mw=0;const vt={};function bi(e,t){const n=Of(e,t);if(-1!==n)return n;const r=t[E];r.firstCreatePass&&(e.injectorIndex=t.length,lu(r.data,e),lu(t,null),lu(r.blueprint,null));const o=Si(e,t),i=e.injectorIndex;if(function uu(e){return e!==jn}(o)){const s=qr(o),a=Wr(o,t),u=a[E].data;for(let c=0;c<8;c++)t[i+c]=a[s+c]|u[s+c]}return t[i+8]=o,i}function lu(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Of(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function Si(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=0,r=null,o=t;for(;null!==o;){if(r=Hf(o),null===r)return jn;if(n++,o=o[Pn],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return jn}function du(e,t,n){!function yw(e,t,n){let r;"string"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(Ar)&&(r=n[Ar]),null==r&&(r=n[Ar]=mw++);const o=r&xf;t.data[e+(o>>Rf)]|=1<<o}(e,t,n)}function Pf(e,t,n){if(n&V.Optional||void 0!==e)return e;wa()}function Ff(e,t,n,r){if(n&V.Optional&&void 0===r&&(r=null),!(n&(V.Self|V.Host))){const o=e[fe],i=Oe(void 0);try{return o?o.get(t,r,n&V.Optional):Rd(t,r,n&V.Optional)}finally{Oe(i)}}return Pf(r,0,n)}function kf(e,t,n,r=V.Default,o){if(null!==e){if(2048&t[I]&&!(r&V.Self)){const s=function Iw(e,t,n,r,o){let i=e,s=t;for(;null!==i&&null!==s&&2048&s[I]&&!(512&s[I]);){const a=Lf(i,s,n,r|V.Self,vt);if(a!==vt)return a;let u=i.parent;if(!u){const c=s[nf];if(c){const l=c.get(n,vt,r);if(l!==vt)return l}u=Hf(s),s=s[Pn]}i=u}return o}(e,t,n,r,vt);if(s!==vt)return s}const i=Lf(e,t,n,r,vt);if(i!==vt)return i}return Ff(t,n,r,o)}function Lf(e,t,n,r,o){const i=function Ew(e){if("string"==typeof e)return e.charCodeAt(0)||0;const t=e.hasOwnProperty(Ar)?e[Ar]:void 0;return"number"==typeof t?t>=0?t&xf:Cw:t}(n);if("function"==typeof i){if(!wf(t,e,r))return r&V.Host?Pf(o,0,r):Ff(t,n,r,o);try{let s;if(s=i(r),null!=s||r&V.Optional)return s;wa()}finally{bf()}}else if("number"==typeof i){let s=null,a=Of(e,t),u=jn,c=r&V.Host?t[oe][Ie]:null;for((-1===a||r&V.SkipSelf)&&(u=-1===a?Si(e,t):t[a+8],u!==jn&&jf(r,!1)?(s=t[E],a=qr(u),t=Wr(u,t)):a=-1);-1!==a;){const l=t[E];if(Vf(i,a,l.data)){const d=vw(a,t,n,s,r,c);if(d!==vt)return d}u=t[a+8],u!==jn&&jf(r,t[E].data[a+8]===c)&&Vf(i,a,t)?(s=l,a=qr(u),t=Wr(u,t)):a=-1}}return o}function vw(e,t,n,r,o,i){const s=t[E],a=s.data[e+8],l=function Ti(e,t,n,r,o){const i=e.providerIndexes,s=t.data,a=1048575&i,u=e.directiveStart,l=i>>20,f=o?a+l:e.directiveEnd;for(let h=r?a:a+l;h<f;h++){const p=s[h];if(h<u&&n===p||h>=u&&p.type===n)return h}if(o){const h=s[u];if(h&&ot(h)&&h.type===n)return u}return null}(a,s,n,null==r?function rn(e){return e.componentOffset>-1}(a)&&cu:r!=s&&!!(3&a.type),o&V.Host&&i===a);return null!==l?an(t,s,l,a):vt}function an(e,t,n,r){let o=e[n];const i=t.data;if(function dw(e){return e instanceof Gr}(o)){const s=o;s.resolving&&function FE(e,t){throw t&&t.join(" > "),new C(-200,e)}(U(i[n]));const a=Mi(s.canSeeViewProviders);s.resolving=!0;const c=s.injectImpl?Oe(s.injectImpl):null;wf(e,r,V.Default);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function cw(e,t,n){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(r){const s=uf(t);(n.preOrderHooks??=[]).push(e,s),(n.preOrderCheckHooks??=[]).push(e,s)}o&&(n.preOrderHooks??=[]).push(0-e,o),i&&((n.preOrderHooks??=[]).push(e,i),(n.preOrderCheckHooks??=[]).push(e,i))}(n,i[n],t)}finally{null!==c&&Oe(c),Mi(a),s.resolving=!1,bf()}}return o}function Vf(e,t,n){return!!(n[t+(e>>Rf)]&1<<e)}function jf(e,t){return!(e&V.Self||e&V.Host&&t)}class De{constructor(t,n){this._tNode=t,this._lView=n}get(t,n,r){return kf(this._tNode,this._lView,t,oi(r),n)}}function Cw(){return new De(Z(),m())}function Hf(e){const t=e[E],n=t.type;return 2===n?t.declTNode:1===n?e[Ie]:null}function Gf(e,t=null,n=null,r){const o=qf(e,t,n,r);return o.resolveInjectorInitializers(),o}function qf(e,t=null,n=null,r,o=new Set){const i=[n||$,fC(e)];return r=r||("object"==typeof e?void 0:ge(e)),new An(i,t||hi(),r||null,o)}let Qe=(()=>{class e{static{this.THROW_IF_NOT_FOUND=xr}static{this.NULL=new ai}static create(n,r){if(Array.isArray(n))return Gf({name:""},r,n,"");{const o=n.name??"";return Gf({name:o},n.parent,n.providers,o)}}static{this.\u0275prov=B({token:e,providedIn:"any",factory:()=>H(Vd)})}static{this.__NG_ELEMENT_ID__=-1}}return e})();function pu(e){return e.ngOriginalError}class Et{constructor(){this._console=console}handleError(t){const n=this._findOriginalError(t);this._console.error("ERROR",t),n&&this._console.error("ORIGINAL ERROR",n)}_findOriginalError(t){let n=t&&pu(t);for(;n&&pu(n);)n=pu(n);return n||null}}const Zf=new b("",{providedIn:"root",factory:()=>R(Et).handleError.bind(void 0)});let $n=(()=>{class e{static{this.__NG_ELEMENT_ID__=Rw}static{this.__NG_ENV_ID__=n=>n}}return e})();class xw extends $n{constructor(t){super(),this._lView=t}onDestroy(t){return Ei(this._lView,t),()=>function Xa(e,t){if(null===e[$t])return;const n=e[$t].indexOf(t);-1!==n&&e[$t].splice(n,1)}(this._lView,t)}}function Rw(){return new xw(m())}function Ow(){return Un(Z(),m())}function Un(e,t){return new zn(Te(e,t))}let zn=(()=>{class e{constructor(n){this.nativeElement=n}static{this.__NG_ELEMENT_ID__=Ow}}return e})();function gu(e){return t=>{setTimeout(e,void 0,t)}}const Rt=class Pw extends Tr{constructor(t=!1){super(),this.destroyRef=void 0,this.__isAsync=t,function Jd(){return void 0!==xd()||null!=function HE(){return bn}()}()&&(this.destroyRef=R($n,{optional:!0})??void 0)}emit(t){const n=P(null);try{super.next(t)}finally{P(n)}}subscribe(t,n,r){let o=t,i=n||(()=>null),s=r;if(t&&"object"==typeof t){const u=t;o=u.next?.bind(u),i=u.error?.bind(u),s=u.complete?.bind(u)}this.__isAsync&&(i=gu(i),o&&(o=gu(o)),s&&(s=gu(s)));const a=super.subscribe({next:o,error:i,complete:s});return t instanceof Je&&t.add(a),a}};const yu=new Map;let Lw=0;const vu="__ngContext__";function Se(e,t){_e(t)?(e[vu]=t[Vr],function jw(e){yu.set(e[Vr],e)}(t)):e[vu]=t}function sh(e){return uh(e[kr])}function ah(e){return uh(e[nt])}function uh(e){for(;null!==e&&!Me(e);)e=e[nt];return e}let Eu;const Pi=new b("",{providedIn:"root",factory:()=>rI}),rI="ng",mh=new b(""),Gn=new b("",{providedIn:"platform",factory:()=>"unknown"}),yh=new b("",{providedIn:"root",factory:()=>function Ut(){if(void 0!==Eu)return Eu;if(typeof document<"u")return document;throw new C(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let Dh=()=>null;function Tu(e,t,n=!1){return Dh(e,t,n)}const Ih=new b("",{providedIn:"root",factory:()=>!1});var Gt=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}(Gt||{});let Bu;function $u(e,t){return Bu(e,t)}function Kn(e,t,n,r,o){if(null!=r){let i,s=!1;Me(r)?i=r:_e(r)&&(s=!0,r=r[ne]);const a=Q(r);0===e&&null!==n?null==o?function Yh(e,t,n){e.appendChild(t,n)}(t,n,a):un(t,n,a,o||null,!0):1===e&&null!==n?un(t,n,a,o||null,!0):2===e?function io(e,t,n){const r=function Zi(e,t){return e.parentNode(t)}(e,t);r&&function l_(e,t,n,r){e.removeChild(t,n,r)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function h_(e,t,n,r,o){const i=n[pt];i!==Q(n)&&Kn(t,e,r,i,o);for(let a=ue;a<n.length;a++){const u=n[a];Yi(u[E],u,e,t,r,i)}}(t,e,i,n,o)}}function Wh(e,t){t[rt].changeDetectionScheduler?.notify(1),Yi(e,t,t[S],2,null,null)}function Zh(e,t){const n=e[kn],r=n.indexOf(t);n.splice(r,1)}function Gu(e,t){if(256&t[I])return;const n=P(null);try{t[I]&=-129,t[I]|=256,t[nn]&&function ad(e){if(vn(e),Sr(e))for(let t=0;t<e.producerNode.length;t++)Zo(e.producerNode[t],e.producerIndexOfThis[t]);e.producerNode.length=e.producerLastReadVersion.length=e.producerIndexOfThis.length=0,e.liveConsumerNode&&(e.liveConsumerNode.length=e.liveConsumerIndexOfThis.length=0)}(t[nn]),function c_(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r<n.length;r+=2){const o=t[n[r]];if(!(o instanceof Gr)){const i=n[r+1];if(Array.isArray(i))for(let s=0;s<i.length;s+=2){const a=o[i[s]],u=i[s+1];gt(4,a,u);try{u.call(a)}finally{gt(5,a,u)}}else{gt(4,o,i);try{i.call(o)}finally{gt(5,o,i)}}}}}(e,t),function u_(e,t){const n=e.cleanup,r=t[On];if(null!==n)for(let i=0;i<n.length-1;i+=2)if("string"==typeof n[i]){const s=n[i+3];s>=0?r[s]():r[-s].unsubscribe(),i+=2}else n[i].call(r[n[i+1]]);null!==r&&(t[On]=null);const o=t[$t];if(null!==o){t[$t]=null;for(let i=0;i<o.length;i++)(0,o[i])()}}(e,t),1===t[E].type&&t[S].destroy();const r=t[Lr];if(null!==r&&Me(t[ae])){r!==t[ae]&&Zh(r,t);const o=t[Nt];null!==o&&o.detachView(e)}!function Hw(e){yu.delete(e[Vr])}(t)}finally{P(n)}}function un(e,t,n,r,o){e.insertBefore(t,n,r,o)}function np(e,t){return null!==t?e[oe][Ie].projection[t.projection]:null}function Qu(e,t,n,r,o,i,s){for(;null!=n;){const a=r[n.index],u=n.type;if(s&&0===t&&(a&&Se(Q(a),r),n.flags|=2),32&~n.flags)if(8&u)Qu(e,t,n.child,r,o,i,!1),Kn(t,e,o,a,i);else if(32&u){const c=$u(n,r);let l;for(;l=c();)Kn(t,e,o,l,i);Kn(t,e,o,a,i)}else 16&u?op(e,t,r,n,o,i):Kn(t,e,o,a,i);n=s?n.projectionNext:n.next}}function Yi(e,t,n,r,o,i){Qu(n,r,e.firstChild,t,o,i,!1)}function op(e,t,n,r,o,i){const s=n[oe],u=s[Ie].projection[r.projection];if(Array.isArray(u))for(let c=0;c<u.length;c++)Kn(t,e,o,u[c],i);else{let c=u;const l=s[ae];(function xi(e){return!(128&~e.flags)})(r)&&(c.flags|=128),Qu(e,t,c,l,o,i,!0)}}function ip(e,t,n){""===n?e.removeAttribute(t,"class"):e.setAttribute(t,"class",n)}const x={};function L(e,t=V.Default){const n=m();return null===n?H(e,t):kf(Z(),n,M(e),t)}function up(e,t,n,r,o,i){const s=P(null);try{let a=null;o&Bt.SignalBased&&(a=t[r][Yt]),null!==a&&void 0!==a.transformFn&&(i=a.transformFn(i)),o&Bt.HasDecoratorInputTransform&&(i=e.inputTransforms[r].call(t,i)),null!==e.setInput?e.setInput(t,a,i,n,r):af(t,a,r,i)}finally{P(s)}}function Ki(e,t,n,r,o,i,s,a,u,c,l){const d=t.blueprint.slice();return d[ne]=o,d[I]=204|r,(null!==c||e&&2048&e[I])&&(d[I]|=2048),pf(d),d[ae]=d[Pn]=e,d[K]=n,d[rt]=s||e&&e[rt],d[S]=a||e&&e[S],d[fe]=u||e&&e[fe]||null,d[Ie]=i,d[Vr]=function Vw(){return Lw++}(),d[Ue]=l,d[nf]=c,d[oe]=2==t.type?e[oe]:d,d}function Xn(e,t,n,r,o){let i=e.data[t];if(null===i)i=function Yu(e,t,n,r,o){const i=Df(),s=function Ja(){return T.lFrame.isParent}(),u=e.data[t]=function M_(e,t,n,r,o,i){let s=t?t.injectorIndex:-1,a=0;return function Vn(){return null!==T.skipHydrationRootTNode}()&&(a|=128),{type:n,index:r,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,s?i:i&&i.parent,n,t,r,o);return null===e.firstChild&&(e.firstChild=u),null!==i&&(s?null==i.child&&null!==u.parent&&(i.child=u):null===i.next&&(i.next=u,u.prev=i)),u}(e,t,n,r,o),function ew(){return T.lFrame.inI18n}()&&(i.flags|=32);else if(64&i.type){i.type=n,i.value=r,i.attrs=o;const s=function Ur(){const e=T.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}();i.injectorIndex=null===s?-1:s.injectorIndex}return function yt(e,t){const n=T.lFrame;n.currentTNode=e,n.isParent=t}(i,!0),i}function so(e,t,n,r){if(0===n)return-1;const o=t.length;for(let i=0;i<n;i++)t.push(r),e.blueprint.push(r),e.data.push(null);return o}function cp(e,t,n,r,o){const i=function be(){return T.lFrame.selectedIndex}(),s=2&r;try{sn(-1),s&&t.length>A&&function ap(e,t,n,r){if(!r)if(3&~t[I]){const i=e.preOrderHooks;null!==i&&_i(t,i,0,n)}else{const i=e.preOrderCheckHooks;null!==i&&Ii(t,i,n)}sn(n)}(e,t,A,!1),gt(s?2:0,o),n(r,o)}finally{sn(i),gt(s?3:1,o)}}function ec(e,t,n,r,o,i,s,a,u,c,l){const d=A+r,f=d+o,h=function v_(e,t){const n=[];for(let r=0;r<t;r++)n.push(r<e?null:x);return n}(d,f),p="function"==typeof c?c():c;return h[E]={type:e,blueprint:h,template:n,queries:null,viewQuery:a,declTNode:t,data:h.slice().fill(null,d),bindingStartIndex:d,expandoStartIndex:f,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:"function"==typeof i?i():i,pipeRegistry:"function"==typeof s?s():s,firstChild:null,schemas:u,consts:p,incompleteFirstPass:!1,ssrId:l}}let dp=()=>null;function fp(e,t,n,r,o){for(let i in t){if(!t.hasOwnProperty(i))continue;const s=t[i];if(void 0===s)continue;r??={};let a,u=Bt.None;Array.isArray(s)?(a=s[0],u=s[1]):a=s;let c=i;if(null!==o){if(!o.hasOwnProperty(i))continue;c=o[i]}0===e?hp(r,n,c,a,u):hp(r,n,c,a)}return r}function hp(e,t,n,r,o){let i;e.hasOwnProperty(n)?(i=e[n]).push(t,r):i=e[n]=[t,r],void 0!==o&&i.push(o)}function O_(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function k_(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;ot(t)&&(n[""]=e)}}function V_(e,t,n,r,o){e.data[r]=o;const i=o.factory||(o.factory=Jt(o.type)),s=new Gr(i,ot(o),L);e.blueprint[r]=s,n[r]=s,function A_(e,t,n,r,o){const i=o.hostBindings;if(i){let s=e.hostBindingOpCodes;null===s&&(s=e.hostBindingOpCodes=[]);const a=~t.index;(function x_(e){let t=e.length;for(;t>0;){const n=e[--t];if("number"==typeof n&&n<0)return n}return 0})(s)!=a&&s.push(a),s.push(n,r,i)}}(e,t,r,so(e,n,o.hostVars,x),o)}function B_(e,t,n){let r=null,o=0;for(;o<n.length;){const i=n[o];if(0!==i)if(5!==i){if("number"==typeof i)break;if(e.hasOwnProperty(i)){null===r&&(r=[]);const s=e[i];for(let a=0;a<s.length;a+=3)if(s[a]===t){r.push(i,s[a+1],s[a+2],n[o+1]);break}}o+=2}else o+=2;else o+=4}return r}function yp(e,t){const n=e.contentQueries;if(null!==n){const r=P(null);try{for(let o=0;o<n.length;o+=2){const s=n[o+1];if(-1!==s){const a=e.data[s];Ci(n[o]),a.contentQueries(2,t[s],s)}}}finally{P(r)}}}function oc(e,t,n){Ci(0);const r=P(null);try{t(e,n)}finally{P(r)}}function $_(e,t){const n=ze(t,e),r=n[E];!function U_(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}(r,n);const o=n[ne];null!==o&&null===n[Ue]&&(n[Ue]=Tu(o,n[fe])),sc(r,n,n[K])}function sc(e,t,n){ou(t);try{const r=e.viewQuery;null!==r&&oc(1,r,n);const o=e.template;null!==o&&cp(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),t[Nt]?.finishViewCreation(e),e.staticContentQueries&&yp(e,t),e.staticViewQueries&&oc(2,e.viewQuery,n);const i=e.components;null!==i&&function z_(e,t){for(let n=0;n<t.length;n++)$_(e,t[n])}(t,i)}catch(r){throw e.firstCreatePass&&(e.incompleteFirstPass=!0,e.firstCreatePass=!1),r}finally{t[I]&=-5,iu()}}function co(e,t,n,r,o=!1){for(;null!==n;){const i=t[n.index];null!==i&&r.push(Q(i)),Me(i)&&wp(i,r);const s=n.type;if(8&s)co(e,t,n.child,r);else if(32&s){const a=$u(n,t);let u;for(;u=a();)r.push(u)}else if(16&s){const a=np(t,n);if(Array.isArray(a))r.push(...a);else{const u=on(t[oe]);co(u[E],u,a,r,!0)}}n=o?n.projectionNext:n.next}return r}function wp(e,t){for(let n=ue;n<e.length;n++){const r=e[n],o=r[E].firstChild;null!==o&&co(r[E],r,o,t)}e[pt]!==e[ne]&&t.push(e[pt])}let Ip=[];const Z_={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{},consumerIsAlwaysLive:!0,consumerMarkedDirty:e=>{$r(e.lView)},consumerOnSignalRead(){this.lView[nn]=this}},_p=100;function es(e,t=!0,n=0){const r=e[rt],o=r.rendererFactory;o.begin?.();try{!function Q_(e,t){uc(e,t);let n=0;for(;Ya(e);){if(n===_p)throw new C(103,!1);n++,uc(e,1)}}(e,n)}catch(s){throw t&&function Ji(e,t){const n=e[fe],r=n?n.get(Et,null):null;r&&r.handleError(t)}(e,s),s}finally{o.end?.(),r.inlineEffectRunner?.flush()}}function Y_(e,t,n,r){const o=t[I];if(!(256&~o))return;t[rt].inlineEffectRunner?.flush(),ou(t);let s=null,a=null;(function K_(e){return 2!==e.type})(e)&&(a=function G_(e){return e[nn]??function q_(e){const t=Ip.pop()??Object.create(Z_);return t.lView=e,t}(e)}(t),s=function id(e){return e&&(e.nextProducerIndex=0),P(e)}(a));try{pf(t),function Ef(e){return T.lFrame.bindingIndex=e}(e.bindingStartIndex),null!==n&&cp(e,t,n,2,r);const u=!(3&~o);if(u){const d=e.preOrderCheckHooks;null!==d&&Ii(t,d,null)}else{const d=e.preOrderHooks;null!==d&&_i(t,d,0,null),su(t,0)}if(function X_(e){for(let t=sh(e);null!==t;t=ah(t)){if(!(t[I]&$a.HasTransplantedViews))continue;const n=t[kn];for(let r=0;r<n.length;r++){$C(n[r])}}}(t),Mp(t,0),null!==e.contentQueries&&yp(e,t),u){const d=e.contentCheckHooks;null!==d&&Ii(t,d)}else{const d=e.contentHooks;null!==d&&_i(t,d,1),su(t,1)}!function D_(e,t){const n=e.hostBindingOpCodes;if(null!==n)try{for(let r=0;r<n.length;r++){const o=n[r];if(o<0)sn(~o);else{const i=o,s=n[++r],a=n[++r];tw(s,i),a(2,t[i])}}}finally{sn(-1)}}(e,t);const c=e.components;null!==c&&Sp(t,c,0);const l=e.viewQuery;if(null!==l&&oc(2,l,r),u){const d=e.viewCheckHooks;null!==d&&Ii(t,d)}else{const d=e.viewHooks;null!==d&&_i(t,d,2),su(t,2)}if(!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),t[mi]){for(const d of t[mi])d();t[mi]=null}t[I]&=-73}catch(u){throw $r(t),u}finally{null!==a&&(function sd(e,t){if(P(t),e&&void 0!==e.producerNode&&void 0!==e.producerIndexOfThis&&void 0!==e.producerLastReadVersion){if(Sr(e))for(let n=e.nextProducerIndex;n<e.producerNode.length;n++)Zo(e.producerNode[n],e.producerIndexOfThis[n]);for(;e.producerNode.length>e.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}(a,s),function W_(e){e.lView[nn]!==e&&(e.lView=null,Ip.push(e))}(a)),iu()}}function Mp(e,t){for(let n=sh(e);null!==n;n=ah(n))for(let r=ue;r<n.length;r++)bp(n[r],t)}function J_(e,t,n){bp(ze(t,e),n)}function bp(e,t){Qa(e)&&uc(e,t)}function uc(e,t){const r=e[E],o=e[I],i=e[nn];let s=!!(0===t&&16&o);if(s||=!!(64&o&&0===t),s||=!!(1024&o),s||=!(!i?.dirty||!na(i)),i&&(i.dirty=!1),e[I]&=-9217,s)Y_(r,e,r.template,e[K]);else if(8192&o){Mp(e,1);const a=r.components;null!==a&&Sp(e,a,1)}}function Sp(e,t,n){for(let r=0;r<t.length;r++)J_(e,t[r],n)}function lo(e){for(e[rt].changeDetectionScheduler?.notify();e;){e[I]|=64;const t=on(e);if(za(e)&&!t)return e;e=t}return null}class fo{get rootNodes(){const t=this._lView,n=t[E];return co(n,t,n.firstChild,[])}constructor(t,n,r=!0){this._lView=t,this._cdRefInjectingView=n,this.notifyErrorHandler=r,this._appRef=null,this._attachedToViewContainer=!1}get context(){return this._lView[K]}set context(t){this._lView[K]=t}get destroyed(){return!(256&~this._lView[I])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){const t=this._lView[ae];if(Me(t)){const n=t[8],r=n?n.indexOf(this):-1;r>-1&&(function ro(e,t){if(e.length<=ue)return;const n=ue+t,r=e[n];if(r){const o=r[Lr];null!==o&&o!==e&&Zh(o,r),t>0&&(e[n-1][nt]=r[nt]);const i=ii(e,ue+t);!function r_(e,t){Wh(e,t),t[ne]=null,t[Ie]=null}(r[E],r);const s=i[Nt];null!==s&&s.detachView(i[E]),r[ae]=null,r[nt]=null,r[I]&=-129}return r}(t,r),ii(n,r))}this._attachedToViewContainer=!1}!function Wi(e,t){if(!(256&t[I])){const n=t[S];n.destroyNode&&Yi(e,t,n,3,null,null),function i_(e){let t=e[kr];if(!t)return Gu(e[E],e);for(;t;){let n=null;if(_e(t))n=t[kr];else{const r=t[ue];r&&(n=r)}if(!n){for(;t&&!t[nt]&&t!==e;)_e(t)&&Gu(t[E],t),t=t[ae];null===t&&(t=e),_e(t)&&Gu(t[E],t),n=t&&t[nt]}t=n}}(t)}}(this._lView[E],this._lView)}onDestroy(t){Ei(this._lView,t)}markForCheck(){lo(this._cdRefInjectingView||this._lView)}detach(){this._lView[I]&=-129}reattach(){Ka(this._lView),this._lView[I]|=128}detectChanges(){this._lView[I]|=1024,es(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new C(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,Wh(this._lView[E],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new C(902,!1);this._appRef=t,Ka(this._lView)}}class pc{}class bM{}class Pp{}class TM{resolveComponentFactory(t){throw function SM(e){const t=Error(`No component factory found for ${ge(e)}.`);return t.ngComponent=e,t}(t)}}let ss=(()=>{class e{static{this.NULL=new TM}}return e})();class kp{}let AM=(()=>{class e{static{this.\u0275prov=B({token:e,providedIn:"root",factory:()=>null})}}return e})();const gc={};function jp(...e){}class re{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:n=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Rt(!1),this.onMicrotaskEmpty=new Rt(!1),this.onStable=new Rt(!1),this.onError=new Rt(!1),typeof Zone>"u")throw new C(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&n,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function xM(){const e="function"==typeof q.requestAnimationFrame;let t=q[e?"requestAnimationFrame":"setTimeout"],n=q[e?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&t&&n){const r=t[Zone.__symbol__("OriginalDelegate")];r&&(t=r);const o=n[Zone.__symbol__("OriginalDelegate")];o&&(n=o)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:n}}().nativeRequestAnimationFrame,function PM(e){const t=()=>{!function OM(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(q,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,yc(e),e.isCheckStableRunning=!0,mc(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),yc(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(n,r,o,i,s,a)=>{if(function FM(e){return!(!Array.isArray(e)||1!==e.length)&&!0===e[0].data?.__ignore_ng_zone__}(a))return n.invokeTask(o,i,s,a);try{return Hp(e),n.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&t(),Bp(e)}},onInvoke:(n,r,o,i,s,a,u)=>{try{return Hp(e),n.invoke(o,i,s,a,u)}finally{e.shouldCoalesceRunChangeDetection&&t(),Bp(e)}},onHasTask:(n,r,o,i)=>{n.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,yc(e),mc(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(n,r,o,i)=>(n.handleError(o,i),e.runOutsideAngular(()=>e.onError.emit(i)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!re.isInAngularZone())throw new C(909,!1)}static assertNotInAngularZone(){if(re.isInAngularZone())throw new C(909,!1)}run(t,n,r){return this._inner.run(t,n,r)}runTask(t,n,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,t,RM,jp,jp);try{return i.runTask(s,n,r)}finally{i.cancelTask(s)}}runGuarded(t,n,r){return this._inner.runGuarded(t,n,r)}runOutsideAngular(t){return this._outer.run(t)}}const RM={};function mc(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function yc(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function Hp(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Bp(e){e._nesting--,mc(e)}class $p{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Rt,this.onMicrotaskEmpty=new Rt,this.onStable=new Rt,this.onError=new Rt}run(t,n,r){return t.apply(n,r)}runGuarded(t,n,r){return t.apply(n,r)}runOutsideAngular(t){return t()}runTask(t,n,r,o){return t.apply(n,r)}}let yo=(()=>{class e{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const n=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const r of n)r()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static{this.\u0275prov=B({token:e,providedIn:"root",factory:()=>new e})}}return e})();class Zp extends ss{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const n=F(t);return new Eo(n,this.ngModule)}}function Qp(e){const t=[];for(const n in e){if(!e.hasOwnProperty(n))continue;const r=e[n];void 0!==r&&t.push({propName:Array.isArray(r)?r[0]:r,templateName:n})}return t}class cs{constructor(t,n){this.injector=t,this.parentInjector=n}get(t,n,r){r=oi(r);const o=this.injector.get(t,gc,r);return o!==gc||n===gc?o:this.parentInjector.get(t,n,r)}}class Eo extends Pp{get inputs(){const t=this.componentDef,n=t.inputTransforms,r=Qp(t.inputs);if(null!==n)for(const o of r)n.hasOwnProperty(o.propName)&&(o.transform=n[o.propName]);return r}get outputs(){return Qp(this.componentDef.outputs)}constructor(t,n){super(),this.componentDef=t,this.ngModule=n,this.componentType=t.type,this.selector=function iC(e){return e.map(oC).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!n}create(t,n,r,o){const i=P(null);try{let s=(o=o||this.ngModule)instanceof ht?o:o?.injector;s&&null!==this.componentDef.getStandaloneInjector&&(s=this.componentDef.getStandaloneInjector(s)||s);const a=s?new cs(t,s):t,u=a.get(kp,null);if(null===u)throw new C(407,!1);const c=a.get(AM,null),f={rendererFactory:u,sanitizer:c,inlineEffectRunner:null,afterRenderEventManager:a.get(yo,null),changeDetectionScheduler:a.get(pc,null)},h=u.createRenderer(null,this.componentDef),p=this.componentDef.selectors[0][0]||"div",g=r?function E_(e,t,n,r){const i=r.get(Ih,!1)||n===et.ShadowDom,s=e.selectRootElement(t,i);return function C_(e){dp(e)}(s),s}(h,r,this.componentDef.encapsulation,a):function qi(e,t,n){return e.createElement(t,n)}(h,p,function BM(e){const t=e.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(p));let D=512;this.componentDef.signals?D|=4096:this.componentDef.onPush||(D|=16);let v=null;null!==g&&(v=Tu(g,a,!0));const y=ec(0,null,null,1,0,null,null,null,null,null,null),w=Ki(null,y,null,D,null,null,f,h,a,null,v);let O,j;ou(w);try{const ie=this.componentDef;let je,_r=null;ie.findHostDirectiveDefs?(je=[],_r=new Map,ie.findHostDirectiveDefs(ie,je,_r),je.push(ie)):je=[ie];const Wv=function UM(e,t){const n=e[E],r=A;return e[r]=t,Xn(n,r,2,"#host",null)}(w,g),qO=function zM(e,t,n,r,o,i,s){const a=o[E];!function GM(e,t,n,r){for(const o of e)t.mergedAttrs=Or(t.mergedAttrs,o.hostAttrs);null!==t.mergedAttrs&&(function us(e,t,n){let r=n?e.styles:null,o=n?e.classes:null,i=0;if(null!==t)for(let s=0;s<t.length;s++){const a=t[s];"number"==typeof a?i=a:1==i?o=fa(o,a):2==i&&(r=fa(r,a+": "+t[++s]+";"))}n?e.styles=r:e.stylesWithoutHost=r,n?e.classes=o:e.classesWithoutHost=o}(t,t.mergedAttrs,!0),null!==n&&function sp(e,t,n){const{mergedAttrs:r,classes:o,styles:i}=n;null!==r&&xa(e,t,r),null!==o&&ip(e,t,o),null!==i&&function g_(e,t,n){e.setAttribute(t,"style",n)}(e,t,i)}(r,n,t))}(r,e,t,s);let u=null;null!==t&&(u=Tu(t,o[fe]));const c=i.rendererFactory.createRenderer(t,n);let l=16;n.signals?l=4096:n.onPush&&(l=64);const d=Ki(o,function lp(e){const t=e.tView;return null===t||t.incompleteFirstPass?e.tView=ec(1,null,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts,e.id):t}(n),null,l,o[e.index],e,i,c,null,null,u);return a.firstCreatePass&&function nc(e,t,n){t.componentOffset=n,(e.components??=[]).push(t.index)}(a,e,r.length-1),function Xi(e,t){return e[kr]?e[13][nt]=t:e[kr]=t,e[13]=t,t}(o,d),o[e.index]=d}(Wv,g,ie,je,w,f,h);j=function Br(e,t){return e.data[t]}(y,A),g&&function WM(e,t,n,r){if(r)xa(e,n,["ng-version","17.3.12"]);else{const{attrs:o,classes:i}=function sC(e){const t=[],n=[];let r=1,o=2;for(;r<e.length;){let i=e[r];if("string"==typeof i)2===o?""!==i&&t.push(i,e[++r]):8===o&&n.push(i);else{if(!tt(o))break;o=i}r++}return{attrs:t,classes:n}}(t.selectors[0]);o&&xa(e,n,o),i&&i.length>0&&ip(e,n,i.join(" "))}}(h,ie,g,r),void 0!==n&&function ZM(e,t,n){const r=e.projection=[];for(let o=0;o<t.length;o++){const i=n[o];r.push(null!=i?Array.from(i):null)}}(j,this.ngContentSelectors,n),O=function qM(e,t,n,r,o,i){const s=Z(),a=o[E],u=Te(s,o);!function pp(e,t,n,r,o,i){for(let c=0;c<r.length;c++)du(bi(n,t),e,r[c].type);!function L_(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}(n,e.data.length,r.length);for(let c=0;c<r.length;c++){const l=r[c];l.providersResolver&&l.providersResolver(l)}let s=!1,a=!1,u=so(e,t,r.length,null);for(let c=0;c<r.length;c++){const l=r[c];n.mergedAttrs=Or(n.mergedAttrs,l.hostAttrs),V_(e,n,t,u,l),k_(u,l,o),null!==l.contentQueries&&(n.flags|=4),(null!==l.hostBindings||null!==l.hostAttrs||0!==l.hostVars)&&(n.flags|=64);const d=l.type.prototype;!s&&(d.ngOnChanges||d.ngOnInit||d.ngDoCheck)&&((e.preOrderHooks??=[]).push(n.index),s=!0),!a&&(d.ngOnChanges||d.ngDoCheck)&&((e.preOrderCheckHooks??=[]).push(n.index),a=!0),u++}!function b_(e,t,n){const o=t.directiveEnd,i=e.data,s=t.attrs,a=[];let u=null,c=null;for(let l=t.directiveStart;l<o;l++){const d=i[l],f=n?n.get(d):null,p=f?f.outputs:null;u=fp(0,d.inputs,l,u,f?f.inputs:null),c=fp(1,d.outputs,l,c,p);const g=null===u||null===s||Ra(t)?null:B_(u,l,s);a.push(g)}null!==u&&(u.hasOwnProperty("class")&&(t.flags|=8),u.hasOwnProperty("style")&&(t.flags|=16)),t.initialInputs=a,t.inputs=u,t.outputs=c}(e,n,i)}(a,o,s,n,null,r);for(let l=0;l<n.length;l++)Se(an(o,a,s.directiveStart+l,s),o);(function gp(e,t,n){const r=n.directiveStart,o=n.directiveEnd,i=n.index,s=function nw(){return T.lFrame.currentDirectiveIndex}();try{sn(i);for(let a=r;a<o;a++){const u=e.data[a],c=t[a];tu(a),(null!==u.hostBindings||0!==u.hostVars||null!==u.hostAttrs)&&O_(u,c)}}finally{sn(-1),tu(s)}})(a,o,s),u&&Se(u,o);const c=an(o,a,s.directiveStart+s.componentOffset,s);if(e[K]=o[K]=c,null!==i)for(const l of i)l(c,t);return function Ku(e,t,n){if(function Ua(e){return!!(4&e.flags)}(t)){const r=P(null);try{const i=t.directiveEnd;for(let s=t.directiveStart;s<i;s++){const a=e.data[s];a.contentQueries&&a.contentQueries(1,n[s],s)}}finally{P(r)}}}(a,s,o),c}(qO,ie,je,_r,w,[QM]),sc(y,w,null)}finally{iu()}return new $M(this.componentType,O,Un(j,w),w,j)}finally{P(i)}}}class $M extends bM{constructor(t,n,r,o,i){super(),this.location=r,this._rootLView=o,this._tNode=i,this.previousInputValues=null,this.instance=n,this.hostView=this.changeDetectorRef=new fo(o,void 0,!1),this.componentType=t}setInput(t,n){const r=this._tNode.inputs;let o;if(null!==r&&(o=r[t])){if(this.previousInputValues??=new Map,this.previousInputValues.has(t)&&Object.is(this.previousInputValues.get(t),n))return;const i=this._rootLView;(function ic(e,t,n,r,o){for(let i=0;i<n.length;){const s=n[i++],a=n[i++],u=n[i++];up(e.data[s],t[s],r,a,u,o)}})(i[E],i,o,t,n),this.previousInputValues.set(t,n),lo(ze(this._tNode.index,i))}}get injector(){return new De(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(t){this.hostView.onDestroy(t)}}function QM(){const e=Z();!function wi(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){const i=e.data[n].type.prototype,{ngAfterContentInit:s,ngAfterContentChecked:a,ngAfterViewInit:u,ngAfterViewChecked:c,ngOnDestroy:l}=i;s&&(e.contentHooks??=[]).push(-n,s),a&&((e.contentHooks??=[]).push(n,a),(e.contentCheckHooks??=[]).push(n,a)),u&&(e.viewHooks??=[]).push(-n,u),c&&((e.viewHooks??=[]).push(n,c),(e.viewCheckHooks??=[]).push(n,c)),null!=l&&(e.destroyHooks??=[]).push(n,l)}}(m()[E],e)}class dn{}class Nb{}class xc extends dn{constructor(t,n,r){super(),this._parent=n,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new Zp(this);const o=function we(e,t){const n=e[Nd]||null;if(!n&&!0===t)throw new Error(`Type ${ge(e)} does not have '\u0275mod' property.`);return n}(t);this._bootstrapComponents=function Ge(e){return e instanceof Function?e():e}(o.bootstrap),this._r3Injector=qf(t,n,[{provide:dn,useValue:this},{provide:ss,useValue:this.componentFactoryResolver},...r],ge(t),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(t)}get injector(){return this._r3Injector}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(n=>n()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Rc extends Nb{constructor(t){super(),this.moduleType=t}create(t){return new xc(this.moduleType,t,[])}}let wo=(()=>{class e{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new EE(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const n=this.taskId++;return this.pendingTasks.add(n),n}remove(n){this.pendingTasks.delete(n),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const vr="en-US";let Fm=vr;const hD=new b(""),Ns=new b("");let vl,yl=(()=>{class e{constructor(n,r,o){this._ngZone=n,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,vl||(function aA(e){vl=e}(o),o.addToWindow(r)),this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{re.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb()}});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(n)||(clearTimeout(r.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),n()},r)),this._callbacks.push({doneCb:n,timeoutId:i,updateCb:o})}whenStable(n,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,r,o){return[]}static{this.\u0275fac=function(r){return new(r||e)(H(re),H(Dl),H(Ns))}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac})}}return e})(),Dl=(()=>{class e{constructor(){this._applications=new Map}registerApplication(n,r){this._applications.set(n,r)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,r=!0){return vl?.findTestabilityInTree(this,n,r)??null}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac,providedIn:"platform"})}}return e})();function El(e){return!!e&&"function"==typeof e.then}function pD(e){return!!e&&"function"==typeof e.subscribe}const uA=new b("");let Cl=(()=>{class e{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((n,r)=>{this.resolve=n,this.reject=r}),this.appInits=R(uA,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const n=[];for(const o of this.appInits){const i=o();if(El(i))n.push(i);else if(pD(i)){const s=new Promise((a,u)=>{i.subscribe({complete:a,error:u})});n.push(s)}}const r=()=>{this.done=!0,this.resolve()};Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),0===n.length&&r(),this.initialized=!0}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const gD=new b("");function DD(e,t){return Array.isArray(t)?t.reduce(DD,e):{...e,...t}}let mn=(()=>{class e{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=R(Zf),this.afterRenderEffectManager=R(yo),this.externalTestViews=new Set,this.beforeRender=new Tr,this.afterTick=new Tr,this.componentTypes=[],this.components=[],this.isStable=R(wo).hasPendingTasks.pipe(ME(n=>!n)),this._injector=R(ht)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(n,r){const o=n instanceof Pp;if(!this._injector.get(Cl).done)throw!o&&en(n),new C(405,!1);let s;s=o?n:this._injector.get(ss).resolveComponentFactory(n),this.componentTypes.push(s.componentType);const a=function cA(e){return e.isBoundToModule}(s)?void 0:this._injector.get(dn),c=s.create(Qe.NULL,[],r||s.selector,a),l=c.location.nativeElement,d=c.injector.get(hD,null);return d?.registerApplication(l),c.onDestroy(()=>{this.detachView(c.hostView),As(this.components,c),d?.unregisterApplication(l)}),this._loadComponent(c),c}tick(){this._tick(!0)}_tick(n){if(this._runningTick)throw new C(101,!1);const r=P(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(n)}catch(o){this.internalErrorHandler(o)}finally{this.afterTick.next(),this._runningTick=!1,P(r)}}detectChangesInAttachedViews(n){let r=0;const o=this.afterRenderEffectManager;for(;;){if(r===_p)throw new C(103,!1);if(n){const i=0===r;this.beforeRender.next(i);for(let{_lView:s,notifyErrorHandler:a}of this._views)dA(s,i,a)}if(r++,o.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:i})=>wl(i))&&(o.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:i})=>wl(i))))break}}attachView(n){const r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){const r=n;As(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n);const r=this._injector.get(gD,[]);[...this._bootstrapListeners,...r].forEach(o=>o(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>As(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new C(406,!1);const n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function As(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}function dA(e,t,n){!t&&!wl(e)||function fA(e,t,n){let r;n?(r=0,e[I]|=1024):r=64&e[I]?0:1,es(e,t,r)}(e,n,t)}function wl(e){return Ya(e)}let mA=(()=>{class e{constructor(){this.zone=R(re),this.applicationRef=R(mn)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function yA(){const e=R(re),t=R(Et);return n=>e.runOutsideAngular(()=>t.handleError(n))}let vA=(()=>{class e{constructor(){this.subscription=new Je,this.initialized=!1,this.zone=R(re),this.pendingTasks=R(wo)}initialize(){if(this.initialized)return;this.initialized=!0;let n=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(n=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{re.assertNotInAngularZone(),queueMicrotask(()=>{null!==n&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(n),n=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{re.assertInAngularZone(),n??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const kt=new b("",{providedIn:"root",factory:()=>R(kt,V.Optional|V.SkipSelf)||function EA(){return typeof $localize<"u"&&$localize.locale||vr}()}),Il=new b("");let wD=(()=>{class e{constructor(n){this._injector=n,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(n,r){const o=function kM(e="zone.js",t){return"noop"===e?new $p:"zone.js"===e?new re(t):e}(r?.ngZone,function CD(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}({eventCoalescing:r?.ngZoneEventCoalescing,runCoalescing:r?.ngZoneRunCoalescing}));return o.run(()=>{const i=function xb(e,t,n){return new xc(e,t,n)}(n.moduleType,this.injector,function ED(e){return[{provide:re,useFactory:e},{provide:Nn,multi:!0,useFactory:()=>{const t=R(mA,{optional:!0});return()=>t.initialize()}},{provide:Nn,multi:!0,useFactory:()=>{const t=R(vA);return()=>{t.initialize()}}},{provide:Zf,useFactory:yA}]}(()=>o)),s=i.injector.get(Et,null);return o.runOutsideAngular(()=>{const a=o.onError.subscribe({next:u=>{s.handleError(u)}});i.onDestroy(()=>{As(this._modules,i),a.unsubscribe()})}),function yD(e,t,n){try{const r=n();return El(r)?r.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,o,()=>{const a=i.injector.get(Cl);return a.runInitializers(),a.donePromise.then(()=>(function km(e){"string"==typeof e&&(Fm=e.toLowerCase().replace(/_/g,"-"))}(i.injector.get(kt,vr)||vr),this._moduleDoBootstrap(i),i))})})}bootstrapModule(n,r=[]){const o=DD({},r);return function gA(e,t,n){const r=new Rc(n);return Promise.resolve(r)}(0,0,n).then(i=>this.bootstrapModuleFactory(i,o))}_moduleDoBootstrap(n){const r=n.injector.get(mn);if(n._bootstrapComponents.length>0)n._bootstrapComponents.forEach(o=>r.bootstrap(o));else{if(!n.instance.ngDoBootstrap)throw new C(-403,!1);n.instance.ngDoBootstrap(r)}this._modules.push(n)}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new C(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const n=this._injector.get(Il,null);n&&(n.forEach(r=>r()),n.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static{this.\u0275fac=function(r){return new(r||e)(H(Qe))}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac,providedIn:"platform"})}}return e})(),Qt=null;const ID=new b("");function _D(e,t,n=[]){const r=`Platform: ${t}`,o=new b(r);return(i=[])=>{let s=_l();if(!s||s.injector.get(ID,!1)){const a=[...n,...i,{provide:o,useValue:!0}];e?e(a):function IA(e){if(Qt&&!Qt.get(ID,!1))throw new C(400,!1);(function mD(){!function tE(e){ld=e}(()=>{throw new C(600,!1)})})(),Qt=e;const t=e.get(wD);(function bD(e){e.get(mh,null)?.forEach(n=>n())})(e)}(function MD(e=[],t){return Qe.create({name:t,providers:[{provide:ka,useValue:"platform"},{provide:Il,useValue:new Set([()=>Qt=null])},...e]})}(a,r))}return function _A(e){const t=_l();if(!t)throw new C(401,!1);return t}()}}function _l(){return Qt?.get(wD)??null}const jA=_D(null,"core",[]);let HA=(()=>{class e{constructor(n){}static{this.\u0275fac=function(r){return new(r||e)(H(mn))}}static{this.\u0275mod=Pr({type:e})}static{this.\u0275inj=Mn({})}}return e})(),sv=null;function Rl(){return sv}class wx{}const Dn=new b("");let HR=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Pr({type:e})}static{this.\u0275inj=Mn({})}}return e})();function wv(e){return"server"===e}class vO extends wx{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Zl extends vO{static makeCurrent(){!function Cx(e){sv??=e}(new Zl)}onAndCancel(t,n,r){return t.addEventListener(n,r),()=>{t.removeEventListener(n,r)}}dispatchEvent(t,n){t.dispatchEvent(n)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,n){return(n=n||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,n){return"window"===n?window:"document"===n?t:"body"===n?t.body:null}getBaseHref(t){const n=function EO(){return Go=Go||document.querySelector("base"),Go?Go.getAttribute("href"):null}();return null==n?null:function CO(e){return new URL(e,document.baseURI).pathname}(n)}resetBaseElement(){Go=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return function uR(e,t){t=encodeURIComponent(t);for(const n of e.split(";")){const r=n.indexOf("="),[o,i]=-1==r?[n,""]:[n.slice(0,r),n.slice(r+1)];if(o.trim()===t)return decodeURIComponent(i)}return null}(document.cookie,t)}}let Go=null,IO=(()=>{class e{build(){return new XMLHttpRequest}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac})}}return e})();const Ql=new b("");let xv=(()=>{class e{constructor(n,r){this._zone=r,this._eventNameToPlugin=new Map,n.forEach(o=>{o.manager=this}),this._plugins=n.slice().reverse()}addEventListener(n,r,o){return this._findPluginFor(r).addEventListener(n,r,o)}getZone(){return this._zone}_findPluginFor(n){let r=this._eventNameToPlugin.get(n);if(r)return r;if(r=this._plugins.find(i=>i.supports(n)),!r)throw new C(5101,!1);return this._eventNameToPlugin.set(n,r),r}static{this.\u0275fac=function(r){return new(r||e)(H(Ql),H(re))}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac})}}return e})();class Rv{constructor(t){this._doc=t}}const Yl="ng-app-id";let Ov=(()=>{class e{constructor(n,r,o,i={}){this.doc=n,this.appId=r,this.nonce=o,this.platformId=i,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=wv(i),this.resetHostNodes()}addStyles(n){for(const r of n)1===this.changeUsageCount(r,1)&&this.onStyleAdded(r)}removeStyles(n){for(const r of n)this.changeUsageCount(r,-1)<=0&&this.onStyleRemoved(r)}ngOnDestroy(){const n=this.styleNodesInDOM;n&&(n.forEach(r=>r.remove()),n.clear());for(const r of this.getAllStyles())this.onStyleRemoved(r);this.resetHostNodes()}addHost(n){this.hostNodes.add(n);for(const r of this.getAllStyles())this.addStyleToHost(n,r)}removeHost(n){this.hostNodes.delete(n)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(n){for(const r of this.hostNodes)this.addStyleToHost(r,n)}onStyleRemoved(n){const r=this.styleRef;r.get(n)?.elements?.forEach(o=>o.remove()),r.delete(n)}collectServerRenderedStyles(){const n=this.doc.head?.querySelectorAll(`style[${Yl}="${this.appId}"]`);if(n?.length){const r=new Map;return n.forEach(o=>{null!=o.textContent&&r.set(o.textContent,o)}),r}return null}changeUsageCount(n,r){const o=this.styleRef;if(o.has(n)){const i=o.get(n);return i.usage+=r,i.usage}return o.set(n,{usage:r,elements:[]}),r}getStyleElement(n,r){const o=this.styleNodesInDOM,i=o?.get(r);if(i?.parentNode===n)return o.delete(r),i.removeAttribute(Yl),i;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=r,this.platformIsServer&&s.setAttribute(Yl,this.appId),n.appendChild(s),s}}addStyleToHost(n,r){const o=this.getStyleElement(n,r),i=this.styleRef,s=i.get(r)?.elements;s?s.push(o):i.set(r,{elements:[o],usage:1})}resetHostNodes(){const n=this.hostNodes;n.clear(),n.add(this.doc.head)}static{this.\u0275fac=function(r){return new(r||e)(H(Dn),H(Pi),H(yh,8),H(Gn))}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac})}}return e})();const Kl={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},Xl=/%COMP%/g,SO=new b("",{providedIn:"root",factory:()=>!0});function Fv(e,t){return t.map(n=>n.replace(Xl,e))}let kv=(()=>{class e{constructor(n,r,o,i,s,a,u,c=null){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.removeStylesOnCompDestroy=i,this.doc=s,this.platformId=a,this.ngZone=u,this.nonce=c,this.rendererByCompId=new Map,this.platformIsServer=wv(a),this.defaultRenderer=new Jl(n,s,u,this.platformIsServer)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===et.ShadowDom&&(r={...r,encapsulation:et.Emulated});const o=this.getOrCreateRenderer(n,r);return o instanceof Vv?o.applyToHost(n):o instanceof ed&&o.applyStyles(),o}getOrCreateRenderer(n,r){const o=this.rendererByCompId;let i=o.get(r.id);if(!i){const s=this.doc,a=this.ngZone,u=this.eventManager,c=this.sharedStylesHost,l=this.removeStylesOnCompDestroy,d=this.platformIsServer;switch(r.encapsulation){case et.Emulated:i=new Vv(u,c,r,this.appId,l,s,a,d);break;case et.ShadowDom:return new xO(u,c,n,r,s,a,this.nonce,d);default:i=new ed(u,c,r,l,s,a,d)}o.set(r.id,i)}return i}ngOnDestroy(){this.rendererByCompId.clear()}static{this.\u0275fac=function(r){return new(r||e)(H(xv),H(Ov),H(Pi),H(SO),H(Dn),H(Gn),H(re),H(yh))}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac})}}return e})();class Jl{constructor(t,n,r,o){this.eventManager=t,this.doc=n,this.ngZone=r,this.platformIsServer=o,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(t,n){return n?this.doc.createElementNS(Kl[n]||n,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,n){(Lv(t)?t.content:t).appendChild(n)}insertBefore(t,n,r){t&&(Lv(t)?t.content:t).insertBefore(n,r)}removeChild(t,n){t&&t.removeChild(n)}selectRootElement(t,n){let r="string"==typeof t?this.doc.querySelector(t):t;if(!r)throw new C(-5104,!1);return n||(r.textContent=""),r}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,n,r,o){if(o){n=o+":"+n;const i=Kl[o];i?t.setAttributeNS(i,n,r):t.setAttribute(n,r)}else t.setAttribute(n,r)}removeAttribute(t,n,r){if(r){const o=Kl[r];o?t.removeAttributeNS(o,n):t.removeAttribute(`${r}:${n}`)}else t.removeAttribute(n)}addClass(t,n){t.classList.add(n)}removeClass(t,n){t.classList.remove(n)}setStyle(t,n,r,o){o&(Gt.DashCase|Gt.Important)?t.style.setProperty(n,r,o&Gt.Important?"important":""):t.style[n]=r}removeStyle(t,n,r){r&Gt.DashCase?t.style.removeProperty(n):t.style[n]=""}setProperty(t,n,r){null!=t&&(t[n]=r)}setValue(t,n){t.nodeValue=n}listen(t,n,r){if("string"==typeof t&&!(t=Rl().getGlobalEventTarget(this.doc,t)))throw new Error(`Unsupported event target ${t} for event ${n}`);return this.eventManager.addEventListener(t,n,this.decoratePreventDefault(r))}decoratePreventDefault(t){return n=>{if("__ngUnwrap__"===n)return t;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>t(n)):t(n))&&n.preventDefault()}}}function Lv(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class xO extends Jl{constructor(t,n,r,o,i,s,a,u){super(t,i,s,u),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const c=Fv(o.id,o.styles);for(const l of c){const d=document.createElement("style");a&&d.setAttribute("nonce",a),d.textContent=l,this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,n){return super.appendChild(this.nodeOrShadowRoot(t),n)}insertBefore(t,n,r){return super.insertBefore(this.nodeOrShadowRoot(t),n,r)}removeChild(t,n){return super.removeChild(this.nodeOrShadowRoot(t),n)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class ed extends Jl{constructor(t,n,r,o,i,s,a,u){super(t,i,s,a),this.sharedStylesHost=n,this.removeStylesOnCompDestroy=o,this.styles=u?Fv(u,r.styles):r.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class Vv extends ed{constructor(t,n,r,o,i,s,a,u){const c=o+"-"+r.id;super(t,n,r,i,s,a,u,c),this.contentAttr=function TO(e){return"_ngcontent-%COMP%".replace(Xl,e)}(c),this.hostAttr=function NO(e){return"_nghost-%COMP%".replace(Xl,e)}(c)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,n){const r=super.createElement(t,n);return super.setAttribute(r,this.contentAttr,""),r}}let RO=(()=>{class e extends Rv{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o){return n.addEventListener(r,o,!1),()=>this.removeEventListener(n,r,o)}removeEventListener(n,r,o){return n.removeEventListener(r,o)}static{this.\u0275fac=function(r){return new(r||e)(H(Dn))}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac})}}return e})();const jv=["alt","control","meta","shift"],OO={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},PO={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let FO=(()=>{class e extends Rv{constructor(n){super(n)}supports(n){return null!=e.parseEventName(n)}addEventListener(n,r,o){const i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Rl().onAndCancel(n,i.domEventName,s))}static parseEventName(n){const r=n.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),jv.forEach(c=>{const l=r.indexOf(c);l>-1&&(r.splice(l,1),s+=c+".")}),s+=i,0!=r.length||0===i.length)return null;const u={};return u.domEventName=o,u.fullKey=s,u}static matchEventFullKeyCode(n,r){let o=OO[n.key]||n.key,i="";return r.indexOf("code.")>-1&&(o=n.code,i="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),jv.forEach(s=>{s!==o&&(0,PO[s])(n)&&(i+=s+".")}),i+=o,i===r)}static eventCallback(n,r,o){return i=>{e.matchEventFullKeyCode(i,n)&&o.runGuarded(()=>r(i))}}static _normalizeKey(n){return"esc"===n?"escape":n}static{this.\u0275fac=function(r){return new(r||e)(H(Dn))}}static{this.\u0275prov=B({token:e,factory:e.\u0275fac})}}return e})();const jO=_D(jA,"browser",[{provide:Gn,useValue:"browser"},{provide:mh,useValue:function kO(){Zl.makeCurrent()},multi:!0},{provide:Dn,useFactory:function VO(){return function nI(e){Eu=e}(document),document},deps:[]}]),HO=new b(""),$v=[{provide:Ns,useClass:class wO{addToWindow(t){q.getAngularTestability=(r,o=!0)=>{const i=t.findTestabilityInTree(r,o);if(null==i)throw new C(5103,!1);return i},q.getAllAngularTestabilities=()=>t.getAllTestabilities(),q.getAllAngularRootElements=()=>t.getAllRootElements(),q.frameworkStabilizers||(q.frameworkStabilizers=[]),q.frameworkStabilizers.push(r=>{const o=q.getAllAngularTestabilities();let i=o.length;const s=function(){i--,0==i&&r()};o.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(t,n,r){return null==n?null:t.getTestability(n)??(r?Rl().isShadowRoot(n)?this.findTestabilityInTree(t,n.host,!0):this.findTestabilityInTree(t,n.parentElement,!0):null)}},deps:[]},{provide:hD,useClass:yl,deps:[re,Dl,Ns]},{provide:yl,useClass:yl,deps:[re,Dl,Ns]}],Uv=[{provide:ka,useValue:"root"},{provide:Et,useFactory:function LO(){return new Et},deps:[]},{provide:Ql,useClass:RO,multi:!0,deps:[Dn,re,Gn]},{provide:Ql,useClass:FO,multi:!0,deps:[Dn]},kv,Ov,xv,{provide:kp,useExisting:kv},{provide:class GR{},useClass:IO,deps:[]},[]];let BO=(()=>{class e{constructor(n){}static withServerTransition(n){return{ngModule:e,providers:[{provide:Pi,useValue:n.appId}]}}static{this.\u0275fac=function(r){return new(r||e)(H(HO,12))}}static{this.\u0275mod=Pr({type:e})}static{this.\u0275inj=Mn({providers:[...Uv,...$v],imports:[HR,HA]})}}return e})(),GO=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=Pr({type:e});static \u0275inj=Mn({imports:[BO]})}return e})();jO().bootstrapModule(GO).catch(e=>console.error(e))}},Mr=>{Mr(Mr.s=627)}]);
frontend/agentic-dashboard/dist/agentic-dashboard/polyfills.c0d2b2dc49300de4.js ADDED
@@ -0,0 +1 @@
 
 
1
+ "use strict";(self.webpackChunkagentic_dashboard=self.webpackChunkagentic_dashboard||[]).push([[461],{50:(te,Q,ve)=>{ve(935)},935:()=>{const te=globalThis;function Q(e){return(te.__Zone_symbol_prefix||"__zone_symbol__")+e}const Te=Object.getOwnPropertyDescriptor,Le=Object.defineProperty,Ie=Object.getPrototypeOf,_t=Object.create,Et=Array.prototype.slice,Me="addEventListener",Ze="removeEventListener",Ae=Q(Me),je=Q(Ze),ae="true",le="false",Pe=Q("");function He(e,r){return Zone.current.wrap(e,r)}function xe(e,r,c,t,i){return Zone.current.scheduleMacroTask(e,r,c,t,i)}const j=Q,Ce=typeof window<"u",ge=Ce?window:void 0,$=Ce&&ge||globalThis,Tt="removeAttribute";function Ve(e,r){for(let c=e.length-1;c>=0;c--)"function"==typeof e[c]&&(e[c]=He(e[c],r+"_"+c));return e}function We(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const qe=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,De=!("nw"in $)&&typeof $.process<"u"&&"[object process]"===$.process.toString(),Ge=!De&&!qe&&!(!Ce||!ge.HTMLElement),Xe=typeof $.process<"u"&&"[object process]"===$.process.toString()&&!qe&&!(!Ce||!ge.HTMLElement),Se={},yt=j("enable_beforeunload"),Ye=function(e){if(!(e=e||$.event))return;let r=Se[e.type];r||(r=Se[e.type]=j("ON_PROPERTY"+e.type));const c=this||e.target||$,t=c[r];let i;return Ge&&c===ge&&"error"===e.type?(i=t&&t.call(this,e.message,e.filename,e.lineno,e.colno,e.error),!0===i&&e.preventDefault()):(i=t&&t.apply(this,arguments),"beforeunload"===e.type&&$[yt]&&"string"==typeof i?e.returnValue=i:null!=i&&!i&&e.preventDefault()),i};function $e(e,r,c){let t=Te(e,r);if(!t&&c&&Te(c,r)&&(t={enumerable:!0,configurable:!0}),!t||!t.configurable)return;const i=j("on"+r+"patched");if(e.hasOwnProperty(i)&&e[i])return;delete t.writable,delete t.value;const u=t.get,E=t.set,T=r.slice(2);let m=Se[T];m||(m=Se[T]=j("ON_PROPERTY"+T)),t.set=function(D){let d=this;!d&&e===$&&(d=$),d&&("function"==typeof d[m]&&d.removeEventListener(T,Ye),E&&E.call(d,null),d[m]=D,"function"==typeof D&&d.addEventListener(T,Ye,!1))},t.get=function(){let D=this;if(!D&&e===$&&(D=$),!D)return null;const d=D[m];if(d)return d;if(u){let w=u.call(this);if(w)return t.set.call(this,w),"function"==typeof D[Tt]&&D.removeAttribute(r),w}return null},Le(e,r,t),e[i]=!0}function Ke(e,r,c){if(r)for(let t=0;t<r.length;t++)$e(e,"on"+r[t],c);else{const t=[];for(const i in e)"on"==i.slice(0,2)&&t.push(i);for(let i=0;i<t.length;i++)$e(e,t[i],c)}}const re=j("originalInstance");function we(e){const r=$[e];if(!r)return;$[j(e)]=r,$[e]=function(){const i=Ve(arguments,e);switch(i.length){case 0:this[re]=new r;break;case 1:this[re]=new r(i[0]);break;case 2:this[re]=new r(i[0],i[1]);break;case 3:this[re]=new r(i[0],i[1],i[2]);break;case 4:this[re]=new r(i[0],i[1],i[2],i[3]);break;default:throw new Error("Arg list too long.")}},fe($[e],r);const c=new r(function(){});let t;for(t in c)"XMLHttpRequest"===e&&"responseBlob"===t||function(i){"function"==typeof c[i]?$[e].prototype[i]=function(){return this[re][i].apply(this[re],arguments)}:Le($[e].prototype,i,{set:function(u){"function"==typeof u?(this[re][i]=He(u,e+"."+i),fe(this[re][i],u)):this[re][i]=u},get:function(){return this[re][i]}})}(t);for(t in r)"prototype"!==t&&r.hasOwnProperty(t)&&($[e][t]=r[t])}function ue(e,r,c){let t=e;for(;t&&!t.hasOwnProperty(r);)t=Ie(t);!t&&e[r]&&(t=e);const i=j(r);let u=null;if(t&&(!(u=t[i])||!t.hasOwnProperty(i))&&(u=t[i]=t[r],We(t&&Te(t,r)))){const T=c(u,i,r);t[r]=function(){return T(this,arguments)},fe(t[r],u)}return u}function mt(e,r,c){let t=null;function i(u){const E=u.data;return E.args[E.cbIdx]=function(){u.invoke.apply(this,arguments)},t.apply(E.target,E.args),u}t=ue(e,r,u=>function(E,T){const m=c(E,T);return m.cbIdx>=0&&"function"==typeof T[m.cbIdx]?xe(m.name,T[m.cbIdx],m,i):u.apply(E,T)})}function fe(e,r){e[j("OriginalDelegate")]=r}let Je=!1,Be=!1;function kt(){if(Je)return Be;Je=!0;try{const e=ge.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(Be=!0)}catch{}return Be}function Qe(e){return"function"==typeof e}function et(e){return"number"==typeof e}let ye=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){ye=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{ye=!1}const vt={useG:!0},ne={},tt={},nt=new RegExp("^"+Pe+"(\\w+)(true|false)$"),rt=j("propagationStopped");function ot(e,r){const c=(r?r(e):e)+le,t=(r?r(e):e)+ae,i=Pe+c,u=Pe+t;ne[e]={},ne[e][le]=i,ne[e][ae]=u}function bt(e,r,c,t){const i=t&&t.add||Me,u=t&&t.rm||Ze,E=t&&t.listeners||"eventListeners",T=t&&t.rmAll||"removeAllListeners",m=j(i),D="."+i+":",d="prependListener",w="."+d+":",Z=function(k,h,H){if(k.isRemoved)return;const V=k.callback;let Y;"object"==typeof V&&V.handleEvent&&(k.callback=g=>V.handleEvent(g),k.originalDelegate=V);try{k.invoke(k,h,[H])}catch(g){Y=g}const G=k.options;return G&&"object"==typeof G&&G.once&&h[u].call(h,H.type,k.originalDelegate?k.originalDelegate:k.callback,G),Y};function x(k,h,H){if(!(h=h||e.event))return;const V=k||h.target||e,Y=V[ne[h.type][H?ae:le]];if(Y){const G=[];if(1===Y.length){const g=Z(Y[0],V,h);g&&G.push(g)}else{const g=Y.slice();for(let z=0;z<g.length&&(!h||!0!==h[rt]);z++){const O=Z(g[z],V,h);O&&G.push(O)}}if(1===G.length)throw G[0];for(let g=0;g<G.length;g++){const z=G[g];r.nativeScheduleMicroTask(()=>{throw z})}}}const U=function(k){return x(this,k,!1)},K=function(k){return x(this,k,!0)};function J(k,h){if(!k)return!1;let H=!0;h&&void 0!==h.useG&&(H=h.useG);const V=h&&h.vh;let Y=!0;h&&void 0!==h.chkDup&&(Y=h.chkDup);let G=!1;h&&void 0!==h.rt&&(G=h.rt);let g=k;for(;g&&!g.hasOwnProperty(i);)g=Ie(g);if(!g&&k[i]&&(g=k),!g||g[m])return!1;const z=h&&h.eventNameToString,O={},R=g[m]=g[i],b=g[j(u)]=g[u],S=g[j(E)]=g[E],ee=g[j(T)]=g[T];let W;h&&h.prepend&&(W=g[j(h.prepend)]=g[h.prepend]);const q=H?function(s){if(!O.isExisting)return R.call(O.target,O.eventName,O.capture?K:U,O.options)}:function(s){return R.call(O.target,O.eventName,s.invoke,O.options)},A=H?function(s){if(!s.isRemoved){const l=ne[s.eventName];let v;l&&(v=l[s.capture?ae:le]);const C=v&&s.target[v];if(C)for(let y=0;y<C.length;y++)if(C[y]===s){C.splice(y,1),s.isRemoved=!0,s.removeAbortListener&&(s.removeAbortListener(),s.removeAbortListener=null),0===C.length&&(s.allRemoved=!0,s.target[v]=null);break}}if(s.allRemoved)return b.call(s.target,s.eventName,s.capture?K:U,s.options)}:function(s){return b.call(s.target,s.eventName,s.invoke,s.options)},he=h&&h.diff?h.diff:function(s,l){const v=typeof l;return"function"===v&&s.callback===l||"object"===v&&s.originalDelegate===l},de=Zone[j("UNPATCHED_EVENTS")],oe=e[j("PASSIVE_EVENTS")],a=function(s,l,v,C,y=!1,L=!1){return function(){const I=this||e;let M=arguments[0];h&&h.transferEventName&&(M=h.transferEventName(M));let B=arguments[1];if(!B)return s.apply(this,arguments);if(De&&"uncaughtException"===M)return s.apply(this,arguments);let F=!1;if("function"!=typeof B){if(!B.handleEvent)return s.apply(this,arguments);F=!0}if(V&&!V(s,B,I,arguments))return;const Ee=ye&&!!oe&&-1!==oe.indexOf(M),ie=function f(s){if("object"==typeof s&&null!==s){const l={...s};return s.signal&&(l.signal=s.signal),l}return s}(function N(s,l){return!ye&&"object"==typeof s&&s?!!s.capture:ye&&l?"boolean"==typeof s?{capture:s,passive:!0}:s?"object"==typeof s&&!1!==s.passive?{...s,passive:!0}:s:{passive:!0}:s}(arguments[2],Ee)),pe=ie?.signal;if(pe?.aborted)return;if(de)for(let ce=0;ce<de.length;ce++)if(M===de[ce])return Ee?s.call(I,M,B,ie):s.apply(this,arguments);const Ue=!!ie&&("boolean"==typeof ie||ie.capture),lt=!(!ie||"object"!=typeof ie)&&ie.once,At=Zone.current;let ze=ne[M];ze||(ot(M,z),ze=ne[M]);const ut=ze[Ue?ae:le];let Ne,ke=I[ut],ft=!1;if(ke){if(ft=!0,Y)for(let ce=0;ce<ke.length;ce++)if(he(ke[ce],B))return}else ke=I[ut]=[];const ht=I.constructor.name,dt=tt[ht];dt&&(Ne=dt[M]),Ne||(Ne=ht+l+(z?z(M):M)),O.options=ie,lt&&(O.options.once=!1),O.target=I,O.capture=Ue,O.eventName=M,O.isExisting=ft;const Re=H?vt:void 0;Re&&(Re.taskData=O),pe&&(O.options.signal=void 0);const se=At.scheduleEventTask(Ne,B,Re,v,C);if(pe){O.options.signal=pe;const ce=()=>se.zone.cancelTask(se);s.call(pe,"abort",ce,{once:!0}),se.removeAbortListener=()=>pe.removeEventListener("abort",ce)}return O.target=null,Re&&(Re.taskData=null),lt&&(O.options.once=!0),!ye&&"boolean"==typeof se.options||(se.options=ie),se.target=I,se.capture=Ue,se.eventName=M,F&&(se.originalDelegate=B),L?ke.unshift(se):ke.push(se),y?I:void 0}};return g[i]=a(R,D,q,A,G),W&&(g[d]=a(W,w,function(s){return W.call(O.target,O.eventName,s.invoke,O.options)},A,G,!0)),g[u]=function(){const s=this||e;let l=arguments[0];h&&h.transferEventName&&(l=h.transferEventName(l));const v=arguments[2],C=!!v&&("boolean"==typeof v||v.capture),y=arguments[1];if(!y)return b.apply(this,arguments);if(V&&!V(b,y,s,arguments))return;const L=ne[l];let I;L&&(I=L[C?ae:le]);const M=I&&s[I];if(M)for(let B=0;B<M.length;B++){const F=M[B];if(he(F,y))return M.splice(B,1),F.isRemoved=!0,0!==M.length||(F.allRemoved=!0,s[I]=null,C||"string"!=typeof l)||(s[Pe+"ON_PROPERTY"+l]=null),F.zone.cancelTask(F),G?s:void 0}return b.apply(this,arguments)},g[E]=function(){const s=this||e;let l=arguments[0];h&&h.transferEventName&&(l=h.transferEventName(l));const v=[],C=st(s,z?z(l):l);for(let y=0;y<C.length;y++){const L=C[y];v.push(L.originalDelegate?L.originalDelegate:L.callback)}return v},g[T]=function(){const s=this||e;let l=arguments[0];if(l){h&&h.transferEventName&&(l=h.transferEventName(l));const v=ne[l];if(v){const L=s[v[le]],I=s[v[ae]];if(L){const M=L.slice();for(let B=0;B<M.length;B++){const F=M[B];this[u].call(this,l,F.originalDelegate?F.originalDelegate:F.callback,F.options)}}if(I){const M=I.slice();for(let B=0;B<M.length;B++){const F=M[B];this[u].call(this,l,F.originalDelegate?F.originalDelegate:F.callback,F.options)}}}}else{const v=Object.keys(s);for(let C=0;C<v.length;C++){const L=nt.exec(v[C]);let I=L&&L[1];I&&"removeListener"!==I&&this[T].call(this,I)}this[T].call(this,"removeListener")}if(G)return this},fe(g[i],R),fe(g[u],b),ee&&fe(g[T],ee),S&&fe(g[E],S),!0}let X=[];for(let k=0;k<c.length;k++)X[k]=J(c[k],t);return X}function st(e,r){if(!r){const u=[];for(let E in e){const T=nt.exec(E);let m=T&&T[1];if(m&&(!r||m===r)){const D=e[E];if(D)for(let d=0;d<D.length;d++)u.push(D[d])}}return u}let c=ne[r];c||(ot(r),c=ne[r]);const t=e[c[le]],i=e[c[ae]];return t?i?t.concat(i):t.slice():i?i.slice():[]}function Pt(e,r){const c=e.Event;c&&c.prototype&&r.patchMethod(c.prototype,"stopImmediatePropagation",t=>function(i,u){i[rt]=!0,t&&t.apply(i,u)})}const Oe=j("zoneTask");function me(e,r,c,t){let i=null,u=null;c+=t;const E={};function T(D){const d=D.data;d.args[0]=function(){return D.invoke.apply(this,arguments)};const w=i.apply(e,d.args);return et(w)?d.handleId=w:(d.handle=w,d.isRefreshable=Qe(w.refresh)),D}function m(D){const{handle:d,handleId:w}=D.data;return u.call(e,d??w)}i=ue(e,r+=t,D=>function(d,w){if(Qe(w[0])){const Z={isRefreshable:!1,isPeriodic:"Interval"===t,delay:"Timeout"===t||"Interval"===t?w[1]||0:void 0,args:w},x=w[0];w[0]=function(){try{return x.apply(this,arguments)}finally{const{handle:H,handleId:V,isPeriodic:Y,isRefreshable:G}=Z;!Y&&!G&&(V?delete E[V]:H&&(H[Oe]=null))}};const U=xe(r,w[0],Z,T,m);if(!U)return U;const{handleId:K,handle:J,isRefreshable:X,isPeriodic:k}=U.data;if(K)E[K]=U;else if(J&&(J[Oe]=U,X&&!k)){const h=J.refresh;J.refresh=function(){const{zone:H,state:V}=U;return"notScheduled"===V?(U._state="scheduled",H._updateTaskCount(U,1)):"running"===V&&(U._state="scheduling"),h.call(this)}}return J??K??U}return D.apply(e,w)}),u=ue(e,c,D=>function(d,w){const Z=w[0];let x;et(Z)?(x=E[Z],delete E[Z]):(x=Z?.[Oe],x?Z[Oe]=null:x=Z),x?.type?x.cancelFn&&x.zone.cancelTask(x):D.apply(e,w)})}function it(e,r,c){if(!c||0===c.length)return r;const t=c.filter(u=>u.target===e);if(!t||0===t.length)return r;const i=t[0].ignoreProperties;return r.filter(u=>-1===i.indexOf(u))}function ct(e,r,c,t){e&&Ke(e,it(e,r,c),t)}function Fe(e){return Object.getOwnPropertyNames(e).filter(r=>r.startsWith("on")&&r.length>2).map(r=>r.substring(2))}function It(e,r,c,t,i){const u=Zone.__symbol__(t);if(r[u])return;const E=r[u]=r[t];r[t]=function(T,m,D){return m&&m.prototype&&i.forEach(function(d){const w=`${c}.${t}::`+d,Z=m.prototype;try{if(Z.hasOwnProperty(d)){const x=e.ObjectGetOwnPropertyDescriptor(Z,d);x&&x.value?(x.value=e.wrapWithCurrentZone(x.value,w),e._redefineProperty(m.prototype,d,x)):Z[d]&&(Z[d]=e.wrapWithCurrentZone(Z[d],w))}else Z[d]&&(Z[d]=e.wrapWithCurrentZone(Z[d],w))}catch{}}),E.call(r,T,m,D)},e.attachOriginToPatched(r[t],E)}const at=function be(){const e=globalThis,r=!0===e[Q("forceDuplicateZoneCheck")];if(e.Zone&&(r||"function"!=typeof e.Zone.__symbol__))throw new Error("Zone already loaded.");return e.Zone??=function ve(){const e=te.performance;function r(N){e&&e.mark&&e.mark(N)}function c(N,_){e&&e.measure&&e.measure(N,_)}r("Zone");let t=(()=>{class N{static{this.__symbol__=Q}static assertZonePatched(){if(te.Promise!==O.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let n=N.current;for(;n.parent;)n=n.parent;return n}static get current(){return b.zone}static get currentTask(){return S}static __load_patch(n,o,p=!1){if(O.hasOwnProperty(n)){const P=!0===te[Q("forceDuplicateZoneCheck")];if(!p&&P)throw Error("Already loaded patch: "+n)}else if(!te["__Zone_disable_"+n]){const P="Zone:"+n;r(P),O[n]=o(te,N,R),c(P,P)}}get parent(){return this._parent}get name(){return this._name}constructor(n,o){this._parent=n,this._name=o?o.name||"unnamed":"<root>",this._properties=o&&o.properties||{},this._zoneDelegate=new u(this,this._parent&&this._parent._zoneDelegate,o)}get(n){const o=this.getZoneWith(n);if(o)return o._properties[n]}getZoneWith(n){let o=this;for(;o;){if(o._properties.hasOwnProperty(n))return o;o=o._parent}return null}fork(n){if(!n)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,n)}wrap(n,o){if("function"!=typeof n)throw new Error("Expecting function got: "+n);const p=this._zoneDelegate.intercept(this,n,o),P=this;return function(){return P.runGuarded(p,this,arguments,o)}}run(n,o,p,P){b={parent:b,zone:this};try{return this._zoneDelegate.invoke(this,n,o,p,P)}finally{b=b.parent}}runGuarded(n,o=null,p,P){b={parent:b,zone:this};try{try{return this._zoneDelegate.invoke(this,n,o,p,P)}catch(q){if(this._zoneDelegate.handleError(this,q))throw q}}finally{b=b.parent}}runTask(n,o,p){if(n.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(n.zone||J).name+"; Execution: "+this.name+")");const P=n,{type:q,data:{isPeriodic:A=!1,isRefreshable:_e=!1}={}}=n;if(n.state===X&&(q===z||q===g))return;const he=n.state!=H;he&&P._transitionTo(H,h);const de=S;S=P,b={parent:b,zone:this};try{q==g&&n.data&&!A&&!_e&&(n.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,P,o,p)}catch(oe){if(this._zoneDelegate.handleError(this,oe))throw oe}}finally{const oe=n.state;if(oe!==X&&oe!==Y)if(q==z||A||_e&&oe===k)he&&P._transitionTo(h,H,k);else{const f=P._zoneDelegates;this._updateTaskCount(P,-1),he&&P._transitionTo(X,H,X),_e&&(P._zoneDelegates=f)}b=b.parent,S=de}}scheduleTask(n){if(n.zone&&n.zone!==this){let p=this;for(;p;){if(p===n.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${n.zone.name}`);p=p.parent}}n._transitionTo(k,X);const o=[];n._zoneDelegates=o,n._zone=this;try{n=this._zoneDelegate.scheduleTask(this,n)}catch(p){throw n._transitionTo(Y,k,X),this._zoneDelegate.handleError(this,p),p}return n._zoneDelegates===o&&this._updateTaskCount(n,1),n.state==k&&n._transitionTo(h,k),n}scheduleMicroTask(n,o,p,P){return this.scheduleTask(new E(G,n,o,p,P,void 0))}scheduleMacroTask(n,o,p,P,q){return this.scheduleTask(new E(g,n,o,p,P,q))}scheduleEventTask(n,o,p,P,q){return this.scheduleTask(new E(z,n,o,p,P,q))}cancelTask(n){if(n.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(n.zone||J).name+"; Execution: "+this.name+")");if(n.state===h||n.state===H){n._transitionTo(V,h,H);try{this._zoneDelegate.cancelTask(this,n)}catch(o){throw n._transitionTo(Y,V),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(n,-1),n._transitionTo(X,V),n.runCount=-1,n}}_updateTaskCount(n,o){const p=n._zoneDelegates;-1==o&&(n._zoneDelegates=null);for(let P=0;P<p.length;P++)p[P]._updateTaskCount(n.type,o)}}return N})();const i={name:"",onHasTask:(N,_,n,o)=>N.hasTask(n,o),onScheduleTask:(N,_,n,o)=>N.scheduleTask(n,o),onInvokeTask:(N,_,n,o,p,P)=>N.invokeTask(n,o,p,P),onCancelTask:(N,_,n,o)=>N.cancelTask(n,o)};class u{get zone(){return this._zone}constructor(_,n,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this._zone=_,this._parentDelegate=n,this._forkZS=o&&(o&&o.onFork?o:n._forkZS),this._forkDlgt=o&&(o.onFork?n:n._forkDlgt),this._forkCurrZone=o&&(o.onFork?this._zone:n._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:n._interceptZS),this._interceptDlgt=o&&(o.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this._zone:n._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:n._invokeZS),this._invokeDlgt=o&&(o.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this._zone:n._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:n._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this._zone:n._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:n._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this._zone:n._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:n._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this._zone:n._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:n._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this._zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const p=o&&o.onHasTask;(p||n&&n._hasTaskZS)&&(this._hasTaskZS=p?o:i,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,o.onScheduleTask||(this._scheduleTaskZS=i,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this._zone),o.onInvokeTask||(this._invokeTaskZS=i,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this._zone),o.onCancelTask||(this._cancelTaskZS=i,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this._zone))}fork(_,n){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,_,n):new t(_,n)}intercept(_,n,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,_,n,o):n}invoke(_,n,o,p,P){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,_,n,o,p,P):n.apply(o,p)}handleError(_,n){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,_,n)}scheduleTask(_,n){let o=n;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,_,n),o||(o=n);else if(n.scheduleFn)n.scheduleFn(n);else{if(n.type!=G)throw new Error("Task is missing scheduleFn.");U(n)}return o}invokeTask(_,n,o,p){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,_,n,o,p):n.callback.apply(o,p)}cancelTask(_,n){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,_,n);else{if(!n.cancelFn)throw Error("Task is not cancelable");o=n.cancelFn(n)}return o}hasTask(_,n){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,_,n)}catch(o){this.handleError(_,o)}}_updateTaskCount(_,n){const o=this._taskCounts,p=o[_],P=o[_]=p+n;if(P<0)throw new Error("More tasks executed then were scheduled.");0!=p&&0!=P||this.hasTask(this._zone,{microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:_})}}class E{constructor(_,n,o,p,P,q){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=_,this.source=n,this.data=p,this.scheduleFn=P,this.cancelFn=q,!o)throw new Error("callback is not defined");this.callback=o;const A=this;this.invoke=_===z&&p&&p.useG?E.invokeTask:function(){return E.invokeTask.call(te,A,this,arguments)}}static invokeTask(_,n,o){_||(_=this),ee++;try{return _.runCount++,_.zone.runTask(_,n,o)}finally{1==ee&&K(),ee--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(X,k)}_transitionTo(_,n,o){if(this._state!==n&&this._state!==o)throw new Error(`${this.type} '${this.source}': can not transition to '${_}', expecting state '${n}'${o?" or '"+o+"'":""}, was '${this._state}'.`);this._state=_,_==X&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const T=Q("setTimeout"),m=Q("Promise"),D=Q("then");let Z,d=[],w=!1;function x(N){if(Z||te[m]&&(Z=te[m].resolve(0)),Z){let _=Z[D];_||(_=Z.then),_.call(Z,N)}else te[T](N,0)}function U(N){0===ee&&0===d.length&&x(K),N&&d.push(N)}function K(){if(!w){for(w=!0;d.length;){const N=d;d=[];for(let _=0;_<N.length;_++){const n=N[_];try{n.zone.runTask(n,null,null)}catch(o){R.onUnhandledError(o)}}}R.microtaskDrainDone(),w=!1}}const J={name:"NO ZONE"},X="notScheduled",k="scheduling",h="scheduled",H="running",V="canceling",Y="unknown",G="microTask",g="macroTask",z="eventTask",O={},R={symbol:Q,currentZoneFrame:()=>b,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:U,showUncaughtError:()=>!t[Q("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:x};let b={parent:null,zone:new t(null,null)},S=null,ee=0;function W(){}return c("Zone","Zone"),t}(),e.Zone}();(function Zt(e){(function Nt(e){e.__load_patch("ZoneAwarePromise",(r,c,t)=>{const i=Object.getOwnPropertyDescriptor,u=Object.defineProperty,T=t.symbol,m=[],D=!1!==r[T("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],d=T("Promise"),w=T("then"),Z="__creationTrace__";t.onUnhandledError=f=>{if(t.showUncaughtError()){const a=f&&f.rejection;a?console.error("Unhandled Promise rejection:",a instanceof Error?a.message:a,"; Zone:",f.zone.name,"; Task:",f.task&&f.task.source,"; Value:",a,a instanceof Error?a.stack:void 0):console.error(f)}},t.microtaskDrainDone=()=>{for(;m.length;){const f=m.shift();try{f.zone.runGuarded(()=>{throw f.throwOriginal?f.rejection:f})}catch(a){U(a)}}};const x=T("unhandledPromiseRejectionHandler");function U(f){t.onUnhandledError(f);try{const a=c[x];"function"==typeof a&&a.call(this,f)}catch{}}function K(f){return f&&f.then}function J(f){return f}function X(f){return A.reject(f)}const k=T("state"),h=T("value"),H=T("finally"),V=T("parentPromiseValue"),Y=T("parentPromiseState"),G="Promise.then",g=null,z=!0,O=!1,R=0;function b(f,a){return s=>{try{N(f,a,s)}catch(l){N(f,!1,l)}}}const S=function(){let f=!1;return function(s){return function(){f||(f=!0,s.apply(null,arguments))}}},ee="Promise resolved with itself",W=T("currentTaskTrace");function N(f,a,s){const l=S();if(f===s)throw new TypeError(ee);if(f[k]===g){let v=null;try{("object"==typeof s||"function"==typeof s)&&(v=s&&s.then)}catch(C){return l(()=>{N(f,!1,C)})(),f}if(a!==O&&s instanceof A&&s.hasOwnProperty(k)&&s.hasOwnProperty(h)&&s[k]!==g)n(s),N(f,s[k],s[h]);else if(a!==O&&"function"==typeof v)try{v.call(s,l(b(f,a)),l(b(f,!1)))}catch(C){l(()=>{N(f,!1,C)})()}else{f[k]=a;const C=f[h];if(f[h]=s,f[H]===H&&a===z&&(f[k]=f[Y],f[h]=f[V]),a===O&&s instanceof Error){const y=c.currentTask&&c.currentTask.data&&c.currentTask.data[Z];y&&u(s,W,{configurable:!0,enumerable:!1,writable:!0,value:y})}for(let y=0;y<C.length;)o(f,C[y++],C[y++],C[y++],C[y++]);if(0==C.length&&a==O){f[k]=R;let y=s;try{throw new Error("Uncaught (in promise): "+function E(f){return f&&f.toString===Object.prototype.toString?(f.constructor&&f.constructor.name||"")+": "+JSON.stringify(f):f?f.toString():Object.prototype.toString.call(f)}(s)+(s&&s.stack?"\n"+s.stack:""))}catch(L){y=L}D&&(y.throwOriginal=!0),y.rejection=s,y.promise=f,y.zone=c.current,y.task=c.currentTask,m.push(y),t.scheduleMicroTask()}}}return f}const _=T("rejectionHandledHandler");function n(f){if(f[k]===R){try{const a=c[_];a&&"function"==typeof a&&a.call(this,{rejection:f[h],promise:f})}catch{}f[k]=O;for(let a=0;a<m.length;a++)f===m[a].promise&&m.splice(a,1)}}function o(f,a,s,l,v){n(f);const C=f[k],y=C?"function"==typeof l?l:J:"function"==typeof v?v:X;a.scheduleMicroTask(G,()=>{try{const L=f[h],I=!!s&&H===s[H];I&&(s[V]=L,s[Y]=C);const M=a.run(y,void 0,I&&y!==X&&y!==J?[]:[L]);N(s,!0,M)}catch(L){N(s,!1,L)}},s)}const P=function(){},q=r.AggregateError;class A{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(a){return a instanceof A?a:N(new this(null),z,a)}static reject(a){return N(new this(null),O,a)}static withResolvers(){const a={};return a.promise=new A((s,l)=>{a.resolve=s,a.reject=l}),a}static any(a){if(!a||"function"!=typeof a[Symbol.iterator])return Promise.reject(new q([],"All promises were rejected"));const s=[];let l=0;try{for(let y of a)l++,s.push(A.resolve(y))}catch{return Promise.reject(new q([],"All promises were rejected"))}if(0===l)return Promise.reject(new q([],"All promises were rejected"));let v=!1;const C=[];return new A((y,L)=>{for(let I=0;I<s.length;I++)s[I].then(M=>{v||(v=!0,y(M))},M=>{C.push(M),l--,0===l&&(v=!0,L(new q(C,"All promises were rejected")))})})}static race(a){let s,l,v=new this((L,I)=>{s=L,l=I});function C(L){s(L)}function y(L){l(L)}for(let L of a)K(L)||(L=this.resolve(L)),L.then(C,y);return v}static all(a){return A.allWithCallback(a)}static allSettled(a){return(this&&this.prototype instanceof A?this:A).allWithCallback(a,{thenCallback:l=>({status:"fulfilled",value:l}),errorCallback:l=>({status:"rejected",reason:l})})}static allWithCallback(a,s){let l,v,C=new this((M,B)=>{l=M,v=B}),y=2,L=0;const I=[];for(let M of a){K(M)||(M=this.resolve(M));const B=L;try{M.then(F=>{I[B]=s?s.thenCallback(F):F,y--,0===y&&l(I)},F=>{s?(I[B]=s.errorCallback(F),y--,0===y&&l(I)):v(F)})}catch(F){v(F)}y++,L++}return y-=2,0===y&&l(I),C}constructor(a){const s=this;if(!(s instanceof A))throw new Error("Must be an instanceof Promise.");s[k]=g,s[h]=[];try{const l=S();a&&a(l(b(s,z)),l(b(s,O)))}catch(l){N(s,!1,l)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return A}then(a,s){let l=this.constructor?.[Symbol.species];(!l||"function"!=typeof l)&&(l=this.constructor||A);const v=new l(P),C=c.current;return this[k]==g?this[h].push(C,v,a,s):o(this,C,v,a,s),v}catch(a){return this.then(null,a)}finally(a){let s=this.constructor?.[Symbol.species];(!s||"function"!=typeof s)&&(s=A);const l=new s(P);l[H]=H;const v=c.current;return this[k]==g?this[h].push(v,l,a,a):o(this,v,l,a,a),l}}A.resolve=A.resolve,A.reject=A.reject,A.race=A.race,A.all=A.all;const _e=r[d]=r.Promise;r.Promise=A;const he=T("thenPatched");function de(f){const a=f.prototype,s=i(a,"then");if(s&&(!1===s.writable||!s.configurable))return;const l=a.then;a[w]=l,f.prototype.then=function(v,C){return new A((L,I)=>{l.call(this,L,I)}).then(v,C)},f[he]=!0}return t.patchThen=de,_e&&(de(_e),ue(r,"fetch",f=>function oe(f){return function(a,s){let l=f.apply(a,s);if(l instanceof A)return l;let v=l.constructor;return v[he]||de(v),l}}(f))),Promise[c.__symbol__("uncaughtPromiseErrors")]=m,A})})(e),function Lt(e){e.__load_patch("toString",r=>{const c=Function.prototype.toString,t=j("OriginalDelegate"),i=j("Promise"),u=j("Error"),E=function(){if("function"==typeof this){const d=this[t];if(d)return"function"==typeof d?c.call(d):Object.prototype.toString.call(d);if(this===Promise){const w=r[i];if(w)return c.call(w)}if(this===Error){const w=r[u];if(w)return c.call(w)}}return c.call(this)};E[t]=c,Function.prototype.toString=E;const T=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":T.call(this)}})}(e),function Mt(e){e.__load_patch("util",(r,c,t)=>{const i=Fe(r);t.patchOnProperties=Ke,t.patchMethod=ue,t.bindArguments=Ve,t.patchMacroTask=mt;const u=c.__symbol__("BLACK_LISTED_EVENTS"),E=c.__symbol__("UNPATCHED_EVENTS");r[E]&&(r[u]=r[E]),r[u]&&(c[u]=c[E]=r[u]),t.patchEventPrototype=Pt,t.patchEventTarget=bt,t.isIEOrEdge=kt,t.ObjectDefineProperty=Le,t.ObjectGetOwnPropertyDescriptor=Te,t.ObjectCreate=_t,t.ArraySlice=Et,t.patchClass=we,t.wrapWithCurrentZone=He,t.filterProperties=it,t.attachOriginToPatched=fe,t._redefineProperty=Object.defineProperty,t.patchCallbacks=It,t.getGlobalObjects=()=>({globalSources:tt,zoneSymbolEventNames:ne,eventNames:i,isBrowser:Ge,isMix:Xe,isNode:De,TRUE_STR:ae,FALSE_STR:le,ZONE_SYMBOL_PREFIX:Pe,ADD_EVENT_LISTENER_STR:Me,REMOVE_EVENT_LISTENER_STR:Ze})})}(e)})(at),function Ot(e){e.__load_patch("legacy",r=>{const c=r[e.__symbol__("legacyPatch")];c&&c()}),e.__load_patch("timers",r=>{const c="set",t="clear";me(r,c,t,"Timeout"),me(r,c,t,"Interval"),me(r,c,t,"Immediate")}),e.__load_patch("requestAnimationFrame",r=>{me(r,"request","cancel","AnimationFrame"),me(r,"mozRequest","mozCancel","AnimationFrame"),me(r,"webkitRequest","webkitCancel","AnimationFrame")}),e.__load_patch("blocking",(r,c)=>{const t=["alert","prompt","confirm"];for(let i=0;i<t.length;i++)ue(r,t[i],(E,T,m)=>function(D,d){return c.current.run(E,r,d,m)})}),e.__load_patch("EventTarget",(r,c,t)=>{(function Dt(e,r){r.patchEventPrototype(e,r)})(r,t),function Ct(e,r){if(Zone[r.symbol("patchEventTarget")])return;const{eventNames:c,zoneSymbolEventNames:t,TRUE_STR:i,FALSE_STR:u,ZONE_SYMBOL_PREFIX:E}=r.getGlobalObjects();for(let m=0;m<c.length;m++){const D=c[m],Z=E+(D+u),x=E+(D+i);t[D]={},t[D][u]=Z,t[D][i]=x}const T=e.EventTarget;T&&T.prototype&&r.patchEventTarget(e,r,[T&&T.prototype])}(r,t);const i=r.XMLHttpRequestEventTarget;i&&i.prototype&&t.patchEventTarget(r,t,[i.prototype])}),e.__load_patch("MutationObserver",(r,c,t)=>{we("MutationObserver"),we("WebKitMutationObserver")}),e.__load_patch("IntersectionObserver",(r,c,t)=>{we("IntersectionObserver")}),e.__load_patch("FileReader",(r,c,t)=>{we("FileReader")}),e.__load_patch("on_property",(r,c,t)=>{!function St(e,r){if(De&&!Xe||Zone[e.symbol("patchEvents")])return;const c=r.__Zone_ignore_on_properties;let t=[];if(Ge){const i=window;t=t.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const u=function pt(){try{const e=ge.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:i,ignoreProperties:["error"]}]:[];ct(i,Fe(i),c&&c.concat(u),Ie(i))}t=t.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let i=0;i<t.length;i++){const u=r[t[i]];u&&u.prototype&&ct(u.prototype,Fe(u.prototype),c)}}(t,r)}),e.__load_patch("customElements",(r,c,t)=>{!function Rt(e,r){const{isBrowser:c,isMix:t}=r.getGlobalObjects();(c||t)&&e.customElements&&"customElements"in e&&r.patchCallbacks(r,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"])}(r,t)}),e.__load_patch("XHR",(r,c)=>{!function D(d){const w=d.XMLHttpRequest;if(!w)return;const Z=w.prototype;let U=Z[Ae],K=Z[je];if(!U){const R=d.XMLHttpRequestEventTarget;if(R){const b=R.prototype;U=b[Ae],K=b[je]}}const J="readystatechange",X="scheduled";function k(R){const b=R.data,S=b.target;S[E]=!1,S[m]=!1;const ee=S[u];U||(U=S[Ae],K=S[je]),ee&&K.call(S,J,ee);const W=S[u]=()=>{if(S.readyState===S.DONE)if(!b.aborted&&S[E]&&R.state===X){const _=S[c.__symbol__("loadfalse")];if(0!==S.status&&_&&_.length>0){const n=R.invoke;R.invoke=function(){const o=S[c.__symbol__("loadfalse")];for(let p=0;p<o.length;p++)o[p]===R&&o.splice(p,1);!b.aborted&&R.state===X&&n.call(R)},_.push(R)}else R.invoke()}else!b.aborted&&!1===S[E]&&(S[m]=!0)};return U.call(S,J,W),S[t]||(S[t]=R),z.apply(S,b.args),S[E]=!0,R}function h(){}function H(R){const b=R.data;return b.aborted=!0,O.apply(b.target,b.args)}const V=ue(Z,"open",()=>function(R,b){return R[i]=0==b[2],R[T]=b[1],V.apply(R,b)}),G=j("fetchTaskAborting"),g=j("fetchTaskScheduling"),z=ue(Z,"send",()=>function(R,b){if(!0===c.current[g]||R[i])return z.apply(R,b);{const S={target:R,url:R[T],isPeriodic:!1,args:b,aborted:!1},ee=xe("XMLHttpRequest.send",h,S,k,H);R&&!0===R[m]&&!S.aborted&&ee.state===X&&ee.invoke()}}),O=ue(Z,"abort",()=>function(R,b){const S=function x(R){return R[t]}(R);if(S&&"string"==typeof S.type){if(null==S.cancelFn||S.data&&S.data.aborted)return;S.zone.cancelTask(S)}else if(!0===c.current[G])return O.apply(R,b)})}(r);const t=j("xhrTask"),i=j("xhrSync"),u=j("xhrListener"),E=j("xhrScheduled"),T=j("xhrURL"),m=j("xhrErrorBeforeScheduled")}),e.__load_patch("geolocation",r=>{r.navigator&&r.navigator.geolocation&&function gt(e,r){const c=e.constructor.name;for(let t=0;t<r.length;t++){const i=r[t],u=e[i];if(u){if(!We(Te(e,i)))continue;e[i]=(T=>{const m=function(){return T.apply(this,Ve(arguments,c+"."+i))};return fe(m,T),m})(u)}}}(r.navigator.geolocation,["getCurrentPosition","watchPosition"])}),e.__load_patch("PromiseRejectionEvent",(r,c)=>{function t(i){return function(u){st(r,i).forEach(T=>{const m=r.PromiseRejectionEvent;if(m){const D=new m(i,{promise:u.promise,reason:u.rejection});T.invoke(D)}})}}r.PromiseRejectionEvent&&(c[j("unhandledPromiseRejectionHandler")]=t("unhandledrejection"),c[j("rejectionHandledHandler")]=t("rejectionhandled"))}),e.__load_patch("queueMicrotask",(r,c,t)=>{!function wt(e,r){r.patchMethod(e,"queueMicrotask",c=>function(t,i){Zone.current.scheduleMicroTask("queueMicrotask",i[0])})}(r,t)})}(at)}},te=>{te(te.s=50)}]);
frontend/agentic-dashboard/dist/agentic-dashboard/runtime.e476dc6eb7f932f8.js ADDED
@@ -0,0 +1 @@
 
 
1
+ (()=>{"use strict";var e,_={},d={};function n(e){var a=d[e];if(void 0!==a)return a.exports;var r=d[e]={exports:{}};return _[e](r,r.exports,n),r.exports}n.m=_,e=[],n.O=(a,r,u,t)=>{if(!r){var o=1/0;for(f=0;f<e.length;f++){for(var[r,u,t]=e[f],s=!0,l=0;l<r.length;l++)(!1&t||o>=t)&&Object.keys(n.O).every(i=>n.O[i](r[l]))?r.splice(l--,1):(s=!1,t<o&&(o=t));if(s){e.splice(f--,1);var c=u();void 0!==c&&(a=c)}}return a}t=t||0;for(var f=e.length;f>0&&e[f-1][2]>t;f--)e[f]=e[f-1];e[f]=[r,u,t]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a}),a},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={121:0};n.O.j=u=>0===e[u];var a=(u,t)=>{var l,c,[f,o,s]=t,v=0;if(f.some(h=>0!==e[h])){for(l in o)n.o(o,l)&&(n.m[l]=o[l]);if(s)var b=s(n)}for(u&&u(t);v<f.length;v++)n.o(e,c=f[v])&&e[c]&&e[c][0](),e[c]=0;return n.O(b)},r=self.webpackChunkagentic_dashboard=self.webpackChunkagentic_dashboard||[];r.forEach(a.bind(null,0)),r.push=a.bind(null,r.push.bind(r))})()})();
frontend/agentic-dashboard/dist/agentic-dashboard/styles.4a07a471aee040e9.css ADDED
@@ -0,0 +1 @@
 
 
1
+ @tailwind base;@tailwind components;@tailwind utilities;body{@apply bg-dark-bg text-white;}
frontend/agentic-dashboard/launch_fresh_env.sh ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ # === CONFIGURATION ===
4
+ IMAGE_NAME="agentic_app"
5
+ CONTAINER_NAME="agentic_dashboard"
6
+ FRONTEND_PORT=4200
7
+ BACKEND_PORT=8000
8
+ WORKDIR="/app"
9
+
10
+ echo "Stopping and removing old container..."
11
+ docker stop $CONTAINER_NAME 2>/dev/null
12
+ docker rm $CONTAINER_NAME 2>/dev/null
13
+
14
+ echo "Pruning old image..."
15
+ docker image rm $IMAGE_NAME -f 2>/dev/null
16
+
17
+ echo "Building fresh image from Dockerfile..."
18
+ docker build -t $IMAGE_NAME .
19
+
20
+ echo "Launching container..."
21
+ docker run -d \
22
+ --name $CONTAINER_NAME \
23
+ -p $FRONTEND_PORT:4200 \
24
+ -p $BACKEND_PORT:8000 \
25
+ -v $(pwd):$WORKDIR \
26
+ -w $WORKDIR \
27
+ $IMAGE_NAME \
28
+ bash -c "npm install && ng build --configuration=production --project=agentic-dashboard && nohup python3 backend/digs_engine/run_digs.py > backend.log 2>&1 && npx http-server dist/agentic-dashboard -p 4200"
29
+
30
+ echo "Container '$CONTAINER_NAME' is up and running!"
31
+ echo "Frontend: http://localhost:$FRONTEND_PORT"
32
+ echo "Backend: running DIGS engine in background"
frontend/agentic-dashboard/main.ts ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
2
+ import { AppModule } from './app/app.module';
3
+
4
+ platformBrowserDynamic().bootstrapModule(AppModule)
5
+ .catch(err => console.error(err));
frontend/agentic-dashboard/package-lock.json ADDED
The diff for this file is too large to render. See raw diff
 
frontend/agentic-dashboard/package.json ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "agentic-dashboard",
3
+ "version": "1.0.0",
4
+ "scripts": {
5
+ "ng": "ng",
6
+ "start": "ng serve",
7
+ "build": "ng build",
8
+ "test": "ng test",
9
+ "lint": "ng lint",
10
+ "e2e": "ng e2e"
11
+ },
12
+ "private": true,
13
+ "dependencies": {
14
+ "@angular/animations": "^17.0.0",
15
+ "@angular/common": "^17.0.0",
16
+ "@angular/forms": "^17.0.0",
17
+ "@angular/platform-browser": "^17.0.0",
18
+ "@angular/platform-browser-dynamic": "^17.0.0",
19
+ "@angular/router": "^17.0.0",
20
+ "rxjs": "~7.8.0",
21
+ "tslib": "^2.6.0",
22
+ "zone.js": "~0.14.2"
23
+ },
24
+ "devDependencies": {
25
+ "@angular-devkit/build-angular": "^17.3.12",
26
+ "@angular/cli": "^17.3.12",
27
+ "@angular/compiler": "^17.3.12",
28
+ "@angular/compiler-cli": "^17.3.12",
29
+ "@angular/core": "^17.3.12",
30
+ "autoprefixer": "^10.4.0",
31
+ "postcss": "^8.4.0",
32
+ "tailwindcss": "^3.3.0",
33
+ "typescript": "^5.2.2"
34
+ }
35
+ }
frontend/agentic-dashboard/src/app/app.component.ts ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ import { Component } from '@angular/core';
2
+
3
+ @Component({
4
+ selector: 'app-root',
5
+ template: '<router-outlet></router-outlet>' // Basic template
6
+ })
7
+ export class AppComponent {}
frontend/agentic-dashboard/src/app/app.module.ts ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import { NgModule } from '@angular/core';
2
+ import { BrowserModule } from '@angular/platform-browser';
3
+
4
+ @NgModule({
5
+ declarations: [],
6
+ imports: [BrowserModule],
7
+ bootstrap: []
8
+ })
9
+ export class AppModule {}
frontend/agentic-dashboard/src/environments/environment.prod.ts ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ export const environment = {
2
+ production: true,
3
+ apiUrl: 'https://your-production-api.com/api' // replace with your real production API URL
4
+ };};
frontend/agentic-dashboard/src/environments/environment.ts ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ export const environment = {
2
+ production: false,
3
+ apiUrl: 'http://localhost:3000/api' // replace with your dev API URL
4
+ };
frontend/agentic-dashboard/src/index.html ADDED
@@ -0,0 +1 @@
 
 
1
+ <!doctype html><html><head><meta charset='utf-8'><title>Agentic Dashboard</title></head><body><app-root></app-root></body></html>
frontend/agentic-dashboard/src/main.ts ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
2
+ import { AppModule } from './app/app.module';
3
+
4
+ platformBrowserDynamic().bootstrapModule(AppModule)
5
+ .catch(err => console.error(err));
frontend/agentic-dashboard/src/polyfills.ts ADDED
@@ -0,0 +1 @@
 
 
1
+ import 'zone.js';
frontend/agentic-dashboard/src/styles.css ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+ body {@apply bg-dark-bg text-white;}
frontend/agentic-dashboard/tsconfig.app.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./out-tsc/app",
5
+ "types": []
6
+ },
7
+ "files": ["src/main.ts", "src/polyfills.ts"],
8
+ "include": ["src/**/*.d.ts"]
9
+ }
frontend/agentic-dashboard/tsconfig.json ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "compileOnSave": false,
3
+ "compilerOptions": {
4
+ "baseUrl": "./",
5
+ "outDir": "./dist/out-tsc",
6
+ "sourceMap": true,
7
+ "declaration": false,
8
+ "downlevelIteration": true,
9
+ "experimentalDecorators": true,
10
+ "module": "es2020",
11
+ "moduleResolution": "node",
12
+ "importHelpers": true,
13
+ "target": "es2022",
14
+ "typeRoots": ["node_modules/@types"],
15
+ "lib": ["es2022", "dom"]
16
+ }
17
+ }
frontend/package-lock.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "name": "frontend",
3
+ "lockfileVersion": 3,
4
+ "requires": true,
5
+ "packages": {}
6
+ }
index.html ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ from flask import Flask, send_from_directory
2
+
3
+ app = Flask(__name__, static_folder='static', static_url_path='')
4
+
5
+ @app.route('/')
6
+ def index():
7
+ return send_from_directory(app.static_folder, 'index.html')
openapi.yaml ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ openapi: 3.0.3
2
+ info:
3
+ title: Agentic Terraforming API
4
+ description: REST API for agent lifecycle, system tools, integrations, and sensory control
5
+ version: 1.1.0
6
+ contact:
7
+ name: API Support
8
+ email: devops@agentic.terra
9
+ servers:
10
+ - url: http://localhost:7860/api
11
+ description: Development server
12
+ - url: https://api.agentic.terra/v1
13
+ description: Production server
14
+ paths:
15
+ /agent/upload-spreadsheet:
16
+ post:
17
+ tags: [Agent Control]
18
+ summary: Upload spreadsheet for trait processing
19
+ security:
20
+ - OAuthToken: []
21
+ requestBody:
22
+ required: true
23
+ content:
24
+ multipart/form-data:
25
+ schema:
26
+ type: object
27
+ properties:
28
+ file:
29
+ type: string
30
+ format: binary
31
+ description: CSV/XLSX file with agent traits
32
+ responses:
33
+ '202':
34
+ description: Upload accepted
35
+ content:
36
+ application/json:
37
+ schema:
38
+ $ref: '#/components/schemas/JobTicket'
39
+ '401':
40
+ $ref: '#/components/responses/Unauthorized'
41
+ components:
42
+ securitySchemes:
43
+ OAuthToken:
44
+ type: http
45
+ scheme: bearer
46
+ bearerFormat: JWT
47
+ ApiKey:
48
+ type: apiKey
49
+ in: header
50
+ name: X-API-KEY
51
+ schemas:
52
+ JobTicket:
53
+ type: object
54
+ properties:
55
+ job_id:
56
+ type: string
57
+ format: uuid
58
+ status_url:
59
+ type: string
60
+ format: uri
61
+ description: URL to poll for job status
62
+ required: [job_id]
63
+ responses:
64
+ Unauthorized:
65
+ description: Missing or invalid authentication
66
+ content:
67
+ application/json:
68
+ schema:
69
+ type: object
70
+ properties:
71
+ error:
72
+ type: string
73
+ example: "Invalid OAuth token"
74
+ security:
75
+ - OAuthToken: []
76
+ - ApiKey: []
package-lock.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "name": "late.io",
3
+ "lockfileVersion": 3,
4
+ "requires": true,
5
+ "packages": {}
6
+ }