adam-agent-server 1.16.0 → 1.18.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/App-SIQUVFJY.js +14 -0
- package/dist/approval-handler-BWA7UIKN.js +1 -0
- package/dist/{artifacts-S2KD6W76.js → artifacts-MAYKOTA2.js} +1 -1
- package/dist/audit-diagnostics-K3LUWXTI.js +1 -0
- package/dist/audit-manager-6WL2V6JG.js +1 -0
- package/dist/bree-engine-KYD4GKQK.js +1 -0
- package/dist/channels-2TWTBE6Y.js +1 -0
- package/dist/channels-PWDSTYNR.js +1 -0
- package/dist/chat-tool-calls-WJDFQ54U.js +1 -0
- package/dist/chunk-2A2TXYT3.js +15 -0
- package/dist/chunk-2CE2WUUZ.js +1 -0
- package/dist/chunk-2JIQT2CI.js +1 -0
- package/dist/chunk-3MROEPGR.js +1 -0
- package/dist/chunk-3UFEOB6P.js +143 -0
- package/dist/{chunk-VKKDSXMR.js → chunk-47HJPIUA.js} +1 -1
- package/dist/{chunk-AQAHVNNG.js → chunk-4JHACUZY.js} +5 -5
- package/dist/{chunk-NUJSTEV4.js → chunk-4N5G7ND2.js} +1 -1
- package/dist/{chunk-TLMG5W3L.js → chunk-5G64P4KE.js} +1 -1
- package/dist/{chunk-245WE5AF.js → chunk-5M6IGE5G.js} +1 -1
- package/dist/chunk-5PELJRUQ.js +1 -0
- package/dist/{chunk-VVQ532U2.js → chunk-6WQFYV3N.js} +1 -1
- package/dist/{chunk-N2OLEUAQ.js → chunk-AUSR5JYV.js} +1 -1
- package/dist/{chunk-LVHLUAZW.js → chunk-BE653A45.js} +8 -7
- package/dist/{chunk-OXGWWSKT.js → chunk-BMCNQGUH.js} +1 -1
- package/dist/{chunk-BLCNUT53.js → chunk-EZLBMUQD.js} +1 -1
- package/dist/{chunk-NLTYJUQG.js → chunk-HL373H4P.js} +1 -1
- package/dist/{chunk-6Y2DN2UH.js → chunk-HRPMRWHD.js} +1 -1
- package/dist/{chunk-HJICGOD4.js → chunk-IEBAOZED.js} +2 -2
- package/dist/{chunk-SCUPWMI5.js → chunk-JROGEBP5.js} +1 -1
- package/dist/{chunk-LQVBWVLE.js → chunk-JYZTIE2J.js} +1 -1
- package/dist/{chunk-I44JKROJ.js → chunk-JZBXLN7M.js} +1 -1
- package/dist/{chunk-H4MMEULK.js → chunk-KS24764D.js} +2 -2
- package/dist/chunk-LCD5DVS6.js +1 -0
- package/dist/chunk-LKGYQJMS.js +6 -0
- package/dist/chunk-MTRLUW7Z.js +1 -0
- package/dist/{chunk-3UR2PN5N.js → chunk-NSUXJ2VA.js} +1 -1
- package/dist/{chunk-OGY42NUN.js → chunk-NUOTFUNF.js} +1 -1
- package/dist/chunk-NXGR3PRY.js +1 -0
- package/dist/{chunk-YNS5LQX5.js → chunk-O6L4UVLV.js} +1 -1
- package/dist/{chunk-FYULPPFR.js → chunk-OBD4245G.js} +1 -1
- package/dist/chunk-QTGAK62Z.js +14 -0
- package/dist/chunk-QYI44EP6.js +10 -0
- package/dist/{chunk-R24YRJRG.js → chunk-SGLZAIVL.js} +1 -1
- package/dist/chunk-SKHMWKJT.js +80 -0
- package/dist/chunk-T2Z2JDPY.js +2 -0
- package/dist/chunk-TA5PFK5C.js +5 -0
- package/dist/chunk-TWOJVEO7.js +32 -0
- package/dist/chunk-UCUELFCS.js +61 -0
- package/dist/{chunk-TJTH7LHX.js → chunk-V2MMQ3SH.js} +1 -1
- package/dist/{chunk-WBAPIPST.js → chunk-VO24C673.js} +1 -1
- package/dist/{chunk-HC34HJFF.js → chunk-VPMHZJS2.js} +1 -1
- package/dist/chunk-VWX2B6OM.js +6 -0
- package/dist/{chunk-QL2ZOLMC.js → chunk-WY5BOCQP.js} +180 -33
- package/dist/{chunk-TCBGUVVU.js → chunk-XAPJJAJQ.js} +1 -1
- package/dist/{chunk-HXDS4NWI.js → chunk-Z2APBKIT.js} +1 -1
- package/dist/chunk-ZJ3TS4FL.js +182 -0
- package/dist/{chunk-52FETPCI.js → chunk-ZQN6JZIJ.js} +1 -1
- package/dist/cli.js +2 -2
- package/dist/config-U624HJKI.js +1 -0
- package/dist/config-X7A6NA73.js +1 -0
- package/dist/db-XODNIJSJ.js +1 -0
- package/dist/{delivery-log-3O3OHKY4.js → delivery-log-QMQQHES4.js} +1 -1
- package/dist/engine-OQXDHA2R.js +1 -0
- package/dist/evolution-audit-XF4KZZMP.js +1 -0
- package/dist/execution-tools-BR4T4MMW.js +1 -0
- package/dist/{external-api-YMEFVZGG.js → external-api-435WH6V3.js} +1 -1
- package/dist/index.js +67 -47
- package/dist/learner-4CJ7BSCN.js +1 -0
- package/dist/logger-TEZSHFTZ.js +1 -0
- package/dist/{memories-2DY5G6ZN.js → memories-NJFKSOL5.js} +1 -1
- package/dist/memory-extractor-UQI75BBK.js +1 -0
- package/dist/memory-gc-NTZVUGJX.js +1 -0
- package/dist/memory-service-3RLVOF2C.js +1 -0
- package/dist/outbound-gateway-NJNSN2ZX.js +1 -0
- package/dist/presets-SUJRFRJC.js +1 -0
- package/dist/reflection-job-F4BZA2E3.js +23 -0
- package/dist/role-presets-VEYTGYA4.js +1 -0
- package/dist/role-workspace-AIVHPX5P.js +1 -0
- package/dist/roles-WDMUBWQP.js +1 -0
- package/dist/runtime-OMLPOMCA.js +1 -0
- package/dist/server-bus-6QGH2AVL.js +1 -0
- package/dist/session-manager-XFUKWEC7.js +1 -0
- package/dist/skill-registry-LARMNUT5.js +1 -0
- package/dist/target-resolution-RLNUCT6M.js +1 -0
- package/dist/{task-templates-4YPKFFKG.js → task-templates-BIVCRNXA.js} +1 -1
- package/dist/template-dispatch-6FPJQN6A.js +1 -0
- package/dist/trace-context-NVCN6UPC.js +1 -0
- package/package.json +2 -1
- package/web/dist/assets/{ArtifactDetail-9DJdEqCz.js → ArtifactDetail-DDTEAl2E.js} +2 -2
- package/web/dist/assets/{Artifacts-CQ6SAemH.js → Artifacts-BrhnC1Ef.js} +1 -1
- package/web/dist/assets/{Button-xVc-P0vm.js → Button-CRNb8sD3.js} +1 -1
- package/web/dist/assets/{Card-WUD1cwG6.js → Card-Cwvv0An8.js} +1 -1
- package/web/dist/assets/{ChannelDetail-B21nBQwi.js → ChannelDetail-D0FBZoAX.js} +1 -1
- package/web/dist/assets/{Channels-CAeGE1r7.js → Channels-Cztxvsa2.js} +2 -2
- package/web/dist/assets/{Chat-KpFWchPp.js → Chat-Ce72TtUi.js} +2 -2
- package/web/dist/assets/Cost-K8-4xqBe.js +4 -0
- package/web/dist/assets/{Dashboard-DkRwHNmr.js → Dashboard-BXqFb_Vr.js} +1 -1
- package/web/dist/assets/{EmptyState-BLB33cKG.js → EmptyState-BvQA1o5K.js} +1 -1
- package/web/dist/assets/{EnvVarEditor-BchUNrmz.js → EnvVarEditor-FiiJazzp.js} +1 -1
- package/web/dist/assets/{EventDefDetail-DnBwWWfT.js → EventDefDetail-C3S1G0K8.js} +1 -1
- package/web/dist/assets/{Events-ByIzPIs2.js → Events-BKxqZ9j6.js} +1 -1
- package/web/dist/assets/{Evolution-Vh9RKdma.js → Evolution-DFcSm6Rw.js} +1 -1
- package/web/dist/assets/{ExtensionDetail-0CtJh5rF.js → ExtensionDetail-C8aPpyLv.js} +1 -1
- package/web/dist/assets/Extensions-MLZk05j0.js +1 -0
- package/web/dist/assets/{FeatureRequests-XhQbGg_q.js → FeatureRequests-D_4XaQ7F.js} +1 -1
- package/web/dist/assets/{GoalDetail-DIOxf7ES.js → GoalDetail-DVU7c0aR.js} +1 -1
- package/web/dist/assets/{Goals-CZnHu9qC.js → Goals-D3h4WMjU.js} +1 -1
- package/web/dist/assets/LineChart-Ck1vfYHs.js +33 -0
- package/web/dist/assets/Logs-D5MQv6Yw.js +1 -0
- package/web/dist/assets/{Memories-D-EAODUg.js → Memories-Dls71I2i.js} +1 -1
- package/web/dist/assets/{Mistakes-wW78K3cP.js → Mistakes-BZcTg0vP.js} +1 -1
- package/web/dist/assets/{NotFound-BsxIP-Xm.js → NotFound-t66RIvqO.js} +1 -1
- package/web/dist/assets/{PageHeader-D8pqg_wk.js → PageHeader-acLQTYct.js} +1 -1
- package/web/dist/assets/Plugins-CwCHGzI6.js +1 -0
- package/web/dist/assets/RoleDetail-B2M6ALSl.js +3 -0
- package/web/dist/assets/Roles-FEHqm_Jf.js +1 -0
- package/web/dist/assets/{SectionHeader-DZo4QVWr.js → SectionHeader-NZWZgoOs.js} +1 -1
- package/web/dist/assets/Settings-rdVQMfqX.js +1 -0
- package/web/dist/assets/{Strategies-Bg4qlLei.js → Strategies-CwJ9JQ-X.js} +1 -1
- package/web/dist/assets/{Switch-WWPXnSOG.js → Switch-1JjR4Imr.js} +1 -1
- package/web/dist/assets/{Table-XjSmrOyn.js → Table-CvSmzzkm.js} +1 -1
- package/web/dist/assets/{Tabs-CSbcG_5T.js → Tabs-DWk9HyNd.js} +1 -1
- package/web/dist/assets/TaskDetail-h12WxjfG.js +2 -0
- package/web/dist/assets/Work-CfzFRSZX.js +1 -0
- package/web/dist/assets/api-BP4ZP9kk.js +1 -0
- package/web/dist/assets/{es2015-BgPT8VkR.js → es2015-BkFSNOYE.js} +1 -1
- package/web/dist/assets/index-CXEJd-0s.js +12 -0
- package/web/dist/assets/index-CarTGiGO.css +2 -0
- package/web/dist/assets/{useIsMobileLayout-DF2fEEM9.js → useIsMobileLayout-BogOiFTv.js} +1 -1
- package/web/dist/assets/{usePluginsWithUsage-CjU8Lkdn.js → usePluginsWithUsage-4iLJAPjH.js} +1 -1
- package/web/dist/assets/{vendor-icons-H7p0EuQJ.js → vendor-icons-Bc_e_XXa.js} +1 -1
- package/web/dist/assets/{vendor-react-C1yKjxEP.js → vendor-react-bQ_cvNuA.js} +1 -1
- package/web/dist/assets/{vendor-state-D0TNAbOY.js → vendor-state-BMVR_B0I.js} +1 -1
- package/web/dist/index.html +8 -8
- package/dist/App-Z2GJAMX3.js +0 -14
- package/dist/approval-handler-6NPN24UN.js +0 -1
- package/dist/audit-diagnostics-2MDM3IQT.js +0 -1
- package/dist/audit-manager-QG7CMBV2.js +0 -1
- package/dist/bree-engine-3QSLZF3W.js +0 -1
- package/dist/channels-S4AAOOTN.js +0 -1
- package/dist/channels-TYXSSI7D.js +0 -1
- package/dist/chat-tool-calls-2C7O4B2X.js +0 -1
- package/dist/chunk-32LOJEHE.js +0 -32
- package/dist/chunk-3UZIEE2D.js +0 -6
- package/dist/chunk-4234WJJD.js +0 -178
- package/dist/chunk-AG5SADAI.js +0 -5
- package/dist/chunk-ASPPM7TQ.js +0 -1
- package/dist/chunk-C2XFPUFV.js +0 -1
- package/dist/chunk-DRO3DG7X.js +0 -1
- package/dist/chunk-EWYXVBOG.js +0 -61
- package/dist/chunk-FCV2DPZQ.js +0 -1
- package/dist/chunk-FHESRUJY.js +0 -9
- package/dist/chunk-K2TZW4DU.js +0 -132
- package/dist/chunk-K4IE6DPX.js +0 -6
- package/dist/chunk-MNSZE3NV.js +0 -1
- package/dist/chunk-MTQI6B7T.js +0 -15
- package/dist/chunk-P5Q2UINT.js +0 -1
- package/dist/chunk-WVHN54MA.js +0 -14
- package/dist/chunk-XYZVMTNN.js +0 -1
- package/dist/chunk-Z6LHGA27.js +0 -1
- package/dist/config-HDAAV5FV.js +0 -1
- package/dist/config-VHWLMFIN.js +0 -1
- package/dist/db-HFBXO2O5.js +0 -1
- package/dist/dist-HCSYRPJU.js +0 -1
- package/dist/engine-J43ECCH7.js +0 -1
- package/dist/evolution-audit-BSGPFGFK.js +0 -1
- package/dist/execution-tools-HHUPWLCF.js +0 -1
- package/dist/learner-TQQZKRSB.js +0 -1
- package/dist/logger-PAMNFWI3.js +0 -1
- package/dist/memory-extractor-TUOOFST2.js +0 -1
- package/dist/memory-gc-MRO53MEY.js +0 -1
- package/dist/memory-service-23WVAW7T.js +0 -1
- package/dist/onnxruntime_binding-2BPLI7ZQ.node +0 -0
- package/dist/onnxruntime_binding-5J67DTMJ.node +0 -0
- package/dist/onnxruntime_binding-7ZZLEQ2F.node +0 -0
- package/dist/onnxruntime_binding-KDCXAPN5.node +0 -0
- package/dist/onnxruntime_binding-R73P2IQW.node +0 -0
- package/dist/outbound-gateway-VXODXSQR.js +0 -1
- package/dist/presets-KJV6SNNB.js +0 -1
- package/dist/reflection-job-EFFW3WOR.js +0 -23
- package/dist/role-presets-PHHL3OEN.js +0 -1
- package/dist/role-workspace-USY47ZPQ.js +0 -1
- package/dist/roles-3JXNHL7K.js +0 -1
- package/dist/runtime-TWLGJSL6.js +0 -1
- package/dist/server-bus-GEGVMSCA.js +0 -1
- package/dist/session-manager-PI3JEINK.js +0 -1
- package/dist/skill-registry-ROGU2WED.js +0 -1
- package/dist/target-resolution-PSSBM4LX.js +0 -1
- package/dist/template-dispatch-46TN534D.js +0 -1
- package/dist/trace-context-UR7DI5ME.js +0 -1
- package/web/dist/assets/Extensions--O1ulwlC.js +0 -1
- package/web/dist/assets/Logs-DdeG3GiY.js +0 -1
- package/web/dist/assets/Plugins-DDUdX51_.js +0 -1
- package/web/dist/assets/RoleDetail-CU3G9j_q.js +0 -35
- package/web/dist/assets/Roles-BCoSzDBg.js +0 -1
- package/web/dist/assets/Settings-K3usfV-2.js +0 -1
- package/web/dist/assets/TaskDetail-C5roukcV.js +0 -2
- package/web/dist/assets/Work-DGTWSgtc.js +0 -1
- package/web/dist/assets/api-BkdixMz9.js +0 -1
- package/web/dist/assets/index-KNUbHDLy.css +0 -2
- package/web/dist/assets/index-iD-HOtIu.js +0 -12
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{d as B,e as W,h as Y}from"./chunk-
|
|
1
|
+
import{d as B,e as W,h as Y}from"./chunk-VO24C673.js";import{c as g,h as K}from"./chunk-EZLBMUQD.js";import{b as H}from"./chunk-5PELJRUQ.js";import{constants as te,cpSync as se,copyFileSync as y,existsSync as I,lstatSync as ie,mkdirSync as k,readdirSync as Ee,realpathSync as S,rmSync as $,statSync as C,unlinkSync as j}from"fs";import{dirname as q,extname as ne,isAbsolute as V,join as L,sep as R}from"path";function U(){return process.env.ADAM_TEST_DIR||B}function oe(){return L(U(),["work","flows"].join(""))}function F(){return L(U(),"template-executions")}function z(e){return L(F(),e,"artifacts")}function Te(e){let _=z(e);return k(_,{recursive:!0}),_}function Xe(e,_,N){if(!V(e))throw new Error(`path must be absolute: ${e}`);let c=S(_),p=c.endsWith(R)?c:c+R;if(N){let l=S(e),u=l.endsWith(R)?l:l+R;if(u===p||u.startsWith(p))return;throw new Error(`path escapes workspace: ${e} (resolved=${l}, root=${c})`)}if(I(e))throw ie(e).isSymbolicLink()?new Error(`destination already exists and is a symlink: ${e}`):new Error(`destination already exists: ${e}`);let m=S(q(e)),O=m.endsWith(R)?m:m+R;if(!(O===p||O.startsWith(p)))throw new Error(`destination escapes workspace: ${e} (parent resolved=${m}, root=${c})`)}function Se(e){let _=Te(e.executionId),N=L(_,`${e.artifactId}.bin`);return y(e.sourcePath,N),{blobPath:N,sizeBytes:C(N).size}}function ge(e){j(e)}function Ce(e){if(!I(e.blobPath))throw new Error(`blob file missing on disk: ${e.blobPath}`);return y(e.blobPath,e.destPath,te.COPYFILE_EXCL),{sizeBytes:C(e.destPath).size}}function J(e){try{j(e)}catch(_){X.warn({err:_,blobPath:e},"Failed to remove TemplateExecution artifact blob")}}function Ue(e){try{$(L(F(),e),{recursive:!0,force:!0})}catch(_){X.warn({err:_,executionId:e},"Failed to remove TemplateExecution artifacts directory")}}function De(e,_,N){let c=z(e);if(!I(c))return 0;let p=0;for(let m of Ee(c)){if(ne(m)!==".bin")continue;let O=m.slice(0,-4);if(_.has(O))continue;let l=L(c,m),u=C(l);Date.now()-u.mtimeMs<N||(J(l),p++)}return p}async function he(e,_){let{deleteArtifactsByExecutionAndStep:N}=await import("./artifacts-MAYKOTA2.js"),c=N(e,_),p=0;for(let m of c)m.blobPath&&I(m.blobPath)&&(J(m.blobPath),p++);return X.debug({executionId:e,stepId:_,deletedRows:c.length,deletedFiles:p},"cleanSlatePriorAttempt: done"),{deletedRows:c.length,deletedFiles:p}}function _e(e,_){let N=U();if(e==="template"){if(!_)throw new Error("template kind requires executionId");return L(N,"template-executions",_,"artifacts")}return L(N,"artifacts",e)}function xe(e){let _=_e(e.kind,e.executionId);k(_,{recursive:!0});let N=L(_,`${e.artifactId}.bin`);return y(e.sourcePath,N),{blobPath:N,sizeBytes:C(N).size}}function ye(e){try{if(!V(e))return!1;let _=S(e),N=S(U()),c=N.endsWith(R)?N:N+R,p=_.endsWith(R)?_:_+R;return p===c||p.startsWith(c)}catch{return!1}}function Q(e){let _=oe();if(!I(_)||!e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='template_execution_artifacts'").get())return;let c=e.prepare(`
|
|
2
2
|
SELECT id, execution_id, blob_path
|
|
3
3
|
FROM template_execution_artifacts
|
|
4
4
|
WHERE blob_path IS NOT NULL
|
|
5
|
-
`).all(),
|
|
5
|
+
`).all(),p=_.endsWith(R)?_:_+R,m=F(),O=new Set;for(let l of c){if(!l.blob_path.startsWith(p))continue;let u=L(_,l.execution_id),v=L(m,l.execution_id),x=L(m,l.blob_path.slice(p.length));try{if(I(u)&&!I(v)&&(k(q(v),{recursive:!0}),se(u,v,{recursive:!0,dereference:!1,force:!1})),!I(x)){X.warn({artifactId:l.id,blobPath:l.blob_path},"TemplateExecution artifact migration skipped missing copied blob");continue}e.prepare("UPDATE template_execution_artifacts SET blob_path = ? WHERE id = ?").run(x,l.id),O.add(l.execution_id)}catch(M){X.warn({err:M,artifactId:l.id,executionId:l.execution_id},"TemplateExecution artifact migration failed")}}for(let l of O){let u=L(m,l);if(I(u))try{$(L(_,l),{recursive:!0,force:!0})}catch(v){X.warn({err:v,executionId:l},"Failed to remove migrated legacy artifact directory")}}}var X,Z=H(()=>{"use strict";Y();K();X=g("watchdog")});import ae from"better-sqlite3";import{existsSync as ce,mkdirSync as le}from"fs";import{dirname as Ne}from"path";function me(e){e.exec(`
|
|
6
6
|
CREATE TABLE IF NOT EXISTS server_state (
|
|
7
7
|
id INTEGER PRIMARY KEY CHECK(id = 1),
|
|
8
8
|
sdk_session_id TEXT,
|
|
@@ -12,7 +12,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
12
12
|
created_at INTEGER NOT NULL DEFAULT (unixepoch('now') * 1000),
|
|
13
13
|
last_active_at INTEGER
|
|
14
14
|
);
|
|
15
|
-
`),e.prepare("PRAGMA table_info(server_state)").all().some(s=>s.name==="schema_version")||e.exec("ALTER TABLE server_state ADD COLUMN schema_version INTEGER DEFAULT 0");let
|
|
15
|
+
`),e.prepare("PRAGMA table_info(server_state)").all().some(s=>s.name==="schema_version")||e.exec("ALTER TABLE server_state ADD COLUMN schema_version INTEGER DEFAULT 0");let c=e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0;if(c<2){let s=["delivery_log","delivery_rules","manager_decisions","skill_scores","approval_rules","task_plans","calibration_history","task_plugins","marketplaces","plugins","trials","strategies","metric_tree","goals","chat_messages","chat_sessions","channels","evolution_audit","step_logs","task_templates","memories","tasks","config","memories_fts","memories_fts_config","memories_fts_data","memories_fts_docsize","memories_fts_idx"];for(let r of s)try{e.exec(`DROP TABLE IF EXISTS ${r}`)}catch{}for(let r of["memories_fts_insert","memories_fts_delete","memories_fts_update"])try{e.exec(`DROP TRIGGER IF EXISTS ${r}`)}catch{}}if(e.exec(`
|
|
16
16
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
17
17
|
id TEXT PRIMARY KEY,
|
|
18
18
|
parent_id TEXT,
|
|
@@ -246,7 +246,10 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
246
246
|
task_id TEXT,
|
|
247
247
|
channel_message_id TEXT,
|
|
248
248
|
metadata TEXT,
|
|
249
|
-
created_at INTEGER NOT NULL
|
|
249
|
+
created_at INTEGER NOT NULL,
|
|
250
|
+
cost_usd REAL,
|
|
251
|
+
token_usage TEXT,
|
|
252
|
+
model TEXT
|
|
250
253
|
);
|
|
251
254
|
|
|
252
255
|
CREATE INDEX IF NOT EXISTS idx_messages_session ON chat_messages(session_id, created_at);
|
|
@@ -358,6 +361,32 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
358
361
|
CREATE INDEX IF NOT EXISTS idx_delivery_log_status ON delivery_log(status);
|
|
359
362
|
CREATE INDEX IF NOT EXISTS idx_delivery_log_expires ON delivery_log(expires_at);
|
|
360
363
|
CREATE INDEX IF NOT EXISTS idx_delivery_log_rule_id ON delivery_log(rule_id);
|
|
364
|
+
`),e.exec(`
|
|
365
|
+
CREATE TABLE IF NOT EXISTS llm_costs (
|
|
366
|
+
id TEXT PRIMARY KEY,
|
|
367
|
+
call_id TEXT NOT NULL,
|
|
368
|
+
source TEXT NOT NULL,
|
|
369
|
+
model TEXT NOT NULL,
|
|
370
|
+
role_id TEXT,
|
|
371
|
+
task_id TEXT,
|
|
372
|
+
session_id TEXT,
|
|
373
|
+
message_id TEXT,
|
|
374
|
+
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
375
|
+
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
376
|
+
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
377
|
+
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
|
378
|
+
cost_usd REAL NOT NULL DEFAULT 0,
|
|
379
|
+
priced INTEGER NOT NULL DEFAULT 0,
|
|
380
|
+
estimated INTEGER NOT NULL DEFAULT 0,
|
|
381
|
+
sdk_total_cost_usd REAL,
|
|
382
|
+
num_turns INTEGER,
|
|
383
|
+
created_at INTEGER NOT NULL
|
|
384
|
+
);
|
|
385
|
+
|
|
386
|
+
CREATE INDEX IF NOT EXISTS idx_llm_costs_created ON llm_costs(created_at);
|
|
387
|
+
CREATE INDEX IF NOT EXISTS idx_llm_costs_source ON llm_costs(source);
|
|
388
|
+
CREATE INDEX IF NOT EXISTS idx_llm_costs_model ON llm_costs(model);
|
|
389
|
+
CREATE INDEX IF NOT EXISTS idx_llm_costs_role ON llm_costs(role_id);
|
|
361
390
|
`),e.exec(`
|
|
362
391
|
CREATE TABLE IF NOT EXISTS calibration_history (
|
|
363
392
|
id TEXT PRIMARY KEY,
|
|
@@ -373,7 +402,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
373
402
|
|
|
374
403
|
CREATE INDEX IF NOT EXISTS idx_calibration_goal ON calibration_history(goal_id);
|
|
375
404
|
CREATE INDEX IF NOT EXISTS idx_calibration_computed ON calibration_history(computed_at);
|
|
376
|
-
`),
|
|
405
|
+
`),c<2&&e.exec("UPDATE server_state SET schema_version = 2 WHERE id = 1"),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<4&&(e.exec(`
|
|
377
406
|
CREATE TABLE IF NOT EXISTS roles (
|
|
378
407
|
id TEXT PRIMARY KEY,
|
|
379
408
|
name TEXT NOT NULL UNIQUE,
|
|
@@ -410,7 +439,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
410
439
|
bound_at INTEGER NOT NULL,
|
|
411
440
|
PRIMARY KEY (role_id, plugin_id)
|
|
412
441
|
);
|
|
413
|
-
`),e.prepare("PRAGMA table_info(tasks)").all().some(
|
|
442
|
+
`),e.prepare("PRAGMA table_info(tasks)").all().some(r=>r.name==="role_id")||(e.exec("ALTER TABLE tasks ADD COLUMN role_id TEXT"),e.exec("CREATE INDEX IF NOT EXISTS idx_tasks_role_id ON tasks(role_id)")),e.exec("UPDATE server_state SET schema_version = 4 WHERE id = 1")),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<5&&(e.exec(`
|
|
414
443
|
DROP TABLE IF EXISTS memories;
|
|
415
444
|
CREATE TABLE memories (
|
|
416
445
|
id TEXT PRIMARY KEY,
|
|
@@ -471,7 +500,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
471
500
|
source TEXT DEFAULT 'reflection'
|
|
472
501
|
);
|
|
473
502
|
CREATE INDEX IF NOT EXISTS idx_evolution_audit_role_id ON evolution_audit(role_id);
|
|
474
|
-
`),e.exec("UPDATE server_state SET schema_version = 5 WHERE id = 1")),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<6&&(e.prepare("PRAGMA table_info(roles)").all().some(
|
|
503
|
+
`),e.exec("UPDATE server_state SET schema_version = 5 WHERE id = 1")),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<6&&(e.prepare("PRAGMA table_info(roles)").all().some(r=>r.name==="importance_trigger_curr")||e.exec("ALTER TABLE roles ADD COLUMN importance_trigger_curr INTEGER DEFAULT 150"),e.exec("UPDATE server_state SET schema_version = 6 WHERE id = 1")),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<7&&(e.prepare("PRAGMA table_info(tasks)").all().some(r=>r.name==="source_session_id")||e.exec("ALTER TABLE tasks ADD COLUMN source_session_id TEXT"),e.exec("UPDATE server_state SET schema_version = 7 WHERE id = 1")),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<8){let s=e.prepare("PRAGMA table_info(goals)").all();s.some(t=>t.name==="source_session_id")||e.exec("ALTER TABLE goals ADD COLUMN source_session_id TEXT"),s.some(t=>t.name==="notify_targets")||e.exec("ALTER TABLE goals ADD COLUMN notify_targets TEXT");let r=e.prepare("PRAGMA table_info(task_templates)").all();r.some(t=>t.name==="source_session_id")||e.exec("ALTER TABLE task_templates ADD COLUMN source_session_id TEXT"),r.some(t=>t.name==="notify_targets")||e.exec("ALTER TABLE task_templates ADD COLUMN notify_targets TEXT"),r.some(t=>t.name==="goal_ids")||e.exec("ALTER TABLE task_templates ADD COLUMN goal_ids TEXT"),e.exec("UPDATE goals SET status = 'active' WHERE status IN ('pending','planning','executing','evaluating','replanning')"),e.exec("UPDATE server_state SET schema_version = 8 WHERE id = 1")}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<10){e.exec("PRAGMA foreign_keys = OFF"),e.exec("DROP TABLE IF EXISTS tasks_new"),e.exec("DROP TABLE IF EXISTS chat_sessions_new"),e.exec("DROP TABLE IF EXISTS task_plans_new"),e.exec("DROP TABLE IF EXISTS task_plugins_new"),e.exec("DROP TABLE IF EXISTS approval_rules_new"),e.exec("DROP TABLE IF EXISTS manager_decisions_new"),e.exec("DROP TABLE IF EXISTS channels_new");let s=e.prepare("PRAGMA table_info(roles)").all();s.some(o=>o.name==="allowed_tools")||e.exec("ALTER TABLE roles ADD COLUMN allowed_tools TEXT"),s.some(o=>o.name==="disallowed_tools")||e.exec("ALTER TABLE roles ADD COLUMN disallowed_tools TEXT"),s.some(o=>o.name==="evaluation_criteria")||e.exec("ALTER TABLE roles ADD COLUMN evaluation_criteria TEXT"),s.some(o=>o.name==="execution_mode")||e.exec("ALTER TABLE roles ADD COLUMN execution_mode TEXT DEFAULT 'isolated'"),s.some(o=>o.name==="model")||e.exec("ALTER TABLE roles ADD COLUMN model TEXT"),s.some(o=>o.name==="max_budget_usd")||e.exec("ALTER TABLE roles ADD COLUMN max_budget_usd REAL"),s.some(o=>o.name==="approval_required")||e.exec("ALTER TABLE roles ADD COLUMN approval_required TEXT"),s.some(o=>o.name==="source")||e.exec("ALTER TABLE roles ADD COLUMN source TEXT DEFAULT 'system'"),e.exec("DROP TABLE IF EXISTS agents"),e.exec("DROP TABLE IF EXISTS role_skills"),e.exec(`
|
|
475
504
|
CREATE TABLE IF NOT EXISTS tasks_new (
|
|
476
505
|
id TEXT PRIMARY KEY,
|
|
477
506
|
parent_id TEXT,
|
|
@@ -496,7 +525,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
496
525
|
num_turns INTEGER,
|
|
497
526
|
total_duration_ms INTEGER
|
|
498
527
|
);
|
|
499
|
-
`);let
|
|
528
|
+
`);let r=new Set(["id","status","prompt","config","created_at"]),t=["id","parent_id","status","prompt","config","result","error","sdk_session_id","template_id","original_prompt","role_id","source_session_id","notify_targets","deliver_to","report_to","created_at","started_at","completed_at","cost_usd","token_usage","num_turns","total_duration_ms"],i=new Set(e.prepare("PRAGMA table_info(tasks)").all().map(o=>o.name)),E=t.map(o=>i.has(o)?r.has(o)?`COALESCE(${o}, '')`:o:"NULL").join(",");e.exec(`INSERT INTO tasks_new SELECT ${E} FROM tasks`),e.exec("DROP TABLE tasks"),e.exec("ALTER TABLE tasks_new RENAME TO tasks"),e.exec("CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status)"),e.exec("CREATE INDEX IF NOT EXISTS idx_tasks_created_at ON tasks(created_at)"),e.exec("CREATE INDEX IF NOT EXISTS idx_tasks_template_id ON tasks(template_id)"),e.exec("CREATE INDEX IF NOT EXISTS idx_tasks_role_id ON tasks(role_id)"),e.exec(`
|
|
500
529
|
CREATE TABLE IF NOT EXISTS chat_sessions_new (
|
|
501
530
|
id TEXT PRIMARY KEY,
|
|
502
531
|
status TEXT NOT NULL DEFAULT 'active' CHECK(status IN ('active', 'archived')),
|
|
@@ -572,7 +601,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
572
601
|
bound_at INTEGER NOT NULL,
|
|
573
602
|
PRIMARY KEY (role_id, plugin_id)
|
|
574
603
|
);
|
|
575
|
-
`),e.exec("UPDATE server_state SET schema_version = 10 WHERE id = 1"),e.exec("PRAGMA foreign_keys = ON")}if(
|
|
604
|
+
`),e.exec("UPDATE server_state SET schema_version = 10 WHERE id = 1"),e.exec("PRAGMA foreign_keys = ON")}if(c<11){try{e.exec("ALTER TABLE task_templates RENAME COLUMN skill_preference TO role_preference")}catch(s){let r=e.prepare("PRAGMA table_info(task_templates)").all(),t=r.some(E=>E.name==="role_preference"),i=r.some(E=>E.name==="skill_preference");if(!t&&i)throw s}e.exec("UPDATE server_state SET schema_version = 11 WHERE id = 1")}if(c<12&&(e.prepare("PRAGMA table_info(server_state)").all().some(r=>r.name==="tools_fingerprint")||e.exec("ALTER TABLE server_state ADD COLUMN tools_fingerprint TEXT"),e.exec("UPDATE server_state SET schema_version = 12 WHERE id = 1")),c<13&&(e.prepare("PRAGMA table_info(roles)").all().some(r=>r.name==="additional_directories")||e.exec("ALTER TABLE roles ADD COLUMN additional_directories TEXT"),e.exec("UPDATE server_state SET schema_version = 13 WHERE id = 1")),c<14){let s=e.prepare("PRAGMA table_info(roles)").all();s.some(i=>i.name==="allowed_channels")||e.exec("ALTER TABLE roles ADD COLUMN allowed_channels TEXT"),s.some(i=>i.name==="mcp_servers")||e.exec("ALTER TABLE roles ADD COLUMN mcp_servers TEXT");let r=e.prepare("PRAGMA table_info(tasks)").all();r.some(i=>i.name==="deliver_to")||e.exec("ALTER TABLE tasks ADD COLUMN deliver_to TEXT"),r.some(i=>i.name==="report_to")||e.exec("ALTER TABLE tasks ADD COLUMN report_to TEXT"),e.prepare("PRAGMA table_info(goals)").all().some(i=>i.name==="deliver_to")||e.exec("ALTER TABLE goals ADD COLUMN deliver_to TEXT"),e.exec("UPDATE server_state SET schema_version = 14 WHERE id = 1")}if(c<15&&(e.prepare("PRAGMA table_info(roles)").all().some(r=>r.name==="inherit_user_settings")||e.exec("ALTER TABLE roles ADD COLUMN inherit_user_settings INTEGER DEFAULT 0"),e.exec("UPDATE server_state SET schema_version = 15 WHERE id = 1")),c<16&&(e.prepare("PRAGMA table_info(task_templates)").all().some(r=>r.name==="deliver_to")||e.exec("ALTER TABLE task_templates ADD COLUMN deliver_to TEXT"),e.exec("UPDATE server_state SET schema_version = 16 WHERE id = 1")),c<17){e.exec("PRAGMA foreign_keys = OFF"),e.exec("DROP TABLE IF EXISTS plugins"),e.exec("DROP TABLE IF EXISTS role_plugins"),e.exec("DROP TABLE IF EXISTS marketplaces"),e.exec("DROP INDEX IF EXISTS idx_plugins_source"),e.exec("DROP INDEX IF EXISTS idx_plugins_enabled");try{let t=e.prepare("SELECT id, additional_directories FROM roles WHERE additional_directories IS NOT NULL").all();for(let i of t)try{let E=JSON.parse(i.additional_directories);if(E.length>0&&typeof E[0]=="object"&&E[0]!==null&&"path"in E[0])continue;let n=E.map(T=>typeof T=="string"?{path:T}:T);e.prepare("UPDATE roles SET additional_directories = ? WHERE id = ?").run(JSON.stringify(n),i.id)}catch{}}catch{}let s=e.prepare("PRAGMA table_info(tasks)").all();s.some(t=>t.name==="deliver_to")||e.exec("ALTER TABLE tasks ADD COLUMN deliver_to TEXT"),s.some(t=>t.name==="report_to")||e.exec("ALTER TABLE tasks ADD COLUMN report_to TEXT");let r=e.prepare("PRAGMA table_info(strategies)").all();r.some(t=>t.name==="role")&&!r.some(t=>t.name==="role_id")&&(e.exec("ALTER TABLE strategies RENAME COLUMN role TO role_id"),e.exec("DROP INDEX IF EXISTS idx_strategies_role_task_type"),e.exec("DROP INDEX IF EXISTS idx_strategies_role"),e.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_strategies_role_task_type ON strategies(role_id, task_type, name)"),e.exec("CREATE INDEX IF NOT EXISTS idx_strategies_role ON strategies(role_id)")),e.exec("UPDATE server_state SET schema_version = 17 WHERE id = 1"),e.exec("PRAGMA foreign_keys = ON")}if(c<18){let s=e.prepare("PRAGMA table_info(tasks)").all();s.some(t=>t.name==="deliver_to")||e.exec("ALTER TABLE tasks ADD COLUMN deliver_to TEXT"),s.some(t=>t.name==="report_to")||e.exec("ALTER TABLE tasks ADD COLUMN report_to TEXT");let r=e.prepare("PRAGMA table_info(strategies)").all();r.some(t=>t.name==="role")&&!r.some(t=>t.name==="role_id")&&(e.exec("ALTER TABLE strategies RENAME COLUMN role TO role_id"),e.exec("DROP INDEX IF EXISTS idx_strategies_role_task_type"),e.exec("DROP INDEX IF EXISTS idx_strategies_role"),e.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_strategies_role_task_type ON strategies(role_id, task_type, name)"),e.exec("CREATE INDEX IF NOT EXISTS idx_strategies_role ON strategies(role_id)")),e.exec("UPDATE server_state SET schema_version = 18 WHERE id = 1")}e.prepare("PRAGMA table_info(delivery_log)").all().some(s=>s.name==="source")||(e.exec(`
|
|
576
605
|
CREATE TABLE IF NOT EXISTS delivery_log_new (
|
|
577
606
|
id TEXT PRIMARY KEY,
|
|
578
607
|
rule_id TEXT REFERENCES delivery_rules(id),
|
|
@@ -589,7 +618,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
589
618
|
message_type TEXT
|
|
590
619
|
)
|
|
591
620
|
`),e.exec(`INSERT INTO delivery_log_new (id, rule_id, task_id, status, target, content, attempts, error, created_at, delivered_at, expires_at)
|
|
592
|
-
SELECT id, rule_id, task_id, status, target, content, attempts, error, created_at, delivered_at, expires_at FROM delivery_log`),e.exec("DROP TABLE delivery_log"),e.exec("ALTER TABLE delivery_log_new RENAME TO delivery_log"),e.exec("CREATE INDEX IF NOT EXISTS idx_delivery_log_rule ON delivery_log(rule_id)"),e.exec("CREATE INDEX IF NOT EXISTS idx_delivery_log_task ON delivery_log(task_id)")),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<20&&(e.prepare("PRAGMA table_info(goals)").all().some(
|
|
621
|
+
SELECT id, rule_id, task_id, status, target, content, attempts, error, created_at, delivered_at, expires_at FROM delivery_log`),e.exec("DROP TABLE delivery_log"),e.exec("ALTER TABLE delivery_log_new RENAME TO delivery_log"),e.exec("CREATE INDEX IF NOT EXISTS idx_delivery_log_rule ON delivery_log(rule_id)"),e.exec("CREATE INDEX IF NOT EXISTS idx_delivery_log_task ON delivery_log(task_id)")),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<20&&(e.prepare("PRAGMA table_info(goals)").all().some(t=>t.name==="report_to")||e.exec("ALTER TABLE goals ADD COLUMN report_to TEXT"),e.prepare("PRAGMA table_info(task_templates)").all().some(t=>t.name==="report_to")||e.exec("ALTER TABLE task_templates ADD COLUMN report_to TEXT"),e.exec("UPDATE goals SET report_to = notify_targets WHERE notify_targets IS NOT NULL"),e.exec("UPDATE task_templates SET report_to = notify_targets WHERE notify_targets IS NOT NULL"),e.exec("UPDATE server_state SET schema_version = 20 WHERE id = 1")),e.prepare("PRAGMA table_info(config)").all().some(s=>s.name==="updated_at")||(e.exec("ALTER TABLE config ADD COLUMN updated_at INTEGER NOT NULL DEFAULT 0"),e.exec("UPDATE server_state SET schema_version = 21 WHERE id = 1"));let P=e.prepare("PRAGMA table_info(memories)").all();P.some(s=>s.name==="tier")||(e.exec("ALTER TABLE memories ADD COLUMN tier TEXT NOT NULL DEFAULT 'episodic'"),e.exec("CREATE INDEX IF NOT EXISTS idx_memories_tier ON memories(tier)")),P.some(s=>s.name==="superseded_by")||(e.exec("ALTER TABLE memories ADD COLUMN superseded_by TEXT"),e.exec("CREATE INDEX IF NOT EXISTS idx_memories_superseded ON memories(superseded_by)"));let G=e.prepare("PRAGMA table_info(memories)").all();G.some(s=>s.name==="tier")&&G.some(s=>s.name==="superseded_by")&&(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<22&&e.exec("UPDATE server_state SET schema_version = 22 WHERE id = 1");{let s=e.prepare("PRAGMA table_info(roles)").all();s.some(t=>t.name==="permission_mode")||e.exec("ALTER TABLE roles ADD COLUMN permission_mode TEXT DEFAULT NULL"),s.some(t=>t.name==="allowed_bash_patterns")||e.exec("ALTER TABLE roles ADD COLUMN allowed_bash_patterns TEXT DEFAULT NULL"),s.some(t=>t.name==="denied_bash_patterns")||e.exec("ALTER TABLE roles ADD COLUMN denied_bash_patterns TEXT DEFAULT NULL"),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<23&&e.exec("UPDATE server_state SET schema_version = 23 WHERE id = 1")}if(e.prepare("PRAGMA table_info(roles)").all().some(t=>t.name==="env_vars")||e.prepare("ALTER TABLE roles ADD COLUMN env_vars TEXT DEFAULT NULL").run(),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<24&&e.prepare("UPDATE server_state SET schema_version = 24 WHERE id = 1").run(),c<25&&(e.exec(`
|
|
593
622
|
CREATE TABLE IF NOT EXISTS template_executions (
|
|
594
623
|
id TEXT PRIMARY KEY,
|
|
595
624
|
template_id TEXT NOT NULL,
|
|
@@ -600,7 +629,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
600
629
|
error TEXT,
|
|
601
630
|
FOREIGN KEY (template_id) REFERENCES task_templates(id)
|
|
602
631
|
)
|
|
603
|
-
`),e.exec("UPDATE server_state SET schema_version = 25 WHERE id = 1")),
|
|
632
|
+
`),e.exec("UPDATE server_state SET schema_version = 25 WHERE id = 1")),c<26){let s=`
|
|
604
633
|
CREATE TABLE IF NOT EXISTS template_execution_artifacts (
|
|
605
634
|
id TEXT PRIMARY KEY,
|
|
606
635
|
execution_id TEXT NOT NULL,
|
|
@@ -619,7 +648,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
619
648
|
ON template_execution_artifacts (execution_id);
|
|
620
649
|
CREATE INDEX IF NOT EXISTS idx_template_execution_artifacts_step
|
|
621
650
|
ON template_execution_artifacts (execution_id, step_id);
|
|
622
|
-
`,
|
|
651
|
+
`,r=`
|
|
623
652
|
CREATE TABLE IF NOT EXISTS artifact_access_log (
|
|
624
653
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
625
654
|
timestamp INTEGER NOT NULL,
|
|
@@ -638,12 +667,12 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
638
667
|
ON artifact_access_log (execution_id, timestamp);
|
|
639
668
|
CREATE INDEX IF NOT EXISTS idx_artifact_access_log_role
|
|
640
669
|
ON artifact_access_log (role_id, timestamp);
|
|
641
|
-
`;e.exec(s),e.exec(
|
|
670
|
+
`;e.exec(s),e.exec(r),e.prepare("PRAGMA table_info(tasks)").all().some(i=>i.name==="step_id")||e.prepare("ALTER TABLE tasks ADD COLUMN step_id TEXT").run(),e.exec("UPDATE server_state SET schema_version = 26 WHERE id = 1")}e.prepare("PRAGMA table_info(roles)").all().some(t=>t.name==="os_capabilities")||e.prepare("ALTER TABLE roles ADD COLUMN os_capabilities TEXT DEFAULT NULL").run(),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<27&&e.prepare("UPDATE server_state SET schema_version = 27 WHERE id = 1").run();{let s=e.prepare("PRAGMA table_info(manager_decisions)").all();s.some(t=>t.name==="requirements_json")||e.prepare("ALTER TABLE manager_decisions ADD COLUMN requirements_json TEXT").run(),s.some(t=>t.name==="fit_score")||e.prepare("ALTER TABLE manager_decisions ADD COLUMN fit_score REAL").run(),s.some(t=>t.name==="candidates_json")||e.prepare("ALTER TABLE manager_decisions ADD COLUMN candidates_json TEXT").run(),s.some(t=>t.name==="tie_break_reason")||e.prepare("ALTER TABLE manager_decisions ADD COLUMN tie_break_reason TEXT").run(),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<28&&e.prepare("UPDATE server_state SET schema_version = 28 WHERE id = 1").run()}{let s=[[/\brm -rf\b/,["rm -rf *"]],[/^git push/,["git push*"]],[/^git reset/,["git reset*"]],[/\bcurl.*POST\b/i,["curl * -X POST*","curl * --request POST*"]]],r=e.prepare("SELECT key, value FROM config WHERE key = 'defaults.approvalRequired'").all();for(let t of r)try{let i=JSON.parse(t.value),E=[];for(let T of i){let a=!1;for(let[d,o]of s)if(d.test(T)){E.push(...o),a=!0,D.info({from:T,to:o},"Config: migrated approvalRequired pattern from regex to glob");break}a||(/[.+?^${}()|[\]\\]/.test(T)&&D.warn({pattern:T},"Config: approvalRequired pattern contains regex metacharacters that won't work with glob matching; update to glob syntax (use * for wildcards)"),E.push(T))}let n=[...new Set(E)];e.prepare("UPDATE config SET value = ?, updated_at = ? WHERE key = ?").run(JSON.stringify(n),Date.now(),t.key)}catch{}}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<31){let r=e.prepare("SELECT count(*) AS n FROM task_templates WHERE trigger_type IN ('event', 'task_complete')").get();r.n>0&&D.info({legacyCount:r.n},"normalizing legacy template trigger types"),e.prepare(`
|
|
642
671
|
UPDATE task_templates
|
|
643
672
|
SET trigger_type='template_complete',
|
|
644
673
|
trigger_event=REPLACE(trigger_event, ?, 'template_complete:')
|
|
645
674
|
WHERE trigger_type='event' AND trigger_event LIKE ?
|
|
646
|
-
`).run(h,`${h}%`),e.prepare("UPDATE task_templates SET trigger_type='template_complete' WHERE trigger_type='event'").run(),e.prepare("UPDATE task_templates SET trigger_type='manual' WHERE trigger_type='task_complete'").run();let
|
|
675
|
+
`).run(h,`${h}%`),e.prepare("UPDATE task_templates SET trigger_type='template_complete' WHERE trigger_type='event'").run(),e.prepare("UPDATE task_templates SET trigger_type='manual' WHERE trigger_type='task_complete'").run();let t=e.prepare("SELECT count(*) AS n FROM task_templates WHERE trigger_type IN ('event', 'task_complete')").get();t.n>0&&D.warn({orphan:t.n},"migration left orphan legacy trigger_type rows; manual inspection required"),e.prepare("UPDATE server_state SET schema_version = 31 WHERE id = 1").run()}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<32&&(e.exec(`
|
|
647
676
|
CREATE TABLE IF NOT EXISTS event_defs (
|
|
648
677
|
id TEXT PRIMARY KEY, name TEXT NOT NULL, source_type TEXT NOT NULL,
|
|
649
678
|
source_config TEXT NOT NULL, enabled INTEGER NOT NULL DEFAULT 1,
|
|
@@ -662,12 +691,12 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
662
691
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_events_dedup ON events(source, dedup_key);
|
|
663
692
|
CREATE INDEX IF NOT EXISTS idx_events_type ON events(type);
|
|
664
693
|
CREATE INDEX IF NOT EXISTS idx_events_def_id ON events(event_def_id, occurred_at);
|
|
665
|
-
`),e.prepare("UPDATE server_state SET schema_version = 32 WHERE id = 1").run()),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<33){let
|
|
694
|
+
`),e.prepare("UPDATE server_state SET schema_version = 32 WHERE id = 1").run()),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<33){let r=e.prepare(`
|
|
666
695
|
SELECT name FROM sqlite_master
|
|
667
696
|
WHERE type='table' AND name IN ('template_executions', ?)
|
|
668
697
|
ORDER BY CASE name WHEN 'template_executions' THEN 0 ELSE 1 END
|
|
669
698
|
LIMIT 1
|
|
670
|
-
`).get(w);if(
|
|
699
|
+
`).get(w);if(r){let t=r.name;e.prepare(`PRAGMA table_info(${t})`).all().some(T=>T.name==="event_id")||e.prepare(`ALTER TABLE ${t} ADD COLUMN event_id TEXT`).run();let n=t==="template_executions"?"idx_template_executions_event_id":ee;e.prepare(`CREATE INDEX IF NOT EXISTS ${n} ON ${t}(event_id)`).run()}e.prepare("UPDATE server_state SET schema_version = 33 WHERE id = 1").run()}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<34&&(e.prepare("PRAGMA table_info(tasks)").all().some(i=>i.name==="block_reason_json")||e.prepare("ALTER TABLE tasks ADD COLUMN block_reason_json TEXT").run(),e.prepare("UPDATE server_state SET schema_version = 34 WHERE id = 1").run()),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<35){e.prepare("PRAGMA table_info(roles)").all().some(i=>i.name==="preset_id")||e.prepare("ALTER TABLE roles ADD COLUMN preset_id TEXT").run();let t=e.prepare("PRAGMA table_info(task_templates)").all();t.some(i=>i.name==="is_preset")||e.prepare("ALTER TABLE task_templates ADD COLUMN is_preset INTEGER NOT NULL DEFAULT 0").run(),t.some(i=>i.name==="preset_id")||e.prepare("ALTER TABLE task_templates ADD COLUMN preset_id TEXT").run(),e.prepare("UPDATE server_state SET schema_version = 35 WHERE id = 1").run()}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<36){let r=[["Engineer","engineer"],["Reviewer","reviewer"],["Researcher","researcher"],["Writer","writer"],["Chat Manager","chat-manager"],["adam-automator","adam-automator"]];for(let[t,i]of r)e.prepare("UPDATE roles SET preset_id = ? WHERE name = ? AND preset_id IS NULL").run(i,t);e.prepare("UPDATE server_state SET schema_version = 36 WHERE id = 1").run()}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<37&&(e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='feature_requests'").all().length===0&&(e.exec(`
|
|
671
700
|
CREATE TABLE feature_requests (
|
|
672
701
|
id TEXT PRIMARY KEY,
|
|
673
702
|
source_session_id TEXT,
|
|
@@ -696,7 +725,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
696
725
|
created_at INTEGER NOT NULL,
|
|
697
726
|
updated_at INTEGER NOT NULL
|
|
698
727
|
)
|
|
699
|
-
`),e.exec("CREATE INDEX IF NOT EXISTS idx_mistake_patterns_status ON mistake_patterns(status)"),e.exec("CREATE INDEX IF NOT EXISTS idx_mistake_patterns_last_seen ON mistake_patterns(last_seen)"),e.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_mistake_patterns_dim ON mistake_patterns(dimension_type, dimension_value)")),e.prepare("UPDATE server_state SET schema_version = 38 WHERE id = 1").run()),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<39){let
|
|
728
|
+
`),e.exec("CREATE INDEX IF NOT EXISTS idx_mistake_patterns_status ON mistake_patterns(status)"),e.exec("CREATE INDEX IF NOT EXISTS idx_mistake_patterns_last_seen ON mistake_patterns(last_seen)"),e.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_mistake_patterns_dim ON mistake_patterns(dimension_type, dimension_value)")),e.prepare("UPDATE server_state SET schema_version = 38 WHERE id = 1").run()),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<39){let r=e.prepare("SELECT source_task_id, COUNT(*) as cnt FROM memories WHERE source_task_id IS NOT NULL AND type = 'thought' GROUP BY source_task_id HAVING cnt > 1").all();if(r.length>0){console.info(`[db migration v39] dedupe ${r.length} (source_task_id, type='thought') groups before adding unique index`);for(let t of r){let i=e.prepare("SELECT id, length(content) as len FROM memories WHERE source_task_id = ? AND type = 'thought' ORDER BY len DESC, created_at ASC").all(t.source_task_id),E=i[0].id,n=i.slice(1).map(a=>a.id),T=n.map(()=>"?").join(",");e.prepare(`DELETE FROM memories WHERE id IN (${T})`).run(...n),console.info(`[db migration v39] group source_task_id=${t.source_task_id}: kept ${E} (len ${i[0].len}), deleted ${n.length}`)}}e.prepare("CREATE UNIQUE INDEX IF NOT EXISTS idx_memories_thought_per_task ON memories(source_task_id) WHERE source_task_id IS NOT NULL AND type = 'thought'").run(),e.prepare("UPDATE server_state SET schema_version = 39 WHERE id = 1").run()}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<40){let r=["tasks","step_logs","delivery_log","evolution_audit","chat_messages"];for(let t of r)e.prepare(`PRAGMA table_info(${t})`).all().some(E=>E.name==="trace_id")||(e.prepare(`ALTER TABLE ${t} ADD COLUMN trace_id TEXT`).run(),e.prepare(`CREATE INDEX IF NOT EXISTS idx_${t}_trace_id ON ${t}(trace_id) WHERE trace_id IS NOT NULL`).run(),console.info(`[db migration v40] added trace_id to ${t}`));e.prepare("UPDATE server_state SET schema_version = 40 WHERE id = 1").run()}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<41&&(e.prepare(`
|
|
700
729
|
UPDATE task_templates
|
|
701
730
|
SET trigger_type = 'template_complete'
|
|
702
731
|
WHERE trigger_type = ?
|
|
@@ -704,7 +733,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
704
733
|
UPDATE task_templates
|
|
705
734
|
SET trigger_event = REPLACE(trigger_event, ?, 'template_complete:')
|
|
706
735
|
WHERE trigger_event LIKE ?
|
|
707
|
-
`).run(h,`${h}%`),e.prepare("UPDATE server_state SET schema_version = 41 WHERE id = 1").run()),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<42){let
|
|
736
|
+
`).run(h,`${h}%`),e.prepare("UPDATE server_state SET schema_version = 41 WHERE id = 1").run()),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<42){let r=e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(w),t=e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='template_executions'").get();r&&!t&&e.prepare(`ALTER TABLE ${w} RENAME TO template_executions`).run(),e.exec(`
|
|
708
737
|
CREATE TABLE IF NOT EXISTS template_executions (
|
|
709
738
|
id TEXT PRIMARY KEY,
|
|
710
739
|
template_id TEXT NOT NULL,
|
|
@@ -716,7 +745,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
716
745
|
event_id TEXT,
|
|
717
746
|
FOREIGN KEY (template_id) REFERENCES task_templates(id)
|
|
718
747
|
)
|
|
719
|
-
`),e.prepare("PRAGMA table_info(template_executions)").all().some(E=>E.name==="event_id")||e.prepare("ALTER TABLE template_executions ADD COLUMN event_id TEXT").run(),e.prepare(`DROP INDEX IF EXISTS ${ee}`).run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_template_executions_event_id ON template_executions(event_id)").run(),e.prepare("UPDATE server_state SET schema_version = 42 WHERE id = 1").run()}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<43){let
|
|
748
|
+
`),e.prepare("PRAGMA table_info(template_executions)").all().some(E=>E.name==="event_id")||e.prepare("ALTER TABLE template_executions ADD COLUMN event_id TEXT").run(),e.prepare(`DROP INDEX IF EXISTS ${ee}`).run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_template_executions_event_id ON template_executions(event_id)").run(),e.prepare("UPDATE server_state SET schema_version = 42 WHERE id = 1").run()}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<43){let r=e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(b),t=e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='template_execution_artifacts'").get();r&&!t&&e.prepare(`ALTER TABLE ${b} RENAME TO template_execution_artifacts`).run(),e.exec(`
|
|
720
749
|
CREATE TABLE IF NOT EXISTS template_execution_artifacts (
|
|
721
750
|
id TEXT PRIMARY KEY,
|
|
722
751
|
execution_id TEXT NOT NULL,
|
|
@@ -731,14 +760,14 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
731
760
|
UNIQUE(execution_id, step_id, key),
|
|
732
761
|
FOREIGN KEY (execution_id) REFERENCES template_executions(id) ON DELETE CASCADE
|
|
733
762
|
)
|
|
734
|
-
`),e.prepare(`DROP INDEX IF EXISTS ${de}`).run(),e.prepare(`DROP INDEX IF EXISTS ${pe}`).run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_template_execution_artifacts_execution ON template_execution_artifacts(execution_id)").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_template_execution_artifacts_step ON template_execution_artifacts(execution_id, step_id)").run(),Q(e),e.prepare("UPDATE server_state SET schema_version = 43 WHERE id = 1").run()}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<44&&(e.prepare("PRAGMA table_info(tasks)").all().some(
|
|
763
|
+
`),e.prepare(`DROP INDEX IF EXISTS ${de}`).run(),e.prepare(`DROP INDEX IF EXISTS ${pe}`).run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_template_execution_artifacts_execution ON template_execution_artifacts(execution_id)").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_template_execution_artifacts_step ON template_execution_artifacts(execution_id, step_id)").run(),Q(e),e.prepare("UPDATE server_state SET schema_version = 43 WHERE id = 1").run()}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<44&&(e.prepare("PRAGMA table_info(tasks)").all().some(t=>t.name==="error_category")||e.prepare("ALTER TABLE tasks ADD COLUMN error_category TEXT").run(),e.prepare("UPDATE server_state SET schema_version = 44 WHERE id = 1").run()),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<45&&(e.prepare("PRAGMA table_info(tasks)").all().some(t=>t.name==="retry_count")||e.prepare("ALTER TABLE tasks ADD COLUMN retry_count INTEGER NOT NULL DEFAULT 0").run(),e.exec(`
|
|
735
764
|
CREATE TABLE IF NOT EXISTS delayed_retries (
|
|
736
765
|
id TEXT PRIMARY KEY,
|
|
737
766
|
task_id TEXT NOT NULL,
|
|
738
767
|
retry_at INTEGER NOT NULL,
|
|
739
768
|
created_at INTEGER NOT NULL
|
|
740
769
|
)
|
|
741
|
-
`),e.exec("CREATE INDEX IF NOT EXISTS idx_delayed_retries_retry_at ON delayed_retries(retry_at)"),e.exec("CREATE INDEX IF NOT EXISTS idx_delayed_retries_task_id ON delayed_retries(task_id)"),e.prepare("UPDATE server_state SET schema_version = 45 WHERE id = 1").run()),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<46&&(e.prepare("PRAGMA table_info(role_scores)").all().some(
|
|
770
|
+
`),e.exec("CREATE INDEX IF NOT EXISTS idx_delayed_retries_retry_at ON delayed_retries(retry_at)"),e.exec("CREATE INDEX IF NOT EXISTS idx_delayed_retries_task_id ON delayed_retries(task_id)"),e.prepare("UPDATE server_state SET schema_version = 45 WHERE id = 1").run()),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<46&&(e.prepare("PRAGMA table_info(role_scores)").all().some(t=>t.name==="task_type")||e.prepare("ALTER TABLE role_scores ADD COLUMN task_type TEXT").run(),e.prepare("UPDATE server_state SET schema_version = 46 WHERE id = 1").run()),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<47&&(e.prepare("PRAGMA table_info(template_execution_artifacts)").all().some(i=>i.name==="original_filename")||e.prepare("ALTER TABLE template_execution_artifacts ADD COLUMN original_filename TEXT").run(),e.prepare("UPDATE server_state SET schema_version = 47 WHERE id = 1").run()),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<48){let r=e.prepare("PRAGMA table_info(chat_messages)").all(),t=i=>r.some(E=>E.name===i);t("kind")||e.prepare("ALTER TABLE chat_messages ADD COLUMN kind TEXT").run(),t("parent_message_id")||e.prepare("ALTER TABLE chat_messages ADD COLUMN parent_message_id TEXT").run(),t("thread_root")||e.prepare("ALTER TABLE chat_messages ADD COLUMN thread_root TEXT").run(),t("prompt_id")||e.prepare("ALTER TABLE chat_messages ADD COLUMN prompt_id TEXT").run(),t("approval_shape")||e.prepare("ALTER TABLE chat_messages ADD COLUMN approval_shape TEXT").run(),t("role_id")||e.prepare("ALTER TABLE chat_messages ADD COLUMN role_id TEXT").run(),t("attachments")||e.prepare("ALTER TABLE chat_messages ADD COLUMN attachments TEXT").run(),t("mirrored_to_targets")||e.prepare("ALTER TABLE chat_messages ADD COLUMN mirrored_to_targets TEXT").run(),t("platform_message_id")||e.prepare("ALTER TABLE chat_messages ADD COLUMN platform_message_id TEXT").run(),t("seq")||e.prepare("ALTER TABLE chat_messages ADD COLUMN seq INTEGER").run(),e.prepare("UPDATE chat_messages SET kind = 'user_message' WHERE kind IS NULL AND role = 'user'").run(),e.prepare("UPDATE chat_messages SET kind = 'assistant_text' WHERE kind IS NULL AND role = 'assistant'").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_chat_messages_thread_root ON chat_messages(thread_root, created_at) WHERE thread_root IS NOT NULL").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_chat_messages_prompt_id ON chat_messages(prompt_id) WHERE prompt_id IS NOT NULL").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_chat_messages_platform_msg ON chat_messages(platform_message_id) WHERE platform_message_id IS NOT NULL").run(),e.prepare("UPDATE server_state SET schema_version = 48 WHERE id = 1").run(),console.info("[db migration v48] chat_messages: added 10 envelope columns + 3 indexes; back-filled kind")}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<49&&(e.exec(`
|
|
742
771
|
CREATE TABLE IF NOT EXISTS pending_prompts (
|
|
743
772
|
id TEXT PRIMARY KEY,
|
|
744
773
|
session_id TEXT NOT NULL,
|
|
@@ -754,7 +783,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
754
783
|
resolved_value TEXT,
|
|
755
784
|
expired_reason TEXT
|
|
756
785
|
)
|
|
757
|
-
`),e.exec("CREATE INDEX IF NOT EXISTS idx_pending_prompts_session_open ON pending_prompts(session_id, expires_at) WHERE resolved_at IS NULL"),e.exec("CREATE INDEX IF NOT EXISTS idx_pending_prompts_task ON pending_prompts(task_id) WHERE task_id IS NOT NULL"),e.prepare("UPDATE server_state SET schema_version = 49 WHERE id = 1").run(),console.info("[db migration v49] pending_prompts: created table + 2 indexes")),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<50){if(e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='template_execution_artifacts'").get()){let
|
|
786
|
+
`),e.exec("CREATE INDEX IF NOT EXISTS idx_pending_prompts_session_open ON pending_prompts(session_id, expires_at) WHERE resolved_at IS NULL"),e.exec("CREATE INDEX IF NOT EXISTS idx_pending_prompts_task ON pending_prompts(task_id) WHERE task_id IS NOT NULL"),e.prepare("UPDATE server_state SET schema_version = 49 WHERE id = 1").run(),console.info("[db migration v49] pending_prompts: created table + 2 indexes")),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<50){if(e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='template_execution_artifacts'").get()){let t=e.prepare("PRAGMA table_info(template_execution_artifacts)").all(),i=E=>t.some(n=>n.name===E);i("locator")||e.prepare("ALTER TABLE template_execution_artifacts ADD COLUMN locator TEXT").run(),i("content_hash")||e.prepare("ALTER TABLE template_execution_artifacts ADD COLUMN content_hash TEXT").run(),i("retention_hint")||e.prepare("ALTER TABLE template_execution_artifacts ADD COLUMN retention_hint TEXT").run(),i("encryption_class")||e.prepare("ALTER TABLE template_execution_artifacts ADD COLUMN encryption_class TEXT").run(),i("purpose")||e.prepare("ALTER TABLE template_execution_artifacts ADD COLUMN purpose TEXT").run(),i("replaces")||e.prepare("ALTER TABLE template_execution_artifacts ADD COLUMN replaces TEXT").run(),i("produced_by_role")||e.prepare("ALTER TABLE template_execution_artifacts ADD COLUMN produced_by_role TEXT").run(),i("access")||e.prepare("ALTER TABLE template_execution_artifacts ADD COLUMN access TEXT").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_artifacts_content_hash ON template_execution_artifacts(content_hash) WHERE content_hash IS NOT NULL").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_artifacts_replaces ON template_execution_artifacts(replaces) WHERE replaces IS NOT NULL").run(),console.info("[db migration v50] template_execution_artifacts: added 8 storage-hook columns + 2 indexes")}else console.info("[db migration v50] skipped \u2014 template_execution_artifacts already renamed to artifacts in v72");e.prepare("UPDATE server_state SET schema_version = 50 WHERE id = 1").run()}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<51){let r=e.prepare("PRAGMA table_info(chat_messages)").all();r.some(t=>t.name==="source_channel_id")||e.exec("ALTER TABLE chat_messages ADD COLUMN source_channel_id TEXT"),r.some(t=>t.name==="source_chat_id")||e.exec("ALTER TABLE chat_messages ADD COLUMN source_chat_id TEXT"),e.prepare("UPDATE server_state SET schema_version = 51 WHERE id = 1").run(),console.info("[db migration v51] chat_messages: added source_channel_id + source_chat_id columns")}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<52&&(e.exec(`
|
|
758
787
|
CREATE TABLE IF NOT EXISTS audit_violations (
|
|
759
788
|
id TEXT PRIMARY KEY,
|
|
760
789
|
step_task_id TEXT NOT NULL,
|
|
@@ -770,7 +799,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
770
799
|
CREATE INDEX IF NOT EXISTS idx_audit_violations_role ON audit_violations(role_id, created_at DESC);
|
|
771
800
|
CREATE INDEX IF NOT EXISTS idx_audit_violations_task ON audit_violations(step_task_id);
|
|
772
801
|
CREATE INDEX IF NOT EXISTS idx_audit_violations_execution ON audit_violations(execution_id, created_at DESC);
|
|
773
|
-
`),e.prepare("UPDATE server_state SET schema_version = 52 WHERE id = 1").run(),console.info("[db migration v52] audit_violations: added contract-violation audit table + 3 indexes")),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<53){let
|
|
802
|
+
`),e.prepare("UPDATE server_state SET schema_version = 52 WHERE id = 1").run(),console.info("[db migration v52] audit_violations: added contract-violation audit table + 3 indexes")),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<53){let r=e.prepare("SELECT id, learned_rules FROM roles").all(),t=e.prepare("UPDATE roles SET learned_rules = ? WHERE id = ?"),i=0;for(let E of r){if(!E.learned_rules)continue;let n;try{n=JSON.parse(E.learned_rules)}catch{continue}if(Array.isArray(n)){let T={stylePreferences:n.filter(a=>typeof a=="string"),avoidedActions:[],pinnedParameters:[]};t.run(JSON.stringify(T),E.id),i+=1}}e.prepare("UPDATE server_state SET schema_version = 53 WHERE id = 1").run(),console.info(`[db migration v53] learned_rules: wrapped ${i} legacy string[] rows into structured form`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<54){e.exec(`
|
|
774
803
|
CREATE TABLE IF NOT EXISTS user_visible_events (
|
|
775
804
|
id TEXT PRIMARY KEY,
|
|
776
805
|
event_key TEXT NOT NULL UNIQUE,
|
|
@@ -796,7 +825,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
796
825
|
ON user_visible_events(viewer_key, source_id);
|
|
797
826
|
CREATE INDEX IF NOT EXISTS idx_user_visible_events_trace_id
|
|
798
827
|
ON user_visible_events(trace_id) WHERE trace_id IS NOT NULL;
|
|
799
|
-
`);let
|
|
828
|
+
`);let r="local-owner",t=e.prepare("SELECT value FROM config WHERE key = 'identity.ownerViewerKey'").get();if(t)try{let n=JSON.parse(t.value);typeof n=="string"&&n.trim().length>0&&(r=n)}catch{t.value.trim().length>0&&(r=t.value)}let i=e.prepare("SELECT id, config FROM channels").all(),E=e.prepare("UPDATE channels SET config = ?, updated_at = ? WHERE id = ?");for(let n of i)try{let T=JSON.parse(n.config);(typeof T.viewerKey!="string"||T.viewerKey.trim().length===0)&&(T.viewerKey=r,E.run(JSON.stringify(T),Date.now(),n.id))}catch{}e.prepare("UPDATE server_state SET schema_version = 54 WHERE id = 1").run(),console.info("[db migration v54] user_visible_events: created delivery ledger and backfilled channel viewerKey")}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<55&&(e.exec(`
|
|
800
829
|
CREATE TABLE IF NOT EXISTS audit_diagnostics (
|
|
801
830
|
id TEXT PRIMARY KEY,
|
|
802
831
|
source TEXT NOT NULL,
|
|
@@ -871,7 +900,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
871
900
|
ON assistant_delivery_commitments(session_id, created_at);
|
|
872
901
|
CREATE INDEX IF NOT EXISTS idx_assistant_delivery_commitments_source_message
|
|
873
902
|
ON assistant_delivery_commitments(source_message_id) WHERE source_message_id IS NOT NULL;
|
|
874
|
-
`),e.prepare("UPDATE server_state SET schema_version = 57 WHERE id = 1").run(),console.info("[db migration v57] assistant_delivery_commitments: added ChatManager delivery commitment table")),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<58){e.prepare("PRAGMA table_info(channels)").all().some(T=>T.name==="viewer_key")||e.exec("ALTER TABLE channels ADD COLUMN viewer_key TEXT");let
|
|
903
|
+
`),e.prepare("UPDATE server_state SET schema_version = 57 WHERE id = 1").run(),console.info("[db migration v57] assistant_delivery_commitments: added ChatManager delivery commitment table")),(e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<58){e.prepare("PRAGMA table_info(channels)").all().some(T=>T.name==="viewer_key")||e.exec("ALTER TABLE channels ADD COLUMN viewer_key TEXT");let t="local-owner",i=e.prepare("SELECT value FROM config WHERE key = 'identity.ownerViewerKey'").get();if(i)try{let T=JSON.parse(i.value);typeof T=="string"&&T.trim().length>0&&(t=T)}catch{i.value.trim().length>0&&(t=i.value)}let E=e.prepare("SELECT id, config FROM channels").all(),n=e.prepare("UPDATE channels SET config = ?, viewer_key = ?, updated_at = ? WHERE id = ?");for(let T of E)try{let a=JSON.parse(T.config),d=typeof a.viewerKey=="string"&&a.viewerKey.trim().length>0?a.viewerKey:t;delete a.viewerKey,n.run(JSON.stringify(a),d,Date.now(),T.id)}catch{e.prepare("UPDATE channels SET viewer_key = ?, updated_at = ? WHERE id = ?").run(t,Date.now(),T.id)}e.prepare("UPDATE server_state SET schema_version = 58 WHERE id = 1").run(),console.info("[db migration v58] channels: extracted viewerKey from config into viewer_key column")}{let s=["^Task assigned to role [A-Z]$","^List files in the current directory\\.?$","^ping role payload$"];try{let t=e.prepare("SELECT id FROM delivery_rules WHERE created_by = 'system' AND target LIKE '%_default_block_%'").all();for(let i of t)e.prepare("DELETE FROM delivery_rules WHERE id = ?").run(i.id),console.info(`[db v59 repair] removed legacy bad rule ${i.id}`);e.prepare("DELETE FROM config WHERE key = 'delivery.defaultExcludePromptPatterns' AND value LIKE '%E2E_TEST_MODE%'").run()}catch(t){console.warn("[db v59 repair] cleanup of legacy seed failed (non-fatal):",t)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<59){let t=e.prepare("SELECT id, match_criteria FROM delivery_rules WHERE event_type = 'task_complete'").all(),i=0;for(let E of t)try{let n=E.match_criteria?JSON.parse(E.match_criteria):{};if(!(!n.templateId&&!n.roleId&&!n.promptPattern&&!n.taskStatus))continue;let a=Array.isArray(n.excludePromptPatterns)?n.excludePromptPatterns:[],d=[...new Set([...a,...s])],o={...n,excludePromptPatterns:d};e.prepare("UPDATE delivery_rules SET match_criteria = ? WHERE id = ?").run(JSON.stringify(o),E.id),i++}catch{}e.prepare("UPDATE server_state SET schema_version = 59 WHERE id = 1").run(),console.info(`[db migration v59] delivery: seeded excludePromptPatterns on ${i} catch-all rule(s)`)}try{let t=e.prepare("SELECT id, match_criteria FROM delivery_rules WHERE event_type = 'task_complete'").all();for(let i of t)try{let E=i.match_criteria?JSON.parse(i.match_criteria):{};if(!(!E.templateId&&!E.roleId&&!E.promptPattern&&!E.taskStatus))continue;let T=Array.isArray(E.excludePromptPatterns)?E.excludePromptPatterns:[],a=s.filter(f=>!T.includes(f));if(a.length===0)continue;let d=[...T,...a],o={...E,excludePromptPatterns:d};e.prepare("UPDATE delivery_rules SET match_criteria = ? WHERE id = ?").run(JSON.stringify(o),i.id),console.info(`[db v59 reconcile] added ${a.length} default exclude pattern(s) to rule ${i.id}`)}catch{}}catch(t){console.warn("[db v59 reconcile] post-migration repair failed (non-fatal):",t)}}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<60){if(e.prepare("PRAGMA table_info(delivery_log)").all().some(t=>t.name==="execution_id")||(e.prepare("ALTER TABLE delivery_log ADD COLUMN execution_id TEXT").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_delivery_log_execution_id ON delivery_log (execution_id)").run()),!e.prepare("SELECT id FROM delivery_rules WHERE event_type = ?").get("template_execution_failed")){let t=e.prepare("SELECT id, target, match_criteria FROM delivery_rules WHERE event_type = 'task_complete' AND enabled = 1").all(),i=null;for(let a of t)try{let d=a.match_criteria?JSON.parse(a.match_criteria):{};if(!d.templateId&&!d.roleId&&!d.promptPattern&&!d.taskStatus){let f=JSON.parse(a.target);if(f?.type==="channel"&&typeof f.channelId=="string"){i=f.channelId;break}}}catch{}let E=`tpl-fail-${Date.now()}`,n=i?{type:"channel",channelId:i}:{type:"channel",channelId:"REPLACE_ME"},T=i?1:0;e.prepare("INSERT INTO delivery_rules (id, event_type, match_criteria, target, max_per_minute, skip_origin_channel, enabled, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run(E,"template_execution_failed","{}",JSON.stringify(n),3,0,T,Date.now()),i?console.info(`[db migration v60] seeded template_execution_failed delivery rule targeting channel ${i}`):console.warn("[db migration v60] no primary channel found for template_execution_failed rule; created as disabled (channelId=REPLACE_ME)")}e.prepare("UPDATE server_state SET schema_version = 60 WHERE id = 1").run()}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<61&&(e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='effect_receipts'").get()||(e.prepare(`
|
|
875
904
|
CREATE TABLE effect_receipts (
|
|
876
905
|
id TEXT PRIMARY KEY,
|
|
877
906
|
trace_id TEXT NOT NULL,
|
|
@@ -931,7 +960,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
931
960
|
SET verdict_pair = divergence_subtype
|
|
932
961
|
WHERE verdict_pair IS NULL OR verdict_pair = 'agreed_pass'
|
|
933
962
|
AND divergence_subtype IN ('old_blocks_new_passes', 'old_passes_new_blocks')
|
|
934
|
-
`).run();let
|
|
963
|
+
`).run();let r=e.prepare("DELETE FROM effect_receipts WHERE trace_id LIKE 'trace-%' OR trace_id LIKE 'test-%'").run().changes;r>0&&console.info(`[db migration] v65: cleaned ${r} fixture row(s) from effect_receipts`),e.prepare("UPDATE server_state SET schema_version = 65 WHERE id = 1").run()}catch(r){throw r}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<66)try{let r=e.prepare("PRAGMA table_info(roles)").all();r.some(t=>t.name==="effort_tier")||e.prepare("ALTER TABLE roles ADD COLUMN effort_tier TEXT").run(),r.some(t=>t.name==="skills")||e.prepare("ALTER TABLE roles ADD COLUMN skills TEXT").run(),e.prepare("UPDATE server_state SET schema_version = 66 WHERE id = 1").run()}catch(r){throw new Error(`Schema v66 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<67)try{e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='chat_tool_calls'").get()||(e.exec(`
|
|
935
964
|
CREATE TABLE chat_tool_calls (
|
|
936
965
|
id TEXT PRIMARY KEY,
|
|
937
966
|
trace_id TEXT NOT NULL,
|
|
@@ -945,7 +974,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
945
974
|
CREATE INDEX idx_chat_tool_calls_trace ON chat_tool_calls(trace_id, called_at)
|
|
946
975
|
`),e.exec(`
|
|
947
976
|
CREATE INDEX idx_chat_tool_calls_session ON chat_tool_calls(session_id, called_at) WHERE session_id IS NOT NULL
|
|
948
|
-
`)),e.prepare("UPDATE server_state SET schema_version = 67 WHERE id = 1").run()}catch(
|
|
977
|
+
`)),e.prepare("UPDATE server_state SET schema_version = 67 WHERE id = 1").run()}catch(r){throw new Error(`Schema v67 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<68)try{e.prepare("PRAGMA table_info(memories)").all().some(n=>n.name==="kind")||e.exec("ALTER TABLE memories ADD COLUMN kind TEXT NOT NULL DEFAULT 'observation'"),e.prepare("PRAGMA table_info(roles)").all().some(n=>n.name==="last_reflection_at")||e.exec("ALTER TABLE roles ADD COLUMN last_reflection_at INTEGER"),e.prepare("PRAGMA table_info(server_state)").all().some(n=>n.name==="last_memory_gc_at")||e.exec("ALTER TABLE server_state ADD COLUMN last_memory_gc_at INTEGER"),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='beliefs'").get()||(e.exec(`
|
|
949
978
|
CREATE TABLE beliefs (
|
|
950
979
|
id TEXT PRIMARY KEY,
|
|
951
980
|
role_id TEXT NOT NULL,
|
|
@@ -959,7 +988,13 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
959
988
|
superseded_by TEXT,
|
|
960
989
|
created_at INTEGER NOT NULL,
|
|
961
990
|
last_used_at INTEGER NOT NULL,
|
|
962
|
-
last_validated_at INTEGER NOT NULL
|
|
991
|
+
last_validated_at INTEGER NOT NULL,
|
|
992
|
+
scope_key TEXT,
|
|
993
|
+
status TEXT NOT NULL DEFAULT 'candidate' CHECK(status IN ('core','challenger','candidate')),
|
|
994
|
+
trial_count INTEGER NOT NULL DEFAULT 0,
|
|
995
|
+
delta_sum REAL NOT NULL DEFAULT 0,
|
|
996
|
+
expires_at INTEGER,
|
|
997
|
+
success_ema REAL
|
|
963
998
|
)
|
|
964
999
|
`),e.exec("CREATE INDEX idx_beliefs_role_id ON beliefs(role_id)"),e.exec("CREATE INDEX idx_beliefs_role_anti ON beliefs(role_id, is_anti)"),e.exec("CREATE INDEX idx_beliefs_last_used ON beliefs(last_used_at)"),e.exec(`
|
|
965
1000
|
CREATE VIRTUAL TABLE beliefs_fts USING fts5(content, content='beliefs', content_rowid='rowid')
|
|
@@ -976,7 +1011,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
976
1011
|
INSERT INTO beliefs_fts(beliefs_fts, rowid, content) VALUES ('delete', old.rowid, old.content);
|
|
977
1012
|
INSERT INTO beliefs_fts(rowid, content) VALUES (new.rowid, new.content);
|
|
978
1013
|
END
|
|
979
|
-
`)),e.prepare("UPDATE server_state SET schema_version = 68 WHERE id = 1").run()}catch(
|
|
1014
|
+
`)),e.prepare("UPDATE server_state SET schema_version = 68 WHERE id = 1").run()}catch(r){throw new Error(`Schema v68 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<69)try{e.prepare("PRAGMA table_info(tasks)").all().some(i=>i.name==="context_meta")||e.exec("ALTER TABLE tasks ADD COLUMN context_meta TEXT"),e.prepare("PRAGMA table_info(roles)").all().some(i=>i.name==="memory_budget_tokens")||e.exec("ALTER TABLE roles ADD COLUMN memory_budget_tokens INTEGER"),e.prepare("UPDATE server_state SET schema_version = 69 WHERE id = 1").run()}catch(r){throw new Error(`Schema v69 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<70)try{e.prepare("PRAGMA table_info(task_templates)").all().some(t=>t.name==="retry_policy")||e.exec("ALTER TABLE task_templates ADD COLUMN retry_policy TEXT"),e.prepare("UPDATE server_state SET schema_version = 70 WHERE id = 1").run()}catch(r){throw new Error(`Schema v70 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<71)try{e.prepare(`CREATE TABLE IF NOT EXISTS extensions (
|
|
980
1015
|
id TEXT PRIMARY KEY,
|
|
981
1016
|
name TEXT NOT NULL UNIQUE,
|
|
982
1017
|
version TEXT NOT NULL,
|
|
@@ -1003,7 +1038,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
1003
1038
|
last_error TEXT,
|
|
1004
1039
|
last_role_id TEXT,
|
|
1005
1040
|
last_task_id TEXT
|
|
1006
|
-
)`).run(),e.prepare("UPDATE server_state SET schema_version = 71 WHERE id = 1").run()}catch(
|
|
1041
|
+
)`).run(),e.prepare("UPDATE server_state SET schema_version = 71 WHERE id = 1").run()}catch(r){throw new Error(`Schema v71 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<72)try{if(e.exec(`
|
|
1007
1042
|
CREATE TABLE IF NOT EXISTS artifacts (
|
|
1008
1043
|
id TEXT PRIMARY KEY,
|
|
1009
1044
|
source_kind TEXT NOT NULL CHECK (source_kind IN ('template_step', 'task_published', 'chat_sent')),
|
|
@@ -1034,7 +1069,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
1034
1069
|
OR (source_kind = 'chat_sent' AND chat_session_id IS NOT NULL AND task_id IS NULL AND execution_id IS NULL)
|
|
1035
1070
|
)
|
|
1036
1071
|
)
|
|
1037
|
-
`),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='template_execution_artifacts'").get()){let
|
|
1072
|
+
`),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='template_execution_artifacts'").get()){let t=e.prepare("SELECT COUNT(*) AS n FROM template_execution_artifacts").get().n;e.exec(`
|
|
1038
1073
|
INSERT INTO artifacts (
|
|
1039
1074
|
id, source_kind, execution_id, task_id, chat_session_id, step_id, role_id,
|
|
1040
1075
|
key, kind, value_json, blob_path, mime, original_filename, size_bytes, created_at,
|
|
@@ -1051,7 +1086,7 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
1051
1086
|
key, kind, value_json, blob_path, mime, original_filename, size_bytes, created_at,
|
|
1052
1087
|
locator, content_hash, retention_hint, encryption_class, purpose, replaces, produced_by_role, access
|
|
1053
1088
|
FROM template_execution_artifacts
|
|
1054
|
-
`);let i=e.prepare("SELECT COUNT(*) AS n FROM artifacts WHERE source_kind = 'template_step'").get().n;if(i!==
|
|
1089
|
+
`);let i=e.prepare("SELECT COUNT(*) AS n FROM artifacts WHERE source_kind = 'template_step'").get().n;if(i!==t)throw new Error(`v72 migration row-count mismatch: legacy=${t}, migrated=${i}`);e.exec("DROP TABLE template_execution_artifacts")}e.prepare("CREATE INDEX IF NOT EXISTS idx_artifacts_execution_id ON artifacts(execution_id) WHERE execution_id IS NOT NULL").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_artifacts_task_id ON artifacts(task_id) WHERE task_id IS NOT NULL").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_artifacts_chat_session_id ON artifacts(chat_session_id) WHERE chat_session_id IS NOT NULL").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_artifacts_role_id ON artifacts(role_id) WHERE role_id IS NOT NULL").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_artifacts_created_at ON artifacts(created_at DESC)").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_artifacts_source_kind ON artifacts(source_kind)").run(),e.prepare("CREATE UNIQUE INDEX IF NOT EXISTS idx_artifacts_template_step_key ON artifacts(execution_id, step_id, key) WHERE source_kind = 'template_step'").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_artifacts_replaces ON artifacts(replaces) WHERE replaces IS NOT NULL").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_artifacts_content_hash ON artifacts(content_hash) WHERE content_hash IS NOT NULL").run(),e.prepare("UPDATE server_state SET schema_version = 72 WHERE id = 1").run()}catch(r){throw new Error(`Schema v72 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<73)try{e.prepare("PRAGMA table_info(artifacts)").all().some(i=>i.name==="priority")||e.prepare("ALTER TABLE artifacts ADD COLUMN priority INTEGER").run(),e.prepare("UPDATE server_state SET schema_version = 73 WHERE id = 1").run()}catch(r){throw new Error(`Schema v73 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<74)try{let r=e.prepare("PRAGMA table_info(channels)").all(),t=r.some(E=>E.name==="recipient_cap_map_json"),i=r.some(E=>E.name==="default_recipient_cap_bytes");t||e.prepare("ALTER TABLE channels ADD COLUMN recipient_cap_map_json TEXT").run(),i||e.prepare("ALTER TABLE channels ADD COLUMN default_recipient_cap_bytes INTEGER").run(),e.prepare("UPDATE server_state SET schema_version = 74 WHERE id = 1").run()}catch(r){throw new Error(`Schema v74 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<75)try{e.prepare("PRAGMA table_info(audit_violations)").all().length>0&&((e.prepare("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = 'audit_violations'").get()?.sql.includes("'A', 'B', 'C'")??!1)||(e.prepare(`
|
|
1055
1090
|
CREATE TABLE audit_violations_new (
|
|
1056
1091
|
id TEXT PRIMARY KEY,
|
|
1057
1092
|
step_task_id TEXT NOT NULL,
|
|
@@ -1070,4 +1105,116 @@ import{d as B,e as W,h as Y}from"./chunk-WBAPIPST.js";import{c as g,h as K}from"
|
|
|
1070
1105
|
SELECT
|
|
1071
1106
|
id, step_task_id, execution_id, role_id, contract_field, layer, severity, message, metadata_json, created_at
|
|
1072
1107
|
FROM audit_violations
|
|
1073
|
-
`).run(),e.prepare("DROP TABLE audit_violations").run(),e.prepare("ALTER TABLE audit_violations_new RENAME TO audit_violations").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_audit_violations_role ON audit_violations(role_id, created_at DESC)").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_audit_violations_task ON audit_violations(step_task_id)").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_audit_violations_execution ON audit_violations(execution_id, created_at DESC)").run())),e.prepare("UPDATE server_state SET schema_version = 75 WHERE id = 1").run(),console.info("[db migration v75] audit_violations.layer CHECK extended to include 'C' for Phase 1 customAssertions")}catch(
|
|
1108
|
+
`).run(),e.prepare("DROP TABLE audit_violations").run(),e.prepare("ALTER TABLE audit_violations_new RENAME TO audit_violations").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_audit_violations_role ON audit_violations(role_id, created_at DESC)").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_audit_violations_task ON audit_violations(step_task_id)").run(),e.prepare("CREATE INDEX IF NOT EXISTS idx_audit_violations_execution ON audit_violations(execution_id, created_at DESC)").run())),e.prepare("UPDATE server_state SET schema_version = 75 WHERE id = 1").run(),console.info("[db migration v75] audit_violations.layer CHECK extended to include 'C' for Phase 1 customAssertions")}catch(r){throw new Error(`Schema v75 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<76)try{e.prepare("SELECT count(*) as cnt FROM sqlite_master WHERE type='table' AND name='task_files'").get().cnt>0||(e.prepare(`
|
|
1109
|
+
CREATE TABLE task_files (
|
|
1110
|
+
id TEXT PRIMARY KEY,
|
|
1111
|
+
task_id TEXT NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
|
|
1112
|
+
path TEXT NOT NULL,
|
|
1113
|
+
op TEXT NOT NULL CHECK(op IN ('added','modified','deleted')),
|
|
1114
|
+
mtime_ns INTEGER,
|
|
1115
|
+
size_bytes INTEGER,
|
|
1116
|
+
inode INTEGER,
|
|
1117
|
+
created_at INTEGER NOT NULL
|
|
1118
|
+
)
|
|
1119
|
+
`).run(),e.prepare("CREATE INDEX idx_task_files_task_id ON task_files(task_id)").run(),e.prepare("CREATE INDEX idx_task_files_path ON task_files(path)").run()),e.prepare("UPDATE server_state SET schema_version = 76 WHERE id = 1").run(),console.info("[db migration v76] task_files table created for workspace snapshot inventory")}catch(r){throw new Error(`Schema v76 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<77)try{e.prepare("SELECT count(*) as cnt FROM sqlite_master WHERE type='table' AND name='editor_scores'").get().cnt>0||(e.prepare(`
|
|
1120
|
+
CREATE TABLE editor_scores (
|
|
1121
|
+
id TEXT PRIMARY KEY,
|
|
1122
|
+
template_run_id TEXT NOT NULL,
|
|
1123
|
+
candidate_id TEXT NOT NULL,
|
|
1124
|
+
scores TEXT NOT NULL,
|
|
1125
|
+
selected INTEGER NOT NULL DEFAULT 0,
|
|
1126
|
+
editor_notes TEXT,
|
|
1127
|
+
brief_diff TEXT,
|
|
1128
|
+
created_at INTEGER NOT NULL
|
|
1129
|
+
)
|
|
1130
|
+
`).run(),e.prepare("CREATE INDEX idx_editor_scores_template_run_id ON editor_scores(template_run_id)").run(),e.prepare("CREATE INDEX idx_editor_scores_created_at ON editor_scores(created_at)").run()),e.prepare("UPDATE server_state SET schema_version = 77 WHERE id = 1").run(),console.info("[db migration v77] editor_scores table created for podcast Phase 2 retrospective")}catch(r){throw new Error(`Schema v77 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<78)try{e.prepare("PRAGMA table_info(artifacts)").all().some(t=>t.name==="artifact_role")||e.prepare("ALTER TABLE artifacts ADD COLUMN artifact_role TEXT").run(),e.prepare("UPDATE server_state SET schema_version = 78 WHERE id = 1").run(),console.info("[db migration v78] artifacts.artifact_role column added for expectedArtifacts contract")}catch(r){throw new Error(`Schema v78 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<79)try{let r=e.prepare("PRAGMA table_info(beliefs)").all();r.some(E=>E.name==="scope_key")||e.prepare("ALTER TABLE beliefs ADD COLUMN scope_key TEXT").run(),r.some(E=>E.name==="status")||e.prepare("ALTER TABLE beliefs ADD COLUMN status TEXT NOT NULL DEFAULT 'candidate'").run(),r.some(E=>E.name==="trial_count")||e.prepare("ALTER TABLE beliefs ADD COLUMN trial_count INTEGER NOT NULL DEFAULT 0").run(),r.some(E=>E.name==="delta_sum")||e.prepare("ALTER TABLE beliefs ADD COLUMN delta_sum REAL NOT NULL DEFAULT 0").run(),r.some(E=>E.name==="expires_at")||e.prepare("ALTER TABLE beliefs ADD COLUMN expires_at INTEGER").run(),r.some(E=>E.name==="success_ema")||e.prepare("ALTER TABLE beliefs ADD COLUMN success_ema REAL").run(),e.exec(`
|
|
1131
|
+
CREATE TABLE IF NOT EXISTS belief_scopes (
|
|
1132
|
+
scope_key TEXT PRIMARY KEY,
|
|
1133
|
+
role_id TEXT NOT NULL,
|
|
1134
|
+
step_kind TEXT NOT NULL,
|
|
1135
|
+
score_ema REAL,
|
|
1136
|
+
score_var_ema REAL NOT NULL DEFAULT 0,
|
|
1137
|
+
sample_count INTEGER NOT NULL DEFAULT 0,
|
|
1138
|
+
current_challenger_id TEXT,
|
|
1139
|
+
updated_at INTEGER NOT NULL
|
|
1140
|
+
)
|
|
1141
|
+
`),e.exec("CREATE INDEX IF NOT EXISTS idx_beliefs_scope_status ON beliefs(scope_key, status)"),e.exec("CREATE INDEX IF NOT EXISTS idx_beliefs_expires ON beliefs(expires_at)");let t=14*86400*1e3,i=Date.now()+t;e.prepare("UPDATE beliefs SET scope_key = role_id || '::pool', status = 'candidate', expires_at = ? WHERE scope_key IS NULL").run(i),e.prepare("UPDATE server_state SET schema_version = 79 WHERE id = 1").run(),console.info("[db migration v79] beliefs scope/status columns + belief_scopes table created")}catch(r){throw new Error(`Schema v79 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<80)try{e.exec(`
|
|
1142
|
+
CREATE TABLE IF NOT EXISTS user_feedback (
|
|
1143
|
+
id TEXT PRIMARY KEY,
|
|
1144
|
+
execution_id TEXT NOT NULL,
|
|
1145
|
+
step_id TEXT,
|
|
1146
|
+
rating TEXT NOT NULL CHECK(rating IN ('good','bad')),
|
|
1147
|
+
created_at INTEGER NOT NULL
|
|
1148
|
+
)
|
|
1149
|
+
`),e.prepare("UPDATE server_state SET schema_version = 80 WHERE id = 1").run(),console.info("[db migration v80] user_feedback table created")}catch(r){throw new Error(`Schema v80 migration failed: ${r}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<81)try{e.prepare("PRAGMA table_info(roles)").all().some(t=>t.name==="task_seq")||e.exec("ALTER TABLE roles ADD COLUMN task_seq INTEGER NOT NULL DEFAULT 0"),e.prepare("DROP TRIGGER IF EXISTS beliefs_fts_insert").run(),e.prepare("DROP TRIGGER IF EXISTS beliefs_fts_delete").run(),e.prepare("DROP TRIGGER IF EXISTS beliefs_fts_update").run(),e.prepare("DROP TABLE IF EXISTS beliefs_fts").run(),e.exec(`
|
|
1150
|
+
CREATE TABLE beliefs_new (
|
|
1151
|
+
id TEXT PRIMARY KEY,
|
|
1152
|
+
role_id TEXT NOT NULL,
|
|
1153
|
+
content TEXT NOT NULL,
|
|
1154
|
+
is_anti INTEGER NOT NULL DEFAULT 0 CHECK(is_anti IN (0, 1)),
|
|
1155
|
+
evidence_obs_ids TEXT,
|
|
1156
|
+
embedding BLOB,
|
|
1157
|
+
superseded_by TEXT,
|
|
1158
|
+
created_at INTEGER NOT NULL,
|
|
1159
|
+
last_used_at INTEGER NOT NULL,
|
|
1160
|
+
last_validated_at INTEGER NOT NULL,
|
|
1161
|
+
scope_key TEXT,
|
|
1162
|
+
status TEXT NOT NULL DEFAULT 'active' CHECK(status IN ('active','archived')),
|
|
1163
|
+
success_ema REAL,
|
|
1164
|
+
inject_count INTEGER NOT NULL DEFAULT 0
|
|
1165
|
+
)
|
|
1166
|
+
`),e.exec(`
|
|
1167
|
+
INSERT INTO beliefs_new (id, role_id, content, is_anti, evidence_obs_ids, embedding, superseded_by,
|
|
1168
|
+
created_at, last_used_at, last_validated_at, scope_key, status, success_ema, inject_count)
|
|
1169
|
+
SELECT id, role_id, content, is_anti, evidence_obs_ids, embedding, superseded_by,
|
|
1170
|
+
created_at, 0, last_validated_at, scope_key, 'active',
|
|
1171
|
+
COALESCE(success_ema, 0.5), 0
|
|
1172
|
+
FROM beliefs
|
|
1173
|
+
`),e.exec("DROP TABLE beliefs"),e.exec("ALTER TABLE beliefs_new RENAME TO beliefs"),e.exec("CREATE INDEX IF NOT EXISTS idx_beliefs_role ON beliefs(role_id)"),e.exec("CREATE INDEX IF NOT EXISTS idx_beliefs_last_used ON beliefs(last_used_at)"),e.exec("CREATE INDEX IF NOT EXISTS idx_beliefs_status ON beliefs(status)"),e.exec("CREATE INDEX IF NOT EXISTS idx_beliefs_scope ON beliefs(scope_key)"),e.exec(`
|
|
1174
|
+
CREATE VIRTUAL TABLE beliefs_fts USING fts5(content, content='beliefs', content_rowid='rowid')
|
|
1175
|
+
`),e.exec(`
|
|
1176
|
+
CREATE TRIGGER beliefs_fts_insert AFTER INSERT ON beliefs BEGIN
|
|
1177
|
+
INSERT INTO beliefs_fts(rowid, content) VALUES (new.rowid, new.content);
|
|
1178
|
+
END
|
|
1179
|
+
`),e.exec(`
|
|
1180
|
+
CREATE TRIGGER beliefs_fts_delete AFTER DELETE ON beliefs BEGIN
|
|
1181
|
+
INSERT INTO beliefs_fts(beliefs_fts, rowid, content) VALUES ('delete', old.rowid, old.content);
|
|
1182
|
+
END
|
|
1183
|
+
`),e.exec(`
|
|
1184
|
+
CREATE TRIGGER beliefs_fts_update AFTER UPDATE ON beliefs BEGIN
|
|
1185
|
+
INSERT INTO beliefs_fts(beliefs_fts, rowid, content) VALUES ('delete', old.rowid, old.content);
|
|
1186
|
+
INSERT INTO beliefs_fts(rowid, content) VALUES (new.rowid, new.content);
|
|
1187
|
+
END
|
|
1188
|
+
`),e.exec("INSERT INTO beliefs_fts(rowid, content) SELECT rowid, content FROM beliefs"),e.exec("DROP TABLE IF EXISTS belief_scopes"),e.prepare("UPDATE server_state SET schema_version = 81 WHERE id = 1").run(),console.info("[db migration v81] belief evolution v3: three-state collapse + task_seq clock + inject_count (DP-001) + FTS5 rebuild")}catch(r){throw new Error(`Schema v81 migration failed: ${r instanceof Error?r.message:String(r)}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<82)try{let r=e.prepare("UPDATE beliefs SET scope_key = NULL WHERE scope_key LIKE '%::pool'").run(),t=e.prepare("UPDATE beliefs SET last_used_at = COALESCE((SELECT task_seq FROM roles WHERE roles.id = beliefs.role_id), 0) WHERE last_used_at > 1000000000").run();e.prepare("UPDATE server_state SET schema_version = 82 WHERE id = 1").run(),console.info(`[db migration v82] belief data normalization: ${r.changes} ::pool rows nulled, ${t.changes} ms-timestamp last_used_at clamped`)}catch(r){throw new Error(`Schema v82 migration failed: ${r instanceof Error?r.message:String(r)}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<83)try{e.prepare("PRAGMA table_info(tasks)").all().some(t=>t.name==="cost_breakdown")||e.exec("ALTER TABLE tasks ADD COLUMN cost_breakdown TEXT"),e.prepare("UPDATE server_state SET schema_version = 83 WHERE id = 1").run(),console.info("[db migration v83] tasks.cost_breakdown column added")}catch(r){throw new Error(`Schema v83 migration failed: ${r instanceof Error?r.message:String(r)}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<84)try{e.exec(`
|
|
1189
|
+
CREATE TABLE IF NOT EXISTS llm_costs (
|
|
1190
|
+
id TEXT PRIMARY KEY,
|
|
1191
|
+
call_id TEXT NOT NULL,
|
|
1192
|
+
source TEXT NOT NULL,
|
|
1193
|
+
model TEXT NOT NULL,
|
|
1194
|
+
role_id TEXT,
|
|
1195
|
+
task_id TEXT,
|
|
1196
|
+
session_id TEXT,
|
|
1197
|
+
message_id TEXT,
|
|
1198
|
+
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
1199
|
+
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
1200
|
+
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
1201
|
+
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
|
1202
|
+
cost_usd REAL NOT NULL DEFAULT 0,
|
|
1203
|
+
priced INTEGER NOT NULL DEFAULT 0,
|
|
1204
|
+
estimated INTEGER NOT NULL DEFAULT 0,
|
|
1205
|
+
sdk_total_cost_usd REAL,
|
|
1206
|
+
num_turns INTEGER,
|
|
1207
|
+
created_at INTEGER NOT NULL
|
|
1208
|
+
);
|
|
1209
|
+
CREATE INDEX IF NOT EXISTS idx_llm_costs_created ON llm_costs(created_at);
|
|
1210
|
+
CREATE INDEX IF NOT EXISTS idx_llm_costs_source ON llm_costs(source);
|
|
1211
|
+
CREATE INDEX IF NOT EXISTS idx_llm_costs_model ON llm_costs(model);
|
|
1212
|
+
CREATE INDEX IF NOT EXISTS idx_llm_costs_role ON llm_costs(role_id);
|
|
1213
|
+
`);let r=e.prepare("SELECT id, cost_usd, token_usage, cost_breakdown, created_at FROM tasks WHERE cost_usd IS NOT NULL").all(),t=e.prepare(`
|
|
1214
|
+
INSERT OR IGNORE INTO llm_costs
|
|
1215
|
+
(id, call_id, source, model, role_id, task_id, session_id, message_id,
|
|
1216
|
+
input_tokens, output_tokens, cache_read_tokens, cache_creation_tokens,
|
|
1217
|
+
cost_usd, priced, estimated, sdk_total_cost_usd, num_turns, created_at)
|
|
1218
|
+
VALUES
|
|
1219
|
+
(?, ?, 'task', ?, NULL, ?, NULL, NULL, ?, ?, ?, ?, ?, ?, ?, NULL, NULL, ?)
|
|
1220
|
+
`),i=0;for(let E of r){let n=`backfill-${E.id}`,T={};if(E.token_usage)try{T=JSON.parse(E.token_usage)}catch{}let a=null;if(E.cost_breakdown)try{a=JSON.parse(E.cost_breakdown)}catch{}if(a&&Array.isArray(a.perModel)&&a.perModel.length>0)for(let d=0;d<a.perModel.length;d++){let o=a.perModel[d],f=`${n}-${d}`;t.run(f,n,o.model,E.id,o.inputTokens??0,o.outputTokens??0,o.cacheReadTokens??0,o.cacheCreationTokens??0,o.costUsd??0,o.priced?1:0,o.estimated?1:0,E.created_at??Date.now()),i++}else{let d=`${n}-0`,o=E.cost_usd>0?1:0;t.run(d,n,"unknown",E.id,T.input??0,T.output??0,0,0,E.cost_usd,o,0,E.created_at??Date.now()),i++}}e.prepare("UPDATE server_state SET schema_version = 84 WHERE id = 1").run(),console.info(`[db migration v84] llm_costs table created + ${i} rows backfilled from tasks`)}catch(r){throw new Error(`Schema v84 migration failed: ${r instanceof Error?r.message:String(r)}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<85)try{let r=e.prepare("PRAGMA table_info(chat_messages)").all(),t=i=>r.some(E=>E.name===i);t("cost_usd")||e.exec("ALTER TABLE chat_messages ADD COLUMN cost_usd REAL"),t("token_usage")||e.exec("ALTER TABLE chat_messages ADD COLUMN token_usage TEXT"),t("model")||e.exec("ALTER TABLE chat_messages ADD COLUMN model TEXT"),e.prepare("UPDATE server_state SET schema_version = 85 WHERE id = 1").run(),console.info("[db migration v85] chat_messages cost columns added (cost_usd, token_usage, model)")}catch(r){throw new Error(`Schema v85 migration failed: ${r instanceof Error?r.message:String(r)}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<87)try{e.prepare("PRAGMA table_info(tasks)").all().some(E=>E.name==="cost_breakdown")||(e.exec("ALTER TABLE tasks ADD COLUMN cost_breakdown TEXT"),console.info("[db migration v87] tasks.cost_breakdown re-added (drift repair)"));let t=e.prepare("PRAGMA table_info(chat_messages)").all(),i=E=>t.some(n=>n.name===E);i("cost_usd")||(e.exec("ALTER TABLE chat_messages ADD COLUMN cost_usd REAL"),console.info("[db migration v87] chat_messages.cost_usd re-added (drift repair)")),i("token_usage")||(e.exec("ALTER TABLE chat_messages ADD COLUMN token_usage TEXT"),console.info("[db migration v87] chat_messages.token_usage re-added (drift repair)")),i("model")||(e.exec("ALTER TABLE chat_messages ADD COLUMN model TEXT"),console.info("[db migration v87] chat_messages.model re-added (drift repair)")),e.prepare("UPDATE server_state SET schema_version = 87 WHERE id = 1").run()}catch(r){throw new Error(`Schema v87 migration failed: ${r instanceof Error?r.message:String(r)}`)}if((e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0)<88)try{e.prepare("PRAGMA table_info(chat_sessions)").all().some(t=>t.name==="sdk_session_id")||(e.exec("ALTER TABLE chat_sessions ADD COLUMN sdk_session_id TEXT"),console.info("[db migration v88] chat_sessions.sdk_session_id added")),e.prepare("UPDATE server_state SET schema_version = 88 WHERE id = 1").run()}catch(r){throw new Error(`Schema v88 migration failed: ${r instanceof Error?r.message:String(r)}`)}try{let s=e.prepare("SELECT id, name, steps, role_preference FROM task_templates WHERE enabled = 1").all(),r=0;for(let t of s){if(t.role_preference)continue;let i;try{i=JSON.parse(t.steps)}catch{continue}if(!Array.isArray(i))continue;let E=!1;for(let n of i){let T=typeof n.roleId=="string"&&n.roleId.length>0,a=n.autoSelectRole===!0;!T&&!a&&(n.autoSelectRole=!0,n.requirements===void 0&&(n.requirements={}),E=!0)}E&&(e.prepare("UPDATE task_templates SET steps = ?, updated_at = ? WHERE id = ?").run(JSON.stringify(i),Date.now(),t.id),r+=1,console.info(`[db migration] template auto-repaired: id=${t.id} name=${t.name}`))}r>0&&console.info(`[db migration] auto-repaired ${r} enabled template(s) with missing role config`)}catch(s){console.error("[db migration] template auto-repair failed:",s)}}function Be(){if(A)return A;let e=process.env.ADAM_DB_PATH||W,_=Ne(e);return ce(_)||le(_,{recursive:!0}),A=new ae(e),A.pragma("journal_mode = WAL"),A.pragma("foreign_keys = ON"),A.pragma("trusted_schema = ON"),me(A),A}function We(){A&&(A.close(),A=null)}var D,re,h,w,b,ee,de,pe,A,Le=H(()=>{Y();K();Z();D=g("store"),re=["work","flow_complete"].join(""),h=`${re}:`,w=["work","flow_executions"].join(""),b=["work","flow_artifacts"].join(""),ee=["idx","work","flow_executions_event_id"].join("_"),de=["idx","work","flow_artifacts_execution"].join("_"),pe=["idx","work","flow_artifacts_step"].join("_"),A=null});export{Te as a,Xe as b,Se as c,ge as d,Ce as e,J as f,Ue as g,De as h,he as i,xe as j,ye as k,Z as l,me as m,Be as n,We as o,Le as p};
|