adam-agent-server 1.18.0 → 1.19.1
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 → App-522DTURQ.js} +10 -10
- package/dist/approval-handler-GXIVBJ4Z.js +1 -0
- package/dist/artifacts-DDHH47IE.js +1 -0
- package/dist/audit-diagnostics-HLHS3MHM.js +1 -0
- package/dist/audit-manager-PDMOR2MX.js +1 -0
- package/dist/bree-engine-6UKRI4UN.js +1 -0
- package/dist/{channels-2TWTBE6Y.js → channels-3J6U6GYH.js} +1 -1
- package/dist/channels-YOBMSBWV.js +1 -0
- package/dist/chat-tool-calls-5Z53IXRF.js +1 -0
- package/dist/{chunk-2CE2WUUZ.js → chunk-2BLSA25Q.js} +1 -1
- package/dist/{chunk-2A2TXYT3.js → chunk-3JTHJ3FZ.js} +3 -3
- package/dist/{chunk-2JIQT2CI.js → chunk-4NRIKWSD.js} +1 -1
- package/dist/{chunk-HRPMRWHD.js → chunk-5ZL6RHPE.js} +1 -1
- package/dist/{chunk-BE653A45.js → chunk-6GVYOHD5.js} +5 -5
- package/dist/{chunk-NSUXJ2VA.js → chunk-6NIWU43Z.js} +1 -1
- package/dist/{chunk-QYI44EP6.js → chunk-6SBLFYCU.js} +1 -1
- package/dist/{chunk-V2MMQ3SH.js → chunk-AKQ3AFVI.js} +1 -1
- package/dist/{chunk-HL373H4P.js → chunk-AMJJ2WGU.js} +1 -1
- package/dist/chunk-CQDOIHPV.js +1 -0
- package/dist/{chunk-XAPJJAJQ.js → chunk-EXB2JIBR.js} +1 -1
- package/dist/{chunk-VWX2B6OM.js → chunk-G5I76LX2.js} +1 -1
- package/dist/{chunk-LKGYQJMS.js → chunk-GYOZGA7G.js} +1 -1
- package/dist/{chunk-NUOTFUNF.js → chunk-ISTUK7Q6.js} +1 -1
- package/dist/chunk-ITVCPC7G.js +1 -0
- package/dist/{chunk-NXGR3PRY.js → chunk-J2VSAXVU.js} +1 -1
- package/dist/chunk-J4JO7O3T.js +182 -0
- package/dist/{chunk-5G64P4KE.js → chunk-JRRNGKDK.js} +1 -1
- package/dist/{chunk-Z2APBKIT.js → chunk-KO6UB6VW.js} +1 -1
- package/dist/chunk-LE5YRP37.js +14 -0
- package/dist/chunk-N4BV2WAU.js +1 -0
- package/dist/{chunk-JZBXLN7M.js → chunk-NUTGYMDP.js} +1 -1
- package/dist/{chunk-OBD4245G.js → chunk-NX3CIEZA.js} +1 -1
- package/dist/{chunk-ZQN6JZIJ.js → chunk-P2EDMFVO.js} +1 -1
- package/dist/{chunk-JYZTIE2J.js → chunk-PU2T7HBY.js} +1 -1
- package/dist/{chunk-UCUELFCS.js → chunk-PZH5NKUL.js} +11 -11
- package/dist/{chunk-SKHMWKJT.js → chunk-QF3B4OWI.js} +1 -1
- package/dist/{chunk-KS24764D.js → chunk-QQWUWGSK.js} +2 -2
- package/dist/{chunk-O6L4UVLV.js → chunk-QX65LEYA.js} +1 -1
- package/dist/chunk-R3MSLP6P.js +32 -0
- package/dist/{chunk-LCD5DVS6.js → chunk-SDHMBWVC.js} +1 -1
- package/dist/{chunk-SGLZAIVL.js → chunk-SONOE4ZJ.js} +1 -1
- package/dist/{chunk-47HJPIUA.js → chunk-T7EKW3B7.js} +1 -1
- package/dist/{chunk-IEBAOZED.js → chunk-VVPB3TD4.js} +1 -1
- package/dist/{chunk-4JHACUZY.js → chunk-X3PJNX2R.js} +1 -1
- package/dist/{chunk-6WQFYV3N.js → chunk-XEXSXMWK.js} +1 -1
- package/dist/{chunk-BMCNQGUH.js → chunk-YGR5ZTGT.js} +1 -1
- package/dist/{chunk-JROGEBP5.js → chunk-YGZQMZTA.js} +1 -1
- package/dist/{chunk-TA5PFK5C.js → chunk-YI2QQTZE.js} +1 -1
- package/dist/chunk-ZARKPBI2.js +143 -0
- package/dist/{chunk-WY5BOCQP.js → chunk-ZEGZ2I35.js} +16 -16
- package/dist/cli.js +2 -2
- package/dist/{config-U624HJKI.js → config-7Y7I7KX4.js} +1 -1
- package/dist/config-Z6KFEFJO.js +1 -0
- package/dist/db-P7ELD5DS.js +1 -0
- package/dist/{delivery-log-QMQQHES4.js → delivery-log-EVRKJ5GD.js} +1 -1
- package/dist/engine-FE7NCHOG.js +1 -0
- package/dist/{evolution-audit-XF4KZZMP.js → evolution-audit-XIWF3JIF.js} +1 -1
- package/dist/execution-tools-PGURN3N6.js +1 -0
- package/dist/{external-api-435WH6V3.js → external-api-DSLQDRZ2.js} +1 -1
- package/dist/index.js +70 -67
- package/dist/{learner-4CJ7BSCN.js → learner-PWDQUZ5O.js} +1 -1
- package/dist/{memories-NJFKSOL5.js → memories-2OJFLLBT.js} +1 -1
- package/dist/{memory-extractor-UQI75BBK.js → memory-extractor-N7M4YSPL.js} +1 -1
- package/dist/{memory-gc-NTZVUGJX.js → memory-gc-R42SPM52.js} +1 -1
- package/dist/memory-service-V7B5MY37.js +1 -0
- package/dist/outbound-gateway-NHNHVHF2.js +1 -0
- package/dist/presets-H2UV3HIF.js +1 -0
- package/dist/{reflection-job-F4BZA2E3.js → reflection-job-ECJX5ERQ.js} +1 -1
- package/dist/role-presets-7SWGUPV2.js +1 -0
- package/dist/role-workspace-AOYIGLG4.js +1 -0
- package/dist/{roles-WDMUBWQP.js → roles-5TWJBGAQ.js} +1 -1
- package/dist/{session-manager-XFUKWEC7.js → session-manager-5P2FAEV3.js} +1 -1
- package/dist/skill-registry-XOX4OSHY.js +1 -0
- package/dist/{task-templates-BIVCRNXA.js → task-templates-CTQHB6TA.js} +1 -1
- package/dist/template-dispatch-Z2TKWOMY.js +1 -0
- package/package.json +1 -1
- package/web/dist/assets/{ChannelDetail-D0FBZoAX.js → ChannelDetail-CSq9o5fq.js} +1 -1
- package/web/dist/assets/{Channels-Cztxvsa2.js → Channels-CAxTh1Bp.js} +1 -1
- package/web/dist/assets/Chat-PUz41HFr.js +2 -0
- package/web/dist/assets/{Cost-K8-4xqBe.js → Cost-BHcsPz5T.js} +1 -1
- package/web/dist/assets/{Dashboard-BXqFb_Vr.js → Dashboard-BT39_iWc.js} +1 -1
- package/web/dist/assets/{EnvVarEditor-FiiJazzp.js → EnvVarEditor-D_1d7bTJ.js} +1 -1
- package/web/dist/assets/{EventDefDetail-C3S1G0K8.js → EventDefDetail-jKN3gO_7.js} +1 -1
- package/web/dist/assets/{Events-BKxqZ9j6.js → Events-CpeHg3fh.js} +1 -1
- package/web/dist/assets/{Evolution-DFcSm6Rw.js → Evolution-DsWyv2_a.js} +1 -1
- package/web/dist/assets/{ExtensionDetail-C8aPpyLv.js → ExtensionDetail-CJHNaNii.js} +1 -1
- package/web/dist/assets/{Extensions-MLZk05j0.js → Extensions-Pg2vx_ZK.js} +1 -1
- package/web/dist/assets/{FeatureRequests-D_4XaQ7F.js → FeatureRequests-3Yl8wTNT.js} +1 -1
- package/web/dist/assets/{GoalDetail-DVU7c0aR.js → GoalDetail-L3T1zqqs.js} +1 -1
- package/web/dist/assets/{Goals-D3h4WMjU.js → Goals-B-__r-Yq.js} +1 -1
- package/web/dist/assets/{Logs-D5MQv6Yw.js → Logs-CMkjUkmu.js} +1 -1
- package/web/dist/assets/{Memories-Dls71I2i.js → Memories-Q1eKfPQ2.js} +1 -1
- package/web/dist/assets/{Mistakes-BZcTg0vP.js → Mistakes-BROkixt_.js} +1 -1
- package/web/dist/assets/{Plugins-CwCHGzI6.js → Plugins-v17MyPVe.js} +1 -1
- package/web/dist/assets/{RoleDetail-B2M6ALSl.js → RoleDetail-DCGFBLP1.js} +2 -2
- package/web/dist/assets/{Roles-FEHqm_Jf.js → Roles-C7SNebvY.js} +1 -1
- package/web/dist/assets/{Settings-rdVQMfqX.js → Settings-QuKwKbKg.js} +1 -1
- package/web/dist/assets/{Strategies-CwJ9JQ-X.js → Strategies-CXQYvCkc.js} +1 -1
- package/web/dist/assets/{Switch-1JjR4Imr.js → Switch--h1rqagh.js} +1 -1
- package/web/dist/assets/{TaskDetail-h12WxjfG.js → TaskDetail-B0G5ZjDD.js} +1 -1
- package/web/dist/assets/{Work-CfzFRSZX.js → Work-DbFst_9-.js} +1 -1
- package/web/dist/assets/index-D35OGE0z.css +2 -0
- package/web/dist/assets/{index-CXEJd-0s.js → index-Dd3NDYZR.js} +2 -2
- package/web/dist/assets/{usePluginsWithUsage-4iLJAPjH.js → usePluginsWithUsage-DpTxJuFQ.js} +1 -1
- package/web/dist/index.html +2 -2
- package/dist/approval-handler-BWA7UIKN.js +0 -1
- package/dist/artifacts-MAYKOTA2.js +0 -1
- package/dist/audit-diagnostics-K3LUWXTI.js +0 -1
- package/dist/audit-manager-6WL2V6JG.js +0 -1
- package/dist/bree-engine-KYD4GKQK.js +0 -1
- package/dist/channels-PWDSTYNR.js +0 -1
- package/dist/chat-tool-calls-WJDFQ54U.js +0 -1
- package/dist/chunk-3UFEOB6P.js +0 -143
- package/dist/chunk-MTRLUW7Z.js +0 -1
- package/dist/chunk-QTGAK62Z.js +0 -14
- package/dist/chunk-TWOJVEO7.js +0 -32
- package/dist/chunk-VO24C673.js +0 -1
- package/dist/chunk-VPMHZJS2.js +0 -1
- package/dist/chunk-ZJ3TS4FL.js +0 -182
- package/dist/config-X7A6NA73.js +0 -1
- package/dist/db-XODNIJSJ.js +0 -1
- package/dist/engine-OQXDHA2R.js +0 -1
- package/dist/execution-tools-BR4T4MMW.js +0 -1
- package/dist/memory-service-3RLVOF2C.js +0 -1
- package/dist/outbound-gateway-NJNSN2ZX.js +0 -1
- package/dist/presets-SUJRFRJC.js +0 -1
- package/dist/role-presets-VEYTGYA4.js +0 -1
- package/dist/role-workspace-AIVHPX5P.js +0 -1
- package/dist/skill-registry-LARMNUT5.js +0 -1
- package/dist/template-dispatch-6FPJQN6A.js +0 -1
- package/web/dist/assets/Chat-Ce72TtUi.js +0 -2
- package/web/dist/assets/index-CarTGiGO.css +0 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{d as B,e as W,
|
|
1
|
+
import{d as B,e as W,i as Y}from"./chunk-ITVCPC7G.js";import{c as g,h as K}from"./chunk-EZLBMUQD.js";import{b as H}from"./chunk-5PELJRUQ.js";import{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,writeFileSync as ne}from"fs";import{dirname as q,extname as oe,isAbsolute as V,join as L,sep as R}from"path";import{v4 as Te}from"uuid";function U(){return process.env.ADAM_TEST_DIR||B}function _e(){return L(U(),["work","flows"].join(""))}function F(){return L(U(),"template-executions")}function z(e){return L(F(),e,"artifacts")}function J(e){let _=z(e);return k(_,{recursive:!0}),_}function ge(e,_,l){if(!V(e))throw new Error(`path must be absolute: ${e}`);let a=S(_),d=a.endsWith(R)?a:a+R;if(l){let N=S(e),u=N.endsWith(R)?N:N+R;if(u===d||u.startsWith(d))return;throw new Error(`path escapes workspace: ${e} (resolved=${N}, root=${a})`)}if(I(e)&&ie(e).isSymbolicLink())throw new Error(`destination exists and is a symlink (refused): ${e}`);let m=S(q(e)),O=m.endsWith(R)?m:m+R;if(!(O===d||O.startsWith(d)))throw new Error(`destination escapes workspace: ${e} (parent resolved=${m}, root=${a})`)}function Ce(e){let _=J(e.executionId),l=L(_,`${e.artifactId}.bin`);return y(e.sourcePath,l),{blobPath:l,sizeBytes:C(l).size}}async function Ue(e){let{createArtifact:_}=await import("./artifacts-DDHH47IE.js"),l=Te(),a=L(J(e.executionId),`${l}.bin`);ne(a,e.text,"utf8");let d=Buffer.byteLength(e.text,"utf8");return _({id:l,sourceKind:"template_step",executionId:e.executionId,stepId:e.stepId,key:e.key,kind:"file",blobPath:a,mime:"text/markdown",originalFilename:`${e.key}.md`,sizeBytes:d,createdAt:Date.now(),roleId:e.roleId}),{artifactId:l,sizeBytes:d}}function De(e){j(e)}function he(e){if(!I(e.blobPath))throw new Error(`blob file missing on disk: ${e.blobPath}`);return y(e.blobPath,e.destPath),{sizeBytes:C(e.destPath).size}}function Q(e){try{j(e)}catch(_){X.warn({err:_,blobPath:e},"Failed to remove TemplateExecution artifact blob")}}function xe(e){try{$(L(F(),e),{recursive:!0,force:!0})}catch(_){X.warn({err:_,executionId:e},"Failed to remove TemplateExecution artifacts directory")}}function ye(e,_,l){let a=z(e);if(!I(a))return 0;let d=0;for(let m of Ee(a)){if(oe(m)!==".bin")continue;let O=m.slice(0,-4);if(_.has(O))continue;let N=L(a,m),u=C(N);Date.now()-u.mtimeMs<l||(Q(N),d++)}return d}async function ke(e,_){let{deleteArtifactsByExecutionAndStep:l}=await import("./artifacts-DDHH47IE.js"),a=l(e,_),d=0;for(let m of a)m.blobPath&&I(m.blobPath)&&(Q(m.blobPath),d++);return X.debug({executionId:e,stepId:_,deletedRows:a.length,deletedFiles:d},"cleanSlatePriorAttempt: done"),{deletedRows:a.length,deletedFiles:d}}function ae(e,_){let l=U();if(e==="template"){if(!_)throw new Error("template kind requires executionId");return L(l,"template-executions",_,"artifacts")}return L(l,"artifacts",e)}function Fe(e){let _=ae(e.kind,e.executionId);k(_,{recursive:!0});let l=L(_,`${e.artifactId}.bin`);return y(e.sourcePath,l),{blobPath:l,sizeBytes:C(l).size}}function we(e){try{if(!V(e))return!1;let _=S(e),l=S(U()),a=l.endsWith(R)?l:l+R,d=_.endsWith(R)?_:_+R;return d===a||d.startsWith(a)}catch{return!1}}function Z(e){let _=_e();if(!I(_)||!e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='template_execution_artifacts'").get())return;let a=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(),d=_.endsWith(R)?_:_+R,m=F(),O=new Set;for(let N of a){if(!N.blob_path.startsWith(d))continue;let u=L(_,N.execution_id),v=L(m,N.execution_id),x=L(m,N.blob_path.slice(d.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:N.id,blobPath:N.blob_path},"TemplateExecution artifact migration skipped missing copied blob");continue}e.prepare("UPDATE template_execution_artifacts SET blob_path = ? WHERE id = ?").run(x,N.id),O.add(N.execution_id)}catch(M){X.warn({err:M,artifactId:N.id,executionId:N.execution_id},"TemplateExecution artifact migration failed")}}for(let N of O){let u=L(m,N);if(I(u))try{$(L(_,N),{recursive:!0,force:!0})}catch(v){X.warn({err:v,executionId:N},"Failed to remove migrated legacy artifact directory")}}}var X,b=H(()=>{"use strict";Y();K();X=g("watchdog")});import ce from"better-sqlite3";import{existsSync as le,mkdirSync as Ne}from"fs";import{dirname as de}from"path";function Le(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-VO24C673.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 a=e.prepare("SELECT schema_version FROM server_state WHERE id = 1").get()?.schema_version??0;if(a<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,
|
|
@@ -402,7 +402,7 @@ import{d as B,e as W,h as Y}from"./chunk-VO24C673.js";import{c as g,h as K}from"
|
|
|
402
402
|
|
|
403
403
|
CREATE INDEX IF NOT EXISTS idx_calibration_goal ON calibration_history(goal_id);
|
|
404
404
|
CREATE INDEX IF NOT EXISTS idx_calibration_computed ON calibration_history(computed_at);
|
|
405
|
-
`),
|
|
405
|
+
`),a<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(`
|
|
406
406
|
CREATE TABLE IF NOT EXISTS roles (
|
|
407
407
|
id TEXT PRIMARY KEY,
|
|
408
408
|
name TEXT NOT NULL UNIQUE,
|
|
@@ -601,7 +601,7 @@ import{d as B,e as W,h as Y}from"./chunk-VO24C673.js";import{c as g,h as K}from"
|
|
|
601
601
|
bound_at INTEGER NOT NULL,
|
|
602
602
|
PRIMARY KEY (role_id, plugin_id)
|
|
603
603
|
);
|
|
604
|
-
`),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(a<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(a<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")),a<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")),a<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(a<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")),a<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")),a<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(a<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(`
|
|
605
605
|
CREATE TABLE IF NOT EXISTS delivery_log_new (
|
|
606
606
|
id TEXT PRIMARY KEY,
|
|
607
607
|
rule_id TEXT REFERENCES delivery_rules(id),
|
|
@@ -618,7 +618,7 @@ import{d as B,e as W,h as Y}from"./chunk-VO24C673.js";import{c as g,h as K}from"
|
|
|
618
618
|
message_type TEXT
|
|
619
619
|
)
|
|
620
620
|
`),e.exec(`INSERT INTO delivery_log_new (id, rule_id, task_id, status, target, content, attempts, error, created_at, delivered_at, expires_at)
|
|
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(),
|
|
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(),a<25&&(e.exec(`
|
|
622
622
|
CREATE TABLE IF NOT EXISTS template_executions (
|
|
623
623
|
id TEXT PRIMARY KEY,
|
|
624
624
|
template_id TEXT NOT NULL,
|
|
@@ -629,7 +629,7 @@ import{d as B,e as W,h as Y}from"./chunk-VO24C673.js";import{c as g,h as K}from"
|
|
|
629
629
|
error TEXT,
|
|
630
630
|
FOREIGN KEY (template_id) REFERENCES task_templates(id)
|
|
631
631
|
)
|
|
632
|
-
`),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")),a<26){let s=`
|
|
633
633
|
CREATE TABLE IF NOT EXISTS template_execution_artifacts (
|
|
634
634
|
id TEXT PRIMARY KEY,
|
|
635
635
|
execution_id TEXT NOT NULL,
|
|
@@ -667,7 +667,7 @@ import{d as B,e as W,h as Y}from"./chunk-VO24C673.js";import{c as g,h as K}from"
|
|
|
667
667
|
ON artifact_access_log (execution_id, timestamp);
|
|
668
668
|
CREATE INDEX IF NOT EXISTS idx_artifact_access_log_role
|
|
669
669
|
ON artifact_access_log (role_id, timestamp);
|
|
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
|
|
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 c=!1;for(let[p,o]of s)if(p.test(T)){E.push(...o),c=!0,D.info({from:T,to:o},"Config: migrated approvalRequired pattern from regex to glob");break}c||(/[.+?^${}()|[\]\\]/.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(`
|
|
671
671
|
UPDATE task_templates
|
|
672
672
|
SET trigger_type='template_complete',
|
|
673
673
|
trigger_event=REPLACE(trigger_event, ?, 'template_complete:')
|
|
@@ -696,7 +696,7 @@ import{d as B,e as W,h as Y}from"./chunk-VO24C673.js";import{c as g,h as K}from"
|
|
|
696
696
|
WHERE type='table' AND name IN ('template_executions', ?)
|
|
697
697
|
ORDER BY CASE name WHEN 'template_executions' THEN 0 ELSE 1 END
|
|
698
698
|
LIMIT 1
|
|
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":
|
|
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":re;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(`
|
|
700
700
|
CREATE TABLE feature_requests (
|
|
701
701
|
id TEXT PRIMARY KEY,
|
|
702
702
|
source_session_id TEXT,
|
|
@@ -725,11 +725,11 @@ import{d as B,e as W,h as Y}from"./chunk-VO24C673.js";import{c as g,h as K}from"
|
|
|
725
725
|
created_at INTEGER NOT NULL,
|
|
726
726
|
updated_at INTEGER NOT NULL
|
|
727
727
|
)
|
|
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(
|
|
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(c=>c.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(`
|
|
729
729
|
UPDATE task_templates
|
|
730
730
|
SET trigger_type = 'template_complete'
|
|
731
731
|
WHERE trigger_type = ?
|
|
732
|
-
`).run(
|
|
732
|
+
`).run(te),e.prepare(`
|
|
733
733
|
UPDATE task_templates
|
|
734
734
|
SET trigger_event = REPLACE(trigger_event, ?, 'template_complete:')
|
|
735
735
|
WHERE trigger_event LIKE ?
|
|
@@ -745,7 +745,7 @@ import{d as B,e as W,h as Y}from"./chunk-VO24C673.js";import{c as g,h as K}from"
|
|
|
745
745
|
event_id TEXT,
|
|
746
746
|
FOREIGN KEY (template_id) REFERENCES task_templates(id)
|
|
747
747
|
)
|
|
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 ${
|
|
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 ${re}`).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(ee),t=e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='template_execution_artifacts'").get();r&&!t&&e.prepare(`ALTER TABLE ${ee} RENAME TO template_execution_artifacts`).run(),e.exec(`
|
|
749
749
|
CREATE TABLE IF NOT EXISTS template_execution_artifacts (
|
|
750
750
|
id TEXT PRIMARY KEY,
|
|
751
751
|
execution_id TEXT NOT NULL,
|
|
@@ -760,7 +760,7 @@ import{d as B,e as W,h as Y}from"./chunk-VO24C673.js";import{c as g,h as K}from"
|
|
|
760
760
|
UNIQUE(execution_id, step_id, key),
|
|
761
761
|
FOREIGN KEY (execution_id) REFERENCES template_executions(id) ON DELETE CASCADE
|
|
762
762
|
)
|
|
763
|
-
`),e.prepare(`DROP INDEX IF EXISTS ${
|
|
763
|
+
`),e.prepare(`DROP INDEX IF EXISTS ${pe}`).run(),e.prepare(`DROP INDEX IF EXISTS ${me}`).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(),Z(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(`
|
|
764
764
|
CREATE TABLE IF NOT EXISTS delayed_retries (
|
|
765
765
|
id TEXT PRIMARY KEY,
|
|
766
766
|
task_id TEXT NOT NULL,
|
|
@@ -799,7 +799,7 @@ import{d as B,e as W,h as Y}from"./chunk-VO24C673.js";import{c as g,h as K}from"
|
|
|
799
799
|
CREATE INDEX IF NOT EXISTS idx_audit_violations_role ON audit_violations(role_id, created_at DESC);
|
|
800
800
|
CREATE INDEX IF NOT EXISTS idx_audit_violations_task ON audit_violations(step_task_id);
|
|
801
801
|
CREATE INDEX IF NOT EXISTS idx_audit_violations_execution ON audit_violations(execution_id, created_at DESC);
|
|
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(
|
|
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(c=>typeof c=="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(`
|
|
803
803
|
CREATE TABLE IF NOT EXISTS user_visible_events (
|
|
804
804
|
id TEXT PRIMARY KEY,
|
|
805
805
|
event_key TEXT NOT NULL UNIQUE,
|
|
@@ -900,7 +900,7 @@ import{d as B,e as W,h as Y}from"./chunk-VO24C673.js";import{c as g,h as K}from"
|
|
|
900
900
|
ON assistant_delivery_commitments(session_id, created_at);
|
|
901
901
|
CREATE INDEX IF NOT EXISTS idx_assistant_delivery_commitments_source_message
|
|
902
902
|
ON assistant_delivery_commitments(source_message_id) WHERE source_message_id IS NOT NULL;
|
|
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
|
|
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 c=JSON.parse(T.config),p=typeof c.viewerKey=="string"&&c.viewerKey.trim().length>0?c.viewerKey:t;delete c.viewerKey,n.run(JSON.stringify(c),p,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 c=Array.isArray(n.excludePromptPatterns)?n.excludePromptPatterns:[],p=[...new Set([...c,...s])],o={...n,excludePromptPatterns:p};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:[],c=s.filter(f=>!T.includes(f));if(c.length===0)continue;let p=[...T,...c],o={...E,excludePromptPatterns:p};e.prepare("UPDATE delivery_rules SET match_criteria = ? WHERE id = ?").run(JSON.stringify(o),i.id),console.info(`[db v59 reconcile] added ${c.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 c of t)try{let p=c.match_criteria?JSON.parse(c.match_criteria):{};if(!p.templateId&&!p.roleId&&!p.promptPattern&&!p.taskStatus){let f=JSON.parse(c.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(`
|
|
904
904
|
CREATE TABLE effect_receipts (
|
|
905
905
|
id TEXT PRIMARY KEY,
|
|
906
906
|
trace_id TEXT NOT NULL,
|
|
@@ -1217,4 +1217,4 @@ import{d as B,e as W,h as Y}from"./chunk-VO24C673.js";import{c as g,h as K}from"
|
|
|
1217
1217
|
cost_usd, priced, estimated, sdk_total_cost_usd, num_turns, created_at)
|
|
1218
1218
|
VALUES
|
|
1219
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
|
|
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 c=null;if(E.cost_breakdown)try{c=JSON.parse(E.cost_breakdown)}catch{}if(c&&Array.isArray(c.perModel)&&c.perModel.length>0)for(let p=0;p<c.perModel.length;p++){let o=c.perModel[p],f=`${n}-${p}`;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 p=`${n}-0`,o=E.cost_usd>0?1:0;t.run(p,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,c=n.autoSelectRole===!0;!T&&!c&&(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 Ke(){if(A)return A;let e=process.env.ADAM_DB_PATH||W,_=de(e);return le(_)||Ne(_,{recursive:!0}),A=new ce(e),A.pragma("journal_mode = WAL"),A.pragma("foreign_keys = ON"),A.pragma("trusted_schema = ON"),Le(A),A}function $e(){A&&(A.close(),A=null)}var D,te,h,w,ee,re,pe,me,A,Re=H(()=>{Y();K();b();D=g("store"),te=["work","flow_complete"].join(""),h=`${te}:`,w=["work","flow_executions"].join(""),ee=["work","flow_artifacts"].join(""),re=["idx","work","flow_executions_event_id"].join("_"),pe=["idx","work","flow_artifacts_execution"].join("_"),me=["idx","work","flow_artifacts_step"].join("_"),A=null});export{J as a,ge as b,Ce as c,Ue as d,De as e,he as f,Q as g,xe as h,ye as i,ke as j,Fe as k,we as l,b as m,Le as n,Ke as o,$e as p,Re as q};
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{a as G,b as h,c as W,e as z}from"./chunk-
|
|
2
|
+
import{a as G,b as h,c as W,e as z}from"./chunk-AMJJ2WGU.js";import{a as B,b as J}from"./chunk-NTVLV7NI.js";import{a as q}from"./chunk-AUSR5JYV.js";import{c as R,e as K,g as ce}from"./chunk-ISTUK7Q6.js";import{d as F}from"./chunk-JRRNGKDK.js";import"./chunk-3MROEPGR.js";import{o as H,p as j,q as le}from"./chunk-ZEGZ2I35.js";import"./chunk-ITVCPC7G.js";import"./chunk-EZLBMUQD.js";import"./chunk-5PELJRUQ.js";import{Command as Se}from"commander";import{fork as de}from"child_process";import{readFileSync as L,writeFileSync as ue,existsSync as v,unlinkSync as $,mkdirSync as me,openSync as pe}from"fs";import{join as E}from"path";import{homedir as ge}from"os";var P=E(ge(),".adam"),y=E(P,"adam.pid"),k=E(P,"adam.port"),b=E(P,"server.log");function fe(){v(P)||me(P,{recursive:!0})}function C(){if(!v(y))return null;let e=parseInt(L(y,"utf-8").trim(),10);return isNaN(e)?null:e}function he(){if(!v(k))return null;let e=parseInt(L(k,"utf-8").trim(),10);return isNaN(e)?null:e}function O(e){try{return process.kill(e,0),!0}catch{return!1}}async function N(){fe();let e=C();if(e&&O(e))throw new Error(`Server already running (PID ${e})`);v(y)&&$(y),v(k)&&$(k);let o=pe(b,"a"),t=E(B,"dist/index.js"),n=de(t,[],{detached:!0,stdio:["ignore",o,o,"ipc"]}),l=await new Promise((i,c)=>{let g=setTimeout(()=>{n.kill(),c(new Error(`Server start timeout. Check logs: ${b}`))},1e4);n.on("message",a=>{if(a&&typeof a=="object"&&a.type==="ready"){clearTimeout(g);let s=a.port;s?i(s):c(new Error("Ready signal received but missing port"))}}),n.on("exit",a=>{clearTimeout(g);let s=v(b)?L(b,"utf-8").split(`
|
|
3
3
|
`).slice(-10).join(`
|
|
4
4
|
`):"";c(new Error(`Server exited with code ${a}.
|
|
5
5
|
${s?`Last log lines:
|
|
@@ -14,4 +14,4 @@ Task cancelled.`)),process.exit(130)};process.on("SIGINT",l);let i=new z(n);awai
|
|
|
14
14
|
`));let i={Anthropic:[["anthropic.apiKey",t["anthropic.apiKey"]],["anthropic.baseUrl",t["anthropic.baseUrl"]],["anthropic.model",t["anthropic.model"]],["anthropic.defaultOpusModel",t["anthropic.defaultOpusModel"]],["anthropic.defaultSonnetModel",t["anthropic.defaultSonnetModel"]],["anthropic.defaultHaikuModel",t["anthropic.defaultHaikuModel"]],["anthropic.smallFastModel",t["anthropic.smallFastModel"]]],Defaults:[["defaults.model",t["defaults.model"]],["defaults.effort",t["defaults.effort"]],["defaults.maxTurns",t["defaults.maxTurns"]],["defaults.maxBudgetUsd",t["defaults.maxBudgetUsd"]],["defaults.timeout",t["defaults.timeout"]]],Server:[["server.port",t["server.port"]],["server.host",t["server.host"]],["server.apiKey",t["server.apiKey"]],["server.timezone",t["server.timezone"]]],Logging:[["logging.level",t["logging.level"]]],Evolution:[["roles.evolution.triggerEvery",t["roles.evolution.triggerEvery"]],["roles.evolution.reflectionThreshold",t["roles.evolution.reflectionThreshold"]]],Chat:[["chat.sessionTimeoutMinutes",t["chat.sessionTimeoutMinutes"]],["chat.maxSessionTurns",t["chat.maxSessionTurns"]],["chat.autoTitle",t["chat.autoTitle"]],["chat.archiveExtractMemory",t["chat.archiveExtractMemory"]]]},c={"anthropic.apiKey":"API Key","anthropic.baseUrl":"Base URL","anthropic.model":"Model","anthropic.defaultOpusModel":"Default Opus","anthropic.defaultSonnetModel":"Default Sonnet","anthropic.defaultHaikuModel":"Default Haiku","anthropic.smallFastModel":"Small Fast","defaults.model":"Default Model","defaults.effort":"Effort","defaults.maxTurns":"Max Turns","defaults.maxBudgetUsd":"Max Budget (USD)","defaults.timeout":"Timeout (sec)","server.port":"Port","server.host":"Host","server.apiKey":"API Key","server.timezone":"Timezone","logging.level":"Log Level","roles.evolution.triggerEvery":"Evolution Trigger Every","chat.sessionTimeoutMinutes":"Session Timeout (min)","chat.maxSessionTurns":"Max Session Turns","chat.autoTitle":"Auto Title","chat.archiveExtractMemory":"Archive Extract Memory","roles.evolution.reflectionThreshold":"Reflection Threshold"};for(let[g,a]of Object.entries(i)){let s=a.filter(([,r])=>r!=null&&r!=="");if(s.length!==0){console.log(A.cyan(`${g}:`));for(let[r,m]of s){let f=c[r]??r,M=r.includes("apiKey")||r.includes("token")||r.includes("secret")?ne(String(m)):String(m);console.log(` ${f}: ${M}`)}console.log("")}}if(n){console.log(A.bold(`.env File Values:
|
|
15
15
|
`));let g=["ANTHROPIC_API_KEY","ANTHROPIC_BASE_URL","ANTHROPIC_MODEL","ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL","ANTHROPIC_SMALL_FAST_MODEL"];for(let a of g)if(a in n){let s=a.includes("API_KEY");console.log(` ${a}: ${s?ne(n[a]):n[a]}`)}console.log("")}}}finally{j()}}function ne(e){return!e||e.length<8?"****":e.slice(0,4)+"****"}import S from"chalk";async function ie(e){try{let o=e.limit??"20",t=await h(`/evolution-audit?limit=${o}`);if(t.length===0){console.log(S.dim("No evolution records yet"));return}console.log(S.bold(`Evolution Audit Log (${t.length} records)
|
|
16
16
|
`));for(let n of t){let l=new Date(n.timestamp).toLocaleString();console.log(S.bold(`[${l}]`)+(n.triggerTaskId?S.dim(` task: ${n.triggerTaskId.slice(0,8)}`):"")),console.log(S.dim(" Diff:"));for(let i of n.diff.split(`
|
|
17
|
-
`))i.startsWith("+")?console.log(S.green(` ${i}`)):i.startsWith("-")?console.log(S.red(` ${i}`)):console.log(S.dim(` ${i}`));console.log()}}catch(o){console.error(S.red(o.message)),process.exit(1)}}import p from"chalk";import{WebSocket as ye}from"ws";async function ae(e){let o=I(),t=e.port?Number(e.port):o.port??7100,n=G(),l=new URL(`ws://localhost:${t}/events`);n&&l.searchParams.set("api_key",n);let i=l.toString(),c=e.component,g=e.level;function a(){let r=new ye(i);r.on("open",()=>{console.log(p.dim(`Connected to ${i}`)),e.follow&&console.log(p.dim("Following logs... (Ctrl+C to exit)"))}),r.on("message",m=>{try{let f=JSON.parse(m.toString());if(f.type==="log_event"&&f.msg){if(c&&f.component!==c||g&&f.level!==g)return;s(f)}}catch{}}),r.on("error",m=>{console.error(p.red(`WebSocket error: ${m.message}`))}),r.on("close",()=>{e.follow&&(console.log(p.yellow("Connection closed, reconnecting...")),setTimeout(a,1e3))})}function s(r){let m=q(r.timestamp),x={debug:p.gray,info:p.blue,warn:p.yellow,error:p.red,fatal:p.bgRed.white}[r.level]||p.white,M=p.cyan(`[${r.component}]`);console.log(`${p.dim(m)} ${x(r.level.toUpperCase().padEnd(5))} ${M} ${r.msg}`),r.metadata&&typeof r.metadata=="object"&&Object.keys(r.metadata).length>0&&console.log(p.dim(" ")+p.dim(JSON.stringify(r.metadata)))}a(),await new Promise(r=>{process.on("SIGINT",()=>r()),process.on("SIGTERM",()=>r()),e.follow||setTimeout(r,3e3)})}var w=new Se;w.name("adam").description("Adam Agent Server CLI").version(J());var D=w.command("server").description("Server management");D.command("start").description("Start the server daemon").action(async()=>{try{let{pid:e,port:o}=await N();console.log(`Server started (PID ${e}, port ${o})`)}catch(e){console.error("Failed to start server:",e.message),process.exit(1)}});D.command("stop").description("Stop the server daemon").action(async()=>{try{await U(),console.log("Server stopped")}catch(e){console.error("Failed to stop server:",e.message),process.exit(1)}});D.command("restart").description("Restart the server daemon").action(async()=>{try{I().running&&(await U(),console.log("Server stopped"));let{pid:o,port:t}=await N();console.log(`Server restarted (PID ${o}, port ${t})`)}catch(e){console.error("Failed to restart server:",e.message),process.exit(1)}});D.command("status").description("Show server status").action(()=>{let e=I();e.running?console.log(`Server is running (PID ${e.pid}, port ${e.port})`):e.pid?console.log("Server not running (stale PID file)"):console.log("Server not running")});D.command("logs").description("Show server logs").option("-f, --follow","Follow log output").action(async e=>{let o=V();if(!ke(o)){console.log("No log file found");return}if(e.follow){let t=Te(o,{encoding:"utf-8"});for await(let n of t)process.stdout.write(n)}else console.log(we(o,"utf-8"))});w.command("run <prompt>").description("Submit a task and stream output").option("--model <model>","Model to use").option("--timeout <seconds>","Task timeout",parseInt).option("--budget <usd>","Max budget in USD",parseFloat).option("--template <name>","Task template to use").option("--workspace <path>","Workspace directory").option("--no-approval","Auto-approve all approval requests").option("--json","Output as JSON").option("--server <url>","Server URL").action(Q);var _=w.command("tasks").description("Task management");_.command("list").description("List recent tasks").option("-s, --status <status>","Filter by status").option("-l, --limit <number>","Limit results","20").action(oe);_.command("show <id>").description("Show task details").action(te);_.command("cancel <id>").description("Cancel a running task").action(re);w.command("config").description("Display current configuration").option("--json","Output as JSON").action(se);w.command("evolution").description("Show self-evolution audit log").option("-l, --limit <number>","Limit results","20").action(ie);w.command("logs").description("Stream server logs in real-time via WebSocket").option("-f, --follow","Follow logs continuously").option("-c, --component <component>","Filter by component (manager, worker, scheduler, api, ws)").option("-l, --level <level>","Filter by level (debug, info, warn, error)").option("-p, --port <port>","Server port").action(ae);w.action(async()=>{try{await W()}catch{I().running?console.error("Server is running but not responding. Check: adam server logs"):console.error("Server not running. Run: adam server start"),process.exit(1)}let e=(await import("./App-
|
|
17
|
+
`))i.startsWith("+")?console.log(S.green(` ${i}`)):i.startsWith("-")?console.log(S.red(` ${i}`)):console.log(S.dim(` ${i}`));console.log()}}catch(o){console.error(S.red(o.message)),process.exit(1)}}import p from"chalk";import{WebSocket as ye}from"ws";async function ae(e){let o=I(),t=e.port?Number(e.port):o.port??7100,n=G(),l=new URL(`ws://localhost:${t}/events`);n&&l.searchParams.set("api_key",n);let i=l.toString(),c=e.component,g=e.level;function a(){let r=new ye(i);r.on("open",()=>{console.log(p.dim(`Connected to ${i}`)),e.follow&&console.log(p.dim("Following logs... (Ctrl+C to exit)"))}),r.on("message",m=>{try{let f=JSON.parse(m.toString());if(f.type==="log_event"&&f.msg){if(c&&f.component!==c||g&&f.level!==g)return;s(f)}}catch{}}),r.on("error",m=>{console.error(p.red(`WebSocket error: ${m.message}`))}),r.on("close",()=>{e.follow&&(console.log(p.yellow("Connection closed, reconnecting...")),setTimeout(a,1e3))})}function s(r){let m=q(r.timestamp),x={debug:p.gray,info:p.blue,warn:p.yellow,error:p.red,fatal:p.bgRed.white}[r.level]||p.white,M=p.cyan(`[${r.component}]`);console.log(`${p.dim(m)} ${x(r.level.toUpperCase().padEnd(5))} ${M} ${r.msg}`),r.metadata&&typeof r.metadata=="object"&&Object.keys(r.metadata).length>0&&console.log(p.dim(" ")+p.dim(JSON.stringify(r.metadata)))}a(),await new Promise(r=>{process.on("SIGINT",()=>r()),process.on("SIGTERM",()=>r()),e.follow||setTimeout(r,3e3)})}var w=new Se;w.name("adam").description("Adam Agent Server CLI").version(J());var D=w.command("server").description("Server management");D.command("start").description("Start the server daemon").action(async()=>{try{let{pid:e,port:o}=await N();console.log(`Server started (PID ${e}, port ${o})`)}catch(e){console.error("Failed to start server:",e.message),process.exit(1)}});D.command("stop").description("Stop the server daemon").action(async()=>{try{await U(),console.log("Server stopped")}catch(e){console.error("Failed to stop server:",e.message),process.exit(1)}});D.command("restart").description("Restart the server daemon").action(async()=>{try{I().running&&(await U(),console.log("Server stopped"));let{pid:o,port:t}=await N();console.log(`Server restarted (PID ${o}, port ${t})`)}catch(e){console.error("Failed to restart server:",e.message),process.exit(1)}});D.command("status").description("Show server status").action(()=>{let e=I();e.running?console.log(`Server is running (PID ${e.pid}, port ${e.port})`):e.pid?console.log("Server not running (stale PID file)"):console.log("Server not running")});D.command("logs").description("Show server logs").option("-f, --follow","Follow log output").action(async e=>{let o=V();if(!ke(o)){console.log("No log file found");return}if(e.follow){let t=Te(o,{encoding:"utf-8"});for await(let n of t)process.stdout.write(n)}else console.log(we(o,"utf-8"))});w.command("run <prompt>").description("Submit a task and stream output").option("--model <model>","Model to use").option("--timeout <seconds>","Task timeout",parseInt).option("--budget <usd>","Max budget in USD",parseFloat).option("--template <name>","Task template to use").option("--workspace <path>","Workspace directory").option("--no-approval","Auto-approve all approval requests").option("--json","Output as JSON").option("--server <url>","Server URL").action(Q);var _=w.command("tasks").description("Task management");_.command("list").description("List recent tasks").option("-s, --status <status>","Filter by status").option("-l, --limit <number>","Limit results","20").action(oe);_.command("show <id>").description("Show task details").action(te);_.command("cancel <id>").description("Cancel a running task").action(re);w.command("config").description("Display current configuration").option("--json","Output as JSON").action(se);w.command("evolution").description("Show self-evolution audit log").option("-l, --limit <number>","Limit results","20").action(ie);w.command("logs").description("Stream server logs in real-time via WebSocket").option("-f, --follow","Follow logs continuously").option("-c, --component <component>","Filter by component (manager, worker, scheduler, api, ws)").option("-l, --level <level>","Filter by level (debug, info, warn, error)").option("-p, --port <port>","Server port").action(ae);w.action(async()=>{try{await W()}catch{I().running?console.error("Server is running but not responding. Check: adam server logs"):console.error("Server not running. Run: adam server start"),process.exit(1)}let e=(await import("./App-522DTURQ.js")).default,{waitUntilExit:o}=$e(be.createElement(e));await o()});w.parse();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g}from"./chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g}from"./chunk-ISTUK7Q6.js";import"./chunk-ZEGZ2I35.js";import"./chunk-ITVCPC7G.js";import"./chunk-EZLBMUQD.js";import"./chunk-5PELJRUQ.js";g();export{f as deleteConfigValue,c as getAllConfig,a as getConfigValue,e as isConfigEmpty,d as seedConfig,b as setConfigValue};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as b,b as c,d,e}from"./chunk-T7EKW3B7.js";import{a}from"./chunk-J2VSAXVU.js";import"./chunk-JRRNGKDK.js";import"./chunk-3MROEPGR.js";import"./chunk-ITVCPC7G.js";import"./chunk-EZLBMUQD.js";import"./chunk-5PELJRUQ.js";export{a as DEFAULT_CONFIG,e as getChatConfig,d as getDefaults,b as loadConfig,c as loadDefaultConfig};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as a,o as b,p as c,q as d}from"./chunk-ZEGZ2I35.js";import"./chunk-ITVCPC7G.js";import"./chunk-EZLBMUQD.js";import"./chunk-5PELJRUQ.js";d();export{c as closeDb,b as getDb,a as runMigrations};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk-PU2T7HBY.js";import"./chunk-ZEGZ2I35.js";import"./chunk-ITVCPC7G.js";import"./chunk-EZLBMUQD.js";import"./chunk-5M6IGE5G.js";import"./chunk-5PELJRUQ.js";export{a as TTL_MS,g as cleanupExpired,b as createDeliveryLog,j as getDeliveryLogByExecution,i as getDeliveryLogByRule,h as getDeliveryLogByTask,f as getFailedDeliveries,k as getLatestDeliveryForContext,e as getPendingDeliveries,d as markDelivered,c as updateDeliveryLogStatus};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as a,h as b,i as c,j as d}from"./chunk-QQWUWGSK.js";import"./chunk-YGZQMZTA.js";import"./chunk-4N5G7ND2.js";import"./chunk-VVPB3TD4.js";import"./chunk-NNMQGISW.js";import"./chunk-R3MSLP6P.js";import"./chunk-PU2T7HBY.js";import"./chunk-5ZL6RHPE.js";import"./chunk-YI2QQTZE.js";import"./chunk-NX3CIEZA.js";import"./chunk-X3PJNX2R.js";import"./chunk-G5I76LX2.js";import"./chunk-L7JP7DUO.js";import"./chunk-3JTHJ3FZ.js";import"./chunk-XEXSXMWK.js";import"./chunk-ISTUK7Q6.js";import"./chunk-J2VSAXVU.js";import"./chunk-3MROEPGR.js";import"./chunk-6GVYOHD5.js";import"./chunk-ZEGZ2I35.js";import"./chunk-ITVCPC7G.js";import"./chunk-EZLBMUQD.js";import"./chunk-5M6IGE5G.js";import"./chunk-5PELJRUQ.js";export{a as DeliveryEngine,b as getDeliveryEngine,c as initDeliveryEngine,d as stopDeliveryEngine};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e}from"./chunk-
|
|
1
|
+
import{a,b,c,d,e}from"./chunk-SONOE4ZJ.js";import"./chunk-ZEGZ2I35.js";import"./chunk-ITVCPC7G.js";import"./chunk-EZLBMUQD.js";import"./chunk-5M6IGE5G.js";import"./chunk-5PELJRUQ.js";export{a as createEvolutionAudit,e as generateDiff,d as getLatestRoleEvolution,b as listEvolutionAudit,c as listEvolutionAuditByRole};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as a,f as b,g as c,h as d,i as e,j as f,k as g,l as h}from"./chunk-LE5YRP37.js";import"./chunk-N4BV2WAU.js";import"./chunk-KO6UB6VW.js";import"./chunk-X3PJNX2R.js";import"./chunk-6NIWU43Z.js";import"./chunk-G5I76LX2.js";import"./chunk-L7JP7DUO.js";import"./chunk-GYOZGA7G.js";import"./chunk-4NRIKWSD.js";import"./chunk-6SBLFYCU.js";import"./chunk-T2Z2JDPY.js";import"./chunk-AKQ3AFVI.js";import"./chunk-3JTHJ3FZ.js";import"./chunk-ISTUK7Q6.js";import"./chunk-3MROEPGR.js";import"./chunk-6GVYOHD5.js";import"./chunk-ZEGZ2I35.js";import"./chunk-ITVCPC7G.js";import"./chunk-EZLBMUQD.js";import"./chunk-5M6IGE5G.js";import"./chunk-5PELJRUQ.js";export{e as EXECUTION_TOOLS_ALL_TOOL_NAMES,a as EXECUTION_TOOLS_MCP_NAME,c as EXECUTION_TOOLS_MUTATION_TOOLS,d as EXECUTION_TOOLS_READONLY_TOOLS,b as EXECUTION_TOOLS_TOOL_PREFIX,f as KEY_REGEX,h as createExecutionTools,g as inferMimeFromPath};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as i}from"./chunk-
|
|
1
|
+
import{a as i}from"./chunk-J2VSAXVU.js";import"./chunk-ITVCPC7G.js";import{c as a,h as c}from"./chunk-EZLBMUQD.js";import"./chunk-5PELJRUQ.js";c();var u=a("agent");async function m(n){let e=f();if(e.length===0)return{scores:[],errors:[]};let s=[],r=[];for(let t of e)try{let o=await l(t);o!==null&&s.push({nodeId:n,score:o,source:t.name,fetchedAt:Date.now()})}catch(o){r.push(`External API "${t.name}" (${t.url}): ${o instanceof Error?o.message:String(o)}`),u.warn({endpoint:t.name,error:o},"External API fetch failed")}return{scores:s,errors:r}}async function l(n){let e=await fetch(n.url,{signal:AbortSignal.timeout(5e3),headers:{Accept:"application/json"}});if(!e.ok)throw new Error(`HTTP ${e.status} ${e.statusText}`);let s=await e.json(),r=p(s,n.scorePath);if(typeof r!="number"||isNaN(r))throw new Error(`Score at "${n.scorePath}" is not a number: ${JSON.stringify(r)}`);return Math.max(0,Math.min(1,r))}function p(n,e){let s=e.replace(/^\$\.?/,""),r=n;for(let t of s.split(".")){if(r==null||typeof r!="object")return;r=r[t]}return r}function f(){return i.externalApis??[]}export{m as collectExternalApiScores};
|