adam-agent-server 0.1.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.
Files changed (86) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +424 -0
  3. package/dist/App-23CRAK2P.js +9 -0
  4. package/dist/adam-tools-MKUMZWCR.js +1 -0
  5. package/dist/approval-handler-SBFVVFGH.js +4 -0
  6. package/dist/channels-CNLMTKHM.js +1 -0
  7. package/dist/channels-VNG7U6UQ.js +1 -0
  8. package/dist/chunk-37OAKNKA.js +15 -0
  9. package/dist/chunk-3DAK2XWP.js +1 -0
  10. package/dist/chunk-3HM54J2N.js +1 -0
  11. package/dist/chunk-3OYRYMJW.js +11 -0
  12. package/dist/chunk-5AKFAMQL.js +29 -0
  13. package/dist/chunk-5BAD3NCT.js +1 -0
  14. package/dist/chunk-5GMYXCL3.js +1 -0
  15. package/dist/chunk-62PXAOD6.js +7 -0
  16. package/dist/chunk-B3CVXD44.js +104 -0
  17. package/dist/chunk-CV3ROBUM.js +1 -0
  18. package/dist/chunk-EJJDJY34.js +5 -0
  19. package/dist/chunk-F2IS5LWD.js +1 -0
  20. package/dist/chunk-FCV2DPZQ.js +1 -0
  21. package/dist/chunk-FUBKGVWI.js +8 -0
  22. package/dist/chunk-HMXDNPFE.js +5 -0
  23. package/dist/chunk-J5YZQQTS.js +3 -0
  24. package/dist/chunk-MMIO6BCA.js +10 -0
  25. package/dist/chunk-Q3N5LVPZ.js +5 -0
  26. package/dist/chunk-QOPUUA7O.js +1 -0
  27. package/dist/chunk-TGQYM4TH.js +6 -0
  28. package/dist/chunk-TYR3QUCL.js +23 -0
  29. package/dist/chunk-VURJZLM6.js +49 -0
  30. package/dist/chunk-W6JITSZF.js +569 -0
  31. package/dist/chunk-WGRTN6TX.js +1 -0
  32. package/dist/chunk-ZN5Q3YET.js +1 -0
  33. package/dist/cli.js +15 -0
  34. package/dist/config-42ZJPZDM.js +1 -0
  35. package/dist/db-ZDEA7EUY.js +1 -0
  36. package/dist/delivery-log-7DQ36UGP.js +1 -0
  37. package/dist/dist-CDWBOTZS.js +1 -0
  38. package/dist/engine-7VBPXTGK.js +1 -0
  39. package/dist/evolution-audit-MDA2ZVJW.js +1 -0
  40. package/dist/external-api-T7FFXVHL.js +1 -0
  41. package/dist/index.js +152 -0
  42. package/dist/logger-BEG4WFIM.js +1 -0
  43. package/dist/memories-BUNOVQVG.js +1 -0
  44. package/dist/onnxruntime_binding-6Q6HXASN.node +0 -0
  45. package/dist/onnxruntime_binding-EKZT2NRK.node +0 -0
  46. package/dist/onnxruntime_binding-P6S7V3CI.node +0 -0
  47. package/dist/onnxruntime_binding-PJNNIIUO.node +0 -0
  48. package/dist/onnxruntime_binding-UN6SPTQK.node +0 -0
  49. package/dist/role-presets-2X3VW75D.js +1 -0
  50. package/dist/roles-CMV5FMIA.js +1 -0
  51. package/dist/runtime-772O2XKZ.js +1 -0
  52. package/dist/server-bus-N5LCY73J.js +1 -0
  53. package/dist/session-manager-KO4CR3W6.js +1 -0
  54. package/dist/task-templates-AKQB7RRB.js +1 -0
  55. package/package.json +77 -0
  56. package/web/dist/assets/Card-BpwkRtmi.js +1 -0
  57. package/web/dist/assets/ChannelDetail-050qK78l.js +1 -0
  58. package/web/dist/assets/Channels-DA4gN6nU.js +12 -0
  59. package/web/dist/assets/Chat-LzhfKGQ5.js +1 -0
  60. package/web/dist/assets/Dashboard-Bh32YC_E.js +1 -0
  61. package/web/dist/assets/EmptyState-B08f3BH6.js +1 -0
  62. package/web/dist/assets/Evolution-BwsOuVbZ.js +3 -0
  63. package/web/dist/assets/GoalDetail-Zo16ZrYD.js +1 -0
  64. package/web/dist/assets/Goals-BmfVadFN.js +1 -0
  65. package/web/dist/assets/Logs-CYfQ9k_6.js +1 -0
  66. package/web/dist/assets/Memories-CgSb60RC.js +1 -0
  67. package/web/dist/assets/Plugins-DHgIfely.js +1 -0
  68. package/web/dist/assets/RoleDetail-CNJkMSuz.js +1 -0
  69. package/web/dist/assets/Roles-DGpN5Vm6.js +1 -0
  70. package/web/dist/assets/Settings-PjFyeX8n.js +1 -0
  71. package/web/dist/assets/Strategies-DBp2jYdi.js +1 -0
  72. package/web/dist/assets/Switch-yk5-dsti.js +1 -0
  73. package/web/dist/assets/Table-DWR4p9xA.js +1 -0
  74. package/web/dist/assets/TaskDetail-DMg-JAbC.js +2 -0
  75. package/web/dist/assets/Work-BYgMw2qj.js +1 -0
  76. package/web/dist/assets/dist-jv3vbjrx.js +1 -0
  77. package/web/dist/assets/format-DvtQjPZn.js +1 -0
  78. package/web/dist/assets/index-CWY8H-cU.js +52 -0
  79. package/web/dist/assets/index-OXMtvYRJ.css +2 -0
  80. package/web/dist/assets/rolldown-runtime-DF2fYuay.js +1 -0
  81. package/web/dist/assets/vendor-icons-DqHipOFA.js +1 -0
  82. package/web/dist/assets/vendor-react-C2hDj0vl.js +11 -0
  83. package/web/dist/assets/vendor-state-CRsbPXtF.js +1 -0
  84. package/web/dist/favicon.svg +1 -0
  85. package/web/dist/icons.svg +24 -0
  86. package/web/dist/index.html +19 -0
@@ -0,0 +1,6 @@
1
+ import{b as r,d as a}from"./chunk-W6JITSZF.js";a();function l(e){let n={type:e.trigger_type,cron:e.trigger_cron??void 0,event:e.trigger_event??void 0};return{id:e.id,name:e.name,description:e.description??void 0,trigger:n,steps:JSON.parse(e.steps),rolePreference:e.role_preference??void 0,config:e.config?JSON.parse(e.config):void 0,tags:e.tags?JSON.parse(e.tags):void 0,enabled:e.enabled===1,createdAt:e.created_at,updatedAt:e.updated_at??void 0,sourceSessionId:e.source_session_id??void 0,notifyTargets:e.notify_targets?JSON.parse(e.notify_targets):void 0,deliverTo:e.deliver_to?JSON.parse(e.deliver_to):void 0,goalIds:e.goal_ids?JSON.parse(e.goal_ids):void 0}}function u(e){r().prepare(`
2
+ INSERT INTO task_templates (id, name, description, trigger_type, trigger_cron,
3
+ trigger_event, steps, role_preference, config, tags, enabled, created_at, updated_at,
4
+ source_session_id, notify_targets, deliver_to, goal_ids)
5
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
6
+ `).run(e.id,e.name,e.description??null,e.trigger.type,e.trigger.cron??null,e.trigger.event??null,JSON.stringify(e.steps),e.rolePreference??null,e.config?JSON.stringify(e.config):null,e.tags?JSON.stringify(e.tags):null,e.enabled?1:0,e.createdAt??Date.now(),e.updatedAt??null,e.sourceSessionId??null,e.notifyTargets?JSON.stringify(e.notifyTargets):null,e.deliverTo?JSON.stringify(e.deliverTo):null,e.goalIds?JSON.stringify(e.goalIds):null)}function f(e){let t=r().prepare("SELECT * FROM task_templates WHERE id = ?").get(e);return t?l(t):void 0}function p(e,n){let t=r(),s=[],i=[];"name"in n&&(s.push("name = ?"),i.push(n.name)),"description"in n&&(s.push("description = ?"),i.push(n.description??null)),"trigger"in n&&n.trigger&&(s.push("trigger_type = ?"),i.push(n.trigger.type),s.push("trigger_cron = ?"),i.push(n.trigger.cron??null),s.push("trigger_event = ?"),i.push(n.trigger.event??null)),"steps"in n&&(s.push("steps = ?"),i.push(JSON.stringify(n.steps))),"rolePreference"in n&&(s.push("role_preference = ?"),i.push(n.rolePreference??null)),"config"in n&&(s.push("config = ?"),i.push(n.config?JSON.stringify(n.config):null)),"tags"in n&&(s.push("tags = ?"),i.push(n.tags?JSON.stringify(n.tags):null)),"enabled"in n&&(s.push("enabled = ?"),i.push(n.enabled?1:0)),"sourceSessionId"in n&&(s.push("source_session_id = ?"),i.push(n.sourceSessionId??null)),"notifyTargets"in n&&(s.push("notify_targets = ?"),i.push(n.notifyTargets?JSON.stringify(n.notifyTargets):null)),"deliverTo"in n&&(s.push("deliver_to = ?"),i.push(n.deliverTo?JSON.stringify(n.deliverTo):null)),"goalIds"in n&&(s.push("goal_ids = ?"),i.push(n.goalIds?JSON.stringify(n.goalIds):null)),s.length!==0&&(s.push("updated_at = ?"),i.push(Date.now()),i.push(e),t.prepare(`UPDATE task_templates SET ${s.join(", ")} WHERE id = ?`).run(...i))}function T(e=!1,n=100,t=0){let s=r(),i="SELECT * FROM task_templates",g=[];return e&&(i+=" WHERE enabled = 1"),i+=" ORDER BY created_at ASC LIMIT ? OFFSET ?",g.push(n,t),s.prepare(i).all(...g).map(l)}function c(e){r().prepare("UPDATE task_templates SET enabled = 1, updated_at = ? WHERE id = ?").run(Date.now(),e)}function _(e){r().prepare("UPDATE task_templates SET enabled = 0, updated_at = ? WHERE id = ?").run(Date.now(),e)}function h(e){r().prepare("DELETE FROM task_templates WHERE id = ?").run(e)}export{u as a,f as b,p as c,T as d,c as e,_ as f,h as g};
@@ -0,0 +1,23 @@
1
+ import{f as g,l as E}from"./chunk-62PXAOD6.js";import{b as a,d as f}from"./chunk-W6JITSZF.js";f();E();function l(e){return{id:e.id,roleId:e.role_id,type:e.type,content:e.content,embedding:e.embedding?new Float32Array(e.embedding.buffer,e.embedding.byteOffset,e.embedding.byteLength/4):void 0,keywords:e.keywords?JSON.parse(e.keywords):[],importance:e.importance,sourceType:e.source_type,sourceTaskId:e.source_task_id??void 0,evidence:e.evidence?JSON.parse(e.evidence):void 0,createdAt:e.created_at,lastAccessed:e.last_accessed,retrievedCount:e.retrieved_count}}function y(e){return Buffer.from(e.buffer,e.byteOffset,e.byteLength)}function v(e){a().prepare(`
2
+ INSERT INTO memories (id, role_id, type, content, embedding, keywords,
3
+ importance, source_type, source_task_id, evidence,
4
+ created_at, last_accessed, retrieved_count)
5
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
6
+ `).run(e.id,e.roleId,e.type,e.content,e.embedding?y(e.embedding):null,JSON.stringify(e.keywords),e.importance,e.sourceType,e.sourceTaskId??null,e.evidence?JSON.stringify(e.evidence):null,e.createdAt,e.lastAccessed,e.retrievedCount)}function C(e){let t=a().prepare("SELECT * FROM memories WHERE id = ?").get(e);return t?l(t):void 0}function W(e){a().prepare("UPDATE memories SET retrieved_count = retrieved_count + 1, last_accessed = ? WHERE id = ?").run(Date.now(),e)}function L(e){return a().prepare("SELECT COUNT(*) as count FROM memories WHERE role_id = ?").get(e).count}function A(e,r=100,t=0){return a().prepare("SELECT * FROM memories WHERE role_id = ? ORDER BY created_at DESC LIMIT ? OFFSET ?").all(e,r,t).map(l)}function R(e,r){let t=0,n=0,i=0;for(let o=0;o<e.length;o++)t+=e[o]*r[o],n+=e[o]*e[o],i+=r[o]*r[o];let d=Math.sqrt(n)*Math.sqrt(i);return d===0?0:t/d}function M(e,r,t){let n=a(),i=e?"SELECT * FROM memories WHERE role_id = ? AND embedding IS NOT NULL ORDER BY created_at DESC":"SELECT * FROM memories WHERE embedding IS NOT NULL ORDER BY created_at DESC";return(e?n.prepare(i).all(e):n.prepare(i).all()).map(c=>{let u=new Float32Array(c.embedding.buffer,c.embedding.byteOffset,c.embedding.byteLength/4);return{row:c,score:R(r,u)}}).sort((c,u)=>u.score-c.score).slice(0,t).map(c=>l(c.row))}function S(e,r,t){let n=a();return e?n.prepare(`
7
+ SELECT m.* FROM memories m
8
+ JOIN memories_fts fts ON m.rowid = fts.rowid
9
+ WHERE memories_fts MATCH ? AND m.role_id = ?
10
+ ORDER BY rank
11
+ LIMIT ?
12
+ `).all(r,e,t).map(l):n.prepare(`
13
+ SELECT m.* FROM memories m
14
+ JOIN memories_fts fts ON m.rowid = fts.rowid
15
+ WHERE memories_fts MATCH ?
16
+ ORDER BY rank
17
+ LIMIT ?
18
+ `).all(r,t).map(l)}function D(e){a().prepare("DELETE FROM memories WHERE id = ?").run(e)}var b={recency:.5,relevance:3,importance:2},_=.9;function T(e){let t=(Date.now()-e)/(1e3*60*60*24);return Math.min(1,Math.max(0,Math.pow(_,t)))}function F(e,r,t,n=b){let i=T(e),d=Math.min(1,Math.max(0,r)),o=t/5;return n.recency*i+n.relevance*d+n.importance*o}function H(e){return g(e)?.preferences?.scoringWeights??b}var h={vectorWeight:.6,bm25Weight:.4};function x(e,r=1e4,t=90){let n=a(),i=0,d=Date.now()-t*24*60*60*1e3,o=n.prepare("DELETE FROM memories WHERE role_id = ? AND created_at < ?").run(e,d);i+=o.changes;let c=n.prepare("SELECT COUNT(*) as cnt FROM memories WHERE role_id = ?").get(e);if(c.cnt>r){let u=c.cnt-r;n.prepare(`
19
+ DELETE FROM memories WHERE id IN (
20
+ SELECT id FROM memories WHERE role_id = ?
21
+ ORDER BY created_at ASC LIMIT ?
22
+ )
23
+ `).run(e,u),i+=u}return i}function w(e,r,t,n,i=h){let d=M(e,r,n*2),o=S(e,t,n*2),c=new Map;for(let s=0;s<d.length;s++){let m=d[s];c.set(m.id,{node:m,vectorScore:d.length>1?1-s/(d.length-1):1,bm25Score:0})}for(let s=0;s<o.length;s++){let m=c.get(o[s].id),p=o.length>1?1-s/(o.length-1):1;m?m.bm25Score=p:c.set(o[s].id,{node:o[s],vectorScore:0,bm25Score:p})}return Array.from(c.values()).map(({node:s,vectorScore:m,bm25Score:p})=>({node:s,score:i.vectorWeight*m+i.bm25Weight*p})).sort((s,m)=>m.score-s.score).slice(0,n).map(s=>s.node)}export{v as a,C as b,W as c,L as d,A as e,M as f,S as g,D as h,b as i,T as j,F as k,H as l,h as m,x as n,w as o};
@@ -0,0 +1,49 @@
1
+ import{a as p,b as d}from"./chunk-TGQYM4TH.js";import{b as g,d as y}from"./chunk-W6JITSZF.js";import{c as t,f as h}from"./chunk-F2IS5LWD.js";import{c as u}from"./chunk-3DAK2XWP.js";y();import{dirname as O,join as v}from"path";import{fileURLToPath as R}from"url";var T=O(R(import.meta.url)),f=v(T,"..");var A=f,C=u("cli:register-ai-digest"),s="ai-hourly-digest";function b(){try{if(d(s)){console.log(`[INFO] AI Digest template already exists (${s})`);return}}catch{}let o={id:s,name:"AI Hourly Digest",description:"\u6BCF\u5C0F\u65F6\u641C\u7D22 AI \u524D\u6CBF\u6587\u7AE0\uFF0C\u603B\u7ED3\u540E\u4FDD\u5B58\u5230 Omnifocus",trigger:{type:"cron",cron:"0 * * * *"},enabled:!0,steps:[{id:"search_ai_news",prompt:`\u641C\u7D22\u8FC7\u53BB 24 \u5C0F\u65F6\u5185\u5173\u4E8E AI/\u4EBA\u5DE5\u667A\u80FD\u7684\u6700\u65B0\u524D\u6CBF\u6587\u7AE0\u3002
2
+
3
+ \u641C\u7D22\u6765\u6E90:
4
+ 1. Hacker News AI \u677F\u5757 (https://news.ycombinator.com/front?day=1)
5
+ 2. ArXiv cs.AI \u6700\u65B0\u8BBA\u6587 (https://arxiv.org/list/cs.AI/recent)
6
+ 3. Reddit r/MachineLearning \u70ED\u95E8\u5E16\u5B50
7
+
8
+ \u627E\u51FA\u4E00\u7BC7\u6700\u6709\u4EF7\u503C\u3001\u6700\u6709\u6280\u672F\u6DF1\u5EA6\u7684\u6587\u7AE0\u3002
9
+
10
+ \u8F93\u51FA\u683C\u5F0F:
11
+ - \u6807\u9898\uFF1A[\u6587\u7AE0\u6807\u9898]
12
+ - \u6765\u6E90\uFF1A[\u7F51\u7AD9/\u5E73\u53F0\u540D\u79F0]
13
+ - \u94FE\u63A5\uFF1A[\u5B8C\u6574 URL]
14
+ - \u6838\u5FC3\u4EF7\u503C\uFF1A[1-2 \u53E5\u8BDD\u8BF4\u660E\u4E3A\u4EC0\u4E48\u8FD9\u7BC7\u6587\u7AE0\u503C\u5F97\u770B]`},{id:"summarize_article",dependsOn:["search_ai_news"],prompt:`\u9605\u8BFB\u5E76\u603B\u7ED3\u8FD9\u7BC7\u6587\u7AE0\u3002
15
+
16
+ \u6587\u7AE0\u4FE1\u606F:
17
+ {{search_ai_news.result}}
18
+
19
+ \u8BF7:
20
+ 1. \u7528 WebFetch \u83B7\u53D6\u6587\u7AE0\u5B8C\u6574\u5185\u5BB9
21
+ 2. \u63D0\u53D6\u6838\u5FC3\u89C2\u70B9\u548C\u6280\u672F\u7EC6\u8282
22
+ 3. \u7528\u4E2D\u6587\u5199\u51FA 300-500 \u5B57\u7684\u603B\u7ED3
23
+
24
+ \u603B\u7ED3\u7ED3\u6784:
25
+ ## \u6838\u5FC3\u53D1\u73B0
26
+ [\u6587\u7AE0\u6700\u91CD\u8981\u7684\u53D1\u73B0/\u521B\u65B0\u70B9]
27
+
28
+ ## \u6280\u672F\u7EC6\u8282
29
+ [\u5173\u952E\u7684\u6280\u672F\u65B9\u6CD5/\u5B9E\u73B0\u7EC6\u8282]
30
+
31
+ ## \u5F71\u54CD/\u610F\u4E49
32
+ [\u8FD9\u9879\u5DE5\u4F5C\u7684\u610F\u4E49\u6216\u5BF9\u884C\u4E1A\u7684\u5F71\u54CD]
33
+
34
+ ## \u539F\u6587\u94FE\u63A5
35
+ [\u6587\u7AE0 URL]`},{id:"save_to_omnifocus",dependsOn:["summarize_article"],prompt:`\u5C06\u6587\u7AE0\u603B\u7ED3\u4FDD\u5B58\u5230 Omnifocus\u3002
36
+
37
+ \u603B\u7ED3\u5185\u5BB9:
38
+ {{summarize_article.result}}
39
+
40
+ \u63D0\u53D6\u6587\u7AE0\u6807\u9898\u548C\u5B8C\u6574\u603B\u7ED3\uFF0C\u7136\u540E\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u6DFB\u52A0\u5230 Omnifocus Inbox\uFF1A
41
+
42
+ osascript ${A}/scripts/add-to-omnifocus.applescript "[\u6587\u7AE0\u6807\u9898] AI \u524D\u6CBF\u901F\u9012" "[\u5B8C\u6574\u603B\u7ED3\u5185\u5BB9]"
43
+
44
+ \u6CE8\u610F\uFF1A
45
+ - \u5C06 [\u6587\u7AE0\u6807\u9898] \u66FF\u6362\u4E3A\u5B9E\u9645\u6807\u9898
46
+ - \u5C06 [\u5B8C\u6574\u603B\u7ED3\u5185\u5BB9] \u66FF\u6362\u4E3A\u5B8C\u6574\u7684\u603B\u7ED3\u6587\u672C\uFF08\u5305\u542B\u6838\u5FC3\u53D1\u73B0\u3001\u6280\u672F\u7EC6\u8282\u3001\u5F71\u54CD/\u610F\u4E49\u548C\u539F\u6587\u94FE\u63A5\uFF09
47
+ - \u603B\u7ED3\u5185\u5BB9\u4F7F\u7528\u6362\u884C\u7B26\u5206\u9694\u5404\u90E8\u5206
48
+
49
+ \u5B8C\u6210\u540E\u8F93\u51FA\uFF1A\u5DF2\u4FDD\u5B58\u5230 Omnifocus\uFF1A[\u4EFB\u52A1\u6807\u9898]`}],config:{timeout:300,fileAccess:{allowedPaths:["~/.adam/",A],deniedPaths:[]}},tags:["ai","digest","hourly","automation"],createdAt:Date.now()};p(o),console.log(`[INFO] Registered AI Hourly Digest task template (${s})`),console.log("[INFO] Cron schedule: 0 * * * * (every hour at minute 0)")}import.meta.url===`file://${process.argv[1]}`&&(console.log("Initializing database..."),g(),console.log("Registering AI Digest template..."),b(),console.log("Done."),process.exit(0));h();import{existsSync as r,copyFileSync as x,mkdirSync as n,cpSync as D}from"fs";import{join as e}from"path";function w(){n(t,{recursive:!0}),n(e(t,"logs"),{recursive:!0}),n(e(t,".claude"),{recursive:!0})}function M(o=process.cwd()){w();let i=[],I=[{from:e(o,"data","adam.db"),to:e(t,"adam.db"),label:"database"},{from:e(o,"adam.config.yaml"),to:e(t,"adam.config.yaml"),label:"config"},{from:e(o,".env"),to:e(t,".env"),label:".env"}];for(let{from:m,to:l,label:_}of I)r(m)&&!r(l)&&(x(m,l),i.push(_));let a=e(o,".claude","plugins"),c=e(t,".claude","plugins");return r(a)&&!r(c)&&(D(a,c,{recursive:!0}),i.push("plugins")),i}export{f as a,b,w as c,M as d};