@alook/app 0.0.71 → 0.0.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/email-worker/index.js +45 -41
- package/bundled/web/.open-next/.build/durable-objects/queue.js +5 -5
- package/bundled/web/.open-next/assets/BUILD_ID +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{01-oixdvo.kcw.js → 08py05dvbwpz..js} +15 -15
- package/bundled/web/.open-next/assets/_next/static/chunks/08q1jdm7c98jd.js +63 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{08vzc8ntbbjoe.js → 0hxwcjbgkr~0_.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{0ymb~iviyjlb_.js → 0o3ol51uyvngq.js} +2 -2
- package/bundled/web/.open-next/assets/_next/static/chunks/{0va5axmz5ywg8.js → 0r91umgrdcg_w.js} +2 -2
- package/bundled/web/.open-next/assets/_next/static/chunks/0z1nxwsyi9qzp.js +1 -0
- package/bundled/web/.open-next/cache/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/_global-error.cache +1 -1
- package/bundled/web/.open-next/cache/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/_not-found.cache +1 -1
- package/bundled/web/.open-next/cache/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/sitemap.xml.cache +1 -1
- package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
- package/bundled/web/.open-next/cloudflare/init.js +1 -1
- package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
- package/bundled/web/.open-next/middleware/handler.mjs +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/[traceId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agent-links/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/whitelist/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/active-task-counts/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/route.js +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/[id]/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/channels/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/channels/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/register/route.js +3 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/complete/route.js +2 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/fail/route.js +2 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/messages/route.js +3 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/start/route.js +2 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/supersede/route.js +2 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/poll/route.js +6 -7
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/notify/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/send/route.js +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/[id]/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/machine-tokens/activate/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/runtimes/route.js +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/studios/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0.1vmoe._.js +6 -6
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__027mioa._.js +10 -10
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__02rso~7._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__02wurdb._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0dkg608._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0grx101._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{[root-of-the-server]__0_.051i._.js → [root-of-the-server]__0gzp~d6._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0jvwtv1._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0kc1f.6._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0niqi98._.js +6 -6
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0p769.0._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0s0l_.j._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0s9v7kt._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0v.x5_r._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +14 -14
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0--kvw_._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0-r4t0g._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0266t8u._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_05_d3df._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_06.am62._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_07-798_._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_08mdiy6._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_08z6pkf._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09j_99x._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0csh82a._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0exm5_w._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0j.pt~7._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0j1t6f2._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0lmedw9._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ns9.qo._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0u3tu2x._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0w6dw.t._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0q3gvkd._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0r2s1aj._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +14 -14
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_063q-hj._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_07q6-kr._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0ilz5db._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0y3mwm6._.js +65 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_11~t2ti._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_12e18r-._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0j12j81._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +54 -54
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +677 -251
- package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +3 -3
- package/bundled/web/migrations/0030_task_queue_dispatch_index.sql +5 -0
- package/bundled/web/wrangler.toml +1 -1
- package/bundled/ws-do/index.js +39 -40
- package/dist/cli/index.js +12 -9
- package/dist/cli/session-runner.js +12 -9
- package/dist/index.js +1 -0
- package/package.json +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/08u3p1v8e1gxg.js +0 -63
- package/bundled/web/.open-next/assets/_next/static/chunks/13lom177x6744.js +0 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__10-16_o._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_02t7kem._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0c9~wb-._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0h6e0bb._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0piy2kq._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0s4qnoj._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0sj8mn_._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0tarogd._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0tcd35h._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0x0qvxd._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0z.s70x._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0st8pau._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_13cbsrm._.js +0 -65
- /package/bundled/web/.open-next/assets/_next/static/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/_buildManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/_clientMiddlewareManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/_ssgManifest.js +0 -0
- /package/bundled/web/.open-next/cache/{FIBmbDYK-qE7gniasVcTA → hO1_nTdFBzjO6p-ajc4L9}/robots.txt.cache +0 -0
|
@@ -24758,6 +24758,7 @@ var init_schema = __esm({
|
|
|
24758
24758
|
index("idx_task_queue_trace").on(t.traceId),
|
|
24759
24759
|
index("idx_task_queue_parent").on(t.parentTaskId),
|
|
24760
24760
|
index("idx_task_queue_workspace_type_status").on(t.workspaceId, t.type, t.status),
|
|
24761
|
+
index("idx_task_queue_workspace_status_dispatched").on(t.workspaceId, t.status, t.dispatchedAt),
|
|
24761
24762
|
foreignKey({
|
|
24762
24763
|
columns: [t.agentId, t.workspaceId],
|
|
24763
24764
|
foreignColumns: [agent.id, agent.workspaceId]
|
|
@@ -25895,18 +25896,23 @@ async function findSteerableReplacement(db, agentId, workspaceId) {
|
|
|
25895
25896
|
ne(agentTaskQueue.type, TASK_TYPES.KILL_TASK)
|
|
25896
25897
|
)
|
|
25897
25898
|
);
|
|
25898
|
-
|
|
25899
|
-
|
|
25900
|
-
|
|
25901
|
-
|
|
25902
|
-
|
|
25903
|
-
|
|
25904
|
-
|
|
25905
|
-
|
|
25906
|
-
|
|
25907
|
-
)
|
|
25908
|
-
|
|
25909
|
-
|
|
25899
|
+
const steerableActive = activeTasks.filter((t) => t.contextKey);
|
|
25900
|
+
if (steerableActive.length === 0) return null;
|
|
25901
|
+
const contextKeys = steerableActive.map((t) => t.contextKey);
|
|
25902
|
+
const queuedWithMatchingKeys = await db.select({
|
|
25903
|
+
conversationId: agentTaskQueue.conversationId,
|
|
25904
|
+
contextKey: agentTaskQueue.contextKey
|
|
25905
|
+
}).from(agentTaskQueue).where(
|
|
25906
|
+
and(
|
|
25907
|
+
eq(agentTaskQueue.agentId, agentId),
|
|
25908
|
+
eq(agentTaskQueue.workspaceId, workspaceId),
|
|
25909
|
+
eq(agentTaskQueue.status, "queued"),
|
|
25910
|
+
inArray(agentTaskQueue.contextKey, contextKeys)
|
|
25911
|
+
)
|
|
25912
|
+
);
|
|
25913
|
+
const queuedSet = new Set(queuedWithMatchingKeys.map((q) => `${q.conversationId}:${q.contextKey}`));
|
|
25914
|
+
for (const active of steerableActive) {
|
|
25915
|
+
if (queuedSet.has(`${active.conversationId}:${active.contextKey}`)) {
|
|
25910
25916
|
return { predecessorId: active.id, contextKey: active.contextKey };
|
|
25911
25917
|
}
|
|
25912
25918
|
}
|
|
@@ -25947,20 +25953,22 @@ async function claimTask(db, agentId, workspaceId) {
|
|
|
25947
25953
|
).orderBy(desc(agentTaskQueue.priority), asc(agentTaskQueue.createdAt)).limit(1);
|
|
25948
25954
|
let candidates = await candidateQuery;
|
|
25949
25955
|
if (candidates.length === 0 && steerableConvContextKeys.size > 0) {
|
|
25950
|
-
|
|
25951
|
-
|
|
25952
|
-
|
|
25953
|
-
|
|
25954
|
-
|
|
25955
|
-
|
|
25956
|
-
|
|
25957
|
-
|
|
25958
|
-
)
|
|
25959
|
-
|
|
25960
|
-
|
|
25961
|
-
|
|
25962
|
-
|
|
25963
|
-
|
|
25956
|
+
const steerConditions = [...steerableConvContextKeys.entries()].slice(0, 50).map(
|
|
25957
|
+
([convId, ctxKey]) => and(
|
|
25958
|
+
eq(agentTaskQueue.conversationId, convId),
|
|
25959
|
+
eq(agentTaskQueue.contextKey, ctxKey)
|
|
25960
|
+
)
|
|
25961
|
+
);
|
|
25962
|
+
const steerCandidates = await db.select({ id: agentTaskQueue.id }).from(agentTaskQueue).where(
|
|
25963
|
+
and(
|
|
25964
|
+
eq(agentTaskQueue.agentId, agentId),
|
|
25965
|
+
eq(agentTaskQueue.workspaceId, workspaceId),
|
|
25966
|
+
eq(agentTaskQueue.status, "queued"),
|
|
25967
|
+
or(...steerConditions)
|
|
25968
|
+
)
|
|
25969
|
+
).orderBy(desc(agentTaskQueue.priority), asc(agentTaskQueue.createdAt)).limit(1);
|
|
25970
|
+
if (steerCandidates.length > 0) {
|
|
25971
|
+
candidates = steerCandidates;
|
|
25964
25972
|
}
|
|
25965
25973
|
}
|
|
25966
25974
|
if (candidates.length === 0) return null;
|
|
@@ -26199,24 +26207,15 @@ async function failStaleKillTasks(db, workspaceId) {
|
|
|
26199
26207
|
}
|
|
26200
26208
|
async function failStaleRunningTasks(db, workspaceId, staleSeconds = DEFAULT_STALE_RUNNING_SECONDS) {
|
|
26201
26209
|
const threshold = new Date(Date.now() - staleSeconds * 1e3).toISOString();
|
|
26202
|
-
const
|
|
26210
|
+
const staleRows = await db.select({ id: agentTaskQueue.id }).from(agentTaskQueue).where(
|
|
26203
26211
|
and(
|
|
26204
26212
|
eq(agentTaskQueue.workspaceId, workspaceId),
|
|
26205
|
-
eq(agentTaskQueue.status, "running")
|
|
26213
|
+
eq(agentTaskQueue.status, "running"),
|
|
26214
|
+
sql`coalesce((SELECT MAX(created_at) FROM task_message WHERE task_id = ${agentTaskQueue.id}), ${agentTaskQueue.startedAt}) < ${threshold}`
|
|
26206
26215
|
)
|
|
26207
26216
|
);
|
|
26208
|
-
if (
|
|
26209
|
-
const
|
|
26210
|
-
const lastMessages = await db.select({
|
|
26211
|
-
taskId: taskMessage.taskId,
|
|
26212
|
-
lastMessageAt: sql`max(${taskMessage.createdAt})`.as("last_message_at")
|
|
26213
|
-
}).from(taskMessage).where(inArray(taskMessage.taskId, taskIds)).groupBy(taskMessage.taskId);
|
|
26214
|
-
const lastMsgMap = new Map(lastMessages.map((m) => [m.taskId, m.lastMessageAt]));
|
|
26215
|
-
const staleIds = runningTasks.filter((t) => {
|
|
26216
|
-
const lastActivity = lastMsgMap.get(t.id) ?? t.startedAt;
|
|
26217
|
-
return lastActivity != null && lastActivity < threshold;
|
|
26218
|
-
}).map((t) => t.id);
|
|
26219
|
-
if (staleIds.length === 0) return [];
|
|
26217
|
+
if (staleRows.length === 0) return [];
|
|
26218
|
+
const staleIds = staleRows.map((r) => r.id);
|
|
26220
26219
|
const rows = await db.update(agentTaskQueue).set({
|
|
26221
26220
|
status: "failed",
|
|
26222
26221
|
completedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -33863,7 +33862,12 @@ var ImapPollerDO = class extends DurableObject {
|
|
|
33863
33862
|
return Response.json({ error: "not found" }, { status: 404 });
|
|
33864
33863
|
}
|
|
33865
33864
|
async alarm() {
|
|
33866
|
-
await
|
|
33865
|
+
await Promise.race([
|
|
33866
|
+
this.pollImap(),
|
|
33867
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error("poll timeout")), 25e3))
|
|
33868
|
+
]).catch((e) => {
|
|
33869
|
+
log3.warn("alarm: poll aborted", { err: String(e) });
|
|
33870
|
+
});
|
|
33867
33871
|
}
|
|
33868
33872
|
async pollImap() {
|
|
33869
33873
|
const accountId = this.accountId ?? await this.ctx.storage.get("accountId");
|
|
@@ -156,7 +156,7 @@ var DOQueueHandler = class extends DurableObject {
|
|
|
156
156
|
method: "HEAD",
|
|
157
157
|
headers: {
|
|
158
158
|
// This is defined during build
|
|
159
|
-
"x-prerender-revalidate": "
|
|
159
|
+
"x-prerender-revalidate": "23b2941b7bc3268eabf792eff7fd43c1",
|
|
160
160
|
"x-isr": "1"
|
|
161
161
|
},
|
|
162
162
|
// This one is kind of problematic, it will always show the wall time of the revalidation to `this.revalidationTimeout`
|
|
@@ -180,7 +180,7 @@ var DOQueueHandler = class extends DurableObject {
|
|
|
180
180
|
"INSERT OR REPLACE INTO sync (id, lastSuccess, buildId) VALUES (?, unixepoch(), ?)",
|
|
181
181
|
// We cannot use the deduplication id because it's not unique per route - every time a route is revalidated, the deduplication id is different.
|
|
182
182
|
`${host}${url}`,
|
|
183
|
-
"
|
|
183
|
+
"hO1_nTdFBzjO6p-ajc4L9"
|
|
184
184
|
);
|
|
185
185
|
}
|
|
186
186
|
this.routeInFailedState.delete(msg.MessageDeduplicationId);
|
|
@@ -232,7 +232,7 @@ var DOQueueHandler = class extends DurableObject {
|
|
|
232
232
|
}
|
|
233
233
|
this.routeInFailedState.set(msg.MessageDeduplicationId, updatedFailedState);
|
|
234
234
|
if (!this.disableSQLite) {
|
|
235
|
-
this.sql.exec("INSERT OR REPLACE INTO failed_state (id, data, buildId) VALUES (?, ?, ?)", msg.MessageDeduplicationId, JSON.stringify(updatedFailedState), "
|
|
235
|
+
this.sql.exec("INSERT OR REPLACE INTO failed_state (id, data, buildId) VALUES (?, ?, ?)", msg.MessageDeduplicationId, JSON.stringify(updatedFailedState), "hO1_nTdFBzjO6p-ajc4L9");
|
|
236
236
|
}
|
|
237
237
|
await this.addAlarm();
|
|
238
238
|
}
|
|
@@ -256,8 +256,8 @@ var DOQueueHandler = class extends DurableObject {
|
|
|
256
256
|
return;
|
|
257
257
|
this.sql.exec("CREATE TABLE IF NOT EXISTS failed_state (id TEXT PRIMARY KEY, data TEXT, buildId TEXT)");
|
|
258
258
|
this.sql.exec("CREATE TABLE IF NOT EXISTS sync (id TEXT PRIMARY KEY, lastSuccess INTEGER, buildId TEXT)");
|
|
259
|
-
this.sql.exec("DELETE FROM failed_state WHERE buildId != ?", "
|
|
260
|
-
this.sql.exec("DELETE FROM sync WHERE buildId != ?", "
|
|
259
|
+
this.sql.exec("DELETE FROM failed_state WHERE buildId != ?", "hO1_nTdFBzjO6p-ajc4L9");
|
|
260
|
+
this.sql.exec("DELETE FROM sync WHERE buildId != ?", "hO1_nTdFBzjO6p-ajc4L9");
|
|
261
261
|
const failedStateCursor = this.sql.exec("SELECT * FROM failed_state");
|
|
262
262
|
for (const row of failedStateCursor) {
|
|
263
263
|
this.routeInFailedState.set(row.id, JSON.parse(row.data));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
hO1_nTdFBzjO6p-ajc4L9
|
package/bundled/web/.open-next/assets/_next/static/chunks/{01-oixdvo.kcw.js → 08py05dvbwpz..js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,811156,e=>{"use strict";function t(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var r=t(),n={exec:()=>null};function s(e,t=""){let r="string"==typeof e?e:e.source,n={replace:(e,t)=>{let s="string"==typeof t?t:t.source;return s=s.replace(a.caret,"$1"),r=r.replace(e,s),n},getRegex:()=>new RegExp(r,t)};return n}var i=(()=>{try{return!!RegExp("(?<=1)(?<!1)")}catch{return!1}})(),a={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,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:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,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:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}>`)},l=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,o=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,c=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,
|
|
2
|
-
]`).replace("lheading",
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,811156,e=>{"use strict";function t(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var r=t(),n={exec:()=>null};function s(e,t=""){let r="string"==typeof e?e:e.source,n={replace:(e,t)=>{let s="string"==typeof t?t:t.source;return s=s.replace(a.caret,"$1"),r=r.replace(e,s),n},getRegex:()=>new RegExp(r,t)};return n}var i=(()=>{try{return!!RegExp("(?<=1)(?<!1)")}catch{return!1}})(),a={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,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:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,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:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}>`)},l=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,o=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,c=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,u=s(c).replace(/bull/g,o).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}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),p=s(c).replace(/bull/g,o).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}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),h=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,g=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,d=s(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",g).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),k=s(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,o).getRegex(),f="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",m=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,b=s("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",m).replace("tag",f).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),w=s(h).replace("hr",l).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",f).getRegex(),x={blockquote:s(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",w).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:d,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:l,html:b,lheading:u,list:k,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:w,table:n,text:/^[^\n]+/},$=s("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",l).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",f).getRegex(),y={...x,lheading:p,table:$,paragraph:s(h).replace("hr",l).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",$).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",f).getRegex()},S={...x,html:s("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",m).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:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:n,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:s(h).replace("hr",l).replace("heading",` *#{1,6} *[^
|
|
2
|
+
]`).replace("lheading",u).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},T=/^( {2,}|\\)\n(?!\s*$)/,R=/[\p{P}\p{S}]/u,E=/[\s\p{P}\p{S}]/u,A=/[^\s\p{P}\p{S}]/u,v=s(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,E).getRegex(),P=/(?!~)[\p{P}\p{S}]/u,_=s(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",i?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),C=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,I=s(C,"u").replace(/punct/g,R).getRegex(),O=s(C,"u").replace(/punct/g,P).getRegex(),z="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",L=s(z,"gu").replace(/notPunctSpace/g,A).replace(/punctSpace/g,E).replace(/punct/g,R).getRegex(),M=s(z,"gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|~)/u).replace(/punctSpace/g,/(?!~)[\s\p{P}\p{S}]/u).replace(/punct/g,P).getRegex(),N=s("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,A).replace(/punctSpace/g,E).replace(/punct/g,R).getRegex(),D=s(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,R).getRegex(),B=s("^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,A).replace(/punctSpace/g,E).replace(/punct/g,R).getRegex(),q=s(/\\(punct)/,"gu").replace(/punct/g,R).getRegex(),J=s(/^<(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(),j=s(m).replace("(?:-->|$)","-->").getRegex(),U=s("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",j).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),W=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Z=s(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",W).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),H=s(/^!?\[(label)\]\[(ref)\]/).replace("label",W).replace("ref",g).getRegex(),F=s(/^!?\[(ref)\](?:\[\])?/).replace("ref",g).getRegex(),Q=s("reflink|nolink(?!\\()","g").replace("reflink",H).replace("nolink",F).getRegex(),G=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,X={_backpedal:n,anyPunctuation:q,autolink:J,blockSkip:_,br:T,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:n,delLDelim:n,delRDelim:n,emStrongLDelim:I,emStrongRDelimAst:L,emStrongRDelimUnd:N,escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,link:Z,nolink:F,punctuation:v,reflink:H,reflinkSearch:Q,tag:U,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,url:n},K={...X,link:s(/^!?\[(label)\]\((.*?)\)/).replace("label",W).getRegex(),reflink:s(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",W).getRegex()},V={...X,emStrongRDelimAst:M,emStrongLDelim:O,delLDelim:D,delRDelim:B,url:s(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",G).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:s(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",G).getRegex()},Y={...V,br:s(T).replace("{2,}","*").getRegex(),text:s(V.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},ee={normal:x,gfm:y,pedantic:S},et={normal:X,gfm:V,breaks:Y,pedantic:K},er={"&":"&","<":"<",">":">",'"':""","'":"'"},en=e=>er[e];function es(e,t){if(t){if(a.escapeTest.test(e))return e.replace(a.escapeReplace,en)}else if(a.escapeTestNoEncode.test(e))return e.replace(a.escapeReplaceNoEncode,en);return e}function ei(e){try{e=encodeURI(e).replace(a.percentDecode,"%")}catch{return null}return e}function ea(e,t){let r=e.replace(a.findPipe,(e,t,r)=>{let n=!1,s=t;for(;--s>=0&&"\\"===r[s];)n=!n;return n?"|":" |"}).split(a.splitPipe),n=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;n<r.length;n++)r[n]=r[n].trim().replace(a.slashPipe,"|");return r}function el(e,t,r){let n=e.length;if(0===n)return"";let s=0;for(;s<n;){let i=e.charAt(n-s-1);if(i!==t||r)if(i!==t&&r)s++;else break;else s++}return e.slice(0,n-s)}function eo(e,t,r,n,s){let i=t.href,a=t.title||null,l=e[1].replace(s.other.outputLinkReplace,"$1");n.state.inLink=!0;let o={type:"!"===e[0].charAt(0)?"image":"link",raw:r,href:i,title:a,text:l,tokens:n.inlineTokens(l)};return n.state.inLink=!1,o}var ec=class{options;rules;lexer;constructor(e){this.options=e||r}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:el(e,`
|
|
3
3
|
`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],r=function(e,t,r){let n=e.match(r.other.indentCodeCompensation);if(null===n)return t;let s=n[1];return t.split(`
|
|
4
4
|
`).map(e=>{let t=e.match(r.other.beginningSpace);if(null===t)return e;let[n]=t;return n.length>=s.length?e.slice(s.length):e}).join(`
|
|
5
5
|
`)}(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=el(e,"#");(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:el(t[0],`
|
|
@@ -9,21 +9,21 @@
|
|
|
9
9
|
`),o=l.replace(this.rules.other.blockquoteSetextReplace,`
|
|
10
10
|
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");r=r?`${r}
|
|
11
11
|
${l}`:l,n=n?`${n}
|
|
12
|
-
${o}`:o;let c=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(o,s,!0),this.lexer.state.top=c,0===e.length)break;let
|
|
12
|
+
${o}`:o;let c=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(o,s,!0),this.lexer.state.top=c,0===e.length)break;let u=s.at(-1);if(u?.type==="code")break;if(u?.type==="blockquote"){let t=u.raw+`
|
|
13
13
|
`+e.join(`
|
|
14
|
-
`),i=this.blockquote(t);s[s.length-1]=i,r=r.substring(0,r.length-
|
|
14
|
+
`),i=this.blockquote(t);s[s.length-1]=i,r=r.substring(0,r.length-u.raw.length)+i.raw,n=n.substring(0,n.length-u.text.length)+i.text;break}if(u?.type==="list"){let t=u.raw+`
|
|
15
15
|
`+e.join(`
|
|
16
|
-
`),i=this.list(t);s[s.length-1]=i,r=r.substring(0,r.length-
|
|
16
|
+
`),i=this.list(t);s[s.length-1]=i,r=r.substring(0,r.length-u.raw.length)+i.raw,n=n.substring(0,n.length-u.raw.length)+i.raw,e=t.substring(s.at(-1).raw.length).split(`
|
|
17
17
|
`);continue}}return{type:"blockquote",raw:r,tokens:s,text:n}}}list(e){let t=this.rules.block.list.exec(e);if(t){let r=t[1].trim(),n=r.length>1,s={type:"list",raw:"",ordered:n,start:n?+r.slice(0,-1):"",loose:!1,items:[]};r=n?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=n?r:"[*+-]");let i=this.rules.other.listItemRegex(r),a=!1;for(;e;){let r=!1,n="",l="";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;n=t[0],e=e.substring(n.length);let o=function(e,t=0){let r=t,n="";for(let t of e)if(" "===t){let e=4-r%4;n+=" ".repeat(e),r+=e}else n+=t,r++;return n}(t[2].split(`
|
|
18
18
|
`,1)[0],t[1].length),c=e.split(`
|
|
19
|
-
`,1)[0],
|
|
20
|
-
`,e=e.substring(c.length+1),r=!0),!r){let t=this.rules.other.nextBulletRegex(
|
|
21
|
-
`,1)[0],d;if(c=g,d=this.options.pedantic?c=c.replace(this.rules.other.listReplaceNesting," "):c.replace(this.rules.other.tabCharGlobal," "),s.test(c)||i.test(c)||a.test(c)||
|
|
22
|
-
`+d.slice(
|
|
23
|
-
`+c}
|
|
24
|
-
`,e=e.substring(g.length+1),o=d.slice(
|
|
19
|
+
`,1)[0],u=!o.trim(),p=0;if(this.options.pedantic?(p=2,l=o.trimStart()):u?p=t[1].length+1:(p=(p=o.search(this.rules.other.nonSpaceChar))>4?1:p,l=o.slice(p),p+=t[1].length),u&&this.rules.other.blankLine.test(c)&&(n+=c+`
|
|
20
|
+
`,e=e.substring(c.length+1),r=!0),!r){let t=this.rules.other.nextBulletRegex(p),r=this.rules.other.hrRegex(p),s=this.rules.other.fencesBeginRegex(p),i=this.rules.other.headingBeginRegex(p),a=this.rules.other.htmlBeginRegex(p),h=this.rules.other.blockquoteBeginRegex(p);for(;e;){let g=e.split(`
|
|
21
|
+
`,1)[0],d;if(c=g,d=this.options.pedantic?c=c.replace(this.rules.other.listReplaceNesting," "):c.replace(this.rules.other.tabCharGlobal," "),s.test(c)||i.test(c)||a.test(c)||h.test(c)||t.test(c)||r.test(c))break;if(d.search(this.rules.other.nonSpaceChar)>=p||!c.trim())l+=`
|
|
22
|
+
`+d.slice(p);else{if(u||o.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||s.test(o)||i.test(o)||r.test(o))break;l+=`
|
|
23
|
+
`+c}u=!c.trim(),n+=g+`
|
|
24
|
+
`,e=e.substring(g.length+1),o=d.slice(p)}}s.loose||(a?s.loose=!0:this.rules.other.doubleBlankLine.test(n)&&(a=!0)),s.items.push({type:"list_item",raw:n,task:!!this.options.gfm&&this.rules.other.listIsTask.test(l),loose:!1,text:l,tokens:[]}),s.raw+=n}let l=s.items.at(-1);if(!l)return;for(let e of(l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd(),s.raw=s.raw.trimEnd(),s.items)){if(this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]),e.task){if(e.text=e.text.replace(this.rules.other.listReplaceTask,""),e.tokens[0]?.type==="text"||e.tokens[0]?.type==="paragraph"){e.tokens[0].raw=e.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),e.tokens[0].text=e.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,"");break}}let t=this.rules.other.listTaskCheckbox.exec(e.raw);if(t){let r={type:"checkbox",raw:t[0]+" ",checked:"[ ]"!==t[0]};e.checked=r.checked,s.loose?e.tokens[0]&&["paragraph","text"].includes(e.tokens[0].type)&&"tokens"in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=r.raw+e.tokens[0].raw,e.tokens[0].text=r.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(r)):e.tokens.unshift({type:"paragraph",raw:r.raw,text:r.raw,tokens:[r]}):e.tokens.unshift(r)}}if(!s.loose){let t=e.tokens.filter(e=>"space"===e.type);s.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}}if(s.loose)for(let e of s.items)for(let t of(e.loose=!0,e.tokens))"text"===t.type&&(t.type="paragraph");return s}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:"html",block:!0,raw:t[0],pre:"pre"===t[1]||"script"===t[1]||"style"===t[1],text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",n=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:e,raw:t[0],href:r,title:n}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let r=ea(t[1]),n=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),s=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
25
25
|
`):[],i={type:"table",raw:t[0],header:[],align:[],rows:[]};if(r.length===n.length){for(let e of n)this.rules.other.tableAlignRight.test(e)?i.align.push("right"):this.rules.other.tableAlignCenter.test(e)?i.align.push("center"):this.rules.other.tableAlignLeft.test(e)?i.align.push("left"):i.align.push(null);for(let e=0;e<r.length;e++)i.header.push({text:r[e],tokens:this.lexer.inline(r[e]),header:!0,align:i.align[e]});for(let e of s)i.rows.push(ea(e,i.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:i.align[t]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let e=t[1].trim();return{type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
|
|
26
|
-
`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=el(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{let e=function(e){if(-1===e.indexOf(")"))return -1;let t=0;for(let r=0;r<e.length;r++)if("\\"===e[r])r++;else if("("===e[r])t++;else if(")"===e[r]&&--t<0)return r;return t>0?-2:-1}(t[2]);if(-2===e)return;if(e>-1){let r=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,r).trim(),t[3]=""}}let r=t[2],n="";if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(r);e&&(r=e[1],n=e[3])}else n=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(r=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?r.slice(1):r.slice(1,-1)),eo(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let r;if((r=this.rules.inline.reflink.exec(e))||(r=this.rules.inline.nolink.exec(e))){let e=t[(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," ").toLowerCase()];if(!e){let e=r[0].charAt(0);return{type:"text",raw:e,text:e}}return eo(r,e,r[0],this.lexer,this.rules)}}emStrong(e,t,r=""){let n=this.rules.inline.emStrongLDelim.exec(e);if(!(!n||!n[1]&&!n[2]&&!n[3]&&!n[4]||n[4]&&r.match(this.rules.other.unicodeAlphaNumeric))&&(!(n[1]||n[3])||!r||this.rules.inline.punctuation.exec(r))){let r=[...n[0]].length-1,s,i,a=r,l=0,o="*"===n[0][0]?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(o.lastIndex=0,t=t.slice(-1*e.length+r);null!==(n=o.exec(t));){if(!(s=n[1]||n[2]||n[3]||n[4]||n[5]||n[6]))continue;if(i=[...s].length,n[3]||n[4]){a+=i;continue}if((n[5]||n[6])&&r%3&&!((r+i)%3)){l+=i;continue}if((a-=i)>0)continue;i=Math.min(i,i+a+l);let t=[...n[0]][0].length,o=e.slice(0,r+n.index+t+i);if(Math.min(r,i)%2){let e=o.slice(1,-1);return{type:"em",raw:o,text:e,tokens:this.lexer.inlineTokens(e)}}let c=o.slice(2,-2);return{type:"strong",raw:o,text:c,tokens:this.lexer.inlineTokens(c)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(e),n=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return r&&n&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,r=""){let n=this.rules.inline.delLDelim.exec(e);if(n&&(!n[1]||!r||this.rules.inline.punctuation.exec(r))){let r=[...n[0]].length-1,s,i,a=r,l=this.rules.inline.delRDelim;for(l.lastIndex=0,t=t.slice(-1*e.length+r);null!==(n=l.exec(t));){if(!(s=n[1]||n[2]||n[3]||n[4]||n[5]||n[6])||(i=[...s].length)!==r)continue;if(n[3]||n[4]){a+=i;continue}if((a-=i)>0)continue;i=Math.min(i,i+a);let t=[...n[0]][0].length,l=e.slice(0,r+n.index+t+i),o=l.slice(r,-r);return{type:"del",raw:l,text:o,tokens:this.lexer.inlineTokens(o)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,r;return r="@"===t[2]?"mailto:"+(e=t[1]):e=t[1],{type:"link",raw:t[0],text:e,href:r,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,r;if("@"===t[2])r="mailto:"+(e=t[0]);else{let n;do n=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(n!==t[0])e=t[0],r="www."===t[1]?"http://"+t[0]:t[0]}return{type:"link",raw:t[0],text:e,href:r,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}},
|
|
26
|
+
`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=el(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{let e=function(e){if(-1===e.indexOf(")"))return -1;let t=0;for(let r=0;r<e.length;r++)if("\\"===e[r])r++;else if("("===e[r])t++;else if(")"===e[r]&&--t<0)return r;return t>0?-2:-1}(t[2]);if(-2===e)return;if(e>-1){let r=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,r).trim(),t[3]=""}}let r=t[2],n="";if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(r);e&&(r=e[1],n=e[3])}else n=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(r=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?r.slice(1):r.slice(1,-1)),eo(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let r;if((r=this.rules.inline.reflink.exec(e))||(r=this.rules.inline.nolink.exec(e))){let e=t[(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," ").toLowerCase()];if(!e){let e=r[0].charAt(0);return{type:"text",raw:e,text:e}}return eo(r,e,r[0],this.lexer,this.rules)}}emStrong(e,t,r=""){let n=this.rules.inline.emStrongLDelim.exec(e);if(!(!n||!n[1]&&!n[2]&&!n[3]&&!n[4]||n[4]&&r.match(this.rules.other.unicodeAlphaNumeric))&&(!(n[1]||n[3])||!r||this.rules.inline.punctuation.exec(r))){let r=[...n[0]].length-1,s,i,a=r,l=0,o="*"===n[0][0]?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(o.lastIndex=0,t=t.slice(-1*e.length+r);null!==(n=o.exec(t));){if(!(s=n[1]||n[2]||n[3]||n[4]||n[5]||n[6]))continue;if(i=[...s].length,n[3]||n[4]){a+=i;continue}if((n[5]||n[6])&&r%3&&!((r+i)%3)){l+=i;continue}if((a-=i)>0)continue;i=Math.min(i,i+a+l);let t=[...n[0]][0].length,o=e.slice(0,r+n.index+t+i);if(Math.min(r,i)%2){let e=o.slice(1,-1);return{type:"em",raw:o,text:e,tokens:this.lexer.inlineTokens(e)}}let c=o.slice(2,-2);return{type:"strong",raw:o,text:c,tokens:this.lexer.inlineTokens(c)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(e),n=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return r&&n&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,r=""){let n=this.rules.inline.delLDelim.exec(e);if(n&&(!n[1]||!r||this.rules.inline.punctuation.exec(r))){let r=[...n[0]].length-1,s,i,a=r,l=this.rules.inline.delRDelim;for(l.lastIndex=0,t=t.slice(-1*e.length+r);null!==(n=l.exec(t));){if(!(s=n[1]||n[2]||n[3]||n[4]||n[5]||n[6])||(i=[...s].length)!==r)continue;if(n[3]||n[4]){a+=i;continue}if((a-=i)>0)continue;i=Math.min(i,i+a);let t=[...n[0]][0].length,l=e.slice(0,r+n.index+t+i),o=l.slice(r,-r);return{type:"del",raw:l,text:o,tokens:this.lexer.inlineTokens(o)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,r;return r="@"===t[2]?"mailto:"+(e=t[1]):e=t[1],{type:"link",raw:t[0],text:e,href:r,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,r;if("@"===t[2])r="mailto:"+(e=t[0]);else{let n;do n=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(n!==t[0])e=t[0],r="www."===t[1]?"http://"+t[0]:t[0]}return{type:"link",raw:t[0],text:e,href:r,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}},eu=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||r,this.options.tokenizer=this.options.tokenizer||new ec,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:a,block:ee.normal,inline:et.normal};this.options.pedantic?(t.block=ee.pedantic,t.inline=et.pedantic):this.options.gfm&&(t.block=ee.gfm,this.options.breaks?t.inline=et.breaks:t.inline=et.gfm),this.tokenizer.rules=t}static get rules(){return{block:ee,inline:et}}static lex(t,r){return new e(r).lex(t)}static lexInline(t,r){return new e(r).inlineTokens(t)}lex(e){e=e.replace(a.carriageReturn,`
|
|
27
27
|
`),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],r=!1){for(this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(a.tabCharGlobal," ").replace(a.spaceLine,""));e;){let n;if(this.options.extensions?.block?.some(r=>!!(n=r.call({lexer:this},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)))continue;if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length);let r=t.at(-1);1===n.raw.length&&void 0!==r?r.raw+=`
|
|
28
28
|
`:t.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length);let r=t.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=(r.raw.endsWith(`
|
|
29
29
|
`)?"":`
|
|
@@ -37,7 +37,7 @@ ${o}`:o;let c=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTo
|
|
|
37
37
|
`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):t.push(n),r=s.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length);let r=t.at(-1);r?.type==="text"?(r.raw+=(r.raw.endsWith(`
|
|
38
38
|
`)?"":`
|
|
39
39
|
`)+n.raw,r.text+=`
|
|
40
|
-
`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(n);continue}if(e){let t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let r;this.tokenizer.lexer=this;let n=e,s=null;if(this.tokens.links){let e=Object.keys(this.tokens.links);if(e.length>0)for(;null!==(s=this.tokenizer.rules.inline.reflinkSearch.exec(n));)e.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(n=n.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!==(s=this.tokenizer.rules.inline.anyPunctuation.exec(n));)n=n.slice(0,s.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;null!==(s=this.tokenizer.rules.inline.blockSkip.exec(n));)r=s[2]?s[2].length:0,n=n.slice(0,s.index+r)+"["+"a".repeat(s[0].length-r-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let i=!1,a="";for(;e;){let r;if(i||(a=""),i=!1,this.options.extensions?.inline?.some(n=>!!(r=n.call({lexer:this},e,t))&&(e=e.substring(r.raw.length),t.push(r),!0)))continue;if((r=this.tokenizer.escape(e))||(r=this.tokenizer.tag(e))||(r=this.tokenizer.link(e))){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length);let n=t.at(-1);"text"===r.type&&n?.type==="text"?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if((r=this.tokenizer.emStrong(e,n,a))||(r=this.tokenizer.codespan(e))||(r=this.tokenizer.br(e))||(r=this.tokenizer.del(e,n,a))||(r=this.tokenizer.autolink(e))||!this.state.inLink&&(r=this.tokenizer.url(e))){e=e.substring(r.raw.length),t.push(r);continue}let s=e;if(this.options.extensions?.startInline){let t=1/0,r=e.slice(1),n;this.options.extensions.startInline.forEach(e=>{"number"==typeof(n=e.call({lexer:this},r))&&n>=0&&(t=Math.min(t,n))}),t<1/0&&t>=0&&(s=e.substring(0,t+1))}if(r=this.tokenizer.inlineText(s)){e=e.substring(r.raw.length),"_"!==r.raw.slice(-1)&&(a=r.raw.slice(-1)),i=!0;let n=t.at(-1);n?.type==="text"?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(e){let t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return t}},
|
|
40
|
+
`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(n);continue}if(e){let t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let r;this.tokenizer.lexer=this;let n=e,s=null;if(this.tokens.links){let e=Object.keys(this.tokens.links);if(e.length>0)for(;null!==(s=this.tokenizer.rules.inline.reflinkSearch.exec(n));)e.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(n=n.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!==(s=this.tokenizer.rules.inline.anyPunctuation.exec(n));)n=n.slice(0,s.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;null!==(s=this.tokenizer.rules.inline.blockSkip.exec(n));)r=s[2]?s[2].length:0,n=n.slice(0,s.index+r)+"["+"a".repeat(s[0].length-r-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let i=!1,a="";for(;e;){let r;if(i||(a=""),i=!1,this.options.extensions?.inline?.some(n=>!!(r=n.call({lexer:this},e,t))&&(e=e.substring(r.raw.length),t.push(r),!0)))continue;if((r=this.tokenizer.escape(e))||(r=this.tokenizer.tag(e))||(r=this.tokenizer.link(e))){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length);let n=t.at(-1);"text"===r.type&&n?.type==="text"?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if((r=this.tokenizer.emStrong(e,n,a))||(r=this.tokenizer.codespan(e))||(r=this.tokenizer.br(e))||(r=this.tokenizer.del(e,n,a))||(r=this.tokenizer.autolink(e))||!this.state.inLink&&(r=this.tokenizer.url(e))){e=e.substring(r.raw.length),t.push(r);continue}let s=e;if(this.options.extensions?.startInline){let t=1/0,r=e.slice(1),n;this.options.extensions.startInline.forEach(e=>{"number"==typeof(n=e.call({lexer:this},r))&&n>=0&&(t=Math.min(t,n))}),t<1/0&&t>=0&&(s=e.substring(0,t+1))}if(r=this.tokenizer.inlineText(s)){e=e.substring(r.raw.length),"_"!==r.raw.slice(-1)&&(a=r.raw.slice(-1)),i=!0;let n=t.at(-1);n?.type==="text"?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(e){let t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return t}},ep=class{options;parser;constructor(e){this.options=e||r}space(e){return""}code({text:e,lang:t,escaped:r}){let n=(t||"").match(a.notSpaceStart)?.[0],s=e.replace(a.endingNewline,"")+`
|
|
41
41
|
`;return n?'<pre><code class="language-'+es(n)+'">'+(r?s:es(s,!0))+`</code></pre>
|
|
42
42
|
`:"<pre><code>"+(r?s:es(s,!0))+`</code></pre>
|
|
43
43
|
`}blockquote({tokens:e}){return`<blockquote>
|
|
@@ -55,5 +55,5 @@ ${this.parser.parse(e)}</blockquote>
|
|
|
55
55
|
`}tablerow({text:e}){return`<tr>
|
|
56
56
|
${e}</tr>
|
|
57
57
|
`}tablecell(e){let t=this.parser.parseInline(e.tokens),r=e.header?"th":"td";return(e.align?`<${r} align="${e.align}">`:`<${r}>`)+t+`</${r}>
|
|
58
|
-
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${es(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:r}){let n=this.parser.parseInline(r),s=ei(e);if(null===s)return n;let i='<a href="'+(e=s)+'"';return t&&(i+=' title="'+es(t)+'"'),i+=">"+n+"</a>"}image({href:e,title:t,text:r,tokens:n}){n&&(r=this.parser.parseInline(n,this.parser.textRenderer));let s=ei(e);if(null===s)return es(r);e=s;let i=`<img src="${e}" alt="${es(r)}"`;return t&&(i+=` title="${es(t)}"`),i+=">"}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:es(e.text)}},
|
|
59
|
-
Please report this to https://github.com/markedjs/marked.`,e){let e="<p>An error occurred:</p><pre>"+es(r.message+"",!0)+"</pre>";return t?Promise.resolve(e):e}if(t)return Promise.reject(r);throw r}}};function ef(e,t){return ek.parse(e,t)}ef.options=ef.setOptions=function(e){return ek.setOptions(e),ef.defaults=ek.defaults,r=ef.defaults,ef},ef.getDefaults=t,ef.defaults=r,ef.use=function(...e){return ek.use(...e),ef.defaults=ek.defaults,r=ef.defaults,ef},ef.walkTokens=function(e,t){return ek.walkTokens(e,t)},ef.parseInline=ek.parseInline,ef.Parser=eg,ef.parser=eg.parse,ef.Renderer=eh,ef.TextRenderer=eu,ef.Lexer=ep,ef.lexer=ep.lex,ef.Tokenizer=ec,ef.Hooks=ed,ef.parse=ef,ef.options,ef.setOptions,ef.use,ef.walkTokens,ef.parseInline,eg.parse,ep.lex,e.s(["Lexer",0,ep,"marked",0,ef])},500324,e=>{"use strict";var t=e.i(368075),r=e.i(298699);let n=(0,r.createContext)(null);e.s(["WorkspaceProvider",0,function({workspaceId:e,slug:s,children:i}){return(0,r.useEffect)(()=>{try{localStorage.setItem("lastWorkspace",s)}catch{}},[s]),(0,t.jsx)(n.Provider,{value:{workspaceId:e,slug:s},children:i})},"useWorkspace",0,function(){let e=(0,r.useContext)(n);if(!e)throw Error("useWorkspace must be used within WorkspaceProvider");return e}])},222862,636557,e=>{"use strict";class t extends Error{status;details;constructor(e,t,r){super(e),this.name="ApiError",this.status=t,this.details=r}get isNetworkError(){return 0===this.status}get isRateLimit(){return 429===this.status}get isUnauthorized(){return 401===this.status}}function r(e,t){return"validation error"===e&&t?.length?function(e){let[t,...r]=e.split(":"),n=r.join(":").trim();if(!n)return e;let s=t.trim(),i=s.trim().replace(/[_-]+/g," ").replace(/\b\w/g,e=>e.toUpperCase()),a=n.replace(/^required$/i,"is required"),l=a.toLowerCase().replace(/[_-]+/g," "),o=s.toLowerCase().replace(/[_-]+/g," ");return o&&l.startsWith(`${o} `)&&(a=a.slice(s.length).trimStart()),i?`${i} ${a}`:a}(t[0]):e}async function n(e,n){let s;try{s=await fetch(""+e,{...n,credentials:"include",headers:{"Content-Type":"application/json",...n?.headers}})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===s.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!s.ok){let e,n;try{let t=await s.json();e=t.error,n=t.details}catch{}if(429===s.status)throw new t("Please wait a moment before trying again",429);if(s.status>=500)throw new t(r(e,n)||"Something went wrong — please try again",s.status,n);throw new t(r(e,n)||"Something went wrong",s.status,n)}if(204!==s.status)return s.json()}function s(e,t){let r=new URLSearchParams({workspace_id:e,...t});return`?${r.toString()}`}e.s(["ApiError",0,t],636557);let i=async(e,r,i,a)=>{let l;if(!a||0===a.length)return n(`/api/conversations/${e}/messages${s(i)}`,{method:"POST",body:JSON.stringify({content:r})});let o=new FormData;for(let e of(o.append("content",r),a))o.append("file",e);try{l=await fetch(`/api/conversations/${e}/messages${s(i)}`,{method:"POST",credentials:"include",body:o})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===l.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!l.ok){let e,r;try{let t=await l.json();e=t.error,r=t.details}catch{}if(429===l.status)throw new t("Please wait a moment before trying again",429);if(l.status>=500)throw new t(e||"Something went wrong — please try again",l.status,r);throw new t(e||"Something went wrong",l.status,r)}return l.json()},a=async(e,r,i,a)=>{let l;if(!a||0===a.length)return n(`/api/conversations/${e}/buffered-messages${s(i)}`,{method:"POST",body:JSON.stringify({content:r})});let o=new FormData;for(let e of(o.append("content",r),a))o.append("file",e);try{l=await fetch(`/api/conversations/${e}/buffered-messages${s(i)}`,{method:"POST",credentials:"include",body:o})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===l.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!l.ok){let e,r;try{let t=await l.json();e=t.error,r=t.details}catch{}if(429===l.status)throw new t(e||"Maximum follow-ups reached",429);if(l.status>=500)throw new t(e||"Something went wrong — please try again",l.status,r);throw new t(e||"Something went wrong",l.status,r)}return l.json()},l=async(e,t)=>{let r=new URLSearchParams({workspace_id:t}),n=await fetch(`/api/email/${e}/body?${r}`,{credentials:"include"});if(!n.ok)return{content:"(body not available)",isHtml:!1};let s=n.headers.get("Content-Type")??"";return{content:await n.text(),isHtml:s.includes("text/html")}},o=async(e,r)=>{let n=new FormData;n.append("file",e);let i=await fetch(`/api/email/upload${s(r)}`,{method:"POST",credentials:"include",body:n});if(!i.ok)throw new t(await i.text().catch(()=>"Upload failed"),i.status);return i.json()},c=async(e,r)=>{let i;if(!r.files||0===r.files.length)return n(`/api/issues${s(e)}`,{method:"POST",body:JSON.stringify({agent_id:r.agent_id,title:r.title,description:r.description})});let a=new FormData;for(let e of(r.agent_id&&a.append("agent_id",r.agent_id),a.append("title",r.title),a.append("description",r.description??""),r.files))a.append("file",e);try{i=await fetch(`/api/issues${s(e)}`,{method:"POST",credentials:"include",body:a})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===i.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!i.ok){let e,r;try{let t=await i.json();e=t.error,r=t.details}catch{}if(429===i.status)throw new t("Please wait a moment before trying again",429);if(i.status>=500)throw new t(e||"Something went wrong — please try again",i.status,r);throw new t(e||"Something went wrong",i.status,r)}return i.json()},p=async(e,t)=>{let r=new URLSearchParams({workspace_id:t}),n=await fetch(`/api/artifacts/${e}/content?${r}`,{credentials:"include"});return n.ok?n.text():"(content not available)"};e.s(["acceptInvite",0,e=>n(`/api/invite/${e}`,{method:"POST"}),"addWhitelistEmail",0,(e,t,r)=>n(`/api/agents/${e}/whitelist${s(r)}`,{method:"POST",body:JSON.stringify({email:t})}),"approveMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings/${t}/approve${s(r)}`,{method:"POST"}),"cancelActiveTask",0,(e,t)=>n(`/api/conversations/${e}/active-task${s(t)}`,{method:"DELETE"}),"chatInit",0,(e,t,r)=>n(`/api/agents/${e}/chat-init${s(t)}`,{method:"POST",body:JSON.stringify({...r?{channel:r}:{}})}),"createAgent",0,(e,t)=>n(`/api/agents${s(t)}`,{method:"POST",body:JSON.stringify(e)}),"createAgentLink",0,(e,t)=>n(`/api/agent-links${s(t)}`,{method:"POST",body:JSON.stringify(e)}),"createBufferedMessage",0,a,"createCalendarEvent",0,(e,t)=>n(`/api/calendar${s(t)}`,{method:"POST",body:JSON.stringify(e)}),"createChannelApi",0,(e,t)=>n(`/api/channels${s(e)}`,{method:"POST",body:JSON.stringify({name:t})}),"createConversation",0,(e,t,r)=>n(`/api/conversations${s(t)}`,{method:"POST",body:JSON.stringify({agent_id:e,...r?{channel:r}:{}})}),"createEmailAccount",0,(e,t,r)=>n(`/api/agents/${e}/email-accounts${s(r)}`,{method:"POST",body:JSON.stringify(t)}),"createInvite",0,e=>n(`/api/workspaces/${e}/invites${s(e)}`,{method:"POST"}),"createIssue",0,c,"createMachineToken",0,(e,t)=>n(`/api/machine-tokens${t?s(t):""}`,{method:"POST",body:JSON.stringify({name:e||"default"})}),"createMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings${s(t)}`,{method:"POST",body:JSON.stringify(r)}),"deleteAgent",0,(e,t)=>n(`/api/agents/${e}${s(t)}`,{method:"DELETE"}),"deleteAgentLink",0,(e,t)=>n(`/api/agent-links/${e}${s(t)}`,{method:"DELETE"}),"deleteBufferedMessage",0,(e,t,r)=>n(`/api/conversations/${e}/buffered-messages/${t}${s(r)}`,{method:"DELETE"}),"deleteCalendarEvent",0,(e,t,r)=>n(`/api/calendar/${e}${s(t)}`,{method:"DELETE",...r&&r.scope?{headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}:{}}),"deleteChannelApi",0,(e,t)=>n(`/api/channels/${e}${s(t)}`,{method:"DELETE"}),"deleteEmail",0,(e,t)=>n(`/api/email/${e}${s(t)}`,{method:"DELETE"}),"deleteEmailAccount",0,(e,t,r)=>n(`/api/agents/${e}/email-accounts/${t}${s(r)}`,{method:"DELETE"}),"deleteIssue",0,(e,t)=>n(`/api/issues/${t}${s(e)}`,{method:"DELETE"}),"deleteMachine",0,(e,t)=>n(`/api/runtimes/machine${s(t,{daemon_id:e})}`,{method:"DELETE"}),"deleteMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings/${t}${s(r)}`,{method:"DELETE"}),"deleteWorkspace",0,(e,t)=>n(`/api/workspaces/${e}${s(e)}`,{method:"DELETE",body:JSON.stringify({confirm_name:t})}),"fetchLatestCliVersion",0,()=>n("/api/cli/latest-version"),"fetchModelOptions",0,()=>n("/api/config/model-options"),"flagMessage",0,(e,t)=>n(`/api/flags${s(e)}`,{method:"POST",body:JSON.stringify({messageId:t})}),"getActiveTask",0,(e,t)=>n(`/api/conversations/${e}/active-task${s(t)}`),"getArtifactContent",0,p,"getConversation",0,(e,t)=>n(`/api/conversations/${e}${s(t)}`),"getEmail",0,(e,t)=>n(`/api/email/${e}${s(t)}`),"getEmailBody",0,l,"getEmailThread",0,(e,t)=>n(`/api/email/${e}/thread${s(t)}`),"getFlaggedCount",0,e=>n(`/api/flags/count${s(e)}`),"getInboxCount",0,(e,t)=>{let r={};return t?.types?.length&&(r.types=t.types.join(",")),n(`/api/inbox/count${s(e,r)}`)},"getInviteInfo",0,e=>n(`/api/invite/${e}`),"getIssue",0,(e,t)=>n(`/api/issues/${t}${s(e)}`),"getMemberMe",0,e=>n(`/api/members/me${s(e)}`),"getMinCliVersion",0,()=>n("/api/config/min-version"),"getTask",0,(e,t)=>n(`/api/tasks/${e}${s(t)}`),"getTaskMessages",0,(e,t,r)=>n(`/api/tasks/${e}/messages${s(t,r?{since:String(r)}:void 0)}`),"getTaskStepCounts",0,(e,t)=>n(`/api/tasks/step-counts${s(t)}`,{method:"POST",body:JSON.stringify({task_ids:e})}),"getTrace",0,(e,t)=>n(`/api/traces/${e}${s(t)}`),"getWorkspaceOverview",0,e=>n(`/api/workspaces/${e}/overview${s(e)}`),"grantAgentAccess",0,(e,t,r)=>n(`/api/agents/${t}/access${s(e)}`,{method:"POST",body:JSON.stringify({user_id:r})}),"listAgentAccess",0,(e,t)=>n(`/api/agents/${t}/access${s(e)}`),"listAgentActiveTaskCounts",0,e=>n(`/api/agents/active-task-counts${s(e)}`),"listAgentActivity",0,(e,t,r)=>{let i={};return r?.limit&&(i.limit=String(r.limit)),r?.before&&(i.before=r.before),r?.beforeId&&(i.before_id=r.beforeId),r?.status&&(i.status=r.status),r?.type&&(i.type=r.type),n(`/api/agents/${e}/activity${s(t,i)}`)},"listAgentLinks",0,e=>n(`/api/agent-links${s(e)}`),"listAgentPins",0,e=>n(`/api/agents/pins${s(e)}`),"listAgents",0,e=>n(`/api/agents${s(e)}`),"listArtifacts",0,(e,t)=>n(`/api/artifacts${s(t,{conversation_id:e})}`),"listBufferedMessages",0,(e,t)=>n(`/api/conversations/${e}/buffered-messages${s(t)}`),"listCalendarEvents",0,(e,t)=>{let r={};return t?.agentId&&(r.agentId=t.agentId),t?.from&&(r.from=t.from),t?.to&&(r.to=t.to),n(`/api/calendar${s(e,r)}`)},"listChannels",0,e=>n(`/api/channels${s(e)}`),"listEmailAccounts",0,(e,t)=>n(`/api/agents/${e}/email-accounts${s(t)}`),"listEmails",0,(e,t,r,i)=>n(`/api/email${s(t,{agentId:e,...r?{folder:r}:{},...i?{address:i}:{}})}`),"listFlaggedItems",0,(e,t)=>{let r={};return t?.limit&&(r.limit=String(t.limit)),t?.before&&(r.before=t.before),n(`/api/flags${s(e,r)}`)},"listFlaggedMessageIds",0,(e,t)=>n(`/api/flags${s(e,{conversation_id:t,ids_only:"true"})}`),"listInboxItems",0,(e,t)=>{let r={};return t?.limit&&(r.limit=String(t.limit)),t?.before&&(r.before=t.before),t?.types?.length&&(r.types=t.types.join(",")),n(`/api/inbox${s(e,r)}`)},"listInvites",0,e=>n(`/api/workspaces/${e}/invites${s(e)}`),"listIssues",0,(e,t)=>{let r={};return t?.agentId&&(r.agentId=t.agentId),t?.status&&(r.status=t.status),t?.terminal!==void 0&&(r.terminal=String(t.terminal)),n(`/api/issues${s(e,r)}`)},"listMeetings",0,(e,t)=>n(`/api/agents/${e}/meetings${s(t)}`),"listMembers",0,e=>n(`/api/workspaces/${e}/members${s(e)}`),"listMessages",0,(e,t,r)=>{let i={};return r?.limit&&(i.limit=String(r.limit)),r?.before&&(i.before=r.before),r?.beforeId&&(i.before_id=r.beforeId),n(`/api/conversations/${e}/messages${s(t,i)}`)},"listMessagesAroundTask",0,(e,t,r)=>n(`/api/conversations/${e}/messages${s(t,{around_task:r})}`),"listPreviousConversations",0,(e,t,r)=>{let i={exclude:r.exclude,before:r.before};return r.channel&&(i.channel=r.channel),r.limit&&(i.limit=String(r.limit)),n(`/api/agents/${e}/conversations${s(t,i)}`)},"listRuntimes",0,e=>n(`/api/runtimes${s(e)}`),"listTraces",0,(e,t)=>{let r={};return t?.limit&&(r.limit=String(t.limit)),t?.before&&(r.before=t.before),t?.status&&(r.status=t.status),t?.multiAgent&&(r.multiAgent="true"),t?.agentId&&(r.agentId=t.agentId),t?.channel&&(r.channel=t.channel),n(`/api/traces${s(e,r)}`)},"listWhitelist",0,(e,t)=>n(`/api/agents/${e}/whitelist${s(t)}`),"listWorkspaceActiveTasks",0,e=>n(`/api/agents/active-tasks${s(e)}`),"listWorkspaces",0,()=>n("/api/workspaces"),"markAllInboxRead",0,e=>n(`/api/inbox/read-all${s(e)}`,{method:"POST"}),"markInboxRead",0,(e,t)=>n(`/api/inbox/read${s(t)}`,{method:"POST",body:JSON.stringify({conversationId:e})}),"pinAgent",0,(e,t)=>n(`/api/agents/${t}/pin${s(e)}`,{method:"POST"}),"removeMember",0,(e,t)=>n(`/api/workspaces/${e}/members/${t}${s(e)}`,{method:"DELETE"}),"removeWhitelistEmail",0,(e,t,r)=>n(`/api/agents/${e}/whitelist/${t}${s(r)}`,{method:"DELETE"}),"renameChannelApi",0,(e,t,r)=>n(`/api/channels/${e}${s(t)}`,{method:"PATCH",body:JSON.stringify({name:r})}),"reorderAgentPins",0,(e,t)=>n(`/api/agents/pins/reorder${s(e)}`,{method:"PUT",body:JSON.stringify({ordered_agent_ids:t})}),"reorderChannelsApi",0,(e,t)=>n(`/api/channels/reorder${s(e)}`,{method:"PUT",body:JSON.stringify({ordered_channel_ids:t})}),"reorderUnpinnedAgents",0,(e,t)=>n(`/api/agents/sidebar/reorder${s(e)}`,{method:"PUT",body:JSON.stringify({ordered_agent_ids:t})}),"requestWorkspaceBrowse",0,(e,t,r,i)=>n(`/api/agents/${e}/workspace/browse${s(t)}`,{method:"POST",body:JSON.stringify({request_type:r,path:i})}),"retryTask",0,(e,t)=>n(`/api/tasks/${e}/retry${s(t)}`,{method:"POST"}),"revokeAgentAccess",0,(e,t,r,i=!1)=>n(`/api/agents/${t}/access/${r}${s(e)}${i?"&remove_whitelist=true":""}`,{method:"DELETE"}),"revokeInvite",0,(e,t)=>n(`/api/workspaces/${e}/invites/${t}${s(e)}`,{method:"DELETE"}),"sendEmail",0,(e,t,r,i,a,l,o,c)=>n(`/api/email/send${s(a)}`,{method:"POST",body:JSON.stringify({agentId:e,to:t,subject:r,htmlBody:i,attachments:l,...o,customAccountId:c})}),"sendMessage",0,i,"stopMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings/${t}/stop${s(r)}`,{method:"POST"}),"syncEmailAccount",0,(e,t,r)=>n(`/api/agents/${e}/email-accounts/${t}/sync${s(r)}`,{method:"POST"}),"triggerRuntimeRescan",0,(e,t)=>n(`/api/runtimes/${e}/rescan${s(t)}`,{method:"POST"}),"triggerRuntimeUpdate",0,(e,t)=>n(`/api/runtimes/${e}/update${s(t)}`,{method:"POST"}),"unflagMessage",0,(e,t)=>n(`/api/flags/${t}${s(e)}`,{method:"DELETE"}),"unpinAgent",0,(e,t)=>n(`/api/agents/${t}/pin${s(e)}`,{method:"DELETE"}),"updateAgent",0,(e,t,r)=>n(`/api/agents/${e}${s(r)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateAgentLink",0,(e,t,r)=>n(`/api/agent-links/${e}${s(r)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateCalendarEvent",0,(e,t,r)=>n(`/api/calendar/${e}${s(r)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateEmailStatus",0,(e,t,r)=>n(`/api/email/${e}${s(t)}`,{method:"PATCH",body:JSON.stringify({status:r})}),"updateIssue",0,(e,t,r)=>n(`/api/issues/${t}${s(e)}`,{method:"PATCH",body:JSON.stringify(r)}),"updateMemberMe",0,(e,t)=>n(`/api/members/me${s(e)}`,{method:"PATCH",body:JSON.stringify({global_instruction:t})}),"updateWorkspace",0,(e,t)=>n(`/api/workspaces/${e}${s(e)}`,{method:"PATCH",body:JSON.stringify(t)}),"uploadEmailAttachment",0,o],222862)},728886,e=>{"use strict";var t=e.i(368075),r=e.i(613349);e.s(["Skeleton",0,function({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"skeleton",className:(0,r.cn)("animate-pulse rounded-md bg-muted",e),...n})}])},642342,e=>{"use strict";var t=e.i(459119),r=e.i(298699);let n=(0,e.i(613349).isLocalMode)(),s=Number(t.default.env.NEXT_PUBLIC_WS_DO_PORT)||8789,i=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_DELAY_MS)||1e3,a=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_MAX_DELAY_MS)||3e4;e.s(["useUserWs",0,function(e){let t=(0,r.useRef)(null),l=(0,r.useRef)(i),o=(0,r.useRef)(e),c=(0,r.useRef)(null);(0,r.useEffect)(()=>{o.current=e},[e]);let p=(0,r.useRef)(null),h=(0,r.useCallback)(()=>{let e=Math.min(l.current,a);l.current=Math.min(2*e,a),c.current=setTimeout(()=>{p.current?.()},e+500*Math.random())},[]),u=(0,r.useCallback)(async()=>{let e,r,a,c=s;try{let t=await fetch("/api/ws/token");if(!t.ok){console.warn("[ws] token fetch failed:",t.status),h();return}let n=await t.json();e=n.userId,r=n.token,n.wsPort&&(c=n.wsPort)}catch(e){console.warn("[ws] token fetch error:",e),h();return}let p=n?`ws://localhost:${c}/?userId=${e}`:`${location.origin.replace("http","ws")}/api/ws/user?userId=${e}`;try{a=new WebSocket(p)}catch(e){console.warn("[ws] WebSocket creation failed:",e),h();return}t.current=a,a.onopen=()=>{l.current=i,a.send(JSON.stringify({type:"auth",token:r}))},a.onmessage=e=>{try{let t=JSON.parse(e.data);if("auth.ok"===t.type)return;o.current(t)}catch{}},a.onerror=()=>{},a.onclose=()=>{a===t.current&&h()}},[h]);(0,r.useEffect)(()=>{p.current=u},[u]),(0,r.useEffect)(()=>(u(),()=>{null!==c.current&&(clearTimeout(c.current),c.current=null);let e=t.current;t.current=null,e?.close()}),[u])}])},355578,e=>{"use strict";var t=e.i(368075),r=e.i(298699),n=e.i(222862),s=e.i(880932),i=e.i(642342);let a=(0,r.createContext)(null);e.s(["AgentProvider",0,function({workspaceId:e,children:l}){let[o,c]=(0,r.useState)([]),[p,h]=(0,r.useState)([]),[u,g]=(0,r.useState)(!0),[d,k]=(0,r.useState)({}),[f,m]=(0,r.useState)([]),b=(0,r.useRef)(!1),[w,x]=(0,r.useState)([]),[$,y]=(0,r.useState)(new Map),[S,T]=(0,r.useState)(new Map),A=(0,r.useRef)(!1),E=(0,r.useRef)(new Set),R=(0,r.useRef)(!0),P=(0,r.useCallback)(e=>(E.current.add(e),()=>{E.current.delete(e)}),[]),v=(0,r.useRef)(!1),_=(0,r.useCallback)(async()=>{if(!v.current){v.current=!0;try{if(b.current){let t=await (0,n.listWorkspaceActiveTasks)(e);if(!R.current)return;m(t.tasks);let r={};for(let e of t.tasks)r[e.agent_id]=(r[e.agent_id]??0)+1;k(r),b.current=t.tasks.length>0}else{let t=await (0,n.listAgentActiveTaskCounts)(e);if(!R.current)return;if(k(t.counts),Object.values(t.counts).some(e=>e>0)){b.current=!0;let t=await (0,n.listWorkspaceActiveTasks)(e);R.current&&m(t.tasks)}else m([])}}catch{}finally{v.current=!1}}},[e]);(0,r.useEffect)(()=>{R.current=!0,_();let e=setInterval(_,5e3);return()=>{R.current=!1,clearInterval(e)}},[_]);let C=(0,r.useCallback)(async()=>{try{let[t,r,s,i]=await Promise.all([(0,n.listAgents)(e),(0,n.listRuntimes)(e),(0,n.listAgentPins)(e),(0,n.listAgentLinks)(e)]);c(t),h(r),x(i),y(new Map(s.pins.map(e=>[e.agent_id,{created_at:e.created_at,position:e.position}]))),T(new Map(s.sidebar_order.map(e=>[e.agent_id,e.position])))}catch(e){s.toast.error(e instanceof Error?e.message:"Failed to load data")}finally{g(!1),A.current=!0}},[e]);(0,r.useEffect)(()=>{C()},[C]);let I=(0,r.useRef)(null),O=(0,r.useCallback)(()=>{I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{I.current=null,C()},300)},[C]);(0,r.useEffect)(()=>()=>{I.current&&clearTimeout(I.current)},[]);let z=(0,r.useCallback)(t=>{for(let e of E.current)e(t);switch(t.type){case"runtime.registered":if(t.workspaceId!==e)break;C();break;case"runtime.deleted":C();break;case"runtime.status":if(t.workspaceId!==e)break;O();break;case"task.updated":_()}},[C,O,_,e]);(0,i.useUserWs)(z);let L=(0,r.useCallback)(async t=>{try{let r=await (0,n.createAgent)(t,e);return await C(),r}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to create agent"),null}},[C,e]),M=(0,r.useCallback)(async(t,r)=>{try{return await (0,n.updateAgent)(t,r,e),await C(),!0}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to update agent"),!1}},[C,e]),N=(0,r.useCallback)(async t=>{try{return await (0,n.deleteAgent)(t,e),await C(),!0}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to remove agent"),!1}},[C,e]),D=(0,r.useCallback)(async t=>{y(e=>{let r=Math.max(-1,...[...e.values()].map(e=>e.position));return new Map(e).set(t,{created_at:new Date().toISOString(),position:r+1})});try{await (0,n.pinAgent)(e,t)}catch{y(e=>{let r=new Map(e);return r.delete(t),r}),s.toast.error("Failed to pin agent")}},[e]),B=(0,r.useCallback)(async t=>{let r;y(e=>{r=e.get(t);let n=new Map(e);return n.delete(t),n});try{await (0,n.unpinAgent)(e,t)}catch{void 0!==r&&y(e=>new Map(e).set(t,r)),s.toast.error("Failed to unpin agent")}},[e]),q=(0,r.useCallback)(async t=>{let r=new Map($);y(e=>{let r=new Map(e);return t.forEach((e,t)=>{let n=r.get(e);n&&r.set(e,{...n,position:t})}),r});try{await (0,n.reorderAgentPins)(e,t)}catch{y(r),s.toast.error("Failed to reorder pins")}},[e,$]),J=(0,r.useCallback)(async t=>{let r=new Map(S);T(new Map(t.map((e,t)=>[e,t])));try{await (0,n.reorderUnpinnedAgents)(e,t)}catch{T(r),s.toast.error("Failed to reorder agents")}},[e,S]),j=(0,r.useCallback)(()=>{let e=p.find(e=>"online"===e.status);return e?.id??""},[p]),U=(0,r.useCallback)(async()=>{try{return(await (0,n.createMachineToken)("cli",e)).token}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to generate token"),null}},[e]),W=(0,r.useCallback)(async t=>{try{return await (0,n.deleteMachine)(t,e),await C(),!0}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to remove machine"),!1}},[C,e]);return(0,t.jsx)(a.Provider,{value:{workspaceId:e,agents:o,agentLinks:w,runtimes:p,loading:u,activeTaskCounts:d,activeTaskDetails:f,pins:$,reload:C,subscribeWs:P,handleCreateAgent:L,handleUpdateAgent:M,handleDeleteAgent:N,handlePinAgent:D,handleUnpinAgent:B,handleReorderPins:q,unpinnedOrder:S,handleReorderUnpinned:J,getFirstOnlineRuntimeId:j,handleGenerateToken:U,handleDeleteMachine:W},children:l})},"useAgentContext",0,function(){let e=(0,r.useContext)(a);if(!e)throw Error("useAgentContext must be used within AgentProvider");return e}])}]);
|
|
58
|
+
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${es(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:r}){let n=this.parser.parseInline(r),s=ei(e);if(null===s)return n;let i='<a href="'+(e=s)+'"';return t&&(i+=' title="'+es(t)+'"'),i+=">"+n+"</a>"}image({href:e,title:t,text:r,tokens:n}){n&&(r=this.parser.parseInline(n,this.parser.textRenderer));let s=ei(e);if(null===s)return es(r);e=s;let i=`<img src="${e}" alt="${es(r)}"`;return t&&(i+=` title="${es(t)}"`),i+=">"}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:es(e.text)}},eh=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},eg=class e{options;renderer;textRenderer;constructor(e){this.options=e||r,this.options.renderer=this.options.renderer||new ep,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new eh}static parse(t,r){return new e(r).parse(t)}static parseInline(t,r){return new e(r).parseInline(t)}parse(e){this.renderer.parser=this;let t="";for(let r=0;r<e.length;r++){let n=e[r];if(this.options.extensions?.renderers?.[n.type]){let e=this.options.extensions.renderers[n.type].call({parser:this},n);if(!1!==e||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(n.type)){t+=e||"";continue}}switch(n.type){case"space":t+=this.renderer.space(n);break;case"hr":t+=this.renderer.hr(n);break;case"heading":t+=this.renderer.heading(n);break;case"code":t+=this.renderer.code(n);break;case"table":t+=this.renderer.table(n);break;case"blockquote":t+=this.renderer.blockquote(n);break;case"list":t+=this.renderer.list(n);break;case"checkbox":t+=this.renderer.checkbox(n);break;case"html":t+=this.renderer.html(n);break;case"def":t+=this.renderer.def(n);break;case"paragraph":t+=this.renderer.paragraph(n);break;case"text":t+=this.renderer.text(n);break;default:{let e='Token with "'+n.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let r="";for(let n=0;n<e.length;n++){let s=e[n];if(this.options.extensions?.renderers?.[s.type]){let e=this.options.extensions.renderers[s.type].call({parser:this},s);if(!1!==e||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type)){r+=e||"";continue}}switch(s.type){case"escape":case"text":r+=t.text(s);break;case"html":r+=t.html(s);break;case"link":r+=t.link(s);break;case"image":r+=t.image(s);break;case"checkbox":r+=t.checkbox(s);break;case"strong":r+=t.strong(s);break;case"em":r+=t.em(s);break;case"codespan":r+=t.codespan(s);break;case"br":r+=t.br(s);break;case"del":r+=t.del(s);break;default:{let e='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw Error(e)}}}return r}},ed=class{options;block;constructor(e){this.options=e||r}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?eu.lex:eu.lexInline}provideParser(e=this.block){return e?eg.parse:eg.parseInline}},ek=new class{defaults=t();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=eg;Renderer=ep;TextRenderer=eh;Lexer=eu;Tokenizer=ec;Hooks=ed;constructor(...e){this.use(...e)}walkTokens(e,t){let r=[];for(let n of e)switch(r=r.concat(t.call(this,n)),n.type){case"table":for(let e of n.header)r=r.concat(this.walkTokens(e.tokens,t));for(let e of n.rows)for(let n of e)r=r.concat(this.walkTokens(n.tokens,t));break;case"list":r=r.concat(this.walkTokens(n.items,t));break;default:{let e=n;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(n=>{let s=e[n].flat(1/0);r=r.concat(this.walkTokens(s,t))}):e.tokens&&(r=r.concat(this.walkTokens(e.tokens,t)))}}return r}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let r={...e};if(r.async=this.defaults.async||r.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error("extension name required");if("renderer"in e){let r=t.renderers[e.name];r?t.renderers[e.name]=function(...t){let n=e.renderer.apply(this,t);return!1===n&&(n=r.apply(this,t)),n}:t.renderers[e.name]=e.renderer}if("tokenizer"in e){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw Error("extension level must be 'block' or 'inline'");let r=t[e.level];r?r.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}"childTokens"in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),r.extensions=t),e.renderer){let t=this.defaults.renderer||new ep(this.defaults);for(let r in e.renderer){if(!(r in t))throw Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let n=e.renderer[r],s=t[r];t[r]=(...e)=>{let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r||""}}r.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new ec(this.defaults);for(let r in e.tokenizer){if(!(r in t))throw Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let n=e.tokenizer[r],s=t[r];t[r]=(...e)=>{let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r}}r.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new ed;for(let r in e.hooks){if(!(r in t))throw Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;let n=e.hooks[r],s=t[r];ed.passThroughHooks.has(r)?t[r]=e=>{if(this.defaults.async&&ed.passThroughHooksRespectAsync.has(r))return(async()=>{let r=await n.call(t,e);return s.call(t,r)})();let i=n.call(t,e);return s.call(t,i)}:t[r]=(...e)=>{if(this.defaults.async)return(async()=>{let r=await n.apply(t,e);return!1===r&&(r=await s.apply(t,e)),r})();let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r}}r.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,n=e.walkTokens;r.walkTokens=function(e){let r=[];return r.push(n.call(this,e)),t&&(r=r.concat(t.call(this,e))),r}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return eu.lex(e,t??this.defaults)}parser(e,t){return eg.parse(e,t??this.defaults)}parseMarkdown(e){return(t,r)=>{let n={...r},s={...this.defaults,...n},i=this.onError(!!s.silent,!!s.async);if(!0===this.defaults.async&&!1===n.async)return i(Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||null===t)return i(Error("marked(): input parameter is undefined or null"));if("string"!=typeof t)return i(Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let r=s.hooks?await s.hooks.preprocess(t):t,n=await (s.hooks?await s.hooks.provideLexer(e):e?eu.lex:eu.lexInline)(r,s),i=s.hooks?await s.hooks.processAllTokens(n):n;s.walkTokens&&await Promise.all(this.walkTokens(i,s.walkTokens));let a=await (s.hooks?await s.hooks.provideParser(e):e?eg.parse:eg.parseInline)(i,s);return s.hooks?await s.hooks.postprocess(a):a})().catch(i);try{s.hooks&&(t=s.hooks.preprocess(t));let r=(s.hooks?s.hooks.provideLexer(e):e?eu.lex:eu.lexInline)(t,s);s.hooks&&(r=s.hooks.processAllTokens(r)),s.walkTokens&&this.walkTokens(r,s.walkTokens);let n=(s.hooks?s.hooks.provideParser(e):e?eg.parse:eg.parseInline)(r,s);return s.hooks&&(n=s.hooks.postprocess(n)),n}catch(e){return i(e)}}}onError(e,t){return r=>{if(r.message+=`
|
|
59
|
+
Please report this to https://github.com/markedjs/marked.`,e){let e="<p>An error occurred:</p><pre>"+es(r.message+"",!0)+"</pre>";return t?Promise.resolve(e):e}if(t)return Promise.reject(r);throw r}}};function ef(e,t){return ek.parse(e,t)}ef.options=ef.setOptions=function(e){return ek.setOptions(e),ef.defaults=ek.defaults,r=ef.defaults,ef},ef.getDefaults=t,ef.defaults=r,ef.use=function(...e){return ek.use(...e),ef.defaults=ek.defaults,r=ef.defaults,ef},ef.walkTokens=function(e,t){return ek.walkTokens(e,t)},ef.parseInline=ek.parseInline,ef.Parser=eg,ef.parser=eg.parse,ef.Renderer=ep,ef.TextRenderer=eh,ef.Lexer=eu,ef.lexer=eu.lex,ef.Tokenizer=ec,ef.Hooks=ed,ef.parse=ef,ef.options,ef.setOptions,ef.use,ef.walkTokens,ef.parseInline,eg.parse,eu.lex,e.s(["Lexer",0,eu,"marked",0,ef])},500324,e=>{"use strict";var t=e.i(368075),r=e.i(298699);let n=(0,r.createContext)(null);e.s(["WorkspaceProvider",0,function({workspaceId:e,slug:s,children:i}){return(0,r.useEffect)(()=>{try{localStorage.setItem("lastWorkspace",s)}catch{}},[s]),(0,t.jsx)(n.Provider,{value:{workspaceId:e,slug:s},children:i})},"useWorkspace",0,function(){let e=(0,r.useContext)(n);if(!e)throw Error("useWorkspace must be used within WorkspaceProvider");return e}])},222862,636557,e=>{"use strict";class t extends Error{status;details;constructor(e,t,r){super(e),this.name="ApiError",this.status=t,this.details=r}get isNetworkError(){return 0===this.status}get isRateLimit(){return 429===this.status}get isUnauthorized(){return 401===this.status}}function r(e,t){return"validation error"===e&&t?.length?function(e){let[t,...r]=e.split(":"),n=r.join(":").trim();if(!n)return e;let s=t.trim(),i=s.trim().replace(/[_-]+/g," ").replace(/\b\w/g,e=>e.toUpperCase()),a=n.replace(/^required$/i,"is required"),l=a.toLowerCase().replace(/[_-]+/g," "),o=s.toLowerCase().replace(/[_-]+/g," ");return o&&l.startsWith(`${o} `)&&(a=a.slice(s.length).trimStart()),i?`${i} ${a}`:a}(t[0]):e}async function n(e,n){let s;try{s=await fetch(""+e,{...n,credentials:"include",headers:{"Content-Type":"application/json",...n?.headers}})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===s.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!s.ok){let e,n;try{let t=await s.json();e=t.error,n=t.details}catch{}if(429===s.status)throw new t("Please wait a moment before trying again",429);if(s.status>=500)throw new t(r(e,n)||"Something went wrong — please try again",s.status,n);throw new t(r(e,n)||"Something went wrong",s.status,n)}if(204!==s.status)return s.json()}function s(e,t){let r=new URLSearchParams({workspace_id:e,...t});return`?${r.toString()}`}e.s(["ApiError",0,t],636557);let i=async(e,r,i,a)=>{let l;if(!a||0===a.length)return n(`/api/conversations/${e}/messages${s(i)}`,{method:"POST",body:JSON.stringify({content:r})});let o=new FormData;for(let e of(o.append("content",r),a))o.append("file",e);try{l=await fetch(`/api/conversations/${e}/messages${s(i)}`,{method:"POST",credentials:"include",body:o})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===l.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!l.ok){let e,r;try{let t=await l.json();e=t.error,r=t.details}catch{}if(429===l.status)throw new t("Please wait a moment before trying again",429);if(l.status>=500)throw new t(e||"Something went wrong — please try again",l.status,r);throw new t(e||"Something went wrong",l.status,r)}return l.json()},a=async(e,r,i,a)=>{let l;if(!a||0===a.length)return n(`/api/conversations/${e}/buffered-messages${s(i)}`,{method:"POST",body:JSON.stringify({content:r})});let o=new FormData;for(let e of(o.append("content",r),a))o.append("file",e);try{l=await fetch(`/api/conversations/${e}/buffered-messages${s(i)}`,{method:"POST",credentials:"include",body:o})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===l.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!l.ok){let e,r;try{let t=await l.json();e=t.error,r=t.details}catch{}if(429===l.status)throw new t(e||"Maximum follow-ups reached",429);if(l.status>=500)throw new t(e||"Something went wrong — please try again",l.status,r);throw new t(e||"Something went wrong",l.status,r)}return l.json()},l=async(e,t)=>{let r=new URLSearchParams({workspace_id:t}),n=await fetch(`/api/email/${e}/body?${r}`,{credentials:"include"});if(!n.ok)return{content:"(body not available)",isHtml:!1};let s=n.headers.get("Content-Type")??"";return{content:await n.text(),isHtml:s.includes("text/html")}},o=async(e,r)=>{let n=new FormData;n.append("file",e);let i=await fetch(`/api/email/upload${s(r)}`,{method:"POST",credentials:"include",body:n});if(!i.ok)throw new t(await i.text().catch(()=>"Upload failed"),i.status);return i.json()},c=async(e,r)=>{let i;if(!r.files||0===r.files.length)return n(`/api/issues${s(e)}`,{method:"POST",body:JSON.stringify({agent_id:r.agent_id,title:r.title,description:r.description})});let a=new FormData;for(let e of(r.agent_id&&a.append("agent_id",r.agent_id),a.append("title",r.title),a.append("description",r.description??""),r.files))a.append("file",e);try{i=await fetch(`/api/issues${s(e)}`,{method:"POST",credentials:"include",body:a})}catch(e){if(e instanceof TypeError)throw new t("Unable to connect — check your network",0);throw e}if(401===i.status)throw window.location.href="/sign-in",new t("Unauthorized",401);if(!i.ok){let e,r;try{let t=await i.json();e=t.error,r=t.details}catch{}if(429===i.status)throw new t("Please wait a moment before trying again",429);if(i.status>=500)throw new t(e||"Something went wrong — please try again",i.status,r);throw new t(e||"Something went wrong",i.status,r)}return i.json()},u=async(e,t)=>{let r=new URLSearchParams({workspace_id:t}),n=await fetch(`/api/artifacts/${e}/content?${r}`,{credentials:"include"});return n.ok?n.text():"(content not available)"};e.s(["acceptInvite",0,e=>n(`/api/invite/${e}`,{method:"POST"}),"addWhitelistEmail",0,(e,t,r)=>n(`/api/agents/${e}/whitelist${s(r)}`,{method:"POST",body:JSON.stringify({email:t})}),"approveMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings/${t}/approve${s(r)}`,{method:"POST"}),"cancelActiveTask",0,(e,t)=>n(`/api/conversations/${e}/active-task${s(t)}`,{method:"DELETE"}),"chatInit",0,(e,t,r)=>n(`/api/agents/${e}/chat-init${s(t)}`,{method:"POST",body:JSON.stringify({...r?{channel:r}:{}})}),"createAgent",0,(e,t)=>n(`/api/agents${s(t)}`,{method:"POST",body:JSON.stringify(e)}),"createAgentLink",0,(e,t)=>n(`/api/agent-links${s(t)}`,{method:"POST",body:JSON.stringify(e)}),"createBufferedMessage",0,a,"createCalendarEvent",0,(e,t)=>n(`/api/calendar${s(t)}`,{method:"POST",body:JSON.stringify(e)}),"createChannelApi",0,(e,t)=>n(`/api/channels${s(e)}`,{method:"POST",body:JSON.stringify({name:t})}),"createConversation",0,(e,t,r)=>n(`/api/conversations${s(t)}`,{method:"POST",body:JSON.stringify({agent_id:e,...r?{channel:r}:{}})}),"createEmailAccount",0,(e,t,r)=>n(`/api/agents/${e}/email-accounts${s(r)}`,{method:"POST",body:JSON.stringify(t)}),"createInvite",0,e=>n(`/api/workspaces/${e}/invites${s(e)}`,{method:"POST"}),"createIssue",0,c,"createMachineToken",0,(e,t)=>n(`/api/machine-tokens${t?s(t):""}`,{method:"POST",body:JSON.stringify({name:e||"default"})}),"createMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings${s(t)}`,{method:"POST",body:JSON.stringify(r)}),"deleteAgent",0,(e,t)=>n(`/api/agents/${e}${s(t)}`,{method:"DELETE"}),"deleteAgentLink",0,(e,t)=>n(`/api/agent-links/${e}${s(t)}`,{method:"DELETE"}),"deleteBufferedMessage",0,(e,t,r)=>n(`/api/conversations/${e}/buffered-messages/${t}${s(r)}`,{method:"DELETE"}),"deleteCalendarEvent",0,(e,t,r)=>n(`/api/calendar/${e}${s(t)}`,{method:"DELETE",...r&&r.scope?{headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}:{}}),"deleteChannelApi",0,(e,t)=>n(`/api/channels/${e}${s(t)}`,{method:"DELETE"}),"deleteEmail",0,(e,t)=>n(`/api/email/${e}${s(t)}`,{method:"DELETE"}),"deleteEmailAccount",0,(e,t,r)=>n(`/api/agents/${e}/email-accounts/${t}${s(r)}`,{method:"DELETE"}),"deleteIssue",0,(e,t)=>n(`/api/issues/${t}${s(e)}`,{method:"DELETE"}),"deleteMachine",0,(e,t)=>n(`/api/runtimes/machine${s(t,{daemon_id:e})}`,{method:"DELETE"}),"deleteMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings/${t}${s(r)}`,{method:"DELETE"}),"deleteWorkspace",0,(e,t)=>n(`/api/workspaces/${e}${s(e)}`,{method:"DELETE",body:JSON.stringify({confirm_name:t})}),"fetchLatestCliVersion",0,()=>n("/api/cli/latest-version"),"fetchModelOptions",0,()=>n("/api/config/model-options"),"flagMessage",0,(e,t)=>n(`/api/flags${s(e)}`,{method:"POST",body:JSON.stringify({messageId:t})}),"getActiveTask",0,(e,t)=>n(`/api/conversations/${e}/active-task${s(t)}`),"getArtifactContent",0,u,"getConversation",0,(e,t)=>n(`/api/conversations/${e}${s(t)}`),"getEmail",0,(e,t)=>n(`/api/email/${e}${s(t)}`),"getEmailBody",0,l,"getEmailThread",0,(e,t)=>n(`/api/email/${e}/thread${s(t)}`),"getFlaggedCount",0,e=>n(`/api/flags/count${s(e)}`),"getInboxCount",0,(e,t)=>{let r={};return t?.types?.length&&(r.types=t.types.join(",")),n(`/api/inbox/count${s(e,r)}`)},"getInviteInfo",0,e=>n(`/api/invite/${e}`),"getIssue",0,(e,t)=>n(`/api/issues/${t}${s(e)}`),"getMemberMe",0,e=>n(`/api/members/me${s(e)}`),"getMinCliVersion",0,()=>n("/api/config/min-version"),"getTask",0,(e,t)=>n(`/api/tasks/${e}${s(t)}`),"getTaskMessages",0,(e,t,r)=>n(`/api/tasks/${e}/messages${s(t,r?{since:String(r)}:void 0)}`),"getTaskStepCounts",0,(e,t)=>n(`/api/tasks/step-counts${s(t)}`,{method:"POST",body:JSON.stringify({task_ids:e})}),"getTrace",0,(e,t)=>n(`/api/traces/${e}${s(t)}`),"getWorkspaceOverview",0,e=>n(`/api/workspaces/${e}/overview${s(e)}`),"grantAgentAccess",0,(e,t,r)=>n(`/api/agents/${t}/access${s(e)}`,{method:"POST",body:JSON.stringify({user_id:r})}),"listAgentAccess",0,(e,t)=>n(`/api/agents/${t}/access${s(e)}`),"listAgentActiveTaskCounts",0,e=>n(`/api/agents/active-task-counts${s(e)}`),"listAgentActivity",0,(e,t,r)=>{let i={};return r?.limit&&(i.limit=String(r.limit)),r?.before&&(i.before=r.before),r?.beforeId&&(i.before_id=r.beforeId),r?.status&&(i.status=r.status),r?.type&&(i.type=r.type),n(`/api/agents/${e}/activity${s(t,i)}`)},"listAgentLinks",0,e=>n(`/api/agent-links${s(e)}`),"listAgentPins",0,e=>n(`/api/agents/pins${s(e)}`),"listAgents",0,e=>n(`/api/agents${s(e)}`),"listArtifacts",0,(e,t)=>n(`/api/artifacts${s(t,{conversation_id:e})}`),"listBufferedMessages",0,(e,t)=>n(`/api/conversations/${e}/buffered-messages${s(t)}`),"listCalendarEvents",0,(e,t)=>{let r={};return t?.agentId&&(r.agentId=t.agentId),t?.from&&(r.from=t.from),t?.to&&(r.to=t.to),n(`/api/calendar${s(e,r)}`)},"listChannels",0,e=>n(`/api/channels${s(e)}`),"listEmailAccounts",0,(e,t)=>n(`/api/agents/${e}/email-accounts${s(t)}`),"listEmails",0,(e,t,r,i)=>n(`/api/email${s(t,{agentId:e,...r?{folder:r}:{},...i?{address:i}:{}})}`),"listFlaggedItems",0,(e,t)=>{let r={};return t?.limit&&(r.limit=String(t.limit)),t?.before&&(r.before=t.before),n(`/api/flags${s(e,r)}`)},"listFlaggedMessageIds",0,(e,t)=>n(`/api/flags${s(e,{conversation_id:t,ids_only:"true"})}`),"listInboxItems",0,(e,t)=>{let r={};return t?.limit&&(r.limit=String(t.limit)),t?.before&&(r.before=t.before),t?.types?.length&&(r.types=t.types.join(",")),n(`/api/inbox${s(e,r)}`)},"listInvites",0,e=>n(`/api/workspaces/${e}/invites${s(e)}`),"listIssues",0,(e,t)=>{let r={};return t?.agentId&&(r.agentId=t.agentId),t?.status&&(r.status=t.status),t?.terminal!==void 0&&(r.terminal=String(t.terminal)),n(`/api/issues${s(e,r)}`)},"listMeetings",0,(e,t)=>n(`/api/agents/${e}/meetings${s(t)}`),"listMembers",0,e=>n(`/api/workspaces/${e}/members${s(e)}`),"listMessages",0,(e,t,r)=>{let i={};return r?.limit&&(i.limit=String(r.limit)),r?.before&&(i.before=r.before),r?.beforeId&&(i.before_id=r.beforeId),n(`/api/conversations/${e}/messages${s(t,i)}`)},"listMessagesAroundTask",0,(e,t,r)=>n(`/api/conversations/${e}/messages${s(t,{around_task:r})}`),"listPreviousConversations",0,(e,t,r)=>{let i={exclude:r.exclude,before:r.before};return r.channel&&(i.channel=r.channel),r.limit&&(i.limit=String(r.limit)),n(`/api/agents/${e}/conversations${s(t,i)}`)},"listRuntimes",0,e=>n(`/api/runtimes${s(e)}`),"listTraces",0,(e,t)=>{let r={};return t?.limit&&(r.limit=String(t.limit)),t?.before&&(r.before=t.before),t?.status&&(r.status=t.status),t?.multiAgent&&(r.multiAgent="true"),t?.agentId&&(r.agentId=t.agentId),t?.channel&&(r.channel=t.channel),n(`/api/traces${s(e,r)}`)},"listWhitelist",0,(e,t)=>n(`/api/agents/${e}/whitelist${s(t)}`),"listWorkspaceActiveTasks",0,e=>n(`/api/agents/active-tasks${s(e)}`),"listWorkspaces",0,()=>n("/api/workspaces"),"markAllInboxRead",0,e=>n(`/api/inbox/read-all${s(e)}`,{method:"POST"}),"markInboxRead",0,(e,t)=>n(`/api/inbox/read${s(t)}`,{method:"POST",body:JSON.stringify({conversationId:e})}),"pinAgent",0,(e,t)=>n(`/api/agents/${t}/pin${s(e)}`,{method:"POST"}),"removeMember",0,(e,t)=>n(`/api/workspaces/${e}/members/${t}${s(e)}`,{method:"DELETE"}),"removeWhitelistEmail",0,(e,t,r)=>n(`/api/agents/${e}/whitelist/${t}${s(r)}`,{method:"DELETE"}),"renameChannelApi",0,(e,t,r)=>n(`/api/channels/${e}${s(t)}`,{method:"PATCH",body:JSON.stringify({name:r})}),"reorderAgentPins",0,(e,t)=>n(`/api/agents/pins/reorder${s(e)}`,{method:"PUT",body:JSON.stringify({ordered_agent_ids:t})}),"reorderChannelsApi",0,(e,t)=>n(`/api/channels/reorder${s(e)}`,{method:"PUT",body:JSON.stringify({ordered_channel_ids:t})}),"reorderUnpinnedAgents",0,(e,t)=>n(`/api/agents/sidebar/reorder${s(e)}`,{method:"PUT",body:JSON.stringify({ordered_agent_ids:t})}),"requestWorkspaceBrowse",0,(e,t,r,i)=>n(`/api/agents/${e}/workspace/browse${s(t)}`,{method:"POST",body:JSON.stringify({request_type:r,path:i})}),"retryTask",0,(e,t)=>n(`/api/tasks/${e}/retry${s(t)}`,{method:"POST"}),"revokeAgentAccess",0,(e,t,r,i=!1)=>n(`/api/agents/${t}/access/${r}${s(e)}${i?"&remove_whitelist=true":""}`,{method:"DELETE"}),"revokeInvite",0,(e,t)=>n(`/api/workspaces/${e}/invites/${t}${s(e)}`,{method:"DELETE"}),"sendEmail",0,(e,t,r,i,a,l,o,c)=>n(`/api/email/send${s(a)}`,{method:"POST",body:JSON.stringify({agentId:e,to:t,subject:r,htmlBody:i,attachments:l,...o,customAccountId:c})}),"sendMessage",0,i,"stopMeeting",0,(e,t,r)=>n(`/api/agents/${e}/meetings/${t}/stop${s(r)}`,{method:"POST"}),"syncEmailAccount",0,(e,t,r)=>n(`/api/agents/${e}/email-accounts/${t}/sync${s(r)}`,{method:"POST"}),"triggerRuntimeRescan",0,(e,t)=>n(`/api/runtimes/${e}/rescan${s(t)}`,{method:"POST"}),"triggerRuntimeUpdate",0,(e,t)=>n(`/api/runtimes/${e}/update${s(t)}`,{method:"POST"}),"unflagMessage",0,(e,t)=>n(`/api/flags/${t}${s(e)}`,{method:"DELETE"}),"unpinAgent",0,(e,t)=>n(`/api/agents/${t}/pin${s(e)}`,{method:"DELETE"}),"updateAgent",0,(e,t,r)=>n(`/api/agents/${e}${s(r)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateAgentLink",0,(e,t,r)=>n(`/api/agent-links/${e}${s(r)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateCalendarEvent",0,(e,t,r)=>n(`/api/calendar/${e}${s(r)}`,{method:"PATCH",body:JSON.stringify(t)}),"updateEmailStatus",0,(e,t,r)=>n(`/api/email/${e}${s(t)}`,{method:"PATCH",body:JSON.stringify({status:r})}),"updateIssue",0,(e,t,r)=>n(`/api/issues/${t}${s(e)}`,{method:"PATCH",body:JSON.stringify(r)}),"updateMemberMe",0,(e,t)=>n(`/api/members/me${s(e)}`,{method:"PATCH",body:JSON.stringify({global_instruction:t})}),"updateWorkspace",0,(e,t)=>n(`/api/workspaces/${e}${s(e)}`,{method:"PATCH",body:JSON.stringify(t)}),"uploadEmailAttachment",0,o],222862)},728886,e=>{"use strict";var t=e.i(368075),r=e.i(613349);e.s(["Skeleton",0,function({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"skeleton",className:(0,r.cn)("animate-pulse rounded-md bg-muted",e),...n})}])},642342,e=>{"use strict";var t=e.i(459119),r=e.i(298699);let n=(0,e.i(613349).isLocalMode)(),s=Number(t.default.env.NEXT_PUBLIC_WS_DO_PORT)||8789,i=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_DELAY_MS)||1e3,a=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_MAX_DELAY_MS)||3e4;e.s(["useUserWs",0,function(e,t){let l=(0,r.useRef)(null),o=(0,r.useRef)(i),c=(0,r.useRef)(e),u=(0,r.useRef)(t?.onReconnect),p=(0,r.useRef)(null),h=(0,r.useRef)(!1),g=(0,r.useRef)(0),d=(0,r.useRef)(null),k=(0,r.useRef)(null);(0,r.useEffect)(()=>{c.current=e},[e]),(0,r.useEffect)(()=>{u.current=t?.onReconnect},[t?.onReconnect]);let f=(0,r.useRef)(null),m=(0,r.useCallback)(()=>{let e=Math.min(o.current,a);o.current=Math.min(2*e,a),p.current=setTimeout(()=>{f.current?.()},e+500*Math.random())},[]),b=(0,r.useCallback)(async()=>{let e,t,r,a=s;try{let r=await fetch("/api/ws/token");if(!r.ok){console.warn("[ws] token fetch failed:",r.status),m();return}let n=await r.json();e=n.userId,t=n.token,n.wsPort&&(a=n.wsPort)}catch(e){console.warn("[ws] token fetch error:",e),m();return}let p=n?`ws://localhost:${a}/?userId=${e}`:`${location.origin.replace("http","ws")}/api/ws/user?userId=${e}`;try{r=new WebSocket(p)}catch(e){console.warn("[ws] WebSocket creation failed:",e),m();return}l.current=r,r.onopen=()=>{o.current=i,r.send(JSON.stringify({type:"auth",token:t})),h.current&&u.current?.(),h.current=!0,g.current=Date.now(),d.current=setInterval(()=>{r.readyState===WebSocket.OPEN&&r.send("ping")},25e3),k.current=setInterval(()=>{Date.now()-g.current>3e4&&r.close()},5e3)},r.onmessage=e=>{g.current=Date.now();try{let t=JSON.parse(e.data);if("auth.ok"===t.type)return;c.current(t)}catch{}},r.onerror=()=>{},r.onclose=()=>{r===l.current&&(d.current&&(clearInterval(d.current),d.current=null),k.current&&(clearInterval(k.current),k.current=null),m())}},[m]);(0,r.useEffect)(()=>{f.current=b},[b]),(0,r.useEffect)(()=>(b(),()=>{null!==p.current&&(clearTimeout(p.current),p.current=null),d.current&&(clearInterval(d.current),d.current=null),k.current&&(clearInterval(k.current),k.current=null);let e=l.current;l.current=null,e?.close()}),[b])}])},355578,e=>{"use strict";var t=e.i(368075),r=e.i(298699),n=e.i(222862),s=e.i(880932),i=e.i(642342);let a=(0,r.createContext)(null);e.s(["AgentProvider",0,function({workspaceId:e,children:l}){let[o,c]=(0,r.useState)([]),[u,p]=(0,r.useState)([]),[h,g]=(0,r.useState)(!0),[d,k]=(0,r.useState)({}),[f,m]=(0,r.useState)([]),b=(0,r.useRef)(!1),[w,x]=(0,r.useState)([]),[$,y]=(0,r.useState)(new Map),[S,T]=(0,r.useState)(new Map),R=(0,r.useRef)(!1),E=(0,r.useRef)(new Set),A=(0,r.useRef)(!0),v=(0,r.useRef)(!1),P=(0,r.useCallback)(e=>(E.current.add(e),()=>{E.current.delete(e)}),[]),_=(0,r.useRef)(!1),C=(0,r.useCallback)(async()=>{if(!_.current){_.current=!0;try{if(b.current){let t=await (0,n.listWorkspaceActiveTasks)(e);if(!A.current)return;m(t.tasks);let r={};for(let e of t.tasks)r[e.agent_id]=(r[e.agent_id]??0)+1;k(r),b.current=t.tasks.length>0}else{let t=await (0,n.listAgentActiveTaskCounts)(e);if(!A.current)return;if(k(t.counts),Object.values(t.counts).some(e=>e>0)){b.current=!0;let t=await (0,n.listWorkspaceActiveTasks)(e);A.current&&m(t.tasks)}else m([])}}catch{}finally{_.current=!1}}},[e]);(0,r.useEffect)(()=>{A.current=!0,C();let e=setInterval(C,15e3);return()=>{A.current=!1,clearInterval(e)}},[C]);let I=(0,r.useCallback)(async()=>{try{let[t,r,s,i]=await Promise.all([(0,n.listAgents)(e),(0,n.listRuntimes)(e),(0,n.listAgentPins)(e),(0,n.listAgentLinks)(e)]);c(t),p(r),x(i),y(new Map(s.pins.map(e=>[e.agent_id,{created_at:e.created_at,position:e.position}]))),T(new Map(s.sidebar_order.map(e=>[e.agent_id,e.position])))}catch(e){s.toast.error(e instanceof Error?e.message:"Failed to load data")}finally{g(!1),R.current=!0}},[e]),O=(0,r.useCallback)(async()=>{if(!v.current){v.current=!0;try{let t=await (0,n.listRuntimes)(e);p(t)}catch{}finally{v.current=!1}}},[e]);(0,r.useEffect)(()=>{I()},[I]),(0,r.useEffect)(()=>{let e=null,t=setInterval(()=>{"visible"===document.visibilityState&&O()},3e4),r=()=>{"visible"===document.visibilityState&&(e=setTimeout(()=>O(),2e3*Math.random()))};return document.addEventListener("visibilitychange",r),()=>{clearInterval(t),e&&clearTimeout(e),document.removeEventListener("visibilitychange",r)}},[O]);let z=(0,r.useRef)(null),L=(0,r.useCallback)(()=>{z.current&&clearTimeout(z.current),z.current=setTimeout(()=>{z.current=null,I()},300)},[I]);(0,r.useEffect)(()=>()=>{z.current&&clearTimeout(z.current)},[]);let M=(0,r.useCallback)(t=>{for(let e of E.current)e(t);switch(t.type){case"runtime.registered":if(t.workspaceId!==e)break;I();break;case"runtime.deleted":I();break;case"runtime.status":if(t.workspaceId!==e)break;L();break;case"task.updated":C()}},[I,L,C,e]);(0,i.useUserWs)(M,{onReconnect:O});let N=(0,r.useCallback)(async t=>{try{let r=await (0,n.createAgent)(t,e);return await I(),r}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to create agent"),null}},[I,e]),D=(0,r.useCallback)(async(t,r)=>{try{return await (0,n.updateAgent)(t,r,e),await I(),!0}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to update agent"),!1}},[I,e]),B=(0,r.useCallback)(async t=>{try{return await (0,n.deleteAgent)(t,e),await I(),!0}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to remove agent"),!1}},[I,e]),q=(0,r.useCallback)(async t=>{y(e=>{let r=Math.max(-1,...[...e.values()].map(e=>e.position));return new Map(e).set(t,{created_at:new Date().toISOString(),position:r+1})});try{await (0,n.pinAgent)(e,t)}catch{y(e=>{let r=new Map(e);return r.delete(t),r}),s.toast.error("Failed to pin agent")}},[e]),J=(0,r.useCallback)(async t=>{let r;y(e=>{r=e.get(t);let n=new Map(e);return n.delete(t),n});try{await (0,n.unpinAgent)(e,t)}catch{void 0!==r&&y(e=>new Map(e).set(t,r)),s.toast.error("Failed to unpin agent")}},[e]),j=(0,r.useCallback)(async t=>{let r=new Map($);y(e=>{let r=new Map(e);return t.forEach((e,t)=>{let n=r.get(e);n&&r.set(e,{...n,position:t})}),r});try{await (0,n.reorderAgentPins)(e,t)}catch{y(r),s.toast.error("Failed to reorder pins")}},[e,$]),U=(0,r.useCallback)(async t=>{let r=new Map(S);T(new Map(t.map((e,t)=>[e,t])));try{await (0,n.reorderUnpinnedAgents)(e,t)}catch{T(r),s.toast.error("Failed to reorder agents")}},[e,S]),W=(0,r.useCallback)(()=>{let e=u.find(e=>"online"===e.status);return e?.id??""},[u]),Z=(0,r.useCallback)(async()=>{try{return(await (0,n.createMachineToken)("cli",e)).token}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to generate token"),null}},[e]),H=(0,r.useCallback)(async t=>{try{return await (0,n.deleteMachine)(t,e),await I(),!0}catch(e){return s.toast.error(e instanceof Error?e.message:"Failed to remove machine"),!1}},[I,e]);return(0,t.jsx)(a.Provider,{value:{workspaceId:e,agents:o,agentLinks:w,runtimes:u,loading:h,activeTaskCounts:d,activeTaskDetails:f,pins:$,reload:I,subscribeWs:P,handleCreateAgent:N,handleUpdateAgent:D,handleDeleteAgent:B,handlePinAgent:q,handleUnpinAgent:J,handleReorderPins:j,unpinnedOrder:S,handleReorderUnpinned:U,getFirstOnlineRuntimeId:W,handleGenerateToken:Z,handleDeleteMachine:H},children:l})},"useAgentContext",0,function(){let e=(0,r.useContext)(a);if(!e)throw Error("useAgentContext must be used within AgentProvider");return e}])}]);
|