From 058370830f9bee623ab4e02579572db9e979cddb Mon Sep 17 00:00:00 2001 From: Fabien Masson Date: Tue, 6 Oct 2026 22:15:59 +0200 Subject: [PATCH] =?UTF-8?q?t=C3=A2ches=20planifi=C3=A9es=20:=20prompts=20c?= =?UTF-8?q?ron=20persist=C3=A9s,=20outil=20scheduler,=20conversations=20li?= =?UTF-8?q?=C3=A9es=20aux=20t=C3=A2ches,=20rattrapage=20des=20ex=C3=A9cuti?= =?UTF-8?q?ons=20manqu=C3=A9es=20au=20red=C3=A9marrage=20(go-cron=20Missed?= =?UTF-8?q?RunOnce)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/cmd/ioc.go | 13 + backend/cmd/serve.go | 5 + backend/internal/adapter/database/factory.go | 1 + .../adapter/database/turso/chat_repository.go | 7 +- backend/internal/adapter/database/turso/db.go | 4 + .../database/turso/listchats_filter_test.go | 23 +- .../000003_add_tasks_repeat.down.sql | 1 + .../migrations/000003_add_tasks_repeat.up.sql | 1 + .../000004_add_tasks_last_datetime.down.sql | 1 + .../000004_add_tasks_last_datetime.up.sql | 1 + .../adapter/database/turso/task_repository.go | 85 ++++ .../internal/adapter/tools/scheduler/tool.go | 186 ++++++++ backend/internal/domain/llm.go | 2 +- backend/internal/domain/task.go | 35 ++ backend/internal/domain/tool.go | 37 +- backend/internal/http/handlers/chat.go | 8 +- backend/internal/http/handlers/task.go | 70 +++ backend/internal/http/router.go | 3 + .../web/_app/immutable/assets/0.BKrS386W.css | 2 - .../web/_app/immutable/assets/0.C0TpjoIE.css | 2 + .../web/_app/immutable/chunks/BYYkuYgk.js | 1 + .../chunks/{Soo4K-rz.js => BZuNOv8h.js} | 2 +- .../chunks/{BI_fD_HY.js => BeIYuf23.js} | 2 +- .../web/_app/immutable/chunks/BedKI9iq.js | 1 + .../web/_app/immutable/chunks/Bht2nTIZ.js | 4 + .../web/_app/immutable/chunks/CY9OlB4q.js | 1 + .../web/_app/immutable/chunks/CvbyM2Rc.js | 1 - .../chunks/{CUminYLk.js => DdGy_ePN.js} | 2 +- .../chunks/{DqlBPR2w.js => DtfiK5fE.js} | 2 +- .../web/_app/immutable/chunks/QHwlfjO8.js | 1 - .../chunks/{5WAfNqs_.js => ffLBjIeN.js} | 2 +- .../web/_app/immutable/chunks/guSkOB4x.js | 1 - .../chunks/{DyF3myvh.js => zsRwiIdn.js} | 2 +- .../web/_app/immutable/entry/app.Bj-MC1YH.js | 2 + .../web/_app/immutable/entry/app.Iv4UP3yJ.js | 2 - .../_app/immutable/entry/start.CVUmNBgW.js | 1 + .../_app/immutable/entry/start.CuX9LF19.js | 1 - .../nodes/{0.C86e0tcA.js => 0.BLV5Ey1y.js} | 0 .../nodes/{1.B34i4hHQ.js => 1.COgG0Fy8.js} | 2 +- .../nodes/{13.Dxxi1Ijq.js => 13.C-WGkE4P.js} | 2 +- .../nodes/{15.CqwsYGvL.js => 15.DBuFCR43.js} | 2 +- .../web/_app/immutable/nodes/17.BV0v_EXc.js | 4 + .../web/_app/immutable/nodes/17.CRbsg29O.js | 1 - .../nodes/{18.DRjMAC4S.js => 18.e37B7XcZ.js} | 2 +- .../web/_app/immutable/nodes/19.Bxx8Nj5U.js | 1 - .../web/_app/immutable/nodes/19.CdvrW-UN.js | 1 + .../nodes/{2.BGKAfrIz.js => 2.wASuVt48.js} | 2 +- .../nodes/{20.BwhsqgTX.js => 20.CPbrVrB7.js} | 2 +- .../nodes/{3.7A57L7YY.js => 3.CHETzYMH.js} | 2 +- .../nodes/{4.Dd2s_2MN.js => 4.DkQEi_Qd.js} | 2 +- .../nodes/{5.At5j5jjs.js => 5.BgmoPtaF.js} | 4 +- .../web/_app/immutable/nodes/6.B8E4TBNF.js | 1 + .../web/_app/immutable/nodes/6.BBY8N1lq.js | 4 - .../nodes/{9.Bt_qXBPf.js => 9.CYl-UmMc.js} | 2 +- backend/internal/http/web/_app/version.json | 2 +- backend/internal/http/web/index.html | 16 +- backend/internal/service/chat/service.go | 6 +- backend/internal/service/chat/session.go | 71 ++- .../internal/service/chat/system_prompt.md | 4 + backend/internal/service/task/service.go | 318 ++++++++++++++ backend/internal/service/task/service_test.go | 410 ++++++++++++++++++ backend/web/src/lib/api/endpoints/chat.ts | 4 +- backend/web/src/lib/api/endpoints/task.ts | 9 + backend/web/src/lib/types/api.ts | 15 + .../(chat)/[conversation]/+page.svelte | 10 + .../[space]/history/+page.svelte | 82 +++- .../(authenticated)/[space]/history/+page.ts | 2 + .../[space]/tasks/+page.svelte | 215 ++++++++- .../(authenticated)/[space]/tasks/+page.ts | 11 +- go.mod | 1 + go.sum | 2 + 71 files changed, 1627 insertions(+), 100 deletions(-) create mode 100644 backend/internal/adapter/database/turso/migrations/000003_add_tasks_repeat.down.sql create mode 100644 backend/internal/adapter/database/turso/migrations/000003_add_tasks_repeat.up.sql create mode 100644 backend/internal/adapter/database/turso/migrations/000004_add_tasks_last_datetime.down.sql create mode 100644 backend/internal/adapter/database/turso/migrations/000004_add_tasks_last_datetime.up.sql create mode 100644 backend/internal/adapter/database/turso/task_repository.go create mode 100644 backend/internal/adapter/tools/scheduler/tool.go create mode 100644 backend/internal/domain/task.go create mode 100644 backend/internal/http/handlers/task.go delete mode 100644 backend/internal/http/web/_app/immutable/assets/0.BKrS386W.css create mode 100644 backend/internal/http/web/_app/immutable/assets/0.C0TpjoIE.css create mode 100644 backend/internal/http/web/_app/immutable/chunks/BYYkuYgk.js rename backend/internal/http/web/_app/immutable/chunks/{Soo4K-rz.js => BZuNOv8h.js} (98%) rename backend/internal/http/web/_app/immutable/chunks/{BI_fD_HY.js => BeIYuf23.js} (86%) create mode 100644 backend/internal/http/web/_app/immutable/chunks/BedKI9iq.js create mode 100644 backend/internal/http/web/_app/immutable/chunks/Bht2nTIZ.js create mode 100644 backend/internal/http/web/_app/immutable/chunks/CY9OlB4q.js delete mode 100644 backend/internal/http/web/_app/immutable/chunks/CvbyM2Rc.js rename backend/internal/http/web/_app/immutable/chunks/{CUminYLk.js => DdGy_ePN.js} (99%) rename backend/internal/http/web/_app/immutable/chunks/{DqlBPR2w.js => DtfiK5fE.js} (92%) delete mode 100644 backend/internal/http/web/_app/immutable/chunks/QHwlfjO8.js rename backend/internal/http/web/_app/immutable/chunks/{5WAfNqs_.js => ffLBjIeN.js} (80%) delete mode 100644 backend/internal/http/web/_app/immutable/chunks/guSkOB4x.js rename backend/internal/http/web/_app/immutable/chunks/{DyF3myvh.js => zsRwiIdn.js} (79%) create mode 100644 backend/internal/http/web/_app/immutable/entry/app.Bj-MC1YH.js delete mode 100644 backend/internal/http/web/_app/immutable/entry/app.Iv4UP3yJ.js create mode 100644 backend/internal/http/web/_app/immutable/entry/start.CVUmNBgW.js delete mode 100644 backend/internal/http/web/_app/immutable/entry/start.CuX9LF19.js rename backend/internal/http/web/_app/immutable/nodes/{0.C86e0tcA.js => 0.BLV5Ey1y.js} (100%) rename backend/internal/http/web/_app/immutable/nodes/{1.B34i4hHQ.js => 1.COgG0Fy8.js} (82%) rename backend/internal/http/web/_app/immutable/nodes/{13.Dxxi1Ijq.js => 13.C-WGkE4P.js} (97%) rename backend/internal/http/web/_app/immutable/nodes/{15.CqwsYGvL.js => 15.DBuFCR43.js} (98%) create mode 100644 backend/internal/http/web/_app/immutable/nodes/17.BV0v_EXc.js delete mode 100644 backend/internal/http/web/_app/immutable/nodes/17.CRbsg29O.js rename backend/internal/http/web/_app/immutable/nodes/{18.DRjMAC4S.js => 18.e37B7XcZ.js} (98%) delete mode 100644 backend/internal/http/web/_app/immutable/nodes/19.Bxx8Nj5U.js create mode 100644 backend/internal/http/web/_app/immutable/nodes/19.CdvrW-UN.js rename backend/internal/http/web/_app/immutable/nodes/{2.BGKAfrIz.js => 2.wASuVt48.js} (95%) rename backend/internal/http/web/_app/immutable/nodes/{20.BwhsqgTX.js => 20.CPbrVrB7.js} (92%) rename backend/internal/http/web/_app/immutable/nodes/{3.7A57L7YY.js => 3.CHETzYMH.js} (66%) rename backend/internal/http/web/_app/immutable/nodes/{4.Dd2s_2MN.js => 4.DkQEi_Qd.js} (76%) rename backend/internal/http/web/_app/immutable/nodes/{5.At5j5jjs.js => 5.BgmoPtaF.js} (98%) create mode 100644 backend/internal/http/web/_app/immutable/nodes/6.B8E4TBNF.js delete mode 100644 backend/internal/http/web/_app/immutable/nodes/6.BBY8N1lq.js rename backend/internal/http/web/_app/immutable/nodes/{9.Bt_qXBPf.js => 9.CYl-UmMc.js} (96%) create mode 100644 backend/internal/service/task/service.go create mode 100644 backend/internal/service/task/service_test.go create mode 100644 backend/web/src/lib/api/endpoints/task.ts diff --git a/backend/cmd/ioc.go b/backend/cmd/ioc.go index c7a572f..31d8b0d 100644 --- a/backend/cmd/ioc.go +++ b/backend/cmd/ioc.go @@ -10,6 +10,7 @@ import ( "trankilou.fr/lassistanoque/backend/internal/adapter/llm" "trankilou.fr/lassistanoque/backend/internal/adapter/security" "trankilou.fr/lassistanoque/backend/internal/adapter/tools/browser" + "trankilou.fr/lassistanoque/backend/internal/adapter/tools/scheduler" "trankilou.fr/lassistanoque/backend/internal/adapter/tools/searxng" "trankilou.fr/lassistanoque/backend/internal/adapter/tools/weather" "trankilou.fr/lassistanoque/backend/internal/domain" @@ -18,6 +19,7 @@ import ( "trankilou.fr/lassistanoque/backend/internal/service/chat" "trankilou.fr/lassistanoque/backend/internal/service/provider" "trankilou.fr/lassistanoque/backend/internal/service/storage" + "trankilou.fr/lassistanoque/backend/internal/service/task" "trankilou.fr/lassistanoque/backend/internal/service/tool" "trankilou.fr/lassistanoque/backend/internal/service/user" ) @@ -36,6 +38,7 @@ var providerService *provider.Service var agentService *agent.Service var toolService *tool.Service var chatService *chat.Service +var taskService *task.Service var tokenManager auth.TokenManager func init() { @@ -135,16 +138,26 @@ func GetChatService() *chat.Service { GetLLMAdapter(), GetToolService(), ) + // l'exécution des tâches planifiées passe par le service de chat + GetTaskService().SetChatService(chatService) } return chatService } +func GetTaskService() *task.Service { + if taskService == nil { + taskService = task.NewService(db.TaskRepository()) + } + return taskService +} + func GetToolService() *tool.Service { if toolService == nil { toolService = tool.NewService(db.ToolRepository(), db.UserRepository()) toolService.RegisterToolImpl(&weather.WeatherTool{}) toolService.RegisterToolImpl(&searxng.SearxngTool{}) toolService.RegisterToolImpl(&browser.BrowserTool{}) + toolService.RegisterToolImpl(scheduler.New(GetTaskService())) } return toolService } diff --git a/backend/cmd/serve.go b/backend/cmd/serve.go index 19477ce..b4d5c13 100644 --- a/backend/cmd/serve.go +++ b/backend/cmd/serve.go @@ -47,11 +47,16 @@ func runServe() { AgentService: GetAgentService(), ChatService: GetChatService(), ToolService: GetToolService(), + TaskService: GetTaskService(), TokenManager: GetTokenManager(), }) gatewayRouter := gateway.NewRouter(gateway.Dependencies{}) + // task scheduler : replanifie les tâches persistées + GetTaskService().Start() + defer GetTaskService().Stop() + ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) defer stop() diff --git a/backend/internal/adapter/database/factory.go b/backend/internal/adapter/database/factory.go index 45914a3..9e82f41 100644 --- a/backend/internal/adapter/database/factory.go +++ b/backend/internal/adapter/database/factory.go @@ -17,6 +17,7 @@ type Database interface { AgentRepository() domain.AgentRepository ChatRepository() domain.ChatRepository ToolRepository() domain.ToolRepository + TaskRepository() domain.TaskRepository Migrate() error Close() } diff --git a/backend/internal/adapter/database/turso/chat_repository.go b/backend/internal/adapter/database/turso/chat_repository.go index d088581..af56446 100644 --- a/backend/internal/adapter/database/turso/chat_repository.go +++ b/backend/internal/adapter/database/turso/chat_repository.go @@ -2,6 +2,7 @@ package turso import ( "database/sql" + "fmt" "log" "strings" @@ -30,7 +31,7 @@ func NewTursoChatRepository(db *sql.DB) *TursoChatRepository { } } -func (r *TursoChatRepository) ListChats(userID string, teamID string, page int, query string) ([]*domain.Chat, error) { +func (r *TursoChatRepository) ListChats(userID string, teamID string, page int, query string, taskID string) ([]*domain.Chat, error) { where := "team_id=$1 and team_id in (select team_id from user_teams where user_id=$2)" args := []any{teamID, userID} if query != "" { @@ -41,6 +42,10 @@ func (r *TursoChatRepository) ListChats(userID string, teamID string, page int, where += " and title like $3 escape '\\'" args = append(args, "%"+escaped+"%") } + if taskID != "" { + where += fmt.Sprintf(" and task_id=$%d", len(args)+1) + args = append(args, taskID) + } return r.chatTable.Select( orm.WithWhere(where, args...), orm.WithOrder("_date_created desc"), diff --git a/backend/internal/adapter/database/turso/db.go b/backend/internal/adapter/database/turso/db.go index ee02093..1a4aa6f 100644 --- a/backend/internal/adapter/database/turso/db.go +++ b/backend/internal/adapter/database/turso/db.go @@ -87,3 +87,7 @@ func (db *TursoDB) ChatRepository() domain.ChatRepository { func (db *TursoDB) ToolRepository() domain.ToolRepository { return NewTursoToolRepository(db.DB) } + +func (db *TursoDB) TaskRepository() domain.TaskRepository { + return NewTursoTaskRepository(db.DB) +} diff --git a/backend/internal/adapter/database/turso/listchats_filter_test.go b/backend/internal/adapter/database/turso/listchats_filter_test.go index 10700ed..acf5b36 100644 --- a/backend/internal/adapter/database/turso/listchats_filter_test.go +++ b/backend/internal/adapter/database/turso/listchats_filter_test.go @@ -25,7 +25,7 @@ func TestListChatsFilter(t *testing.T) { create table user_teams (user_id text, team_id text); insert into chats (id, team_id, user_id, agent_id, task_id, title, fresh_title, _date_created, _version) values ('c1','t1','u1','','','Problème de timeout',0,'2026-01-01 10:00:00','v'), - ('c2','t1','u1','','','Discussion navigateur',0,'2026-01-02 10:00:00','v'), + ('c2','t1','u1','','task-9','Discussion navigateur',0,'2026-01-02 10:00:00','v'), ('c3','t1','u1','','','Recette de cuisine 100%',0,'2026-01-03 10:00:00','v'); insert into user_teams (user_id, team_id) values ('u1','t1'); insert into chats (id, team_id, user_id, agent_id, task_id, title, fresh_title, _date_created, _version) @@ -40,14 +40,14 @@ func TestListChatsFilter(t *testing.T) { repo := NewTursoChatRepository(db) // sans filtre, page 0 : 20 conversations (28 en base) - p0, err := repo.ListChats("u1", "t1", 0, "") + p0, err := repo.ListChats("u1", "t1", 0, "", "") if err != nil { t.Fatal(err) } if len(p0) != 20 { t.Fatalf("page 0: expected 20, got %d", len(p0)) } - p1, err := repo.ListChats("u1", "t1", 1, "") + p1, err := repo.ListChats("u1", "t1", 1, "", "") if err != nil { t.Fatal(err) } @@ -61,7 +61,7 @@ func TestListChatsFilter(t *testing.T) { } seen[c.ID] = true } - p2, err := repo.ListChats("u1", "t1", 2, "") + p2, err := repo.ListChats("u1", "t1", 2, "", "") if err != nil { t.Fatal(err) } @@ -70,7 +70,7 @@ func TestListChatsFilter(t *testing.T) { } // filtre simple - res, err := repo.ListChats("u1", "t1", 0, "timeout") + res, err := repo.ListChats("u1", "t1", 0, "timeout", "") if err != nil { t.Fatal(err) } @@ -79,7 +79,7 @@ func TestListChatsFilter(t *testing.T) { } // jokers LIKE neutralisés : '100%' ne doit rien matcher de spécial - res, err = repo.ListChats("u1", "t1", 0, "100%") + res, err = repo.ListChats("u1", "t1", 0, "100%", "") if err != nil { t.Fatal(err) } @@ -88,7 +88,7 @@ func TestListChatsFilter(t *testing.T) { } // pas de résultat - res, err = repo.ListChats("u1", "t1", 0, "inexistant") + res, err = repo.ListChats("u1", "t1", 0, "inexistant", "") if err != nil { t.Fatal(err) } @@ -96,5 +96,14 @@ func TestListChatsFilter(t *testing.T) { t.Fatalf("expected 0, got %d", len(res)) } + // filtre par tâche + taskRes, err := repo.ListChats("u1", "t1", 0, "", "task-9") + if err != nil { + t.Fatal(err) + } + if len(taskRes) != 1 || taskRes[0].ID != "c2" { + t.Fatalf("filter task-9: expected [c2], got %v", taskRes) + } + _ = domain.Chat{} } diff --git a/backend/internal/adapter/database/turso/migrations/000003_add_tasks_repeat.down.sql b/backend/internal/adapter/database/turso/migrations/000003_add_tasks_repeat.down.sql new file mode 100644 index 0000000..82dc311 --- /dev/null +++ b/backend/internal/adapter/database/turso/migrations/000003_add_tasks_repeat.down.sql @@ -0,0 +1 @@ +alter table tasks drop column repeat; diff --git a/backend/internal/adapter/database/turso/migrations/000003_add_tasks_repeat.up.sql b/backend/internal/adapter/database/turso/migrations/000003_add_tasks_repeat.up.sql new file mode 100644 index 0000000..eb67fe9 --- /dev/null +++ b/backend/internal/adapter/database/turso/migrations/000003_add_tasks_repeat.up.sql @@ -0,0 +1 @@ +alter table tasks add column repeat integer not null default 1; diff --git a/backend/internal/adapter/database/turso/migrations/000004_add_tasks_last_datetime.down.sql b/backend/internal/adapter/database/turso/migrations/000004_add_tasks_last_datetime.down.sql new file mode 100644 index 0000000..eebc92e --- /dev/null +++ b/backend/internal/adapter/database/turso/migrations/000004_add_tasks_last_datetime.down.sql @@ -0,0 +1 @@ +alter table tasks drop column last_datetime; diff --git a/backend/internal/adapter/database/turso/migrations/000004_add_tasks_last_datetime.up.sql b/backend/internal/adapter/database/turso/migrations/000004_add_tasks_last_datetime.up.sql new file mode 100644 index 0000000..f101ccc --- /dev/null +++ b/backend/internal/adapter/database/turso/migrations/000004_add_tasks_last_datetime.up.sql @@ -0,0 +1 @@ +alter table tasks add column last_datetime numeric; diff --git a/backend/internal/adapter/database/turso/task_repository.go b/backend/internal/adapter/database/turso/task_repository.go new file mode 100644 index 0000000..9eb8d7f --- /dev/null +++ b/backend/internal/adapter/database/turso/task_repository.go @@ -0,0 +1,85 @@ +package turso + +import ( + "database/sql" + "log" + + "trankilou.fr/lassistanoque/backend/internal/adapter/database/orm" + "trankilou.fr/lassistanoque/backend/internal/domain" +) + +type TursoTaskRepository struct { + db *sql.DB + taskTable orm.Table[domain.Task] +} + +func NewTursoTaskRepository(db *sql.DB) *TursoTaskRepository { + dialect := orm.NewSqliteDialect() + taskTable, err := orm.NewTable[domain.Task](db, dialect, "tasks") + if err != nil { + log.Fatalf("error creating task table") + } + + return &TursoTaskRepository{ + db: db, + taskTable: taskTable, + } +} + +func (r *TursoTaskRepository) ListTasks(userID string, teamID string) ([]*domain.Task, error) { + return r.taskTable.Select( + orm.WithWhere( + "team_id=$1 and team_id in (select team_id from user_teams where user_id=$2)", + teamID, + userID, + ), + orm.WithOrder("_date_created desc"), + ) +} + +func (r *TursoTaskRepository) ListActiveTasks() ([]*domain.Task, error) { + return r.taskTable.Select( + orm.WithWhere("status=$1", domain.TaskStatusActive), + ) +} + +func (r *TursoTaskRepository) GetTaskByID(userID string, teamID string, id string) (*domain.Task, error) { + return r.taskTable.SelectOne( + "id=$1 and team_id=$2 and team_id in (select team_id from user_teams where user_id=$3)", + id, + teamID, + userID, + ) +} + +func (r *TursoTaskRepository) CreateTask(task *domain.Task) (*domain.Task, error) { + return r.taskTable.Insert(task) +} + +func (r *TursoTaskRepository) UpdateTask(task *domain.Task) (*domain.Task, error) { + return r.taskTable.Update(task) +} + +func (r *TursoTaskRepository) DeleteTask(userID string, teamID string, id string) error { + return r.taskTable.DeleteWhere( + "id=$1 and team_id=$2 and team_id in (select team_id from user_teams where user_id=$3)", + id, + teamID, + userID, + ) +} + +// FirstUserOfTeam retourne le premier utilisateur d'une équipe. Les tâches +// planifiées ne portent pas d'utilisateur : c'est lui qui porte la conversation +// générée lors de l'exécution. +func (r *TursoTaskRepository) FirstUserOfTeam(teamID string) (string, error) { + var userID string + err := r.db.QueryRow( + "select user_id from user_teams where team_id=$1 order by _date_created asc limit 1", + teamID, + ).Scan(&userID) + if err != nil { + return "", err + } + return userID, nil +} diff --git a/backend/internal/adapter/tools/scheduler/tool.go b/backend/internal/adapter/tools/scheduler/tool.go new file mode 100644 index 0000000..ffa2eaa --- /dev/null +++ b/backend/internal/adapter/tools/scheduler/tool.go @@ -0,0 +1,186 @@ +package scheduler + +import ( + "context" + "encoding/json" + "fmt" + + "trankilou.fr/lassistanoque/backend/internal/domain" + "trankilou.fr/lassistanoque/backend/internal/service/task" +) + +// SchedulerTool permet à l'agent de planifier des tâches pour l'utilisateur : +// exécution d'un prompt selon une spécification cron, avec ou sans répétition. +type SchedulerTool struct { + taskService *task.Service +} + +func New(taskService *task.Service) *SchedulerTool { + return &SchedulerTool{taskService: taskService} +} + +func (t *SchedulerTool) Name() string { + return "scheduler" +} + +func (t *SchedulerTool) Description() string { + return "Schedule tasks that run automatically at specified times, with or without repetition. " + + "Use this tool whenever the user asks to do something later or on a recurring basis " + + "(e.g. 'every day at 8am', 'every Monday at 9am', 'tomorrow at 6pm', 'every hour'). " + + "Actions: 'create' (schedule a new task), 'list' (list scheduled tasks), " + + "'update' (modify a task's title, prompt, cron or repetition), " + + "'delete' (delete a task by its id)." +} + +func (t *SchedulerTool) Params() []domain.ToolParam { + return []domain.ToolParam{} +} + +func (t *SchedulerTool) Definition(ctx context.Context) *domain.ToolDefinition { + return &domain.ToolDefinition{ + Type: "function", + Function: &domain.ToolFunction{ + Name: t.Name(), + Description: t.Description(), + Parameters: map[string]any{ + "type": "object", + "properties": map[string]any{ + "action": map[string]any{ + "type": "string", + "enum": []string{"create", "list", "update", "delete"}, + "description": "The scheduling action to perform.", + }, + "title": map[string]any{ + "type": "string", + "description": "Short task title, e.g. 'Météo du matin'. Required for 'create'.", + }, + "prompt": map[string]any{ + "type": "string", + "description": "Self-contained prompt to execute at the scheduled time. " + + "It will run in a fresh conversation with no memory of this one: " + + "include all needed context. Required for 'create'.", + }, + "cron": map[string]any{ + "type": "string", + "description": "Cron spec, 5 fields 'minute hour day-of-month month day-of-week' " + + "(e.g. '0 8 * * *' every day at 08:00, '0 9 * * 1' every Monday at 09:00, " + + "'30 18 1 * *' on the 1st at 18:30) or a descriptor like '@daily', '@hourly', '@weekly'. " + + "Required for 'create'.", + }, + "repeat": map[string]any{ + "type": "boolean", + "description": "true: the task repeats on schedule. " + + "false: it runs only once, at the first time matching the cron spec, then is marked done. " + + "Default true. Use false for one-shot requests like 'tomorrow at 8am'.", + }, + "id": map[string]any{ + "type": "string", + "description": "Task id, as returned by 'list'. Required for 'update' and 'delete'.", + }, + }, + "required": []string{"action"}, + }, + }, + } +} + +func (t *SchedulerTool) Execute(ctx context.Context, input []byte, configuration string) ([]byte, error) { + var params struct { + Action string `json:"action"` + Title string `json:"title"` + Prompt string `json:"prompt"` + Cron string `json:"cron"` + Repeat *bool `json:"repeat"` + ID string `json:"id"` + } + if err := json.Unmarshal(input, ¶ms); err != nil { + return nil, fmt.Errorf("invalid parameters: %w", err) + } + + userID, ok := domain.UserIDFromContext(ctx) + if !ok { + return nil, fmt.Errorf("scheduler tool: missing user context") + } + teamID, ok := domain.TeamIDFromContext(ctx) + if !ok { + return nil, fmt.Errorf("scheduler tool: missing team context") + } + modelID, _ := domain.ModelIDFromContext(ctx) + + switch params.Action { + case "create": + repeat := true + if params.Repeat != nil { + repeat = *params.Repeat + } + taskModel, err := t.taskService.CreateTask(userID, teamID, &domain.Task{ + ModelID: modelID, + Label: params.Title, + Prompt: params.Prompt, + Cron: params.Cron, + Repeat: repeat, + }) + if err != nil { + return nil, err + } + result, err := json.Marshal(taskModel) + if err != nil { + return nil, err + } + return result, nil + + case "list": + tasks, err := t.taskService.ListTasks(userID, teamID) + if err != nil { + return nil, err + } + result, err := json.Marshal(tasks) + if err != nil { + return nil, err + } + return result, nil + + case "update": + if params.ID == "" { + return nil, fmt.Errorf("'id' is required for action 'update'") + } + current, err := t.taskService.GetTask(userID, teamID, params.ID) + if err != nil { + return nil, err + } + // mise à jour partielle : seuls les champs fournis changent + if params.Title != "" { + current.Label = params.Title + } + if params.Prompt != "" { + current.Prompt = params.Prompt + } + if params.Cron != "" { + current.Cron = params.Cron + } + if params.Repeat != nil { + current.Repeat = *params.Repeat + } + updated, err := t.taskService.UpdateTask(userID, teamID, current) + if err != nil { + return nil, err + } + result, err := json.Marshal(updated) + if err != nil { + return nil, err + } + return result, nil + + case "delete": + if params.ID == "" { + return nil, fmt.Errorf("'id' is required for action 'delete'") + } + if err := t.taskService.DeleteTask(userID, teamID, params.ID); err != nil { + return nil, err + } + return []byte("task deleted"), nil + + default: + return nil, fmt.Errorf("unknown action %q", params.Action) + } +} diff --git a/backend/internal/domain/llm.go b/backend/internal/domain/llm.go index 25e2f8f..1fbc541 100644 --- a/backend/internal/domain/llm.go +++ b/backend/internal/domain/llm.go @@ -151,7 +151,7 @@ type LLMEngine interface { } type ChatRepository interface { - ListChats(userID string, teamID string, page int, query string) ([]*Chat, error) + ListChats(userID string, teamID string, page int, query string, taskID string) ([]*Chat, error) ListChatsWithUnfreshTitles(teamID string) ([]*Chat, error) GetChat(userID string, teamID string, id string) (*Chat, error) CreateChat(userID string, chat *Chat) (*Chat, error) diff --git a/backend/internal/domain/task.go b/backend/internal/domain/task.go new file mode 100644 index 0000000..90fb09e --- /dev/null +++ b/backend/internal/domain/task.go @@ -0,0 +1,35 @@ +package domain + +import "time" + +const ( + // statuts d'une tâche planifiée + TaskStatusActive = "active" + TaskStatusDone = "done" +) + +type Task struct { + ID string `db:"id" json:"id"` + TeamID string `db:"team_id" json:"teamId"` + ModelID string `db:"model_id" json:"modelId"` + Label string `db:"label" json:"label"` + Prompt string `db:"prompt" json:"prompt"` + Cron string `db:"cron" json:"cron"` + Repeat bool `db:"repeat" json:"repeat"` + Status string `db:"status" json:"status"` + NextDatetime *time.Time `db:"next_datetime" json:"nextDatetime"` + LastDatetime *time.Time `db:"last_datetime" json:"lastDatetime"` + DateCreated time.Time `db:"_date_created" json:"_date_created"` + DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"` + VersionId string `db:"_version" json:"_version"` +} + +type TaskRepository interface { + ListTasks(userID string, teamID string) ([]*Task, error) + ListActiveTasks() ([]*Task, error) + GetTaskByID(userID string, teamID string, id string) (*Task, error) + CreateTask(task *Task) (*Task, error) + UpdateTask(task *Task) (*Task, error) + DeleteTask(userID string, teamID string, id string) error + FirstUserOfTeam(teamID string) (string, error) +} diff --git a/backend/internal/domain/tool.go b/backend/internal/domain/tool.go index ae041cf..56bb42f 100644 --- a/backend/internal/domain/tool.go +++ b/backend/internal/domain/tool.go @@ -1,6 +1,41 @@ package domain -import "time" +import ( + "context" + "time" +) + +// Clés de contexte passées aux outils lors de l'exécution : identité de +// l'appelant et modèle en cours, pour les outils qui en dépendent +// (ex. scheduler crée une tâche pour l'équipe courante). +type contextKey int + +const ( + contextKeyUserID contextKey = iota + contextKeyTeamID + contextKeyModelID +) + +func WithToolContext(ctx context.Context, userID string, teamID string, modelID string) context.Context { + ctx = context.WithValue(ctx, contextKeyUserID, userID) + ctx = context.WithValue(ctx, contextKeyTeamID, teamID) + return context.WithValue(ctx, contextKeyModelID, modelID) +} + +func UserIDFromContext(ctx context.Context) (string, bool) { + v, ok := ctx.Value(contextKeyUserID).(string) + return v, ok +} + +func TeamIDFromContext(ctx context.Context) (string, bool) { + v, ok := ctx.Value(contextKeyTeamID).(string) + return v, ok +} + +func ModelIDFromContext(ctx context.Context) (string, bool) { + v, ok := ctx.Value(contextKeyModelID).(string) + return v, ok +} type Tool struct { ID string `db:"id" json:"id"` diff --git a/backend/internal/http/handlers/chat.go b/backend/internal/http/handlers/chat.go index 4777412..ec50b8a 100644 --- a/backend/internal/http/handlers/chat.go +++ b/backend/internal/http/handlers/chat.go @@ -52,6 +52,7 @@ func (h *ChatHandler) NewChat(c *echo.Context) error { userID, teamID, request.AgentID, + "", ) if err != nil { c.Logger().Error("error creating chat", "error", err.Error()) @@ -120,11 +121,16 @@ func (h *ChatHandler) List(c *echo.Context) error { page := c.Param("page") pageInt, _ := strconv.Atoi(page) query := c.QueryParam("q") - chats, err := h.chatService.ListChats(userID, teamID, pageInt, query) + taskID := c.QueryParam("task") + chats, err := h.chatService.ListChats(userID, teamID, pageInt, query, taskID) if err != nil { c.Logger().Error("error listing chats", "error", err) return echo.NewHTTPError(http.StatusBadRequest, "error listing chats") } + // évite "null" dans la réponse quand il n'y a pas de conversation + if chats == nil { + chats = []*domain.Chat{} + } return c.JSON(http.StatusOK, chats) } diff --git a/backend/internal/http/handlers/task.go b/backend/internal/http/handlers/task.go new file mode 100644 index 0000000..28069bd --- /dev/null +++ b/backend/internal/http/handlers/task.go @@ -0,0 +1,70 @@ +package handlers + +import ( + "net/http" + + "github.com/labstack/echo/v5" + + "trankilou.fr/lassistanoque/backend/internal/domain" + "trankilou.fr/lassistanoque/backend/internal/service/auth" + "trankilou.fr/lassistanoque/backend/internal/service/task" +) + +type TaskHandler struct { + taskService *task.Service +} + +func NewTaskGroup(prefix string, e *echo.Group, service *task.Service, middlewares ...echo.MiddlewareFunc) *echo.Group { + taskHandler := &TaskHandler{taskService: service} + + auth := e.Group(prefix, middlewares...) + auth.GET("/:space", taskHandler.List) + auth.PUT("/:space/:id", taskHandler.Update) + auth.DELETE("/:space/:id", taskHandler.Delete) + return auth +} + +func (h *TaskHandler) List(c *echo.Context) error { + userID := c.Get(auth.ContextUserIDKey).(string) + teamID := c.Param("space") + tasks, err := h.taskService.ListTasks(userID, teamID) + if err != nil { + c.Logger().Error("error listing tasks", "error", err) + return echo.NewHTTPError(http.StatusBadRequest, "error listing tasks") + } + // évite "null" dans la réponse quand il n'y a pas de tâche + if tasks == nil { + tasks = []*domain.Task{} + } + return c.JSON(http.StatusOK, tasks) +} + +func (h *TaskHandler) Update(c *echo.Context) error { + userID := c.Get(auth.ContextUserIDKey).(string) + teamID := c.Param("space") + taskID := c.Param("id") + + var taskModel domain.Task + if err := c.Bind(&taskModel); err != nil { + return echo.NewHTTPError(http.StatusBadRequest, "error binding request") + } + taskModel.ID = taskID + + updated, err := h.taskService.UpdateTask(userID, teamID, &taskModel) + if err != nil { + c.Logger().Error("error updating task", "error", err) + return echo.NewHTTPError(http.StatusBadRequest, "error updating task") + } + return c.JSON(http.StatusOK, updated) +} + +func (h *TaskHandler) Delete(c *echo.Context) error { + userID := c.Get(auth.ContextUserIDKey).(string) + teamID := c.Param("space") + taskID := c.Param("id") + if err := h.taskService.DeleteTask(userID, teamID, taskID); err != nil { + c.Logger().Error("error deleting task", "error", err) + return echo.NewHTTPError(http.StatusBadRequest, "error deleting task") + } + return c.JSON(http.StatusOK, "task deleted") +} diff --git a/backend/internal/http/router.go b/backend/internal/http/router.go index ff5c2ad..d3675f6 100644 --- a/backend/internal/http/router.go +++ b/backend/internal/http/router.go @@ -16,6 +16,7 @@ import ( "trankilou.fr/lassistanoque/backend/internal/service/chat" "trankilou.fr/lassistanoque/backend/internal/service/provider" "trankilou.fr/lassistanoque/backend/internal/service/storage" + "trankilou.fr/lassistanoque/backend/internal/service/task" "trankilou.fr/lassistanoque/backend/internal/service/tool" "trankilou.fr/lassistanoque/backend/internal/service/user" ) @@ -44,6 +45,7 @@ type Dependencies struct { AgentService *agent.Service ChatService *chat.Service ToolService *tool.Service + TaskService *task.Service TokenManager auth.TokenManager } @@ -87,6 +89,7 @@ func NewRouter(deps Dependencies) *Router { _ = handlers.NewToolGroup("/tool", api, deps.ToolService, deps.UserService, deps.TokenManager.TokenMiddleware) _ = handlers.NewTeamGroup("/team", api, deps.UserService, deps.TokenManager.TokenMiddleware) _ = handlers.NewChatGroup("/chat", api, deps.ChatService, deps.TokenManager.TokenMiddleware) + _ = handlers.NewTaskGroup("/task", api, deps.TaskService, deps.TokenManager.TokenMiddleware) server := http.Server{ Addr: fmt.Sprintf(":%d", cfg.HttpPort), diff --git a/backend/internal/http/web/_app/immutable/assets/0.BKrS386W.css b/backend/internal/http/web/_app/immutable/assets/0.BKrS386W.css deleted file mode 100644 index a44e790..0000000 --- a/backend/internal/http/web/_app/immutable/assets/0.BKrS386W.css +++ /dev/null @@ -1,2 +0,0 @@ -/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-leading:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-green-300:oklch(87.1% .15 154.449);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-cyan-600:oklch(60.9% .126 221.723);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-700:oklch(50% .134 242.749);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-900:oklch(37.9% .146 265.522);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-800:oklch(27.8% .033 256.848);--color-stone-50:oklch(98.5% .001 106.423);--color-stone-100:oklch(97% .001 106.424);--color-stone-200:oklch(92.3% .003 48.717);--color-stone-300:oklch(86.9% .005 56.366);--color-stone-400:oklch(70.9% .01 56.259);--color-stone-500:oklch(55.3% .013 58.071);--color-stone-600:oklch(44.4% .011 73.639);--color-stone-700:oklch(37.4% .01 67.558);--color-stone-800:oklch(26.8% .007 34.298);--color-stone-900:oklch(21.6% .006 56.043);--color-stone-950:oklch(14.7% .004 49.25);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-medium:500;--font-weight-bold:700;--radius-sm:.25rem;--radius-lg:.5rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:oklch(55.1% .027 264.364);border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is(input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-color:oklch(54.6% .245 262.881);outline:2px solid #0000}input::placeholder,textarea::placeholder{color:oklch(55.1% .027 264.364);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;print-color-adjust:unset;padding-right:.75rem}input:where([type=checkbox]),input:where([type=radio]){appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:oklch(54.6% .245 262.881);--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:oklch(55.1% .027 264.364);flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);outline:2px solid #0000}input:where([type=checkbox]):checked,input:where([type=radio]):checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors:active){input:where([type=checkbox]):checked{appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors:active){input:where([type=radio]):checked{appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{background-color:currentColor;border-color:#0000}input:where([type=checkbox]):indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media (forced-colors:active){input:where([type=checkbox]):indeterminate{appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{background-color:currentColor;border-color:#0000}input:where([type=file]){background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}input:where([type=file]):focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.z-10{z-index:10}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-2{margin:calc(var(--spacing) * 2)}.m-54{margin:calc(var(--spacing) * 54)}.m-71{margin:calc(var(--spacing) * 71)}.m-143{margin:calc(var(--spacing) * 143)}.m-209{margin:calc(var(--spacing) * 209)}.m-214{margin:calc(var(--spacing) * 214)}.m-357{margin:calc(var(--spacing) * 357)}.m-375{margin:calc(var(--spacing) * 375)}.m-572{margin:calc(var(--spacing) * 572)}.m-auto{margin:auto}.mx-1{margin-inline:var(--spacing)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-4{margin-block:calc(var(--spacing) * 4)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-1{margin-right:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-full{height:100%}.h-screen{height:100vh}.w-6{width:calc(var(--spacing) * 6)}.w-9{width:calc(var(--spacing) * 9)}.w-20{width:calc(var(--spacing) * 20)}.w-96{width:calc(var(--spacing) * 96)}.w-full{width:100%}.max-w-full{max-width:100%}.max-w-sm{max-width:var(--container-sm)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(150px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.overflow-y-scroll{overflow-y:scroll}.rounded{border-radius:.25rem}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-stone-200{border-color:var(--color-stone-200)}.border-stone-500{border-color:var(--color-stone-500)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-cyan-600{background-color:var(--color-cyan-600)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-900{background-color:var(--color-red-900)}.bg-stone-50{background-color:var(--color-stone-50)}.bg-stone-300{background-color:var(--color-stone-300)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.py-1{padding-block:var(--spacing)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-red-300{color:var(--color-red-300)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-stone-500{color:var(--color-stone-500)}.text-stone-600{color:var(--color-stone-600)}.text-white{color:var(--color-white)}.italic{font-style:italic}.opacity-50{opacity:.5}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.focus\:shadow-none:focus{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}@media (width>=48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.dark\:border-stone-800:where(.dark,.dark *){border-color:var(--color-stone-800)}.dark\:bg-red-950:where(.dark,.dark *){background-color:var(--color-red-950)}.dark\:bg-stone-700:where(.dark,.dark *){background-color:var(--color-stone-700)}.dark\:bg-stone-800:where(.dark,.dark *){background-color:var(--color-stone-800)}.dark\:bg-stone-900:where(.dark,.dark *){background-color:var(--color-stone-900)}.dark\:text-red-400:where(.dark,.dark *){color:var(--color-red-400)}.dark\:text-stone-400:where(.dark,.dark *){color:var(--color-stone-400)}}html{height:100%}body{background-color:var(--color-stone-100);height:100%;color:var(--color-stone-950)}body:where(.dark,.dark *){background-color:var(--color-stone-950);color:var(--color-stone-100)}label{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-stone-600);text-transform:uppercase}label:where(.dark,.dark *){color:var(--color-stone-400)}hr{border-color:var(--color-stone-200)}hr:where(.dark,.dark *){border-color:var(--color-stone-800)}h2{margin-bottom:calc(var(--spacing) * 4);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.container{max-width:var(--container-3xl);margin-inline:auto}.pointer{cursor:pointer}.bt{appearance:button;min-width:calc(var(--spacing) * 40);cursor:pointer;background-color:var(--color-stone-300);padding-inline:calc(var(--spacing) * 4);padding-block:var(--spacing);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;border-radius:.25rem;transition-duration:.3s}@media (hover:hover){.bt:hover{background-color:var(--color-stone-400)}}.bt:where(.dark,.dark *){background-color:var(--color-stone-800)}@media (hover:hover){.bt:where(.dark,.dark *):hover{background-color:var(--color-stone-700)}}.bt.small{min-width:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing)}.bt.changed,.bt.saving{background-color:var(--color-sky-400)}:is(.bt.changed,.bt.saving):where(.dark,.dark *){background-color:var(--color-sky-700)}.bt.saved{background-color:var(--color-green-300)}.bt.saved:where(.dark,.dark *){background-color:var(--color-green-700)}.bt.error{background-color:var(--color-red-300)}.bt.error:where(.dark,.dark *){background-color:var(--color-red-700)}.bt.danger{background-color:var(--color-red-500);color:var(--color-white)}@media (hover:hover){.bt.danger:hover{background-color:var(--color-red-600)}}.bt.danger:where(.dark,.dark *){background-color:var(--color-red-700)}@media (hover:hover){.bt.danger:where(.dark,.dark *):hover{background-color:var(--color-red-600)}}.bt.disabled{color:var(--color-stone-400)}@media (hover:hover){.bt.disabled:hover{background-color:var(--color-stone-200)}.bt.disabled:where(.dark,.dark *):hover{background-color:var(--color-stone-800)}}.bt.highlight{color:var(--color-sky-700)}.bt.highlight:where(.dark,.dark *){color:var(--color-sky-300)}.menuitem{color:var(--color-stone-950)}.menuitem:where(.dark,.dark *){color:var(--color-stone-300)}@media (hover:hover){.menuitem:hover:where(.dark,.dark *){color:var(--color-stone-50)}}.header{padding-block:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.public h1{margin-bottom:calc(var(--spacing) * 4);font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.profile a{background-color:var(--color-sky-300)}.profile a:where(.dark,.dark *){background-color:var(--color-sky-700)}.public a{color:var(--color-sky-500)}.public a:where(.dark,.dark *){color:var(--color-sky-700)}#outer{flex-direction:row;height:100%;display:flex}#main{flex-direction:column;width:100%;display:flex}#sidebar{min-width:calc(var(--spacing) * 64);border-right-style:var(--tw-border-style);border-right-width:1px;border-right-color:var(--color-stone-200);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;transition-duration:.3s}#sidebar:where(.dark,.dark *){border-color:var(--color-stone-800)}#content{padding:calc(var(--spacing) * 2)}#hamburgerDesktop,#hamburgerMobile{display:none}@media (width>=640px){#hamburgerDesktop{display:inline}.desktopMenuClosed #sidebar{width:calc(var(--spacing) * 10);min-width:calc(var(--spacing) * 10)}}@media not all and (width>=640px){#hamburgerMobile{display:inline}#main{margin-left:calc(var(--spacing) * 10)}#sidebar{background-color:var(--color-stone-100);width:100%;height:100%;position:fixed;left:0}#sidebar:where(.dark,.dark *){background-color:var(--color-stone-950)}.mobileMenuClosed #sidebar{width:calc(var(--spacing) * 10);min-width:calc(var(--spacing) * 10);position:fixed}}.chatinput{border-color:var(--color-stone-300);background-color:var(--color-stone-50);width:100%;padding:calc(var(--spacing) * 2);color:var(--color-stone-900);border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.chatinput:where(.dark,.dark *){border-color:var(--color-stone-700);background-color:var(--color-stone-900);color:var(--color-stone-100)}.chatbutton{min-width:calc(var(--spacing) * 12);cursor:pointer;background-color:var(--color-stone-300);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;transition-duration:.3s}@media (hover:hover){.chatbutton:hover{background-color:var(--color-stone-400)}}.chatbutton:where(.dark,.dark *){background-color:var(--color-stone-700)}@media (hover:hover){.chatbutton:where(.dark,.dark *):hover{background-color:var(--color-stone-600)}}.formgroup{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-stone-300);background-color:var(--color-stone-200);padding:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));border-radius:.25rem}.formgroup:where(.dark,.dark *){border-color:var(--color-stone-700);background-color:var(--color-stone-900)}.formelement{margin-bottom:calc(var(--spacing) * 3)}.textinput{height:calc(var(--spacing) * 8);border-color:var(--color-stone-300);background-color:var(--color-stone-50);width:100%;padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-stone-900);border-radius:.25rem}.textinput:where(.dark,.dark *){border-color:var(--color-stone-700);background-color:var(--color-stone-950);color:var(--color-stone-100)}.checkboxinput{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-stone-500);background-color:var(--color-stone-100);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-stone-900);border-radius:.25rem}.checkboxinput:where(.dark,.dark *){background-color:var(--color-stone-900);color:var(--color-stone-100)}.areainput{border-color:var(--color-stone-300);background-color:var(--color-stone-50);width:100%;padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-stone-900);border-radius:.25rem}.areainput:where(.dark,.dark *){background-color:var(--color-stone-950);color:var(--color-stone-100)}.svelte-select{height:calc(var(--spacing) * 8);--tw-border-style:none;width:100%;color:var(--color-stone-900);border-style:none;display:flex;position:relative}.svelte-select:where(.dark,.dark *){background-color:var(--color-stone-950);color:var(--color-stone-100)}.svelte-select .value-container{flex:1;position:relative}.svelte-select input{height:calc(var(--spacing) * 8);cursor:default;border-color:var(--color-stone-700);width:100%;padding-inline:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing) * 10);line-height:calc(var(--spacing) * 10);color:var(--color-stone-100);background-color:#0000;border-radius:.25rem;margin:0;padding-block:0;position:absolute;top:0;left:0}.svelte-select.disabled{border-color:var(--color-gray-200);background-color:var(--color-gray-200);color:var(--color-gray-600)}.svelte-select.disabled input::placeholder{color:var(--color-gray-400);opacity:1}.svelte-select>.value-container>.selected-item{height:calc(var(--spacing) * 8);padding-inline:calc(var(--spacing) * 4);--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8);overflow-x:hidden}.svelte-select>.value-container>.selected-item:focus{--tw-outline-style:none;outline-style:none}.svelte-select .hide-selected-item{display:none}.svelte-select .indicators{pointer-events:none;height:calc(var(--spacing) * 8);--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y);color:var(--color-gray-200);align-items:center;display:flex;position:absolute;top:0;bottom:0;right:0}.svelte-select .icons>*{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-in-out);transition-duration:.2s;transition-timing-function:var(--ease-in-out)}.svelte-select .icons>:focus{--tw-outline-style:none;outline-style:none}.svelte-select .clear-select{pointer-events:auto}.svelte-select.focused .icons,.svelte-select .chevron:hover,.svelte-select .clear-select:hover{color:var(--color-gray-600)}.svelte-select .clear-select{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 9);padding-inline:calc(var(--spacing) * 2);color:var(--color-gray-300);flex:none}.svelte-select .chevron{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 9);border-left-style:var(--tw-border-style);padding-top:0;padding-right:calc(var(--spacing) * 2);padding-left:calc(var(--spacing) * 2);color:var(--color-gray-300);border-left-width:2px;display:flex}.svelte-select.multi{height:auto;padding-right:calc(var(--spacing) * 9);padding-left:calc(var(--spacing) * 4);flex-wrap:wrap;align-items:stretch}.svelte-select.multi input{margin:0;padding:0;position:relative}.svelte-select.error{border-color:var(--color-red-500);background-color:var(--color-white)}.a11y-text{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.svelte-select-list{z-index:10;max-height:calc(var(--spacing) * 64);border-radius:var(--radius-sm);--tw-border-style:none;background-color:var(--color-stone-50);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);width:100%;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-style:none;position:absolute;left:0;right:0;overflow-y:auto}.svelte-select-list:where(.dark,.dark *){background-color:var(--color-stone-800)}.svelte-select-list .list-group-title{height:calc(var(--spacing) * 8);cursor:default;padding-inline:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing) * 10);line-height:calc(var(--spacing) * 10);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;color:var(--color-gray-400);text-transform:uppercase}.svelte-select-list .empty{padding-block:calc(var(--spacing) * 5);text-align:center;color:var(--color-gray-500)}.svelte-select-item{height:calc(var(--spacing) * 8);cursor:default;padding-inline:calc(var(--spacing) * 5);--tw-leading:calc(var(--spacing) * 10);line-height:calc(var(--spacing) * 10);text-overflow:ellipsis;white-space:nowrap;color:var(--color-gray-800);overflow:hidden}.item.group-item{padding-inline:calc(var(--spacing) * 4)}.item.active{background-color:var(--color-blue-600);color:var(--color-white)}.item.active:where(.dark,.dark *){background-color:var(--color-blue-900)}.item.not-selectable{color:var(--color-gray-300)}.item.first{border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.item.hover:not(.active){background-color:var(--color-blue-100)}.item.hover:not(.active):where(.dark,.dark *){background-color:var(--color-stone-700)}.multi input{flex:40px}.multi-item{margin-top:var(--spacing);margin-right:var(--spacing);height:calc(var(--spacing) * 8);cursor:default;border-radius:var(--radius-sm);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-200);background-color:var(--color-gray-100);max-width:100%;padding-right:var(--spacing);padding-left:var(--spacing);--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8);text-overflow:ellipsis;white-space:nowrap;align-items:center;display:flex;overflow:hidden}@media (hover:hover){.multi-item.disabled:hover{background-color:var(--color-gray-300);color:var(--color-gray-500)}}.multi-item-clear{width:calc(var(--spacing) * 5);justify-content:center;align-items:center;display:flex}.list-item{list-style-type:none}.message.user{background-color:#00a5ef33}@supports (color:color-mix(in lab, red, red)){.message.user{background-color:color-mix(in oklab, var(--color-sky-500) 20%, transparent)}}.message.user{padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);color:var(--color-sky-700)}.message.user:where(.dark,.dark *){color:var(--color-sky-300)}.message .tool{background-color:#00c75833}@supports (color:color-mix(in lab, red, red)){.message .tool{background-color:color-mix(in oklab, var(--color-green-500) 20%, transparent)}}.message .tool{padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);color:var(--color-green-700)}.message .tool:where(.dark,.dark *){color:var(--color-green-300)}.message hr{margin-block:calc(var(--spacing) * 4)}.message ul,.message ol{margin-block:calc(var(--spacing) * 2);padding-left:calc(var(--spacing) * 5)}.message ul li{padding-left:calc(var(--spacing) * 2);list-style-type:disc}.message ol li{padding-left:calc(var(--spacing) * 2);list-style-type:decimal}.message h1{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.message h2{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.message h3{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.message h4{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.message h5{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.message pre{margin-block:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));border-radius:.25rem}.message pre:where(.dark,.dark *){background-color:var(--color-stone-700)}.message p{margin-block:calc(var(--spacing) * 2)}.message-content{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));white-space:pre-line}.message-content.reasoning{color:#00000080}@supports (color:color-mix(in lab, red, red)){.message-content.reasoning{color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.message-content.reasoning:where(.dark,.dark *){color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.message-content.reasoning:where(.dark,.dark *){color:color-mix(in oklab, var(--color-white) 50%, transparent)}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}} diff --git a/backend/internal/http/web/_app/immutable/assets/0.C0TpjoIE.css b/backend/internal/http/web/_app/immutable/assets/0.C0TpjoIE.css new file mode 100644 index 0000000..4bcdd49 --- /dev/null +++ b/backend/internal/http/web/_app/immutable/assets/0.C0TpjoIE.css @@ -0,0 +1,2 @@ +/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */ +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-leading:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-green-300:oklch(87.1% .15 154.449);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-cyan-600:oklch(60.9% .126 221.723);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-700:oklch(50% .134 242.749);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-900:oklch(37.9% .146 265.522);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-800:oklch(27.8% .033 256.848);--color-stone-50:oklch(98.5% .001 106.423);--color-stone-100:oklch(97% .001 106.424);--color-stone-200:oklch(92.3% .003 48.717);--color-stone-300:oklch(86.9% .005 56.366);--color-stone-400:oklch(70.9% .01 56.259);--color-stone-500:oklch(55.3% .013 58.071);--color-stone-600:oklch(44.4% .011 73.639);--color-stone-700:oklch(37.4% .01 67.558);--color-stone-800:oklch(26.8% .007 34.298);--color-stone-900:oklch(21.6% .006 56.043);--color-stone-950:oklch(14.7% .004 49.25);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-medium:500;--font-weight-bold:700;--radius-sm:.25rem;--radius-lg:.5rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:oklch(55.1% .027 264.364);border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is(input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-color:oklch(54.6% .245 262.881);outline:2px solid #0000}input::placeholder,textarea::placeholder{color:oklch(55.1% .027 264.364);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;print-color-adjust:unset;padding-right:.75rem}input:where([type=checkbox]),input:where([type=radio]){appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:oklch(54.6% .245 262.881);--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:oklch(55.1% .027 264.364);flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);outline:2px solid #0000}input:where([type=checkbox]):checked,input:where([type=radio]):checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors:active){input:where([type=checkbox]):checked{appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors:active){input:where([type=radio]):checked{appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{background-color:currentColor;border-color:#0000}input:where([type=checkbox]):indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media (forced-colors:active){input:where([type=checkbox]):indeterminate{appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{background-color:currentColor;border-color:#0000}input:where([type=file]){background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}input:where([type=file]):focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.z-10{z-index:10}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-2{margin:calc(var(--spacing) * 2)}.m-54{margin:calc(var(--spacing) * 54)}.m-71{margin:calc(var(--spacing) * 71)}.m-143{margin:calc(var(--spacing) * 143)}.m-209{margin:calc(var(--spacing) * 209)}.m-214{margin:calc(var(--spacing) * 214)}.m-357{margin:calc(var(--spacing) * 357)}.m-375{margin:calc(var(--spacing) * 375)}.m-572{margin:calc(var(--spacing) * 572)}.m-auto{margin:auto}.mx-1{margin-inline:var(--spacing)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-4{margin-block:calc(var(--spacing) * 4)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-1{margin-right:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-full{height:100%}.h-screen{height:100vh}.w-6{width:calc(var(--spacing) * 6)}.w-9{width:calc(var(--spacing) * 9)}.w-20{width:calc(var(--spacing) * 20)}.w-60{width:calc(var(--spacing) * 60)}.w-96{width:calc(var(--spacing) * 96)}.w-full{width:100%}.max-w-full{max-width:100%}.max-w-sm{max-width:var(--container-sm)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(150px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.overflow-y-scroll{overflow-y:scroll}.rounded{border-radius:.25rem}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-stone-200{border-color:var(--color-stone-200)}.border-stone-500{border-color:var(--color-stone-500)}.border-stone-600{border-color:var(--color-stone-600)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-cyan-600{background-color:var(--color-cyan-600)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-900{background-color:var(--color-red-900)}.bg-stone-50{background-color:var(--color-stone-50)}.bg-stone-300{background-color:var(--color-stone-300)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.py-1{padding-block:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-red-300{color:var(--color-red-300)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-sky-700{color:var(--color-sky-700)}.text-stone-500{color:var(--color-stone-500)}.text-stone-600{color:var(--color-stone-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.opacity-50{opacity:.5}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-sky-500{--tw-ring-color:var(--color-sky-500)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.focus\:shadow-none:focus{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}@media (width>=48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.dark\:border-stone-800:where(.dark,.dark *){border-color:var(--color-stone-800)}.dark\:bg-red-950:where(.dark,.dark *){background-color:var(--color-red-950)}.dark\:bg-stone-700:where(.dark,.dark *){background-color:var(--color-stone-700)}.dark\:bg-stone-800:where(.dark,.dark *){background-color:var(--color-stone-800)}.dark\:bg-stone-900:where(.dark,.dark *){background-color:var(--color-stone-900)}.dark\:text-red-400:where(.dark,.dark *){color:var(--color-red-400)}.dark\:text-sky-300:where(.dark,.dark *){color:var(--color-sky-300)}.dark\:text-stone-400:where(.dark,.dark *){color:var(--color-stone-400)}}html{height:100%}body{background-color:var(--color-stone-100);height:100%;color:var(--color-stone-950)}body:where(.dark,.dark *){background-color:var(--color-stone-950);color:var(--color-stone-100)}label{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-stone-600);text-transform:uppercase}label:where(.dark,.dark *){color:var(--color-stone-400)}hr{border-color:var(--color-stone-200)}hr:where(.dark,.dark *){border-color:var(--color-stone-800)}h2{margin-bottom:calc(var(--spacing) * 4);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.container{max-width:var(--container-3xl);margin-inline:auto}.pointer{cursor:pointer}.bt{appearance:button;min-width:calc(var(--spacing) * 40);cursor:pointer;background-color:var(--color-stone-300);padding-inline:calc(var(--spacing) * 4);padding-block:var(--spacing);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;border-radius:.25rem;transition-duration:.3s}@media (hover:hover){.bt:hover{background-color:var(--color-stone-400)}}.bt:where(.dark,.dark *){background-color:var(--color-stone-800)}@media (hover:hover){.bt:where(.dark,.dark *):hover{background-color:var(--color-stone-700)}}.bt.small{min-width:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing)}.bt.changed,.bt.saving{background-color:var(--color-sky-400)}:is(.bt.changed,.bt.saving):where(.dark,.dark *){background-color:var(--color-sky-700)}.bt.saved{background-color:var(--color-green-300)}.bt.saved:where(.dark,.dark *){background-color:var(--color-green-700)}.bt.error{background-color:var(--color-red-300)}.bt.error:where(.dark,.dark *){background-color:var(--color-red-700)}.bt.danger{background-color:var(--color-red-500);color:var(--color-white)}@media (hover:hover){.bt.danger:hover{background-color:var(--color-red-600)}}.bt.danger:where(.dark,.dark *){background-color:var(--color-red-700)}@media (hover:hover){.bt.danger:where(.dark,.dark *):hover{background-color:var(--color-red-600)}}.bt.disabled{color:var(--color-stone-400)}@media (hover:hover){.bt.disabled:hover{background-color:var(--color-stone-200)}.bt.disabled:where(.dark,.dark *):hover{background-color:var(--color-stone-800)}}.bt.highlight{color:var(--color-sky-700)}.bt.highlight:where(.dark,.dark *){color:var(--color-sky-300)}.menuitem{color:var(--color-stone-950)}.menuitem:where(.dark,.dark *){color:var(--color-stone-300)}@media (hover:hover){.menuitem:hover:where(.dark,.dark *){color:var(--color-stone-50)}}.header{padding-block:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.public h1{margin-bottom:calc(var(--spacing) * 4);font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.profile a{background-color:var(--color-sky-300)}.profile a:where(.dark,.dark *){background-color:var(--color-sky-700)}.public a{color:var(--color-sky-500)}.public a:where(.dark,.dark *){color:var(--color-sky-700)}#outer{flex-direction:row;height:100%;display:flex}#main{flex-direction:column;width:100%;display:flex}#sidebar{min-width:calc(var(--spacing) * 64);border-right-style:var(--tw-border-style);border-right-width:1px;border-right-color:var(--color-stone-200);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;transition-duration:.3s}#sidebar:where(.dark,.dark *){border-color:var(--color-stone-800)}#content{padding:calc(var(--spacing) * 2)}#hamburgerDesktop,#hamburgerMobile{display:none}@media (width>=640px){#hamburgerDesktop{display:inline}.desktopMenuClosed #sidebar{width:calc(var(--spacing) * 10);min-width:calc(var(--spacing) * 10)}}@media not all and (width>=640px){#hamburgerMobile{display:inline}#main{margin-left:calc(var(--spacing) * 10)}#sidebar{background-color:var(--color-stone-100);width:100%;height:100%;position:fixed;left:0}#sidebar:where(.dark,.dark *){background-color:var(--color-stone-950)}.mobileMenuClosed #sidebar{width:calc(var(--spacing) * 10);min-width:calc(var(--spacing) * 10);position:fixed}}.chatinput{border-color:var(--color-stone-300);background-color:var(--color-stone-50);width:100%;padding:calc(var(--spacing) * 2);color:var(--color-stone-900);border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.chatinput:where(.dark,.dark *){border-color:var(--color-stone-700);background-color:var(--color-stone-900);color:var(--color-stone-100)}.chatbutton{min-width:calc(var(--spacing) * 12);cursor:pointer;background-color:var(--color-stone-300);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;transition-duration:.3s}@media (hover:hover){.chatbutton:hover{background-color:var(--color-stone-400)}}.chatbutton:where(.dark,.dark *){background-color:var(--color-stone-700)}@media (hover:hover){.chatbutton:where(.dark,.dark *):hover{background-color:var(--color-stone-600)}}.formgroup{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-stone-300);background-color:var(--color-stone-200);padding:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));border-radius:.25rem}.formgroup:where(.dark,.dark *){border-color:var(--color-stone-700);background-color:var(--color-stone-900)}.formelement{margin-bottom:calc(var(--spacing) * 3)}.textinput{height:calc(var(--spacing) * 8);border-color:var(--color-stone-300);background-color:var(--color-stone-50);width:100%;padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-stone-900);border-radius:.25rem}.textinput:where(.dark,.dark *){border-color:var(--color-stone-700);background-color:var(--color-stone-950);color:var(--color-stone-100)}.checkboxinput{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-stone-500);background-color:var(--color-stone-100);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-stone-900);border-radius:.25rem}.checkboxinput:where(.dark,.dark *){background-color:var(--color-stone-900);color:var(--color-stone-100)}.areainput{border-color:var(--color-stone-300);background-color:var(--color-stone-50);width:100%;padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-stone-900);border-radius:.25rem}.areainput:where(.dark,.dark *){background-color:var(--color-stone-950);color:var(--color-stone-100)}.svelte-select{height:calc(var(--spacing) * 8);--tw-border-style:none;width:100%;color:var(--color-stone-900);border-style:none;display:flex;position:relative}.svelte-select:where(.dark,.dark *){background-color:var(--color-stone-950);color:var(--color-stone-100)}.svelte-select .value-container{flex:1;position:relative}.svelte-select input{height:calc(var(--spacing) * 8);cursor:default;border-color:var(--color-stone-700);width:100%;padding-inline:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing) * 10);line-height:calc(var(--spacing) * 10);color:var(--color-stone-100);background-color:#0000;border-radius:.25rem;margin:0;padding-block:0;position:absolute;top:0;left:0}.svelte-select.disabled{border-color:var(--color-gray-200);background-color:var(--color-gray-200);color:var(--color-gray-600)}.svelte-select.disabled input::placeholder{color:var(--color-gray-400);opacity:1}.svelte-select>.value-container>.selected-item{height:calc(var(--spacing) * 8);padding-inline:calc(var(--spacing) * 4);--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8);overflow-x:hidden}.svelte-select>.value-container>.selected-item:focus{--tw-outline-style:none;outline-style:none}.svelte-select .hide-selected-item{display:none}.svelte-select .indicators{pointer-events:none;height:calc(var(--spacing) * 8);--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y);color:var(--color-gray-200);align-items:center;display:flex;position:absolute;top:0;bottom:0;right:0}.svelte-select .icons>*{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-in-out);transition-duration:.2s;transition-timing-function:var(--ease-in-out)}.svelte-select .icons>:focus{--tw-outline-style:none;outline-style:none}.svelte-select .clear-select{pointer-events:auto}.svelte-select.focused .icons,.svelte-select .chevron:hover,.svelte-select .clear-select:hover{color:var(--color-gray-600)}.svelte-select .clear-select{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 9);padding-inline:calc(var(--spacing) * 2);color:var(--color-gray-300);flex:none}.svelte-select .chevron{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 9);border-left-style:var(--tw-border-style);padding-top:0;padding-right:calc(var(--spacing) * 2);padding-left:calc(var(--spacing) * 2);color:var(--color-gray-300);border-left-width:2px;display:flex}.svelte-select.multi{height:auto;padding-right:calc(var(--spacing) * 9);padding-left:calc(var(--spacing) * 4);flex-wrap:wrap;align-items:stretch}.svelte-select.multi input{margin:0;padding:0;position:relative}.svelte-select.error{border-color:var(--color-red-500);background-color:var(--color-white)}.a11y-text{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.svelte-select-list{z-index:10;max-height:calc(var(--spacing) * 64);border-radius:var(--radius-sm);--tw-border-style:none;background-color:var(--color-stone-50);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);width:100%;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-style:none;position:absolute;left:0;right:0;overflow-y:auto}.svelte-select-list:where(.dark,.dark *){background-color:var(--color-stone-800)}.svelte-select-list .list-group-title{height:calc(var(--spacing) * 8);cursor:default;padding-inline:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing) * 10);line-height:calc(var(--spacing) * 10);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;color:var(--color-gray-400);text-transform:uppercase}.svelte-select-list .empty{padding-block:calc(var(--spacing) * 5);text-align:center;color:var(--color-gray-500)}.svelte-select-item{height:calc(var(--spacing) * 8);cursor:default;padding-inline:calc(var(--spacing) * 5);--tw-leading:calc(var(--spacing) * 10);line-height:calc(var(--spacing) * 10);text-overflow:ellipsis;white-space:nowrap;color:var(--color-gray-800);overflow:hidden}.item.group-item{padding-inline:calc(var(--spacing) * 4)}.item.active{background-color:var(--color-blue-600);color:var(--color-white)}.item.active:where(.dark,.dark *){background-color:var(--color-blue-900)}.item.not-selectable{color:var(--color-gray-300)}.item.first{border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.item.hover:not(.active){background-color:var(--color-blue-100)}.item.hover:not(.active):where(.dark,.dark *){background-color:var(--color-stone-700)}.multi input{flex:40px}.multi-item{margin-top:var(--spacing);margin-right:var(--spacing);height:calc(var(--spacing) * 8);cursor:default;border-radius:var(--radius-sm);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-200);background-color:var(--color-gray-100);max-width:100%;padding-right:var(--spacing);padding-left:var(--spacing);--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8);text-overflow:ellipsis;white-space:nowrap;align-items:center;display:flex;overflow:hidden}@media (hover:hover){.multi-item.disabled:hover{background-color:var(--color-gray-300);color:var(--color-gray-500)}}.multi-item-clear{width:calc(var(--spacing) * 5);justify-content:center;align-items:center;display:flex}.list-item{list-style-type:none}.message.user{background-color:#00a5ef33}@supports (color:color-mix(in lab, red, red)){.message.user{background-color:color-mix(in oklab, var(--color-sky-500) 20%, transparent)}}.message.user{padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);color:var(--color-sky-700)}.message.user:where(.dark,.dark *){color:var(--color-sky-300)}.message .tool{background-color:#00c75833}@supports (color:color-mix(in lab, red, red)){.message .tool{background-color:color-mix(in oklab, var(--color-green-500) 20%, transparent)}}.message .tool{padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);color:var(--color-green-700)}.message .tool:where(.dark,.dark *){color:var(--color-green-300)}.message hr{margin-block:calc(var(--spacing) * 4)}.message ul,.message ol{margin-block:calc(var(--spacing) * 2);padding-left:calc(var(--spacing) * 5)}.message ul li{padding-left:calc(var(--spacing) * 2);list-style-type:disc}.message ol li{padding-left:calc(var(--spacing) * 2);list-style-type:decimal}.message h1{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.message h2{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.message h3{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.message h4{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.message h5{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.message pre{margin-block:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));border-radius:.25rem}.message pre:where(.dark,.dark *){background-color:var(--color-stone-700)}.message p{margin-block:calc(var(--spacing) * 2)}.message-content{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));white-space:pre-line}.message-content.reasoning{color:#00000080}@supports (color:color-mix(in lab, red, red)){.message-content.reasoning{color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.message-content.reasoning:where(.dark,.dark *){color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.message-content.reasoning:where(.dark,.dark *){color:color-mix(in oklab, var(--color-white) 50%, transparent)}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}} diff --git a/backend/internal/http/web/_app/immutable/chunks/BYYkuYgk.js b/backend/internal/http/web/_app/immutable/chunks/BYYkuYgk.js new file mode 100644 index 0000000..b67536b --- /dev/null +++ b/backend/internal/http/web/_app/immutable/chunks/BYYkuYgk.js @@ -0,0 +1 @@ +import{t as e}from"./DtfiK5fE.js";var t={createChat:(t,n)=>e.post(`/chat/${t}`,n),createChatMessage:(t,n,r)=>e.postStream(`/chat/${t}/${n}`,r),allChats:(t,n,r,i)=>e.get(`/chat/${t}/all/${n}${r||i?`?${[r&&`q=${encodeURIComponent(r)}`,i&&`task=${i}`].filter(Boolean).join(`&`)}`:``}`),getChat:(t,n)=>e.get(`/chat/${t}/${n}`),subscribe:(t,n)=>e.get(`/chat/${t}/${n}/subscribe`),deleteChat:(t,n)=>e.delete(`/chat/${t}/${n}`)};export{t}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/chunks/Soo4K-rz.js b/backend/internal/http/web/_app/immutable/chunks/BZuNOv8h.js similarity index 98% rename from backend/internal/http/web/_app/immutable/chunks/Soo4K-rz.js rename to backend/internal/http/web/_app/immutable/chunks/BZuNOv8h.js index 8a3a0e8..2485fdd 100644 --- a/backend/internal/http/web/_app/immutable/chunks/Soo4K-rz.js +++ b/backend/internal/http/web/_app/immutable/chunks/BZuNOv8h.js @@ -1 +1 @@ -import{B as e,H as t,V as n,ct as r,it as i,nt as a,r as o,t as s}from"./DGrvnoUE.js";var c=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},l=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},u=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function d(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function f(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function p(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(e,t,n,r=!1){let i=new URL(e);Object.defineProperty(i,"searchParams",{value:new Proxy(i.searchParams,{get(e,r){if(r===`get`||r===`getAll`||r===`has`)return(t,...i)=>(n(t),e[r](t,...i));t();let i=Reflect.get(e,r);return typeof i==`function`?i.bind(e):i}}),enumerable:!0,configurable:!0});let a=[`href`,`pathname`,`search`,`toString`,`toJSON`];r&&a.push(`hash`);for(let n of a)Object.defineProperty(i,n,{get(){return t(),e[n]},enumerable:!0,configurable:!0});return i}function g(){}function _(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function v(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&y.delete(x(e)),ee(e,t));var y=new Map;function b(e,t){let n=x(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=v(e));let i=r.getAttribute(`data-ttl`);return i&&y.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function te(e,t,n){if(y.size>0){let t=x(e,n),r=y.get(t);if(r){if(performance.now(){let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return ce(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return ce(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=ne.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return ce(e)}).join(``)}).join(``)}/?$`),params:t}}function ae(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function oe(e){return e.slice(1).split(`/`).filter(ae)}function se(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;ee).join(`/`),o=0),c===void 0)if(s.rest)c=``;else continue;if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function ce(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function le({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=ie(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return se(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function ue(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function de(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var S=globalThis.__sveltekit_1eyxneb?.base??``,fe=globalThis.__sveltekit_1eyxneb?.assets??S??``,pe=`1791236559767`,me=`sveltekit:snapshot`,he=`sveltekit:scroll`,ge=`sveltekit:states`,C=`sveltekit:history`,w=`sveltekit:navigation`,T={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},_e=location.origin;function ve(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function E(){return{x:pageXOffset,y:pageYOffset}}function D(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var ye={...T,"":T.hover};function be(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function xe(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=be(e)}}function Se(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||O(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===_e&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function Ce(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=D(s,`preload-code`)),i===null&&(i=D(s,`preload-data`)),t===null&&(t=D(s,`keepfocus`)),n===null&&(n=D(s,`noscroll`)),a===null&&(a=D(s,`reload`)),o===null&&(o=D(s,`replacestate`)),s=be(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:ye[r??`off`],preload_data:ye[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function we(e){let t=r(e),n=!0;function i(){n=!0,t.update(e=>e)}function a(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:i,set:a,subscribe:o}}var Te={v:g};function Ee(){let{set:e,subscribe:t}=r(!1),n;async function i(){clearTimeout(n);try{let t=await fetch(`${fe}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let r=(await t.json()).version!==pe;return r&&(e(!0),Te.v(),clearTimeout(n)),r}catch{return!1}}return{subscribe:t,check:i}}function O(e,t,n){return e.origin!==_e||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function De(e){}var Oe=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...Oe],[...new Set([...Oe])];function ke(e){return e.filter(e=>e!=null)}function k(e,t){return e+`/`+t}function Ae(e){return e instanceof c||e instanceof u?e.status:500}function je(e){return e instanceof u?e.text:`Internal Error`}var A,j,Me,Ne=o.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(o.toString()),Pe=`a:`;Ne?(A={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Pe)},j={current:null},Me={current:!1}):(A=new class{#e=i({});get data(){return e(this.#e)}set data(e){a(this.#e,e)}#t=i(null);get form(){return e(this.#t)}set form(e){a(this.#t,e)}#n=i(null);get error(){return e(this.#n)}set error(e){a(this.#n,e)}#r=i({});get params(){return e(this.#r)}set params(e){a(this.#r,e)}#i=i({id:null});get route(){return e(this.#i)}set route(e){a(this.#i,e)}#a=i({});get state(){return e(this.#a)}set state(e){a(this.#a,e)}#o=i(-1);get status(){return e(this.#o)}set status(e){a(this.#o,e)}#s=i(new URL(Pe));get url(){return e(this.#s)}set url(e){a(this.#s,e)}},j=new class{#e=i(null);get current(){return e(this.#e)}set current(e){a(this.#e,e)}},Me=new class{#e=i(!1);get current(){return e(this.#e)}set current(e){a(this.#e,e)}},Te.v=()=>Me.current=!0);function Fe(e){Object.assign(A,e)}var Ie={spanContext(){return Le},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},Le={traceId:``,spanId:``,traceFlags:0},{onMount:Re,tick:ze}=s,Be=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),M=null,N=ue(`sveltekit:scroll`)??{},P=ue(`sveltekit:snapshot`)??{},F={url:we({}),page:we({}),navigating:r(null),updated:Ee()};function Ve(e){N[e]=E()}function He(e,t){let n=e+1;for(;N[n];)delete N[n],n+=1;for(n=t+1;P[n];)delete P[n],n+=1}function I(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(g)}async function Ue(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(S||`/`);e&&await e.update()}}var We,Ge,Ke,L,qe,R,Je={},Ye={},Xe=[],z=[],B=null;function V(){B?.fork?.then(e=>e?.discard()),B=null,Q={element:void 0,href:void 0}}var Ze=new Map,Qe=new Set,$e=new Set,H=new Set,U={branch:[],error:null,url:null,nav:null},et=!1,tt=!1,nt=!0,W=!1,G=!1,rt=!1,K=!1,it,q,J,Y,at=new Set,ot,st=new Map,ct=new Map;async function lt(e,t,n){if(globalThis.__sveltekit_1eyxneb.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_1eyxneb.data;for(let t in e)Je[t]=e[t];for(let e in n)Je[e]=n[e];for(let e in r)Je[e]=r[e];for(let e in t)Ye[e]=t[e]}document.URL!==location.href&&(location.href=location.href),R=e,await e.hooks.init?.(),We=le(e),L=document.documentElement,qe=t,Ge=e.nodes[0],Ke=e.nodes[1],Ge(),Ke(),q=history.state?.[C],J=history.state?.[w],q||(q=J=Date.now(),history.replaceState({...history.state,[C]:q,[w]:J},``));let r=N[q];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await zt(qe,n)):(await Z({type:`enter`,url:ve(R.hash?Gt(new URL(location.href)):location.href),replace_state:!0}),i()),Rt()}async function ut(e=!0,t=!0){if(await(ot||=Promise.resolve()),!ot)return;ot=null;let n=Y={},r=await X(U.url,!0);V();let i=new Map;if(K){for(let e of st.values())for(let{resource:t}of e.values())t.refresh();for(let[e,t]of ct)for(let[n,{resource:r}]of t){let t=k(e,n),a=r.reconnect();a.catch(g),i.set(t,a)}}if(e){let e=A.state,i=r&&await Et(r);if(!i||n!==Y)return;if(i.type===`redirect`)return ht(new URL(i.location,U.url).href,{replaceState:!0},1,n);t||(i.props.page.state=e),Fe(i.props.page),U={...i.state,nav:U.nav},dt(),it.$set(i.props)}else dt();let a=[];for(let e of st.values())for(let{resource:t}of e.values())a.push(t);for(let[e,t]of ct)for(let n of t.keys()){let t=k(e,n),r=i.get(t);r&&a.push(r)}await Promise.all(a).catch(g)}function dt(){Xe.length=0,K=!1}function ft(e){z.some(e=>e?.snapshot)&&(P[e]=z.map(e=>e?.snapshot?.capture()))}function pt(e){P[e]?.forEach((e,t)=>{z[t]?.snapshot?.restore(e)})}function mt(){Ve(q),de(he,N),ft(J),de(me,P)}async function ht(e,n,r,i){let a,o;n.invalidateAll&&V(),await Z({type:`goto`,url:ve(e),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{if(n.invalidateAll){K=!0,a=new Set;for(let[e,t]of st)for(let[n,r]of t)r.resource?.reset(),a.add(k(e,n));o=new Set;for(let[e,t]of ct)for(let n of t.keys())o.add(k(e,n))}n.invalidate&&n.invalidate.forEach(It)}}),n.invalidateAll&&t().then(t).then(()=>{for(let[e,t]of st)for(let[n,{resource:r}]of t)a?.has(k(e,n))&&r.start();for(let[e,t]of ct)for(let[n,{resource:r}]of t)o?.has(k(e,n))&&r.reconnect()})}async function gt(e){if(e.id!==B?.id){V();let t={};at.add(t),B={id:e.id,token:t,promise:Et({...e,preload:t}).then(e=>(at.delete(t),e.type===`loaded`&&e.state.error&&V(),e)),fork:null}}return B.promise}async function _t(e){let t=(await X(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function vt(e,t,n){let r={params:U.params,route:{id:U.route?.id??null},url:new URL(location.href)};if(U={...e.state,nav:r},Fe(e.props.page),it=new R.root({target:t,props:{...e.props,stores:F,components:z},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:N[q]??E()},willUnload:!1,type:`enter`,complete:Promise.resolve()};H.forEach(t=>t(e))}pt(J),tt=!0}async function yt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(S&&(e.pathname===S||e.pathname===S+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=d(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:ke(n).map(e=>e.node.component),page:Wt(A)}};s!==void 0&&(l.props.form=s);let u={},f=!A,p=0;for(let e=0;e(s&&(c.route=!0),e[t])}),params:new Proxy(r,{get:(e,t)=>(s&&c.params.add(t),e[t])}),data:a?.data??null,url:h(n,()=>{s&&(c.url=!0)},e=>{s&&c.search_params.add(e)},R.hash),async fetch(t,r){t instanceof Request&&(r={body:t.method===`GET`||t.method===`HEAD`?void 0:await t.blob(),cache:t.cache,credentials:t.credentials,headers:[...t.headers].length>0?t?.headers:void 0,integrity:t.integrity,keepalive:t.keepalive,method:t.method,mode:t.mode,redirect:t.redirect,referrer:t.referrer,referrerPolicy:t.referrerPolicy,signal:t.signal,...r});let{resolved:i,promise:a}=xt(t,r,n);return s&&e(i.href),a},setHeaders:g,depends:e,parent(){return s&&(c.parent=!0),t()},untrack(e){s=!1;try{return e()}finally{s=!0}}};o=await l.universal.load.call(null,u)??null}return{node:l,loader:e,server:a,universal:l.universal?.load?{type:`data`,data:o,uses:c}:null,data:o??a?.data??null,slash:l.universal?.trailingSlash??a?.slash}}function xt(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:tt?te(r,i.href,t):b(r,t)}}function St(e,t,n,r,i,a){if(K)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==U.params[e])return!0;for(let e of i.dependencies)if(Xe.some(t=>t(new URL(e))))return!0;return!1}function Ct(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function wt(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function Tt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Wt(A),constructors:[]}}}async function Et({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(B?.id===e)return at.delete(B.token),B.promise;let{errors:o,layouts:s,leaf:u}=i,d=[...s,u];o.forEach(e=>e?.().catch(g)),d.forEach(e=>e?.[1]().catch(g));let f=U.url?e!==jt(U.url):!1,p=U.route?i.id!==U.route.id:!1,m=wt(U.url,n),h=!1,_=d.map(async(e,t)=>{if(!e)return;let a=U.branch[t];return e[1]===a?.loader&&!St(h,p,f,m,a.universal?.uses,r)?a:(h=!0,bt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;nPromise.resolve({}),server_data_node:Ct(null)}),{node:await Ke(),loader:Ke,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof l){await ht(new URL(t.location,location.href),{},0);return}let a=await R.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&`).replace(//g,`>`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function kt(e){let t=e.href;if(Ze.has(t))return Ze.get(t);let n;try{let r=(async()=>{let t=await R.hooks.reroute({url:new URL(e),fetch:async(t,n)=>xt(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);R.hash?n.hash=t:n.pathname=t,t=n}return t})();Ze.set(t,r),n=await r}catch{Ze.delete(t);return}return n}async function X(e,t){if(e&&!O(e,S,R.hash)){let n=await kt(e);if(!n)return;let r=At(n);for(let n of We){let i=n.exec(r);if(i)return{id:jt(e),invalidating:t,route:n,params:p(i),url:e}}}}function At(e){return f(R.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(S.length))||`/`}function jt(e){return(R.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Mt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=Ut(U,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return W||Qe.forEach(e=>e(c)),o?null:s}async function Z({type:e,url:r,popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:d={},accept:f=g,block:p=g,event:m}){let h=Y;Y=d;let _=await X(r,!1),v=e===`enter`?Ut(U,_,r,e):Mt({url:r,type:e,delta:i?.delta,intent:_,scroll:i?.scroll,event:m});if(!v){p(),Y===d&&(Y=h);return}let ee=q,y=J;f(),W=!0,tt&&v.navigation.type!==`enter`&&F.navigating.set(j.current=v.navigation);let b=_&&await Et(_);if(!b){if(O(r,S,R.hash))return await I(r,s);b=await Nt(r,{id:null},await $(new u(404,`Not Found`,`Not found: ${r.pathname}`),{url:r,params:{},route:{id:null}}),404,s)}if(r=_?.url||r,Y!==d){v.reject(Error(`navigation aborted`));return}if(!b)return;if(b.type===`redirect`){if(l<20){await Z({type:e,url:new URL(b.location,r),popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:d}),v.fulfil(void 0);return}if(b=await Ot({status:500,error:await $(Error(`Redirect loop`),{url:r,params:{},route:{id:null}}),url:r,route:{id:null}}),!b)return}else if(b.props.page.status>=400&&await F.updated.check())return await Ue(),await I(r,s);if(dt(),Ve(ee),ft(y),b.props.page.url.pathname!==r.pathname&&(r.pathname=b.props.page.url.pathname),c=i?i.state:c,!i){let e=+!s,t={[C]:q+=e,[w]:J+=e,[ge]:c};(s?history.replaceState:history.pushState).call(history,t,``,r),s||He(q,J)}let te=_&&B?.id===_.id?B.fork:null;B?.fork&&!te?V():(B=null,Q={element:void 0,href:void 0}),b.props.page.state=c;let x;if(tt){let e=(await Promise.all(Array.from($e,e=>e(v.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{H.delete(e)})}e.push(t),e.forEach(e=>{H.add(e)})}let t=v.navigation.to;U={...b.state,nav:{params:t.params,route:t.route,url:t.url}},b.props.page&&(b.props.page.url=r),!a&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let i=te&&await te;i?x=i.commit():(M=null,it.$set(b.props),M&&Object.assign(b.props.page,M),Fe(b.props.page),x=n?.()),rt=!0}else await vt(b,qe,!1);let{activeElement:ne}=document;if(await x,await t(),await t(),Y!==d){v.reject(Error(`navigation aborted`));return}b.props.page&&M&&Object.assign(b.props.page,M);let re=null;if(nt){let e=i?i.scroll:o?E():null;e?scrollTo(e.x,e.y):(re=r.hash&&document.getElementById(Kt(r)))?re.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==ne&&document.activeElement!==document.body;!a&&!ie&&Ht(r,!re),nt=!0,W=!1,v.fulfil(void 0),v.navigation.to&&(v.navigation.to.scroll=E()),H.forEach(e=>e(v.navigation)),e===`popstate`&&pt(J),F.navigating.set(j.current=null)}async function Nt(e,t,n,r,i){return e.origin===_e&&e.pathname===location.pathname&&!et?await Ot({status:r,error:n,url:e,route:t}):await I(e,i)}var Q={element:void 0,href:void 0};function Pt(){let e,t;L.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,T.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],T.tap)}L.addEventListener(`mousedown`,n),L.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(_t(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=xe(e,L),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=Se(r,S,R.hash);if(o||s)return;let c=Ce(r),l=a&&jt(U.url)===jt(a);if(!(c.reload||l))if(n<=c.preload_data){Q={element:r,href:r.href},t=T.tap;let e=await X(a,!1);if(!e)return;gt(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,_t(a))}function a(){r.disconnect();for(let e of L.querySelectorAll(`a`)){let{url:t,external:n,download:i}=Se(e,S,R.hash);if(n||i)continue;let a=Ce(e);a.reload||(a.preload_code===T.viewport&&r.observe(e),a.preload_code===T.eager&&_t(t))}}H.add(a),a()}function $(e,t){if(e instanceof c)return e.body;let n=Ae(e),r=je(e);return R.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Ft(e,t={}){return e=new URL(ve(e)),e.origin===_e?ht(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function It(e){if(typeof e==`function`)Xe.push(e);else{let{href:t}=new URL(e,location.href);Xe.push(e=>e.href===t)}}function Lt(){return K=!0,ut()}function Rt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(mt(),!W){let e=Ut(U,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};Qe.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&mt()}),navigator.connection?.saveData||Pt(),L.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=xe(t.composedPath()[0],L);if(!n)return;let{url:r,external:i,target:a,download:o}=Se(n,S,R.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=Ce(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&r.protocol!==`https:`&&r.protocol!==`http:`||o)return;let[c,l]=(R.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){Mt({url:r,type:`link`,event:t})?W=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=U.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(G=!0,Ve(q),e(r),!s.replace_state)return;G=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),L.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(O(r,S,!1))return;let i=e.target,a=Ce(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Vt)if(t.state?.[`sveltekit:history`]){let n=t.state[C];if(Y={},n===q)return;let r=N[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[w],s=U.url?m(location)===m(U.url):!1;if(o===J&&(rt||s)){i!==A.state&&(A.state=i),e(a),N[q]=E(),r&&scrollTo(r.x,r.y),q=n;return}let c=n-q;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{q=n,J=o},block:()=>{history.go(-c)},nav_token:Y,event:t})}else G||(e(new URL(location.href)),R.hash&&location.reload())}),addEventListener(`hashchange`,()=>{G&&(G=!1,history.replaceState({...history.state,[C]:++q,[w]:J},``,location.href))});for(let e of document.querySelectorAll(`link`))Be.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&F.navigating.set(j.current=null)});function e(e){U.url=A.url=e,F.page.set(Wt(A)),F.page.notify()}}async function zt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){et=!0;let u=new URL(location.href),d;({params:i={},route:a={id:null}}=await X(u,!1)||{}),d=We.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Bt(r.uses)),bt({loader:R.nodes[t],url:u,params:i,route:a,parent:async()=>{let t={};for(let r=0;r{let a=history.state;Vt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Vt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t{if(r.rangeCount===e.length){for(let t=0;t{a=e,o=t});return s.catch(g),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:E()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Wt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Gt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Kt(e){let t;if(R.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{j as a,De as c,F as i,Lt as n,A as o,lt as r,Me as s,Ft as t}; \ No newline at end of file +import{B as e,H as t,V as n,ct as r,it as i,nt as a,r as o,t as s}from"./DGrvnoUE.js";var c=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},l=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},u=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function d(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function f(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function p(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(e,t,n,r=!1){let i=new URL(e);Object.defineProperty(i,"searchParams",{value:new Proxy(i.searchParams,{get(e,r){if(r===`get`||r===`getAll`||r===`has`)return(t,...i)=>(n(t),e[r](t,...i));t();let i=Reflect.get(e,r);return typeof i==`function`?i.bind(e):i}}),enumerable:!0,configurable:!0});let a=[`href`,`pathname`,`search`,`toString`,`toJSON`];r&&a.push(`hash`);for(let n of a)Object.defineProperty(i,n,{get(){return t(),e[n]},enumerable:!0,configurable:!0});return i}function g(){}function _(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function v(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&y.delete(x(e)),ee(e,t));var y=new Map;function b(e,t){let n=x(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=v(e));let i=r.getAttribute(`data-ttl`);return i&&y.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function te(e,t,n){if(y.size>0){let t=x(e,n),r=y.get(t);if(r){if(performance.now(){let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return ce(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return ce(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=ne.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return ce(e)}).join(``)}).join(``)}/?$`),params:t}}function ae(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function oe(e){return e.slice(1).split(`/`).filter(ae)}function se(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;ee).join(`/`),o=0),c===void 0)if(s.rest)c=``;else continue;if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function ce(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function le({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=ie(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return se(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function ue(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function de(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var S=globalThis.__sveltekit_1uu3rg0?.base??``,fe=globalThis.__sveltekit_1uu3rg0?.assets??S??``,pe=`1791316638543`,me=`sveltekit:snapshot`,he=`sveltekit:scroll`,ge=`sveltekit:states`,C=`sveltekit:history`,w=`sveltekit:navigation`,T={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},_e=location.origin;function ve(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function E(){return{x:pageXOffset,y:pageYOffset}}function D(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var ye={...T,"":T.hover};function be(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function xe(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=be(e)}}function Se(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||O(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===_e&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function Ce(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=D(s,`preload-code`)),i===null&&(i=D(s,`preload-data`)),t===null&&(t=D(s,`keepfocus`)),n===null&&(n=D(s,`noscroll`)),a===null&&(a=D(s,`reload`)),o===null&&(o=D(s,`replacestate`)),s=be(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:ye[r??`off`],preload_data:ye[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function we(e){let t=r(e),n=!0;function i(){n=!0,t.update(e=>e)}function a(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:i,set:a,subscribe:o}}var Te={v:g};function Ee(){let{set:e,subscribe:t}=r(!1),n;async function i(){clearTimeout(n);try{let t=await fetch(`${fe}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let r=(await t.json()).version!==pe;return r&&(e(!0),Te.v(),clearTimeout(n)),r}catch{return!1}}return{subscribe:t,check:i}}function O(e,t,n){return e.origin!==_e||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function De(e){}var Oe=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...Oe],[...new Set([...Oe])];function ke(e){return e.filter(e=>e!=null)}function k(e,t){return e+`/`+t}function Ae(e){return e instanceof c||e instanceof u?e.status:500}function je(e){return e instanceof u?e.text:`Internal Error`}var A,j,Me,Ne=o.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(o.toString()),Pe=`a:`;Ne?(A={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Pe)},j={current:null},Me={current:!1}):(A=new class{#e=i({});get data(){return e(this.#e)}set data(e){a(this.#e,e)}#t=i(null);get form(){return e(this.#t)}set form(e){a(this.#t,e)}#n=i(null);get error(){return e(this.#n)}set error(e){a(this.#n,e)}#r=i({});get params(){return e(this.#r)}set params(e){a(this.#r,e)}#i=i({id:null});get route(){return e(this.#i)}set route(e){a(this.#i,e)}#a=i({});get state(){return e(this.#a)}set state(e){a(this.#a,e)}#o=i(-1);get status(){return e(this.#o)}set status(e){a(this.#o,e)}#s=i(new URL(Pe));get url(){return e(this.#s)}set url(e){a(this.#s,e)}},j=new class{#e=i(null);get current(){return e(this.#e)}set current(e){a(this.#e,e)}},Me=new class{#e=i(!1);get current(){return e(this.#e)}set current(e){a(this.#e,e)}},Te.v=()=>Me.current=!0);function Fe(e){Object.assign(A,e)}var Ie={spanContext(){return Le},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},Le={traceId:``,spanId:``,traceFlags:0},{onMount:Re,tick:ze}=s,Be=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),M=null,N=ue(`sveltekit:scroll`)??{},P=ue(`sveltekit:snapshot`)??{},F={url:we({}),page:we({}),navigating:r(null),updated:Ee()};function Ve(e){N[e]=E()}function He(e,t){let n=e+1;for(;N[n];)delete N[n],n+=1;for(n=t+1;P[n];)delete P[n],n+=1}function I(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(g)}async function Ue(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(S||`/`);e&&await e.update()}}var We,Ge,Ke,L,qe,R,Je={},Ye={},Xe=[],z=[],B=null;function V(){B?.fork?.then(e=>e?.discard()),B=null,Q={element:void 0,href:void 0}}var Ze=new Map,Qe=new Set,$e=new Set,H=new Set,U={branch:[],error:null,url:null,nav:null},et=!1,tt=!1,nt=!0,W=!1,G=!1,rt=!1,K=!1,it,q,J,Y,at=new Set,ot,st=new Map,ct=new Map;async function lt(e,t,n){if(globalThis.__sveltekit_1uu3rg0.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_1uu3rg0.data;for(let t in e)Je[t]=e[t];for(let e in n)Je[e]=n[e];for(let e in r)Je[e]=r[e];for(let e in t)Ye[e]=t[e]}document.URL!==location.href&&(location.href=location.href),R=e,await e.hooks.init?.(),We=le(e),L=document.documentElement,qe=t,Ge=e.nodes[0],Ke=e.nodes[1],Ge(),Ke(),q=history.state?.[C],J=history.state?.[w],q||(q=J=Date.now(),history.replaceState({...history.state,[C]:q,[w]:J},``));let r=N[q];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await zt(qe,n)):(await Z({type:`enter`,url:ve(R.hash?Gt(new URL(location.href)):location.href),replace_state:!0}),i()),Rt()}async function ut(e=!0,t=!0){if(await(ot||=Promise.resolve()),!ot)return;ot=null;let n=Y={},r=await X(U.url,!0);V();let i=new Map;if(K){for(let e of st.values())for(let{resource:t}of e.values())t.refresh();for(let[e,t]of ct)for(let[n,{resource:r}]of t){let t=k(e,n),a=r.reconnect();a.catch(g),i.set(t,a)}}if(e){let e=A.state,i=r&&await Et(r);if(!i||n!==Y)return;if(i.type===`redirect`)return ht(new URL(i.location,U.url).href,{replaceState:!0},1,n);t||(i.props.page.state=e),Fe(i.props.page),U={...i.state,nav:U.nav},dt(),it.$set(i.props)}else dt();let a=[];for(let e of st.values())for(let{resource:t}of e.values())a.push(t);for(let[e,t]of ct)for(let n of t.keys()){let t=k(e,n),r=i.get(t);r&&a.push(r)}await Promise.all(a).catch(g)}function dt(){Xe.length=0,K=!1}function ft(e){z.some(e=>e?.snapshot)&&(P[e]=z.map(e=>e?.snapshot?.capture()))}function pt(e){P[e]?.forEach((e,t)=>{z[t]?.snapshot?.restore(e)})}function mt(){Ve(q),de(he,N),ft(J),de(me,P)}async function ht(e,n,r,i){let a,o;n.invalidateAll&&V(),await Z({type:`goto`,url:ve(e),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{if(n.invalidateAll){K=!0,a=new Set;for(let[e,t]of st)for(let[n,r]of t)r.resource?.reset(),a.add(k(e,n));o=new Set;for(let[e,t]of ct)for(let n of t.keys())o.add(k(e,n))}n.invalidate&&n.invalidate.forEach(It)}}),n.invalidateAll&&t().then(t).then(()=>{for(let[e,t]of st)for(let[n,{resource:r}]of t)a?.has(k(e,n))&&r.start();for(let[e,t]of ct)for(let[n,{resource:r}]of t)o?.has(k(e,n))&&r.reconnect()})}async function gt(e){if(e.id!==B?.id){V();let t={};at.add(t),B={id:e.id,token:t,promise:Et({...e,preload:t}).then(e=>(at.delete(t),e.type===`loaded`&&e.state.error&&V(),e)),fork:null}}return B.promise}async function _t(e){let t=(await X(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function vt(e,t,n){let r={params:U.params,route:{id:U.route?.id??null},url:new URL(location.href)};if(U={...e.state,nav:r},Fe(e.props.page),it=new R.root({target:t,props:{...e.props,stores:F,components:z},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:N[q]??E()},willUnload:!1,type:`enter`,complete:Promise.resolve()};H.forEach(t=>t(e))}pt(J),tt=!0}async function yt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(S&&(e.pathname===S||e.pathname===S+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=d(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:ke(n).map(e=>e.node.component),page:Wt(A)}};s!==void 0&&(l.props.form=s);let u={},f=!A,p=0;for(let e=0;e(s&&(c.route=!0),e[t])}),params:new Proxy(r,{get:(e,t)=>(s&&c.params.add(t),e[t])}),data:a?.data??null,url:h(n,()=>{s&&(c.url=!0)},e=>{s&&c.search_params.add(e)},R.hash),async fetch(t,r){t instanceof Request&&(r={body:t.method===`GET`||t.method===`HEAD`?void 0:await t.blob(),cache:t.cache,credentials:t.credentials,headers:[...t.headers].length>0?t?.headers:void 0,integrity:t.integrity,keepalive:t.keepalive,method:t.method,mode:t.mode,redirect:t.redirect,referrer:t.referrer,referrerPolicy:t.referrerPolicy,signal:t.signal,...r});let{resolved:i,promise:a}=xt(t,r,n);return s&&e(i.href),a},setHeaders:g,depends:e,parent(){return s&&(c.parent=!0),t()},untrack(e){s=!1;try{return e()}finally{s=!0}}};o=await l.universal.load.call(null,u)??null}return{node:l,loader:e,server:a,universal:l.universal?.load?{type:`data`,data:o,uses:c}:null,data:o??a?.data??null,slash:l.universal?.trailingSlash??a?.slash}}function xt(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:tt?te(r,i.href,t):b(r,t)}}function St(e,t,n,r,i,a){if(K)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==U.params[e])return!0;for(let e of i.dependencies)if(Xe.some(t=>t(new URL(e))))return!0;return!1}function Ct(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function wt(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function Tt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Wt(A),constructors:[]}}}async function Et({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(B?.id===e)return at.delete(B.token),B.promise;let{errors:o,layouts:s,leaf:u}=i,d=[...s,u];o.forEach(e=>e?.().catch(g)),d.forEach(e=>e?.[1]().catch(g));let f=U.url?e!==jt(U.url):!1,p=U.route?i.id!==U.route.id:!1,m=wt(U.url,n),h=!1,_=d.map(async(e,t)=>{if(!e)return;let a=U.branch[t];return e[1]===a?.loader&&!St(h,p,f,m,a.universal?.uses,r)?a:(h=!0,bt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;nPromise.resolve({}),server_data_node:Ct(null)}),{node:await Ke(),loader:Ke,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof l){await ht(new URL(t.location,location.href),{},0);return}let a=await R.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&`).replace(//g,`>`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function kt(e){let t=e.href;if(Ze.has(t))return Ze.get(t);let n;try{let r=(async()=>{let t=await R.hooks.reroute({url:new URL(e),fetch:async(t,n)=>xt(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);R.hash?n.hash=t:n.pathname=t,t=n}return t})();Ze.set(t,r),n=await r}catch{Ze.delete(t);return}return n}async function X(e,t){if(e&&!O(e,S,R.hash)){let n=await kt(e);if(!n)return;let r=At(n);for(let n of We){let i=n.exec(r);if(i)return{id:jt(e),invalidating:t,route:n,params:p(i),url:e}}}}function At(e){return f(R.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(S.length))||`/`}function jt(e){return(R.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Mt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=Ut(U,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return W||Qe.forEach(e=>e(c)),o?null:s}async function Z({type:e,url:r,popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:d={},accept:f=g,block:p=g,event:m}){let h=Y;Y=d;let _=await X(r,!1),v=e===`enter`?Ut(U,_,r,e):Mt({url:r,type:e,delta:i?.delta,intent:_,scroll:i?.scroll,event:m});if(!v){p(),Y===d&&(Y=h);return}let ee=q,y=J;f(),W=!0,tt&&v.navigation.type!==`enter`&&F.navigating.set(j.current=v.navigation);let b=_&&await Et(_);if(!b){if(O(r,S,R.hash))return await I(r,s);b=await Nt(r,{id:null},await $(new u(404,`Not Found`,`Not found: ${r.pathname}`),{url:r,params:{},route:{id:null}}),404,s)}if(r=_?.url||r,Y!==d){v.reject(Error(`navigation aborted`));return}if(!b)return;if(b.type===`redirect`){if(l<20){await Z({type:e,url:new URL(b.location,r),popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:d}),v.fulfil(void 0);return}if(b=await Ot({status:500,error:await $(Error(`Redirect loop`),{url:r,params:{},route:{id:null}}),url:r,route:{id:null}}),!b)return}else if(b.props.page.status>=400&&await F.updated.check())return await Ue(),await I(r,s);if(dt(),Ve(ee),ft(y),b.props.page.url.pathname!==r.pathname&&(r.pathname=b.props.page.url.pathname),c=i?i.state:c,!i){let e=+!s,t={[C]:q+=e,[w]:J+=e,[ge]:c};(s?history.replaceState:history.pushState).call(history,t,``,r),s||He(q,J)}let te=_&&B?.id===_.id?B.fork:null;B?.fork&&!te?V():(B=null,Q={element:void 0,href:void 0}),b.props.page.state=c;let x;if(tt){let e=(await Promise.all(Array.from($e,e=>e(v.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{H.delete(e)})}e.push(t),e.forEach(e=>{H.add(e)})}let t=v.navigation.to;U={...b.state,nav:{params:t.params,route:t.route,url:t.url}},b.props.page&&(b.props.page.url=r),!a&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let i=te&&await te;i?x=i.commit():(M=null,it.$set(b.props),M&&Object.assign(b.props.page,M),Fe(b.props.page),x=n?.()),rt=!0}else await vt(b,qe,!1);let{activeElement:ne}=document;if(await x,await t(),await t(),Y!==d){v.reject(Error(`navigation aborted`));return}b.props.page&&M&&Object.assign(b.props.page,M);let re=null;if(nt){let e=i?i.scroll:o?E():null;e?scrollTo(e.x,e.y):(re=r.hash&&document.getElementById(Kt(r)))?re.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==ne&&document.activeElement!==document.body;!a&&!ie&&Ht(r,!re),nt=!0,W=!1,v.fulfil(void 0),v.navigation.to&&(v.navigation.to.scroll=E()),H.forEach(e=>e(v.navigation)),e===`popstate`&&pt(J),F.navigating.set(j.current=null)}async function Nt(e,t,n,r,i){return e.origin===_e&&e.pathname===location.pathname&&!et?await Ot({status:r,error:n,url:e,route:t}):await I(e,i)}var Q={element:void 0,href:void 0};function Pt(){let e,t;L.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,T.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],T.tap)}L.addEventListener(`mousedown`,n),L.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(_t(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=xe(e,L),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=Se(r,S,R.hash);if(o||s)return;let c=Ce(r),l=a&&jt(U.url)===jt(a);if(!(c.reload||l))if(n<=c.preload_data){Q={element:r,href:r.href},t=T.tap;let e=await X(a,!1);if(!e)return;gt(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,_t(a))}function a(){r.disconnect();for(let e of L.querySelectorAll(`a`)){let{url:t,external:n,download:i}=Se(e,S,R.hash);if(n||i)continue;let a=Ce(e);a.reload||(a.preload_code===T.viewport&&r.observe(e),a.preload_code===T.eager&&_t(t))}}H.add(a),a()}function $(e,t){if(e instanceof c)return e.body;let n=Ae(e),r=je(e);return R.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Ft(e,t={}){return e=new URL(ve(e)),e.origin===_e?ht(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function It(e){if(typeof e==`function`)Xe.push(e);else{let{href:t}=new URL(e,location.href);Xe.push(e=>e.href===t)}}function Lt(){return K=!0,ut()}function Rt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(mt(),!W){let e=Ut(U,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};Qe.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&mt()}),navigator.connection?.saveData||Pt(),L.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=xe(t.composedPath()[0],L);if(!n)return;let{url:r,external:i,target:a,download:o}=Se(n,S,R.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=Ce(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&r.protocol!==`https:`&&r.protocol!==`http:`||o)return;let[c,l]=(R.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){Mt({url:r,type:`link`,event:t})?W=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=U.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(G=!0,Ve(q),e(r),!s.replace_state)return;G=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),L.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(O(r,S,!1))return;let i=e.target,a=Ce(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Vt)if(t.state?.[`sveltekit:history`]){let n=t.state[C];if(Y={},n===q)return;let r=N[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[w],s=U.url?m(location)===m(U.url):!1;if(o===J&&(rt||s)){i!==A.state&&(A.state=i),e(a),N[q]=E(),r&&scrollTo(r.x,r.y),q=n;return}let c=n-q;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{q=n,J=o},block:()=>{history.go(-c)},nav_token:Y,event:t})}else G||(e(new URL(location.href)),R.hash&&location.reload())}),addEventListener(`hashchange`,()=>{G&&(G=!1,history.replaceState({...history.state,[C]:++q,[w]:J},``,location.href))});for(let e of document.querySelectorAll(`link`))Be.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&F.navigating.set(j.current=null)});function e(e){U.url=A.url=e,F.page.set(Wt(A)),F.page.notify()}}async function zt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){et=!0;let u=new URL(location.href),d;({params:i={},route:a={id:null}}=await X(u,!1)||{}),d=We.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Bt(r.uses)),bt({loader:R.nodes[t],url:u,params:i,route:a,parent:async()=>{let t={};for(let r=0;r{let a=history.state;Vt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Vt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t{if(r.rangeCount===e.length){for(let t=0;t{a=e,o=t});return s.catch(g),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:E()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Wt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Gt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Kt(e){let t;if(R.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{j as a,De as c,F as i,Lt as n,A as o,lt as r,Me as s,Ft as t}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/chunks/BI_fD_HY.js b/backend/internal/http/web/_app/immutable/chunks/BeIYuf23.js similarity index 86% rename from backend/internal/http/web/_app/immutable/chunks/BI_fD_HY.js rename to backend/internal/http/web/_app/immutable/chunks/BeIYuf23.js index a38ebee..8f14783 100644 --- a/backend/internal/http/web/_app/immutable/chunks/BI_fD_HY.js +++ b/backend/internal/http/web/_app/immutable/chunks/BeIYuf23.js @@ -1 +1 @@ -import{t as e}from"./DqlBPR2w.js";var t={providerTypes:()=>e.get(`/provider/providerTypes`),getProviders:t=>e.get(`/provider/${t}`),getProvider:(t,n)=>e.get(`/provider/${t}/${n}`),createProvider:(t,n)=>e.post(`/provider/${t}`,n),updateProvider:(t,n)=>e.put(`/provider/${t}`,n),deleteProvider:(t,n)=>e.delete(`/provider/${t}/${n}`),getAvailableModels:(t,n)=>e.post(`/provider/${t}/avalable-models`,n),getProvidersModels:t=>e.get(`/provider/${t}/models`)};export{t}; \ No newline at end of file +import{t as e}from"./DtfiK5fE.js";var t={providerTypes:()=>e.get(`/provider/providerTypes`),getProviders:t=>e.get(`/provider/${t}`),getProvider:(t,n)=>e.get(`/provider/${t}/${n}`),createProvider:(t,n)=>e.post(`/provider/${t}`,n),updateProvider:(t,n)=>e.put(`/provider/${t}`,n),deleteProvider:(t,n)=>e.delete(`/provider/${t}/${n}`),getAvailableModels:(t,n)=>e.post(`/provider/${t}/avalable-models`,n),getProvidersModels:t=>e.get(`/provider/${t}/models`)};export{t}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/chunks/BedKI9iq.js b/backend/internal/http/web/_app/immutable/chunks/BedKI9iq.js new file mode 100644 index 0000000..49963a2 --- /dev/null +++ b/backend/internal/http/web/_app/immutable/chunks/BedKI9iq.js @@ -0,0 +1 @@ +import{t as e}from"./DtfiK5fE.js";var t={register:t=>e.post(`/auth/register`,t),status:()=>e.get(`/auth/status`),login:t=>e.post(`/auth/login`,t),oidcProviders:()=>e.get(`/auth/oidc/providers`,{auth:!1}),oidcLoginUrl:e=>`/api/auth/oidc/login?provider=${encodeURIComponent(e)}`};export{t}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/chunks/Bht2nTIZ.js b/backend/internal/http/web/_app/immutable/chunks/Bht2nTIZ.js new file mode 100644 index 0000000..435c0ed --- /dev/null +++ b/backend/internal/http/web/_app/immutable/chunks/Bht2nTIZ.js @@ -0,0 +1,4 @@ +import{$ as e,A as t,C as n,I as r,K as i,L as a,M as o,N as s,Q as c,R as l,X as u,Z as d,a as f,dt as p,et as m,ft as h,j as g,k as _,vt as v}from"./DGrvnoUE.js";import"./xihTtKlq.js";import{t as y}from"./DtfiK5fE.js";var b={listTasks:e=>y.get(`/task/${e}`),updateTask:(e,t,n)=>y.put(`/task/${e}/${t}`,n),deleteTask:(e,t)=>y.delete(`/task/${e}/${t}`)},x=0,S=m([]),C=(e,t)=>{S.push({id:x++,type:e,text:t,status:`appearing`})},w=e=>e;function T(e){let t=e-1;return t*t*t+1}function E(e,{delay:t=0,duration:n=400,easing:r=w}={}){let i=+getComputedStyle(e).opacity;return{delay:t,duration:n,easing:r,css:e=>`opacity: ${e*i}`}}function D(e,{delay:t=0,duration:n=400,easing:r=T,start:i=0,opacity:a=0}={}){let o=getComputedStyle(e),s=+o.opacity,c=o.transform===`none`?``:o.transform,l=1-i,u=s*(1-a);return{delay:t,duration:n,easing:r,css:(e,t)=>` + transform: ${c} scale(${1-l*t}); + opacity: ${s-u*t} + `}}var O=s(`
`);function k(r,s){h(s,!0);let m=f(s,`open`,3,!1),y=f(s,`title`,3,``),b=f(s,`message`,3,``),x=f(s,`confirmLabel`,3,`Confirmer`),S=f(s,`cancelLabel`,3,`Annuler`),C=()=>s.onCancel?.(),w=e=>{m()&&e.key===`Escape`&&C()};var T=o();l(`keydown`,u,w);var k=c(T),A=r=>{var o=O(),c=d(o),l=e(c,2),u=d(l),f=e(d(u),2),p=d(f,!0);v(f),v(u);var m=e(u,2),h=d(m,!0);v(m);var _=e(m,2),w=d(_),T=d(w,!0);v(w);var k=e(w,2),A=d(k,!0);v(k),v(_),v(l),v(o),i(()=>{t(p,y()),t(h,b()),t(T,S()),t(A,x())}),a(`click`,c,C),n(3,c,()=>E,()=>({duration:150})),a(`click`,w,C),a(`click`,k,function(...e){s.onConfirm?.apply(this,e)}),n(3,l,()=>D,()=>({duration:150,start:.95})),g(r,o)};_(k,e=>{m()&&e(A)}),g(r,T),p()}r([`click`]);export{C as n,b as r,k as t}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/chunks/CY9OlB4q.js b/backend/internal/http/web/_app/immutable/chunks/CY9OlB4q.js new file mode 100644 index 0000000..6924f15 --- /dev/null +++ b/backend/internal/http/web/_app/immutable/chunks/CY9OlB4q.js @@ -0,0 +1 @@ +import"./BZuNOv8h.js"; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/chunks/CvbyM2Rc.js b/backend/internal/http/web/_app/immutable/chunks/CvbyM2Rc.js deleted file mode 100644 index c788c53..0000000 --- a/backend/internal/http/web/_app/immutable/chunks/CvbyM2Rc.js +++ /dev/null @@ -1 +0,0 @@ -import{t as e}from"./DqlBPR2w.js";var t={register:t=>e.post(`/auth/register`,t),status:()=>e.get(`/auth/status`),login:t=>e.post(`/auth/login`,t)};export{t}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/chunks/CUminYLk.js b/backend/internal/http/web/_app/immutable/chunks/DdGy_ePN.js similarity index 99% rename from backend/internal/http/web/_app/immutable/chunks/CUminYLk.js rename to backend/internal/http/web/_app/immutable/chunks/DdGy_ePN.js index 5cb5915..926bf5c 100644 --- a/backend/internal/http/web/_app/immutable/chunks/CUminYLk.js +++ b/backend/internal/http/web/_app/immutable/chunks/DdGy_ePN.js @@ -1,4 +1,4 @@ -import{$ as e,A as t,B as n,D as r,E as i,F as a,H as o,I as s,K as c,L as l,M as u,N as d,P as f,Q as p,R as m,T as h,U as g,X as _,Z as v,_ as y,a as b,at as x,b as ee,c as te,dt as ne,et as S,f as re,ft as ie,h as ae,it as oe,j as C,k as w,m as se,n as ce,nt as T,p as le,q as E,r as ue,u as de,v as fe,vt as D}from"./DGrvnoUE.js";import"./Soo4K-rz.js";import"./xihTtKlq.js";import"./B6JECYQD.js";var pe=Math.min,O=Math.max,me=Math.round,he=Math.floor,k=e=>({x:e,y:e}),A={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function j(e,t,n){return O(e,pe(t,n))}function ge(e,t){return typeof e==`function`?e(t):e}function M(e){return e.split(`-`)[0]}function N(e){return e.split(`-`)[1]}function P(e){return e===`x`?`y`:`x`}function F(e){return e===`y`?`height`:`width`}function I(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function _e(e){return P(I(e))}function ve(e,t,n){n===void 0&&(n=!1);let r=N(e),i=_e(e),a=F(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Ee(o)),[o,Ee(o)]}function ye(e){let t=Ee(e);return[be(e),t,be(t)]}function be(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var xe=[`left`,`right`],Se=[`right`,`left`],Ce=[`top`,`bottom`],L=[`bottom`,`top`];function we(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Se:xe:t?xe:Se;case`left`:case`right`:return t?Ce:L;default:return[]}}function Te(e,t,n,r){let i=N(e),a=we(M(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(be)))),a}function Ee(e){let t=M(e);return A[t]+e.slice(t.length)}function De(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function Oe(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:De(e)}function ke(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Ae(e,t,n){let{reference:r,floating:i}=e,a=I(t),o=_e(t),s=F(o),c=M(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=N(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function je(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=ge(t,e),p=Oe(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=ke(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=ke(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Me=50,Ne=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:je},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Ae(l,r,c),f=r,p=0,m={};for(let n=0;ne<=0)){let e=(i.flip?.index||0)+1,t=ee[e];if(t&&(u!==`alignment`||_===I(t)||S.every(e=>I(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:S},reset:{placement:t}};let n=S.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=S.filter(e=>{if(x){let t=I(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}},Fe=new Set([`left`,`top`]);async function R(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=M(n),s=N(n),c=I(n)===`y`,l=Fe.has(o)?-1:1,u=a&&c?-1:1,d=ge(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Ie=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await R(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Le=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=ge(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=I(i),p=P(f),m=u[p],h=u[f],g=(e,t)=>j(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}};function Re(){return typeof window<`u`}function z(e){return ze(e)?(e.nodeName||``).toLowerCase():`#document`}function B(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function V(e){return((ze(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function ze(e){return Re()?e instanceof Node||e instanceof B(e).Node:!1}function H(e){return Re()?e instanceof Element||e instanceof B(e).Element:!1}function U(e){return Re()?e instanceof HTMLElement||e instanceof B(e).HTMLElement:!1}function Be(e){return!Re()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof B(e).ShadowRoot}function Ve(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=J(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function He(e){return/^(table|td|th)$/.test(z(e))}function Ue(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var We=/transform|translate|scale|rotate|perspective|filter/,W=/paint|layout|strict|content/,G=e=>!!e&&e!==`none`,Ge;function Ke(e){let t=H(e)?J(e):e;return G(t.transform)||G(t.translate)||G(t.scale)||G(t.rotate)||G(t.perspective)||!K()&&(G(t.backdropFilter)||G(t.filter))||We.test(t.willChange||``)||W.test(t.contain||``)}function qe(e){let t=Je(e);for(;U(t)&&!q(t);){if(Ke(t))return t;if(Ue(t))return null;t=Je(t)}return null}function K(){return Ge??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Ge}function q(e){return/^(html|body|#document)$/.test(z(e))}function J(e){return B(e).getComputedStyle(e)}function Y(e){return H(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Je(e){if(z(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Be(e)&&e.host||V(e);return Be(t)?t.host:t}function Ye(e){let t=Je(e);return q(t)?(e.ownerDocument||e).body:U(t)&&Ve(t)?t:Ye(t)}function Xe(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Ye(e),i=r===e.ownerDocument?.body,a=B(r);if(i){let e=Ze(a);return t.concat(a,a.visualViewport||[],Ve(r)?r:[],e&&n?Xe(e):[])}return t.concat(r,Xe(r,[],n))}function Ze(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Qe(e){let t=J(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=U(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=me(n)!==a||me(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function $e(e){return H(e)?e:e.contextElement}function et(e){let t=$e(e);if(!U(t))return k(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Qe(t),o=(a?me(n.width):n.width)/r,s=(a?me(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var tt=k(0);function nt(e){let t=B(e);return!K()||!t.visualViewport?tt:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function rt(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===B(e)}function X(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=$e(e),o=k(1);t&&(r?H(r)&&(o=et(r)):o=et(e));let s=rt(a,n,r)?nt(a):k(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a&&r){let e=B(a),t=H(r)?B(r):r,n=e,i=Ze(n);for(;i&&t!==n;){let e=et(i),t=i.getBoundingClientRect(),r=J(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=B(i),i=Ze(n)}}return ke({width:u,height:d,x:c,y:l})}function it(e,t){let n=Y(e).scrollLeft;return t?t.left+n:X(V(e)).left+n}function at(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-it(e,n),y:n.top+t.scrollTop}}function ot(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=V(r),s=t?Ue(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=k(1),u=k(0),d=U(r);if((d||!a)&&((z(r)!==`body`||Ve(o))&&(c=Y(r)),d)){let e=X(r);l=et(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?at(o,c):k(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function st(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function ct(e){let t=Y(e),n=e.ownerDocument.body,r=O(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=O(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+it(e),o=-t.scrollTop;return J(n).direction===`rtl`&&(a+=O(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}var lt=25;function Z(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=B(e),a=V(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!K()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(it(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=lt&&(s-=o)}return{width:s,height:c,x:l,y:u}}function ut(e,t){let n=X(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=et(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function dt(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=Z(e,n,t);else if(t===`document`)r=ct(V(e));else if(H(t))r=ut(t,n);else{let n=nt(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return ke(r)}function ft(e,t){let n=t.get(e);if(n)return n;let r=Xe(e,[],!1).filter(e=>H(e)&&z(e)!==`body`),i=null,a=J(e).position===`fixed`,o=a?Je(e):e;for(;H(o)&&!q(o);){let e=J(o),t=Ke(o),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==o):i=e,o=Je(o)}return t.set(e,r),r}function pt(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Ue(t)?[]:ft(t,this._c):[].concat(n),r],o=dt(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e{s(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let c=B(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}function wt(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=$e(e),u=i||a?[...l?Xe(l):[],...t?Xe(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?Ct(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?X(e):null;c&&g();function g(){let t=X(e);h&&!St(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Tt=Ie,Et=Le,Dt=Pe,Ot=(e,t,n)=>{let r=new Map,i=n??{},a={...xt,...i.platform,_c:r};return Ne(e,t,{...i,platform:a})};function kt(e){let t,n,r={autoUpdate:!0},i=e,a=t=>({...r,...e||{},...t||{}}),s=e=>{t&&n&&(i=a(e),Ot(t,n,i).then(e=>{Object.assign(n.style,{position:e.strategy,left:`${e.x}px`,top:`${e.y}px`}),i?.onComputed&&i.onComputed(e)}))},c=e=>{if(`subscribe`in e)return u(e),{};t=e,s()},l=(e,r)=>{let c;n=e,i=a(r),setTimeout(()=>s(r),0),s(r);let l=()=>{c&&=(c(),void 0)},u=({autoUpdate:e}=i||{})=>{l(),e!==!1&&o().then(()=>wt(t,n,()=>s(i),e===!0?{}:e))};return c=u(),{update(e){s(e),c=u(e)},destroy(){l()}}},u=e=>{let n=e.subscribe(e=>{t===void 0?(t=e,s()):(Object.assign(t,e),s())});ce(n)};return[c,l,s]}function At({loadOptions:e,filterText:t,items:n,multiple:r,value:i,itemId:a,groupBy:o,filterSelectedItems:s,itemFilter:c,convertStringItemsToObjects:l,filterGroupedItems:u,label:d}){if(n&&e)return n;if(!n)return[];n&&n.length>0&&typeof n[0]!=`object`&&(n=l(n));let f=n.filter(e=>{let n=c(e[d],t,e);return n&&r&&Array.isArray(i)&&i.length&&(n=!i.some(t=>{let n=typeof t==`object`&&t?t[a]:t;return s?n===e[a]:!1})),n});return o&&(f=u(f)),f}async function jt({onerror:e,onloaded:t,loadOptions:n,convertStringItemsToObjects:r,filterText:i}){let a=await n(i).catch(t=>{console.warn(`svelte-select loadOptions error :>> `,t),e?.({type:`loadOptions`,details:t})});if(a&&!a.cancelled)return a?(a&&a.length>0&&typeof a[0]!=`object`&&(a=r(a)),t?.({items:a})):a=[],{filteredItems:a,loading:!1,focused:!0,listOpen:!0}}var Mt=f(`
`),j=c(` `,1);function M(c,g){h(g,!0);let T=d(g,`components`,23,()=>[]),E=d(g,`data_0`,3,null),D=d(g,`data_1`,3,null),O=d(g,`data_2`,3,null);a(()=>g.stores.page.set(g.page)),x(()=>{g.stores,g.page,g.constructors,T(),g.form,E(),D(),O(),g.stores.page.notify()});let k=_(!1),M=_(!1),N=_(null);S(()=>{let e=g.stores.page.subscribe(()=>{n(k)&&(b(M,!0),i().then(()=>{b(N,document.title||`untitled page`,!0)}))});return b(k,!0),e});let P=f(()=>g.constructors[2]);var F=j(),I=l(F),L=e=>{let t=f(()=>g.constructors[0]);var r=s(),i=l(r);w(i,()=>n(t),(e,t)=>{p(t(e,{get data(){return E()},get form(){return g.form},get params(){return g.page.params},children:(e,t)=>{var r=s(),i=l(r),a=e=>{let t=f(()=>g.constructors[1]);var r=s(),i=l(r);w(i,()=>n(t),(e,t)=>{p(t(e,{get data(){return D()},get form(){return g.form},get params(){return g.page.params},children:(e,t)=>{var r=s(),i=l(r);w(i,()=>n(P),(e,t)=>{p(t(e,{get data(){return O()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),v(e,r)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),v(e,r)},o=e=>{let t=f(()=>g.constructors[1]);var r=s(),i=l(r);w(i,()=>n(t),(e,t)=>{p(t(e,{get data(){return D()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),v(e,r)};y(i,e=>{g.constructors[2]?e(a):e(o,-1)}),v(e,r)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),v(e,r)},R=e=>{let t=f(()=>g.constructors[0]);var r=s(),i=l(r);w(i,()=>n(t),(e,t)=>{p(t(e,{get data(){return E()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),v(e,r)};y(I,e=>{g.constructors[1]?e(L):e(R,-1)});var z=e(I,2),B=e=>{var i=A(),a=u(i),s=e=>{var i=r();o(()=>t(i,n(N))),v(e,i)};y(a,e=>{n(M)&&e(s)}),C(i),v(e,i)};y(z,e=>{n(k)&&e(B)}),v(c,F),m()}var N=g(M),P=[()=>O(()=>import(`../nodes/0.BLV5Ey1y.js`),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>O(()=>import(`../nodes/1.COgG0Fy8.js`),__vite__mapDeps([5,1,2,6,7]),import.meta.url),()=>O(()=>import(`../nodes/2.wASuVt48.js`),__vite__mapDeps([8,1,7,2,3,6,9,10,11,12,13]),import.meta.url),()=>O(()=>import(`../nodes/3.CHETzYMH.js`),__vite__mapDeps([14,1,7,2,9,12]),import.meta.url),()=>O(()=>import(`../nodes/4.DkQEi_Qd.js`),__vite__mapDeps([15,1,7,2,9,16,17,10]),import.meta.url),()=>O(()=>import(`../nodes/5.BgmoPtaF.js`),__vite__mapDeps([18,1,2,6,7,16,17,10,9,19,20]),import.meta.url),()=>O(()=>import(`../nodes/6.B8E4TBNF.js`),__vite__mapDeps([21,1,7,2,9,17,10,22]),import.meta.url),()=>O(()=>import(`../nodes/7.CJI6is1J.js`),__vite__mapDeps([23,1,2]),import.meta.url),()=>O(()=>import(`../nodes/8.Ds1ONmZq.js`),__vite__mapDeps([24,1,2]),import.meta.url),()=>O(()=>import(`../nodes/9.CYl-UmMc.js`),__vite__mapDeps([25,1,2,10,7,9,12,26,27,28,19]),import.meta.url),()=>O(()=>import(`../nodes/10.D6tOeXzG.js`),__vite__mapDeps([29,1,2]),import.meta.url),()=>O(()=>import(`../nodes/11.DtFjRc5K.js`),__vite__mapDeps([30,1,2]),import.meta.url),()=>O(()=>import(`../nodes/12.D1XIMXHX.js`),__vite__mapDeps([31,1,2]),import.meta.url),()=>O(()=>import(`../nodes/13.C-WGkE4P.js`),__vite__mapDeps([32,1,2,26,10,7,9,27,28,19,33]),import.meta.url),()=>O(()=>import(`../nodes/14.Zp7NcB4T.js`),__vite__mapDeps([34,1,2]),import.meta.url),()=>O(()=>import(`../nodes/15.DBuFCR43.js`),__vite__mapDeps([35,1,2,10,7,9,27]),import.meta.url),()=>O(()=>import(`../nodes/16.Bwbj6qfw.js`),__vite__mapDeps([36,1,2]),import.meta.url),()=>O(()=>import(`../nodes/17.BV0v_EXc.js`),__vite__mapDeps([37,1,7,2,6,9,17,10,22]),import.meta.url),()=>O(()=>import(`../nodes/18.e37B7XcZ.js`),__vite__mapDeps([38,1,2,3,10,7,9,11,27,28,19,33]),import.meta.url),()=>O(()=>import(`../nodes/19.CdvrW-UN.js`),__vite__mapDeps([39,1,7,2,9,10,13,33,40]),import.meta.url),()=>O(()=>import(`../nodes/20.CPbrVrB7.js`),__vite__mapDeps([41,1,7,2,9,13,27,33,40,10]),import.meta.url)],F=[],I={"/(authenticated)":[3,[2]],"/(public)/login":[19],"/(authenticated)/profile":[18,[2]],"/(public)/register":[20],"/(authenticated)/[space]/(chat)":[4,[2]],"/(authenticated)/[space]/history":[6,[2]],"/(authenticated)/[space]/kb":[7,[2]],"/(authenticated)/[space]/settings":[8,[2]],"/(authenticated)/[space]/settings/agents":[9,[2]],"/(authenticated)/[space]/settings/channels":[10,[2]],"/(authenticated)/[space]/settings/kb":[11,[2]],"/(authenticated)/[space]/settings/memory":[12,[2]],"/(authenticated)/[space]/settings/models":[13,[2]],"/(authenticated)/[space]/settings/skills":[14,[2]],"/(authenticated)/[space]/settings/tools":[15,[2]],"/(authenticated)/[space]/settings/users":[16,[2]],"/(authenticated)/[space]/tasks":[17,[2]],"/(authenticated)/[space]/(chat)/[conversation]":[5,[2]]},L={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},R=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.decode])),z=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.encode])),B=!1,V=(e,t)=>R[e](t),H=()=>O(()=>import(`../chunks/Bjy-W4x2.js`).then(e=>e.default),[],import.meta.url);export{V as decode,R as decoders,I as dictionary,z as encoders,H as get_error_template,B as hash,L as hooks,k as matchers,P as nodes,N as root,F as server_loads}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/entry/app.Iv4UP3yJ.js b/backend/internal/http/web/_app/immutable/entry/app.Iv4UP3yJ.js deleted file mode 100644 index 0eecf84..0000000 --- a/backend/internal/http/web/_app/immutable/entry/app.Iv4UP3yJ.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.C86e0tcA.js","../chunks/DGrvnoUE.js","../chunks/xihTtKlq.js","../chunks/DTCALkcP.js","../assets/0.BKrS386W.css","../nodes/1.B34i4hHQ.js","../chunks/5WAfNqs_.js","../chunks/Soo4K-rz.js","../nodes/2.BGKAfrIz.js","../chunks/QHwlfjO8.js","../chunks/DqlBPR2w.js","../chunks/DyF3myvh.js","../chunks/Cyrg28w2.js","../chunks/BRXBpvt8.js","../nodes/3.7A57L7YY.js","../nodes/4.Dd2s_2MN.js","../chunks/BYWIgY43.js","../chunks/guSkOB4x.js","../nodes/5.At5j5jjs.js","../chunks/B6JECYQD.js","../assets/5.nNRn7XR0.css","../nodes/6.BBY8N1lq.js","../nodes/7.CJI6is1J.js","../nodes/8.Ds1ONmZq.js","../nodes/9.Bt_qXBPf.js","../chunks/BI_fD_HY.js","../chunks/6mSXxE57.js","../chunks/CUminYLk.js","../nodes/10.D6tOeXzG.js","../nodes/11.DtFjRc5K.js","../nodes/12.D1XIMXHX.js","../nodes/13.Dxxi1Ijq.js","../chunks/D3MDK1zR.js","../nodes/14.Zp7NcB4T.js","../nodes/15.CqwsYGvL.js","../nodes/16.Bwbj6qfw.js","../nodes/17.CRbsg29O.js","../nodes/18.DRjMAC4S.js","../nodes/19.Bxx8Nj5U.js","../chunks/CvbyM2Rc.js","../nodes/20.BwhsqgTX.js"])))=>i.map(i=>d[i]); -import{$ as e,A as t,B as n,F as r,H as i,J as a,K as o,M as s,N as c,Q as l,Z as u,a as d,at as f,c as p,dt as m,ft as h,i as g,it as _,j as v,k as y,nt as b,q as x,r as S,vt as C,w}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";var T=`modulepreload`,E=function(e,t){return new URL(e,t).href},D={},O=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=E(t,n),t=s(t),t in D)return;D[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:T,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},k={},A=c(`
`),j=c(` `,1);function M(c,g){h(g,!0);let T=d(g,`components`,23,()=>[]),E=d(g,`data_0`,3,null),D=d(g,`data_1`,3,null),O=d(g,`data_2`,3,null);a(()=>g.stores.page.set(g.page)),x(()=>{g.stores,g.page,g.constructors,T(),g.form,E(),D(),O(),g.stores.page.notify()});let k=_(!1),M=_(!1),N=_(null);S(()=>{let e=g.stores.page.subscribe(()=>{n(k)&&(b(M,!0),i().then(()=>{b(N,document.title||`untitled page`,!0)}))});return b(k,!0),e});let P=f(()=>g.constructors[2]);var F=j(),I=l(F),L=e=>{let t=f(()=>g.constructors[0]);var r=s(),i=l(r);w(i,()=>n(t),(e,t)=>{p(t(e,{get data(){return E()},get form(){return g.form},get params(){return g.page.params},children:(e,t)=>{var r=s(),i=l(r),a=e=>{let t=f(()=>g.constructors[1]);var r=s(),i=l(r);w(i,()=>n(t),(e,t)=>{p(t(e,{get data(){return D()},get form(){return g.form},get params(){return g.page.params},children:(e,t)=>{var r=s(),i=l(r);w(i,()=>n(P),(e,t)=>{p(t(e,{get data(){return O()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),v(e,r)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),v(e,r)},o=e=>{let t=f(()=>g.constructors[1]);var r=s(),i=l(r);w(i,()=>n(t),(e,t)=>{p(t(e,{get data(){return D()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),v(e,r)};y(i,e=>{g.constructors[2]?e(a):e(o,-1)}),v(e,r)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),v(e,r)},R=e=>{let t=f(()=>g.constructors[0]);var r=s(),i=l(r);w(i,()=>n(t),(e,t)=>{p(t(e,{get data(){return E()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),v(e,r)};y(I,e=>{g.constructors[1]?e(L):e(R,-1)});var z=e(I,2),B=e=>{var i=A(),a=u(i),s=e=>{var i=r();o(()=>t(i,n(N))),v(e,i)};y(a,e=>{n(M)&&e(s)}),C(i),v(e,i)};y(z,e=>{n(k)&&e(B)}),v(c,F),m()}var N=g(M),P=[()=>O(()=>import(`../nodes/0.C86e0tcA.js`),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>O(()=>import(`../nodes/1.B34i4hHQ.js`),__vite__mapDeps([5,1,2,6,7]),import.meta.url),()=>O(()=>import(`../nodes/2.BGKAfrIz.js`),__vite__mapDeps([8,1,7,2,3,6,9,10,11,12,13]),import.meta.url),()=>O(()=>import(`../nodes/3.7A57L7YY.js`),__vite__mapDeps([14,1,7,2,9,12]),import.meta.url),()=>O(()=>import(`../nodes/4.Dd2s_2MN.js`),__vite__mapDeps([15,1,7,2,9,16,17,10]),import.meta.url),()=>O(()=>import(`../nodes/5.At5j5jjs.js`),__vite__mapDeps([18,1,2,6,7,16,17,10,9,19,20]),import.meta.url),()=>O(()=>import(`../nodes/6.BBY8N1lq.js`),__vite__mapDeps([21,1,7,2,9,17,10]),import.meta.url),()=>O(()=>import(`../nodes/7.CJI6is1J.js`),__vite__mapDeps([22,1,2]),import.meta.url),()=>O(()=>import(`../nodes/8.Ds1ONmZq.js`),__vite__mapDeps([23,1,2]),import.meta.url),()=>O(()=>import(`../nodes/9.Bt_qXBPf.js`),__vite__mapDeps([24,1,2,10,7,9,12,25,26,27,19]),import.meta.url),()=>O(()=>import(`../nodes/10.D6tOeXzG.js`),__vite__mapDeps([28,1,2]),import.meta.url),()=>O(()=>import(`../nodes/11.DtFjRc5K.js`),__vite__mapDeps([29,1,2]),import.meta.url),()=>O(()=>import(`../nodes/12.D1XIMXHX.js`),__vite__mapDeps([30,1,2]),import.meta.url),()=>O(()=>import(`../nodes/13.Dxxi1Ijq.js`),__vite__mapDeps([31,1,2,25,10,7,9,26,27,19,32]),import.meta.url),()=>O(()=>import(`../nodes/14.Zp7NcB4T.js`),__vite__mapDeps([33,1,2]),import.meta.url),()=>O(()=>import(`../nodes/15.CqwsYGvL.js`),__vite__mapDeps([34,1,2,10,7,9,26]),import.meta.url),()=>O(()=>import(`../nodes/16.Bwbj6qfw.js`),__vite__mapDeps([35,1,2]),import.meta.url),()=>O(()=>import(`../nodes/17.CRbsg29O.js`),__vite__mapDeps([36,1,2]),import.meta.url),()=>O(()=>import(`../nodes/18.DRjMAC4S.js`),__vite__mapDeps([37,1,2,3,10,7,9,11,26,27,19,32]),import.meta.url),()=>O(()=>import(`../nodes/19.Bxx8Nj5U.js`),__vite__mapDeps([38,1,7,2,9,10,13,32,39]),import.meta.url),()=>O(()=>import(`../nodes/20.BwhsqgTX.js`),__vite__mapDeps([40,1,7,2,9,13,26,32,39,10]),import.meta.url)],F=[],I={"/(authenticated)":[3,[2]],"/(public)/login":[19],"/(authenticated)/profile":[18,[2]],"/(public)/register":[20],"/(authenticated)/[space]/(chat)":[4,[2]],"/(authenticated)/[space]/history":[6,[2]],"/(authenticated)/[space]/kb":[7,[2]],"/(authenticated)/[space]/settings":[8,[2]],"/(authenticated)/[space]/settings/agents":[9,[2]],"/(authenticated)/[space]/settings/channels":[10,[2]],"/(authenticated)/[space]/settings/kb":[11,[2]],"/(authenticated)/[space]/settings/memory":[12,[2]],"/(authenticated)/[space]/settings/models":[13,[2]],"/(authenticated)/[space]/settings/skills":[14,[2]],"/(authenticated)/[space]/settings/tools":[15,[2]],"/(authenticated)/[space]/settings/users":[16,[2]],"/(authenticated)/[space]/tasks":[17,[2]],"/(authenticated)/[space]/(chat)/[conversation]":[5,[2]]},L={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},R=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.decode])),z=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.encode])),B=!1,V=(e,t)=>R[e](t),H=()=>O(()=>import(`../chunks/Bjy-W4x2.js`).then(e=>e.default),[],import.meta.url);export{V as decode,R as decoders,I as dictionary,z as encoders,H as get_error_template,B as hash,L as hooks,k as matchers,P as nodes,N as root,F as server_loads}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/entry/start.CVUmNBgW.js b/backend/internal/http/web/_app/immutable/entry/start.CVUmNBgW.js new file mode 100644 index 0000000..208aad1 --- /dev/null +++ b/backend/internal/http/web/_app/immutable/entry/start.CVUmNBgW.js @@ -0,0 +1 @@ +import{c as e,r as t}from"../chunks/BZuNOv8h.js";export{e as load_css,t as start}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/entry/start.CuX9LF19.js b/backend/internal/http/web/_app/immutable/entry/start.CuX9LF19.js deleted file mode 100644 index 8cfa142..0000000 --- a/backend/internal/http/web/_app/immutable/entry/start.CuX9LF19.js +++ /dev/null @@ -1 +0,0 @@ -import{c as e,r as t}from"../chunks/Soo4K-rz.js";export{e as load_css,t as start}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/0.C86e0tcA.js b/backend/internal/http/web/_app/immutable/nodes/0.BLV5Ey1y.js similarity index 100% rename from backend/internal/http/web/_app/immutable/nodes/0.C86e0tcA.js rename to backend/internal/http/web/_app/immutable/nodes/0.BLV5Ey1y.js diff --git a/backend/internal/http/web/_app/immutable/nodes/1.B34i4hHQ.js b/backend/internal/http/web/_app/immutable/nodes/1.COgG0Fy8.js similarity index 82% rename from backend/internal/http/web/_app/immutable/nodes/1.B34i4hHQ.js rename to backend/internal/http/web/_app/immutable/nodes/1.COgG0Fy8.js index d70714f..595d969 100644 --- a/backend/internal/http/web/_app/immutable/nodes/1.B34i4hHQ.js +++ b/backend/internal/http/web/_app/immutable/nodes/1.COgG0Fy8.js @@ -1 +1 @@ -import{$ as e,A as t,K as n,N as r,Q as i,Z as a,dt as o,ft as s,j as c,vt as l}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";import{t as u}from"../chunks/5WAfNqs_.js";var d=r(`

`,1);function f(r,f){s(f,!0);var p=d(),m=i(p),h=a(m,!0);l(m);var g=e(m,2),_=a(g,!0);l(g),n(()=>{t(h,u.status),t(_,u.error?.message)}),c(r,p),o()}export{f as component}; \ No newline at end of file +import{$ as e,A as t,K as n,N as r,Q as i,Z as a,dt as o,ft as s,j as c,vt as l}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";import{t as u}from"../chunks/ffLBjIeN.js";var d=r(`

`,1);function f(r,f){s(f,!0);var p=d(),m=i(p),h=a(m,!0);l(m);var g=e(m,2),_=a(g,!0);l(g),n(()=>{t(h,u.status),t(_,u.error?.message)}),c(r,p),o()}export{f as component}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/13.Dxxi1Ijq.js b/backend/internal/http/web/_app/immutable/nodes/13.C-WGkE4P.js similarity index 97% rename from backend/internal/http/web/_app/immutable/nodes/13.Dxxi1Ijq.js rename to backend/internal/http/web/_app/immutable/nodes/13.C-WGkE4P.js index cd61a74..cc46491 100644 --- a/backend/internal/http/web/_app/immutable/nodes/13.Dxxi1Ijq.js +++ b/backend/internal/http/web/_app/immutable/nodes/13.C-WGkE4P.js @@ -1 +1 @@ -import{$ as e,A as t,B as n,E as r,G as i,I as a,K as o,L as s,M as c,N as l,O as u,Q as d,R as f,U as p,X as m,Z as h,_t as g,a as _,b as v,bt as y,dt as b,et as x,ft as S,it as C,j as w,k as T,l as E,nt as D,p as O,u as k,vt as A}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";import{t as j}from"../chunks/BI_fD_HY.js";import{n as M,t as N}from"../chunks/6mSXxE57.js";import{t as P}from"../chunks/CUminYLk.js";import{n as F}from"../chunks/D3MDK1zR.js";var I=y({load:()=>L}),L=async({params:e})=>({title:`Paramétrage : Modèles`,back:`../settings`,space:e.space,providerTypes:await j.providerTypes(),providers:await j.getProviders(e.space)}),R=l(`
  • `),z=l(`
      `);function B(a,l){S(l,!0);let u=_(l,`item`,7),p=C(x(u().models.split(`|`))),m=C(x(u().models.split(`|`).map(e=>({value:e,selected:!0})))),y=new M,F=e=>{e.focus()},I=e=>{e.preventDefault(),u().models=n(p).join(`|`),l.onSave(u())},L=e=>{e.preventDefault(),l.onCancel()},B=e=>{e.preventDefault(),y.clear(),j.getAvailableModels(u().teamId,u()).then(e=>{D(m,e.map(e=>({value:e,selected:n(p).includes(e)})),!0)}).catch(e=>{y.set(`models`,e)})},V=()=>{D(p,n(m).filter(e=>e.selected).map(e=>e.value),!0)};var H=z(),U=h(H),W=h(U),G=h(W),K=e(h(G),2);O(K),i(()=>k(K,()=>u().name,e=>u().name=e)),v(K,e=>F?.(e));var ee=e(K,2);N(ee,{key:`name`,get errors(){return l.errors}}),A(G);var q=e(G,2),te=e(h(q),2);P(te,{get items(){return l.providerTypes},valueMode:`id`,get value(){return u().type},set value(e){u().type=e}});var ne=e(te,2);N(ne,{key:`type`,get errors(){return l.errors}}),A(q);var J=e(q,2),Y=e(h(J),2);O(Y);var re=e(Y,2);N(re,{key:`baseUrl`,get errors(){return l.errors}}),A(J);var X=e(J,2),Z=e(h(X),2);O(Z);var ie=e(Z,2);N(ie,{key:`apiKey`,get errors(){return l.errors}}),A(X);var Q=e(X,2),ae=e(h(Q),2),$=e(ae,2);r($,21,()=>n(m),e=>e.value,(r,i,a)=>{var l=c(),u=d(l),f=r=>{var a=R(),c=h(a),l=h(c);O(l);var u=e(l);A(c),A(a),o(()=>t(u,` ${n(i).value??``}`)),s(`change`,l,V),E(l,()=>n(i).selected,e=>n(i).selected=e),w(r,a)};T(u,e=>{n(i).value&&e(f)}),w(r,l)}),A($);var oe=e($,2),se=h(oe);N(se,{key:`models`,get errors(){return y}}),A(oe),A(Q);var ce=e(Q,2),le=h(ce);g(2),A(ce),A(W),A(U),A(H),f(`submit`,W,I),s(`change`,W,()=>{l.errors.clear()}),k(Y,()=>u().baseUrl,e=>u().baseUrl=e),k(Z,()=>u().apiKey,e=>u().apiKey=e),s(`click`,ae,B),s(`click`,le,L),w(a,H),b()}a([`change`,`click`]);var V=l(``),H=l(`
      `),U=l(`
      `);function W(i,a){S(a,!0);let l=C(x(p(()=>a.data.providers))),g=C(!1),_=C(null),v=C(x({})),y=new M,E=()=>{n(_)||(y.clear(),D(v,{},!0),n(v).models=``,D(g,!0))},O=()=>{D(g,!1)},k=e=>{e.name||y.set(`name`,`Le nom est obligatoire !`),e.type||y.set(`type`,`Le type est obligatoire !`),e.baseUrl&&!F(e.baseUrl)&&y.set(`baseUrl`,`Mauvaise URL !`),y.size===0&&j.createProvider(a.data.space,e).then(e=>{n(l).push(e),D(g,!1),D(v,{},!0)}).catch(e=>{console.log(e)})},N=()=>{D(_,null),D(v,{},!0)},P=e=>{e.name||y.set(`name`,`Le nom est obligatoire !`),e.type||y.set(`type`,`Le type est obligatoire !`),e.baseUrl&&!F(e.baseUrl)&&y.set(`baseUrl`,`Mauvaise URL !`),y.size===0&&j.updateProvider(a.data.space,e).then(e=>{D(l,n(l).map(t=>e.id===t.id?e:t),!0),D(_,null),D(v,{},!0)}).catch(e=>{console.log(e)})},I=async e=>{y.clear(),!n(g)&&j.getProvider(a.data.space,e).then(t=>{D(l,n(l).map(n=>n.id===e?t:n),!0),D(_,e,!0)})},L=e=>{j.deleteProvider(a.data.space,e).then(()=>{D(l,n(l).filter(t=>t.id!==e),!0)}).catch(e=>{console.log(e)})},R=e=>{e.key===`Escape`&&N()};var z=U();f(`keydown`,m,R);var W=h(z),G=e=>{var t=c(),r=d(t);u(r,()=>`new`,e=>{B(e,{get item(){return n(v)},get errors(){return y},get providerTypes(){return a.data.providerTypes},onSave:k,onCancel:O})}),w(e,t)},K=e=>{var t=V();s(`click`,t,E),w(e,t)};T(W,e=>{n(g)?e(G):e(K,-1)});var ee=e(W,2);r(ee,17,()=>n(l),e=>e.id,(r,i)=>{var l=c(),f=d(l),p=e=>{var t=c(),r=d(t);u(r,()=>n(i).id,e=>{B(e,{get item(){return n(i)},get errors(){return y},get providerTypes(){return a.data.providerTypes},onSave:P,onCancel:N})}),w(e,t)},m=r=>{var a=H(),c=h(a),l=h(c),u=h(l,!0);A(l);var d=e(l,2),f=h(d);A(d),A(c);var p=e(c,2),m=e(p,2);A(a),o(()=>{t(u,n(i).name),t(f,`(${n(i).type??``})`)}),s(`click`,p,()=>I(n(i).id)),s(`click`,m,()=>L(n(i).id)),w(r,a)};T(f,e=>{n(_)===n(i).id?e(p):e(m,-1)}),w(r,l)}),A(z),w(i,z),b()}a([`click`]);export{W as component,I as universal}; \ No newline at end of file +import{$ as e,A as t,B as n,E as r,G as i,I as a,K as o,L as s,M as c,N as l,O as u,Q as d,R as f,U as p,X as m,Z as h,_t as g,a as _,b as v,bt as y,dt as b,et as x,ft as S,it as C,j as w,k as T,l as E,nt as D,p as O,u as k,vt as A}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";import{t as j}from"../chunks/BeIYuf23.js";import{n as M,t as N}from"../chunks/6mSXxE57.js";import{t as P}from"../chunks/DdGy_ePN.js";import{n as F}from"../chunks/D3MDK1zR.js";var I=y({load:()=>L}),L=async({params:e})=>({title:`Paramétrage : Modèles`,back:`../settings`,space:e.space,providerTypes:await j.providerTypes(),providers:await j.getProviders(e.space)}),R=l(`
    1. `),z=l(`
        `);function B(a,l){S(l,!0);let u=_(l,`item`,7),p=C(x(u().models.split(`|`))),m=C(x(u().models.split(`|`).map(e=>({value:e,selected:!0})))),y=new M,F=e=>{e.focus()},I=e=>{e.preventDefault(),u().models=n(p).join(`|`),l.onSave(u())},L=e=>{e.preventDefault(),l.onCancel()},B=e=>{e.preventDefault(),y.clear(),j.getAvailableModels(u().teamId,u()).then(e=>{D(m,e.map(e=>({value:e,selected:n(p).includes(e)})),!0)}).catch(e=>{y.set(`models`,e)})},V=()=>{D(p,n(m).filter(e=>e.selected).map(e=>e.value),!0)};var H=z(),U=h(H),W=h(U),G=h(W),K=e(h(G),2);O(K),i(()=>k(K,()=>u().name,e=>u().name=e)),v(K,e=>F?.(e));var ee=e(K,2);N(ee,{key:`name`,get errors(){return l.errors}}),A(G);var q=e(G,2),te=e(h(q),2);P(te,{get items(){return l.providerTypes},valueMode:`id`,get value(){return u().type},set value(e){u().type=e}});var ne=e(te,2);N(ne,{key:`type`,get errors(){return l.errors}}),A(q);var J=e(q,2),Y=e(h(J),2);O(Y);var re=e(Y,2);N(re,{key:`baseUrl`,get errors(){return l.errors}}),A(J);var X=e(J,2),Z=e(h(X),2);O(Z);var ie=e(Z,2);N(ie,{key:`apiKey`,get errors(){return l.errors}}),A(X);var Q=e(X,2),ae=e(h(Q),2),$=e(ae,2);r($,21,()=>n(m),e=>e.value,(r,i,a)=>{var l=c(),u=d(l),f=r=>{var a=R(),c=h(a),l=h(c);O(l);var u=e(l);A(c),A(a),o(()=>t(u,` ${n(i).value??``}`)),s(`change`,l,V),E(l,()=>n(i).selected,e=>n(i).selected=e),w(r,a)};T(u,e=>{n(i).value&&e(f)}),w(r,l)}),A($);var oe=e($,2),se=h(oe);N(se,{key:`models`,get errors(){return y}}),A(oe),A(Q);var ce=e(Q,2),le=h(ce);g(2),A(ce),A(W),A(U),A(H),f(`submit`,W,I),s(`change`,W,()=>{l.errors.clear()}),k(Y,()=>u().baseUrl,e=>u().baseUrl=e),k(Z,()=>u().apiKey,e=>u().apiKey=e),s(`click`,ae,B),s(`click`,le,L),w(a,H),b()}a([`change`,`click`]);var V=l(``),H=l(`
        `),U=l(`
        `);function W(i,a){S(a,!0);let l=C(x(p(()=>a.data.providers))),g=C(!1),_=C(null),v=C(x({})),y=new M,E=()=>{n(_)||(y.clear(),D(v,{},!0),n(v).models=``,D(g,!0))},O=()=>{D(g,!1)},k=e=>{e.name||y.set(`name`,`Le nom est obligatoire !`),e.type||y.set(`type`,`Le type est obligatoire !`),e.baseUrl&&!F(e.baseUrl)&&y.set(`baseUrl`,`Mauvaise URL !`),y.size===0&&j.createProvider(a.data.space,e).then(e=>{n(l).push(e),D(g,!1),D(v,{},!0)}).catch(e=>{console.log(e)})},N=()=>{D(_,null),D(v,{},!0)},P=e=>{e.name||y.set(`name`,`Le nom est obligatoire !`),e.type||y.set(`type`,`Le type est obligatoire !`),e.baseUrl&&!F(e.baseUrl)&&y.set(`baseUrl`,`Mauvaise URL !`),y.size===0&&j.updateProvider(a.data.space,e).then(e=>{D(l,n(l).map(t=>e.id===t.id?e:t),!0),D(_,null),D(v,{},!0)}).catch(e=>{console.log(e)})},I=async e=>{y.clear(),!n(g)&&j.getProvider(a.data.space,e).then(t=>{D(l,n(l).map(n=>n.id===e?t:n),!0),D(_,e,!0)})},L=e=>{j.deleteProvider(a.data.space,e).then(()=>{D(l,n(l).filter(t=>t.id!==e),!0)}).catch(e=>{console.log(e)})},R=e=>{e.key===`Escape`&&N()};var z=U();f(`keydown`,m,R);var W=h(z),G=e=>{var t=c(),r=d(t);u(r,()=>`new`,e=>{B(e,{get item(){return n(v)},get errors(){return y},get providerTypes(){return a.data.providerTypes},onSave:k,onCancel:O})}),w(e,t)},K=e=>{var t=V();s(`click`,t,E),w(e,t)};T(W,e=>{n(g)?e(G):e(K,-1)});var ee=e(W,2);r(ee,17,()=>n(l),e=>e.id,(r,i)=>{var l=c(),f=d(l),p=e=>{var t=c(),r=d(t);u(r,()=>n(i).id,e=>{B(e,{get item(){return n(i)},get errors(){return y},get providerTypes(){return a.data.providerTypes},onSave:P,onCancel:N})}),w(e,t)},m=r=>{var a=H(),c=h(a),l=h(c),u=h(l,!0);A(l);var d=e(l,2),f=h(d);A(d),A(c);var p=e(c,2),m=e(p,2);A(a),o(()=>{t(u,n(i).name),t(f,`(${n(i).type??``})`)}),s(`click`,p,()=>I(n(i).id)),s(`click`,m,()=>L(n(i).id)),w(r,a)};T(f,e=>{n(_)===n(i).id?e(p):e(m,-1)}),w(r,l)}),A(z),w(i,z),b()}a([`click`]);export{W as component,I as universal}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/15.CqwsYGvL.js b/backend/internal/http/web/_app/immutable/nodes/15.DBuFCR43.js similarity index 98% rename from backend/internal/http/web/_app/immutable/nodes/15.CqwsYGvL.js rename to backend/internal/http/web/_app/immutable/nodes/15.DBuFCR43.js index 76647bf..a92fcc3 100644 --- a/backend/internal/http/web/_app/immutable/nodes/15.CqwsYGvL.js +++ b/backend/internal/http/web/_app/immutable/nodes/15.DBuFCR43.js @@ -1 +1 @@ -import{$ as e,A as t,B as n,E as r,G as i,I as a,K as o,L as s,M as c,N as l,O as u,Q as d,R as f,U as p,X as m,Z as h,_t as g,a as _,b as v,bt as y,dt as b,et as x,ft as S,it as C,j as w,k as T,l as E,m as D,nt as O,p as k,r as A,u as j,vt as M}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";import{t as N}from"../chunks/DqlBPR2w.js";import{n as P,t as F}from"../chunks/6mSXxE57.js";var I={getTools:e=>N.get(`/tool/${e}`),getTool:(e,t)=>N.get(`/tool/${e}/${t}`),getToolParams:(e,t)=>N.get(`/tool/${e}/${t}/params`),createTool:(e,t)=>N.post(`/tool/${e}`,t),updateTool:(e,t)=>N.put(`/tool/${e}`,t)},L=y({load:()=>R}),R=async({params:e})=>({title:`Paramétrage : Outils`,back:`../settings`,space:e.space,tools:await I.getTools(e.space)}),z=l(``),B=l(``),V=l(``),H=l(`
        `),U=l(`
        `);function W(a,c){S(c,!0);let l=_(c,`item`,7),u=x(p(()=>l())),d=C(x([])),m=new P;A(async()=>{O(d,await I.getToolParams(l().teamId,l().id),!0),m=new P(Object.entries(JSON.parse(l().configuration)))});let y=e=>{e.focus()},N=e=>{e.preventDefault(),l().configuration=JSON.stringify(Object.fromEntries(m)),c.onSave(l())},L=e=>{e.preventDefault(),c.onCancel()};var R=U(),W=h(R),G=h(W),K=h(G),q=e(h(K),2);k(q),i(()=>j(q,()=>u.name,e=>u.name=e)),v(q,e=>y?.(e));var J=e(q,2);F(J,{key:`name`,get errors(){return c.errors}}),M(K);var Y=e(K,2),X=e(h(Y),2);k(X);var Z=e(X,2);F(Z,{key:`baseUrl`,get errors(){return c.errors}}),M(Y);var Q=e(Y,2);r(Q,17,()=>n(d),e=>e.name,(r,i)=>{var a=H(),s=h(a),l=h(s,!0);M(s);var u=e(s,2),d=e=>{var t=z();k(t),E(t,()=>m.get(n(i).name)??``,e=>m.set(n(i).name,e)),w(e,t)},f=e=>{var t=B();k(t),o(()=>{D(t,`id`,n(i).name),D(t,`placeholder`,n(i).description)}),j(t,()=>m.get(n(i).name)??``,e=>m.set(n(i).name,e)),w(e,t)},p=e=>{var t=V();k(t),o(()=>{D(t,`id`,n(i).name),D(t,`placeholder`,n(i).description)}),j(t,()=>m.get(n(i).name)??``,e=>m.set(n(i).name,e)),w(e,t)};T(u,e=>{n(i).type==`bool`?e(d):n(i).type==`int`?e(f,1):e(p,-1)});var g=e(u,2);F(g,{key:`baseUrl`,get errors(){return c.errors}}),M(a),o(()=>{D(s,`for`,n(i).name),t(l,n(i).name)}),w(r,a)});var $=e(Q,2),ee=h($);g(2),M($),M(G),M(W),M(R),f(`submit`,G,N),s(`change`,G,()=>{c.errors.clear()}),E(X,()=>u.enabled,e=>u.enabled=e),s(`click`,ee,L),w(a,R),b()}a([`change`,`click`]);var G=l(`
        `),K=l(`
        `);function q(i,a){S(a,!0);let l=C(x(p(()=>a.data.tools))),g=C(null),_=new P,v=()=>{O(g,null)},y=e=>{_.size===0&&I.updateTool(a.data.space,e).then(e=>{O(l,n(l).map(t=>e.id===t.id?e:t),!0),O(g,null)}).catch(e=>{console.log(e)})},E=async e=>{_.clear(),I.getTool(a.data.space,e).then(t=>{O(l,n(l).map(n=>n.id===e?t:n),!0),O(g,e,!0)})},D=e=>{e.key===`Escape`&&v()};var k=K();f(`keydown`,m,D),r(k,21,()=>n(l),e=>e.id,(r,i)=>{var a=c(),l=d(a),f=e=>{var t=c(),r=d(t);u(r,()=>n(i).id,e=>{W(e,{get item(){return n(i)},get errors(){return _},onSave:y,onCancel:v})}),w(e,t)},p=r=>{var a=G(),c=h(a),l=h(c),u=h(l,!0);M(l);var d=e(l,2),f=h(d);M(d),M(c);var p=e(c,2);M(a),o(()=>{t(u,n(i).name),t(f,`(${n(i).enabled??``})`)}),s(`click`,p,()=>E(n(i).id)),w(r,a)};T(l,e=>{n(g)===n(i).id?e(f):e(p,-1)}),w(r,a)}),M(k),w(i,k),b()}a([`click`]);export{q as component,L as universal}; \ No newline at end of file +import{$ as e,A as t,B as n,E as r,G as i,I as a,K as o,L as s,M as c,N as l,O as u,Q as d,R as f,U as p,X as m,Z as h,_t as g,a as _,b as v,bt as y,dt as b,et as x,ft as S,it as C,j as w,k as T,l as E,m as D,nt as O,p as k,r as A,u as j,vt as M}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";import{t as N}from"../chunks/DtfiK5fE.js";import{n as P,t as F}from"../chunks/6mSXxE57.js";var I={getTools:e=>N.get(`/tool/${e}`),getTool:(e,t)=>N.get(`/tool/${e}/${t}`),getToolParams:(e,t)=>N.get(`/tool/${e}/${t}/params`),createTool:(e,t)=>N.post(`/tool/${e}`,t),updateTool:(e,t)=>N.put(`/tool/${e}`,t)},L=y({load:()=>R}),R=async({params:e})=>({title:`Paramétrage : Outils`,back:`../settings`,space:e.space,tools:await I.getTools(e.space)}),z=l(``),B=l(``),V=l(``),H=l(`
        `),U=l(`
        `);function W(a,c){S(c,!0);let l=_(c,`item`,7),u=x(p(()=>l())),d=C(x([])),m=new P;A(async()=>{O(d,await I.getToolParams(l().teamId,l().id),!0),m=new P(Object.entries(JSON.parse(l().configuration)))});let y=e=>{e.focus()},N=e=>{e.preventDefault(),l().configuration=JSON.stringify(Object.fromEntries(m)),c.onSave(l())},L=e=>{e.preventDefault(),c.onCancel()};var R=U(),W=h(R),G=h(W),K=h(G),q=e(h(K),2);k(q),i(()=>j(q,()=>u.name,e=>u.name=e)),v(q,e=>y?.(e));var J=e(q,2);F(J,{key:`name`,get errors(){return c.errors}}),M(K);var Y=e(K,2),X=e(h(Y),2);k(X);var Z=e(X,2);F(Z,{key:`baseUrl`,get errors(){return c.errors}}),M(Y);var Q=e(Y,2);r(Q,17,()=>n(d),e=>e.name,(r,i)=>{var a=H(),s=h(a),l=h(s,!0);M(s);var u=e(s,2),d=e=>{var t=z();k(t),E(t,()=>m.get(n(i).name)??``,e=>m.set(n(i).name,e)),w(e,t)},f=e=>{var t=B();k(t),o(()=>{D(t,`id`,n(i).name),D(t,`placeholder`,n(i).description)}),j(t,()=>m.get(n(i).name)??``,e=>m.set(n(i).name,e)),w(e,t)},p=e=>{var t=V();k(t),o(()=>{D(t,`id`,n(i).name),D(t,`placeholder`,n(i).description)}),j(t,()=>m.get(n(i).name)??``,e=>m.set(n(i).name,e)),w(e,t)};T(u,e=>{n(i).type==`bool`?e(d):n(i).type==`int`?e(f,1):e(p,-1)});var g=e(u,2);F(g,{key:`baseUrl`,get errors(){return c.errors}}),M(a),o(()=>{D(s,`for`,n(i).name),t(l,n(i).name)}),w(r,a)});var $=e(Q,2),ee=h($);g(2),M($),M(G),M(W),M(R),f(`submit`,G,N),s(`change`,G,()=>{c.errors.clear()}),E(X,()=>u.enabled,e=>u.enabled=e),s(`click`,ee,L),w(a,R),b()}a([`change`,`click`]);var G=l(`
        `),K=l(`
        `);function q(i,a){S(a,!0);let l=C(x(p(()=>a.data.tools))),g=C(null),_=new P,v=()=>{O(g,null)},y=e=>{_.size===0&&I.updateTool(a.data.space,e).then(e=>{O(l,n(l).map(t=>e.id===t.id?e:t),!0),O(g,null)}).catch(e=>{console.log(e)})},E=async e=>{_.clear(),I.getTool(a.data.space,e).then(t=>{O(l,n(l).map(n=>n.id===e?t:n),!0),O(g,e,!0)})},D=e=>{e.key===`Escape`&&v()};var k=K();f(`keydown`,m,D),r(k,21,()=>n(l),e=>e.id,(r,i)=>{var a=c(),l=d(a),f=e=>{var t=c(),r=d(t);u(r,()=>n(i).id,e=>{W(e,{get item(){return n(i)},get errors(){return _},onSave:y,onCancel:v})}),w(e,t)},p=r=>{var a=G(),c=h(a),l=h(c),u=h(l,!0);M(l);var d=e(l,2),f=h(d);M(d),M(c);var p=e(c,2);M(a),o(()=>{t(u,n(i).name),t(f,`(${n(i).enabled??``})`)}),s(`click`,p,()=>E(n(i).id)),w(r,a)};T(l,e=>{n(g)===n(i).id?e(f):e(p,-1)}),w(r,a)}),M(k),w(i,k),b()}a([`click`]);export{q as component,L as universal}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/17.BV0v_EXc.js b/backend/internal/http/web/_app/immutable/nodes/17.BV0v_EXc.js new file mode 100644 index 0000000..74bdc8d --- /dev/null +++ b/backend/internal/http/web/_app/immutable/nodes/17.BV0v_EXc.js @@ -0,0 +1,4 @@ +import{$ as e,A as t,B as n,E as r,I as i,K as a,L as o,M as s,N as c,Q as l,R as u,Z as d,at as f,bt as p,dt as m,et as h,ft as g,it as _,j as v,k as y,l as b,m as x,nt as S,p as C,q as w,st as T,u as E,v as D,vt as O}from"../chunks/DGrvnoUE.js";import{n as k}from"../chunks/BZuNOv8h.js";import"../chunks/xihTtKlq.js";import{t as A}from"../chunks/ffLBjIeN.js";import"../chunks/CY9OlB4q.js";import{t as j}from"../chunks/BYYkuYgk.js";import{n as M,r as N,t as P}from"../chunks/Bht2nTIZ.js";var F=p({load:()=>I}),I=async({params:e})=>({title:`Tâches`,tasks:await N.listTasks(e.space),space:e.space}),ee=c(`

        Aucune tâche planifiée. Demandez-en une dans le chat + (« résume-moi l'actualité tous les jours à 8h »).

        `),L=c(`
        `),R=c(`

        Chargement...

        `),z=c(`

        Aucune conversation pour cette tâche.

        `),B=c(`
      1. `),V=c(`
          `),H=c(`
          Conversations liées
          `),U=c(`

          `),te=c(`
          `,1);function W(i,c){g(c,!0);let p=f(()=>c.data.tasks??[]),F=_(null),I=_(null),W=_(!1),G=_(h(A.url.searchParams.get(`task`))),K=_(h({})),q=_(!1),J=async e=>{S(q,!0);try{let t=await j.allChats(c.data.space,0,void 0,e);S(K,{...n(K),[e]:t??[]},!0)}catch{M(`failure`,`Erreur lors du chargement des conversations`)}finally{S(q,!1)}},ne=async e=>{if(n(G)===e.id){S(G,null);return}S(G,e.id,!0),n(K)[e.id]||await J(e.id)},Y=!1;w(()=>{!Y&&n(G)&&(Y=!0,J(n(G))),Y=!0});let X=e=>{if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?`—`:t.toLocaleString(`fr-FR`,{day:`numeric`,month:`long`,year:`numeric`,hour:`2-digit`,minute:`2-digit`})},re=e=>{S(F,{...e},!0)},ie=async e=>{if(e.preventDefault(),n(F)){if(!n(F).label.trim()||!n(F).prompt.trim()||!n(F).cron.trim()){M(`failure`,`Titre, prompt et planification sont obligatoires`);return}S(W,!0);try{await N.updateTask(c.data.space,n(F).id,{label:n(F).label,prompt:n(F).prompt,cron:n(F).cron,repeat:n(F).repeat}),M(`success`,`Tâche mise à jour`),S(F,null),await k()}catch{M(`failure`,`Erreur lors de la mise à jour de la tâche`)}finally{S(W,!1)}}},ae=async()=>{if(n(I))try{await N.deleteTask(c.data.space,n(I).id),M(`success`,`Tâche supprimée`),await k()}catch{M(`failure`,`Erreur lors de la suppression de la tâche`)}finally{S(I,null)}};var Z=te(),Q=l(Z),$=d(Q),oe=e=>{var t=ee();v(e,t)};y($,e=>{n(p).length===0&&e(oe)});var se=e($,2);r(se,17,()=>n(p),e=>e.id,(i,f)=>{var p=s(),m=l(p),h=r=>{var i=L(),s=d(i),c=d(s),l=d(c),p=d(l),m=e(p,2);C(m),O(l);var h=e(l,2),g=d(h),_=e(g,2);C(_),O(h);var y=e(h,2),w=d(y),D=e(w,2);C(D),O(y),O(c);var k=e(c,2),A=d(k),j=e(A,2);T(j),O(k);var M=e(k,2),N=d(M),P=d(N,!0);O(N);var I=e(N,2);O(M),O(s),O(i),a(()=>{x(p,`for`,`label-${n(f).id}`),x(m,`id`,`label-${n(f).id}`),x(g,`for`,`cron-${n(f).id}`),x(_,`id`,`cron-${n(f).id}`),x(w,`for`,`repeat-${n(f).id}`),x(D,`id`,`repeat-${n(f).id}`),x(A,`for`,`prompt-${n(f).id}`),x(j,`id`,`prompt-${n(f).id}`),N.disabled=n(W),t(P,n(W)?`Enregistrement...`:`Enregistrer`)}),u(`submit`,s,ie),E(m,()=>n(F).label,e=>n(F).label=e),E(_,()=>n(F).cron,e=>n(F).cron=e),b(D,()=>n(F).repeat,e=>n(F).repeat=e),E(j,()=>n(F).prompt,e=>n(F).prompt=e),o(`click`,I,()=>S(F,null)),v(r,i)},g=i=>{var s=U();let l;var u=d(s),p=d(u),m=d(p),h=d(m,!0);O(m);var g=e(m,2),_=d(g);O(g),O(p);var b=e(p,2),C=e(b,2),w=e(C,2);O(u);var T=e(u,2),E=d(T,!0);O(T);var k=e(T,2),A=d(k);O(k);var j=e(k,2),M=i=>{var o=H(),s=e(d(o),2),l=e=>{var t=R();v(e,t)},u=e=>{var t=z();v(e,t)},p=i=>{var o=V();r(o,21,()=>n(K)[n(f).id],e=>e.id,(r,i)=>{var o=B(),s=d(o),l=d(s,!0);O(s);var u=e(s,2),f=d(u,!0);O(u),O(o),a(e=>{x(s,`href`,`/${c.data.space}/${n(i).id}`),t(l,n(i).title),t(f,e)},[()=>X(n(i)._date_created)]),v(r,o)}),O(o),v(i,o)};y(s,e=>{n(q)&&!n(K)[n(f).id]?e(l):(n(K)[n(f).id]??[]).length===0?e(u,1):e(p,-1)}),O(o),v(i,o)};y(j,e=>{n(G)===n(f).id&&e(M)}),O(s),a(e=>{l=D(s,1,`dark:bg-stone-800 rounded p-2 my-2`,null,l,{"ring-2":n(G)===n(f).id,"ring-sky-500":n(G)===n(f).id}),t(h,n(f).label),t(_,`${n(f).cron??``} + ${n(f).repeat?`· répétée`:`· ponctuelle`} + ${n(f).status===`done`?`· terminée`:``}`),t(E,n(f).prompt),t(A,`Prochaine exécution : ${e??``}`)},[()=>X(n(f).nextDatetime)]),o(`click`,b,()=>ne(n(f))),o(`click`,C,()=>re(n(f))),o(`click`,w,()=>S(I,n(f),!0)),v(i,s)};y(m,e=>{n(F)&&n(F).id===n(f).id?e(h):e(g,-1)}),v(i,p)}),O(Q);var ce=e(Q,2);{let e=f(()=>n(I)!==null),t=f(()=>`Voulez-vous vraiment supprimer « ${n(I)?.label} » ? Cette action est irréversible.`);P(ce,{get open(){return n(e)},title:`Supprimer la tâche`,get message(){return n(t)},confirmLabel:`Supprimer`,onConfirm:ae,onCancel:()=>S(I,null)})}v(i,Z),m()}i([`click`]);export{W as component,F as universal}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/17.CRbsg29O.js b/backend/internal/http/web/_app/immutable/nodes/17.CRbsg29O.js deleted file mode 100644 index 0b68bad..0000000 --- a/backend/internal/http/web/_app/immutable/nodes/17.CRbsg29O.js +++ /dev/null @@ -1 +0,0 @@ -import{N as e,bt as t,j as n}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";var r=t({load:()=>i});function i(){return{title:`Tâches`}}var a=e(`
          Tâches
          `);function o(e){var t=a();n(e,t)}export{o as component,r as universal}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/18.DRjMAC4S.js b/backend/internal/http/web/_app/immutable/nodes/18.e37B7XcZ.js similarity index 98% rename from backend/internal/http/web/_app/immutable/nodes/18.DRjMAC4S.js rename to backend/internal/http/web/_app/immutable/nodes/18.e37B7XcZ.js index c109a2a..31e93a8 100644 --- a/backend/internal/http/web/_app/immutable/nodes/18.DRjMAC4S.js +++ b/backend/internal/http/web/_app/immutable/nodes/18.e37B7XcZ.js @@ -1 +1 @@ -import{$ as e,A as t,B as n,E as r,F as i,G as a,I as o,K as s,L as c,N as l,Q as u,R as d,U as f,Z as p,_t as m,a as h,at as ee,b as te,bt as g,dt as ne,et as _,ft as re,g as v,it as y,j as b,k as x,nt as S,p as C,q as ie,r as ae,u as w,v as T,vt as E}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";import{n as oe,t as se}from"../chunks/DTCALkcP.js";import{t as D}from"../chunks/DqlBPR2w.js";import{t as O}from"../chunks/DyF3myvh.js";import{n as ce,t as k}from"../chunks/6mSXxE57.js";import{t as le}from"../chunks/CUminYLk.js";import{t as ue}from"../chunks/D3MDK1zR.js";var de=g({load:()=>fe}),fe=async()=>({title:`Profil`,me:await O.me()}),A=function(e){return e[e.None=0]=`None`,e[e.Changed=1]=`Changed`,e[e.Saving=2]=`Saving`,e[e.Saved=3]=`Saved`,e[e.Error=4]=`Error`,e}({}),pe={listTimezones:()=>D.get(`/misc/timezones`)},me=l(` Enregistrement en cours`,1),he=l(` Enregistrement réussi`,1),ge=l(``);function _e(e,n){re(n,!0);let r=h(n,`state`,7),a=h(n,`disabled`,3,!1);ie(()=>{(r()===A.Saved||r()===A.Error)&&setTimeout(()=>{r(A.None)},2e3)});let o=()=>{n.handleClick&&(r()===A.Changed||r()===A.None)&&n.handleClick()};var l=ge();let u;var d=p(l),f=e=>{var r=i();s(()=>t(r,n.label)),b(e,r)},ee=e=>{var t=me();m(),b(e,t)},te=e=>{var t=he();m(),b(e,t)},g=e=>{var t=i(`Echec`);b(e,t)};x(d,e=>{r()==A.None||r()==A.Changed?e(f):r()==A.Saving?e(ee,1):r()==A.Saved?e(te,2):r()==A.Error&&e(g,3)}),E(l),s(()=>{l.disabled=a(),u=T(l,1,`bt`,null,u,{disabled:a(),changed:r()===A.Changed,saving:r()===A.Saving,saved:r()===A.Saved,error:r()===A.Error})}),c(`click`,l,o),b(e,l),ne()}o([`click`]);var ve=l(`
          `),ye=l(`

          Mon compte

          Canaux de communication

          `,1);function j(i,o){re(o,!0);let l=_(f(()=>o.data.me.user)),m=y(_([])),h=y(_({type:``,address:``})),g=y(_([])),x=new ce,T=y(_(A.None)),D=y(_(A.None));ae(async()=>{S(m,await O.listAddresses(l.id),!0),S(g,(await pe.listTimezones()).map(e=>({value:e,label:e})),!0)}),ie(()=>{oe(l.theme),se()});let de=e=>{e.preventDefault(),S(T,A.Saving,!0),ue(l.email)||x.set(`email`,`Adresse email invalide !`),l.firstname||x.set(`firstname`,`Le prénom est obligatoire !`),l.lastname||x.set(`lastname`,`Le nom est obligatoire !`),x.size==0&&O.update(l.id,l).then(()=>{S(T,A.Saved,!0)}).catch(e=>{S(T,A.Saving,!0),console.error(e)})},fe=()=>{S(D,A.Saving,!0),O.createAddress(l.id,n(h)).then(e=>{n(m).push(e),S(h,{type:``,address:``},!0),S(D,A.Saved,!0)}).catch(e=>{console.log(e)})},me=e=>{O.deleteAddress(l.id,e).then(()=>{S(m,n(m).filter(t=>t.id!=e),!0)}).catch(e=>{console.log(e)})},he=()=>{x.clear(),S(T,A.Changed,!0)},ge=e=>{e.focus()};var j=ye(),M=u(j),N=e(p(M),2),P=p(N),F=e(p(P),2);C(F),a(()=>w(F,()=>l.email,e=>l.email=e)),te(F,e=>ge?.(e));var be=e(F,2);k(be,{key:`email`,get errors(){return x}}),E(P);var I=e(P,2),L=p(I),R=e(p(L),2);C(R);var xe=e(R,2);k(xe,{key:`firstname`,get errors(){return x}}),E(L);var Se=e(L,2),z=e(p(Se),2);C(z);var Ce=e(z,2);k(Ce,{key:`lastname`,get errors(){return x}}),E(Se),E(I);var B=e(I,2),V=p(B),H=e(p(V),2),U=p(H);U.value=U.__value=`en`;var we=e(U);we.value=we.__value=`fr`,E(H);var Te=e(H,2);k(Te,{key:`lang`,get errors(){return x}}),E(V);var Ee=e(V,2),De=e(p(Ee),2);le(De,{get items(){return n(g)},valueMode:`id`,get value(){return l.timezone},set value(e){l.timezone=e}});var Oe=e(De,2);k(Oe,{key:`timezone`,get errors(){return x}}),E(Ee),E(B);var W=e(B,2),G=e(p(W),2),K=p(G);K.value=K.__value=`auto`;var q=e(K);q.value=q.__value=`dark`;var ke=e(q);ke.value=ke.__value=`light`,E(G);var Ae=e(G,2);k(Ae,{key:`theme`,get errors(){return x}}),E(W),_e(e(W,2),{label:`Enregistrer`,get state(){return n(T)}}),E(N),E(M);var je=e(M,2),Me=e(p(je),2);r(Me,17,()=>n(m),e=>e.id,(r,i)=>{var a=ve(),o=p(a),l=p(o),u=p(l);E(l);var d=e(l,2),f=p(d,!0);E(d);var m=e(d,2);E(o),E(a),s(()=>{t(u,`${n(i).type??``} :`),t(f,n(i).address)}),c(`click`,m,()=>{me(n(i).id)}),b(r,a)});var Ne=e(Me,2),J=p(Ne),Y=p(J),X=p(Y);X.value=X.__value=``;var Z=e(X);Z.value=Z.__value=`email`;var Q=e(Z);Q.value=Q.__value=`signal`;var $=e(Q);$.value=$.__value=`telegram`;var Pe=e($);Pe.value=Pe.__value=`whatsapp`,E(Y),E(J);var Fe=e(J,2),Ie=p(Fe);C(Ie),E(Fe);var Le=e(Fe,2),Re=p(Le);{let e=ee(()=>n(h).type===``||n(h).address===``);_e(Re,{get disabled(){return n(e)},label:`Ajouter`,handleClick:fe,get state(){return n(D)}})}E(Le),E(Ne),E(je),d(`submit`,N,de),c(`change`,N,he),w(R,()=>l.firstname,e=>l.firstname=e),w(z,()=>l.lastname,e=>l.lastname=e),v(H,()=>l.lang,e=>l.lang=e),v(G,()=>l.theme,e=>l.theme=e),v(Y,()=>n(h).type,e=>n(h).type=e),c(`change`,Ie,()=>S(D,A.Changed,!0)),w(Ie,()=>n(h).address,e=>n(h).address=e),b(i,j),ne()}o([`change`,`click`]);export{j as component,de as universal}; \ No newline at end of file +import{$ as e,A as t,B as n,E as r,F as i,G as a,I as o,K as s,L as c,N as l,Q as u,R as d,U as f,Z as p,_t as m,a as h,at as ee,b as te,bt as g,dt as ne,et as _,ft as re,g as v,it as y,j as b,k as x,nt as S,p as C,q as ie,r as ae,u as w,v as T,vt as E}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";import{n as oe,t as se}from"../chunks/DTCALkcP.js";import{t as D}from"../chunks/DtfiK5fE.js";import{t as O}from"../chunks/zsRwiIdn.js";import{n as ce,t as k}from"../chunks/6mSXxE57.js";import{t as le}from"../chunks/DdGy_ePN.js";import{t as ue}from"../chunks/D3MDK1zR.js";var de=g({load:()=>fe}),fe=async()=>({title:`Profil`,me:await O.me()}),A=function(e){return e[e.None=0]=`None`,e[e.Changed=1]=`Changed`,e[e.Saving=2]=`Saving`,e[e.Saved=3]=`Saved`,e[e.Error=4]=`Error`,e}({}),pe={listTimezones:()=>D.get(`/misc/timezones`)},me=l(` Enregistrement en cours`,1),he=l(` Enregistrement réussi`,1),ge=l(``);function _e(e,n){re(n,!0);let r=h(n,`state`,7),a=h(n,`disabled`,3,!1);ie(()=>{(r()===A.Saved||r()===A.Error)&&setTimeout(()=>{r(A.None)},2e3)});let o=()=>{n.handleClick&&(r()===A.Changed||r()===A.None)&&n.handleClick()};var l=ge();let u;var d=p(l),f=e=>{var r=i();s(()=>t(r,n.label)),b(e,r)},ee=e=>{var t=me();m(),b(e,t)},te=e=>{var t=he();m(),b(e,t)},g=e=>{var t=i(`Echec`);b(e,t)};x(d,e=>{r()==A.None||r()==A.Changed?e(f):r()==A.Saving?e(ee,1):r()==A.Saved?e(te,2):r()==A.Error&&e(g,3)}),E(l),s(()=>{l.disabled=a(),u=T(l,1,`bt`,null,u,{disabled:a(),changed:r()===A.Changed,saving:r()===A.Saving,saved:r()===A.Saved,error:r()===A.Error})}),c(`click`,l,o),b(e,l),ne()}o([`click`]);var ve=l(`
          `),ye=l(`

          Mon compte

          Canaux de communication

          `,1);function j(i,o){re(o,!0);let l=_(f(()=>o.data.me.user)),m=y(_([])),h=y(_({type:``,address:``})),g=y(_([])),x=new ce,T=y(_(A.None)),D=y(_(A.None));ae(async()=>{S(m,await O.listAddresses(l.id),!0),S(g,(await pe.listTimezones()).map(e=>({value:e,label:e})),!0)}),ie(()=>{oe(l.theme),se()});let de=e=>{e.preventDefault(),S(T,A.Saving,!0),ue(l.email)||x.set(`email`,`Adresse email invalide !`),l.firstname||x.set(`firstname`,`Le prénom est obligatoire !`),l.lastname||x.set(`lastname`,`Le nom est obligatoire !`),x.size==0&&O.update(l.id,l).then(()=>{S(T,A.Saved,!0)}).catch(e=>{S(T,A.Saving,!0),console.error(e)})},fe=()=>{S(D,A.Saving,!0),O.createAddress(l.id,n(h)).then(e=>{n(m).push(e),S(h,{type:``,address:``},!0),S(D,A.Saved,!0)}).catch(e=>{console.log(e)})},me=e=>{O.deleteAddress(l.id,e).then(()=>{S(m,n(m).filter(t=>t.id!=e),!0)}).catch(e=>{console.log(e)})},he=()=>{x.clear(),S(T,A.Changed,!0)},ge=e=>{e.focus()};var j=ye(),M=u(j),N=e(p(M),2),P=p(N),F=e(p(P),2);C(F),a(()=>w(F,()=>l.email,e=>l.email=e)),te(F,e=>ge?.(e));var be=e(F,2);k(be,{key:`email`,get errors(){return x}}),E(P);var I=e(P,2),L=p(I),R=e(p(L),2);C(R);var xe=e(R,2);k(xe,{key:`firstname`,get errors(){return x}}),E(L);var Se=e(L,2),z=e(p(Se),2);C(z);var Ce=e(z,2);k(Ce,{key:`lastname`,get errors(){return x}}),E(Se),E(I);var B=e(I,2),V=p(B),H=e(p(V),2),U=p(H);U.value=U.__value=`en`;var we=e(U);we.value=we.__value=`fr`,E(H);var Te=e(H,2);k(Te,{key:`lang`,get errors(){return x}}),E(V);var Ee=e(V,2),De=e(p(Ee),2);le(De,{get items(){return n(g)},valueMode:`id`,get value(){return l.timezone},set value(e){l.timezone=e}});var Oe=e(De,2);k(Oe,{key:`timezone`,get errors(){return x}}),E(Ee),E(B);var W=e(B,2),G=e(p(W),2),K=p(G);K.value=K.__value=`auto`;var q=e(K);q.value=q.__value=`dark`;var ke=e(q);ke.value=ke.__value=`light`,E(G);var Ae=e(G,2);k(Ae,{key:`theme`,get errors(){return x}}),E(W),_e(e(W,2),{label:`Enregistrer`,get state(){return n(T)}}),E(N),E(M);var je=e(M,2),Me=e(p(je),2);r(Me,17,()=>n(m),e=>e.id,(r,i)=>{var a=ve(),o=p(a),l=p(o),u=p(l);E(l);var d=e(l,2),f=p(d,!0);E(d);var m=e(d,2);E(o),E(a),s(()=>{t(u,`${n(i).type??``} :`),t(f,n(i).address)}),c(`click`,m,()=>{me(n(i).id)}),b(r,a)});var Ne=e(Me,2),J=p(Ne),Y=p(J),X=p(Y);X.value=X.__value=``;var Z=e(X);Z.value=Z.__value=`email`;var Q=e(Z);Q.value=Q.__value=`signal`;var $=e(Q);$.value=$.__value=`telegram`;var Pe=e($);Pe.value=Pe.__value=`whatsapp`,E(Y),E(J);var Fe=e(J,2),Ie=p(Fe);C(Ie),E(Fe);var Le=e(Fe,2),Re=p(Le);{let e=ee(()=>n(h).type===``||n(h).address===``);_e(Re,{get disabled(){return n(e)},label:`Ajouter`,handleClick:fe,get state(){return n(D)}})}E(Le),E(Ne),E(je),d(`submit`,N,de),c(`change`,N,he),w(R,()=>l.firstname,e=>l.firstname=e),w(z,()=>l.lastname,e=>l.lastname=e),v(H,()=>l.lang,e=>l.lang=e),v(G,()=>l.theme,e=>l.theme=e),v(Y,()=>n(h).type,e=>n(h).type=e),c(`change`,Ie,()=>S(D,A.Changed,!0)),w(Ie,()=>n(h).address,e=>n(h).address=e),b(i,j),ne()}o([`change`,`click`]);export{j as component,de as universal}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/19.Bxx8Nj5U.js b/backend/internal/http/web/_app/immutable/nodes/19.Bxx8Nj5U.js deleted file mode 100644 index 70acd42..0000000 --- a/backend/internal/http/web/_app/immutable/nodes/19.Bxx8Nj5U.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,I as t,K as n,L as r,N as i,Q as a,R as o,Z as s,_t as c,dt as l,et as u,ft as d,j as f,k as p,m,ot as h,p as g,u as _,vt as v}from"../chunks/DGrvnoUE.js";import{t as y}from"../chunks/Soo4K-rz.js";import"../chunks/xihTtKlq.js";import"../chunks/QHwlfjO8.js";import{i as b,n as x}from"../chunks/DqlBPR2w.js";import{t as S}from"../chunks/BRXBpvt8.js";import{t as C}from"../chunks/D3MDK1zR.js";import{t as w}from"../chunks/CvbyM2Rc.js";var T=i(`
          `,1),E=i(`
          ← Retour
          `),D=i(`
          logo

          Identifiez-vous ...


          `);function O(t,i){d(i,!0);let O=u({email:``,password:``,validemail:!1}),k=()=>{O.validemail=C(O.email)},A=e=>{e.preventDefault(),w.login(O).then(e=>{x.user=e.user,b(e.accessToken),y(`/`)}).catch(e=>{console.log(e)})};var j=D(),M=s(j),N=s(M),P=e(N,4),F=t=>{var n=T(),r=a(n),i=e(s(r),2),l=s(i);g(l),h(l,!0),c(2),v(i),v(r),c(2),o(`submit`,r,k),_(l,()=>O.email,e=>O.email=e),f(t,n)},I=t=>{var n=E(),i=e(s(n),2),a=s(i);g(a),h(a,!0),c(2),v(i);var l=e(i,2);v(n),o(`submit`,n,A),_(a,()=>O.password,e=>O.password=e),r(`click`,l,()=>{O.validemail=!1}),f(t,n)};p(P,e=>{O.validemail?e(I,-1):e(F)}),c(4),v(M),v(j),n(()=>m(N,`src`,S)),f(t,j),l()}t([`click`]);export{O as component}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/19.CdvrW-UN.js b/backend/internal/http/web/_app/immutable/nodes/19.CdvrW-UN.js new file mode 100644 index 0000000..931afe0 --- /dev/null +++ b/backend/internal/http/web/_app/immutable/nodes/19.CdvrW-UN.js @@ -0,0 +1 @@ +import{$ as e,A as t,B as n,E as r,I as i,K as a,L as o,N as s,Q as c,R as l,Z as u,_t as d,dt as f,et as p,ft as m,it as h,j as g,k as _,m as v,nt as y,ot as b,p as x,r as S,u as C,vt as w}from"../chunks/DGrvnoUE.js";import{t as T}from"../chunks/BZuNOv8h.js";import"../chunks/xihTtKlq.js";import"../chunks/CY9OlB4q.js";import{i as E,n as D}from"../chunks/DtfiK5fE.js";import{t as O}from"../chunks/BRXBpvt8.js";import{t as k}from"../chunks/D3MDK1zR.js";import{t as A}from"../chunks/BedKI9iq.js";var j=s(`
          `,1),M=s(`
          ← Retour
          `),N=s(``),P=s(`
          `,1),F=s(`
          logo

          Identifiez-vous ...

          `);function I(i,s){m(s,!0);let I=p({email:``,password:``,validemail:!1}),L=h(p([]));S(()=>{A.oidcProviders().then(e=>{y(L,e??[],!0)}).catch(()=>{y(L,[],!0)})});let R=e=>{window.location.href=A.oidcLoginUrl(e)},z=()=>{I.validemail=k(I.email)},B=e=>{e.preventDefault(),A.login(I).then(e=>{D.user=e.user,E(e.accessToken),T(`/`)}).catch(e=>{console.log(e)})};var V=F(),H=u(V),U=u(H),W=e(U,4),G=t=>{var n=j(),r=c(n),i=e(u(r),2),a=u(i);x(a),b(a,!0),d(2),w(i),w(r),d(2),l(`submit`,r,z),C(a,()=>I.email,e=>I.email=e),g(t,n)},K=t=>{var n=M(),r=e(u(n),2),i=u(r);x(i),b(i,!0),d(2),w(r);var a=e(r,2);w(n),l(`submit`,n,B),C(i,()=>I.password,e=>I.password=e),o(`click`,a,()=>{I.validemail=!1}),g(t,n)};_(W,e=>{I.validemail?e(K,-1):e(G)});var q=e(W,2),J=i=>{var s=P(),l=e(c(s),2);r(l,21,()=>n(L),e=>e.id,(e,r)=>{var i=N(),s=u(i,!0);w(i),a(()=>{v(i,`title`,`Connexion avec ${n(r).label??``}`),t(s,n(r).label)}),o(`click`,i,()=>R(n(r).id)),g(e,i)}),w(l),g(i,s)};_(q,e=>{n(L).length>0&&e(J)}),w(H),w(V),a(()=>v(U,`src`,O)),g(i,V),f()}i([`click`]);export{I as component}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/2.BGKAfrIz.js b/backend/internal/http/web/_app/immutable/nodes/2.wASuVt48.js similarity index 95% rename from backend/internal/http/web/_app/immutable/nodes/2.BGKAfrIz.js rename to backend/internal/http/web/_app/immutable/nodes/2.wASuVt48.js index 4ecefce..449c15e 100644 --- a/backend/internal/http/web/_app/immutable/nodes/2.BGKAfrIz.js +++ b/backend/internal/http/web/_app/immutable/nodes/2.wASuVt48.js @@ -1 +1 @@ -import{$ as e,A as t,B as n,E as r,I as i,K as a,L as o,N as s,Q as c,R as l,T as u,X as d,Z as f,a as p,at as m,bt as h,dt as g,et as _,ft as v,j as y,k as b,m as x,q as S,r as C,v as w,vt as T,y as E}from"../chunks/DGrvnoUE.js";import{t as D}from"../chunks/Soo4K-rz.js";import"../chunks/xihTtKlq.js";import{n as O,t as k}from"../chunks/DTCALkcP.js";import{t as A}from"../chunks/5WAfNqs_.js";import"../chunks/QHwlfjO8.js";import{n as j,r as M}from"../chunks/DqlBPR2w.js";import{t as N}from"../chunks/DyF3myvh.js";import{t as P}from"../chunks/Cyrg28w2.js";import{t as F}from"../chunks/BRXBpvt8.js";var I=h({load:()=>L}),L=async()=>{let e=await N.me();return P.spaces=e.teams,P.current||(P.current=P.spaces[0].id),{spaceid:P.current,me:e}},R=_({sidebarDesktopOpen:!0,sidebarMobileOpen:!1,menuContentVisible:!0}),z=s(` `),B=s(``);function V(n,r){v(r,!0);let i=p(r,`label`,3,``),s=p(r,`icon`,3,``),c=p(r,`link`,3,``),l=e=>{e.preventDefault(),R.sidebarMobileOpen&&(R.sidebarMobileOpen=!1,R.menuContentVisible=!1),D(c())};var u=B(),d=f(u),m=f(d),h=e(m,2),_=e=>{var n=z(),r=f(n,!0);T(n),a(()=>t(r,i())),y(e,n)};b(h,e=>{R.menuContentVisible&&e(_)}),T(d),T(u),a(()=>{x(d,`href`,c()),w(m,1,E([s()]))}),o(`click`,d,l),y(n,u),g()}i([`click`]);var H=s(`
          logo
          `),U=s(``),W=s(`
          `),G=s(`
          FM
          Fabien Masson
          `),K=s(`
          `,1);function q(i,s){v(s,!0);let l=()=>{M()};var u=K(),d=c(u),p=f(d),h=e=>{var t=H(),n=f(t);T(t),a(()=>x(n,`src`,F)),y(e,t)};b(p,e=>{R.menuContentVisible&&e(h)});var _=e(p,2),S=e(_,2);T(d);var C=e(d,2),w=e=>{var i=W(),o=f(i),c=f(o);r(c,21,()=>s.spaces,e=>e.id,(e,r)=>{var i=U(),o=f(i,!0);T(i);var s={};a(()=>{t(o,n(r).label),s!==(s=n(r).id)&&(i.value=(i.__value=n(r).id)??``)}),y(e,i)}),T(c),T(o),T(i),y(e,i)};b(C,e=>{R.menuContentVisible&&e(w)});var E=e(C,2),D=f(E);{let e=m(()=>`/${s.spaceid}`);V(D,{label:`Nouveau chat`,icon:`icon-plus`,get link(){return n(e)}})}var O=e(D,2);{let e=m(()=>`/${s.spaceid}/history`);V(O,{label:`Conversations`,icon:`icon-chat`,get link(){return n(e)}})}var k=e(O,2);{let e=m(()=>`/${s.spaceid}/tasks`);V(k,{label:`Planification`,icon:`icon-tasks`,get link(){return n(e)}})}var A=e(k,2);{let e=m(()=>`/${s.spaceid}/kb`);V(A,{label:`Connaissances`,icon:`icon-graduation-cap`,get link(){return n(e)}})}var j=e(A,2);{let e=m(()=>`/${s.spaceid}/settings`);V(j,{label:`Réglages`,icon:`icon-cog`,get link(){return n(e)}})}T(E);var N=e(E,2),P=f(N),I=t=>{var n=G(),r=e(f(n),4);T(n),o(`click`,r,l),y(t,n)},L=e=>{V(e,{label:`User`,icon:`icon-user`,link:`/profile`})};b(P,e=>{R.menuContentVisible?e(I):e(L,-1)}),T(N),o(`click`,_,function(...e){s.handleMenuDesktop?.apply(this,e)}),o(`click`,S,function(...e){s.handleMenuMobile?.apply(this,e)}),y(i,u),g()}i([`click`]);var J=s(``),Y=s(`

          `);function X(n,r){v(r,!0);let i=()=>{R.sidebarDesktopOpen=!R.sidebarDesktopOpen,R.sidebarDesktopOpen?setTimeout(()=>{R.menuContentVisible=R.sidebarDesktopOpen},200):R.menuContentVisible=R.sidebarDesktopOpen},o=()=>{R.sidebarMobileOpen=!R.sidebarMobileOpen,R.sidebarMobileOpen?setTimeout(()=>{R.menuContentVisible=R.sidebarMobileOpen},200):R.menuContentVisible=R.sidebarMobileOpen},s=()=>{R.menuContentVisible=window.innerWidth<640?R.sidebarMobileOpen:R.sidebarDesktopOpen};C(async()=>{s(),r.data.me?(j.user=r.data.me.user,O(j.user.theme),k(),j.status=`authenticated`):j.status=`unauthenticated`}),S(()=>{j.status==`unauthenticated`&&D(`/login`)});var c=Y();l(`resize`,d,s);var p=f(c);q(f(p),{get spaces(){return P.spaces},get spaceid(){return r.data.spaceid},handleMenuDesktop:i,handleMenuMobile:o}),T(p);var m=e(p,2),h=f(m),_=f(h),M=f(_),N=f(M),F=f(N),I=f(F,!0);T(F);var L=e(F,2),z=e=>{var t=J(),n=f(t);T(t),a(()=>x(n,`href`,A.data.back)),y(e,t)};b(L,e=>{A.data.back&&e(z)}),T(N),T(M),T(_);var B=e(_,2),V=f(B);u(V,()=>r.children),T(B),T(h),T(m),T(c),a(()=>{w(c,1,E([R.sidebarDesktopOpen?`desktopMenuOpen`:`desktopMenuClosed`,R.sidebarMobileOpen?`mobileMenuOpen`:`mobileMenuClosed`])),t(I,A.data.title)}),y(n,c),g()}export{X as component,I as universal}; \ No newline at end of file +import{$ as e,A as t,B as n,E as r,I as i,K as a,L as o,N as s,Q as c,R as l,T as u,X as d,Z as f,a as p,at as m,bt as h,dt as g,et as _,ft as v,j as y,k as b,m as x,q as S,r as C,v as w,vt as T,y as E}from"../chunks/DGrvnoUE.js";import{t as D}from"../chunks/BZuNOv8h.js";import"../chunks/xihTtKlq.js";import{n as O,t as k}from"../chunks/DTCALkcP.js";import{t as A}from"../chunks/ffLBjIeN.js";import"../chunks/CY9OlB4q.js";import{n as j,r as M}from"../chunks/DtfiK5fE.js";import{t as N}from"../chunks/zsRwiIdn.js";import{t as P}from"../chunks/Cyrg28w2.js";import{t as F}from"../chunks/BRXBpvt8.js";var I=h({load:()=>L}),L=async()=>{let e=await N.me();return P.spaces=e.teams,P.current||(P.current=P.spaces[0].id),{spaceid:P.current,me:e}},R=_({sidebarDesktopOpen:!0,sidebarMobileOpen:!1,menuContentVisible:!0}),z=s(` `),B=s(``);function V(n,r){v(r,!0);let i=p(r,`label`,3,``),s=p(r,`icon`,3,``),c=p(r,`link`,3,``),l=e=>{e.preventDefault(),R.sidebarMobileOpen&&(R.sidebarMobileOpen=!1,R.menuContentVisible=!1),D(c())};var u=B(),d=f(u),m=f(d),h=e(m,2),_=e=>{var n=z(),r=f(n,!0);T(n),a(()=>t(r,i())),y(e,n)};b(h,e=>{R.menuContentVisible&&e(_)}),T(d),T(u),a(()=>{x(d,`href`,c()),w(m,1,E([s()]))}),o(`click`,d,l),y(n,u),g()}i([`click`]);var H=s(`
          logo
          `),U=s(``),W=s(`
          `),G=s(`
          FM
          Fabien Masson
          `),K=s(`
          `,1);function q(i,s){v(s,!0);let l=()=>{M()};var u=K(),d=c(u),p=f(d),h=e=>{var t=H(),n=f(t);T(t),a(()=>x(n,`src`,F)),y(e,t)};b(p,e=>{R.menuContentVisible&&e(h)});var _=e(p,2),S=e(_,2);T(d);var C=e(d,2),w=e=>{var i=W(),o=f(i),c=f(o);r(c,21,()=>s.spaces,e=>e.id,(e,r)=>{var i=U(),o=f(i,!0);T(i);var s={};a(()=>{t(o,n(r).label),s!==(s=n(r).id)&&(i.value=(i.__value=n(r).id)??``)}),y(e,i)}),T(c),T(o),T(i),y(e,i)};b(C,e=>{R.menuContentVisible&&e(w)});var E=e(C,2),D=f(E);{let e=m(()=>`/${s.spaceid}`);V(D,{label:`Nouveau chat`,icon:`icon-plus`,get link(){return n(e)}})}var O=e(D,2);{let e=m(()=>`/${s.spaceid}/history`);V(O,{label:`Conversations`,icon:`icon-chat`,get link(){return n(e)}})}var k=e(O,2);{let e=m(()=>`/${s.spaceid}/tasks`);V(k,{label:`Planification`,icon:`icon-tasks`,get link(){return n(e)}})}var A=e(k,2);{let e=m(()=>`/${s.spaceid}/kb`);V(A,{label:`Connaissances`,icon:`icon-graduation-cap`,get link(){return n(e)}})}var j=e(A,2);{let e=m(()=>`/${s.spaceid}/settings`);V(j,{label:`Réglages`,icon:`icon-cog`,get link(){return n(e)}})}T(E);var N=e(E,2),P=f(N),I=t=>{var n=G(),r=e(f(n),4);T(n),o(`click`,r,l),y(t,n)},L=e=>{V(e,{label:`User`,icon:`icon-user`,link:`/profile`})};b(P,e=>{R.menuContentVisible?e(I):e(L,-1)}),T(N),o(`click`,_,function(...e){s.handleMenuDesktop?.apply(this,e)}),o(`click`,S,function(...e){s.handleMenuMobile?.apply(this,e)}),y(i,u),g()}i([`click`]);var J=s(``),Y=s(`

          `);function X(n,r){v(r,!0);let i=()=>{R.sidebarDesktopOpen=!R.sidebarDesktopOpen,R.sidebarDesktopOpen?setTimeout(()=>{R.menuContentVisible=R.sidebarDesktopOpen},200):R.menuContentVisible=R.sidebarDesktopOpen},o=()=>{R.sidebarMobileOpen=!R.sidebarMobileOpen,R.sidebarMobileOpen?setTimeout(()=>{R.menuContentVisible=R.sidebarMobileOpen},200):R.menuContentVisible=R.sidebarMobileOpen},s=()=>{R.menuContentVisible=window.innerWidth<640?R.sidebarMobileOpen:R.sidebarDesktopOpen};C(async()=>{s(),r.data.me?(j.user=r.data.me.user,O(j.user.theme),k(),j.status=`authenticated`):j.status=`unauthenticated`}),S(()=>{j.status==`unauthenticated`&&D(`/login`)});var c=Y();l(`resize`,d,s);var p=f(c);q(f(p),{get spaces(){return P.spaces},get spaceid(){return r.data.spaceid},handleMenuDesktop:i,handleMenuMobile:o}),T(p);var m=e(p,2),h=f(m),_=f(h),M=f(_),N=f(M),F=f(N),I=f(F,!0);T(F);var L=e(F,2),z=e=>{var t=J(),n=f(t);T(t),a(()=>x(n,`href`,A.data.back)),y(e,t)};b(L,e=>{A.data.back&&e(z)}),T(N),T(M),T(_);var B=e(_,2),V=f(B);u(V,()=>r.children),T(B),T(h),T(m),T(c),a(()=>{w(c,1,E([R.sidebarDesktopOpen?`desktopMenuOpen`:`desktopMenuClosed`,R.sidebarMobileOpen?`mobileMenuOpen`:`mobileMenuClosed`])),t(I,A.data.title)}),y(n,c),g()}export{X as component,I as universal}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/20.BwhsqgTX.js b/backend/internal/http/web/_app/immutable/nodes/20.CPbrVrB7.js similarity index 92% rename from backend/internal/http/web/_app/immutable/nodes/20.BwhsqgTX.js rename to backend/internal/http/web/_app/immutable/nodes/20.CPbrVrB7.js index 7f7a6e6..7c8abcc 100644 --- a/backend/internal/http/web/_app/immutable/nodes/20.BwhsqgTX.js +++ b/backend/internal/http/web/_app/immutable/nodes/20.CPbrVrB7.js @@ -1 +1 @@ -import{$ as e,I as t,K as n,L as r,N as i,R as a,Z as o,dt as s,et as c,ft as l,j as u,m as d,ot as f,p,u as m,vt as h}from"../chunks/DGrvnoUE.js";import{t as g}from"../chunks/Soo4K-rz.js";import"../chunks/xihTtKlq.js";import"../chunks/QHwlfjO8.js";import{t as _}from"../chunks/BRXBpvt8.js";import{n as v,t as y}from"../chunks/6mSXxE57.js";import{t as b}from"../chunks/D3MDK1zR.js";import{t as x}from"../chunks/CvbyM2Rc.js";var S=i(`
          logo

          Inscription

          `);function C(t,i){l(i,!0);let C=new v,w=c({email:``,firstname:``,lastname:``,password:``,verifPassword:``}),T=e=>{if(e.preventDefault(),C.clear(),b(w.email)||C.set(`email`,`Adresse email invalide !`),w.firstname||C.set(`firstname`,`Le prénom est obligatoire !`),w.lastname||C.set(`lastname`,`Le nom est obligatoire !`),w.password!==w.verifPassword&&C.set(`verifPassword`,`Les mots de pass ne correspondent pas.`),C.size==0){let e={method:`password`,email:w.email,firstname:w.firstname,lastname:w.lastname,password:w.password};x.register(e).then(()=>{g(`/`)}).catch(e=>{C.set(`submit`,`Erreur: `+e)})}};var E=S(),D=o(E),O=o(D),k=e(O,4),A=e(o(k),2);p(A),f(A,!0);var j=e(A,2);y(j,{key:`email`,get errors(){return C}});var M=e(j,4);p(M);var N=e(M,2);y(N,{key:`firstname`,get errors(){return C}});var P=e(N,4);p(P);var F=e(P,2);y(F,{key:`lastname`,get errors(){return C}});var I=e(F,4);p(I);var L=e(I,2);y(L,{key:`password`,get errors(){return C}});var R=e(L,4);p(R);var z=e(R,2);y(z,{key:`verifPassword`,get errors(){return C}});var B=e(z,4);y(B,{key:`submit`,get errors(){return C}}),h(k),h(D),h(E),n(()=>d(O,`src`,_)),a(`submit`,k,T),r(`change`,k,()=>{C.clear()}),m(A,()=>w.email,e=>w.email=e),m(M,()=>w.firstname,e=>w.firstname=e),m(P,()=>w.lastname,e=>w.lastname=e),m(I,()=>w.password,e=>w.password=e),m(R,()=>w.verifPassword,e=>w.verifPassword=e),u(t,E),s()}t([`change`]);export{C as component}; \ No newline at end of file +import{$ as e,I as t,K as n,L as r,N as i,R as a,Z as o,dt as s,et as c,ft as l,j as u,m as d,ot as f,p,u as m,vt as h}from"../chunks/DGrvnoUE.js";import{t as g}from"../chunks/BZuNOv8h.js";import"../chunks/xihTtKlq.js";import"../chunks/CY9OlB4q.js";import{t as _}from"../chunks/BRXBpvt8.js";import{n as v,t as y}from"../chunks/6mSXxE57.js";import{t as b}from"../chunks/D3MDK1zR.js";import{t as x}from"../chunks/BedKI9iq.js";var S=i(`
          logo

          Inscription

          `);function C(t,i){l(i,!0);let C=new v,w=c({email:``,firstname:``,lastname:``,password:``,verifPassword:``}),T=e=>{if(e.preventDefault(),C.clear(),b(w.email)||C.set(`email`,`Adresse email invalide !`),w.firstname||C.set(`firstname`,`Le prénom est obligatoire !`),w.lastname||C.set(`lastname`,`Le nom est obligatoire !`),w.password!==w.verifPassword&&C.set(`verifPassword`,`Les mots de pass ne correspondent pas.`),C.size==0){let e={method:`password`,email:w.email,firstname:w.firstname,lastname:w.lastname,password:w.password};x.register(e).then(()=>{g(`/`)}).catch(e=>{C.set(`submit`,`Erreur: `+e)})}};var E=S(),D=o(E),O=o(D),k=e(O,4),A=e(o(k),2);p(A),f(A,!0);var j=e(A,2);y(j,{key:`email`,get errors(){return C}});var M=e(j,4);p(M);var N=e(M,2);y(N,{key:`firstname`,get errors(){return C}});var P=e(N,4);p(P);var F=e(P,2);y(F,{key:`lastname`,get errors(){return C}});var I=e(F,4);p(I);var L=e(I,2);y(L,{key:`password`,get errors(){return C}});var R=e(L,4);p(R);var z=e(R,2);y(z,{key:`verifPassword`,get errors(){return C}});var B=e(z,4);y(B,{key:`submit`,get errors(){return C}}),h(k),h(D),h(E),n(()=>d(O,`src`,_)),a(`submit`,k,T),r(`change`,k,()=>{C.clear()}),m(A,()=>w.email,e=>w.email=e),m(M,()=>w.firstname,e=>w.firstname=e),m(P,()=>w.lastname,e=>w.lastname=e),m(I,()=>w.password,e=>w.password=e),m(R,()=>w.verifPassword,e=>w.verifPassword=e),u(t,E),s()}t([`change`]);export{C as component}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/3.7A57L7YY.js b/backend/internal/http/web/_app/immutable/nodes/3.CHETzYMH.js similarity index 66% rename from backend/internal/http/web/_app/immutable/nodes/3.7A57L7YY.js rename to backend/internal/http/web/_app/immutable/nodes/3.CHETzYMH.js index e1f6f58..cc55a79 100644 --- a/backend/internal/http/web/_app/immutable/nodes/3.7A57L7YY.js +++ b/backend/internal/http/web/_app/immutable/nodes/3.CHETzYMH.js @@ -1 +1 @@ -import{bt as e,dt as t,ft as n}from"../chunks/DGrvnoUE.js";import{t as r}from"../chunks/Soo4K-rz.js";import"../chunks/xihTtKlq.js";import"../chunks/QHwlfjO8.js";import{t as i}from"../chunks/Cyrg28w2.js";var a=e({load:()=>o}),o=async({parent:e})=>{let{me:t}=await e();return{me:t}};function s(e,a){n(a,!0),r(`/${i.current}/`,{replaceState:!0}),t()}export{s as component,a as universal}; \ No newline at end of file +import{bt as e,dt as t,ft as n}from"../chunks/DGrvnoUE.js";import{t as r}from"../chunks/BZuNOv8h.js";import"../chunks/xihTtKlq.js";import"../chunks/CY9OlB4q.js";import{t as i}from"../chunks/Cyrg28w2.js";var a=e({load:()=>o}),o=async({parent:e})=>{let{me:t}=await e();return{me:t}};function s(e,a){n(a,!0),r(`/${i.current}/`,{replaceState:!0}),t()}export{s as component,a as universal}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/4.Dd2s_2MN.js b/backend/internal/http/web/_app/immutable/nodes/4.DkQEi_Qd.js similarity index 76% rename from backend/internal/http/web/_app/immutable/nodes/4.Dd2s_2MN.js rename to backend/internal/http/web/_app/immutable/nodes/4.DkQEi_Qd.js index 26b3778..ae93ac8 100644 --- a/backend/internal/http/web/_app/immutable/nodes/4.Dd2s_2MN.js +++ b/backend/internal/http/web/_app/immutable/nodes/4.DkQEi_Qd.js @@ -1 +1 @@ -import{B as e,G as t,N as n,R as r,Z as i,_t as a,b as o,bt as s,dt as c,et as l,ft as u,it as d,j as f,nt as p,p as m,u as h,vt as g}from"../chunks/DGrvnoUE.js";import{t as _}from"../chunks/Soo4K-rz.js";import"../chunks/xihTtKlq.js";import"../chunks/QHwlfjO8.js";import{t as v}from"../chunks/BYWIgY43.js";import{t as y}from"../chunks/guSkOB4x.js";var b=s({load:()=>x}),x=({params:e})=>({title:`Nouvelle conversation`,spaceId:e.space}),S=n(`
          `);function C(n,s){u(s,!0);let b=l({}),x=d(``),C=async()=>{y.createChat(s.data.spaceId,b).then(t=>{_(`/${s.data.spaceId}/${t.id}`,{state:{prompt:e(x)}})}).catch(e=>console.log(e))};var w=S(),T=i(w),E=i(T),D=i(E);m(D),t(()=>h(D,()=>e(x),e=>p(x,e))),o(D,e=>v?.(e)),a(2),g(E),g(T),g(w),r(`submit`,E,C),f(n,w),c()}export{C as component,b as universal}; \ No newline at end of file +import{B as e,G as t,N as n,R as r,Z as i,_t as a,b as o,bt as s,dt as c,et as l,ft as u,it as d,j as f,nt as p,p as m,u as h,vt as g}from"../chunks/DGrvnoUE.js";import{t as _}from"../chunks/BZuNOv8h.js";import"../chunks/xihTtKlq.js";import"../chunks/CY9OlB4q.js";import{t as v}from"../chunks/BYWIgY43.js";import{t as y}from"../chunks/BYYkuYgk.js";var b=s({load:()=>x}),x=({params:e})=>({title:`Nouvelle conversation`,spaceId:e.space}),S=n(`
          `);function C(n,s){u(s,!0);let b=l({}),x=d(``),C=async()=>{y.createChat(s.data.spaceId,b).then(t=>{_(`/${s.data.spaceId}/${t.id}`,{state:{prompt:e(x)}})}).catch(e=>console.log(e))};var w=S(),T=i(w),E=i(T),D=i(E);m(D),t(()=>h(D,()=>e(x),e=>p(x,e))),o(D,e=>v?.(e)),a(2),g(E),g(T),g(w),r(`submit`,E,C),f(n,w),c()}export{C as component,b as universal}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/5.At5j5jjs.js b/backend/internal/http/web/_app/immutable/nodes/5.BgmoPtaF.js similarity index 98% rename from backend/internal/http/web/_app/immutable/nodes/5.At5j5jjs.js rename to backend/internal/http/web/_app/immutable/nodes/5.BgmoPtaF.js index 13e771a..b1723ed 100644 --- a/backend/internal/http/web/_app/immutable/nodes/5.At5j5jjs.js +++ b/backend/internal/http/web/_app/immutable/nodes/5.BgmoPtaF.js @@ -1,4 +1,4 @@ -import{$ as e,A as t,B as n,E as r,F as i,G as a,H as o,K as s,M as c,N as l,O as u,Q as d,R as f,S as p,T as m,U as h,Z as g,_,_t as v,a as y,at as b,b as x,bt as S,c as C,d as w,dt as ee,et as te,f as T,ft as ne,it as E,j as D,k as O,lt as k,m as A,nt as j,o as re,p as ie,pt as ae,q as M,r as N,s as P,st as oe,u as se,ut as ce,v as le,vt as F,w as I,y as ue,yt as L,z as R}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";import{t as de}from"../chunks/5WAfNqs_.js";import{t as fe}from"../chunks/BYWIgY43.js";import{t as pe}from"../chunks/guSkOB4x.js";import"../chunks/B6JECYQD.js";var me=S({load:()=>he}),he=async({params:e})=>{let t=await pe.getChat(e.space,e.conversation);return{title:t.chat.title,spaceId:e.space,chatId:e.conversation,chatWithMessage:t}},ge=l(``);function _e(e,t){var n=ge();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ve=l(``);function ye(e,t){var n=ve();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var be=l(`
          `);function xe(e,t){var n=be();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Se=l(`
          `);function Ce(e,t){var n=Se();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var we=l(``);function Te(e,t){var n=we();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Ee=l(``);function De(e,t){var n=Ee();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Oe=l(``);function ke(e,t){var n=Oe();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Ae=l(``);function je(e,t){var n=Ae();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Me=l(``);function Ne(e,t){var n=Me();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Pe=l(`
          `);function Fe(e,t){var n=Pe();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Ie=l(`
          `);function Le(e,t){let n=y(t,`attributes`,19,()=>({}));var r=Ie();T(r,()=>({...n()})),D(e,r)}var Re=l(``);function ze(e,t){var n=Re();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Be=l(``);function Ve(e,t){var n=Be();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var He=l(``);function Ue(e,t){var n=He();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var We=l(``);function Ge(e,t){var n=We();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Ke=l(``);function qe(e,t){var n=Ke();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Je=l(`
          `);function Ye(e,t){var n=Je();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Xe=l(``);function Ze(e,t){var n=Xe();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Qe=l(`
          `);function $e(e,t){var n=Qe();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var et=l(``);function tt(e,t){var n=et();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var nt=l(``);function rt(e,t){var n=nt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var it=l(`
          `);function at(e,t){var n=it();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ot=l(`
          `);function st(e,t){var n=ot();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ct=l(`
          `);function lt(e,t){var n=ct();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ut=l(``);function dt(e,t){var n=ut();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ft=l(``);function pt(e,t){var n=ft();T(n,()=>({...t.attributes})),R(n),D(e,n)}var mt=l(`
          `);function ht(e,t){var n=mt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var gt=l(`
          `);function _t(e,t){var n=gt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var vt=l(`
          `);function yt(e,t){var n=vt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var bt=l(`

          `);function xt(e,t){var n=bt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var St=l(`

          `);function Ct(e,t){var n=St();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var wt=l(`

          `);function Tt(e,t){var n=wt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Et=l(`

          `);function Dt(e,t){var n=Et();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Ot=l(`
          `);function kt(e,t){var n=Ot();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var At=l(`
          `);function jt(e,t){var n=At();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Mt=l(`
          `);function Nt(e,t){var n=Mt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Pt=l(`
          `);function Ft(e,t){var n=Pt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var It=l(`
          `);function Lt(e,t){var n=It();T(n,()=>({...t.attributes})),D(e,n)}var Rt=l(``);function zt(e,t){var n=Rt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Bt=l(``);function Vt(e,t){var n=Bt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),R(n),D(e,n)}var Ht=l(``);function Ut(e,t){var n=Ht();T(n,()=>({...t.attributes})),R(n),D(e,n)}var Wt=l(``);function Gt(e,t){var n=Wt();T(n,()=>({...t.attributes}),void 0,void 0,void 0,void 0,!0),D(e,n)}var Kt=l(``);function qt(e,t){var n=Kt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Jt=l(``);function Yt(e,t){var n=Jt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Xt=l(``);function Zt(e,t){var n=Xt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Qt=l(`
        • `);function $t(e,t){var n=Qt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var en=l(`
          `);function tn(e,t){var n=en();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var nn=l(``);function rn(e,t){var n=nn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var an=l(``);function on(e,t){var n=an();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var sn=l(``);function cn(e,t){var n=sn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ln=l(``);function un(e,t){var n=ln();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var dn=l(`
          `);function fn(e,t){var n=dn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var pn=l(``,1),mn=l(``);function hn(e,t){var n=mn();T(n,()=>({...t.attributes})),w(n,()=>{var e=g(n),r=pn(),i=d(r);m(i,()=>t.children??L),D(e,r)}),D(e,n)}var gn=l(``,1),_n=l(``);function vn(e,t){var n=_n();T(n,()=>({...t.attributes})),w(n,()=>{var e=g(n),r=gn(),i=d(r);m(i,()=>t.children??L),D(e,r)}),D(e,n)}var yn=l(``);function bn(e,t){var n=yn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var xn=l(`

          `);function Sn(e,t){var n=xn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Cn=l(``);function wn(e,t){var n=Cn();T(n,()=>({...t.attributes})),D(e,n)}var Tn=l(``);function En(e,t){var n=Tn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Dn=l(`
          `);function On(e,t){var n=Dn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var kn=l(``);function An(e,t){var n=kn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var jn=l(``);function Mn(e,t){var n=jn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Nn=l(``);function Pn(e,t){var n=Nn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Fn=l(`
          `);function In(e,t){var n=Fn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Ln=l(``,1),Rn=l(``);function zn(e,t){var n=Rn();T(n,()=>({...t.attributes})),w(n,()=>{var e=g(n),r=Ln(),i=d(r);m(i,()=>t.children??L),D(e,r)}),D(e,n)}var Bn=l(``);function Vn(e,t){var n=Bn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Hn=l(``);function Un(e,t){var n=Hn();T(n,()=>({...t.attributes})),D(e,n)}var Wn=l(``);function Gn(e,t){var n=Wn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Kn=l(``);function qn(e,t){var n=Kn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Jn=l(``);function Yn(e,t){var n=Jn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Xn=l(``);function Zn(e,t){var n=Xn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Qn=l(``);function $n(e,t){var n=Qn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var er=l(`
          `);function tr(e,t){var n=er();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var nr=l(``);function rr(e,t){var n=nr();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ir=l(``);function ar(e,t){var n=ir();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var or=l(``);function sr(e,t){var n=or();oe(n),T(n,()=>({...t.attributes})),D(e,n)}var cr=l(``);function lr(e,t){var n=cr();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ur=l(``);function dr(e,t){var n=ur();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var fr=l(``);function pr(e,t){var n=fr();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var mr=l(``);function hr(e,t){var n=mr();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var gr=l(``);function _r(e,t){var n=gr();T(n,()=>({...t.attributes})),R(n),D(e,n)}var vr=l(``);function yr(e,t){var n=vr();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var br=l(`
          `);function xr(e,t){var n=br();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Sr=l(``);function Cr(e,t){var n=Sr();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var wr={a:_e,abbr:ye,address:xe,article:Ce,aside:Te,audio:De,b:ke,bdi:je,bdo:Ne,blockquote:Fe,br:Le,button:ze,canvas:Ve,cite:Ue,code:Ge,datalist:qe,dd:Ye,del:Ze,details:$e,dfn:tt,dialog:rt,div:at,dl:st,dt:lt,em:dt,embed:pt,fieldset:ht,footer:_t,form:yt,h1:xt,h2:Ct,h3:Tt,h4:Dt,h5:kt,h6:jt,header:Nt,hgroup:Ft,hr:Lt,i:zt,iframe:Vt,img:Ut,input:Gt,kbd:qt,label:Yt,legend:Zt,li:$t,main:tn,mark:rn,menu:on,meter:cn,nav:un,ol:fn,optgroup:hn,option:vn,output:bn,p:Sn,param:wn,picture:En,pre:On,progress:An,s:Mn,samp:Pn,section:In,select:zn,small:Vn,source:Un,span:Gn,strong:qn,sub:Yn,summary:Zn,sup:$n,table:tr,tbody:rr,td:ar,textarea:sr,tfoot:lr,th:dr,thead:pr,tr:hr,track:_r,u:yr,ul:xr,var:Cr},Tr=new Set([`br`,`hr`,`img`,`input`,`link`,`meta`,`area`,`base`,`col`,`embed`,`keygen`,`param`,`source`,`track`,`wbr`]),Er=e=>Tr.has(e.toLowerCase()),Dr=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g,Or=Object.hasOwnProperty,kr=class{constructor(){this.occurrences,this.reset()}slug(e,t){let n=this,r=Ar(e,t===!0),i=r;for(;Or.call(n.occurrences,r);)n.occurrences[i]++,r=i+`-`+n.occurrences[i];return n.occurrences[r]=0,r}reset(){this.occurrences=Object.create(null)}};function Ar(e,t){return typeof e==`string`?(t||(e=e.toLowerCase()),e.replace(Dr,``).replace(/ /g,`-`)):``}function jr(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Mr=jr();function Nr(e){Mr=e}var Pr={exec:()=>null};function Fr(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function z(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(B.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var Ir=((e=``)=>{try{return!!RegExp(`(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,numericCharacterReference:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));/g,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Fr(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:Fr(e=>RegExp(`^ {0,${e}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),fencesBeginRegex:Fr(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:Fr(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:Fr(e=>RegExp(`^ {0,${e}}(?:)|<(?:script|pre|style|textarea|!--))`,`i`)),blockquoteBeginRegex:Fr(e=>RegExp(`^ {0,${e}}>`))},Lr=/^(?:[ \t]*(?:\n|$))+/,Rr=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,zr=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Br=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Vr=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Hr=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Ur=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Wr=z(Ur).replace(/bull/g,Hr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),Gr=z(Ur).replace(/bull/g,Hr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Kr=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,qr=/^[^\n]+/,Jr=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Yr=z(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,Jr).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Xr=z(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,Hr).getRegex(),Zr=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,Qr=/|$))/,$r=z(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|[^\\n]*\\n*|$)|[^\\n]*\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,Qr).replace(`tag`,Zr).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ei=e=>z(Kr).replace(`hr`,Br).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,e).replace(`html`,`)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Zr).getRegex(),ti=ei(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),ni=ei(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),ri={blockquote:z(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,ni).getRegex(),code:Rr,def:Yr,fences:zr,heading:Vr,hr:Br,html:$r,lheading:Wr,list:Xr,newline:Lr,paragraph:ti,table:Pr,text:qr},ii=z(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,Br).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Zr).getRegex(),ai={...ri,lheading:Gr,table:ii,paragraph:z(Kr).replace(`hr`,Br).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,ii).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,`)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Zr).getRegex()},oi={...ri,html:z(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,Qr).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Pr,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:z(Kr).replace(`hr`,Br).replace(`heading`,` *#{1,6} *[^ +import{$ as e,A as t,B as n,E as r,F as i,G as a,H as o,K as s,M as c,N as l,O as u,Q as d,R as f,S as p,T as m,U as h,Z as g,_,_t as v,a as y,at as b,b as x,bt as S,c as C,d as w,dt as ee,et as te,f as T,ft as ne,it as E,j as D,k as O,lt as k,m as A,nt as j,o as re,p as ie,pt as ae,q as M,r as N,s as P,st as oe,u as se,ut as ce,v as le,vt as F,w as I,y as ue,yt as L,z as R}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";import{t as de}from"../chunks/ffLBjIeN.js";import{t as fe}from"../chunks/BYWIgY43.js";import{t as pe}from"../chunks/BYYkuYgk.js";import"../chunks/B6JECYQD.js";var me=S({load:()=>he}),he=async({params:e})=>{let t=await pe.getChat(e.space,e.conversation);return{title:t.chat.title,spaceId:e.space,chatId:e.conversation,chatWithMessage:t}},ge=l(``);function _e(e,t){var n=ge();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ve=l(``);function ye(e,t){var n=ve();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var be=l(`
          `);function xe(e,t){var n=be();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Se=l(`
          `);function Ce(e,t){var n=Se();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var we=l(``);function Te(e,t){var n=we();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Ee=l(``);function De(e,t){var n=Ee();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Oe=l(``);function ke(e,t){var n=Oe();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Ae=l(``);function je(e,t){var n=Ae();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Me=l(``);function Ne(e,t){var n=Me();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Pe=l(`
          `);function Fe(e,t){var n=Pe();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Ie=l(`
          `);function Le(e,t){let n=y(t,`attributes`,19,()=>({}));var r=Ie();T(r,()=>({...n()})),D(e,r)}var Re=l(``);function ze(e,t){var n=Re();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Be=l(``);function Ve(e,t){var n=Be();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var He=l(``);function Ue(e,t){var n=He();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var We=l(``);function Ge(e,t){var n=We();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Ke=l(``);function qe(e,t){var n=Ke();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Je=l(`
          `);function Ye(e,t){var n=Je();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Xe=l(``);function Ze(e,t){var n=Xe();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Qe=l(`
          `);function $e(e,t){var n=Qe();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var et=l(``);function tt(e,t){var n=et();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var nt=l(``);function rt(e,t){var n=nt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var it=l(`
          `);function at(e,t){var n=it();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ot=l(`
          `);function st(e,t){var n=ot();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ct=l(`
          `);function lt(e,t){var n=ct();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ut=l(``);function dt(e,t){var n=ut();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ft=l(``);function pt(e,t){var n=ft();T(n,()=>({...t.attributes})),R(n),D(e,n)}var mt=l(`
          `);function ht(e,t){var n=mt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var gt=l(`
          `);function _t(e,t){var n=gt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var vt=l(`
          `);function yt(e,t){var n=vt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var bt=l(`

          `);function xt(e,t){var n=bt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var St=l(`

          `);function Ct(e,t){var n=St();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var wt=l(`

          `);function Tt(e,t){var n=wt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Et=l(`

          `);function Dt(e,t){var n=Et();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Ot=l(`
          `);function kt(e,t){var n=Ot();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var At=l(`
          `);function jt(e,t){var n=At();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Mt=l(`
          `);function Nt(e,t){var n=Mt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Pt=l(`
          `);function Ft(e,t){var n=Pt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var It=l(`
          `);function Lt(e,t){var n=It();T(n,()=>({...t.attributes})),D(e,n)}var Rt=l(``);function zt(e,t){var n=Rt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Bt=l(``);function Vt(e,t){var n=Bt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),R(n),D(e,n)}var Ht=l(``);function Ut(e,t){var n=Ht();T(n,()=>({...t.attributes})),R(n),D(e,n)}var Wt=l(``);function Gt(e,t){var n=Wt();T(n,()=>({...t.attributes}),void 0,void 0,void 0,void 0,!0),D(e,n)}var Kt=l(``);function qt(e,t){var n=Kt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Jt=l(``);function Yt(e,t){var n=Jt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Xt=l(``);function Zt(e,t){var n=Xt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Qt=l(`
        • `);function $t(e,t){var n=Qt();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var en=l(`
          `);function tn(e,t){var n=en();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var nn=l(``);function rn(e,t){var n=nn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var an=l(``);function on(e,t){var n=an();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var sn=l(``);function cn(e,t){var n=sn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ln=l(``);function un(e,t){var n=ln();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var dn=l(`
          `);function fn(e,t){var n=dn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var pn=l(``,1),mn=l(``);function hn(e,t){var n=mn();T(n,()=>({...t.attributes})),w(n,()=>{var e=g(n),r=pn(),i=d(r);m(i,()=>t.children??L),D(e,r)}),D(e,n)}var gn=l(``,1),_n=l(``);function vn(e,t){var n=_n();T(n,()=>({...t.attributes})),w(n,()=>{var e=g(n),r=gn(),i=d(r);m(i,()=>t.children??L),D(e,r)}),D(e,n)}var yn=l(``);function bn(e,t){var n=yn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var xn=l(`

          `);function Sn(e,t){var n=xn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Cn=l(``);function wn(e,t){var n=Cn();T(n,()=>({...t.attributes})),D(e,n)}var Tn=l(``);function En(e,t){var n=Tn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Dn=l(`
          `);function On(e,t){var n=Dn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var kn=l(``);function An(e,t){var n=kn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var jn=l(``);function Mn(e,t){var n=jn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Nn=l(``);function Pn(e,t){var n=Nn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Fn=l(`
          `);function In(e,t){var n=Fn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Ln=l(``,1),Rn=l(``);function zn(e,t){var n=Rn();T(n,()=>({...t.attributes})),w(n,()=>{var e=g(n),r=Ln(),i=d(r);m(i,()=>t.children??L),D(e,r)}),D(e,n)}var Bn=l(``);function Vn(e,t){var n=Bn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Hn=l(``);function Un(e,t){var n=Hn();T(n,()=>({...t.attributes})),D(e,n)}var Wn=l(``);function Gn(e,t){var n=Wn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Kn=l(``);function qn(e,t){var n=Kn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Jn=l(``);function Yn(e,t){var n=Jn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Xn=l(``);function Zn(e,t){var n=Xn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Qn=l(``);function $n(e,t){var n=Qn();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var er=l(`
          `);function tr(e,t){var n=er();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var nr=l(``);function rr(e,t){var n=nr();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ir=l(``);function ar(e,t){var n=ir();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var or=l(``);function sr(e,t){var n=or();oe(n),T(n,()=>({...t.attributes})),D(e,n)}var cr=l(``);function lr(e,t){var n=cr();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var ur=l(``);function dr(e,t){var n=ur();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var fr=l(``);function pr(e,t){var n=fr();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var mr=l(``);function hr(e,t){var n=mr();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var gr=l(``);function _r(e,t){var n=gr();T(n,()=>({...t.attributes})),R(n),D(e,n)}var vr=l(``);function yr(e,t){var n=vr();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var br=l(`
          `);function xr(e,t){var n=br();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var Sr=l(``);function Cr(e,t){var n=Sr();T(n,()=>({...t.attributes}));var r=g(n);m(r,()=>t.children??L),F(n),D(e,n)}var wr={a:_e,abbr:ye,address:xe,article:Ce,aside:Te,audio:De,b:ke,bdi:je,bdo:Ne,blockquote:Fe,br:Le,button:ze,canvas:Ve,cite:Ue,code:Ge,datalist:qe,dd:Ye,del:Ze,details:$e,dfn:tt,dialog:rt,div:at,dl:st,dt:lt,em:dt,embed:pt,fieldset:ht,footer:_t,form:yt,h1:xt,h2:Ct,h3:Tt,h4:Dt,h5:kt,h6:jt,header:Nt,hgroup:Ft,hr:Lt,i:zt,iframe:Vt,img:Ut,input:Gt,kbd:qt,label:Yt,legend:Zt,li:$t,main:tn,mark:rn,menu:on,meter:cn,nav:un,ol:fn,optgroup:hn,option:vn,output:bn,p:Sn,param:wn,picture:En,pre:On,progress:An,s:Mn,samp:Pn,section:In,select:zn,small:Vn,source:Un,span:Gn,strong:qn,sub:Yn,summary:Zn,sup:$n,table:tr,tbody:rr,td:ar,textarea:sr,tfoot:lr,th:dr,thead:pr,tr:hr,track:_r,u:yr,ul:xr,var:Cr},Tr=new Set([`br`,`hr`,`img`,`input`,`link`,`meta`,`area`,`base`,`col`,`embed`,`keygen`,`param`,`source`,`track`,`wbr`]),Er=e=>Tr.has(e.toLowerCase()),Dr=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g,Or=Object.hasOwnProperty,kr=class{constructor(){this.occurrences,this.reset()}slug(e,t){let n=this,r=Ar(e,t===!0),i=r;for(;Or.call(n.occurrences,r);)n.occurrences[i]++,r=i+`-`+n.occurrences[i];return n.occurrences[r]=0,r}reset(){this.occurrences=Object.create(null)}};function Ar(e,t){return typeof e==`string`?(t||(e=e.toLowerCase()),e.replace(Dr,``).replace(/ /g,`-`)):``}function jr(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Mr=jr();function Nr(e){Mr=e}var Pr={exec:()=>null};function Fr(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function z(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(B.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var Ir=((e=``)=>{try{return!!RegExp(`(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,numericCharacterReference:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));/g,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Fr(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:Fr(e=>RegExp(`^ {0,${e}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),fencesBeginRegex:Fr(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:Fr(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:Fr(e=>RegExp(`^ {0,${e}}(?:)|<(?:script|pre|style|textarea|!--))`,`i`)),blockquoteBeginRegex:Fr(e=>RegExp(`^ {0,${e}}>`))},Lr=/^(?:[ \t]*(?:\n|$))+/,Rr=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,zr=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Br=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Vr=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Hr=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Ur=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Wr=z(Ur).replace(/bull/g,Hr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),Gr=z(Ur).replace(/bull/g,Hr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Kr=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,qr=/^[^\n]+/,Jr=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Yr=z(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,Jr).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Xr=z(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,Hr).getRegex(),Zr=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,Qr=/|$))/,$r=z(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|[^\\n]*\\n*|$)|[^\\n]*\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,Qr).replace(`tag`,Zr).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ei=e=>z(Kr).replace(`hr`,Br).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,e).replace(`html`,`)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Zr).getRegex(),ti=ei(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),ni=ei(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),ri={blockquote:z(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,ni).getRegex(),code:Rr,def:Yr,fences:zr,heading:Vr,hr:Br,html:$r,lheading:Wr,list:Xr,newline:Lr,paragraph:ti,table:Pr,text:qr},ii=z(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,Br).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Zr).getRegex(),ai={...ri,lheading:Gr,table:ii,paragraph:z(Kr).replace(`hr`,Br).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,ii).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,`)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Zr).getRegex()},oi={...ri,html:z(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,Qr).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Pr,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:z(Kr).replace(`hr`,Br).replace(`heading`,` *#{1,6} *[^ ]`).replace(`lheading`,Wr).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},si=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ci=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,li=/^( {2,}|\\)\n(?!\s*$)[ \t]*/,ui=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,Ir?"(?`+)[^`]+\k(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),bi=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,xi=z(bi,`u`).replace(/punct/g,di).getRegex(),Si=z(bi,`u`).replace(/punct/g,gi).getRegex(),Ci=z(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,`u`).replace(/openQuote/g,hi).replace(/punct/g,di).getRegex(),wi=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,Ti=z(wi,`gu`).replace(/notPunctSpace/g,pi).replace(/punctSpace/g,fi).replace(/punct/g,di).getRegex(),Ei=z(wi,`gu`).replace(/notPunctSpace/g,vi).replace(/punctSpace/g,_i).replace(/punct/g,gi).getRegex(),Di=z(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,pi).replace(/punctSpace/g,fi).replace(/punct/g,di).getRegex(),Oi=z(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,pi).replace(/punctSpace/g,fi).replace(/punct/g,di).getRegex(),ki=z(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,pi).replace(/punctSpace/g,fi).replace(/punct/g,di).getRegex(),Ai=z(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,di).getRegex(),ji=z(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,pi).replace(/punctSpace/g,fi).replace(/punct/g,di).getRegex(),Mi=z(/\\(punct)/,`gu`).replace(/punct/g,di).getRegex(),Ni=z(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Pi=z(Qr).replace(`(?:-->|$)`,`-->`).getRegex(),Fi=z(`^comment|^|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^`).replace(`comment`,Pi).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Ii=/\[(?:\\[\s\S]|[^\[\]\\])*\]/,Li=z(/(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/).replace(`brackets`,Ii).getRegex(),Ri=z(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,Li).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),zi=z(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Li).replace(`ref`,Jr).getRegex(),Bi=z(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,Jr).getRegex(),Vi=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\]){1,999}/,Hi=z(/(?:[^\[\]\\`]*(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\]))){0,999}?[^\[\]\\`]*?/).replace(`brackets`,Ii).getRegex(),Ui=z(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,z(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Hi).replace(`ref`,Vi).getRegex()).replace(`nolink`,z(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,Vi).getRegex()).getRegex(),Wi=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Gi=z(/(?:mailto:email|xmpp:email(?:\/[A-Za-z0-9@.]+)?)/).replace(/email/g,/[A-Za-z0-9._+-]+@[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),Ki={_backpedal:Pr,anyPunctuation:Mi,autolink:Ni,blockSkip:yi,br:li,code:ci,del:Pr,delLDelim:Pr,delRDelim:Pr,emStrongLDelim:xi,emStrongRDelimAst:Ti,emStrongRDelimUnd:Oi,escape:si,link:Ri,nolink:Bi,punctuation:mi,reflink:zi,reflinkSearch:Ui,tag:Fi,text:ui,url:Pr},qi={...Ki,emStrongLDelim:Ci,emStrongRDelimAst:Di,emStrongRDelimUnd:ki,link:z(/^!?\[(label)\]\((.*?)\)/).replace(`label`,Li).getRegex(),reflink:z(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,Li).getRegex()},Ji={...Ki,emStrongRDelimAst:Ei,emStrongLDelim:Si,delLDelim:Ai,delRDelim:ji,url:z(/^emailProtocol|^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`emailProtocol`,Gi).replace(`protocol`,Wi).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:z(/^(?:[^a-zA-Z0-9](?=emailProtocol)|(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":`>`,'"':`"`,"'":`'`},$i=e=>Qi[e];function V(e,t){if(t){if(B.escapeTest.test(e))return e.replace(B.escapeReplace,$i)}else if(B.escapeTestNoEncode.test(e))return e.replace(B.escapeReplaceNoEncode,$i);return e}function ea(e){return e.replace(B.numericCharacterReference,(e,t,n)=>{let r=t===void 0?Number.parseInt(n,16):Number.parseInt(t,10);return r===0||r>1114111||r>=55296&&r<=57343?`�`:String.fromCodePoint(r)})}function ta(e){try{e=encodeURI(e).replace(B.percentDecode,`%`)}catch{return null}return e}function na(e,t){let n=e.replace(B.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(B.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length=0&&B.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join(` `)}function aa(e){return e.trim().toLowerCase().toUpperCase().toLowerCase()}function oa(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r0?-2:-1}function sa(e,t=0){let n=t,r=``;for(let t of e)if(t===` `){let e=4-n%4;r+=` `.repeat(e),n+=e}else r+=t,n++;return r}function ca(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`),c=e[0].charAt(0)===`!`;r.state.inLink=!0;let l=r.state.linkEmitted,u=r.state.inRawBlock;r.state.linkEmitted=!1;let d=r.inlineTokens(s),f=r.state.linkEmitted;if(r.state.linkEmitted=l,r.state.inLink=!1,!c){if(f){r.state.inRawBlock=u;return}r.state.linkEmitted=!0}return{type:c?`image`:`link`,raw:n,href:a,title:o,text:s,tokens:d}}function la(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(` @@ -69,4 +69,4 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`

          An error `))return!0;switch(e.type){case`heading`:case`hr`:return e.raw.endsWith(` `);default:return!1}};hasPotentialReferenceUse=e=>!e.includes(`[`)||!e.includes(`]`)?!1:pc.test(e)||mc.test(e);hasPotentialReferenceUseOutsideDefinitions=e=>{if(!e.includes(`[`)||!e.includes(`]`))return!1;for(let t of e.split(` `))if(!hc.test(t)&&this.hasPotentialReferenceUse(t))return!0;return!1};hasReferenceDefinition=e=>!e.includes(`[`)||!e.includes(`]`)?!1:hc.test(e);appendIntroducesMatch=(e,t)=>{if(t(e.slice(this.prevSource.length)))return!0;let n=this.prevSource.lastIndexOf(` -`)+1;return!t(this.prevSource.slice(n))&&t(e.slice(n))};isAppendOnlyUpdate=e=>this.prevSource!==``&&e.startsWith(this.prevSource);hasNewReferenceDefinition=e=>e.startsWith(this.prevSource)?this.appendIntroducesMatch(e,this.hasReferenceDefinition):!1;appendedDefinitionInvalidatesTail=e=>this.prevHasPotentialReferenceUse&&this.hasNewReferenceDefinition(e);canUseTailWindow=(e,t,n=this.isAppendOnlyUpdate(e),r=this.appendedDefinitionInvalidatesTail(e))=>{if(this.tailWindowDisabled||this.prevSource===``||this.prevTokens.length===0||!n||t.reparseOffset<=0||r)return!1;if(this.prevHasReferenceDefinition){let n=e.slice(t.reparseOffset);if(this.hasPotentialReferenceUseOutsideDefinitions(n))return!1}return!0};parseSource=(e,t,n,r)=>{if(!this.canUseTailWindow(e,t,n,r))return{tokens:$s(e,this.options,!1),tailTokens:[],usedTailWindow:!1};let i=$s(e.slice(t.reparseOffset),this.options,!1);return{tokens:[...this.prevTokens.slice(0,t.prefixCount),...i],tailTokens:i,usedTailWindow:!0}};hasAnyHtmlSpanMismatch=e=>e.some(this.hasHtmlSpanMismatch);getNextTailWindowBoundary=(e,t,n)=>{if(e.length===0||n)return{prefixCount:0,reparseOffset:0};let r=e[e.length-1];return this.isStableAtSourceEnd(r)?{prefixCount:e.length,reparseOffset:t}:{prefixCount:e.length-1,reparseOffset:t-this.getTokenSourceLength(r)}};updateCachedState=(e,t,n,r)=>{let i=t.usedTailWindow?this.prevHasHtmlSpanMismatch||this.hasAnyHtmlSpanMismatch(t.tailTokens):this.hasAnyHtmlSpanMismatch(t.tokens);this.prevHasPotentialReferenceUse=n?this.prevHasPotentialReferenceUse||this.appendIntroducesMatch(e,this.hasPotentialReferenceUseOutsideDefinitions):this.hasPotentialReferenceUseOutsideDefinitions(e),this.prevHasReferenceDefinition=n?this.prevHasReferenceDefinition||r:this.hasReferenceDefinition(e),this.prevSource=e,this.prevTokens=t.tokens,this.prevHasHtmlSpanMismatch=i,this.prevTailWindowBoundary=this.getNextTailWindowBoundary(t.tokens,e.length,i)};isReferenceSensitiveUpdate=(e,t,n)=>t?n:(this.prevHasReferenceDefinition||this.hasReferenceDefinition(e))&&(this.hasPotentialReferenceUse(this.prevSource)||this.hasPotentialReferenceUse(e));update=e=>{let t=this.getTailWindowBoundary(),n=this.isAppendOnlyUpdate(e),r=n&&this.appendIntroducesMatch(e,this.hasReferenceDefinition),i=this.prevHasPotentialReferenceUse&&r,a=this.parseSource(e,t,n,i),o=a.tokens;if(typeof this.options.walkTokens==`function`)for(let e of o)this.options.walkTokens(e);let s=this.isReferenceSensitiveUpdate(e,n,i),c=n&&!s,l=0,u=a.usedTailWindow?t.reparseOffset:0;if(!s){let e=Math.min(this.prevTokens.length,o.length);for(;l=t.prefixCount&&(u+=this.getTokenSourceLength(n)):u!==void 0&&(this.hasHtmlSpanMismatch(n)?u=void 0:u+=this.getTokenSourceLength(n)),l++}}return this.updateCachedState(e,a,n,r),{tokens:o,divergeAt:l,divergeOffset:u,canReuse:c,usedTailWindow:a.usedTailWindow}}},_c=e=>typeof e==`object`&&!!e,vc=e=>_c(e)&&typeof e.id==`string`&&typeof e.text==`string`,yc=e=>{let t=``;for(let n=0;n{let n=`fnref-${yc(e)}`;return t===1?n:`${n}:ref:${t}`},xc=e=>{let t=new WeakMap,n=new WeakMap,r=new Map,i=new Map,a=new Set,o=[],s=e=>{if(Array.isArray(e))for(let t of e)Array.isArray(t)?s(t):_c(t)&&c(t)},c=e=>{if(e.type===`footnoteRef`&&typeof e.id==`string`){let n=(r.get(e.id)??0)+1,a=bc(e.id,n);r.set(e.id,n),t.set(e,Object.freeze({referenceId:a}));let o=i.get(e.id);o?o.push(a):i.set(e.id,[a])}else if(e.type===`footnoteSection`&&Array.isArray(e.footnotes)){let t=[];for(let n of e.footnotes)!vc(n)||a.has(n.id)||(a.add(n.id),t.push({id:n.id,text:n.text}));o.push({token:e,footnotes:t})}e.type!==`image`&&e.type!==`code`&&e.type!==`codespan`&&(s(e.tokens),s(e.items),s(e.header),s(e.rows))};s(e);for(let e of o){let t=e.footnotes.map(e=>Object.freeze({...e,backrefs:Object.freeze([...i.get(e.id)??[]])}));n.set(e.token,Object.freeze({footnotes:Object.freeze(t)}))}return Object.freeze({referenceProps:t,sectionProps:n})},Sc=1e6,Cc=e=>typeof e==`object`&&!!e&&`offset`in e,wc=(e,t,{currentBufferLength:n=0,maxOffsetGap:r=Sc}={})=>typeof e==`string`?t===`offset`?{kind:`drop`,message:`offset mode active, string chunk dropped. Call resetStream() before switching streaming input modes.`}:{kind:`append`,value:e,nextMode:`append`}:!Cc(e)||typeof e.value!=`string`?{kind:`drop`,message:`Invalid chunk object passed to writeChunk(); expected { value: string, offset: number }.`}:!Number.isSafeInteger(e.offset)||e.offset<0?{kind:`drop`,message:`Invalid offset chunk passed to writeChunk(); offset must be a non-negative safe integer.`}:t===`append`?{kind:`drop`,message:`append mode active, offset chunk dropped. Call resetStream() before switching streaming input modes.`}:e.offset-n>r?{kind:`drop`,message:`offset chunk skipped: offset ${e.offset} is more than ${r} chars beyond the current buffer length (${n}).`}:{kind:`offset`,chunk:e,nextMode:`offset`},Tc=(e,t)=>e+t,Ec=(e,t)=>t===``?{committed:!1,sourceBuffer:e,pendingBuffer:t}:{committed:!0,sourceBuffer:e+t,pendingBuffer:``},Dc=(e,t=256)=>e.length>=t,Oc=(e,{value:t,offset:n},{maxOffsetGap:r=Sc}={})=>{let i=Math.max(0,n-e.length),a=Math.min(i,Math.max(0,r)),o=n>e.length?e.length+a:n,s=a>0?e+` `.repeat(a):e,c=s.slice(0,o),l=s.slice(o+t.length);return c+t+l},kc=new Set([`$$slots`,`$$events`,`$$legacy`,`source`,`streaming`,`streamId`,`renderers`,`options`,`isInline`,`parsed`,`extensions`,`sanitizeUrl`,`sanitizeAttributes`]);function Ac(e,t){ne(t,!0);let r=y(t,`source`,19,()=>[]),i=y(t,`streaming`,3,!1),a=y(t,`streamId`,3,void 0),o=y(t,`renderers`,19,()=>({})),s=y(t,`options`,19,()=>({})),c=y(t,`isInline`,3,!1),l=y(t,`parsed`,3,()=>{}),u=y(t,`extensions`,19,()=>[]),d=y(t,`sanitizeUrl`,3,bo),f=y(t,`sanitizeAttributes`,3,xo),p=re(t,kc),m=b(()=>Wo(u())),h=b(()=>Jo(s(),u())),g=new kr,_=Oo();ae(So,_);let v=b(()=>Ko(u())),x,S,C,w,T,D=``,O=``,k=null,A=null,ie=null,N=E(te([])),oe=0,se=0,ce=e=>{console.warn(`[svelte-markdown] ${e}`)},le=()=>{x=void 0,S=void 0,C=void 0},F=()=>{A&&=(A.kind===`raf`&&typeof cancelAnimationFrame==`function`?cancelAnimationFrame(A.id):A.kind===`timeout`&&clearTimeout(A.id),null)},I=()=>!x||S!==s()||C!==u(),ue=(e,t=!1)=>{(t||I())&&(x=new gc(n(h)),S=s(),C=u());let r=x;if(!r)return;let{tokens:i,divergeAt:a,divergeOffset:o,canReuse:c}=r.update(e);j(N,c?lc(n(N),i,a):i,!0);let l=c&&o!==void 0;oe=l?a:0,se=l?o:0},L=()=>{let e=Ec(D,O);return e.committed?(D=e.sourceBuffer,O=e.pendingBuffer,!0):!1},R=(e=!1)=>{if(F(),k!==null){let t=k;k=null,O=``,D=t,ue(t,e);return}L()&&ue(D,e)},de=()=>{if(!(A||O===``&&k===null)){if(typeof window<`u`&&typeof window.requestAnimationFrame==`function`){A={kind:`raf`,id:window.requestAnimationFrame(()=>{A=null,R()})};return}A={kind:`timeout`,id:setTimeout(()=>{A=null,R()},16)}}},fe=()=>{F(),O=``,k=null,ie=null,D=``,oe=0,se=0},pe=(e=``)=>{if(fe(),D=e,e===``){le(),j(N,[],!0);return}ue(e,!0)},me=e=>{if(w=e,Array.isArray(e)){fe(),le(),j(N,[...e],!0);return}let t=e,n=x!==void 0&&D!==``&&t!==``&&t.length>D.length&&t.startsWith(D);if(n){O=``,k=t,de();return}if(fe(),t===``){le(),j(N,[],!0);return}D=t,ue(t,!n)},he=()=>{if(Array.isArray(r())){me(r());return}w=r(),pe(r())},ge=e=>i()?n(v)?(ce(`${e}() is unavailable when async extensions are used; call dropped.`),!1):!Array.isArray(r())||(ce(`${e}() requires a string-backed source; token array sources are not supported.`),!1):(ce(`${e}() is only available when streaming={true}; call dropped.`),!1),_e=e=>{if(k!==null&&R(),O=Tc(O,e),Dc(O)){R();return}de()},ve=e=>{D=Oc(D,e,{maxOffsetGap:Sc}),ue(D)};function ye(e){if(!ge(`writeChunk`))return;T!==a()&&(T=a(),he()),k!==null&&R();let t=wc(e,ie,{currentBufferLength:D.length,maxOffsetGap:Sc});if(t.kind===`drop`){ce(t.message);return}if(ie=t.nextMode,t.kind===`append`){_e(t.value);return}ve(t.chunk)}function be(e=``){ge(`resetStream`)&&pe(e)}M(()=>()=>{F()}),M(()=>{if(!i()||n(v)){fe(),x&&le(),w=r(),T=a(),i()&&n(v)&&ce(`streaming prop is ignored when async extensions are used. Remove async extensions or set streaming={false} to silence this warning.`);return}if(T!==a()){T=a(),he();return}if(w!==r()){me(r());return}if(!Array.isArray(r())&&I()){if(k!==null){R(!0);return}if(O!==``){R(!0);return}if(D===``){le(),j(N,[],!0);return}ue(D,!0)}});let xe=b(()=>{if(!n(v)&&!i())return Array.isArray(r())?r():r()===``?[]:ec(r(),n(h),c())}),Se=E(void 0),Ce=0;M(()=>{if(!n(v))return;if(Array.isArray(r())){j(Se,r(),!0);return}if(r()===``){j(Se,[],!0);return}let e=r(),t=n(h),i=c(),a=++Ce;tc(e,t,i).then(e=>{a===Ce&&j(Se,e,!0)}).catch(e=>{a===Ce&&(console.error(`[svelte-markdown] async walkTokens failed:`,e),j(Se,[],!0))})});let we=b(()=>i()&&!n(v)?n(N):n(v)?n(Se):n(xe)),Te=b(()=>{if(!n(we))return n(we);let e=Array.isArray(r())?void 0:i()&&!n(v)?D:r(),t=i()&&!n(v)?{startIndex:oe,startOffset:se}:{};return _.prepareTokensForRender(n(we),n(h),{source:e,...t})}),Ee=b(()=>{if(!n(Te))return;let e=n(m).includes(`footnoteRef`)||n(m).includes(`footnoteSection`);if(!(!Array.isArray(r())&&!e))return xc(n(Te))});M(()=>{n(Te)&&l()(n(Te))});let De=b(()=>Fo(o())),Oe=b(()=>Io(n(m))),ke=b(()=>Lo(p,n(Oe))),Ae=b(()=>Ro(p)),je=b(()=>zo(p,n(Oe)));var Me={writeChunk:ye,resetStream:be};return Mo(e,P({get tokens(){return n(Te)},get footnoteMetadata(){return n(Ee)}},()=>n(je),{get options(){return n(h)},slug:e=>g.slug(e),get renderers(){return n(De)},get snippetOverrides(){return n(ke)},get htmlSnippetOverrides(){return n(Ae)},get sanitizeUrl(){return d()},get sanitizeAttributes(){return f()}})),ee(Me)}var jc=Ac,Mc=l(`

          `),Nc=l(`
          `),Pc=l(`
          `),Fc=l(`
          `),Ic=l(`
          ...
          `),Lc=l(`
          `);function Rc(i,c){ne(c,!0);let l=E(``),u=te(h(()=>c.data.chatWithMessage.messages??[])),d=E(!1);N(async()=>{de.state.prompt&&(console.log(de.state.prompt),await _(de.state.prompt)),await o(),p.scrollTop=p.scrollHeight});let p,m,_=async e=>{j(l,``);let t=``,r=``;j(d,!0);for await(let i of pe.createChatMessage(c.data.spaceId,c.data.chatId,{prompt:e})){if(n(d)&&i.role===`assistant`&&j(d,!1),i.done){document.querySelectorAll(`div.reasoning:not(.hidden)`).forEach(e=>e.classList.add(`hidden`));return}if(i.role!=t||i.toolName!=r){let e={id:``+new Date().getTime(),role:i.role,content:``,reasoning:``};i.toolName&&(e.toolcalls=[{ID:`0`,Type:`Function`,Function:{Name:i.toolName,Arguments:``}}]),i.reasoning?e.reasoning=i.content:e.content=i.content,u.push(e),t=i.role,r=i.toolName}else i.reasoning?u[u.length-1].reasoning+=i.content:u[u.length-1].content+=i.content;i.done&&document.querySelectorAll(`div.reasoning:not(.hidden)`).forEach(e=>e.classList.add(`hidden`)),p.scrollTop=p.scrollHeight}},y=async()=>{p.scrollTop=p.scrollHeight,await _(n(l)),m.focus()};var b=Lc(),S=g(b),w=g(S);r(w,17,()=>u,e=>e.id,(r,i)=>{var a=Fc(),o=g(a),c=e=>{var t=Mc();jc(g(t),{get source(){return n(i).reasoning},streaming:!0}),F(t),D(e,t)};O(o,e=>{n(i).reasoning&&e(c)});var l=e(o,2),u=e=>{var r=Nc(),a=g(r);F(r),s(()=>t(a,`⚒️ Appel de l'outil ${n(i).toolcalls[0].Function.Name??``}`)),D(e,r)},d=e=>{var t=Pc();jc(g(t),{get source(){return n(i).content},streaming:!0}),F(t),D(e,t)};O(l,e=>{n(i).toolcalls!=null&&n(i).toolcalls.length>0?e(u):e(d,-1)}),F(a),s(()=>le(a,1,ue([`message`,`rounded`,n(i).role]))),D(r,a)});var T=e(w,2),k=e=>{var t=Ic();D(e,t)};O(T,e=>{n(d)&&e(k)}),F(S),C(S,e=>p=e,()=>p);var A=e(S,2),re=g(A),ae=g(re);ie(ae),a(()=>se(ae,()=>n(l),e=>j(l,e))),x(ae,e=>fe?.(e)),C(ae,e=>m=e,()=>m),v(2),F(re),F(A),F(b),f(`submit`,re,y),D(i,b),ee()}export{Rc as component,me as universal}; \ No newline at end of file +`)+1;return!t(this.prevSource.slice(n))&&t(e.slice(n))};isAppendOnlyUpdate=e=>this.prevSource!==``&&e.startsWith(this.prevSource);hasNewReferenceDefinition=e=>e.startsWith(this.prevSource)?this.appendIntroducesMatch(e,this.hasReferenceDefinition):!1;appendedDefinitionInvalidatesTail=e=>this.prevHasPotentialReferenceUse&&this.hasNewReferenceDefinition(e);canUseTailWindow=(e,t,n=this.isAppendOnlyUpdate(e),r=this.appendedDefinitionInvalidatesTail(e))=>{if(this.tailWindowDisabled||this.prevSource===``||this.prevTokens.length===0||!n||t.reparseOffset<=0||r)return!1;if(this.prevHasReferenceDefinition){let n=e.slice(t.reparseOffset);if(this.hasPotentialReferenceUseOutsideDefinitions(n))return!1}return!0};parseSource=(e,t,n,r)=>{if(!this.canUseTailWindow(e,t,n,r))return{tokens:$s(e,this.options,!1),tailTokens:[],usedTailWindow:!1};let i=$s(e.slice(t.reparseOffset),this.options,!1);return{tokens:[...this.prevTokens.slice(0,t.prefixCount),...i],tailTokens:i,usedTailWindow:!0}};hasAnyHtmlSpanMismatch=e=>e.some(this.hasHtmlSpanMismatch);getNextTailWindowBoundary=(e,t,n)=>{if(e.length===0||n)return{prefixCount:0,reparseOffset:0};let r=e[e.length-1];return this.isStableAtSourceEnd(r)?{prefixCount:e.length,reparseOffset:t}:{prefixCount:e.length-1,reparseOffset:t-this.getTokenSourceLength(r)}};updateCachedState=(e,t,n,r)=>{let i=t.usedTailWindow?this.prevHasHtmlSpanMismatch||this.hasAnyHtmlSpanMismatch(t.tailTokens):this.hasAnyHtmlSpanMismatch(t.tokens);this.prevHasPotentialReferenceUse=n?this.prevHasPotentialReferenceUse||this.appendIntroducesMatch(e,this.hasPotentialReferenceUseOutsideDefinitions):this.hasPotentialReferenceUseOutsideDefinitions(e),this.prevHasReferenceDefinition=n?this.prevHasReferenceDefinition||r:this.hasReferenceDefinition(e),this.prevSource=e,this.prevTokens=t.tokens,this.prevHasHtmlSpanMismatch=i,this.prevTailWindowBoundary=this.getNextTailWindowBoundary(t.tokens,e.length,i)};isReferenceSensitiveUpdate=(e,t,n)=>t?n:(this.prevHasReferenceDefinition||this.hasReferenceDefinition(e))&&(this.hasPotentialReferenceUse(this.prevSource)||this.hasPotentialReferenceUse(e));update=e=>{let t=this.getTailWindowBoundary(),n=this.isAppendOnlyUpdate(e),r=n&&this.appendIntroducesMatch(e,this.hasReferenceDefinition),i=this.prevHasPotentialReferenceUse&&r,a=this.parseSource(e,t,n,i),o=a.tokens;if(typeof this.options.walkTokens==`function`)for(let e of o)this.options.walkTokens(e);let s=this.isReferenceSensitiveUpdate(e,n,i),c=n&&!s,l=0,u=a.usedTailWindow?t.reparseOffset:0;if(!s){let e=Math.min(this.prevTokens.length,o.length);for(;l=t.prefixCount&&(u+=this.getTokenSourceLength(n)):u!==void 0&&(this.hasHtmlSpanMismatch(n)?u=void 0:u+=this.getTokenSourceLength(n)),l++}}return this.updateCachedState(e,a,n,r),{tokens:o,divergeAt:l,divergeOffset:u,canReuse:c,usedTailWindow:a.usedTailWindow}}},_c=e=>typeof e==`object`&&!!e,vc=e=>_c(e)&&typeof e.id==`string`&&typeof e.text==`string`,yc=e=>{let t=``;for(let n=0;n{let n=`fnref-${yc(e)}`;return t===1?n:`${n}:ref:${t}`},xc=e=>{let t=new WeakMap,n=new WeakMap,r=new Map,i=new Map,a=new Set,o=[],s=e=>{if(Array.isArray(e))for(let t of e)Array.isArray(t)?s(t):_c(t)&&c(t)},c=e=>{if(e.type===`footnoteRef`&&typeof e.id==`string`){let n=(r.get(e.id)??0)+1,a=bc(e.id,n);r.set(e.id,n),t.set(e,Object.freeze({referenceId:a}));let o=i.get(e.id);o?o.push(a):i.set(e.id,[a])}else if(e.type===`footnoteSection`&&Array.isArray(e.footnotes)){let t=[];for(let n of e.footnotes)!vc(n)||a.has(n.id)||(a.add(n.id),t.push({id:n.id,text:n.text}));o.push({token:e,footnotes:t})}e.type!==`image`&&e.type!==`code`&&e.type!==`codespan`&&(s(e.tokens),s(e.items),s(e.header),s(e.rows))};s(e);for(let e of o){let t=e.footnotes.map(e=>Object.freeze({...e,backrefs:Object.freeze([...i.get(e.id)??[]])}));n.set(e.token,Object.freeze({footnotes:Object.freeze(t)}))}return Object.freeze({referenceProps:t,sectionProps:n})},Sc=1e6,Cc=e=>typeof e==`object`&&!!e&&`offset`in e,wc=(e,t,{currentBufferLength:n=0,maxOffsetGap:r=Sc}={})=>typeof e==`string`?t===`offset`?{kind:`drop`,message:`offset mode active, string chunk dropped. Call resetStream() before switching streaming input modes.`}:{kind:`append`,value:e,nextMode:`append`}:!Cc(e)||typeof e.value!=`string`?{kind:`drop`,message:`Invalid chunk object passed to writeChunk(); expected { value: string, offset: number }.`}:!Number.isSafeInteger(e.offset)||e.offset<0?{kind:`drop`,message:`Invalid offset chunk passed to writeChunk(); offset must be a non-negative safe integer.`}:t===`append`?{kind:`drop`,message:`append mode active, offset chunk dropped. Call resetStream() before switching streaming input modes.`}:e.offset-n>r?{kind:`drop`,message:`offset chunk skipped: offset ${e.offset} is more than ${r} chars beyond the current buffer length (${n}).`}:{kind:`offset`,chunk:e,nextMode:`offset`},Tc=(e,t)=>e+t,Ec=(e,t)=>t===``?{committed:!1,sourceBuffer:e,pendingBuffer:t}:{committed:!0,sourceBuffer:e+t,pendingBuffer:``},Dc=(e,t=256)=>e.length>=t,Oc=(e,{value:t,offset:n},{maxOffsetGap:r=Sc}={})=>{let i=Math.max(0,n-e.length),a=Math.min(i,Math.max(0,r)),o=n>e.length?e.length+a:n,s=a>0?e+` `.repeat(a):e,c=s.slice(0,o),l=s.slice(o+t.length);return c+t+l},kc=new Set([`$$slots`,`$$events`,`$$legacy`,`source`,`streaming`,`streamId`,`renderers`,`options`,`isInline`,`parsed`,`extensions`,`sanitizeUrl`,`sanitizeAttributes`]);function Ac(e,t){ne(t,!0);let r=y(t,`source`,19,()=>[]),i=y(t,`streaming`,3,!1),a=y(t,`streamId`,3,void 0),o=y(t,`renderers`,19,()=>({})),s=y(t,`options`,19,()=>({})),c=y(t,`isInline`,3,!1),l=y(t,`parsed`,3,()=>{}),u=y(t,`extensions`,19,()=>[]),d=y(t,`sanitizeUrl`,3,bo),f=y(t,`sanitizeAttributes`,3,xo),p=re(t,kc),m=b(()=>Wo(u())),h=b(()=>Jo(s(),u())),g=new kr,_=Oo();ae(So,_);let v=b(()=>Ko(u())),x,S,C,w,T,D=``,O=``,k=null,A=null,ie=null,N=E(te([])),oe=0,se=0,ce=e=>{console.warn(`[svelte-markdown] ${e}`)},le=()=>{x=void 0,S=void 0,C=void 0},F=()=>{A&&=(A.kind===`raf`&&typeof cancelAnimationFrame==`function`?cancelAnimationFrame(A.id):A.kind===`timeout`&&clearTimeout(A.id),null)},I=()=>!x||S!==s()||C!==u(),ue=(e,t=!1)=>{(t||I())&&(x=new gc(n(h)),S=s(),C=u());let r=x;if(!r)return;let{tokens:i,divergeAt:a,divergeOffset:o,canReuse:c}=r.update(e);j(N,c?lc(n(N),i,a):i,!0);let l=c&&o!==void 0;oe=l?a:0,se=l?o:0},L=()=>{let e=Ec(D,O);return e.committed?(D=e.sourceBuffer,O=e.pendingBuffer,!0):!1},R=(e=!1)=>{if(F(),k!==null){let t=k;k=null,O=``,D=t,ue(t,e);return}L()&&ue(D,e)},de=()=>{if(!(A||O===``&&k===null)){if(typeof window<`u`&&typeof window.requestAnimationFrame==`function`){A={kind:`raf`,id:window.requestAnimationFrame(()=>{A=null,R()})};return}A={kind:`timeout`,id:setTimeout(()=>{A=null,R()},16)}}},fe=()=>{F(),O=``,k=null,ie=null,D=``,oe=0,se=0},pe=(e=``)=>{if(fe(),D=e,e===``){le(),j(N,[],!0);return}ue(e,!0)},me=e=>{if(w=e,Array.isArray(e)){fe(),le(),j(N,[...e],!0);return}let t=e,n=x!==void 0&&D!==``&&t!==``&&t.length>D.length&&t.startsWith(D);if(n){O=``,k=t,de();return}if(fe(),t===``){le(),j(N,[],!0);return}D=t,ue(t,!n)},he=()=>{if(Array.isArray(r())){me(r());return}w=r(),pe(r())},ge=e=>i()?n(v)?(ce(`${e}() is unavailable when async extensions are used; call dropped.`),!1):!Array.isArray(r())||(ce(`${e}() requires a string-backed source; token array sources are not supported.`),!1):(ce(`${e}() is only available when streaming={true}; call dropped.`),!1),_e=e=>{if(k!==null&&R(),O=Tc(O,e),Dc(O)){R();return}de()},ve=e=>{D=Oc(D,e,{maxOffsetGap:Sc}),ue(D)};function ye(e){if(!ge(`writeChunk`))return;T!==a()&&(T=a(),he()),k!==null&&R();let t=wc(e,ie,{currentBufferLength:D.length,maxOffsetGap:Sc});if(t.kind===`drop`){ce(t.message);return}if(ie=t.nextMode,t.kind===`append`){_e(t.value);return}ve(t.chunk)}function be(e=``){ge(`resetStream`)&&pe(e)}M(()=>()=>{F()}),M(()=>{if(!i()||n(v)){fe(),x&&le(),w=r(),T=a(),i()&&n(v)&&ce(`streaming prop is ignored when async extensions are used. Remove async extensions or set streaming={false} to silence this warning.`);return}if(T!==a()){T=a(),he();return}if(w!==r()){me(r());return}if(!Array.isArray(r())&&I()){if(k!==null){R(!0);return}if(O!==``){R(!0);return}if(D===``){le(),j(N,[],!0);return}ue(D,!0)}});let xe=b(()=>{if(!n(v)&&!i())return Array.isArray(r())?r():r()===``?[]:ec(r(),n(h),c())}),Se=E(void 0),Ce=0;M(()=>{if(!n(v))return;if(Array.isArray(r())){j(Se,r(),!0);return}if(r()===``){j(Se,[],!0);return}let e=r(),t=n(h),i=c(),a=++Ce;tc(e,t,i).then(e=>{a===Ce&&j(Se,e,!0)}).catch(e=>{a===Ce&&(console.error(`[svelte-markdown] async walkTokens failed:`,e),j(Se,[],!0))})});let we=b(()=>i()&&!n(v)?n(N):n(v)?n(Se):n(xe)),Te=b(()=>{if(!n(we))return n(we);let e=Array.isArray(r())?void 0:i()&&!n(v)?D:r(),t=i()&&!n(v)?{startIndex:oe,startOffset:se}:{};return _.prepareTokensForRender(n(we),n(h),{source:e,...t})}),Ee=b(()=>{if(!n(Te))return;let e=n(m).includes(`footnoteRef`)||n(m).includes(`footnoteSection`);if(!(!Array.isArray(r())&&!e))return xc(n(Te))});M(()=>{n(Te)&&l()(n(Te))});let De=b(()=>Fo(o())),Oe=b(()=>Io(n(m))),ke=b(()=>Lo(p,n(Oe))),Ae=b(()=>Ro(p)),je=b(()=>zo(p,n(Oe)));var Me={writeChunk:ye,resetStream:be};return Mo(e,P({get tokens(){return n(Te)},get footnoteMetadata(){return n(Ee)}},()=>n(je),{get options(){return n(h)},slug:e=>g.slug(e),get renderers(){return n(De)},get snippetOverrides(){return n(ke)},get htmlSnippetOverrides(){return n(Ae)},get sanitizeUrl(){return d()},get sanitizeAttributes(){return f()}})),ee(Me)}var jc=Ac,Mc=l(`
          `),Nc=l(`
          `),Pc=l(`
          `),Fc=l(`
          `),Ic=l(`
          `),Lc=l(`
          ...
          `),Rc=l(`
          `);function zc(i,c){ne(c,!0);let l=E(``),u=te(h(()=>c.data.chatWithMessage.messages??[])),d=E(!1);N(async()=>{de.state.prompt&&(console.log(de.state.prompt),await _(de.state.prompt)),await o(),p.scrollTop=p.scrollHeight});let p,m,_=async e=>{j(l,``);let t=``,r=``;j(d,!0);for await(let i of pe.createChatMessage(c.data.spaceId,c.data.chatId,{prompt:e})){if(n(d)&&i.role===`assistant`&&j(d,!1),i.done){document.querySelectorAll(`div.reasoning:not(.hidden)`).forEach(e=>e.classList.add(`hidden`));return}if(i.role!=t||i.toolName!=r){let e={id:``+new Date().getTime(),role:i.role,content:``,reasoning:``};i.toolName&&(e.toolcalls=[{ID:`0`,Type:`Function`,Function:{Name:i.toolName,Arguments:``}}]),i.reasoning?e.reasoning=i.content:e.content=i.content,u.push(e),t=i.role,r=i.toolName}else i.reasoning?u[u.length-1].reasoning+=i.content:u[u.length-1].content+=i.content;i.done&&document.querySelectorAll(`div.reasoning:not(.hidden)`).forEach(e=>e.classList.add(`hidden`)),p.scrollTop=p.scrollHeight}},y=async()=>{p.scrollTop=p.scrollHeight,await _(n(l)),m.focus()};var b=Rc(),S=g(b),w=e=>{var t=Mc(),n=g(t);F(t),s(()=>A(n,`href`,`/${c.data.spaceId}/tasks?task=${c.data.chatWithMessage.chat.taskId}`)),D(e,t)};O(S,e=>{c.data.chatWithMessage.chat.taskId&&e(w)});var T=e(S,2),k=g(T);r(k,17,()=>u,e=>e.id,(r,i)=>{var a=Ic(),o=g(a),c=e=>{var t=Nc();jc(g(t),{get source(){return n(i).reasoning},streaming:!0}),F(t),D(e,t)};O(o,e=>{n(i).reasoning&&e(c)});var l=e(o,2),u=e=>{var r=Pc(),a=g(r);F(r),s(()=>t(a,`⚒️ Appel de l'outil ${n(i).toolcalls[0].Function.Name??``}`)),D(e,r)},d=e=>{var t=Fc();jc(g(t),{get source(){return n(i).content},streaming:!0}),F(t),D(e,t)};O(l,e=>{n(i).toolcalls!=null&&n(i).toolcalls.length>0?e(u):e(d,-1)}),F(a),s(()=>le(a,1,ue([`message`,`rounded`,n(i).role]))),D(r,a)});var re=e(k,2),ae=e=>{var t=Lc();D(e,t)};O(re,e=>{n(d)&&e(ae)}),F(T),C(T,e=>p=e,()=>p);var M=e(T,2),P=g(M),oe=g(P);ie(oe),a(()=>se(oe,()=>n(l),e=>j(l,e))),x(oe,e=>fe?.(e)),C(oe,e=>m=e,()=>m),v(2),F(P),F(M),F(b),f(`submit`,P,y),D(i,b),ee()}export{zc as component,me as universal}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/6.B8E4TBNF.js b/backend/internal/http/web/_app/immutable/nodes/6.B8E4TBNF.js new file mode 100644 index 0000000..50d5072 --- /dev/null +++ b/backend/internal/http/web/_app/immutable/nodes/6.B8E4TBNF.js @@ -0,0 +1 @@ +import{$ as e,A as t,B as n,E as r,I as i,K as a,L as o,N as s,Q as c,Z as l,at as u,bt as d,dt as f,et as p,ft as m,g as h,it as g,j as _,k as v,m as y,nt as b,p as x,u as S,vt as C}from"../chunks/DGrvnoUE.js";import{n as w}from"../chunks/BZuNOv8h.js";import"../chunks/xihTtKlq.js";import"../chunks/CY9OlB4q.js";import{t as T}from"../chunks/BYYkuYgk.js";import{n as E,r as D,t as O}from"../chunks/Bht2nTIZ.js";var k=d({load:()=>A}),A=async({params:e})=>({title:`Historique`,conversations:await T.allChats(e.space,0),tasks:await D.listTasks(e.space),space:e.space}),j=s(``),M=s(`
          `),N=s(`· Tâche planifiée`,1),P=s(`
          ·
          `),ee=s(`

          Aucune conversation trouvée.

          `),te=s(`
          `),F=s(`
          `,1);function I(i,s){m(s,!0);let d=e=>{if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?`—`:t.toLocaleString(`fr-FR`,{day:`numeric`,month:`long`,year:`numeric`,hour:`2-digit`,minute:`2-digit`})},D=g(``),k=g(``),A=g(p(s.data.conversations)),I=g(0),L=g(!1),R=g(null),z=u(()=>n(A).length===(n(I)+1)*20),B=u(()=>s.data.tasks??[]),V=async()=>{b(I,0);let e=n(k)||void 0,t=await T.allChats(s.data.space,0,n(D),e);b(A,t??[],!0)},H,U=()=>{H!==void 0&&clearTimeout(H),H=setTimeout(V,300)},W=()=>{V()},G=async()=>{if(!n(L)){b(L,!0);try{let e=n(k)||void 0,t=await T.allChats(s.data.space,n(I)+1,n(D),e)??[];b(A,[...n(A),...t],!0),b(I,n(I)+1)}catch{E(`failure`,`Erreur lors du chargement des conversations`)}finally{b(L,!1)}}},K=async()=>{if(n(R))try{await T.deleteChat(s.data.space,n(R).id),E(`success`,`Conversation supprimée`),await w(),await V()}catch{E(`failure`,`Erreur lors de la suppression de la conversation`)}finally{b(R,null)}};var q=F(),J=c(q),Y=l(J),X=l(Y),Z=l(X);x(Z),C(X);var ne=e(X,2),re=i=>{var s=M(),c=l(s),u=l(c);u.value=u.__value=``;var d=e(u);r(d,17,()=>n(B),e=>e.id,(e,r)=>{var i=j(),o=l(i,!0);C(i);var s={};a(()=>{t(o,n(r).label),s!==(s=n(r).id)&&(i.value=(i.__value=n(r).id)??``)}),_(e,i)}),C(c),C(s),o(`change`,c,W),h(c,()=>n(k),e=>b(k,e)),_(i,s)};v(ne,e=>{n(B).length>0&&e(re)}),C(Y);var Q=e(Y,2);r(Q,17,()=>n(A),e=>e.id,(r,i)=>{var u=P(),f=l(u),p=l(f),m=l(p),h=l(m,!0);C(m),C(p);var g=e(p,2);C(f);var x=e(f,2),S=l(x),w=l(S);C(S);var T=e(S,4),E=l(T);C(T);var D=e(T,2),O=t=>{var r=N(),o=e(c(r),2);a(()=>y(o,`href`,`/${s.data.space}/tasks?task=${n(i).taskId}`)),_(t,r)};v(D,e=>{n(i).taskId&&e(O)}),C(x),C(u),a((e,r)=>{y(m,`href`,`/${s.data.space}/${n(i).id}`),t(h,n(i).title),t(w,`Créée le ${e??``}`),t(E,`Dernière interaction : ${r??``}`)},[()=>d(n(i)._date_created),()=>d(n(i)._date_updated)]),o(`click`,g,()=>b(R,n(i),!0)),_(r,u)});var $=e(Q,2),ie=e=>{var t=ee();_(e,t)};v($,e=>{n(A).length===0&&e(ie)});var ae=e($,2),oe=e=>{var r=te(),i=l(r),s=l(i,!0);C(i),C(r),a(()=>{i.disabled=n(L),t(s,n(L)?`Chargement...`:`Charger plus`)}),o(`click`,i,G),_(e,r)};v(ae,e=>{n(z)&&e(oe)}),C(J);var se=e(J,2);{let e=u(()=>n(R)!==null),t=u(()=>`Voulez-vous vraiment supprimer « ${n(R)?.title} » ? Cette action est irréversible.`);O(se,{get open(){return n(e)},title:`Supprimer la conversation`,get message(){return n(t)},confirmLabel:`Supprimer`,onConfirm:K,onCancel:()=>b(R,null)})}o(`input`,Z,U),S(Z,()=>n(D),e=>b(D,e)),_(i,q),f()}i([`input`,`change`,`click`]);export{I as component,k as universal}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/6.BBY8N1lq.js b/backend/internal/http/web/_app/immutable/nodes/6.BBY8N1lq.js deleted file mode 100644 index 004c46b..0000000 --- a/backend/internal/http/web/_app/immutable/nodes/6.BBY8N1lq.js +++ /dev/null @@ -1,4 +0,0 @@ -import{$ as e,A as t,B as n,C as r,E as i,I as a,K as o,L as s,M as c,N as l,Q as u,R as d,X as f,Z as p,a as m,at as h,bt as g,dt as _,et as v,ft as y,it as b,j as x,k as S,m as C,nt as w,p as T,u as E,vt as D}from"../chunks/DGrvnoUE.js";import{n as O}from"../chunks/Soo4K-rz.js";import"../chunks/xihTtKlq.js";import"../chunks/QHwlfjO8.js";import{t as k}from"../chunks/guSkOB4x.js";var A=g({load:()=>j}),j=async({params:e})=>({title:`Historique`,conversations:await k.allChats(e.space,0),space:e.space}),M=0,N=v([]),P=(e,t)=>{N.push({id:M++,type:e,text:t,status:`appearing`})},F=e=>e;function I(e){let t=e-1;return t*t*t+1}function L(e,{delay:t=0,duration:n=400,easing:r=F}={}){let i=+getComputedStyle(e).opacity;return{delay:t,duration:n,easing:r,css:e=>`opacity: ${e*i}`}}function R(e,{delay:t=0,duration:n=400,easing:r=I,start:i=0,opacity:a=0}={}){let o=getComputedStyle(e),s=+o.opacity,c=o.transform===`none`?``:o.transform,l=1-i,u=s*(1-a);return{delay:t,duration:n,easing:r,css:(e,t)=>` - transform: ${c} scale(${1-l*t}); - opacity: ${s-u*t} - `}}var z=l(`
          `);function B(n,i){y(i,!0);let a=m(i,`open`,3,!1),l=m(i,`title`,3,``),h=m(i,`message`,3,``),g=m(i,`confirmLabel`,3,`Confirmer`),v=m(i,`cancelLabel`,3,`Annuler`),b=()=>i.onCancel?.(),C=e=>{a()&&e.key===`Escape`&&b()};var w=c();d(`keydown`,f,C);var T=u(w),E=n=>{var a=z(),c=p(a),u=e(c,2),d=p(u),f=e(p(d),2),m=p(f,!0);D(f),D(d);var _=e(d,2),y=p(_,!0);D(_);var S=e(_,2),C=p(S),w=p(C,!0);D(C);var T=e(C,2),E=p(T,!0);D(T),D(S),D(u),D(a),o(()=>{t(m,l()),t(y,h()),t(w,v()),t(E,g())}),s(`click`,c,b),r(3,c,()=>L,()=>({duration:150})),s(`click`,C,b),s(`click`,T,function(...e){i.onConfirm?.apply(this,e)}),r(3,u,()=>R,()=>({duration:150,start:.95})),x(n,a)};S(T,e=>{a()&&e(E)}),x(n,w),_()}a([`click`]);var V=l(``),H=l(`

          Aucune conversation trouvée.

          `),U=l(`
          `),W=l(`
          `,1);function G(r,a){y(a,!0);let c=b(``),l=b(v(a.data.conversations)),d=b(0),f=b(!1),m=b(null),g=h(()=>n(l).length===(n(d)+1)*20),A,j=()=>{A!==void 0&&clearTimeout(A),A=setTimeout(async()=>{w(d,0);let e=await k.allChats(a.data.space,0,n(c));w(l,e??[],!0)},300)},M=async()=>{if(!n(f)){w(f,!0);try{let e=await k.allChats(a.data.space,n(d)+1,n(c))??[];w(l,[...n(l),...e],!0),w(d,n(d)+1)}catch{P(`failure`,`Erreur lors du chargement des conversations`)}finally{w(f,!1)}}},N=async()=>{if(n(m))try{await k.deleteChat(a.data.space,n(m).id),P(`success`,`Conversation supprimée`),await O();let e=await k.allChats(a.data.space,0,n(c));w(l,e??[],!0),w(d,0)}catch{P(`failure`,`Erreur lors de la suppression de la conversation`)}finally{w(m,null)}};var F=W(),I=u(F),L=p(I),R=p(L);T(R),D(L);var z=e(L,2);i(z,17,()=>n(l),e=>e.id,(r,i)=>{var c=V(),l=p(c),u=p(l),d=p(u),f=p(d,!0);D(d),D(u);var h=e(u,2);D(l);var g=e(l,2),_=p(g,!0);D(g),D(c),o(()=>{C(d,`href`,`/${a.data.space}/${n(i).id}`),t(f,n(i).title),t(_,n(i)._date_created)}),s(`click`,h,()=>w(m,n(i),!0)),x(r,c)});var G=e(z,2),K=e=>{var t=H();x(e,t)};S(G,e=>{n(l).length===0&&e(K)});var q=e(G,2),J=e=>{var r=U(),i=p(r),a=p(i,!0);D(i),D(r),o(()=>{i.disabled=n(f),t(a,n(f)?`Chargement...`:`Charger plus`)}),s(`click`,i,M),x(e,r)};S(q,e=>{n(g)&&e(J)}),D(I);var Y=e(I,2);{let e=h(()=>n(m)!==null),t=h(()=>`Voulez-vous vraiment supprimer « ${n(m)?.title} » ? Cette action est irréversible.`);B(Y,{get open(){return n(e)},title:`Supprimer la conversation`,get message(){return n(t)},confirmLabel:`Supprimer`,onConfirm:N,onCancel:()=>w(m,null)})}s(`input`,R,j),E(R,()=>n(c),e=>w(c,e)),x(r,F),_()}a([`input`,`click`]);export{G as component,A as universal}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/immutable/nodes/9.Bt_qXBPf.js b/backend/internal/http/web/_app/immutable/nodes/9.CYl-UmMc.js similarity index 96% rename from backend/internal/http/web/_app/immutable/nodes/9.Bt_qXBPf.js rename to backend/internal/http/web/_app/immutable/nodes/9.CYl-UmMc.js index 9efd785..c2b226d 100644 --- a/backend/internal/http/web/_app/immutable/nodes/9.Bt_qXBPf.js +++ b/backend/internal/http/web/_app/immutable/nodes/9.CYl-UmMc.js @@ -1 +1 @@ -import{$ as e,A as t,B as n,E as r,G as i,I as a,K as o,L as s,M as c,N as l,O as u,Q as d,R as f,U as p,X as m,Z as h,_t as g,a as _,b as v,bt as y,dt as b,et as x,ft as S,it as C,j as w,k as T,nt as E,p as D,st as O,u as k,v as A,vt as j}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";import{t as M}from"../chunks/DqlBPR2w.js";import{t as N}from"../chunks/Cyrg28w2.js";import{t as P}from"../chunks/BI_fD_HY.js";import{n as F,t as I}from"../chunks/6mSXxE57.js";import{t as L}from"../chunks/CUminYLk.js";var R={getAgents:e=>M.get(`/agent/${e}`),getAgent:(e,t)=>M.get(`/agent/${e}/${t}`),createAgent:(e,t)=>M.post(`/agent/${e}`,t),updateAgent:(e,t)=>M.put(`/agent/${e}`,t),deleteAgent:(e,t)=>M.delete(`/agent/${e}/${t}`)},z={getSpace:e=>M.get(`/team/${e}`),updateSpace:(e,t)=>M.put(`/team/${e}`,t)},B=y({load:()=>V}),V=async({params:e})=>({title:`Paramétrage : Agents`,back:`../settings`,space:await z.getSpace(e.space),agents:await R.getAgents(e.space),providersModels:await P.getProvidersModels(e.space)}),H=l(`
          `);function U(t,r){S(r,!0);let a=_(r,`item`,7),o=C(x(p(()=>a().defaultProviderId+`|`+a().defaultModelId))),c=e=>e.group,l=e=>{e.focus()},u=e=>{e.preventDefault();let t=n(o).split(`|`);n(o).length>1?(a().defaultProviderId=t[0],a().defaultModelId=t[1]):(a().defaultProviderId=``,a().defaultModelId=``),r.onSave(a())},d=e=>{e.preventDefault(),r.onCancel()};var m=H(),y=h(m),T=h(y),A=h(T),M=e(h(A),2);D(M),i(()=>k(M,()=>a().name,e=>a().name=e)),v(M,e=>l?.(e));var N=e(M,2);I(N,{key:`name`,get errors(){return r.errors}}),j(A);var P=e(A,2),F=e(h(P),2);O(F);var R=e(F,2);I(R,{key:`baseUrl`,get errors(){return r.errors}}),j(P);var z=e(P,2),B=e(h(z),2);L(B,{get items(){return r.providersModels},valueMode:`id`,groupBy:c,get value(){return n(o)},set value(e){E(o,e,!0)}});var V=e(B,2);I(V,{key:`model`,get errors(){return r.errors}}),j(z);var U=e(z,2),W=h(U);g(2),j(U),j(T),j(y),j(m),f(`submit`,T,u),s(`change`,T,()=>{r.errors.clear()}),k(F,()=>a().systemPrompt,e=>a().systemPrompt=e),s(`click`,W,d),w(t,m),b()}a([`change`,`click`]);var W=l(``),G=l(`
          `),K=l(`
          `);function q(i,a){S(a,!0);let l=C(x(p(()=>a.data.space))),g=C(x(p(()=>a.data.agents))),_=C(!1),v=C(null),y=C(x({})),D=new F,O=()=>{n(v)||(D.clear(),E(y,{},!0),E(_,!0))},k=()=>{E(_,!1)},M=e=>{e.name||D.set(`name`,`Le nom est obligatoire !`),(e.defaultProviderId===``||e.defaultModelId===``)&&D.set(`model`,`Le modèle est obligatoire !`),D.size===0&&R.createAgent(a.data.space.id,e).then(e=>{n(g).push(e),E(_,!1),E(y,{},!0)}).catch(e=>{console.log(e)})},P=()=>{E(v,null),E(y,{},!0)},I=e=>{e.name||D.set(`name`,`Le nom est obligatoire !`),D.size===0&&R.updateAgent(a.data.space.id,e).then(e=>{E(g,n(g).map(t=>e.id===t.id?e:t),!0),E(v,null),E(y,{},!0)}).catch(e=>{console.log(e)})},L=async e=>{D.clear(),!n(_)&&R.getAgent(a.data.space.id,e).then(t=>{E(g,n(g).filter(e=>e.id===t.id?t:e),!0),E(v,e,!0)}).catch(e=>console.log(e))},B=e=>{R.deleteAgent(a.data.space.id,e).then(()=>{E(g,n(g).filter(t=>t.id!==e),!0)}).catch(e=>{console.log(e)})},V=e=>{let t=n(l);t.defaultAgentId=e,z.updateSpace(t.id,t).then(e=>{N.spaces.map(t=>t.id===N.current?e:t),E(l,e,!0)}).catch(e=>{console.log(e)})},H=e=>{e.key===`Escape`&&P()};var q=K();f(`keydown`,m,H);var J=h(q),Y=e=>{var t=c(),r=d(t);u(r,()=>`new`,e=>{U(e,{get item(){return n(y)},get errors(){return D},onSave:M,onCancel:k,get providersModels(){return a.data.providersModels}})}),w(e,t)},X=e=>{var t=W();s(`click`,t,O),w(e,t)};T(J,e=>{n(_)?e(Y):e(X,-1)});var Z=e(J,2);r(Z,17,()=>n(g),e=>e.id,(r,i)=>{var f=c(),p=d(f),m=e=>{var t=c(),r=d(t);u(r,()=>n(i).id,e=>{U(e,{get item(){return n(i)},get errors(){return D},onSave:I,onCancel:P,get providersModels(){return a.data.providersModels}})}),w(e,t)},g=r=>{var a=G(),c=h(a),u=h(c),d=h(u,!0);j(u),j(c);var f=e(c,2);let p;var m=e(f,2),g=e(m,2);j(a),o(()=>{t(d,n(i).name),p=A(f,1,`bt small mx-1`,null,p,{highlight:n(i).id===n(l).defaultAgentId})}),s(`click`,f,()=>V(n(i).id)),s(`click`,m,()=>L(n(i).id)),s(`click`,g,()=>B(n(i).id)),w(r,a)};T(p,e=>{n(v)===n(i).id?e(m):e(g,-1)}),w(r,f)}),j(q),w(i,q),b()}a([`click`]);export{q as component,B as universal}; \ No newline at end of file +import{$ as e,A as t,B as n,E as r,G as i,I as a,K as o,L as s,M as c,N as l,O as u,Q as d,R as f,U as p,X as m,Z as h,_t as g,a as _,b as v,bt as y,dt as b,et as x,ft as S,it as C,j as w,k as T,nt as E,p as D,st as O,u as k,v as A,vt as j}from"../chunks/DGrvnoUE.js";import"../chunks/xihTtKlq.js";import{t as M}from"../chunks/DtfiK5fE.js";import{t as N}from"../chunks/Cyrg28w2.js";import{t as P}from"../chunks/BeIYuf23.js";import{n as F,t as I}from"../chunks/6mSXxE57.js";import{t as L}from"../chunks/DdGy_ePN.js";var R={getAgents:e=>M.get(`/agent/${e}`),getAgent:(e,t)=>M.get(`/agent/${e}/${t}`),createAgent:(e,t)=>M.post(`/agent/${e}`,t),updateAgent:(e,t)=>M.put(`/agent/${e}`,t),deleteAgent:(e,t)=>M.delete(`/agent/${e}/${t}`)},z={getSpace:e=>M.get(`/team/${e}`),updateSpace:(e,t)=>M.put(`/team/${e}`,t)},B=y({load:()=>V}),V=async({params:e})=>({title:`Paramétrage : Agents`,back:`../settings`,space:await z.getSpace(e.space),agents:await R.getAgents(e.space),providersModels:await P.getProvidersModels(e.space)}),H=l(`
          `);function U(t,r){S(r,!0);let a=_(r,`item`,7),o=C(x(p(()=>a().defaultProviderId+`|`+a().defaultModelId))),c=e=>e.group,l=e=>{e.focus()},u=e=>{e.preventDefault();let t=n(o).split(`|`);n(o).length>1?(a().defaultProviderId=t[0],a().defaultModelId=t[1]):(a().defaultProviderId=``,a().defaultModelId=``),r.onSave(a())},d=e=>{e.preventDefault(),r.onCancel()};var m=H(),y=h(m),T=h(y),A=h(T),M=e(h(A),2);D(M),i(()=>k(M,()=>a().name,e=>a().name=e)),v(M,e=>l?.(e));var N=e(M,2);I(N,{key:`name`,get errors(){return r.errors}}),j(A);var P=e(A,2),F=e(h(P),2);O(F);var R=e(F,2);I(R,{key:`baseUrl`,get errors(){return r.errors}}),j(P);var z=e(P,2),B=e(h(z),2);L(B,{get items(){return r.providersModels},valueMode:`id`,groupBy:c,get value(){return n(o)},set value(e){E(o,e,!0)}});var V=e(B,2);I(V,{key:`model`,get errors(){return r.errors}}),j(z);var U=e(z,2),W=h(U);g(2),j(U),j(T),j(y),j(m),f(`submit`,T,u),s(`change`,T,()=>{r.errors.clear()}),k(F,()=>a().systemPrompt,e=>a().systemPrompt=e),s(`click`,W,d),w(t,m),b()}a([`change`,`click`]);var W=l(``),G=l(`
          `),K=l(`
          `);function q(i,a){S(a,!0);let l=C(x(p(()=>a.data.space))),g=C(x(p(()=>a.data.agents))),_=C(!1),v=C(null),y=C(x({})),D=new F,O=()=>{n(v)||(D.clear(),E(y,{},!0),E(_,!0))},k=()=>{E(_,!1)},M=e=>{e.name||D.set(`name`,`Le nom est obligatoire !`),(e.defaultProviderId===``||e.defaultModelId===``)&&D.set(`model`,`Le modèle est obligatoire !`),D.size===0&&R.createAgent(a.data.space.id,e).then(e=>{n(g).push(e),E(_,!1),E(y,{},!0)}).catch(e=>{console.log(e)})},P=()=>{E(v,null),E(y,{},!0)},I=e=>{e.name||D.set(`name`,`Le nom est obligatoire !`),D.size===0&&R.updateAgent(a.data.space.id,e).then(e=>{E(g,n(g).map(t=>e.id===t.id?e:t),!0),E(v,null),E(y,{},!0)}).catch(e=>{console.log(e)})},L=async e=>{D.clear(),!n(_)&&R.getAgent(a.data.space.id,e).then(t=>{E(g,n(g).filter(e=>e.id===t.id?t:e),!0),E(v,e,!0)}).catch(e=>console.log(e))},B=e=>{R.deleteAgent(a.data.space.id,e).then(()=>{E(g,n(g).filter(t=>t.id!==e),!0)}).catch(e=>{console.log(e)})},V=e=>{let t=n(l);t.defaultAgentId=e,z.updateSpace(t.id,t).then(e=>{N.spaces.map(t=>t.id===N.current?e:t),E(l,e,!0)}).catch(e=>{console.log(e)})},H=e=>{e.key===`Escape`&&P()};var q=K();f(`keydown`,m,H);var J=h(q),Y=e=>{var t=c(),r=d(t);u(r,()=>`new`,e=>{U(e,{get item(){return n(y)},get errors(){return D},onSave:M,onCancel:k,get providersModels(){return a.data.providersModels}})}),w(e,t)},X=e=>{var t=W();s(`click`,t,O),w(e,t)};T(J,e=>{n(_)?e(Y):e(X,-1)});var Z=e(J,2);r(Z,17,()=>n(g),e=>e.id,(r,i)=>{var f=c(),p=d(f),m=e=>{var t=c(),r=d(t);u(r,()=>n(i).id,e=>{U(e,{get item(){return n(i)},get errors(){return D},onSave:I,onCancel:P,get providersModels(){return a.data.providersModels}})}),w(e,t)},g=r=>{var a=G(),c=h(a),u=h(c),d=h(u,!0);j(u),j(c);var f=e(c,2);let p;var m=e(f,2),g=e(m,2);j(a),o(()=>{t(d,n(i).name),p=A(f,1,`bt small mx-1`,null,p,{highlight:n(i).id===n(l).defaultAgentId})}),s(`click`,f,()=>V(n(i).id)),s(`click`,m,()=>L(n(i).id)),s(`click`,g,()=>B(n(i).id)),w(r,a)};T(p,e=>{n(v)===n(i).id?e(m):e(g,-1)}),w(r,f)}),j(q),w(i,q),b()}a([`click`]);export{q as component,B as universal}; \ No newline at end of file diff --git a/backend/internal/http/web/_app/version.json b/backend/internal/http/web/_app/version.json index fc2d855..695582b 100644 --- a/backend/internal/http/web/_app/version.json +++ b/backend/internal/http/web/_app/version.json @@ -1 +1 @@ -{"version":"1791236559767"} \ No newline at end of file +{"version":"1791316638543"} \ No newline at end of file diff --git a/backend/internal/http/web/index.html b/backend/internal/http/web/index.html index 863c1a0..e1ffb41 100644 --- a/backend/internal/http/web/index.html +++ b/backend/internal/http/web/index.html @@ -4,29 +4,29 @@ - - + + - + - + - +
          + {#if data.chatWithMessage.chat.taskId} + + {/if}
          {#each messages as message (message.id)}
          diff --git a/backend/web/src/routes/(authenticated)/[space]/history/+page.svelte b/backend/web/src/routes/(authenticated)/[space]/history/+page.svelte index f0572fd..8a712ed 100644 --- a/backend/web/src/routes/(authenticated)/[space]/history/+page.svelte +++ b/backend/web/src/routes/(authenticated)/[space]/history/+page.svelte @@ -4,12 +4,26 @@ import { putMessage } from "$lib/state/toaster.svelte"; import ConfirmDialog from "$lib/components/ConfirmDialog.svelte"; import type { PageProps } from './$types'; - import type { Chat } from "$lib/types/api"; + import type { Chat, Task } from "$lib/types/api"; let { data }: PageProps = $props(); const PAGE_SIZE = 20; + const formatDate = (value: string | null | undefined) => { + if (!value) return "—"; + const date = new Date(value); + if (Number.isNaN(date.getTime())) return "—"; + return date.toLocaleString("fr-FR", { + day: "numeric", + month: "long", + year: "numeric", + hour: "2-digit", + minute: "2-digit", + }); + }; + let search = $state(""); + let taskFilter = $state(""); // svelte-ignore state_referenced_locally -- la liste est gérée localement // (filtre, pagination, suppression) et ne doit pas suivre les rechargements de data let conversations = $state(data.conversations); @@ -18,23 +32,32 @@ let conversationToDelete = $state(null); const hasMore = $derived(conversations.length === (page + 1) * PAGE_SIZE); + const tasks = $derived(data.tasks ?? []); + + const refresh = async () => { + page = 0; + const taskId = taskFilter || undefined; + const result = await chatApi.allChats(data.space, 0, search, taskId); + conversations = result ?? []; + }; let searchTimer: ReturnType | undefined; const handleSearch = () => { if (searchTimer !== undefined) clearTimeout(searchTimer); - searchTimer = setTimeout(async () => { - page = 0; - const result = await chatApi.allChats(data.space, 0, search); - conversations = result ?? []; - }, 300); + searchTimer = setTimeout(refresh, 300); + }; + + const handleTaskFilter = () => { + refresh(); }; const loadMore = async () => { if (loading) return; loading = true; try { - const result = await chatApi.allChats(data.space, page + 1, search); + const taskId = taskFilter || undefined; + const result = await chatApi.allChats(data.space, page + 1, search, taskId); const next = result ?? []; conversations = [...conversations, ...next]; page += 1; @@ -51,9 +74,7 @@ await chatApi.deleteChat(data.space, conversationToDelete.id); putMessage("success", "Conversation supprimée"); await invalidateAll(); - const result = await chatApi.allChats(data.space, 0, search); - conversations = result ?? []; - page = 0; + await refresh(); } catch { putMessage("failure", "Erreur lors de la suppression de la conversation"); } finally { @@ -63,14 +84,26 @@
          -
          - +
          +
          + +
          + {#if tasks.length > 0} +
          + +
          + {/if}
          {#each conversations as conversation (conversation.id)} @@ -87,7 +120,18 @@
          - {conversation._date_created} +
          + Créée le {formatDate(conversation._date_created)} + · + Dernière interaction : {formatDate(conversation._date_updated)} + {#if conversation.taskId} + · + Tâche planifiée + {/if} +
          {/each} diff --git a/backend/web/src/routes/(authenticated)/[space]/history/+page.ts b/backend/web/src/routes/(authenticated)/[space]/history/+page.ts index a92f185..3d499c7 100644 --- a/backend/web/src/routes/(authenticated)/[space]/history/+page.ts +++ b/backend/web/src/routes/(authenticated)/[space]/history/+page.ts @@ -1,10 +1,12 @@ import { chatApi } from "$lib/api/endpoints/chat" +import { taskApi } from "$lib/api/endpoints/task" import type { PageLoad } from './$types'; export const load: PageLoad = async ({ params }) => { return { title: 'Historique', conversations: await chatApi.allChats(params.space, 0), + tasks: await taskApi.listTasks(params.space), space: params.space, }; } diff --git a/backend/web/src/routes/(authenticated)/[space]/tasks/+page.svelte b/backend/web/src/routes/(authenticated)/[space]/tasks/+page.svelte index a2c8953..7a12eba 100644 --- a/backend/web/src/routes/(authenticated)/[space]/tasks/+page.svelte +++ b/backend/web/src/routes/(authenticated)/[space]/tasks/+page.svelte @@ -1,3 +1,214 @@ -
          - Tâches + + +
          + {#if tasks.length === 0} +

          + Aucune tâche planifiée. Demandez-en une dans le chat + (« résume-moi l'actualité tous les jours à 8h »). +

          + {/if} + + {#each tasks as task (task.id)} + {#if editing && editing.id === task.id} +
          +
          +
          +
          + + +
          +
          + + +
          +
          + + +
          +
          +
          + + +
          +
          + + +
          +
          +
          + {:else} +
          +
          +
          +
          {task.label}
          +
          + {task.cron} + {task.repeat ? "· répétée" : "· ponctuelle"} + {task.status === "done" ? "· terminée" : ""} +
          +
          + + + +
          +

          {task.prompt}

          + Prochaine exécution : {formatDate(task.nextDatetime)} + + {#if expandedTask === task.id} +
          +
          Conversations liées
          + {#if loadingConversations && !taskConversations[task.id]} +

          Chargement...

          + {:else if (taskConversations[task.id] ?? []).length === 0} +

          Aucune conversation pour cette tâche.

          + {:else} +
            + {#each taskConversations[task.id] as conversation (conversation.id)} +
          • + + {conversation.title} + + {formatDate(conversation._date_created)} +
          • + {/each} +
          + {/if} +
          + {/if} +
          + {/if} + {/each}
          + + (taskToDelete = null)} +/> diff --git a/backend/web/src/routes/(authenticated)/[space]/tasks/+page.ts b/backend/web/src/routes/(authenticated)/[space]/tasks/+page.ts index e06c36e..fb9eb8b 100644 --- a/backend/web/src/routes/(authenticated)/[space]/tasks/+page.ts +++ b/backend/web/src/routes/(authenticated)/[space]/tasks/+page.ts @@ -1,3 +1,10 @@ -export function load() { - return { title: 'Tâches' }; +import { taskApi } from "$lib/api/endpoints/task" +import type { PageLoad } from './$types'; + +export const load: PageLoad = async ({ params }) => { + return { + title: 'Tâches', + tasks: await taskApi.listTasks(params.space), + space: params.space, + }; } diff --git a/go.mod b/go.mod index fa8ad21..afcb1b0 100644 --- a/go.mod +++ b/go.mod @@ -25,6 +25,7 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect + github.com/netresearch/go-cron v0.16.1 // indirect github.com/ollama/ollama v0.17.6 // indirect github.com/openai/openai-go v1.12.0 // indirect github.com/sixafter/aes-ctr-drbg v1.19.2 // indirect diff --git a/go.sum b/go.sum index f7bfb2a..7e721a4 100644 --- a/go.sum +++ b/go.sum @@ -43,6 +43,8 @@ github.com/mattn/go-sqlite3 v1.14.42 h1:MigqEP4ZmHw3aIdIT7T+9TLa90Z6smwcthx+Azv4 github.com/mattn/go-sqlite3 v1.14.42/go.mod h1:pjEuOr8IwzLJP2MfGeTb0A35jauH+C2kbHKBr7yXKVQ= github.com/mozilla-ai/any-llm-go v0.9.0 h1:+pRG33idm22qcDTyaE97IqX9EGpWocfOUT6QIocnWjI= github.com/mozilla-ai/any-llm-go v0.9.0/go.mod h1:L86RiIeF62s1SzHbMr+tKUj9lZ7AgOPJTxpjveCZMnM= +github.com/netresearch/go-cron v0.16.1 h1:X34Uohtmz99eYlDdZRpTyatJZRmhMD9GSVzYZ96z3PE= +github.com/netresearch/go-cron v0.16.1/go.mod h1:MGZe9ZJsjwqb+ahm//Xjzz4C8RkD1RwGTx9km7TTOOE= github.com/ollama/ollama v0.17.6 h1:zxInCopQToAMm+OniZSiHFcry03kiL6i1mmcTvpK4Us= github.com/ollama/ollama v0.17.6/go.mod h1:tCX4IMV8DHjl3zY0THxuEkpWDZSOchJpzTuLACpMwFw= github.com/openai/openai-go v1.12.0 h1:NBQCnXzqOTv5wsgNC36PrFEiskGfO5wccfCWDo9S1U0=