bazilion 0.21.0 → 0.22.0
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/dist/cli.js +25 -6
- package/dist/cli.js.map +1 -1
- package/dist/daemon.js +1046 -152
- package/dist/daemon.js.map +1 -1
- package/dist/migrations/0004_image_generation.sql +25 -0
- package/dist/web/client/assets/{AgentTabs-BT7RsEUU.js → AgentTabs-CBFT1Qg2.js} +1 -1
- package/dist/web/client/assets/{ChatPane-3I0Vsgz1.js → ChatPane-2r2r-Ac6.js} +2 -2
- package/dist/web/client/assets/{ConfigPage-hftJBBIY.js → ConfigPage-Cv0KGMX2.js} +1 -1
- package/dist/web/client/assets/{ConfirmDialog-gjgxRmxG.js → ConfirmDialog-DEwIcBm4.js} +1 -1
- package/dist/web/client/assets/FieldRow-C2ZAwThs.js +1 -0
- package/dist/web/client/assets/{ProductionTeamPolicyEditor-D4WcyDGX.js → ProductionTeamPolicyEditor-CziOzJPc.js} +1 -1
- package/dist/web/client/assets/{ProfileCommunicationEditor-CgIyV1rY.js → ProfileCommunicationEditor-DRasiT4-.js} +1 -1
- package/dist/web/client/assets/{RecoveryState-CbuT_rGW.js → RecoveryState-BZVq08km.js} +1 -1
- package/dist/web/client/assets/ResultCard-Dv5E8nX2.js +1 -0
- package/dist/web/client/assets/{ResultSourceConversation-CYBczpnZ.js → ResultSourceConversation-DutMGQB2.js} +1 -1
- package/dist/web/client/assets/{SectionTabs-t8xkqWIa.js → SectionTabs-mrflsPU-.js} +1 -1
- package/dist/web/client/assets/{TeamTabs-BN6P91fO.js → TeamTabs-DMVP5Hce.js} +1 -1
- package/dist/web/client/assets/{TemplatesTabs-DwG1CWan.js → TemplatesTabs-PxjxEiJG.js} +1 -1
- package/dist/web/client/assets/{UnsavedChangesGuard-fTPP7TCu.js → UnsavedChangesGuard-DfuiWMQ_.js} +1 -1
- package/dist/web/client/assets/{_id-Bcqu2cAS.js → _id-AcER9d-z.js} +1 -1
- package/dist/web/client/assets/{_id-CZG5wnur.js → _id-BTqFkUlB.js} +1 -1
- package/dist/web/client/assets/{_id-Bqk9L9xm.js → _id-Btgd0eQD.js} +1 -1
- package/dist/web/client/assets/{_id-DbwNJKQ8.js → _id-CgRuUtaW.js} +1 -1
- package/dist/web/client/assets/{_id-Di_SGuwC.js → _id-CrshYgbI.js} +1 -1
- package/dist/web/client/assets/{_id-DoW8SZjQ.js → _id-D51zCmQL.js} +1 -1
- package/dist/web/client/assets/{_id-DYkghdJm.js → _id-DqfO8lgv.js} +1 -1
- package/dist/web/client/assets/{_id-CRG3gXZW.js → _id-danxFImG.js} +1 -1
- package/dist/web/client/assets/{activity-vP2HVz4C.js → activity-CMaTYBPw.js} +1 -1
- package/dist/web/client/assets/{activity-Bt9WrtwT.js → activity-TilqK2MN.js} +1 -1
- package/dist/web/client/assets/{agents-gvU7Aqby.js → agents-D2gE-ZHl.js} +1 -1
- package/dist/web/client/assets/{agents-Bo7EfRdf.js → agents-D5_60Do4.js} +1 -1
- package/dist/web/client/assets/{agents-DaNXwDyg.js → agents-DPFzFgU2.js} +1 -1
- package/dist/web/client/assets/{approvals-DmJ5zwtE.js → approvals-BfoaMnwC.js} +1 -1
- package/dist/web/client/assets/{approvals-BOJoboDp.js → approvals-Du7G-YHg.js} +1 -1
- package/dist/web/client/assets/{attention-yEG75DvH.js → attention-C11m4NJY.js} +1 -1
- package/dist/web/client/assets/{attention-DWPCjYsx.js → attention-Cv18TBIb.js} +1 -1
- package/dist/web/client/assets/chevron-right-WaxL25XX.js +1 -0
- package/dist/web/client/assets/{config-B8YR3RWJ.js → config-crruyOmj.js} +2 -2
- package/dist/web/client/assets/{context-Cqc6E2UY.js → context-JT1dYNoO.js} +1 -1
- package/dist/web/client/assets/{inbox-PEvgddwX.js → inbox-DC5XSXiy.js} +1 -1
- package/dist/web/client/assets/{inbox-C2B8Re-f.js → inbox-OQ0QyvzA.js} +1 -1
- package/dist/web/client/assets/{index-CK_tkx73.js → index-DThtB1z2.js} +2 -2
- package/dist/web/client/assets/{learning-C8u7s_fv.js → learning-CeMSJbAY.js} +1 -1
- package/dist/web/client/assets/{learning-CTOIJfXI.js → learning-MO7fDBpd.js} +1 -1
- package/dist/web/client/assets/{login-32oN5__g.js → login-B1mPI9h5.js} +1 -1
- package/dist/web/client/assets/{mcp-BatNZnwC.js → mcp-Bo-E-MdF.js} +1 -1
- package/dist/web/client/assets/{mcp-CMdrj5RZ.js → mcp-CmzHMhei.js} +1 -1
- package/dist/web/client/assets/{members-CIVp1pgE.js → members-C7bazwZU.js} +1 -1
- package/dist/web/client/assets/{members-CdL5g4oy.js → members-sxSJCxkS.js} +1 -1
- package/dist/web/client/assets/{memory-DB2R5Zna.js → memory-BiBOuBA1.js} +1 -1
- package/dist/web/client/assets/{memory-kGfkKaO9.js → memory-VYCztjts.js} +1 -1
- package/dist/web/client/assets/{policy-D6mIMw1q.js → policy-C8SKHMJc.js} +1 -1
- package/dist/web/client/assets/{policy-3wgqPeNP.js → policy-CxN-ZrEm.js} +1 -1
- package/dist/web/client/assets/{results-Bt-h8qZH.js → results-BI_dzjgu.js} +1 -1
- package/dist/web/client/assets/{results-DNv3ByLD.js → results-DnrL5Mvt.js} +1 -1
- package/dist/web/client/assets/{review-CT9N-mCa.js → review-CtGjuoBA.js} +1 -1
- package/dist/web/client/assets/{review-NchTcTNb.js → review-D_F2VNul.js} +1 -1
- package/dist/web/client/assets/{routes-Dsbob2Ux.js → routes-CLcJb0Gu.js} +1 -1
- package/dist/web/client/assets/{services-BRUdbA_y.js → services-Ca1LbXwW.js} +1 -1
- package/dist/web/client/assets/{services-CkInaMBQ.js → services-D3rWjxvT.js} +1 -1
- package/dist/web/client/assets/{skills-By2Mztj4.js → skills-CbaN9DoR.js} +1 -1
- package/dist/web/client/assets/{skills-BYlQVmk4.js → skills-xLrt1IKk.js} +1 -1
- package/dist/web/client/assets/{teams-Ckkao-PS.js → teams-DagnWLAA.js} +1 -1
- package/dist/web/client/assets/{teams-CVAt-A9j.js → teams-DwSzsbr8.js} +1 -1
- package/dist/web/client/assets/{teams--rX4Emqg.js → teams-WVfQMDzi.js} +1 -1
- package/dist/web/client/assets/{teams-DokMjbwf.js → teams-tpI7S4u0.js} +1 -1
- package/dist/web/client/assets/{telegram-HbT_i0ez.js → telegram-hnIzZf3m.js} +1 -1
- package/dist/web/client/assets/{templates-ChE1fd0Z.js → templates-dmFNbHkN.js} +1 -1
- package/dist/web/client/assets/{tokens-BV8ipZCW.js → tokens-DMbCr1_1.js} +1 -1
- package/dist/web/client/assets/{tokens-CBjv3oax.js → tokens-DUx-zUYt.js} +1 -1
- package/dist/web/client/assets/{triggers-BhpXkk_u.js → triggers-BwjNuh-V.js} +1 -1
- package/dist/web/client/assets/{triggers-Fe-XQRpk.js → triggers-CM4j23G4.js} +1 -1
- package/dist/web/client/assets/{verifications-CPV9gl2d.js → verifications-DGVTf-_3.js} +1 -1
- package/dist/web/client/assets/{verifications-CRrwQEXg.js → verifications-bgpZuwOC.js} +1 -1
- package/dist/web/client/assets/{welcome-DD_q6paM.js → welcome-p8_5r05g.js} +1 -1
- package/dist/web/client/assets/{x-DHrC-Hx0.js → x-CGJA1SM6.js} +1 -1
- package/dist/web/server/assets/{ChatPane-CLUUTi2r.js → ChatPane-DsDa1E0a.js} +3 -3
- package/dist/web/server/assets/{FieldRow-BEFxeckR.js → FieldRow-DPO8x_le.js} +21 -1
- package/dist/web/server/assets/{ResultCard-CFjh8884.js → ResultCard-BtVFqdRU.js} +20 -1
- package/dist/web/server/assets/{ResultSourceConversation-BoRcXEfg.js → ResultSourceConversation-NKiRGO6_.js} +1 -1
- package/dist/web/server/assets/{_id-B-tA4zr0.js → _id-BLHUW0oS.js} +1 -1
- package/dist/web/server/assets/{_id-j2iOW-7w.js → _id-BxTsdM7U.js} +3 -3
- package/dist/web/server/assets/{_id-4t_AIt1b.js → _id-CAxK6pln.js} +1 -1
- package/dist/web/server/assets/{_id-B8EgU2la.js → _id-CmS2d0me.js} +2 -2
- package/dist/web/server/assets/{_tanstack-start-manifest_v-D6Cx8dbN.js → _tanstack-start-manifest_v-DsMaFmpx.js} +133 -133
- package/dist/web/server/assets/{config-C63Rp2Tc.js → config-DM2DIzMT.js} +1 -1
- package/dist/web/server/assets/{config-Cnj8GNk_.js → config-DX3c4Co0.js} +5 -3
- package/dist/web/server/assets/{results-m4JaXsRF.js → results-BFPu3tcP.js} +1 -1
- package/dist/web/server/assets/{results-BWsxk1aR.js → results-TR7VXLdQ.js} +3 -3
- package/dist/web/server/assets/{router-CMMB5oyy.js → router-DlwGPg99.js} +6 -6
- package/dist/web/server/assets/{routes-DFAvoScC.js → routes-BGMHt0b0.js} +2 -2
- package/dist/web/server/assets/{routes-BrtSbu3l.js → routes-kSjMHwrg.js} +1 -1
- package/dist/web/server/assets/{services-W4rO8Lc-.js → services-T8adll3y.js} +14 -6
- package/dist/web/server/assets/{services-2f0nAQPX.js → services-UL_2b8PP.js} +1 -1
- package/dist/web/server/server.js +2 -2
- package/dist/worker.js +208 -2
- package/dist/worker.js.map +1 -1
- package/package.json +6 -6
- package/dist/web/client/assets/FieldRow-VR8Sv-gN.js +0 -1
- package/dist/web/client/assets/ResultCard-D1bopCj0.js +0 -1
- package/dist/web/client/assets/chevron-right-BxPmmRg9.js +0 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
-- BAZ-059: narrow, non-replayable image-provider operations, not a job queue.
|
|
2
|
+
-- The initial outcome is uncertain: intent commits before the potentially billable request.
|
|
3
|
+
CREATE TABLE image_generations (
|
|
4
|
+
agent_id TEXT NOT NULL,
|
|
5
|
+
team_id TEXT NOT NULL REFERENCES teams(id) ON DELETE CASCADE,
|
|
6
|
+
session_id TEXT NOT NULL,
|
|
7
|
+
tool_call_id TEXT NOT NULL,
|
|
8
|
+
turn_id TEXT NOT NULL,
|
|
9
|
+
request_sha256 TEXT NOT NULL CHECK (length(request_sha256) = 64),
|
|
10
|
+
model TEXT NOT NULL,
|
|
11
|
+
outcome TEXT NOT NULL CHECK (outcome IN ('uncertain', 'completed', 'failed')),
|
|
12
|
+
response_id TEXT,
|
|
13
|
+
usage_json TEXT,
|
|
14
|
+
created_at INTEGER NOT NULL,
|
|
15
|
+
PRIMARY KEY (agent_id, session_id, tool_call_id)
|
|
16
|
+
);
|
|
17
|
+
CREATE INDEX image_generations_turn ON image_generations(turn_id);
|
|
18
|
+
|
|
19
|
+
ALTER TABLE agent_results ADD COLUMN source_index INTEGER NOT NULL DEFAULT 0
|
|
20
|
+
CHECK (source_index BETWEEN 0 AND 3);
|
|
21
|
+
ALTER TABLE agent_results ADD COLUMN image_model TEXT;
|
|
22
|
+
DROP INDEX agent_results_session_source;
|
|
23
|
+
CREATE UNIQUE INDEX agent_results_session_source
|
|
24
|
+
ON agent_results(agent_id, session_id, tool_call_id, source_index)
|
|
25
|
+
WHERE source_kind = 'session_tool';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-DGeXAQPT.js";import{Ct as t}from"./index-
|
|
1
|
+
import{t as e}from"./jsx-runtime-DGeXAQPT.js";import{Ct as t}from"./index-DThtB1z2.js";import{n,t as r}from"./SectionTabs-mrflsPU-.js";var i=e(),a=[{key:`chat`,href:e=>`/agents/${e}`,label:`Chat`},{key:`inbox`,href:e=>`/agents/${e}/inbox`,label:`Inbox`},{key:`triggers`,href:e=>`/agents/${e}/triggers`,label:`Triggers`},{key:`learning`,href:e=>`/agents/${e}/learning`,label:`Learning`},{key:`settings`,href:e=>`/agents/${e}?mode=settings`,label:`Settings`}];function o({agentId:e,active:o,archived:s}){return(0,i.jsxs)(`nav`,{"aria-label":`Agent sections`,className:r,children:[a.map(t=>(0,i.jsx)(`a`,{href:t.href(e),"aria-current":t.key===o?`page`:void 0,className:n(t.key===o),children:t.label},t.key)),s&&(0,i.jsx)(t,{variant:`warning`,className:`ml-auto self-center uppercase tracking-wide`,children:`archived`})]})}export{o as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e,t}from"./jsx-runtime-DGeXAQPT.js";import{t as n}from"./react-3W8R1pOO.js";import{Et as r,h as i}from"./index-
|
|
1
|
+
import{r as e,t}from"./jsx-runtime-DGeXAQPT.js";import{t as n}from"./react-3W8R1pOO.js";import{Et as r,h as i}from"./index-DThtB1z2.js";import{n as a,t as o}from"./git-review-presentation-CzHQulDk.js";import{t as s}from"./ResultCard-Dv5E8nX2.js";function c(e){let t=e.split(`
|
|
2
2
|
`).map(e=>e.trim()).find(e=>/^(?:[A-Za-z]*Error(?: \[[A-Z_]+\])?:|ERR_[A-Z_]+\b)/.test(e));return t?t.length>240?`${t.slice(0,237)}…`:t:null}function l(e){let t=e.split(`
|
|
3
3
|
`).find(e=>e.startsWith(`--- from `));if(!t)return`Teammate update received`;let n=/^--- from (.+?) \(message [0-9a-f-]+(?:, reply to [0-9a-f-]+)?\) ---$/.exec(t);if(!n)return`Teammate update received`;let r=n[1]?.replace(/ \([0-9a-f-]{36}\)$/,``).trim();return!r||/^[0-9a-f-]{36}$/.test(r)?`Teammate update received`:`Update from ${r.slice(0,100)}`}var u=e(n(),1),d=65536;async function f(e,t=fetch){let n=`/api/teams/${encodeURIComponent(e.teamId)}/coding-commands/${encodeURIComponent(e.commandId)}/log`;try{let e=await t(`${n}?limit=${d}`,{headers:{accept:`application/json`}});if(e.status===403)return{status:`not-shared`};if(e.status===404)return{status:`missing`};if(!e.ok)return{status:`unavailable`,message:`Request failed (${e.status}).`};let r=await e.json(),i=p(r);if(!i)return{status:`unavailable`,message:`Unexpected response from the daemon.`};if(h(r,`page`)===null)return{status:`not-shared`};let a=m(h(r,`page`));return a?{status:`available`,page:a,view:i}:{status:`unavailable`,message:`Unexpected response from the daemon.`}}catch{return{status:`unavailable`,message:`The daemon could not be reached.`}}}function p(e){let t=h(e,`view`);return!g(t)||typeof t.commandId!=`string`||typeof t.availability!=`string`||typeof t.byteLength!=`number`?null:t}function m(e){return!g(e)||typeof e.text!=`string`||typeof e.availability!=`string`||typeof e.offset!=`number`||typeof e.hasMore!=`boolean`||typeof e.byteLength!=`number`?null:e}function h(e,t){return g(e)?e[t]:void 0}function g(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var _=t();function v({name:e,body:t,pending:n=!1,log:r}){if(!n&&t===`Coding context or command evidence retained privately. Captured transport output follows its communication approval; ask the Agent for the relevant result.`)return(0,_.jsxs)(`details`,{className:`py-1 text-xs font-sans`,"aria-label":`Private command details`,children:[(0,_.jsx)(`summary`,{className:`cursor-pointer`,children:`Detailed output isn’t included in this history view`}),(0,_.jsx)(`p`,{className:`mt-1`,children:`The Agent’s summary is shown in the conversation. Ask the Agent to summarize its retained command result if you need more detail.`}),r&&(0,_.jsx)(b,{reference:r})]});let i;try{i=JSON.parse(t)}catch{return(0,_.jsx)(`span`,{children:t})}if(!i||typeof i!=`object`)return(0,_.jsx)(`span`,{children:t});if(n){let t=i;return(0,_.jsxs)(`p`,{className:`py-1 break-words`,children:[e===`coding_command`?`Running`:`Inspecting`,`:`,` `,typeof t.command==`string`?t.command:typeof t.target==`string`?t.target:`command evidence`]})}if(e===`repository_context`){let e=i;return Array.isArray(e.instructions?.files)?(0,_.jsxs)(`details`,{className:`py-1`,children:[(0,_.jsxs)(`summary`,{className:`cursor-pointer`,children:[`Repository: `,e.target,` ·`,` `,e.instructions.state===`complete`?`${e.instructions.files.length} instruction files`:`instructions unavailable`]}),e.instructions.files.map(e=>(0,_.jsx)(`p`,{children:e.path},e.path)),(0,_.jsxs)(`p`,{children:[e.commands?.candidates?.length??0,` suggested commands ·`,` `,e.git?.state===`available`?e.git.branch:`Git unavailable`]}),(0,_.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words`,children:t})]}):(0,_.jsx)(`span`,{children:t})}if(e===`coding_log`){let e=i;return typeof e.text!=`string`||typeof e.availability!=`string`?(0,_.jsx)(`span`,{children:t}):(0,_.jsxs)(`details`,{className:`py-1`,"aria-label":`Retained command output`,children:[(0,_.jsxs)(`summary`,{className:`cursor-pointer`,children:[`Retained output: `,e.availability,e.hasMore?` · more available`:``]}),(0,_.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words`,children:e.text}),(0,_.jsxs)(`p`,{className:`text-xs`,children:[`bytes `,typeof e.offset==`number`?e.offset:0,`–`,(typeof e.offset==`number`?e.offset:0)+e.text.length,` of`,` `,typeof e.byteLength==`number`?e.byteLength:0]})]})}if(e===`coding_environment`){let e=i;return typeof e.posture==`string`?(0,_.jsxs)(`details`,{className:`py-1`,children:[(0,_.jsxs)(`summary`,{className:`cursor-pointer`,children:[`Environment: `,e.posture,` · `,e.cwd]}),(0,_.jsx)(`p`,{className:`break-all`,children:e.imageId??`Host runtime`}),Array.isArray(e.restrictions)&&e.restrictions.filter(e=>typeof e==`string`).map(e=>(0,_.jsx)(`p`,{children:e},e))]}):(0,_.jsx)(`span`,{children:t})}let a=i,o=e===`coding_receipt`?a.receipt:i;if(!o||typeof o.state!=`string`||typeof o.input?.command!=`string`||typeof o.input?.cwd!=`string`)return(0,_.jsx)(`span`,{children:t});let s=o.state===`failed`&&typeof o.diagnostic==`string`?c(o.diagnostic):null;return(0,_.jsxs)(`div`,{className:`py-2`,"aria-label":`Coding command result`,children:[(0,_.jsxs)(`p`,{className:`font-sans`,children:[(0,_.jsx)(`strong`,{className:o.state===`succeeded`?`text-sapphire-deep`:`text-mocha`,children:o.state.replaceAll(`_`,` `)}),` `,`· `,o.input.purpose,typeof o.exitCode==`number`?` · exit ${o.exitCode}`:``,e===`coding_receipt`?` · ${a.applicability}`:``]}),(0,_.jsx)(`p`,{className:`whitespace-pre-wrap break-words`,children:o.input.command}),(0,_.jsxs)(`p`,{className:`text-xs`,children:[o.input.cwd,` · `,o.environment?.posture,` · result at execution time`]}),s&&(0,_.jsx)(`p`,{className:`mt-1 font-sans text-rose-baziu`,"aria-label":`Command failure summary`,children:s}),typeof o.reason==`string`&&(0,_.jsx)(`p`,{children:o.reason}),(0,_.jsxs)(`details`,{children:[(0,_.jsx)(`summary`,{className:`cursor-pointer`,children:`Output and evidence`}),(0,_.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words`,children:o.diagnostic}),o.truncated&&(0,_.jsx)(`p`,{children:`Output truncated.`}),(0,_.jsxs)(`p`,{className:`break-all`,children:[`coding-receipt:`,o.id]}),(0,_.jsx)(y,{teamId:o.teamId,after:o.sourceAfter??null,before:o.sourceBefore??null}),o.environment?.imageId&&(0,_.jsx)(`p`,{className:`break-all`,children:o.environment.imageId})]})]})}function y({teamId:e,after:t,before:n}){let[s,c]=(0,u.useState)(null),[l,d]=(0,u.useState)(!1);async function f(){if(t){d(!0);try{c(await i({data:{teamId:e,snapshotId:t.id}}))}finally{d(!1)}}}let p=s?.status===`ok`?s:null,m=o(p);return(0,_.jsxs)(`p`,{className:a(p)?`text-rose-baziu`:void 0,children:[m,t?(0,_.jsxs)(_.Fragment,{children:[` · tested version `,(0,_.jsx)(`span`,{className:`break-all font-mono`,children:t.id.slice(0,12)}),t.complete?``:` (incomplete)`,p===null&&(0,_.jsxs)(_.Fragment,{children:[` `,(0,_.jsx)(r,{variant:`ghost`,disabled:l,onClick:()=>void f(),children:l?`Checking…`:`Check applicability`})]}),s?.status===`unavailable`&&(0,_.jsxs)(`span`,{children:[` · `,s.message]})]}):` · no source snapshot was captured for this result`,n&&(0,_.jsxs)(_.Fragment,{children:[` · started from `,(0,_.jsx)(`span`,{className:`break-all font-mono`,children:n.id.slice(0,12)})]})]})}function b({reference:e}){let[t,n]=(0,u.useState)(null),[i,a]=(0,u.useState)(!1);async function o(){a(!0);try{n(await f(e))}finally{a(!1)}}return t===null?(0,_.jsx)(`p`,{className:`mt-2`,children:(0,_.jsx)(r,{variant:`ghost`,disabled:i,onClick:()=>void o(),children:i?`Loading…`:`Show retained output`})}):t.status===`not-shared`?(0,_.jsx)(`p`,{className:`mt-2`,children:`This command’s output hasn’t been shared with the conversation yet.`}):t.status===`missing`?(0,_.jsx)(`p`,{className:`mt-2`,children:`This retained output is no longer available.`}):t.status===`unavailable`?(0,_.jsx)(`p`,{className:`mt-2`,role:`alert`,children:t.message}):(0,_.jsxs)(`div`,{className:`mt-2`,children:[(0,_.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words rounded-sm bg-[rgba(42,31,22,0.04)] p-2`,children:t.page.text}),(0,_.jsxs)(`p`,{children:[`Retained output: `,t.page.availability,t.page.hasMore?` · earlier output omitted`:``,` · bytes `,t.page.offset,`–`,t.page.offset+t.page.text.length,` of `,t.page.byteLength]})]})}function x(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function S(e){if(Array.isArray(e))return e}function C(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function w(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
4
4
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function T(e,t){return S(e)||C(e,t)||E(e,t)||w()}function E(e,t){if(e){if(typeof e==`string`)return x(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?x(e,t):void 0}}var D=Object.entries,O=Object.setPrototypeOf,k=Object.isFrozen,ee=Object.getPrototypeOf,te=Object.getOwnPropertyDescriptor,A=Object.freeze,j=Object.seal,M=Object.create,N=typeof Reflect<`u`&&Reflect,ne=N.apply,re=N.construct;A||=function(e){return e},j||=function(e){return e},ne||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},re||=function(e){return new e(...[...arguments].slice(1))};var ie=z(Array.prototype.forEach),ae=z(Array.prototype.lastIndexOf),oe=z(Array.prototype.pop),se=z(Array.prototype.push),ce=z(Array.prototype.splice),P=Array.isArray,le=z(String.prototype.toLowerCase),ue=z(String.prototype.toString),de=z(String.prototype.match),fe=z(String.prototype.replace),pe=z(String.prototype.indexOf),me=z(String.prototype.trim),F=z(Number.prototype.toString),he=z(Boolean.prototype.toString),I=typeof BigInt>`u`?null:z(BigInt.prototype.toString),ge=typeof Symbol>`u`?null:z(Symbol.prototype.toString),L=z(Object.prototype.hasOwnProperty),_e=z(Object.prototype.toString),R=z(RegExp.prototype.test),ve=ye(TypeError);function z(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return ne(e,t,n)}}function ye(e){return function(){return re(e,[...arguments])}}function B(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:le;if(O&&O(e,null),!P(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(k(t)||(t[r]=e),i=e)}e[i]=!0}return e}function V(e){for(let t=0;t<e.length;t++)L(e,t)||(e[t]=null);return e}function H(e){let t=M(null);for(let r of D(e)){var n=T(r,2);let i=n[0],a=n[1];L(e,i)&&(P(a)?t[i]=V(a):a&&typeof a==`object`&&a.constructor===Object?t[i]=H(a):t[i]=a)}return t}function be(e){switch(typeof e){case`string`:return e;case`number`:return F(e);case`boolean`:return he(e);case`bigint`:return I?I(e):`0`;case`symbol`:return ge?ge(e):`Symbol()`;case`undefined`:return _e(e);case`function`:case`object`:{if(e===null)return _e(e);let t=e,n=U(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:_e(e)}return _e(e)}default:return _e(e)}}function U(e,t){for(;e!==null;){let n=te(e,t);if(n){if(n.get)return z(n.get);if(typeof n.value==`function`)return z(n.value)}e=ee(e)}function n(){return null}return n}function xe(e){try{return R(e,``),!0}catch{return!1}}var Se=A(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),Ce=A(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),we=A([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),Te=A([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),Ee=A(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),De=A([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),Oe=A([`#text`]),ke=A(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),Ae=A(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-rendering.textlength.type.u1.u2.unicode.values.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),je=A(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),Me=A([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),Ne=j(/{{[\w\W]*|^[\w\W]*}}/g),Pe=j(/<%[\w\W]*|^[\w\W]*%>/g),Fe=j(/\${[\w\W]*/g),Ie=j(/^data-[\-\w.\u00B7-\uFFFF]+$/),Le=j(/^aria-[\-\w]+$/),Re=j(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ze=j(/^(?:\w+script|data):/i),Be=j(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ve=j(/^html$/i),He=j(/^[a-z][.\w]*(-[.\w]+)+$/i),Ue=j(/<[/\w!]/g),We=j(/<[/\w]/g),Ge=j(/<\/no(script|embed|frames)/i),Ke=j(/\/>/i),qe={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Je=function(){return typeof window>`u`?null:window},Ye=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},Xe=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Ze=function(e,t,n,r){return L(e,t)&&P(e[t])?B(r.base?H(r.base):{},e[t],r.transform):n};function Qe(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Je(),t=e=>Qe(e);if(t.version=`3.4.11`,t.removed=[],!e||!e.document||e.document.nodeType!==qe.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=U(d,`cloneNode`),p=U(d,`remove`),m=U(d,`nextSibling`),h=U(d,`childNodes`),g=U(d,`parentNode`),_=U(d,`shadowRoot`),v=U(d,`attributes`),y=o&&o.prototype?U(o.prototype,`nodeType`):null,b=o&&o.prototype?U(o.prototype,`nodeName`):null;if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let x,S=``,C,w=!1,T=0,E=function(){if(T>0)throw ve(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},O=function(e){E(),T++;try{return x.createHTML(e)}finally{T--}},k=function(e){E(),T++;try{return x.createScriptURL(e)}finally{T--}},ee=function(){return w||=(C=Ye(u,i),!0),C},te=n,N=te.implementation,ne=te.createNodeIterator,re=te.createDocumentFragment,F=te.getElementsByTagName,he=r.importNode,I=Xe();t.isSupported=typeof D==`function`&&typeof g==`function`&&N&&N.createHTMLDocument!==void 0;let ge=Ne,_e=Pe,z=Fe,ye=Ie,V=Le,$e=ze,et=Be,tt=He,nt=Re,W=null,rt=B({},[...Se,...Ce,...we,...Ee,...Oe]),G=null,it=B({},[...ke,...Ae,...je,...Me]),K=Object.seal(M(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),at=null,ot=null,st=Object.seal(M(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),ct=!0,lt=!0,ut=!1,dt=!0,ft=!1,pt=!0,mt=!1,ht=!1,gt=null,_t=null,vt=!1,yt=!1,bt=!1,xt=!1,St=!0,Ct=!1,wt=`user-content-`,Tt=!0,Et=!1,Dt={},q=null,Ot=B({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),kt=null,At=B({},[`audio`,`video`,`img`,`source`,`image`,`track`]),jt=null,Mt=B({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),Nt=`http://www.w3.org/1998/Math/MathML`,Pt=`http://www.w3.org/2000/svg`,Ft=`http://www.w3.org/1999/xhtml`,It=Ft,Lt=!1,Rt=null,zt=B({},[Nt,Pt,Ft],ue),Bt=A([`mi`,`mo`,`mn`,`ms`,`mtext`]),Vt=B({},Bt),Ht=A([`annotation-xml`]),Ut=B({},Ht),Wt=B({},[`title`,`style`,`font`,`a`,`script`]),Gt=null,Kt=[`application/xhtml+xml`,`text/html`],J=null,qt=null,Jt=n.createElement(`form`),Yt=function(e){return e instanceof RegExp||e instanceof Function},Xt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(qt&&qt===e)return;(!e||typeof e!=`object`)&&(e={}),e=H(e),Gt=Kt.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,J=Gt===`application/xhtml+xml`?ue:le,W=Ze(e,`ALLOWED_TAGS`,rt,{transform:J}),G=Ze(e,`ALLOWED_ATTR`,it,{transform:J}),Rt=Ze(e,`ALLOWED_NAMESPACES`,zt,{transform:ue}),jt=Ze(e,`ADD_URI_SAFE_ATTR`,Mt,{transform:J,base:Mt}),kt=Ze(e,`ADD_DATA_URI_TAGS`,At,{transform:J,base:At}),q=Ze(e,`FORBID_CONTENTS`,Ot,{transform:J}),at=Ze(e,`FORBID_TAGS`,H({}),{transform:J}),ot=Ze(e,`FORBID_ATTR`,H({}),{transform:J}),Dt=L(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?H(e.USE_PROFILES):e.USE_PROFILES:!1,ct=e.ALLOW_ARIA_ATTR!==!1,lt=e.ALLOW_DATA_ATTR!==!1,ut=e.ALLOW_UNKNOWN_PROTOCOLS||!1,dt=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ft=e.SAFE_FOR_TEMPLATES||!1,pt=e.SAFE_FOR_XML!==!1,mt=e.WHOLE_DOCUMENT||!1,yt=e.RETURN_DOM||!1,bt=e.RETURN_DOM_FRAGMENT||!1,xt=e.RETURN_TRUSTED_TYPE||!1,vt=e.FORCE_BODY||!1,St=e.SANITIZE_DOM!==!1,Ct=e.SANITIZE_NAMED_PROPS||!1,Tt=e.KEEP_CONTENT!==!1,Et=e.IN_PLACE||!1,nt=xe(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:Re,It=typeof e.NAMESPACE==`string`?e.NAMESPACE:Ft,Vt=L(e,`MATHML_TEXT_INTEGRATION_POINTS`)&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS==`object`?H(e.MATHML_TEXT_INTEGRATION_POINTS):B({},Bt),Ut=L(e,`HTML_INTEGRATION_POINTS`)&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS==`object`?H(e.HTML_INTEGRATION_POINTS):B({},Ht);let t=L(e,`CUSTOM_ELEMENT_HANDLING`)&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING==`object`?H(e.CUSTOM_ELEMENT_HANDLING):M(null);if(K=M(null),L(t,`tagNameCheck`)&&Yt(t.tagNameCheck)&&(K.tagNameCheck=t.tagNameCheck),L(t,`attributeNameCheck`)&&Yt(t.attributeNameCheck)&&(K.attributeNameCheck=t.attributeNameCheck),L(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(K.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),j(K),ft&&(lt=!1),bt&&(yt=!0),Dt&&(W=B({},Oe),G=M(null),Dt.html===!0&&(B(W,Se),B(G,ke)),Dt.svg===!0&&(B(W,Ce),B(G,Ae),B(G,Me)),Dt.svgFilters===!0&&(B(W,we),B(G,Ae),B(G,Me)),Dt.mathMl===!0&&(B(W,Ee),B(G,je),B(G,Me))),st.tagCheck=null,st.attributeCheck=null,L(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?st.tagCheck=e.ADD_TAGS:P(e.ADD_TAGS)&&(W===rt&&(W=H(W)),B(W,e.ADD_TAGS,J))),L(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?st.attributeCheck=e.ADD_ATTR:P(e.ADD_ATTR)&&(G===it&&(G=H(G)),B(G,e.ADD_ATTR,J))),L(e,`ADD_URI_SAFE_ATTR`)&&P(e.ADD_URI_SAFE_ATTR)&&B(jt,e.ADD_URI_SAFE_ATTR,J),L(e,`FORBID_CONTENTS`)&&P(e.FORBID_CONTENTS)&&(q===Ot&&(q=H(q)),B(q,e.FORBID_CONTENTS,J)),L(e,`ADD_FORBID_CONTENTS`)&&P(e.ADD_FORBID_CONTENTS)&&(q===Ot&&(q=H(q)),B(q,e.ADD_FORBID_CONTENTS,J)),Tt&&(W[`#text`]=!0),mt&&B(W,[`html`,`head`,`body`]),W.table&&(B(W,[`tbody`]),delete at.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw ve(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw ve(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=x;x=e.TRUSTED_TYPES_POLICY;try{S=O(``)}catch(e){throw x=t,e}}else e.TRUSTED_TYPES_POLICY===null?(x=void 0,S=``):(x===void 0&&(x=ee()),x&&typeof S==`string`&&(S=O(``)));A&&A(e),qt=e},Zt=B({},[...Ce,...we,...Te]),Qt=B({},[...Ee,...De]),$t=function(e,t,n){return t.namespaceURI===Ft?e===`svg`:t.namespaceURI===Nt?e===`svg`&&(n===`annotation-xml`||Vt[n]):!!Zt[e]},en=function(e,t,n){return t.namespaceURI===Ft?e===`math`:t.namespaceURI===Pt?e===`math`&&Ut[n]:!!Qt[e]},tn=function(e,t,n){return t.namespaceURI===Pt&&!Ut[n]||t.namespaceURI===Nt&&!Vt[n]?!1:!Qt[e]&&(Wt[e]||!Zt[e])},nn=function(e){let t=g(e);(!t||!t.tagName)&&(t={namespaceURI:It,tagName:`template`});let n=le(e.tagName),r=le(t.tagName);return Rt[e.namespaceURI]?e.namespaceURI===Pt?$t(n,t,r):e.namespaceURI===Nt?en(n,t,r):e.namespaceURI===Ft?tn(n,t,r):!!(Gt===`application/xhtml+xml`&&Rt[e.namespaceURI]):!1},rn=function(e){se(t.removed,{element:e});try{g(e).removeChild(e)}catch{if(p(e),!g(e))throw ve(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},an=function(e){let t=h(e);if(t){let e=[];ie(t,t=>{se(e,t)}),ie(e,e=>{try{p(e)}catch{}})}let n=v(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;if(typeof i==`string`)try{e.removeAttribute(i)}catch{}}},on=function(e,n){try{se(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{se(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(yt||bt)try{rn(n)}catch{}else try{n.setAttribute(e,``)}catch{}},sn=function(e){let t=v(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;if(!(typeof i!=`string`||G[J(i)]))try{e.removeAttribute(i)}catch{}}},cn=function(e){let t=[e];for(;t.length>0;){let e=t.pop();(y?y(e):e.nodeType)===qe.element&&sn(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},ln=function(e){let t=null,r=null;if(vt)e=`<remove></remove>`+e;else{let t=de(e,/^[\r\n\t ]+/);r=t&&t[0]}Gt===`application/xhtml+xml`&&It===Ft&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=x?O(e):e;if(It===Ft)try{t=new l().parseFromString(i,Gt)}catch{}if(!t||!t.documentElement){t=N.createDocument(It,`template`,null);try{t.documentElement.innerHTML=Lt?S:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),It===Ft?F.call(t,mt?`html`:`body`)[0]:mt?t.documentElement:a},un=function(e){return ne.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Y=function(e){return e=fe(e,ge,` `),e=fe(e,_e,` `),e=fe(e,z,` `),e},dn=function(e){e.normalize();let t=ne.call(e.ownerDocument||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),n=t.nextNode();for(;n;)n.data=Y(n.data),n=t.nextNode();let r=e.querySelectorAll?.call(e,`template`);r&&ie(r,e=>{X(e.content)&&dn(e.content)})},fn=function(e){let t=b?b(e):null;return typeof t!=`string`||J(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==v(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==y(e)||e.childNodes!==h(e)},X=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return y(e)===qe.documentFragment}catch{return!1}},pn=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return typeof y(e)==`number`}catch{return!1}};function mn(e,n,r){e.length!==0&&ie(e,e=>{e.call(t,n,r,qt)})}let hn=function(e,t){return!!(pt&&e.hasChildNodes()&&!pn(e.firstElementChild)&&R(Ue,e.textContent)&&R(Ue,e.innerHTML)||pt&&e.namespaceURI===Ft&&t===`style`&&pn(e.firstElementChild)||e.nodeType===qe.processingInstruction||pt&&e.nodeType===qe.comment&&R(We,e.data))},gn=function(e,t){if(!at[t]&&yn(t)&&(K.tagNameCheck instanceof RegExp&&R(K.tagNameCheck,t)||K.tagNameCheck instanceof Function&&K.tagNameCheck(t)))return!1;if(Tt&&!q[t]){let t=g(e),n=h(e);if(n&&t){let r=n.length;for(let i=r-1;i>=0;--i){let r=Et?n[i]:f(n[i],!0);t.insertBefore(r,m(e))}}}return rn(e),!0},_n=function(e){if(mn(I.beforeSanitizeElements,e,null),fn(e))return rn(e),!0;let n=J(b?b(e):e.nodeName);if(mn(I.uponSanitizeElement,e,{tagName:n,allowedTags:W}),hn(e,n))return rn(e),!0;if(at[n]||!(st.tagCheck instanceof Function&&st.tagCheck(n))&&!W[n])return gn(e,n);if((y?y(e):e.nodeType)===qe.element&&!nn(e)||(n===`noscript`||n===`noembed`||n===`noframes`)&&R(Ge,e.innerHTML))return rn(e),!0;if(ft&&e.nodeType===qe.text){let n=Y(e.textContent);e.textContent!==n&&(se(t.removed,{element:e.cloneNode()}),e.textContent=n)}return mn(I.afterSanitizeElements,e,null),!1},vn=function(e,t,r){if(ot[t]||St&&(t===`id`||t===`name`)&&(r in n||r in Jt))return!1;let i=G[t]||st.attributeCheck instanceof Function&&st.attributeCheck(t,e);if(!(lt&&R(ye,t))&&!(ct&&R(V,t))){if(!i){if(!(yn(e)&&(K.tagNameCheck instanceof RegExp&&R(K.tagNameCheck,e)||K.tagNameCheck instanceof Function&&K.tagNameCheck(e))&&(K.attributeNameCheck instanceof RegExp&&R(K.attributeNameCheck,t)||K.attributeNameCheck instanceof Function&&K.attributeNameCheck(t,e))||t===`is`&&K.allowCustomizedBuiltInElements&&(K.tagNameCheck instanceof RegExp&&R(K.tagNameCheck,r)||K.tagNameCheck instanceof Function&&K.tagNameCheck(r))))return!1}else if(!jt[t]&&!R(nt,fe(r,et,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&pe(r,`data:`)===0&&kt[e])&&!(ut&&!R($e,fe(r,et,``)))&&r)return!1}return!0},Z=B({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),yn=function(e){return!Z[le(e)]&&R(tt,e)},bn=function(e,t,n,r){if(x&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return O(r);case`TrustedScriptURL`:return k(r)}return r},Q=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),fn(e)?rn(e):oe(t.removed)}catch{on(n,e)}},xn=function(e){mn(I.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||fn(e))return;let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:G,forceKeepAttr:void 0},r=t.length,i=J(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=J(o),u=c,d=o===`value`?u:me(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,mn(I.uponSanitizeAttribute,e,n),d=n.attrValue,Ct&&(l===`id`||l===`name`)&&pe(d,wt)!==0&&(on(o,e),d=wt+d),pt&&R(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){on(o,e);continue}if(l===`attributename`&&de(d,`href`)){on(o,e);continue}if(!n.forceKeepAttr){if(!n.keepAttr){on(o,e);continue}if(!dt&&R(Ke,d)){on(o,e);continue}if(ft&&(d=Y(d)),!vn(i,l,d)){on(o,e);continue}d=bn(i,l,s,d),d!==u&&Q(e,o,s,d)}}mn(I.afterSanitizeAttributes,e,null)},Sn=function(e){let t=null,n=un(e);for(mn(I.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(mn(I.uponSanitizeShadowNode,t,null),_n(t),xn(t),X(t.content)&&Sn(t.content),(y?y(t):t.nodeType)===qe.element){let e=_(t);X(e)&&($(e),Sn(e))}mn(I.afterSanitizeShadowDOM,e,null)},$=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Sn(e.shadow);continue}let n=e.node,r=(y?y(n):n.nodeType)===qe.element,i=h(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=b?b(n):null;if(typeof e==`string`&&J(e)===`template`){let e=n.content;X(e)&&t.push({node:e,shadow:null})}}if(r){let e=_(n);X(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Lt=!e,Lt&&(e=`<!-->`),typeof e!=`string`&&!pn(e)&&(e=be(e),typeof e!=`string`))throw ve(`dirty is not a string, aborting`);if(!t.isSupported)return e;ht?(W=gt,G=_t):Xt(n),(I.uponSanitizeElement.length>0||I.uponSanitizeAttribute.length>0)&&(W=H(W)),I.uponSanitizeAttribute.length>0&&(G=H(G)),t.removed=[];let c=Et&&typeof e!=`string`&&pn(e);if(c){let t=b?b(e):e.nodeName;if(typeof t==`string`){let e=J(t);if(!W[e]||at[e])throw ve(`root node is forbidden and cannot be sanitized in-place`)}if(fn(e))throw ve(`root node is clobbered and cannot be sanitized in-place`);try{$(e)}catch(t){throw an(e),t}}else if(pn(e))i=ln(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===qe.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),$(a);else{if(!yt&&!ft&&!mt&&e.indexOf(`<`)===-1)return x&&xt?O(e):e;if(i=ln(e),!i)return yt?null:xt?S:``}i&&vt&&rn(i.firstChild);let l=un(c?e:i);try{for(;o=l.nextNode();)_n(o),xn(o),X(o.content)&&Sn(o.content)}catch(t){throw c&&an(e),t}if(c)return ie(t.removed,e=>{e.element&&cn(e.element)}),ft&&dn(e),e;if(yt){if(ft&&dn(i),bt)for(s=re.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(G.shadowroot||G.shadowrootmode)&&(s=he.call(r,s,!0)),s}let u=mt?i.outerHTML:i.innerHTML;return mt&&W[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&R(Ve,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
|
|
@@ -70,7 +70,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
|
|
|
70
70
|
/context — context breakdown (system prompt, tools, skills, history)
|
|
71
71
|
/compact [N] — summarize the head; keep the last N messages verbatim (default 10)
|
|
72
72
|
/new — open the retained conversation library
|
|
73
|
-
/help — show this list`;function Gn(e){if(!e)return``;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function Kn(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KiB`:`${(e/(1024*1024)).toFixed(2)} MiB`}function qn(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let n=String(r.result),i=n.indexOf(`,`);t({name:e.name,data:i>=0?n.slice(i+1):n,mimeType:e.type||`application/octet-stream`})},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}var Jn=e=>e.startsWith(`image/`);function Yn(e){let t=[],n=null;for(let r of e)if(r.role===`user`)n=null,t.push({type:`user`,content:r.content,...r.images&&r.images.length>0?{images:r.images}:{}});else if(r.role===`assistant`){if(r.content&&(n=null,t.push({type:`assistant`,content:r.content})),r.toolCalls&&r.toolCalls.length>0){n||(n={type:`tool`,items:[]},t.push(n));for(let e of r.toolCalls)n.items.push({kind:`call`,id:e.id,name:e.name,body:e.arguments})}}else if(r.role===`tool`){n||(n={type:`tool`,items:[]},t.push(n));let e=r.content.startsWith(`Error:`)||r.content.startsWith(`error:`);n.items.push({kind:e?`error`:`result`,id:r.toolCallId??``,name:r.toolName??``,body:r.content,...r.codingLog?{codingLog:r.codingLog}:{}})
|
|
73
|
+
/help — show this list`;function Gn(e){if(!e)return``;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function Kn(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KiB`:`${(e/(1024*1024)).toFixed(2)} MiB`}function qn(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let n=String(r.result),i=n.indexOf(`,`);t({name:e.name,data:i>=0?n.slice(i+1):n,mimeType:e.type||`application/octet-stream`})},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}var Jn=e=>e.startsWith(`image/`);function Yn(e){let t=[],n=null;for(let r of e)if(r.role===`user`)n=null,t.push({type:`user`,content:r.content,...r.images&&r.images.length>0?{images:r.images}:{}});else if(r.role===`assistant`){if(r.content&&(n=null,t.push({type:`assistant`,content:r.content})),r.toolCalls&&r.toolCalls.length>0){n||(n={type:`tool`,items:[]},t.push(n));for(let e of r.toolCalls)n.items.push({kind:`call`,id:e.id,name:e.name,body:e.arguments})}}else if(r.role===`tool`){n||(n={type:`tool`,items:[]},t.push(n));let e=r.content.startsWith(`Error:`)||r.content.startsWith(`error:`);n.items.push({kind:e?`error`:`result`,id:r.toolCallId??``,name:r.toolName??``,body:r.content,...r.codingLog?{codingLog:r.codingLog}:{}});for(let e of r.results??(r.result?[r.result]:[]))t.push({type:`result`,resultId:e.resultId}),n=null;r.images&&r.images.length>0&&(t.push({type:`images`,images:r.images}),n=null)}return t}function Xn({agentId:e,agentName:t,initialMessages:n,initialSessionHead:i}){let a=(0,u.useSyncExternalStore)(Rn,zn,Bn),[o,s]=(0,u.useState)(n),[c,l]=(0,u.useState)([]),d=(0,u.useRef)(new Map),[f,p]=(0,u.useState)([]),[m,h]=(0,u.useState)(!1),[g,v]=(0,u.useState)(!1),[y,b]=(0,u.useState)(null),[x,S]=(0,u.useState)(``),[C,w]=(0,u.useState)([]),[T,E]=(0,u.useState)(!1),[D,O]=(0,u.useState)(!1),[k,ee]=(0,u.useState)(!1),[te,A]=(0,u.useState)({}),[j,M]=(0,u.useState)({}),[N,ne]=(0,u.useState)(!1),[re,ie]=(0,u.useState)(),[ae,oe]=(0,u.useState)(!1),[se,ce]=(0,u.useState)(!1),P=(0,u.useRef)(null),[le,ue]=(0,u.useState)(i?.unavailable??!1),de=(0,u.useRef)(null),fe=(0,u.useRef)(null),pe=(0,u.useRef)(null),me=(0,u.useRef)(null),F=(0,u.useRef)(e),he=(0,u.useRef)(!1);F.current=e;let I=(0,u.useRef)(0),ge=(0,u.useRef)(0),L=(0,u.useRef)(i??{file:null,size:0}),_e=(0,u.useRef)(!1);_e.current=g;let R=g||k;(0,u.useEffect)(()=>{me.current?.abort(),me.current=null,he.current=!1,d.current.clear(),s(n),l([]),p([]),b(null),S(``),ce(!1),w([]),ue(i?.unavailable??!1),h(!1),v(!1),O(!1),ee(!1),A({}),M({}),L.current=i??{file:null,size:0}},[e]),(0,u.useEffect)(()=>{let t=new AbortController,n=!1;async function r(){try{let r=await fetch(Un(e),{signal:t.signal});if(!r.ok)return;let i=(await r.json()).approvals.filter(t=>t.agentId===e&&t.status===`pending`);if(n||i.length===0)return;sessionStorage.removeItem(`bz_pending_${e}`),he.current=!0,l(e=>i.reduce(Vn,e)),ee(!0)}catch(e){if(e.name===`AbortError`)return}}return r(),()=>{n=!0,t.abort()}},[e]);let ve=(0,u.useRef)(!0);(0,u.useLayoutEffect)(()=>{let e=de.current;e&&ve.current&&(e.scrollTop=e.scrollHeight)});function z(){let e=de.current;if(!e){ve.current=!0;return}ve.current=e.scrollHeight-e.scrollTop-e.clientHeight<Pn}(0,u.useLayoutEffect)(()=>{let e=pe.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,Ln)}px`)},[x]),(0,u.useEffect)(()=>{let t=`bz_pending_${e}`;function n(){document.visibilityState===`visible`&&sessionStorage.getItem(t)&&(sessionStorage.removeItem(t),O(!0))}return document.addEventListener(`visibilitychange`,n),()=>document.removeEventListener(`visibilitychange`,n)},[e]),(0,u.useEffect)(()=>{if(!i)return;let t=!1,n=null;async function r(){if(!t){if(!document.hidden&&!_e.current&&!D)try{let t=await fetch(`/api/agents/${encodeURIComponent(e)}/sessions/head`);if(t.ok){let e=await t.json();if(typeof e.size==`number`){let t=L.current;(e.unavailable!==t.unavailable||e.file!==t.file||e.size!==t.size)&&O(!0)}}}catch{}n=setTimeout(r,Fn)}}return n=setTimeout(r,Fn),()=>{t=!0,n&&clearTimeout(n)}},[e,i,D]);async function ye(){if(!_e.current)try{let t=await fetch(`/api/agents/${encodeURIComponent(e)}/sessions/messages`);if(!t.ok)throw Error(`Conversation history is unavailable. Your draft is preserved.`);let n=await t.json();if(F.current!==e)return;ue(n.head.unavailable??!1),s(n.messages),l([]),b(null),L.current=n.head,O(!1)}catch(e){V(e instanceof Error?e.message:`Could not refresh conversation`)}}async function B(){if(F.current===e)try{let t=await fetch(`/api/agents/${encodeURIComponent(e)}/sessions/head`);if(!t.ok)return;let n=await t.json();if(F.current===e&&typeof n.size==`number`){let e=L.current.selection;if(e?.conversationId&&e.conversationId!==n.selection?.conversationId){O(!0);return}ue(n.unavailable??!1),L.current=n}}catch{}}function V(e){z(),p(t=>[...t,{id:I.current++,content:e,afterIdx:ge.current}])}async function H(){try{let t=await fetch(`/api/agents/${encodeURIComponent(e)}/chat/context`);if(!t.ok){V(`/context failed: ${t.statusText}`);return}let n=await t.json(),r=(e,t)=>`${e.toLocaleString()} chars (~${t.toLocaleString()} tok)`,i=[];i.push(`context for ${n.agentId}`),i.push(`model: ${n.model}`),i.push(``),i.push(`system prompt: ${r(n.systemPrompt.chars,n.systemPrompt.tokens)}`);for(let e of n.systemPrompt.files)i.push(` - ${e.name}: ${e.chars.toLocaleString()} chars`);i.push(``),i.push(`tools: ${n.tools.count} (${n.tools.schemaChars.toLocaleString()} chars of schema)`);for(let e of n.tools.entries.slice(0,5))i.push(` - ${e.name}: ${e.schemaChars.toLocaleString()} chars`);if(n.skills.count>0){i.push(``),i.push(`skills: ${n.skills.count}`);for(let e of n.skills.entries.slice(0,10))i.push(` - ${e.name}: ${e.blockChars.toLocaleString()} chars`)}i.push(``),i.push(`history: ${n.history.messageEntries} messages / ${n.history.compactionEntries} compactions`),i.push(` ${r(n.history.chars,n.history.tokensEstimate)}`),i.push(` bytes on disk: ${Kn(n.history.bytes)}`),i.push(``),i.push(`TOTAL: ${r(n.totals.chars,n.totals.tokens)}`),V(i.join(`
|
|
74
74
|
`))}catch(e){V(`/context failed: ${e.message}`)}}async function be(t){if(o.length<2){V(`/compact: need ≥2 messages to compact`);return}let n,r=t.trim();if(r){let e=Number(r);Number.isFinite(e)&&e>=0&&(n=Math.floor(e))}Ce(),v(!0),h(!0);try{let t=await fetch(`/api/agents/${encodeURIComponent(e)}/chat/compact`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({keepTail:n,expectedSelection:L.current.selection})});if(!t.ok){let e=t.statusText;try{e=(await t.json()).error||e}catch{}V(`/compact failed: ${e}`);return}let r=await t.json();V(`/compact: ${r.before} → ${r.after} entries (${r.summarized} summarized, ${r.keptTail} kept verbatim; ~${r.tokensBefore.toLocaleString()} → ~${r.tokensAfter.toLocaleString()} tok). reloading…`),setTimeout(()=>window.location.reload(),400)}catch(e){V(`/compact failed: ${e.message}`)}finally{h(!1),v(!1)}}async function U(e){let t=e.trim();if(!t.startsWith(`/`))return!1;let n=t.split(/\s+/),r=(n[0]??``).toLowerCase(),i=n.slice(1).join(` `);switch(r){case`/help`:return V(Wn),!0;case`/context`:return await H(),!0;case`/new`:return ne(!0),!0;case`/compact`:return await be(i),!0;default:return!1}}function xe(){for(let e=o.length-1;e>=0;e--)if(o[e]?.role===`user`)return e;return-1}function Se(){if(c.length>0||R)return;let e=xe();if(e===-1)return;let t=o[e];t&&(b(e),S(t.content),pe.current?.focus())}function Ce(){b(null)}async function we(e){if(!e)return;let t=Array.from(e);if(t.length===0)return;let n=await Promise.all(t.map(qn));w(e=>[...e,...n].slice(0,16))}function Te(e){let t=Array.from(e.clipboardData.files);t.some(e=>e.type.startsWith(`image/`))&&(e.preventDefault(),we(t))}function Ee(e){Array.from(e.dataTransfer.types).includes(`Files`)&&(e.preventDefault(),E(!0))}function De(e){e.currentTarget===e.target&&E(!1)}function Oe(e){e.dataTransfer.files.length!==0&&(e.preventDefault(),E(!1),we(e.dataTransfer.files))}let ke=(0,u.useCallback)(async t=>{let n=C;if(!t.trim()&&n.length===0)return;if(!se){V(`Queue status is loading. Your draft is preserved.`);return}if(R||ae){await P.current?.enqueue(t,n,L.current.selection)&&F.current===e&&(S(e=>e===t?``:e),w(e=>e===n?[]:e));return}if(S(``),await U(t))return;w([]);let r=null;if(y!==null){let n=y;try{let i=await fetch(`/api/agents/${encodeURIComponent(e)}/chat/truncate`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({keepCount:n,expectedSelection:L.current.selection})});if(!i.ok){let e=i.statusText;try{e=(await i.json()).error||e}catch{}S(t),V(`Could not replace the last turn: ${e}`);return}r=o.slice(0,n),s(r),b(null)}catch(e){S(t),V(`Could not replace the last turn: ${e.message}`);return}}z();let i=n.filter(e=>Jn(e.mimeType)),a=n.filter(e=>!Jn(e.mimeType));l([{type:`user`,content:t,...i.length>0?{images:i}:{},...a.length>0?{files:a.map(e=>({name:e.name??`file`}))}:{}}]),ee(!1),A({}),M({}),he.current=!1,sessionStorage.setItem(`bz_pending_${e}`,`1`);let c=new AbortController;me.current=c,v(!0),h(!0);let u=!1;try{let r=await fetch(`/api/agents/${encodeURIComponent(e)}/chat`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({...Hn(t,n),expectedSelection:L.current.selection}),signal:c.signal});if(r.status===202){let t=await r.json();l(e=>[...e,{type:`error`,content:`[approval pending] ${t.approvalId} · expires ${new Date(t.expiresAt).toLocaleString()} · review in /approvals`}]),sessionStorage.removeItem(`bz_pending_${e}`);return}if(r.status===409){S(t),w(n),l([]),O(!0),sessionStorage.removeItem(`bz_pending_${e}`),V(`Conversation changed. Refresh history, then review and send your preserved draft.`);return}if(!r.ok||!r.body){let e=r.statusText;try{e=(await r.json()).error||e}catch{}l(t=>[...t,{type:`error`,content:`[error] ${e}`}]);return}let i=r.headers.get(`x-bazilion-conversation-selection`);if(i)try{let e=JSON.parse(i);typeof e.conversationId==`string`&&Number.isSafeInteger(e.revision)&&e.revision>=0&&(L.current={...L.current,selection:e})}catch{}let a=r.body.getReader(),o=new TextDecoder,s=``;for(;;){let{done:e,value:t}=await a.read();if(e)break;s+=o.decode(t,{stream:!0});let n=s.split(`
|
|
75
75
|
`);s=n.pop()??``;for(let e of n){if(!e.trim())continue;let t;try{t=JSON.parse(e)}catch{continue}(t.kind===`done`||t.kind===`fatal`)&&(u=!0),Ae(t)}}if(s.trim())try{let e=JSON.parse(s);(e.kind===`done`||e.kind===`fatal`)&&(u=!0),Ae(e)}catch{}await B(),sessionStorage.removeItem(`bz_pending_${e}`)}catch(t){t.name!==`AbortError`&&l(e=>[...e,{type:`error`,content:`[network error] ${t.message}`}]),sessionStorage.removeItem(`bz_pending_${e}`)}finally{F.current===e&&me.current===c&&(!u&&he.current&&ee(!0),h(!1),v(!1),me.current=null)}},[e,y,o,R,ae,se,C]);function Ae(t){if(F.current!==e)return;if(t.kind===`fatal`){he.current=!1,l(e=>[...e.map(e=>e.type===`command_approval`&&e.approval.status===`pending`?{type:`command_approval`,approval:{...e.approval,status:`cancelled`}}:e),{type:`error`,content:`[fatal] ${t.error}`}]),ee(!1);return}if(t.kind===`done`){he.current=!1,s(t.messages),l([]),ee(!1),A({}),M({});return}if(t.kind!==`event`)return;let n=t.event;if(z(),n.type!==`user_message`){if(n.type===`assistant_delta`){h(!1),l(e=>{let t=[...e],r=t[t.length-1];return r?.type===`assistant`?t[t.length-1]={type:`assistant`,content:r.content+n.delta}:t.push({type:`assistant`,content:n.delta}),t});return}if(n.type===`assistant_message`){h(!1),l(e=>{let t=[...e];return t[t.length-1]?.type===`assistant`?t[t.length-1]={type:`assistant`,content:n.text}:t.push({type:`assistant`,content:n.text}),t});return}if(n.type===`command_approval`){if(n.approval.agentId!==e)return;he.current=!0,h(n.approval.status!==`pending`&&n.approval.status!==`cancelled`),l(e=>Vn(e,n.approval));return}if(n.type===`coding_progress`){l(e=>tr(e,n));return}if(n.type===`tool_call`||n.type===`tool_result`||n.type===`tool_error`){h(n.type!==`tool_call`);let e=n.type===`tool_call`?{kind:`call`,id:n.id,name:n.name,body:n.arguments}:n.type===`tool_result`?{kind:`result`,id:n.id,name:n.name,body:n.result}:{kind:`error`,id:n.id,name:n.name,body:n.error};if(n.type===`tool_result`&&[`repository_context`,`coding_environment`,`coding_command`,`coding_receipt`,`coding_log`,`source_snapshot`].includes(n.name))for(d.current.set(`${n.name}:${n.id}`,n.result);d.current.size>20;)d.current.delete(d.current.keys().next().value);let t=n.type===`tool_result`?n.images:void 0;l(r=>{let i=[...r.map(e=>e.type===`tool`?{...e,items:e.items.filter(e=>!(e.kind===`progress`&&e.id===n.id))}:e)],a=i[i.length-1];return a?.type===`tool`?i[i.length-1]={type:`tool`,items:[...a.items,e]}:i.push({type:`tool`,items:[e]}),t&&t.length>0&&i.push({type:`images`,images:t}),i});return}if(n.type===`file`){if(n.result){let e=n.result.resultId;l(t=>[...t,{type:`result`,resultId:e}]);return}l(e=>[...e,{type:`file`,name:n.name,mimeType:n.mimeType,data:n.data}]);return}n.type===`error`&&l(e=>[...e,{type:`error`,content:`[error] ${n.error}`}])}}async function je(t){if(F.current!==e)return null;try{let n=await fetch(Un(e));if(!n.ok)return null;let r=await n.json();if(F.current!==e)return null;let i=r.approvals.find(n=>n.id===t&&n.agentId===e);return i&&l(e=>Vn(e,i)),i??null}catch{return null}}async function Me(t,n){if(!(t.agentId!==e||t.status!==`pending`)){A(e=>({...e,[t.id]:!0})),M(e=>{let n={...e};return delete n[t.id],n});try{let r=await fetch(`/api/shell-approvals/${encodeURIComponent(t.id)}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({decision:n})}),i=await r.json().catch(()=>null);if(F.current!==e)return;if(i?.approval?.agentId===e&&l(e=>Vn(e,i.approval)),!r.ok){let e=i?.error??`Decision failed (${r.status})`,n=er(e);if(n){l(e=>Vn(e,{...t,status:n}));return}throw Error(e)}}catch(n){let r=await je(t.id);if(F.current!==e)return;(!r||r.status===`pending`)&&M(e=>({...e,[t.id]:n instanceof Error?n.message:String(n)}))}finally{F.current===e&&A(e=>({...e,[t.id]:!1}))}}}async function Ne(){!await P.current?.stop()&&F.current===e&&V(`Stop was not confirmed. Check queue controls and try again; the active response may still be running.`)}function Pe(e){e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),ke(x))}let Fe=Yn(o.map(e=>{if(e.role!==`tool`||!e.toolCallId||!e.toolName)return e;let t=d.current.get(`${e.toolName}:${e.toolCallId}`);return t===void 0?e:{...e,content:t}}));ge.current=Fe.length+c.length;let Ie=(()=>{if(c.length>0||R)return-1;for(let e=Fe.length-1;e>=0;e--)if(Fe[e]?.type===`user`)return e;return-1})(),Le=(()=>{if(y===null)return-1;let e=0;for(let t=0;t<Fe.length;t++)if(Fe[t]?.type===`user`){if(e===o.slice(0,y+1).filter(e=>e.role===`user`).length-1)return t;e++}return Ie})();return(0,_.jsxs)(`div`,{className:`relative flex h-full flex-col overflow-hidden rounded-[16px] border border-frost bg-snow shadow-baziu-sm`,onDragOver:Ee,onDragLeave:De,onDrop:Oe,children:[T&&(0,_.jsx)(`div`,{className:`pointer-events-none absolute inset-0 z-10 flex items-center justify-center rounded-[16px] border-2 border-dashed border-sapphire bg-sapphire-glow/80 text-[0.95em] font-medium text-sapphire-deep`,children:`drop images or files to attach`}),(0,_.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-frost px-4 py-2.5`,children:[(0,_.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,_.jsx)(`a`,{href:`/`,className:`inline-flex h-7 items-center rounded-md border border-frost px-2 text-xs font-semibold text-mocha lg:hidden`,children:`← agents`}),(0,_.jsx)(`h1`,{className:`truncate font-display text-[1.2rem] text-charcoal`,children:t})]}),(0,_.jsx)(`a`,{href:`/agents/${e}?mode=settings`,className:`shrink-0 text-xs text-mocha-light hover:text-sapphire`,children:`Manage agent →`})]}),(0,_.jsx)(`div`,{className:`mx-5 mt-2`,children:(0,_.jsx)(r,{variant:`ghost`,"aria-expanded":N,onClick:()=>ne(e=>!e),children:N?`Close conversations`:`Conversations`})}),le&&(0,_.jsx)(`p`,{role:`alert`,className:`mx-5 mt-2 text-sm`,children:`Selected conversation history is unavailable. Open Conversations to start a new one; retained history and files stay listed.`}),D&&(0,_.jsxs)(`div`,{role:`status`,"aria-live":`polite`,"aria-atomic":`true`,className:`mx-5 mt-2 flex items-center gap-2 rounded-md border border-sapphire bg-frost px-4 py-2 text-[0.86em] text-mocha`,children:[(0,_.jsx)(`span`,{className:`h-2 w-2 flex-none rounded-full bg-sapphire`,"aria-hidden":`true`}),(0,_.jsx)(`span`,{className:`flex-1`,children:k?`the recovered turn has new activity — reload to see it`:`new activity from another source — reload to see it`}),(0,_.jsx)(`button`,{type:`button`,onClick:()=>void ye(),className:`rounded-sm bg-sapphire px-3 py-1 text-[0.92em] text-snow hover:opacity-90`,children:`reload`}),(0,_.jsx)(`button`,{type:`button`,onClick:()=>O(!1),className:`px-1 text-mocha-light hover:text-mocha`,"aria-label":`dismiss`,children:`×`})]}),(0,_.jsxs)(`div`,{ref:de,onScroll:z,role:`log`,"aria-label":`Conversation with ${t}`,"aria-live":`polite`,"aria-relevant":`additions`,"aria-busy":R,className:`min-h-0 flex-1 overflow-y-auto px-5 py-5 ${y===null?``:`is-editing`}`,children:[N&&(0,_.jsx)(Dn,{initialConversationId:re,agentId:e,turnBusy:R,onCreated:ye,renderHistory:e=>(0,_.jsx)(ar,{messages:e})},e),!le&&Fe.length===0&&c.length===0&&f.length===0&&(0,_.jsx)(`p`,{className:`py-12 text-center italic text-mocha-light`,children:`Start a conversation…`}),(()=>{let e=[],t=0,n=n=>{for(;t<f.length&&f[t].afterIdx<=n;){let n=f[t];e.push((0,_.jsx)(Zn,{entry:{type:`system`,content:n.content},markdownReady:a,onCommandApprovalDecision:Me},`y-${n.id}`)),t++}};n(0);for(let t=0;t<Fe.length;t++){let r=Fe[t];e.push((0,_.jsx)(Zn,{entry:r,markdownReady:a,isLastUser:t===Ie&&y===null,isWillDrop:Le!==-1&&t>=Le,onEdit:Se,onCommandApprovalDecision:Me,commandApprovalBusy:r.type===`command_approval`&&!!te[r.approval.id],commandApprovalError:r.type===`command_approval`?j[r.approval.id]:void 0},`s-${t}`)),n(t+1)}for(let t=0;t<c.length;t++){let r=c[t];e.push((0,_.jsx)(Zn,{entry:r,markdownReady:a,onCommandApprovalDecision:Me,commandApprovalBusy:r.type===`command_approval`&&!!te[r.approval.id],commandApprovalError:r.type===`command_approval`?j[r.approval.id]:void 0},`l-${t}`)),n(Fe.length+t+1)}for(;t<f.length;){let n=f[t];e.push((0,_.jsx)(Zn,{entry:{type:`system`,content:n.content},markdownReady:a,onCommandApprovalDecision:Me},`y-${n.id}`)),t++}return e})(),m&&(0,_.jsxs)(`div`,{className:`flex items-center gap-2 px-1 py-1 text-[0.85em] text-mocha-light`,children:[(0,_.jsx)(ir,{}),(0,_.jsx)(ir,{delay:`0.15s`}),(0,_.jsx)(ir,{delay:`0.3s`}),(0,_.jsx)(`span`,{children:`agent is thinking…`})]})]}),(0,_.jsx)(`p`,{className:`sr-only`,role:`status`,"aria-live":`polite`,"aria-atomic":`true`,children:R?`${t} is responding.`:`Conversation ready.`}),y!==null&&(0,_.jsxs)(`div`,{className:`flex items-center gap-2 border-t border-frost bg-sapphire-glow px-5 py-2 text-[0.85em] text-sapphire-deep`,children:[(0,_.jsx)(`span`,{children:`editing last message — submit to replace, or`}),(0,_.jsx)(`button`,{type:`button`,onClick:Ce,className:`ml-auto rounded-sm border border-sapphire-light bg-transparent px-2 py-0.5 text-[0.92em] text-sapphire-deep hover:bg-snow`,children:`cancel`})]}),C.length>0&&(0,_.jsx)(`div`,{className:`flex max-h-24 shrink-0 flex-wrap gap-2 overflow-y-auto border-t border-frost bg-ivory px-5 pt-3`,children:C.map((e,t)=>{let n=()=>w(e=>e.filter((e,n)=>n!==t));return Jn(e.mimeType)?(0,_.jsxs)(`div`,{className:`relative`,children:[(0,_.jsx)(`img`,{src:`data:${e.mimeType};base64,${e.data}`,alt:`pending attachment`,className:`h-16 w-16 rounded-md border border-frost object-cover`}),(0,_.jsx)(`button`,{type:`button`,onClick:n,className:`absolute -right-1.5 -top-1.5 flex h-5 w-5 items-center justify-center rounded-full border border-frost bg-snow text-[0.7em] text-mocha hover:border-sapphire hover:text-sapphire`,"aria-label":`remove attachment`,children:`✕`})]},`${e.mimeType}-${t}`):(0,_.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-md border border-frost bg-snow px-2 py-1 text-[0.82em] text-mocha`,children:[(0,_.jsx)(`span`,{children:`📄`}),(0,_.jsx)(`span`,{className:`max-w-[160px] truncate`,children:e.name??`file`}),(0,_.jsx)(`button`,{type:`button`,onClick:n,className:`text-[0.85em] text-mocha hover:text-sapphire`,"aria-label":`remove attachment`,children:`✕`})]},`${e.name??`file`}-${t}`)})}),(0,_.jsx)(kn,{onViewConversation:e=>{ie(e),ne(!0)},ref:P,agentId:e,selection:()=>L.current.selection,onQueueMode:e=>{oe(e),ce(!0)}},e),(0,_.jsx)(An,{agentId:e},`questions-${e}`),(0,_.jsxs)(`form`,{className:`grid shrink-0 grid-cols-[auto_minmax(0,1fr)] items-end gap-2 border-t border-frost bg-ivory px-3 py-3 sm:grid-cols-[auto_minmax(0,1fr)_auto] sm:px-5`,onSubmit:e=>{e.preventDefault(),ke(x)},children:[(0,_.jsx)(`input`,{ref:fe,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{we(e.target.files),e.target.value=``}}),(0,_.jsx)(`button`,{type:`button`,onClick:()=>fe.current?.click(),title:`attach images or files`,"aria-label":`attach files`,className:`flex h-11 items-center justify-center rounded-md border-[1.5px] border-frost bg-snow px-3 py-2 text-[1em] text-mocha transition-colors hover:border-sapphire hover:text-sapphire disabled:cursor-not-allowed disabled:opacity-50`,children:`📎`}),(0,_.jsx)(`textarea`,{ref:pe,rows:1,value:x,onChange:e=>S(e.target.value),onKeyDown:Pe,onPaste:Te,placeholder:`Write a message…`,title:`Shift+Enter for a new line. Paste or attach files with the paperclip.`,autoComplete:`off`,"aria-label":`Message ${t}`,className:`max-h-[200px] min-h-11 min-w-0 flex-1 resize-none overflow-y-auto rounded-md border-[1.5px] border-frost bg-snow px-3 py-2 text-[0.93em] leading-[1.45] text-chocolate outline-none transition-colors focus:border-sapphire focus:shadow-[0_0_0_3px_var(--color-sapphire-glow)]`}),(0,_.jsxs)(`div`,{className:`col-span-2 flex flex-wrap justify-end gap-2 sm:col-span-1`,children:[(0,_.jsx)(r,{variant:`primary`,type:`submit`,className:`min-h-11 whitespace-normal text-center`,disabled:!x.trim()&&C.length===0,children:R||ae?`Queue follow-up`:`Send`}),R&&(0,_.jsx)(r,{variant:`danger`,className:`min-h-11`,onClick:()=>void Ne(),"aria-label":`Stop response and pause queue`,children:`Stop`})]})]})]})}function Zn({entry:e,markdownReady:t,isLastUser:n,isWillDrop:r,onEdit:i,onCommandApprovalDecision:a,commandApprovalBusy:o,commandApprovalError:c}){let u=r?`opacity-40 [&_.bubble-content]:line-through`:``;if(e.type===`user`){if(e.content.startsWith(Mn)){let t=e.content.slice(24);return(0,_.jsxs)(`details`,{className:`my-3 rounded-lg border border-fawn bg-ivory px-3 py-2 text-sm text-mocha ${u}`,"aria-label":`Teammate update`,children:[(0,_.jsx)(`summary`,{className:`cursor-pointer font-medium`,children:l(t)}),(0,_.jsx)(`p`,{className:`mt-2 text-xs`,children:`Original message and Agent instructions`}),(0,_.jsx)(`pre`,{className:`mt-1 max-h-64 overflow-auto whitespace-pre-wrap break-words text-xs`,children:t})]})}return(0,_.jsxs)(`div`,{className:`team relative my-4 flex flex-col items-end ${u}`,children:[(0,_.jsx)(`span`,{className:`sr-only`,children:`you`}),e.images&&e.images.length>0&&(0,_.jsx)(`div`,{className:`mb-1 flex max-w-[85%] flex-wrap justify-end gap-1`,children:e.images.map((e,t)=>(0,_.jsx)(`img`,{src:`data:${e.mimeType};base64,${e.data}`,alt:`attachment`,className:`max-h-48 rounded-lg border border-sapphire-light`},t))}),e.files&&e.files.length>0&&(0,_.jsx)(`div`,{className:`mb-1 flex max-w-[85%] flex-wrap justify-end gap-1`,children:e.files.map((e,t)=>(0,_.jsxs)(`span`,{className:`flex items-center gap-1 rounded-md border border-sapphire-light bg-sapphire-glow px-2 py-1 text-[0.8em] text-chocolate`,children:[`📄 `,(0,_.jsx)(`span`,{className:`max-w-[180px] truncate`,children:e.name})]},t))}),e.content&&(0,_.jsx)(`div`,{className:`bubble-content max-w-[85%] whitespace-pre-wrap break-words rounded-[14px_14px_4px_14px] border border-sapphire-light bg-sapphire-glow px-3 py-2 text-chocolate`,children:e.content}),n&&i&&(0,_.jsx)(`button`,{type:`button`,onClick:i,title:`edit and resend — replaces the last turn`,className:`absolute left-1 top-1 rounded-sm border border-fawn bg-ivory px-2 py-0.5 text-[0.78em] font-medium text-mocha opacity-65 transition hover:border-sapphire hover:bg-sapphire-glow hover:text-sapphire hover:opacity-100 team-hover:opacity-100 team-focus-within:opacity-100`,children:`edit`})]})}if(e.type===`assistant`){if(e.content.startsWith(Nn)){let n=e.content.slice(22).trim();return(0,_.jsx)(`div`,{className:`my-3 border-y border-dashed border-frost py-2 text-[0.85em] italic text-mocha-light ${u}`,children:(0,_.jsxs)(`details`,{children:[(0,_.jsx)(`summary`,{className:`cursor-pointer select-none text-center [&::-webkit-details-marker]:hidden`,children:`— conversation summary (click to expand) —`}),(0,_.jsx)(`div`,{className:`md-content mt-2 rounded-sm bg-frost/40 p-2 not-italic`,dangerouslySetInnerHTML:{__html:Tn(n,t)}})]})})}return e.content.startsWith(`[error]`)||e.content.startsWith(`[fatal]`)||e.content.startsWith(`[network error]`)?(0,_.jsxs)(`div`,{className:`my-4 flex flex-col items-start ${u}`,children:[(0,_.jsx)(`span`,{className:`mb-1 text-[0.72em] font-semibold uppercase tracking-wider text-danger`,children:`error`}),(0,_.jsx)(`div`,{className:`bubble-content rounded-r-sm border-l-[3px] border-l-danger bg-danger/10 py-1 pl-3 pr-2 leading-[1.55]`,dangerouslySetInnerHTML:{__html:Tn(e.content,t)}})]}):(0,_.jsxs)(`div`,{className:`my-4 flex flex-col items-start ${u}`,children:[(0,_.jsx)(`span`,{className:`sr-only`,children:`agent`}),(0,_.jsx)(`div`,{className:`md-content bubble-content w-full leading-[1.55] text-chocolate`,dangerouslySetInnerHTML:{__html:Tn(e.content,t)}})]})}if(e.type===`tool`)return(0,_.jsx)(nr,{items:e.items,dropCls:u});if(e.type===`images`)return(0,_.jsx)(`div`,{className:`my-2 space-y-2 ${u}`,children:e.images.map((e,t)=>(0,_.jsx)(`img`,{src:`data:${e.mimeType};base64,${e.data}`,alt:`screenshot`,className:`block max-w-full rounded-lg border border-fawn`},t))});if(e.type===`result`)return(0,_.jsx)(s,{resultId:e.resultId});if(e.type===`file`){let t=e.mimeType.startsWith(`image/`),n=`data:${e.mimeType};base64,${e.data}`;return(0,_.jsxs)(`div`,{className:`my-2 ${u}`,children:[t&&(0,_.jsx)(`img`,{src:n,alt:e.name,className:`mb-1 block max-w-full rounded-lg border border-fawn`}),(0,_.jsxs)(`a`,{href:n,download:e.name,className:`inline-flex items-center gap-2 rounded-md border border-fawn bg-ivory px-3 py-2 text-[0.88em] text-mocha hover:border-sapphire hover:text-sapphire`,children:[(0,_.jsx)(`span`,{children:`📄`}),(0,_.jsx)(`span`,{className:`max-w-[260px] truncate`,children:e.name}),(0,_.jsx)(`span`,{className:`text-[0.85em] opacity-70`,children:`download`})]})]})}return e.type===`command_approval`?(0,_.jsx)(Qn,{approval:e.approval,busy:o,error:c,onDecision:a}):e.type===`system`?(0,_.jsxs)(`div`,{className:`my-3 rounded-r-sm border-l-[3px] border-sapphire bg-sapphire-glow px-3 py-1 font-mono text-[0.88em] text-sapphire-deep ${u}`,children:[(0,_.jsx)(`span`,{className:`mr-2 font-semibold uppercase tracking-wider opacity-80`,children:`system`}),(0,_.jsx)(`span`,{className:`whitespace-pre-wrap`,children:e.content})]}):e.type===`error`?(0,_.jsx)(`div`,{className:`my-3 rounded-r-sm border-l-[3px] border-danger bg-danger/10 px-3 py-1 text-[0.92em] text-danger ${u}`,children:e.content}):null}function Qn({approval:e,busy:t=!1,error:n,onDecision:i}){let a=e.status===`pending`;return(0,_.jsxs)(`section`,{className:`my-3 rounded-lg border border-danger/50 bg-danger/5 p-4 text-chocolate`,"aria-label":`Shell command approval`,children:[(0,_.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`p`,{className:`m-0 text-[0.72em] font-semibold uppercase tracking-wider text-danger`,children:`Shell command approval`}),(0,_.jsx)(`h2`,{className:`m-0 mt-1 font-body text-[0.95em] font-semibold`,children:a?`A risky command is waiting for you`:`Command decision recorded`})]}),(0,_.jsx)(`span`,{className:`rounded-full border border-danger/30 px-2 py-0.5 text-[0.75em] font-semibold uppercase tracking-wide text-danger`,children:e.status.replaceAll(`_`,` `)})]}),(0,_.jsx)(`pre`,{className:`mt-3 max-h-48 overflow-auto whitespace-pre-wrap break-words rounded-md border border-fawn bg-snow p-3 font-mono text-[0.82em] leading-[1.45] text-charcoal`,children:e.command}),(0,_.jsx)(`ul`,{className:`mt-3 space-y-1.5 pl-5 text-[0.84em] leading-[1.4] text-mocha`,children:e.risks.map(e=>(0,_.jsxs)(`li`,{children:[(0,_.jsx)(`span`,{className:`font-medium text-chocolate`,children:e.message}),` `,(0,_.jsx)(`code`,{className:`text-[0.9em]`,children:e.code})]},`${e.code}:${e.span.start}:${e.span.end}`))}),a?(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(`p`,{className:`mt-3 text-[0.78em] text-mocha-light`,children:[`This approval expires`,` `,(0,_.jsx)(`time`,{dateTime:new Date(e.expiresAt).toISOString(),children:new Date(e.expiresAt).toLocaleString()}),`. Deny blocks only this command; cancel stops the whole turn.`]}),n&&(0,_.jsx)(`p`,{role:`alert`,className:`mt-2 rounded-md bg-danger/10 px-3 py-2 text-[0.82em] text-danger`,children:n}),i&&(0,_.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,_.jsx)(r,{variant:`primary`,disabled:t,onClick:()=>i(e,`deny`),children:`Deny`}),(0,_.jsx)(r,{variant:`danger`,disabled:t,onClick:()=>i(e,`allow`),children:`Allow once`})]})]}):(0,_.jsx)(`p`,{role:`status`,className:`mt-3 text-[0.84em] font-medium text-mocha`,children:$n(e.status)})]})}function $n(e){switch(e){case`pending`:return`Waiting for a decision.`;case`allowed`:return`Allowed once — the command may run for this tool call only.`;case`denied`:return`Denied — the command was not run.`;case`auto_denied`:return`Automatically denied — no interactive approval path was available.`;case`expired`:return`Expired — the command was not run.`;case`cancelled`:return`Cancelled — the command was not run.`}}function er(e){if(!e.startsWith(`shell approval already decided: `))return null;let t=e.slice(32);switch(t){case`allowed`:case`denied`:case`auto_denied`:case`expired`:case`cancelled`:return t;default:return null}}function tr(e,t){let n={kind:`progress`,id:t.id,name:`coding_command`,body:t.output,elapsedMs:t.elapsedMs,truncated:t.truncated};for(let r=e.length-1;r>=0;r--){let i=e[r];if(i?.type!==`tool`)continue;let a=i.items.findIndex(e=>e.id===t.id);if(a<0)continue;let o=[...i.items];o[a]=n;let s=[...e];return s[r]={type:`tool`,items:o},s}let r=e[e.length-1];return r?.type===`tool`?[...e.slice(0,-1),{type:`tool`,items:[...r.items,n]}]:[...e,{type:`tool`,items:[n]}]}function nr({items:e,dropCls:t}){let n=[`repository_context`,`coding_command`,`coding_environment`,`coding_receipt`,`coding_log`,`source_snapshot`,`send_message`],r=e.some(e=>n.includes(e.name)),i=e.filter(t=>!(t.kind===`call`&&n.includes(t.name)&&e.some(e=>e.id===t.id&&e.kind!==`call`))),[a,o]=(0,u.useState)(!1),s=(0,u.useRef)(null),[c,l]=(0,u.useState)(!1);return(0,u.useLayoutEffect)(()=>{let e=s.current;e&&l(e.scrollHeight>324)},[e.length]),(0,_.jsxs)(`div`,{className:`my-1.5 rounded-r-sm border-l-[3px] border-fawn bg-ivory px-3 py-2 font-mono text-[0.82em] leading-[1.5] text-mocha-light ${t}`,children:[(0,_.jsxs)(`div`,{ref:s,className:`relative overflow-hidden`,style:{maxHeight:a||r?`none`:`${In}px`},children:[i.map((e,t)=>(0,_.jsx)(rr,{item:e},t)),c&&!a&&!r&&(0,_.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 bottom-0 h-10`,style:{background:`linear-gradient(to bottom, rgba(247,240,229,0), var(--color-ivory))`}})]}),c&&!r&&(0,_.jsx)(`button`,{type:`button`,onClick:()=>o(e=>!e),className:`mt-2 rounded-sm border border-fawn bg-transparent px-2 py-0.5 text-[0.9em] text-mocha hover:border-sapphire hover:text-sapphire-deep`,children:a?`show less ↑`:`show more ↓`})]})}function rr({item:e}){if(e.name===`send_message`&&e.kind!==`error`)return(0,_.jsxs)(`details`,{className:`py-1 font-sans text-sm`,children:[(0,_.jsx)(`summary`,{className:`cursor-pointer`,children:e.kind===`call`?`Sending teammate message…`:e.body.startsWith(`sent message `)?`Teammate message sent`:`Teammate message status`}),(0,_.jsx)(`pre`,{className:`mt-1 max-h-64 overflow-auto whitespace-pre-wrap break-words text-xs`,children:e.body})]});if(e.kind===`progress`)return(0,_.jsxs)(`div`,{className:`py-1`,"aria-label":`Live coding progress`,children:[(0,_.jsxs)(`p`,{className:`font-sans`,children:[`Running coding command · `,Math.max(0,Math.round((e.elapsedMs??0)/1e3)),`s`]}),(0,_.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words`,children:e.body}),e.truncated&&(0,_.jsx)(`p`,{children:`Earlier output omitted; the retained log holds more.`})]});if(e.kind!==`error`&&[`repository_context`,`coding_command`,`coding_environment`,`coding_receipt`,`coding_log`,`source_snapshot`].includes(e.name))return(0,_.jsx)(v,{name:e.name,body:e.body,pending:e.kind===`call`,log:e.codingLog});if(e.kind===`call`){let t=Gn(e.body),n=t.includes(`
|
|
76
76
|
`);return(0,_.jsxs)(`div`,{className:`whitespace-pre-wrap break-words py-0.5`,children:[(0,_.jsx)(`span`,{className:`mr-1 opacity-45`,children:`→`}),(0,_.jsx)(`span`,{className:`font-medium text-mocha`,children:e.name}),n?(0,_.jsx)(`pre`,{className:`ml-4 mt-0.5 rounded-sm bg-[rgba(42,31,22,0.04)] px-2 py-1 font-mono text-[0.95em] leading-[1.4] text-mocha`,children:t}):t?(0,_.jsxs)(`span`,{children:[` (`,t,`)`]}):null]})}return e.kind===`error`?(0,_.jsxs)(`div`,{className:`whitespace-pre-wrap break-words py-0.5 text-rose-baziu`,children:[(0,_.jsx)(`span`,{className:`mr-1 opacity-45`,children:`←`}),e.body]}):(0,_.jsxs)(`div`,{className:`whitespace-pre-wrap break-words py-0.5`,children:[(0,_.jsx)(`span`,{className:`mr-1 opacity-45`,children:`←`}),e.body]})}function ir({delay:e=`0s`}){return(0,_.jsx)(`span`,{className:`inline-block h-1.5 w-1.5 animate-pulse rounded-full bg-mocha-light/60`,style:{animationDelay:e},"aria-hidden":`true`})}function ar({messages:e}){let t=(0,u.useSyncExternalStore)(Rn,zn,Bn);return(0,_.jsx)(`div`,{"aria-label":`Source conversation`,children:Yn(e).map((e,n)=>(0,_.jsx)(Zn,{entry:e,markdownReady:t},n))})}export{ar as n,Xn as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-DGeXAQPT.js";import{bt as t,wt as n,xt as r}from"./index-
|
|
1
|
+
import{t as e}from"./jsx-runtime-DGeXAQPT.js";import{bt as t,wt as n,xt as r}from"./index-DThtB1z2.js";import{n as i,t as a}from"./SectionTabs-mrflsPU-.js";var o=e(),s=[{key:`providers`,href:`/config`,label:`Providers`},{key:`services`,href:`/config/services`,label:`Services`},{key:`mcp`,href:`/config/mcp`,label:`MCP`},{key:`integrations`,href:`/config/integrations/telegram`,label:`Integrations`},{key:`tokens`,href:`/config/tokens`,label:`Tokens`}];function c({active:e,className:t}){return(0,o.jsx)(`nav`,{"aria-label":`Configuration sections`,className:n(a,t),children:s.map(t=>(0,o.jsx)(`a`,{href:t.href,"aria-current":t.key===e?`page`:void 0,className:i(t.key===e),children:t.label},t.key))})}function l({active:e,title:n,description:i,children:a,actions:s,size:l=`default`}){return(0,o.jsxs)(r,{size:l,children:[(0,o.jsx)(t,{eyebrow:`Configuration`,title:n,description:i,actions:s}),(0,o.jsx)(c,{active:e,className:`mb-0`}),(0,o.jsx)(`div`,{className:`space-y-6`,children:a})]})}export{l as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,t}from"./jsx-runtime-DGeXAQPT.js";import{t as n}from"./react-3W8R1pOO.js";import{$ as r,Et as i,Q as a,X as o,Z as s,at as c,ct as l,dt as u,et as d,it as f,nt as p,ot as m,rt as h,st as g,tt as _,ut as v}from"./index-
|
|
1
|
+
import{r as e,t}from"./jsx-runtime-DGeXAQPT.js";import{t as n}from"./react-3W8R1pOO.js";import{$ as r,Et as i,Q as a,X as o,Z as s,at as c,ct as l,dt as u,et as d,it as f,nt as p,ot as m,rt as h,st as g,tt as _,ut as v}from"./index-DThtB1z2.js";var y=e(n(),1),b=t(),x=`Dialog`,[S,C]=g(x),[w,T]=S(x),E=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=y.useRef(null),l=y.useRef(null),[u,d]=c({prop:r,defaultProp:i??!1,onChange:a,caller:x});return(0,b.jsx)(w,{scope:t,triggerRef:s,contentRef:l,contentId:h(),titleId:h(),descriptionId:h(),open:u,onOpenChange:d,onOpenToggle:y.useCallback(()=>d(e=>!e),[d]),modal:o,children:n})};E.displayName=x;var D=`DialogTrigger`,O=y.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=T(D,n),a=u(t,i.triggerRef);return(0,b.jsx)(l.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":J(i.open),...r,ref:a,onClick:m(e.onClick,i.onOpenToggle)})});O.displayName=D;var k=`DialogPortal`,[A,j]=S(k,{forceMount:void 0}),M=e=>{let{__scopeDialog:t,forceMount:n,children:i,container:a}=e,o=T(k,t);return(0,b.jsx)(A,{scope:t,forceMount:n,children:y.Children.map(i,e=>(0,b.jsx)(f,{present:n||o.open,children:(0,b.jsx)(r,{asChild:!0,container:a,children:e})}))})};M.displayName=k;var N=`DialogOverlay`,P=y.forwardRef((e,t)=>{let n=j(N,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=T(N,e.__scopeDialog);return a.modal?(0,b.jsx)(f,{present:r||a.open,children:(0,b.jsx)(I,{...i,ref:t})}):null});P.displayName=N;var F=v(`DialogOverlay.RemoveScroll`),I=y.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=T(N,n),a=u(t,p());return(0,b.jsx)(s,{as:F,allowPinchZoom:!0,shards:[i.contentRef],children:(0,b.jsx)(l.div,{"data-state":J(i.open),...r,ref:a,style:{pointerEvents:`auto`,...r.style}})})}),L=`DialogContent`,R=y.forwardRef((e,t)=>{let n=j(L,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=T(L,e.__scopeDialog);return(0,b.jsx)(f,{present:r||a.open,children:a.modal?(0,b.jsx)(z,{...i,ref:t}):(0,b.jsx)(B,{...i,ref:t})})});R.displayName=L;var z=y.forwardRef((e,t)=>{let n=T(L,e.__scopeDialog),r=y.useRef(null),i=u(t,n.contentRef,r);return y.useEffect(()=>{let e=r.current;if(e)return o(e)},[]),(0,b.jsx)(V,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:m(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:m(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:m(e.onFocusOutside,e=>e.preventDefault())})}),B=y.forwardRef((e,t)=>{let n=T(L,e.__scopeDialog),r=y.useRef(!1),i=y.useRef(!1);return(0,b.jsx)(V,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),V=y.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,...s}=e,c=T(L,n);return a(),(0,b.jsx)(b.Fragment,{children:(0,b.jsx)(d,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:(0,b.jsx)(_,{role:`dialog`,id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":J(c.open),...s,ref:t,deferPointerDownOutside:!0,onDismiss:()=>c.onOpenChange(!1)})})})}),H=`DialogTitle`,U=y.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=T(H,n);return(0,b.jsx)(l.h2,{id:i.titleId,...r,ref:t})});U.displayName=H;var W=`DialogDescription`,G=y.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=T(W,n);return(0,b.jsx)(l.p,{id:i.descriptionId,...r,ref:t})});G.displayName=W;var K=`DialogClose`,q=y.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=T(K,n);return(0,b.jsx)(l.button,{type:`button`,...r,ref:t,onClick:m(e.onClick,()=>i.onOpenChange(!1))})});q.displayName=K;function J(e){return e?`open`:`closed`}var Y=typeof document>`u`?y.useEffect:y.useLayoutEffect;function X(e){let t=e.activeElement;return!t||t===e.body||t===e.documentElement||!(`focus`in t)||typeof t.focus!=`function`?null:t}function Z(e,t){!e||!e.isConnected||e.ownerDocument!==t||e.focus({preventScroll:!0})}function Q({open:e,title:t,description:n,confirmLabel:r,confirmVariant:a=`danger`,onConfirm:o,onOpenChange:s}){let[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null),f=(0,y.useRef)(null),p=(0,y.useRef)(!1);Y(()=>{e&&!p.current&&(f.current=X(document)),p.current=e},[e]),(0,y.useEffect)(()=>{e||(l(!1),d(null))},[e]);async function m(){l(!0),d(null);try{await o(),s(!1)}catch(e){d(e instanceof Error?e.message:String(e)),l(!1)}}return(0,b.jsx)(E,{open:e,onOpenChange:e=>{!e&&!c&&s(!1)},children:(0,b.jsxs)(M,{children:[(0,b.jsx)(P,{className:`fixed inset-0 z-50 bg-chocolate/35 backdrop-blur-[2px] data-[state=closed]:animate-out data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`}),(0,b.jsxs)(R,{className:`fixed left-1/2 top-1/2 z-50 grid w-[calc(100%-2rem)] max-w-md -translate-x-1/2 -translate-y-1/2 gap-4 rounded-[16px] border border-frost bg-snow p-5 text-chocolate shadow-baziu-lg outline-none data-[state=closed]:animate-out data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`,onCloseAutoFocus:e=>{e.preventDefault();let t=f.current;f.current=null,Z(t,document)},onEscapeKeyDown:e=>{c&&e.preventDefault()},onPointerDownOutside:e=>{c&&e.preventDefault()},children:[(0,b.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,b.jsx)(U,{className:`font-serif text-xl text-chocolate`,children:t}),(0,b.jsx)(G,{asChild:!0,children:(0,b.jsx)(`div`,{className:`text-sm leading-6 text-mocha`,children:n})})]}),u&&(0,b.jsx)(`p`,{role:`alert`,className:`rounded-md bg-danger/10 px-3 py-2 text-sm text-danger`,children:u}),(0,b.jsxs)(`div`,{className:`flex flex-col-reverse gap-2 border-t border-frost pt-4 sm:flex-row sm:justify-end`,children:[(0,b.jsx)(i,{variant:`ghost`,disabled:c,onClick:()=>s(!1),children:`cancel`}),(0,b.jsx)(i,{variant:a,disabled:c,onClick:()=>void m(),children:c?`working…`:r})]})]})]})})}export{G as a,U as c,R as i,E as n,P as o,q as r,M as s,Q as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e,t}from"./jsx-runtime-DGeXAQPT.js";import{t as n}from"./react-3W8R1pOO.js";import{d as r}from"./preload-helper-bztXdkDj.js";import{t as i}from"./ConfirmDialog-DEwIcBm4.js";import{Et as a}from"./index-DThtB1z2.js";var o=e(n(),1),s=t();function c({field:e}){let t=r(),n=(0,o.useId)(),c=`${n}-description`,[l,u]=(0,o.useState)(e.kind===`config`?e.value??``:``),[d,f]=(0,o.useState)(!1),[p,m]=(0,o.useState)(null),[h,g]=(0,o.useState)(null),[_,v]=(0,o.useState)(!1),y=e.kind===`secret`&&l.trim().length===0;async function b(n){if(n.preventDefault(),y){m(e.set?`Paste a replacement value, or use remove credential to explicitly clear the stored secret.`:`A secret value is required.`);return}f(!0),m(null);try{let n=await fetch(`/api/config/fields/${encodeURIComponent(e.envVar)}`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify({value:l})});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error??`${n.status} ${n.statusText}`)}g(Date.now()),e.kind===`secret`&&u(``),await t.invalidate()}catch(e){m(e.message)}finally{f(!1)}}async function x(){let n=await fetch(`/api/config/fields/${encodeURIComponent(e.envVar)}`,{method:`DELETE`});if(!n.ok&&n.status!==204){let e=await n.json().catch(()=>null);throw Error(e?.error??`${n.status} ${n.statusText}`)}u(``),m(null),g(Date.now()),await t.invalidate()}return(0,s.jsxs)(`form`,{onSubmit:b,className:`grid grid-cols-1 gap-2 border-b py-3 last:border-0 md:grid-cols-[12rem_minmax(0,1fr)_auto_auto] md:items-center`,children:[(0,s.jsxs)(`div`,{className:`min-w-0`,children:[(0,s.jsx)(`label`,{htmlFor:n,className:`text-sm font-medium text-foreground`,children:e.label}),e.description&&(0,s.jsx)(`div`,{id:c,className:`text-xs text-muted-foreground mt-0.5`,children:e.description}),(0,s.jsxs)(`details`,{className:`mt-1 text-xs text-muted-foreground`,children:[(0,s.jsx)(`summary`,{className:`cursor-pointer`,children:`Advanced identifier`}),(0,s.jsx)(`code`,{className:`mt-1 inline-block break-all font-mono`,children:e.envVar})]})]}),(0,s.jsx)(`div`,{className:`min-w-0`,children:e.kind===`config`&&e.options?(0,s.jsxs)(`select`,{id:n,"aria-describedby":e.description?c:void 0,value:l,onChange:e=>u(e.target.value),className:`w-full rounded-md border bg-background px-2 py-1.5 text-sm outline-none focus:ring-2 focus:ring-ring/30`,children:[(0,s.jsx)(`option`,{value:``,children:`Not set (default)`}),l&&!e.options.includes(l)&&(0,s.jsxs)(`option`,{value:l,children:[`Unsupported: `,l]}),e.options.map(t=>(0,s.jsx)(`option`,{value:t,children:e.optionLabels?.[t]??t},t))]}):e.kind===`config`?(0,s.jsx)(`input`,{id:n,type:`text`,"aria-describedby":e.description?c:void 0,value:l,onChange:e=>u(e.target.value),placeholder:e.placeholder??``,className:`w-full rounded-md border bg-background px-2 py-1.5 text-sm outline-none focus:ring-2 focus:ring-ring/30`}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`input`,{id:n,type:`password`,"aria-describedby":e.description?c:void 0,value:l,onChange:e=>u(e.target.value),placeholder:e.set?`(paste to replace stored value)`:e.placeholder??`paste key…`,autoComplete:`off`,className:`w-full rounded-md border bg-background px-2 py-1.5 text-sm outline-none focus:ring-2 focus:ring-ring/30`}),e.set&&(0,s.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Blank keeps the current credential. Removal is a separate explicit action.`})]})}),(0,s.jsxs)(`span`,{className:`text-xs`,children:[e.kind===`secret`&&e.set&&(0,s.jsx)(`span`,{className:`rounded-full bg-success/10 text-success px-1.5 py-0.5`,title:`preview: ${e.preview??``}`,children:`set`}),h&&Date.now()-h<2e3&&(0,s.jsx)(`span`,{role:`status`,className:`text-success ml-2`,children:`saved ✓`})]}),(0,s.jsxs)(`div`,{className:`flex flex-wrap gap-2 md:justify-self-end`,children:[(0,s.jsx)(a,{variant:`ghost`,type:`submit`,disabled:d||y,className:`text-xs`,children:`save`}),e.kind===`secret`&&e.set&&(0,s.jsx)(a,{variant:`danger`,className:`text-xs`,onClick:()=>v(!0),children:`remove`})]}),p&&(0,s.jsx)(`p`,{role:`alert`,className:`text-xs text-danger md:col-span-4`,children:p}),(0,s.jsx)(i,{open:_,title:`Remove ${e.label}?`,description:(0,s.jsxs)(`p`,{children:[`This permanently deletes the stored `,(0,s.jsx)(`code`,{className:`font-mono`,children:e.envVar}),` `,`credential. Features that use it will fail until you save a replacement.`]}),confirmLabel:`remove stored credential`,onConfirm:x,onOpenChange:v})]})}export{c as t};
|