signetai 0.45.0 → 0.45.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/bin/postinstall.cjs +80 -2
  2. package/dashboard/_app/immutable/chunks/{LagQ_E4R.js → -i0ys5Eo.js} +1 -1
  3. package/dashboard/_app/immutable/chunks/{BMl1y35q.js → 1W8-kBhi.js} +1 -1
  4. package/dashboard/_app/immutable/chunks/{BGT6bfHU.js → B51k0Snz.js} +1 -1
  5. package/dashboard/_app/immutable/chunks/{CFXirZvQ.js → B7-KXgqZ.js} +1 -1
  6. package/dashboard/_app/immutable/chunks/{C4eP9EET.js → B7ho4s8G.js} +1 -1
  7. package/dashboard/_app/immutable/chunks/{hyfZStbl.js → BMTAqf7c.js} +1 -1
  8. package/dashboard/_app/immutable/chunks/{iPQKRm14.js → BN_mNIcQ.js} +1 -1
  9. package/dashboard/_app/immutable/chunks/{C-kyuXmR.js → BWuZ2Crd.js} +1 -1
  10. package/dashboard/_app/immutable/chunks/{hTdVkpdt.js → BmN7Jn_C.js} +1 -1
  11. package/dashboard/_app/immutable/chunks/{D21bpg0X.js → BnHINnUz.js} +1 -1
  12. package/dashboard/_app/immutable/chunks/{DdoeIZiD.js → BtSv-YCL.js} +1 -1
  13. package/dashboard/_app/immutable/chunks/BuAUI4Yr.js +82 -0
  14. package/dashboard/_app/immutable/chunks/{D1j1Vc8w.js → BxiPiaxp.js} +1 -1
  15. package/dashboard/_app/immutable/chunks/{D0Pe2tpN.js → BzhQu384.js} +1 -1
  16. package/dashboard/_app/immutable/chunks/{C2s7eKAw.js → C3iHekEG.js} +1 -1
  17. package/dashboard/_app/immutable/chunks/{CBqGa5RL.js → CD1cluAC.js} +1 -1
  18. package/dashboard/_app/immutable/chunks/{7XwKFOXM.js → CH6bX9qD.js} +1 -1
  19. package/dashboard/_app/immutable/chunks/{7B0jLw_r.js → CpaIyMvX.js} +1 -1
  20. package/dashboard/_app/immutable/chunks/{DNUjv9uT.js → CuMK8D-m.js} +1 -1
  21. package/dashboard/_app/immutable/chunks/{3wTD-xGW.js → CyqXVQ0y.js} +1 -1
  22. package/dashboard/_app/immutable/chunks/{cm4dq58t.js → D-VqNIep.js} +1 -1
  23. package/dashboard/_app/immutable/chunks/{ClQA_rA6.js → DGHsoNqB.js} +1 -1
  24. package/dashboard/_app/immutable/chunks/{1bbfbaVj.js → DIYVZeCg.js} +1 -1
  25. package/dashboard/_app/immutable/chunks/{DnWii-9m.js → DY1cg_tL.js} +1 -1
  26. package/dashboard/_app/immutable/chunks/{BQXIuawz.js → Dc96kiT-.js} +1 -1
  27. package/dashboard/_app/immutable/chunks/{DdrvjOTz.js → Dwm-Ehex.js} +1 -1
  28. package/dashboard/_app/immutable/chunks/{s5RBumUE.js → DxRNskpv.js} +1 -1
  29. package/dashboard/_app/immutable/chunks/{DsbsuGI1.js → F-kjYJrs.js} +1 -1
  30. package/dashboard/_app/immutable/chunks/{Cs24bxkh.js → F5qWdXtO.js} +1 -1
  31. package/dashboard/_app/immutable/chunks/{CQxRc27w.js → Jfs9j7Ri.js} +1 -1
  32. package/dashboard/_app/immutable/chunks/{Wg-REFpU.js → Oj00haz5.js} +1 -1
  33. package/dashboard/_app/immutable/chunks/{BAzD0JFp.js → QG7etsuy.js} +1 -1
  34. package/dashboard/_app/immutable/chunks/{CJ_6p_xs.js → Vnri6U61.js} +1 -1
  35. package/dashboard/_app/immutable/chunks/{w18PFPCB.js → _OIsuyOS.js} +1 -1
  36. package/dashboard/_app/immutable/chunks/{CirFCpMM.js → dzgnq9Eb.js} +1 -1
  37. package/dashboard/_app/immutable/chunks/{Dbx9KWty.js → pYvlKMJ_.js} +1 -1
  38. package/dashboard/_app/immutable/chunks/{CbL-fbJD.js → w_L6RqAq.js} +1 -1
  39. package/dashboard/_app/immutable/entry/{app.CH-C3KEF.js → app.augokFJf.js} +2 -2
  40. package/dashboard/_app/immutable/entry/start.BGauAcut.js +1 -0
  41. package/dashboard/_app/immutable/nodes/{0.Bfv-TYDc.js → 0.DI2eHIHI.js} +1 -1
  42. package/dashboard/_app/immutable/nodes/{1.46gsu4IZ.js → 1.WUbNs4hr.js} +1 -1
  43. package/dashboard/_app/immutable/nodes/2.BIXnR2o9.js +1 -0
  44. package/dashboard/_app/version.json +1 -1
  45. package/dashboard/index.html +7 -7
  46. package/dist/daemon.js +11 -3
  47. package/package.json +1 -1
  48. package/dashboard/_app/immutable/chunks/CiwhwMia.js +0 -84
  49. package/dashboard/_app/immutable/entry/start.I8Pd_FIm.js +0 -1
  50. package/dashboard/_app/immutable/nodes/2.BgwG68MI.js +0 -1
@@ -1,10 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * Signet postinstall script (CommonJS for npm compatibility)
4
- * Shows installation info and checks for Bun
4
+ * Shows installation info, checks for Bun, and downloads the predictor sidecar.
5
5
  */
6
6
 
7
7
  const { execFileSync } = require("node:child_process");
8
+ const https = require("node:https");
9
+ const fs = require("node:fs");
10
+ const path = require("node:path");
8
11
 
9
12
  const RESET = "\x1b[0m";
10
13
  const CYAN = "\x1b[36m";
@@ -55,7 +58,7 @@ console.log(` ${GREEN}What's new:${RESET}`);
55
58
  console.log(` ${DIM}- Knowledge graph: memories build structured understanding${RESET}`);
56
59
  console.log(` ${DIM}- Session continuity: seamless context across compactions${RESET}`);
57
60
  console.log(` ${DIM}- Constellation: entity overlay in the dashboard${RESET}`);
58
- console.log(` ${DIM}- Predictive scorer: opt-in ML-based memory ranking${RESET}`);
61
+ console.log(` ${DIM}- Predictive scorer: ML-based memory ranking (enabled by default)${RESET}`);
59
62
  console.log();
60
63
  console.log(` ${GREEN}Get started:${RESET}`);
61
64
  console.log(` ${CYAN}signet${RESET} Interactive setup`);
@@ -65,3 +68,78 @@ console.log(` ${CYAN}signet dashboard${RESET} Explore your agent`);
65
68
  console.log();
66
69
  console.log("━".repeat(50));
67
70
  console.log();
71
+
72
+ // Download predictor sidecar binary (fail-open: daemon continues without it)
73
+ downloadPredictor().catch(() => {});
74
+
75
+ async function downloadPredictor() {
76
+ const version = getVersion();
77
+ if (!version) return;
78
+
79
+ const platform = process.platform;
80
+ // Only attempt download for the four platform/arch tuples we actually publish.
81
+ // Anything outside this set would 404; fail open with a clear message instead.
82
+ const supportedTuples = new Set(["linux:x64", "darwin:x64", "darwin:arm64", "win32:x64"]);
83
+ const tuple = `${platform}:${process.arch}`;
84
+ if (!supportedTuples.has(tuple)) {
85
+ process.stdout.write(` Downloading predictor sidecar... skipped (unsupported platform/arch: ${tuple})\n`);
86
+ return;
87
+ }
88
+ const arch = process.arch;
89
+ const ext = platform === "win32" ? ".exe" : "";
90
+ const assetName = `signet-predictor-${platform}-${arch}${ext}`;
91
+ const url = `https://github.com/Signet-AI/signetai/releases/download/v${version}/${assetName}`;
92
+ const dest = path.join(__dirname, assetName);
93
+
94
+ if (fs.existsSync(dest)) return; // already present
95
+
96
+ return new Promise((resolve) => {
97
+ process.stdout.write(` Downloading predictor sidecar...`);
98
+
99
+ function get(targetUrl, redirects) {
100
+ if (redirects > 5) { process.stdout.write(` skipped (too many redirects)\n`); resolve(); return; }
101
+ const req = https.get(targetUrl, (res) => {
102
+ if (res.statusCode === 301 || res.statusCode === 302) {
103
+ res.resume();
104
+ const location = res.headers.location;
105
+ if (typeof location !== "string") { resolve(); return; }
106
+ get(location, redirects + 1);
107
+ return;
108
+ }
109
+ if (res.statusCode !== 200) {
110
+ res.resume();
111
+ process.stdout.write(` skipped (not yet published for this version)\n`);
112
+ resolve();
113
+ return;
114
+ }
115
+ const file = fs.createWriteStream(dest);
116
+ res.pipe(file);
117
+ file.on("finish", () => {
118
+ file.close();
119
+ try {
120
+ if (platform !== "win32") fs.chmodSync(dest, 0o755);
121
+ } catch {
122
+ // ignore chmod failures
123
+ }
124
+ process.stdout.write(` done\n`);
125
+ resolve();
126
+ });
127
+ file.on("error", () => {
128
+ fs.unlink(dest, () => {});
129
+ process.stdout.write(` skipped (write error)\n`);
130
+ resolve();
131
+ });
132
+ });
133
+ req.setTimeout(10_000, () => {
134
+ req.destroy(new Error("timeout"));
135
+ });
136
+ req.on("error", () => {
137
+ fs.unlink(dest, () => {});
138
+ process.stdout.write(` skipped (network unavailable)\n`);
139
+ resolve();
140
+ });
141
+ }
142
+
143
+ get(url, 0);
144
+ });
145
+ }
@@ -1 +1 @@
1
- import{p as P,F as l,c as p,f as g,G as c,a9 as x,s as i,b as u,d as $,r as v,aa as k,ab as F,k as _,z as b,ac as G}from"./CFXirZvQ.js";import{e as h}from"./CiwhwMia.js";function B(r,e){P(e,!0);let t=l(e,"open",15,!1),o=v(e,["$$slots","$$events","$$legacy","open"]);var a=p(),s=g(a);c(s,()=>x,(n,f)=>{f(n,i(()=>o,{get open(){return t()},set open(d){t(d)}}))}),u(r,a),$()}function j(r,e){let t=v(e,["$$slots","$$events","$$legacy"]);var o=p(),a=g(o);c(a,()=>k,(s,n)=>{n(s,i(()=>t))}),u(r,o)}function C(r,e){P(e,!0);let t=l(e,"ref",15,null),o=l(e,"sideOffset",3,4),a=l(e,"align",3,"center"),s=v(e,["$$slots","$$events","$$legacy","ref","class","sideOffset","align","portalProps"]);j(r,i(()=>e.portalProps,{children:(n,f)=>{var d=p(),m=g(d);{let y=b(()=>h("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-end-2 data-[side=right]:slide-in-from-start-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--bits-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e.class));c(m,()=>F,(z,O)=>{O(z,i({"data-slot":"popover-content",get sideOffset(){return o()},get align(){return a()},get class(){return _(y)}},()=>s,{get ref(){return t()},set ref(w){t(w)}}))})}u(n,d)},$$slots:{default:!0}})),$()}function D(r,e){P(e,!0);let t=l(e,"ref",15,null),o=v(e,["$$slots","$$events","$$legacy","ref","class"]);var a=p(),s=g(a);{let n=b(()=>h("",e.class));c(s,()=>G,(f,d)=>{d(f,i({"data-slot":"popover-trigger",get class(){return _(n)}},()=>o,{get ref(){return t()},set ref(m){t(m)}}))})}u(r,a),$()}export{D as P,C as a,B as b};
1
+ import{p as P,F as l,c as p,f as g,G as c,a9 as x,s as i,b as u,d as $,r as v,aa as k,ab as F,k as _,z as b,ac as G}from"./B7-KXgqZ.js";import{e as h}from"./BuAUI4Yr.js";function B(r,e){P(e,!0);let t=l(e,"open",15,!1),o=v(e,["$$slots","$$events","$$legacy","open"]);var a=p(),s=g(a);c(s,()=>x,(n,f)=>{f(n,i(()=>o,{get open(){return t()},set open(d){t(d)}}))}),u(r,a),$()}function j(r,e){let t=v(e,["$$slots","$$events","$$legacy"]);var o=p(),a=g(o);c(a,()=>k,(s,n)=>{n(s,i(()=>t))}),u(r,o)}function C(r,e){P(e,!0);let t=l(e,"ref",15,null),o=l(e,"sideOffset",3,4),a=l(e,"align",3,"center"),s=v(e,["$$slots","$$events","$$legacy","ref","class","sideOffset","align","portalProps"]);j(r,i(()=>e.portalProps,{children:(n,f)=>{var d=p(),m=g(d);{let y=b(()=>h("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-end-2 data-[side=right]:slide-in-from-start-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--bits-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e.class));c(m,()=>F,(z,O)=>{O(z,i({"data-slot":"popover-content",get sideOffset(){return o()},get align(){return a()},get class(){return _(y)}},()=>s,{get ref(){return t()},set ref(w){t(w)}}))})}u(n,d)},$$slots:{default:!0}})),$()}function D(r,e){P(e,!0);let t=l(e,"ref",15,null),o=v(e,["$$slots","$$events","$$legacy","ref","class"]);var a=p(),s=g(a);{let n=b(()=>h("",e.class));c(s,()=>G,(f,d)=>{d(f,i({"data-slot":"popover-trigger",get class(){return _(n)}},()=>o,{get ref(){return t()},set ref(m){t(m)}}))})}u(r,a),$()}export{D as P,C as a,B as b};
@@ -1,4 +1,4 @@
1
- import{g as ce,e as Xe,k as e,j as P,z as se,F as Re,c as Ae,f as T,w as H,b as o,i as h,m as Se,l as n,q as ue,u as ae,v as g,a as ze,D as v,E as qe,p as we,d as Ce,A as xe,x as Ne,Z as je,t as Me,aG as b,o as St,Q as Oe,K as Ze,s as mt,n as ht,r as ft,O as He,a6 as kt,h as pt,$ as bt,G as Je,ad as Pt,M as wt,J as Ct,a2 as at,aH as Et,_ as Nt}from"./CFXirZvQ.js";import{aJ as Qe,t as Be,I as _t,B as Ye,aK as At,aL as Ft,aM as Mt,aN as st}from"./CiwhwMia.js";import{p as nt,s as ot,g as Ot}from"./Bdj9FDJv.js";import{L as Tt}from"./CQxRc27w.js";import{C as lt}from"./w18PFPCB.js";import{I as pe}from"./CJ_6p_xs.js";import{T as Dt}from"./BGT6bfHU.js";import{c as Te,S as De,a as Ie,b as ye}from"./1bbfbaVj.js";import{C as It}from"./DdrvjOTz.js";import{S as Fe}from"./s5RBumUE.js";import{E as We,a as it,C as Vt,y as dt,m as ct,k as ut,l as Lt,h as Bt,b as Rt,c as zt,f as jt,d as Ut,e as Kt,g as Ht,s as qt,i as Gt,j as Jt,n as Yt,o as Wt,p as Xt,q as Qt}from"./7JVbjERf.js";import{P as Zt}from"./C-kyuXmR.js";import{P as er,a as tr,b as rr}from"./LagQ_E4R.js";const vt=["claude-code","codex","openclaw","opencode"],Ee=[{key:"enabled",desc:"Master switch. Pipeline does nothing when disabled."},{key:"shadowMode",desc:"Run extraction and decisions without writing. Safe for evaluation."},{key:"mutationsFrozen",desc:"Emergency brake. Block all writes even if shadowMode is off."}],gt=[{key:"allowUpdateDelete",desc:"Permit UPDATE/DELETE decisions on existing memories."},{key:"graphEnabled",desc:"Build and query a knowledge graph from extracted entity relationships."},{key:"autonomousEnabled",desc:"Allow autonomous pipeline operations like maintenance and repair."},{key:"autonomousFrozen",desc:"Block autonomous writes while still allowing autonomous reads."},{key:"semanticContradictionEnabled",desc:"Use LLM to detect semantic contradictions on update proposals. Adds latency but catches subtle conflicts."}],ar=[{key:"rerankerEnabled",desc:"Re-score recall candidates using full-content embedding similarity. No LLM call needed."}],sr=[{key:"extractionTimeout",label:"Extraction timeout (ms)",desc:"Timeout for the extraction LLM call.",min:5e3,max:3e5,step:1e3},{key:"minFactConfidenceForWrite",label:"Min fact confidence",desc:"Facts below this threshold are dropped. Lower captures more at the cost of noise.",min:0,max:1,step:.05}],nr=[{key:"graphBoostWeight",label:"Graph boost weight",desc:"Score boost applied to graph-linked memories during search.",min:0,max:1,step:.05},{key:"rerankerTopN",label:"Reranker top N",desc:"Number of top candidates re-scored by embedding similarity.",min:1,max:100,step:1},{key:"rerankerTimeoutMs",label:"Reranker timeout (ms)",desc:"Timeout for the reranking pass. Original order returned on timeout.",min:100,max:3e4,step:100}],or=[{key:"workerPollMs",label:"Worker poll (ms)",desc:"How often the worker polls for pending jobs.",min:100,max:6e4,step:100},{key:"workerMaxRetries",label:"Worker max retries",desc:"Max retry attempts before a job goes to dead-letter.",min:1,max:10,step:1},{key:"leaseTimeoutMs",label:"Lease timeout (ms)",desc:"Time before an uncompleted job lease expires and is retried.",min:1e4,max:6e5,step:1e3},{key:"maintenanceIntervalMs",label:"Maintenance interval (ms)",desc:"How often the maintenance worker runs diagnostics.",min:6e4,max:864e5,step:6e4}],lr=["agent.yaml","AGENT.yaml","config.yaml"];class ir{#e=ce(Xe({}));get agent(){return e(this.#e)}set agent(t){P(this.#e,t,!0)}#t=ce(Xe({}));get config(){return e(this.#t)}set config(t){P(this.#t,t,!0)}#r=ce(!1);get saving(){return e(this.#r)}set saving(t){P(this.#r,t,!0)}#a=ce(null);get lastSavedAt(){return e(this.#a)}set lastSavedAt(t){P(this.#a,t,!0)}#s=ce("");get lastSaveFeedback(){return e(this.#s)}set lastSaveFeedback(t){P(this.#s,t,!0)}#n=ce(null);get agentFile(){return e(this.#n)}set agentFile(t){P(this.#n,t,!0)}#o=ce(null);get configFile(){return e(this.#o)}set configFile(t){P(this.#o,t,!0)}#l=ce("{}");get agentSnapshot(){return e(this.#l)}set agentSnapshot(t){P(this.#l,t,!0)}#i=ce("{}");get configSnapshot(){return e(this.#i)}set configSnapshot(t){P(this.#i,t,!0)}#d=se(()=>lr.find(t=>this.agentFile?.name===t||this.configFile?.name===t)??null);get settingsFileName(){return e(this.#d)}set settingsFileName(t){P(this.#d,t)}#c=se(()=>this.settingsFileName==="agent.yaml"||this.settingsFileName==="AGENT.yaml");get settingsIsSameAsAgent(){return e(this.#c)}set settingsIsSameAsAgent(t){P(this.#c,t)}#u=se(()=>!!this.agentFile||!!this.configFile);get hasFiles(){return e(this.#u)}set hasFiles(t){P(this.#u,t)}#v=se(()=>this.agentSnapshot!==JSON.stringify(this.agent)||!this.settingsIsSameAsAgent&&this.configSnapshot!==JSON.stringify(this.config));get isDirty(){return e(this.#v)}set isDirty(t){P(this.#v,t)}lastInitSource=null;init(t){if(!(this.lastInitSource===t&&this.hasFiles)){if(this.lastInitSource=t,this.agentFile=t.find(a=>a.name==="agent.yaml"||a.name==="AGENT.yaml")??null,this.configFile=t.find(a=>a.name==="config.yaml")??null,this.agentFile?.content)try{this.agent=JSON.parse(JSON.stringify(nt(this.agentFile.content)??{}))}catch{this.agent={}}else this.agent={};if(this.configFile?.content)try{this.config=JSON.parse(JSON.stringify(nt(this.configFile.content)??{}))}catch{this.config={}}else this.config={};this.agentSnapshot=JSON.stringify(this.agent),this.configSnapshot=JSON.stringify(this.config),this.lastSaveFeedback=""}}get(t,...a){let i=t;for(const l of a){if(i==null||typeof i!="object"||Array.isArray(i))return null;i=i[l]??null}return i}set(t,a,i){let l=t;for(let F=0;F<a.length-1;F++){const p=a[F];(l[p]==null||typeof l[p]!="object"||Array.isArray(l[p]))&&(l[p]={}),l=l[p]}l[a[a.length-1]]=i}sObj(){return this.settingsIsSameAsAgent?this.agent:this.config}aStr(t){return String(this.get(this.agent,...t)??"")}aNum(t){const a=this.get(this.agent,...t);return typeof a=="number"?a:a?Number(a):""}aBool(t){return!!this.get(this.agent,...t)}aSetStr(t,a){this.set(this.agent,t,a)}aSetNum(t,a){this.set(this.agent,t,a===""?null:Number(a))}aSetBool(t,a){this.set(this.agent,t,a)}sStr(t){return String(this.get(this.sObj(),...t)??"")}sNum(t){const a=this.get(this.sObj(),...t);return typeof a=="number"?a:a?Number(a):""}sBool(t){return!!this.get(this.sObj(),...t)}sSetStr(t,a){this.set(this.sObj(),t,a)}sSetNum(t,a){this.set(this.sObj(),t,a===""?null:Number(a))}sSetBool(t,a){this.set(this.sObj(),t,a)}embPath(){const t=this.sObj();return this.get(t,"embedding")!=null?["embedding"]:this.get(t,"memory","embeddings")!=null?["memory","embeddings"]:["embeddings"]}harnessArray(){const t=this.get(this.agent,"harnesses");return Array.isArray(t)?t.map(String):[]}toggleHarness(t,a){const i=this.harnessArray();this.set(this.agent,["harnesses"],a?[...i,t]:i.filter(l=>l!==t))}addCustomHarness(t){if(t=t.trim(),!t)return;const a=this.harnessArray();a.includes(t)||this.set(this.agent,["harnesses"],[...a,t])}removeCustomHarness(t){this.set(this.agent,["harnesses"],this.harnessArray().filter(a=>a!==t))}isPathDirty(t,a){const i=t==="agent"?this.agent:this.config,l=JSON.parse(t==="agent"?this.agentSnapshot:this.configSnapshot),F=JSON.stringify(this.get(i,...a)),p=JSON.stringify(this.get(l,...a));return F!==p}isAnyPathDirty(t,a){return a.some(i=>this.isPathDirty(t,i))}reset(){try{this.agent=JSON.parse(this.agentSnapshot)}catch{this.agent={}}try{this.config=JSON.parse(this.configSnapshot)}catch{this.config={}}this.lastSaveFeedback="Changes discarded"}async save(){if(!this.isDirty){this.lastSaveFeedback="No changes to save";return}this.saving=!0;const t=[],a=[];try{if(this.agentFile){const i=await Qe(this.agentFile.name,ot(this.agent));i.ok?(t.push(this.agentFile.name),this.agentSnapshot=JSON.stringify(this.agent)):a.push({file:this.agentFile.name,error:i.error??`HTTP ${i.status}`})}if(!this.settingsIsSameAsAgent&&this.settingsFileName){const i=await Qe(this.settingsFileName,ot(this.config));i.ok?(t.push(this.settingsFileName),this.configSnapshot=JSON.stringify(this.config)):a.push({file:this.settingsFileName,error:i.error??`HTTP ${i.status}`})}t.length>0&&(this.lastSavedAt=new Date().toISOString()),a.length===0&&t.length>0?(this.lastSaveFeedback=`Saved ${t.join(", ")}`,Be(this.lastSaveFeedback,"success")):a.length>0&&t.length>0?(this.lastSaveFeedback=`Saved ${t.join(", ")}; failed ${a.map(i=>i.file).join(", ")}`,Be(`${this.lastSaveFeedback}: ${a.map(i=>`${i.file} (${i.error})`).join(", ")}`,"warning",5e3)):a.length>0&&(this.lastSaveFeedback=`Failed to save ${a.map(i=>i.file).join(", ")}`,Be(`${this.lastSaveFeedback}: ${a.map(i=>`${i.file} (${i.error})`).join(", ")}`,"error",5e3))}catch(i){this.lastSaveFeedback="Save failed",Be(`Error: ${String(i)}`,"error")}finally{this.saving=!1}}}const r=new ir;var dr=v(`<span class="block text-[10px] font-normal text-[var(--sig-text-muted)]
1
+ import{g as ce,e as Xe,k as e,j as P,z as se,F as Re,c as Ae,f as T,w as H,b as o,i as h,m as Se,l as n,q as ue,u as ae,v as g,a as ze,D as v,E as qe,p as we,d as Ce,A as xe,x as Ne,Z as je,t as Me,aG as b,o as St,Q as Oe,K as Ze,s as mt,n as ht,r as ft,O as He,a6 as kt,h as pt,$ as bt,G as Je,ad as Pt,M as wt,J as Ct,a2 as at,aH as Et,_ as Nt}from"./B7-KXgqZ.js";import{aJ as Qe,t as Be,I as _t,B as Ye,aK as At,aL as Ft,aM as Mt,aN as st}from"./BuAUI4Yr.js";import{p as nt,s as ot,g as Ot}from"./Bdj9FDJv.js";import{L as Tt}from"./Jfs9j7Ri.js";import{C as lt}from"./_OIsuyOS.js";import{I as pe}from"./Vnri6U61.js";import{T as Dt}from"./B51k0Snz.js";import{c as Te,S as De,a as Ie,b as ye}from"./DIYVZeCg.js";import{C as It}from"./Dwm-Ehex.js";import{S as Fe}from"./DxRNskpv.js";import{E as We,a as it,C as Vt,y as dt,m as ct,k as ut,l as Lt,h as Bt,b as Rt,c as zt,f as jt,d as Ut,e as Kt,g as Ht,s as qt,i as Gt,j as Jt,n as Yt,o as Wt,p as Xt,q as Qt}from"./7JVbjERf.js";import{P as Zt}from"./BWuZ2Crd.js";import{P as er,a as tr,b as rr}from"./-i0ys5Eo.js";const vt=["claude-code","codex","openclaw","opencode"],Ee=[{key:"enabled",desc:"Master switch. Pipeline does nothing when disabled."},{key:"shadowMode",desc:"Run extraction and decisions without writing. Safe for evaluation."},{key:"mutationsFrozen",desc:"Emergency brake. Block all writes even if shadowMode is off."}],gt=[{key:"allowUpdateDelete",desc:"Permit UPDATE/DELETE decisions on existing memories."},{key:"graphEnabled",desc:"Build and query a knowledge graph from extracted entity relationships."},{key:"autonomousEnabled",desc:"Allow autonomous pipeline operations like maintenance and repair."},{key:"autonomousFrozen",desc:"Block autonomous writes while still allowing autonomous reads."},{key:"semanticContradictionEnabled",desc:"Use LLM to detect semantic contradictions on update proposals. Adds latency but catches subtle conflicts."}],ar=[{key:"rerankerEnabled",desc:"Re-score recall candidates using full-content embedding similarity. No LLM call needed."}],sr=[{key:"extractionTimeout",label:"Extraction timeout (ms)",desc:"Timeout for the extraction LLM call.",min:5e3,max:3e5,step:1e3},{key:"minFactConfidenceForWrite",label:"Min fact confidence",desc:"Facts below this threshold are dropped. Lower captures more at the cost of noise.",min:0,max:1,step:.05}],nr=[{key:"graphBoostWeight",label:"Graph boost weight",desc:"Score boost applied to graph-linked memories during search.",min:0,max:1,step:.05},{key:"rerankerTopN",label:"Reranker top N",desc:"Number of top candidates re-scored by embedding similarity.",min:1,max:100,step:1},{key:"rerankerTimeoutMs",label:"Reranker timeout (ms)",desc:"Timeout for the reranking pass. Original order returned on timeout.",min:100,max:3e4,step:100}],or=[{key:"workerPollMs",label:"Worker poll (ms)",desc:"How often the worker polls for pending jobs.",min:100,max:6e4,step:100},{key:"workerMaxRetries",label:"Worker max retries",desc:"Max retry attempts before a job goes to dead-letter.",min:1,max:10,step:1},{key:"leaseTimeoutMs",label:"Lease timeout (ms)",desc:"Time before an uncompleted job lease expires and is retried.",min:1e4,max:6e5,step:1e3},{key:"maintenanceIntervalMs",label:"Maintenance interval (ms)",desc:"How often the maintenance worker runs diagnostics.",min:6e4,max:864e5,step:6e4}],lr=["agent.yaml","AGENT.yaml","config.yaml"];class ir{#e=ce(Xe({}));get agent(){return e(this.#e)}set agent(t){P(this.#e,t,!0)}#t=ce(Xe({}));get config(){return e(this.#t)}set config(t){P(this.#t,t,!0)}#r=ce(!1);get saving(){return e(this.#r)}set saving(t){P(this.#r,t,!0)}#a=ce(null);get lastSavedAt(){return e(this.#a)}set lastSavedAt(t){P(this.#a,t,!0)}#s=ce("");get lastSaveFeedback(){return e(this.#s)}set lastSaveFeedback(t){P(this.#s,t,!0)}#n=ce(null);get agentFile(){return e(this.#n)}set agentFile(t){P(this.#n,t,!0)}#o=ce(null);get configFile(){return e(this.#o)}set configFile(t){P(this.#o,t,!0)}#l=ce("{}");get agentSnapshot(){return e(this.#l)}set agentSnapshot(t){P(this.#l,t,!0)}#i=ce("{}");get configSnapshot(){return e(this.#i)}set configSnapshot(t){P(this.#i,t,!0)}#d=se(()=>lr.find(t=>this.agentFile?.name===t||this.configFile?.name===t)??null);get settingsFileName(){return e(this.#d)}set settingsFileName(t){P(this.#d,t)}#c=se(()=>this.settingsFileName==="agent.yaml"||this.settingsFileName==="AGENT.yaml");get settingsIsSameAsAgent(){return e(this.#c)}set settingsIsSameAsAgent(t){P(this.#c,t)}#u=se(()=>!!this.agentFile||!!this.configFile);get hasFiles(){return e(this.#u)}set hasFiles(t){P(this.#u,t)}#v=se(()=>this.agentSnapshot!==JSON.stringify(this.agent)||!this.settingsIsSameAsAgent&&this.configSnapshot!==JSON.stringify(this.config));get isDirty(){return e(this.#v)}set isDirty(t){P(this.#v,t)}lastInitSource=null;init(t){if(!(this.lastInitSource===t&&this.hasFiles)){if(this.lastInitSource=t,this.agentFile=t.find(a=>a.name==="agent.yaml"||a.name==="AGENT.yaml")??null,this.configFile=t.find(a=>a.name==="config.yaml")??null,this.agentFile?.content)try{this.agent=JSON.parse(JSON.stringify(nt(this.agentFile.content)??{}))}catch{this.agent={}}else this.agent={};if(this.configFile?.content)try{this.config=JSON.parse(JSON.stringify(nt(this.configFile.content)??{}))}catch{this.config={}}else this.config={};this.agentSnapshot=JSON.stringify(this.agent),this.configSnapshot=JSON.stringify(this.config),this.lastSaveFeedback=""}}get(t,...a){let i=t;for(const l of a){if(i==null||typeof i!="object"||Array.isArray(i))return null;i=i[l]??null}return i}set(t,a,i){let l=t;for(let F=0;F<a.length-1;F++){const p=a[F];(l[p]==null||typeof l[p]!="object"||Array.isArray(l[p]))&&(l[p]={}),l=l[p]}l[a[a.length-1]]=i}sObj(){return this.settingsIsSameAsAgent?this.agent:this.config}aStr(t){return String(this.get(this.agent,...t)??"")}aNum(t){const a=this.get(this.agent,...t);return typeof a=="number"?a:a?Number(a):""}aBool(t){return!!this.get(this.agent,...t)}aSetStr(t,a){this.set(this.agent,t,a)}aSetNum(t,a){this.set(this.agent,t,a===""?null:Number(a))}aSetBool(t,a){this.set(this.agent,t,a)}sStr(t){return String(this.get(this.sObj(),...t)??"")}sNum(t){const a=this.get(this.sObj(),...t);return typeof a=="number"?a:a?Number(a):""}sBool(t){return!!this.get(this.sObj(),...t)}sSetStr(t,a){this.set(this.sObj(),t,a)}sSetNum(t,a){this.set(this.sObj(),t,a===""?null:Number(a))}sSetBool(t,a){this.set(this.sObj(),t,a)}embPath(){const t=this.sObj();return this.get(t,"embedding")!=null?["embedding"]:this.get(t,"memory","embeddings")!=null?["memory","embeddings"]:["embeddings"]}harnessArray(){const t=this.get(this.agent,"harnesses");return Array.isArray(t)?t.map(String):[]}toggleHarness(t,a){const i=this.harnessArray();this.set(this.agent,["harnesses"],a?[...i,t]:i.filter(l=>l!==t))}addCustomHarness(t){if(t=t.trim(),!t)return;const a=this.harnessArray();a.includes(t)||this.set(this.agent,["harnesses"],[...a,t])}removeCustomHarness(t){this.set(this.agent,["harnesses"],this.harnessArray().filter(a=>a!==t))}isPathDirty(t,a){const i=t==="agent"?this.agent:this.config,l=JSON.parse(t==="agent"?this.agentSnapshot:this.configSnapshot),F=JSON.stringify(this.get(i,...a)),p=JSON.stringify(this.get(l,...a));return F!==p}isAnyPathDirty(t,a){return a.some(i=>this.isPathDirty(t,i))}reset(){try{this.agent=JSON.parse(this.agentSnapshot)}catch{this.agent={}}try{this.config=JSON.parse(this.configSnapshot)}catch{this.config={}}this.lastSaveFeedback="Changes discarded"}async save(){if(!this.isDirty){this.lastSaveFeedback="No changes to save";return}this.saving=!0;const t=[],a=[];try{if(this.agentFile){const i=await Qe(this.agentFile.name,ot(this.agent));i.ok?(t.push(this.agentFile.name),this.agentSnapshot=JSON.stringify(this.agent)):a.push({file:this.agentFile.name,error:i.error??`HTTP ${i.status}`})}if(!this.settingsIsSameAsAgent&&this.settingsFileName){const i=await Qe(this.settingsFileName,ot(this.config));i.ok?(t.push(this.settingsFileName),this.configSnapshot=JSON.stringify(this.config)):a.push({file:this.settingsFileName,error:i.error??`HTTP ${i.status}`})}t.length>0&&(this.lastSavedAt=new Date().toISOString()),a.length===0&&t.length>0?(this.lastSaveFeedback=`Saved ${t.join(", ")}`,Be(this.lastSaveFeedback,"success")):a.length>0&&t.length>0?(this.lastSaveFeedback=`Saved ${t.join(", ")}; failed ${a.map(i=>i.file).join(", ")}`,Be(`${this.lastSaveFeedback}: ${a.map(i=>`${i.file} (${i.error})`).join(", ")}`,"warning",5e3)):a.length>0&&(this.lastSaveFeedback=`Failed to save ${a.map(i=>i.file).join(", ")}`,Be(`${this.lastSaveFeedback}: ${a.map(i=>`${i.file} (${i.error})`).join(", ")}`,"error",5e3))}catch(i){this.lastSaveFeedback="Save failed",Be(`Error: ${String(i)}`,"error")}finally{this.saving=!1}}}const r=new ir;var dr=v(`<span class="block text-[10px] font-normal text-[var(--sig-text-muted)]
2
2
  normal-case tracking-[0.02em] mt-px"> </span>`),cr=v(" <!>",1),ur=v('<div class="flex flex-col gap-1"><!> <div class="flex flex-col"><!></div></div>'),vr=v('<span class="field-desc svelte-q7r181"> </span>'),gr=v(`<div class="form-field-horizontal svelte-q7r181"><div class="field-label svelte-q7r181"><span class="font-[family-name:var(--font-mono)] text-[11px] font-medium
3
3
  text-[var(--sig-text-bright)] uppercase tracking-[0.06em]"> </span> <!></div> <div class="field-input svelte-q7r181"><!></div></div>`);function R(te,t){let a=Re(t,"layout",3,"horizontal");var i=Ae(),l=T(i);{var F=y=>{var $=ur(),c=h($);Tt(c,{class:`font-[family-name:var(--font-mono)] text-[11px] font-medium
4
4
  text-[var(--sig-text-bright)] uppercase tracking-[0.06em]`,children:(q,w)=>{Se();var K=cr(),I=T(K),U=n(I);{var Z=G=>{var L=dr(),ee=h(L,!0);g(L),ue(()=>ae(ee,t.description)),o(G,L)};H(U,G=>{t.description&&G(Z)})}ue(()=>ae(I,`${t.label??""} `)),o(q,K)},$$slots:{default:!0}});var m=n(c,2),x=h(m);ze(x,()=>t.children),g(m),g($),o(y,$)},p=y=>{var $=gr(),c=h($),m=h(c),x=h(m,!0);g(m);var q=n(m,2);{var w=U=>{var Z=vr(),G=h(Z,!0);g(Z),ue(()=>ae(G,t.description)),o(U,Z)};H(q,U=>{t.description&&U(w)})}g(c);var K=n(c,2),I=h(K);ze(I,()=>t.children),g(K),g($),ue(()=>ae(x,t.label)),o(y,$)};H(l,y=>{a()==="vertical"?y(F):y(p,!1)})}o(te,i)}var mr=v('<p class="section-description svelte-y82w7w"> </p>'),hr=v('<div class="form-section svelte-y82w7w"><!> <div class="fields-container svelte-y82w7w"><!></div></div>');function Ve(te,t){var a=hr(),i=h(a);{var l=y=>{var $=mr(),c=h($,!0);g($),ue(()=>ae(c,t.description)),o(y,$)};H(i,y=>{t.description&&y(l)})}var F=n(i,2),p=h(F);ze(p,()=>t.children),g(F),g(a),o(te,a)}var fr=v('<label class="harness-item svelte-173ahh7"><!> <span class="harness-name svelte-173ahh7"> </span></label>'),pr=v('<label class="harness-item svelte-173ahh7"><!> <span class="harness-name svelte-173ahh7"> </span> <span class="harness-badge svelte-173ahh7">custom</span></label>'),br=v('<div class="harness-grid svelte-173ahh7"><!> <!></div>'),_r=v('<div class="add-harness svelte-173ahh7"><!> <button type="button" class="add-btn svelte-173ahh7">Add</button></div>'),yr=v("<!> <!> <!> <!> <!> <!>",1);function $r(te,t){we(t,!0);let a=ce("");function i(c){if(!c)return"";try{return new Date(String(c)).toLocaleString()}catch{return String(c)}}function l(c){return m=>{r.aSetStr(c,m.currentTarget.value)}}function F(){r.addCustomHarness(e(a)),P(a,"")}var p=Ae(),y=T(p);{var $=c=>{Ve(c,{description:"Core identity metadata and harness configuration. Created by signet setup, synced to all active harnesses on change.",children:(m,x)=>{var q=yr(),w=T(q);R(w,{label:"Name",description:"Display name shown in harness configs and session context.",children:(L,ee)=>{{let s=se(()=>r.aStr(["agent","name"])),S=se(()=>l(["agent","name"]));pe(L,{get value(){return e(s)},get oninput(){return e(S)}})}},$$slots:{default:!0}});var K=n(w,2);R(K,{label:"Description",description:"Short description of the agent's role and purpose.",children:(L,ee)=>{{let s=se(()=>r.aStr(["agent","description"])),S=se(()=>l(["agent","description"]));Dt(L,{rows:3,get value(){return e(s)},get oninput(){return e(S)}})}},$$slots:{default:!0}});var I=n(K,2);R(I,{label:"Created",description:"ISO 8601 creation timestamp. Read-only.",children:(L,ee)=>{{let s=se(()=>i(r.get(r.agent,"agent","created")));pe(L,{class:"text-[var(--sig-text-muted)] cursor-default",readonly:!0,get value(){return e(s)}})}},$$slots:{default:!0}});var U=n(I,2);R(U,{label:"Updated",description:"ISO 8601 last update timestamp. Read-only.",children:(L,ee)=>{{let s=se(()=>i(r.get(r.agent,"agent","updated")));pe(L,{class:"text-[var(--sig-text-muted)] cursor-default",readonly:!0,get value(){return e(s)}})}},$$slots:{default:!0}});var Z=n(U,2);R(Z,{label:"Active harnesses",description:"Supported: claude-code, codex, openclaw, opencode. Cursor, windsurf, chatgpt, and gemini are planned.",children:(L,ee)=>{var s=br(),S=h(s);xe(S,16,()=>vt,f=>f,(f,J)=>{var Y=fr(),me=h(Y);{let _=se(()=>r.harnessArray().includes(J));lt(me,{get checked(){return e(_)},onCheckedChange:X=>r.toggleHarness(J,!!X)})}var ne=n(me,2),W=h(ne,!0);g(ne),g(Y),ue(()=>ae(W,J)),o(f,Y)});var u=n(S,2);xe(u,16,()=>r.harnessArray().filter(f=>!vt.includes(f)),f=>f,(f,J)=>{var Y=pr(),me=h(Y);lt(me,{checked:!0,onCheckedChange:()=>r.removeCustomHarness(J)});var ne=n(me,2),W=h(ne,!0);g(ne),Se(2),g(Y),ue(()=>ae(W,J)),o(f,Y)}),g(s),o(L,s)},$$slots:{default:!0}});var G=n(Z,2);R(G,{label:"Add custom harness",description:"Add a custom harness name for third-party integrations.",layout:"vertical",children:(L,ee)=>{var s=_r(),S=h(s);pe(S,{placeholder:"harness-name",onkeydown:f=>{f.key==="Enter"&&F()},get value(){return e(a)},set value(f){P(a,f,!0)}});var u=n(S,2);g(s),Ne("click",u,F),o(L,s)},$$slots:{default:!0}}),o(m,q)}})};H(y,c=>{r.agentFile&&c($)})}o(te,p),Ce()}qe(["click"]);var xr=v("<!> <!>",1),Sr=v("<!> <!>",1),kr=v("<!> <!>",1),Pr=v("<!> <!>",1),wr=v("<!> <!> <!>",1);function Cr(te,t){we(t,!1);const a="font-[family-name:var(--font-mono)] text-[11px] text-[var(--sig-text)] bg-[var(--sig-bg)] border-[var(--sig-border-strong)] rounded-lg w-full h-auto min-h-[30px] px-2 py-[5px] box-border focus-visible:border-[var(--sig-accent)]",i="font-[family-name:var(--font-mono)] text-[11px] bg-[var(--sig-bg)] text-[var(--sig-text)] border-[var(--sig-border-strong)] rounded-lg",l="font-[family-name:var(--font-mono)] text-[11px] rounded-lg";function F(m){return x=>{r.aSetStr(m,x??"")}}function p(m){return x=>{r.aSetNum(m,x.currentTarget.value)}}je();var y=Ae(),$=T(y);{var c=m=>{Ve(m,{description:"Authentication for the daemon API. Optional — disabled in local mode. Uses HMAC-SHA256 signed tokens.",children:(x,q)=>{var w=wr(),K=T(w);R(K,{label:"Method",description:"Signing method for auth tokens. erc8128 uses wallet signatures, gpg/did use alternative signing.",children:(Z,G)=>{{let L=b(()=>r.aStr(["auth","method"])),ee=b(()=>F(["auth","method"]));Te(Z,{type:"single",get value(){return e(L)},get onValueChange(){return e(ee)},children:(s,S)=>{var u=Sr(),f=T(u);De(f,{class:a,children:(Y,me)=>{Se();var ne=Me();ue(W=>ae(ne,W),[()=>r.aStr(["auth","method"])||"— select —"]),o(Y,ne)},$$slots:{default:!0}});var J=n(f,2);Ie(J,{class:i,children:(Y,me)=>{var ne=xr(),W=T(ne);ye(W,{class:l,value:"",label:"— select —"});var _=n(W,2);xe(_,0,()=>["none","erc8128","gpg","did"],X=>X,(X,ie)=>{ye(X,{class:l,get value(){return ie},get label(){return ie}})}),o(Y,ne)},$$slots:{default:!0}}),o(s,u)},$$slots:{default:!0}})}},$$slots:{default:!0}});var I=n(K,2);R(I,{label:"Mode",description:"local = no auth required (localhost only). team = tokens required for all requests. hybrid = localhost skips auth, remote requires tokens.",children:(Z,G)=>{{let L=b(()=>r.aStr(["auth","mode"])),ee=b(()=>F(["auth","mode"]));Te(Z,{type:"single",get value(){return e(L)},get onValueChange(){return e(ee)},children:(s,S)=>{var u=Pr(),f=T(u);De(f,{class:a,children:(Y,me)=>{Se();var ne=Me();ue(W=>ae(ne,W),[()=>r.aStr(["auth","mode"])||"— select —"]),o(Y,ne)},$$slots:{default:!0}});var J=n(f,2);Ie(J,{class:i,children:(Y,me)=>{var ne=kr(),W=T(ne);ye(W,{class:l,value:"",label:"— select —"});var _=n(W,2);xe(_,0,()=>["local","team","hybrid"],X=>X,(X,ie)=>{ye(X,{class:l,get value(){return ie},get label(){return ie}})}),o(Y,ne)},$$slots:{default:!0}}),o(s,u)},$$slots:{default:!0}})}},$$slots:{default:!0}});var U=n(I,2);R(U,{label:"Chain ID",description:"Ethereum chain ID for ERC-8128 signature verification. Default: 1 (mainnet).",children:(Z,G)=>{{let L=b(()=>r.aNum(["auth","chainId"])),ee=b(()=>p(["auth","chainId"]));pe(Z,{type:"number",get value(){return e(L)},get oninput(){return e(ee)}})}},$$slots:{default:!0}}),o(x,w)}})};H($,m=>{r.agentFile&&m(c)})}o(te,y),Ce()}var Er=v("<!> <!>",1),Nr=v("<!> <!>",1),Ar=v("<!> <!> <!>",1),Fr=v("<!> <!>",1),Mr=v('<div class="flex flex-col gap-2"><!> <!></div>'),Or=v('<div class="flex items-center gap-2 px-3 py-2 text-[10px] font-[family-name:var(--font-mono)] text-[var(--sig-warning,#d4a017)] bg-[color-mix(in_srgb,var(--sig-warning,#d4a017)_10%,transparent)] border border-[var(--sig-warning,#d4a017)]">(!) Changing provider or model will re-embed your entire memory database</div> <!> <!> <!>',1),Tr=v("<!> <!>",1);function Dr(te,t){we(t,!1);const a="font-[family-name:var(--font-mono)] text-[11px] text-[var(--sig-text)] bg-[var(--sig-bg)] border-[var(--sig-border-strong)] rounded-lg w-full h-auto min-h-[30px] px-2 py-[5px] box-border focus-visible:border-[var(--sig-accent)]",i="font-[family-name:var(--font-mono)] text-[11px] bg-[var(--sig-bg)] text-[var(--sig-text)] border-[var(--sig-border-strong)] rounded-lg",l="font-[family-name:var(--font-mono)] text-[11px] rounded-lg",F="http://localhost:11434",p="https://api.openai.com/v1",y=[{value:"native",label:"native (built-in)"},{value:"ollama",label:"ollama"},{value:"openai",label:"openai"},{value:"none",label:"none (disable vectors)"}],$={native:[{value:"nomic-embed-text-v1.5",label:"nomic-embed-text-v1.5",dimensions:768}],ollama:[{value:"nomic-embed-text",label:"nomic-embed-text (recommended)",dimensions:768},{value:"all-minilm",label:"all-minilm",dimensions:384},{value:"mxbai-embed-large",label:"mxbai-embed-large",dimensions:1024}],openai:[{value:"text-embedding-3-small",label:"text-embedding-3-small (recommended)",dimensions:1536},{value:"text-embedding-3-large",label:"text-embedding-3-large",dimensions:3072}],none:[]};function c(){return r.embPath()}function m(){const s=r.sStr([...c(),"provider"]);return s in $?s:""}function x(){const s=m();return s?$[s]:[]}function q(){const s=r.sStr([...c(),"model"]);return s?x().some(S=>S.value===s)?s:"__custom__":""}function w(s){return Object.values($).some(S=>S.some(u=>u.value===s))}function K(s){return s==="ollama"?F:s==="openai"?p:""}function I(s){const S=r.sStr([...c(),"model"]),u=r.sStr([...c(),"base_url"]),J=$[s][0];(!S||w(S))&&J&&(r.sSetStr([...c(),"model"],J.value),r.sSetNum([...c(),"dimensions"],J.dimensions));const Y=K(s);(u===""||u===F||u===p)&&r.sSetStr([...c(),"base_url"],Y)}function U(s){const S=s??"";r.sSetStr([...c(),"provider"],S),S&&S!=="none"&&I(S)}function Z(s){if(!s||s==="__custom__")return;const S=x().find(u=>u.value===s);S&&(r.sSetStr([...c(),"model"],S.value),r.sSetNum([...c(),"dimensions"],S.dimensions))}je();var G=Ae(),L=T(G);{var ee=s=>{Ve(s,{description:"Vector embedding configuration for semantic memory search. Provider defaults keep model, dimensions, and base URL aligned so search does not drift into a broken state.",children:(S,u)=>{var f=Tr(),J=T(f);R(J,{label:"Provider",description:"Embedding backend. Native runs built-in. Ollama runs locally. OpenAI uses the official embeddings API and requires an API key.",children:(W,_)=>{{let X=b(()=>r.sStr([...c(),"provider"]));Te(W,{type:"single",get value(){return e(X)},onValueChange:U,children:(ie,$e)=>{var C=Nr(),D=T(C);De(D,{class:a,children:(M,E)=>{Se();var B=Me();ue(ve=>ae(B,ve),[()=>r.sStr([...c(),"provider"])||"— select —"]),o(M,B)},$$slots:{default:!0}});var k=n(D,2);Ie(k,{class:i,children:(M,E)=>{var B=Er(),ve=T(B);ye(ve,{class:l,value:"",label:"— select —"});var oe=n(ve,2);xe(oe,1,()=>y,V=>V.value,(V,j)=>{ye(V,{class:l,get value(){return e(j).value},get label(){return e(j).label}})}),o(M,B)},$$slots:{default:!0}}),o(ie,C)},$$slots:{default:!0}})}},$$slots:{default:!0}});var Y=n(J,2);{var me=W=>{var _=Or(),X=n(T(_),2);R(X,{label:"Model",description:"Choose a recommended default or switch to custom for a specific embedding model. OpenAI's closest general-purpose replacement for the built-in nomic default is text-embedding-3-small.",children:(E,B)=>{var ve=Mr(),oe=h(ve);{let be=b(q);Te(oe,{type:"single",get value(){return e(be)},onValueChange:Z,children:(A,N)=>{var Q=Fr(),d=T(Q);De(d,{class:a,children:(z,le)=>{Se();var re=Me();ue(ge=>ae(re,ge),[()=>q()==="__custom__"?`custom: ${r.sStr([...c(),"model"])}`:r.sStr([...c(),"model"])||"— select —"]),o(z,re)},$$slots:{default:!0}});var O=n(d,2);Ie(O,{class:i,children:(z,le)=>{var re=Ar(),ge=T(re);ye(ge,{class:l,value:"",label:"— select —"});var de=n(ge,2);xe(de,1,x,_e=>_e.value,(_e,ke)=>{ye(_e,{class:l,get value(){return e(ke).value},get label(){return e(ke).label}})});var fe=n(de,2);ye(fe,{class:l,value:"__custom__",label:"custom"}),o(z,re)},$$slots:{default:!0}}),o(A,Q)},$$slots:{default:!0}})}var V=n(oe,2);{var j=be=>{{let A=b(()=>r.sStr([...c(),"model"]));pe(be,{get value(){return e(A)},oninput:N=>r.sSetStr([...c(),"model"],N.currentTarget.value),placeholder:"custom model id"})}},he=se(()=>q()==="__custom__"||x().length===0);H(V,be=>{e(he)&&be(j)})}g(ve),o(E,ve)},$$slots:{default:!0}});var ie=n(X,2);{var $e=E=>{R(E,{label:"Base URL",description:"Ollama defaults to http://localhost:11434. OpenAI defaults to https://api.openai.com/v1. Switching providers keeps the matching default unless you override it.",children:(B,ve)=>{{let oe=b(()=>r.sStr([...c(),"base_url"]));pe(B,{get value(){return e(oe)},oninput:V=>r.sSetStr([...c(),"base_url"],V.currentTarget.value)})}},$$slots:{default:!0}})},C=se(()=>m()==="ollama"||m()==="openai");H(ie,E=>{e(C)&&E($e)})}var D=n(ie,2);{var k=E=>{R(E,{label:"API Key",description:"Required for OpenAI. Use $secret:OPENAI_API_KEY to reference a stored secret instead of plaintext.",children:(B,ve)=>{{let oe=b(()=>r.sStr([...c(),"api_key"]));pe(B,{type:"password",get value(){return e(oe)},oninput:V=>r.sSetStr([...c(),"api_key"],V.currentTarget.value),placeholder:"$secret:OPENAI_API_KEY"})}},$$slots:{default:!0}})},M=se(()=>m()==="openai");H(D,E=>{e(M)&&E(k)})}o(W,_)},ne=se(()=>m()&&m()!=="none");H(Y,W=>{e(ne)&&W(me)})}o(S,f)}})};H(L,s=>{r.settingsFileName&&s(ee)})}o(te,G),Ce()}var Ir=v('<div class="advanced-content svelte-lvje7k"><!></div>'),Vr=v('<div class="advanced-section svelte-lvje7k"><button type="button" class="advanced-toggle svelte-lvje7k"><!> <span> </span></button> <!></div>');function et(te,t){let a=Re(t,"title",3,"Advanced"),i=ce(!1);var l=Vr(),F=h(l),p=h(F);{let x=se(()=>e(i)?"rotated":"");It(p,{get class(){return`toggle-icon ${e(x)??""}`},size:12})}var y=n(p,2),$=h(y,!0);g(y),g(F);var c=n(F,2);{var m=x=>{var q=Ir(),w=h(q);ze(w,()=>t.children),g(q),o(x,q)};H(c,x=>{e(i)&&x(m)})}g(l),ue(()=>ae($,a())),Ne("click",F,()=>P(i,!e(i))),o(te,l)}qe(["click"]);var Lr=v(`<p class="text-[10px] font-[family-name:var(--font-mono)] text-[var(--sig-warning,#d4a017)] mb-3">Changing paths can break your setup. Only modify if you know what you're doing.</p> <!> <!>`,1),Br=v("<!> <!> <!> <!>",1);function Rr(te,t){we(t,!1),je();var a=Ae(),i=T(a);{var l=F=>{Ve(F,{description:"Memory system settings. Controls how much context is injected into sessions and how memories age over time.",children:(p,y)=>{var $=Br(),c=T($);R(c,{label:"Session budget",description:"Character limit for context injected at session start via hooks. Default: 2000.",children:(w,K)=>{{let I=b(()=>r.sNum(["memory","session_budget"]));pe(w,{type:"number",get value(){return e(I)},oninput:U=>r.sSetNum(["memory","session_budget"],U.currentTarget.value)})}},$$slots:{default:!0}});var m=n(c,2);R(m,{label:"MEMORY.md budget",description:"Character limit for the auto-generated MEMORY.md summary. Default: 10000.",children:(w,K)=>{{let I=b(()=>r.sNum(["memory","current_md_budget"]));pe(w,{type:"number",get value(){return e(I)},oninput:U=>r.sSetNum(["memory","current_md_budget"],U.currentTarget.value)})}},$$slots:{default:!0}});var x=n(m,2);R(x,{label:"Decay rate",description:"Daily importance decay factor for non-pinned memories. Formula: importance(t) = base × decay_rate^days. 0.99 = slow, 0.95 = default, 0.90 = fast.",children:(w,K)=>{{let I=b(()=>r.sNum(["memory","decay_rate"]));pe(w,{type:"number",min:"0",max:"1",step:"0.01",get value(){return e(I)},oninput:U=>r.sSetNum(["memory","decay_rate"],U.currentTarget.value)})}},$$slots:{default:!0}});var q=n(x,2);et(q,{children:(w,K)=>{var I=Lr(),U=n(T(I),2);R(U,{label:"Database path",description:"SQLite database file for structured memory storage.",children:(G,L)=>{{let ee=b(()=>r.sStr(["paths","database"]));pe(G,{get value(){return e(ee)},oninput:s=>r.sSetStr(["paths","database"],s.currentTarget.value)})}},$$slots:{default:!0}});var Z=n(U,2);R(Z,{label:"MEMORY.md path",description:"Output path for the auto-generated working memory summary.",children:(G,L)=>{{let ee=b(()=>r.sStr(["paths","current_md"]));pe(G,{get value(){return e(ee)},oninput:s=>r.sSetStr(["paths","current_md"],s.currentTarget.value)})}},$$slots:{default:!0}}),o(w,I)},$$slots:{default:!0}}),o(p,$)}})};H(i,F=>{r.settingsFileName&&F(l)})}o(te,a),Ce()}var zr=v("<!> <!>",1),jr=v("<!> <!>",1),Ur=v("<!> <!> <!>",1),Kr=v("<!> <!>",1),Hr=v('<div class="flex flex-col gap-2"><!> <!></div>'),qr=v("<!> <!> <!>",1),Gr=v("<!> <!>",1),Jr=v("<!> <!> <!> <!> <!> <!> <!>",1),Yr=v('<!> <!> <!> <!> <!> <div class="font-[family-name:var(--font-mono)] text-[9px] tracking-[0.08em] uppercase text-[var(--sig-text-muted)] pt-3 pb-1 border-b border-[var(--sig-border)] mb-1">Predictor</div> <!> <!> <!> <!>',1);function Wr(te,t){we(t,!1);const a="font-[family-name:var(--font-mono)] text-[11px] text-[var(--sig-text)] bg-[var(--sig-bg)] border-[var(--sig-border-strong)] rounded-lg w-full h-auto min-h-[30px] px-2 py-[5px] box-border focus-visible:border-[var(--sig-accent)]",i="font-[family-name:var(--font-mono)] text-[11px] bg-[var(--sig-bg)] text-[var(--sig-text)] border-[var(--sig-border-strong)] rounded-lg",l="font-[family-name:var(--font-mono)] text-[11px] rounded-lg",F=[{value:"ollama",label:"ollama"},{value:"claude-code",label:"claude-code"},{value:"codex",label:"codex"},{value:"opencode",label:"opencode"}],p={ollama:[{value:"glm-4.7-flash",label:"glm-4.7-flash"},{value:"qwen3:4b",label:"qwen3:4b"},{value:"llama3",label:"llama3"}],"claude-code":[{value:"haiku",label:"haiku"},{value:"sonnet",label:"sonnet"}],codex:[{value:"gpt-5.3-codex",label:"gpt-5.3-codex"},{value:"gpt-5-codex",label:"gpt-5-codex"},{value:"gpt-5-codex-mini",label:"gpt-5-codex-mini"}],opencode:[{value:"anthropic/claude-haiku-4-5-20251001",label:"anthropic/claude-haiku-4-5-20251001"},{value:"anthropic/claude-sonnet-4-5-20250514",label:"anthropic/claude-sonnet-4-5-20250514"},{value:"google/gemini-2.5-flash",label:"google/gemini-2.5-flash"}]};function y(){const u=r.aStr(["memory","pipelineV2","extractionProvider"]);return u in p?u:""}function $(){const u=y();return u?p[u]:[]}function c(){const u=r.aStr(["memory","pipelineV2","extractionModel"]);return u?$().some(f=>f.value===u)?u:"__custom__":""}function m(u){return Object.values(p).some(f=>f.some(J=>J.value===u))}function x(u){return p[u][0]?.value??""}function q(u){return f=>{r.aSetNum(u,f.currentTarget.value)}}function w(u){return f=>{r.aSetBool(u,!!f)}}function K(u){return f=>{r.aSetStr(u,f.currentTarget.value)}}function I(u){return f=>{r.aSetStr(u,f??"")}}function U(u){const f=u??"",J=r.aStr(["memory","pipelineV2","extractionModel"]);r.aSetStr(["memory","pipelineV2","extractionProvider"],f),f&&(!J||m(J))&&r.aSetStr(["memory","pipelineV2","extractionModel"],x(f))}function Z(u){!u||u==="__custom__"||r.aSetStr(["memory","pipelineV2","extractionModel"],u)}const G=["allowUpdateDelete","graphEnabled","autonomousEnabled","semanticContradictionEnabled"],L=["autonomousFrozen"];je();var ee=Ae(),s=T(ee);{var S=u=>{Ve(u,{description:"V2 memory pipeline. Runs LLM-based fact extraction on incoming memories, then decides whether to write, update, or skip. Lives under memory.pipelineV2 in agent.yaml.",children:(f,J)=>{var Y=Yr(),me=T(Y);R(me,{get label(){return Ee[0].key},get description(){return Ee[0].desc},children:(k,M)=>{{let E=b(()=>r.aBool(["memory","pipelineV2",Ee[0].key])),B=b(()=>w(["memory","pipelineV2",Ee[0].key]));Fe(k,{get checked(){return e(E)},get onCheckedChange(){return e(B)}})}},$$slots:{default:!0}});var ne=n(me,2);R(ne,{label:"Extraction provider",description:"LLM backend for fact extraction. Ollama runs locally; claude-code uses Claude Code CLI; codex uses the local Codex CLI; opencode uses the OpenCode server.",children:(k,M)=>{{let E=b(()=>r.aStr(["memory","pipelineV2","extractionProvider"]));Te(k,{type:"single",get value(){return e(E)},onValueChange:U,children:(B,ve)=>{var oe=jr(),V=T(oe);De(V,{class:a,children:(he,be)=>{Se();var A=Me();ue(N=>ae(A,N),[()=>r.aStr(["memory","pipelineV2","extractionProvider"])||"— select —"]),o(he,A)},$$slots:{default:!0}});var j=n(V,2);Ie(j,{class:i,children:(he,be)=>{var A=zr(),N=T(A);ye(N,{class:l,value:"",label:"\\u2014 select \\u2014"});var Q=n(N,2);xe(Q,1,()=>F,d=>d.value,(d,O)=>{ye(d,{class:l,get value(){return e(O).value},get label(){return e(O).label}})}),o(he,A)},$$slots:{default:!0}}),o(B,oe)},$$slots:{default:!0}})}},$$slots:{default:!0}});var W=n(ne,2);R(W,{label:"Extraction model",description:"Choose a provider default or switch to custom for any supported model string. Existing custom values are preserved.",children:(k,M)=>{var E=Hr(),B=h(E);{let j=b(c);Te(B,{type:"single",get value(){return e(j)},onValueChange:Z,children:(he,be)=>{var A=Kr(),N=T(A);De(N,{class:a,children:(d,O)=>{Se();var z=Me();ue(le=>ae(z,le),[()=>c()==="__custom__"?`custom: ${r.aStr(["memory","pipelineV2","extractionModel"])}`:r.aStr(["memory","pipelineV2","extractionModel"])||"— select —"]),o(d,z)},$$slots:{default:!0}});var Q=n(N,2);Ie(Q,{class:i,children:(d,O)=>{var z=Ur(),le=T(z);ye(le,{class:l,value:"",label:"\\u2014 select \\u2014"});var re=n(le,2);xe(re,1,$,de=>de.value,(de,fe)=>{ye(de,{class:l,get value(){return e(fe).value},get label(){return e(fe).label}})});var ge=n(re,2);ye(ge,{class:l,value:"__custom__",label:"custom"}),o(d,z)},$$slots:{default:!0}}),o(he,A)},$$slots:{default:!0}})}var ve=n(B,2);{var oe=j=>{{let he=b(()=>r.aStr(["memory","pipelineV2","extractionModel"])),be=b(()=>K(["memory","pipelineV2","extractionModel"]));pe(j,{get value(){return e(he)},get oninput(){return e(be)},placeholder:"custom model id"})}},V=se(()=>c()==="__custom__"||$().length===0);H(ve,j=>{e(V)&&j(oe)})}g(E),o(k,E)},$$slots:{default:!0}});var _=n(W,2);xe(_,1,()=>gt.filter(k=>G.includes(k.key)),({key:k,desc:M})=>k,(k,M)=>{let E=()=>e(M).key,B=()=>e(M).desc;R(k,{get label(){return E()},get description(){return B()},children:(ve,oe)=>{{let V=b(()=>r.aBool(["memory","pipelineV2",E()])),j=b(()=>w(["memory","pipelineV2",E()]));Fe(ve,{get checked(){return e(V)},get onCheckedChange(){return e(j)}})}},$$slots:{default:!0}})});var X=n(_,2);xe(X,1,()=>ar,({key:k,desc:M})=>k,(k,M)=>{let E=()=>e(M).key,B=()=>e(M).desc;R(k,{get label(){return E()},get description(){return B()},children:(ve,oe)=>{{let V=b(()=>r.aBool(["memory","pipelineV2",E()])),j=b(()=>w(["memory","pipelineV2",E()]));Fe(ve,{get checked(){return e(V)},get onCheckedChange(){return e(j)}})}},$$slots:{default:!0}})});var ie=n(X,4);R(ie,{label:"enabled",description:"Enable the predictive memory scorer. Learns which memories are most useful based on agent feedback.",children:(k,M)=>{{let E=b(()=>r.aBool(["memory","pipelineV2","predictor","enabled"])),B=b(()=>w(["memory","pipelineV2","predictor","enabled"]));Fe(k,{get checked(){return e(E)},get onCheckedChange(){return e(B)}})}},$$slots:{default:!0}});var $e=n(ie,2);R($e,{label:"agentFeedback",description:"Allow the agent to provide relevance feedback on recalled memories.",children:(k,M)=>{{let E=b(()=>r.aBool(["memory","pipelineV2","predictorPipeline","agentFeedback"])),B=b(()=>w(["memory","pipelineV2","predictorPipeline","agentFeedback"]));Fe(k,{get checked(){return e(E)},get onCheckedChange(){return e(B)}})}},$$slots:{default:!0}});var C=n($e,2);R(C,{label:"trainingTelemetry",description:"Contribute anonymized training signals to improve the shared base model.",children:(k,M)=>{{let E=b(()=>r.aBool(["memory","pipelineV2","predictorPipeline","trainingTelemetry"])),B=b(()=>w(["memory","pipelineV2","predictorPipeline","trainingTelemetry"]));Fe(k,{get checked(){return e(E)},get onCheckedChange(){return e(B)}})}},$$slots:{default:!0}});var D=n(C,2);et(D,{children:(k,M)=>{var E=Jr(),B=T(E);R(B,{get label(){return Ee[1].key},get description(){return Ee[1].desc},children:(A,N)=>{{let Q=b(()=>r.aBool(["memory","pipelineV2",Ee[1].key])),d=b(()=>w(["memory","pipelineV2",Ee[1].key]));Fe(A,{get checked(){return e(Q)},get onCheckedChange(){return e(d)}})}},$$slots:{default:!0}});var ve=n(B,2);R(ve,{get label(){return Ee[2].key},get description(){return Ee[2].desc},children:(A,N)=>{{let Q=b(()=>r.aBool(["memory","pipelineV2",Ee[2].key])),d=b(()=>w(["memory","pipelineV2",Ee[2].key]));Fe(A,{get checked(){return e(Q)},get onCheckedChange(){return e(d)}})}},$$slots:{default:!0}});var oe=n(ve,2);xe(oe,1,()=>gt.filter(A=>L.includes(A.key)),({key:A,desc:N})=>A,(A,N)=>{let Q=()=>e(N).key,d=()=>e(N).desc;R(A,{get label(){return Q()},get description(){return d()},children:(O,z)=>{{let le=b(()=>r.aBool(["memory","pipelineV2",Q()])),re=b(()=>w(["memory","pipelineV2",Q()]));Fe(O,{get checked(){return e(le)},get onCheckedChange(){return e(re)}})}},$$slots:{default:!0}})});var V=n(oe,2);R(V,{label:"Maintenance mode",description:"'observe' logs diagnostics without changes. 'execute' attempts repairs. Only works when autonomousEnabled is true.",children:(A,N)=>{{let Q=b(()=>r.aStr(["memory","pipelineV2","maintenanceMode"])),d=b(()=>I(["memory","pipelineV2","maintenanceMode"]));Te(A,{type:"single",get value(){return e(Q)},get onValueChange(){return e(d)},children:(O,z)=>{var le=Gr(),re=T(le);De(re,{class:a,children:(de,fe)=>{Se();var _e=Me();ue(ke=>ae(_e,ke),[()=>r.aStr(["memory","pipelineV2","maintenanceMode"])||"— select —"]),o(de,_e)},$$slots:{default:!0}});var ge=n(re,2);Ie(ge,{class:i,children:(de,fe)=>{var _e=qr(),ke=T(_e);ye(ke,{class:l,value:"",label:"\\u2014 select \\u2014"});var Le=n(ke,2);ye(Le,{class:l,value:"observe",label:"observe"});var Pe=n(Le,2);ye(Pe,{class:l,value:"execute",label:"execute"}),o(de,_e)},$$slots:{default:!0}}),o(O,le)},$$slots:{default:!0}})}},$$slots:{default:!0}});var j=n(V,2);xe(j,1,()=>sr,({key:A,label:N,desc:Q,min:d,max:O,step:z})=>A,(A,N)=>{let Q=()=>e(N).key,d=()=>e(N).label,O=()=>e(N).desc,z=()=>e(N).min,le=()=>e(N).max,re=()=>e(N).step;R(A,{get label(){return d()},get description(){return O()},children:(ge,de)=>{{let fe=b(()=>r.aNum(["memory","pipelineV2",Q()])),_e=b(()=>q(["memory","pipelineV2",Q()]));pe(ge,{type:"number",get min(){return z()},get max(){return le()},get step(){return re()},get value(){return e(fe)},get oninput(){return e(_e)}})}},$$slots:{default:!0}})});var he=n(j,2);xe(he,1,()=>nr,({key:A,label:N,desc:Q,min:d,max:O,step:z})=>A,(A,N)=>{let Q=()=>e(N).key,d=()=>e(N).label,O=()=>e(N).desc,z=()=>e(N).min,le=()=>e(N).max,re=()=>e(N).step;R(A,{get label(){return d()},get description(){return O()},children:(ge,de)=>{{let fe=b(()=>r.aNum(["memory","pipelineV2",Q()])),_e=b(()=>q(["memory","pipelineV2",Q()]));pe(ge,{type:"number",get min(){return z()},get max(){return le()},get step(){return re()},get value(){return e(fe)},get oninput(){return e(_e)}})}},$$slots:{default:!0}})});var be=n(he,2);xe(be,1,()=>or,({key:A,label:N,desc:Q,min:d,max:O,step:z})=>A,(A,N)=>{let Q=()=>e(N).key,d=()=>e(N).label,O=()=>e(N).desc,z=()=>e(N).min,le=()=>e(N).max,re=()=>e(N).step;R(A,{get label(){return d()},get description(){return O()},children:(ge,de)=>{{let fe=b(()=>r.aNum(["memory","pipelineV2",Q()])),_e=b(()=>q(["memory","pipelineV2",Q()]));pe(ge,{type:"number",get min(){return z()},get max(){return le()},get step(){return re()},get value(){return e(fe)},get oninput(){return e(_e)}})}},$$slots:{default:!0}})}),o(k,E)},$$slots:{default:!0}}),o(f,Y)}})};H(s,u=>{r.agentFile&&u(S)})}o(te,ee),Ce()}var Xr=v("<!> <!> <!> <!> <!>",1),Qr=v("<!> <!>",1);function Zr(te,t){we(t,!1);function a(y){return $=>{r.sSetNum(y,$.currentTarget.value)}}function i(y){return $=>{r.sSetBool(y,!!$)}}je();var l=Ae(),F=T(l);{var p=y=>{Ve(y,{description:"Hybrid search tuning. Controls the blend between semantic (vector) and keyword (BM25) retrieval.",children:($,c)=>{var m=Qr(),x=T(m);R(x,{label:"Rehearsal enabled",description:"Boost scores for frequently-recalled memories. Uses access_count and last_accessed to reward useful memories.",children:(w,K)=>{{let I=b(()=>r.sBool(["search","rehearsal_enabled"])),U=b(()=>i(["search","rehearsal_enabled"]));Fe(w,{get checked(){return e(I)},get onCheckedChange(){return e(U)}})}},$$slots:{default:!0}});var q=n(x,2);et(q,{children:(w,K)=>{var I=Xr(),U=T(I);R(U,{label:"Alpha",description:"Vector weight (0–1). At 0.9 results are heavily semantic; at 0.3 they skew toward keyword matching. Default 0.7 works well generally.",children:(s,S)=>{{let u=b(()=>r.sNum(["search","alpha"])),f=b(()=>a(["search","alpha"]));pe(s,{type:"number",min:"0",max:"1",step:"0.1",get value(){return e(u)},get oninput(){return e(f)}})}},$$slots:{default:!0}});var Z=n(U,2);R(Z,{label:"Top K",description:"Candidate count fetched from each source (BM25 and vector) before alpha-blending. Default: 20.",children:(s,S)=>{{let u=b(()=>r.sNum(["search","top_k"])),f=b(()=>a(["search","top_k"]));pe(s,{type:"number",get value(){return e(u)},get oninput(){return e(f)}})}},$$slots:{default:!0}});var G=n(Z,2);R(G,{label:"Min Score",description:"Minimum combined score to include in results. Results below this threshold are dropped. Default: 0.3.",children:(s,S)=>{{let u=b(()=>r.sNum(["search","min_score"])),f=b(()=>a(["search","min_score"]));pe(s,{type:"number",min:"0",max:"1",step:"0.1",get value(){return e(u)},get oninput(){return e(f)}})}},$$slots:{default:!0}});var L=n(G,2);R(L,{label:"Rehearsal weight",description:"Score multiplier for rehearsal boost. Higher = more impact from recall frequency. Default: 0.1.",children:(s,S)=>{{let u=b(()=>r.sNum(["search","rehearsal_weight"])),f=b(()=>a(["search","rehearsal_weight"]));pe(s,{type:"number",min:"0",max:"1",step:"0.05",get value(){return e(u)},get oninput(){return e(f)}})}},$$slots:{default:!0}});var ee=n(L,2);R(ee,{label:"Rehearsal half-life (days)",description:"Days until rehearsal boost decays to half. Lower = faster decay of recall-frequency boost. Default: 30.",children:(s,S)=>{{let u=b(()=>r.sNum(["search","rehearsal_half_life_days"])),f=b(()=>a(["search","rehearsal_half_life_days"]));pe(s,{type:"number",min:"1",max:"365",step:"1",get value(){return e(u)},get oninput(){return e(f)}})}},$$slots:{default:!0}}),o(w,I)},$$slots:{default:!0}}),o($,m)}})};H(F,y=>{r.settingsFileName&&y(p)})}o(te,l),Ce()}var ea=v("<!> <!>",1),ta=v("<!> <!>",1),ra=v("<!> <!>",1);function aa(te,t){we(t,!1);const a="font-[family-name:var(--font-mono)] text-[11px] text-[var(--sig-text)] bg-[var(--sig-bg)] border-[var(--sig-border-strong)] rounded-lg w-full h-auto min-h-[30px] px-2 py-[5px] box-border focus-visible:border-[var(--sig-accent)]",i="font-[family-name:var(--font-mono)] text-[11px] bg-[var(--sig-bg)] text-[var(--sig-text)] border-[var(--sig-border-strong)] rounded-lg",l="font-[family-name:var(--font-mono)] text-[11px] rounded-lg";function F(m){return x=>{r.aSetStr(m,x??"")}}function p(m){return x=>{r.aSetStr(m,x.currentTarget.value)}}je();var y=Ae(),$=T(y);{var c=m=>{Ve(m,{description:"Identity verification method. Controls how the agent proves its identity to peers and registries.",children:(x,q)=>{var w=ra(),K=T(w);R(K,{label:"Verification",description:"none = local only. erc8128 = wallet-based (recommended). gpg/did = alternative signing. registry = contract-based lookup.",children:(G,L)=>{{let ee=b(()=>r.aStr(["trust","verification"])),s=b(()=>F(["trust","verification"]));Te(G,{type:"single",get value(){return e(ee)},get onValueChange(){return e(s)},children:(S,u)=>{var f=ta(),J=T(f);De(J,{class:a,children:(me,ne)=>{Se();var W=Me();ue(_=>ae(W,_),[()=>r.aStr(["trust","verification"])||"— select —"]),o(me,W)},$$slots:{default:!0}});var Y=n(J,2);Ie(Y,{class:i,children:(me,ne)=>{var W=ea(),_=T(W);ye(_,{class:l,value:"",label:"— select —"});var X=n(_,2);xe(X,0,()=>["none","erc8128","gpg","did","registry"],ie=>ie,(ie,$e)=>{ye(ie,{class:l,get value(){return $e},get label(){return $e}})}),o(me,W)},$$slots:{default:!0}}),o(S,f)},$$slots:{default:!0}})}},$$slots:{default:!0}});var I=n(K,2);{var U=G=>{R(G,{label:"Registry URL",description:"Registry contract address or ENS name for identity lookups.",children:(L,ee)=>{{let s=b(()=>r.aStr(["trust","registry"])),S=b(()=>p(["trust","registry"]));pe(L,{get value(){return e(s)},get oninput(){return e(S)}})}},$$slots:{default:!0}})},Z=se(()=>r.aStr(["trust","verification"])==="registry");H(I,G=>{e(Z)&&G(U)})}o(x,w)}})};H($,m=>{r.agentFile&&m(c)})}o(te,y),Ce()}var sa=v('<div class="code-editor svelte-c4vs74"></div>');function na(te,t){we(t,!0);let a=Re(t,"readonly",3,!1),i=ce(void 0),l=ce(void 0);const F=new Vt;function p(){return We.theme({"&":{backgroundColor:"var(--sig-bg)",color:"var(--sig-text-bright)",fontFamily:"var(--font-mono)",fontSize:"13px",height:"100%"},".cm-content":{caretColor:"var(--sig-text-bright)",fontFamily:"var(--font-mono)",lineHeight:"1.8",padding:"var(--space-md) 0"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--sig-text-bright)"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground":{backgroundColor:"rgba(255, 255, 255, 0.08) !important"},".cm-activeLine":{backgroundColor:"rgba(255, 255, 255, 0.03)"},".cm-gutters":{backgroundColor:"var(--sig-surface)",color:"var(--sig-text-muted)",border:"none",borderRight:"1px solid var(--sig-border)",fontFamily:"var(--font-mono)",fontSize:"11px"},".cm-activeLineGutter":{backgroundColor:"rgba(255, 255, 255, 0.04)",color:"var(--sig-text)"},".cm-foldGutter":{color:"var(--sig-text-muted)"},"&.cm-focused":{outline:"none"},".cm-matchingBracket":{backgroundColor:"rgba(255, 255, 255, 0.1)",color:"var(--sig-text-bright)"},".cm-searchMatch":{backgroundColor:"rgba(255, 255, 255, 0.12)"},".cm-selectionMatch":{backgroundColor:"rgba(255, 255, 255, 0.06)"},".cm-line":{padding:"0 var(--space-md)"},".cm-scroller":{overflow:"auto"}},{dark:!0})}function y(){return t.language==="yaml"?dt():t.language==="markdown"?ct():[]}function $(){const m=ut.of([{key:"Mod-s",run:()=>(t.onsave?.(),!0)}]);return[Lt(),Bt(),Rt(),zt(),jt(),Ut(),Kt(),Ht(),qt(Qt,{fallback:!0}),ut.of([...Gt,...Jt,...Yt,...Wt,...Xt]),p(),F.of(y()),m,We.updateListener.of(x=>{x.docChanged&&t.onchange?.(x.state.doc.toString())}),...a()?[it.readOnly.of(!0)]:[]]}St(()=>{if(e(i))return P(l,new We({state:it.create({doc:t.value,extensions:$()}),parent:e(i)}),!0),()=>{e(l)?.destroy(),P(l,void 0)}}),Oe(()=>{if(!e(l))return;const m=e(l).state.doc.toString();t.value!==m&&e(l).dispatch({changes:{from:0,to:m.length,insert:t.value}})}),Oe(()=>{const m=t.language;e(l)&&e(l).dispatch({effects:F.reconfigure(m==="yaml"?dt():m==="markdown"?ct():[])})});var c=sa();Ze(c,m=>P(i,m),()=>e(i)),o(te,c),Ce()}function oa(te,t){we(t,!0);let a=ft(t,["$$slots","$$events","$$legacy"]);const i=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"}],["circle",{cx:"12",cy:"12",r:"3"}]];_t(te,mt({name:"eye"},()=>a,{get iconNode(){return i},children:(l,F)=>{var p=Ae(),y=T(p);ze(y,()=>t.children??ht),o(l,p)},$$slots:{default:!0}})),Ce()}var la=v('<span> <span class="md-viewer-budget-pct svelte-ebmw30"> </span></span>'),ia=v('<span class="md-viewer-budget svelte-ebmw30"> </span>'),da=v('<span class="md-viewer-save-meta svelte-ebmw30"> </span>'),ca=v('<span class="md-viewer-save-meta svelte-ebmw30"> </span>'),ua=v("<!> <span>Preview</span>",1),va=v("<!> <span>Edit</span>",1),ga=v('<div class="md-viewer-prose prose svelte-ebmw30"><!></div>'),ma=v('<div class="md-viewer svelte-ebmw30"><div class="md-viewer-toolbar svelte-ebmw30"><span class="md-viewer-filename svelte-ebmw30"><span class="md-viewer-path svelte-ebmw30">~/.agents/</span> </span> <!> <div class="md-viewer-actions svelte-ebmw30"><!> <!> <span> </span> <!> <!> <!></div></div> <!></div>');function ha(te,t){we(t,!0);let a=Re(t,"dirty",3,!1),i=Re(t,"saving",3,!1),l=Re(t,"saveDisabled",3,!1);function F(C){const D=C.match(/\sclass=(['"])(.*?)\1/i);if(!D)return`${C} class="md-boxed-heading"`;const k=D[1],M=D[2].split(/\s+/).filter(Boolean);return M.includes("md-boxed-heading")||M.push("md-boxed-heading"),C.replace(/\sclass=(['"])(.*?)\1/i,` class=${k}${M.join(" ")}${k}`)}function p(C){return C.replace(/<h([1-6])(\s[^>]*)?>([\s\S]*?)<\/h\1>/gi,(D,k,M="",E="")=>{const B=F(M);return`<h${k}${B}>${E}</h${k}>`})}let y=se(()=>t.content?.length??0),$=se(()=>t.charBudget?Math.round(e(y)/t.charBudget*100):0),c=ce(!1),m=se(()=>{if(!t.content)return"";const C=Ot.parse(t.content,{async:!1});return p(C)});var x=ma(),q=h(x),w=h(q),K=n(h(w),1,!0);g(w);var I=n(w,2);{var U=C=>{var D=la();let k;var M=h(D),E=n(M),B=h(E);g(E),g(D),ue((ve,oe)=>{k=He(D,1,"md-viewer-budget svelte-ebmw30",null,k,{"over-budget":e(y)>t.charBudget,"near-budget":e($)>=80&&e(y)<=t.charBudget}),ae(M,`${ve??""} / ${oe??""} chars `),ae(B,`(${e($)??""}%)`)},[()=>e(y).toLocaleString(),()=>t.charBudget.toLocaleString()]),o(C,D)},Z=C=>{var D=ia(),k=h(D);g(D),ue(M=>ae(k,`${M??""} chars`),[()=>e(y).toLocaleString()]),o(C,D)};H(I,C=>{t.charBudget?C(U):C(Z,!1)})}var G=n(I,2),L=h(G);{var ee=C=>{var D=da(),k=h(D,!0);g(D),ue(()=>ae(k,t.lastSavedText)),o(C,D)};H(L,C=>{t.lastSavedText&&C(ee)})}var s=n(L,2);{var S=C=>{var D=ca(),k=h(D,!0);g(D),ue(()=>ae(k,t.saveFeedback)),o(C,D)};H(s,C=>{t.saveFeedback&&C(S)})}var u=n(s,2);let f;var J=h(u,!0);g(u);var Y=n(u,2);{var me=C=>{Ye(C,{variant:"outline",size:"sm",class:`h-auto rounded-lg gap-1 font-[family-name:var(--font-mono)] text-[10px]
@@ -1 +1 @@
1
- import{p as n,F as r,I as u,J as c,K as b,M as v,b as f,d as x,r as m,D as p}from"./CFXirZvQ.js";import{e as g}from"./CiwhwMia.js";var h=p("<textarea></textarea>");function y(i,a){n(a,!0);let s=r(a,"ref",15,null),o=r(a,"value",15),d=r(a,"data-slot",3,"textarea"),l=m(a,["$$slots","$$events","$$legacy","ref","value","class","data-slot"]);var e=h();u(e),c(e,t=>({"data-slot":d(),class:t,...l}),[()=>g("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a.class)]),b(e,t=>s(t),()=>s()),v(e,o),f(i,e),x()}export{y as T};
1
+ import{p as n,F as r,I as u,J as c,K as b,M as v,b as f,d as x,r as m,D as p}from"./B7-KXgqZ.js";import{e as g}from"./BuAUI4Yr.js";var h=p("<textarea></textarea>");function y(i,a){n(a,!0);let s=r(a,"ref",15,null),o=r(a,"value",15),d=r(a,"data-slot",3,"textarea"),l=m(a,["$$slots","$$events","$$legacy","ref","value","class","data-slot"]);var e=h();u(e),c(e,t=>({"data-slot":d(),class:t,...l}),[()=>g("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a.class)]),b(e,t=>s(t),()=>s()),v(e,o),f(i,e),x()}export{y as T};