adam-agent-server 1.15.0 → 1.16.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 (153) hide show
  1. package/dist/App-Z2GJAMX3.js +14 -0
  2. package/dist/approval-handler-6NPN24UN.js +1 -0
  3. package/dist/artifacts-S2KD6W76.js +1 -0
  4. package/dist/audit-diagnostics-2MDM3IQT.js +1 -0
  5. package/dist/audit-manager-QG7CMBV2.js +1 -0
  6. package/dist/bree-engine-3QSLZF3W.js +1 -0
  7. package/dist/channels-S4AAOOTN.js +1 -0
  8. package/dist/channels-TYXSSI7D.js +1 -0
  9. package/dist/{chat-tool-calls-KARPW7PE.js → chat-tool-calls-2C7O4B2X.js} +1 -1
  10. package/dist/chunk-32LOJEHE.js +32 -0
  11. package/dist/{chunk-VNXTBIPI.js → chunk-3UR2PN5N.js} +1 -1
  12. package/dist/{chunk-D3SPXZZY.js → chunk-3UZIEE2D.js} +1 -1
  13. package/dist/chunk-4234WJJD.js +178 -0
  14. package/dist/{chunk-2N4EOZZ4.js → chunk-52FETPCI.js} +1 -1
  15. package/dist/{chunk-3KNR2F6H.js → chunk-6Y2DN2UH.js} +1 -1
  16. package/dist/{chunk-NWGRLNUM.js → chunk-AG5SADAI.js} +1 -1
  17. package/dist/chunk-AQAHVNNG.js +34 -0
  18. package/dist/{chunk-FD4IKMXV.js → chunk-C2XFPUFV.js} +1 -1
  19. package/dist/chunk-EWYXVBOG.js +61 -0
  20. package/dist/{chunk-ISKCTUI7.js → chunk-FHESRUJY.js} +1 -1
  21. package/dist/{chunk-BKNXRSJU.js → chunk-FYULPPFR.js} +1 -1
  22. package/dist/{chunk-GXWB47NF.js → chunk-H4MMEULK.js} +4 -4
  23. package/dist/chunk-HC34HJFF.js +1 -0
  24. package/dist/{chunk-XF7YHFVR.js → chunk-HJICGOD4.js} +1 -1
  25. package/dist/{chunk-F6U5TMM3.js → chunk-HXDS4NWI.js} +1 -1
  26. package/dist/{chunk-3BRHWRZ5.js → chunk-I44JKROJ.js} +1 -1
  27. package/dist/chunk-K2TZW4DU.js +132 -0
  28. package/dist/{chunk-RBJPQYV3.js → chunk-K4IE6DPX.js} +1 -1
  29. package/dist/{chunk-NPGZRSGL.js → chunk-LQVBWVLE.js} +1 -1
  30. package/dist/chunk-LVHLUAZW.js +22 -0
  31. package/dist/{chunk-ICAM2GUU.js → chunk-MNSZE3NV.js} +1 -1
  32. package/dist/{chunk-KJNAORKM.js → chunk-MTQI6B7T.js} +1 -1
  33. package/dist/chunk-NS6WVZMS.js +1 -0
  34. package/dist/{chunk-IRUR4DVD.js → chunk-OGY42NUN.js} +1 -1
  35. package/dist/{chunk-OQ3JOTPK.js → chunk-OXGWWSKT.js} +1 -1
  36. package/dist/{chunk-I7LJ4432.js → chunk-P5Q2UINT.js} +1 -1
  37. package/dist/{chunk-BPXS4QEO.js → chunk-QL2ZOLMC.js} +88 -21
  38. package/dist/{chunk-TZCMK3UG.js → chunk-R24YRJRG.js} +1 -1
  39. package/dist/{chunk-42V6ZPCS.js → chunk-SCUPWMI5.js} +1 -1
  40. package/dist/{chunk-J3VYLSJI.js → chunk-TCBGUVVU.js} +1 -1
  41. package/dist/{chunk-XIVFVKMB.js → chunk-TJTH7LHX.js} +1 -1
  42. package/dist/chunk-VVQ532U2.js +6 -0
  43. package/dist/chunk-WVHN54MA.js +14 -0
  44. package/dist/{chunk-XZEBYOFR.js → chunk-YNS5LQX5.js} +10 -10
  45. package/dist/cli.js +2 -2
  46. package/dist/{config-XO7TGH27.js → config-HDAAV5FV.js} +1 -1
  47. package/dist/{db-WCTOLFAZ.js → db-HFBXO2O5.js} +1 -1
  48. package/dist/{delivery-log-ML4RJOBM.js → delivery-log-3O3OHKY4.js} +1 -1
  49. package/dist/engine-J43ECCH7.js +1 -0
  50. package/dist/{evolution-audit-HLU7LQL6.js → evolution-audit-BSGPFGFK.js} +1 -1
  51. package/dist/execution-tools-HHUPWLCF.js +1 -0
  52. package/dist/index.js +41 -41
  53. package/dist/{learner-NJXX2RUL.js → learner-TQQZKRSB.js} +1 -1
  54. package/dist/{memories-JDTQM3UN.js → memories-2DY5G6ZN.js} +1 -1
  55. package/dist/{memory-extractor-5PTMCSOX.js → memory-extractor-TUOOFST2.js} +1 -1
  56. package/dist/memory-gc-MRO53MEY.js +1 -0
  57. package/dist/memory-service-23WVAW7T.js +1 -0
  58. package/dist/outbound-gateway-VXODXSQR.js +1 -0
  59. package/dist/presets-KJV6SNNB.js +1 -0
  60. package/dist/{reflection-job-ST4ANCGB.js → reflection-job-EFFW3WOR.js} +3 -3
  61. package/dist/role-presets-PHHL3OEN.js +1 -0
  62. package/dist/role-workspace-USY47ZPQ.js +1 -0
  63. package/dist/{roles-F6AEM6B5.js → roles-3JXNHL7K.js} +1 -1
  64. package/dist/{session-manager-JTQRJI7R.js → session-manager-PI3JEINK.js} +1 -1
  65. package/dist/skill-registry-ROGU2WED.js +1 -0
  66. package/dist/{task-templates-6G46OVYT.js → task-templates-4YPKFFKG.js} +1 -1
  67. package/dist/template-dispatch-46TN534D.js +1 -0
  68. package/package.json +1 -1
  69. package/web/dist/assets/ArtifactDetail-9DJdEqCz.js +66 -0
  70. package/web/dist/assets/Artifacts-CQ6SAemH.js +1 -0
  71. package/web/dist/assets/{Button-fLMsJd5o.js → Button-xVc-P0vm.js} +1 -1
  72. package/web/dist/assets/{Card-cy-gHU0O.js → Card-WUD1cwG6.js} +1 -1
  73. package/web/dist/assets/ChannelDetail-B21nBQwi.js +1 -0
  74. package/web/dist/assets/{Channels-DMutLV9r.js → Channels-CAeGE1r7.js} +2 -2
  75. package/web/dist/assets/Chat-KpFWchPp.js +2 -0
  76. package/web/dist/assets/{Dashboard-CoatfhW8.js → Dashboard-DkRwHNmr.js} +1 -1
  77. package/web/dist/assets/{EmptyState-C5kVDHc7.js → EmptyState-BLB33cKG.js} +1 -1
  78. package/web/dist/assets/{EnvVarEditor-BvRsHayG.js → EnvVarEditor-BchUNrmz.js} +1 -1
  79. package/web/dist/assets/{EventDefDetail-zuJydp12.js → EventDefDetail-DnBwWWfT.js} +1 -1
  80. package/web/dist/assets/Events-ByIzPIs2.js +1 -0
  81. package/web/dist/assets/{Evolution-Br41g99g.js → Evolution-Vh9RKdma.js} +1 -1
  82. package/web/dist/assets/{ExtensionDetail-BXlphIkn.js → ExtensionDetail-0CtJh5rF.js} +1 -1
  83. package/web/dist/assets/Extensions--O1ulwlC.js +1 -0
  84. package/web/dist/assets/{FeatureRequests-oaXQNu43.js → FeatureRequests-XhQbGg_q.js} +1 -1
  85. package/web/dist/assets/GoalDetail-DIOxf7ES.js +1 -0
  86. package/web/dist/assets/Goals-CZnHu9qC.js +1 -0
  87. package/web/dist/assets/{Logs-BZKxhdnb.js → Logs-DdeG3GiY.js} +1 -1
  88. package/web/dist/assets/{Memories-DhJJk-KB.js → Memories-D-EAODUg.js} +1 -1
  89. package/web/dist/assets/{Mistakes-DxThj9as.js → Mistakes-wW78K3cP.js} +1 -1
  90. package/web/dist/assets/{NotFound-buXr2gl7.js → NotFound-BsxIP-Xm.js} +1 -1
  91. package/web/dist/assets/{PageHeader-BgNbz3JV.js → PageHeader-D8pqg_wk.js} +1 -1
  92. package/web/dist/assets/Plugins-DDUdX51_.js +1 -0
  93. package/web/dist/assets/{RoleDetail-rClUsHwS.js → RoleDetail-CU3G9j_q.js} +4 -4
  94. package/web/dist/assets/Roles-BCoSzDBg.js +1 -0
  95. package/web/dist/assets/{SectionHeader-CwX6m1f6.js → SectionHeader-DZo4QVWr.js} +1 -1
  96. package/web/dist/assets/{Settings-My2lOEWv.js → Settings-K3usfV-2.js} +1 -1
  97. package/web/dist/assets/{Strategies-YLMryJlG.js → Strategies-Bg4qlLei.js} +1 -1
  98. package/web/dist/assets/{Switch-PNpjNoGn.js → Switch-WWPXnSOG.js} +1 -1
  99. package/web/dist/assets/{Table-BrERwl-F.js → Table-XjSmrOyn.js} +1 -1
  100. package/web/dist/assets/{Tabs-CGHmpUAD.js → Tabs-CSbcG_5T.js} +1 -1
  101. package/web/dist/assets/TaskDetail-C5roukcV.js +2 -0
  102. package/web/dist/assets/Work-DGTWSgtc.js +1 -0
  103. package/web/dist/assets/{es2015-JqLIWAgH.js → es2015-BgPT8VkR.js} +1 -1
  104. package/web/dist/assets/index-KNUbHDLy.css +2 -0
  105. package/web/dist/assets/index-iD-HOtIu.js +12 -0
  106. package/web/dist/assets/{useIsMobileLayout-Blj4Mk4K.js → useIsMobileLayout-DF2fEEM9.js} +1 -1
  107. package/web/dist/assets/{usePluginsWithUsage-Ch9WCFTb.js → usePluginsWithUsage-CjU8Lkdn.js} +1 -1
  108. package/web/dist/assets/vendor-icons-H7p0EuQJ.js +1 -0
  109. package/web/dist/assets/{vendor-react-Bp_V-Hsf.js → vendor-react-C1yKjxEP.js} +1 -1
  110. package/web/dist/assets/{vendor-state-Zjl_6-V3.js → vendor-state-D0TNAbOY.js} +1 -1
  111. package/web/dist/index.html +7 -7
  112. package/dist/App-6TRGTNZ7.js +0 -13
  113. package/dist/approval-handler-YLO3V75T.js +0 -1
  114. package/dist/audit-diagnostics-MASYIEGZ.js +0 -1
  115. package/dist/audit-manager-LYBXP7U4.js +0 -1
  116. package/dist/bree-engine-AA7EVKTG.js +0 -1
  117. package/dist/channels-2IL6USWL.js +0 -1
  118. package/dist/channels-6BEGHNOK.js +0 -1
  119. package/dist/chunk-6NWIZ3BH.js +0 -220
  120. package/dist/chunk-APAOIZN4.js +0 -114
  121. package/dist/chunk-CLNYHWZ6.js +0 -5
  122. package/dist/chunk-EVUZ5LH2.js +0 -1
  123. package/dist/chunk-L47LZYVG.js +0 -21
  124. package/dist/chunk-LU3D53ZV.js +0 -34
  125. package/dist/chunk-SVUP3F4V.js +0 -14
  126. package/dist/chunk-TLP4ZMJB.js +0 -19
  127. package/dist/chunk-UFWMUBFH.js +0 -25
  128. package/dist/engine-XLH4VL6Y.js +0 -1
  129. package/dist/execution-tools-SYP3GR6T.js +0 -1
  130. package/dist/memory-gc-BCHTOSXK.js +0 -1
  131. package/dist/memory-service-66EMRJXO.js +0 -1
  132. package/dist/outbound-gateway-3INYZDOR.js +0 -1
  133. package/dist/presets-DT3J2ON4.js +0 -1
  134. package/dist/role-presets-3IQKCSVQ.js +0 -1
  135. package/dist/role-workspace-SIHNI6HO.js +0 -1
  136. package/dist/skill-registry-4JT62GEF.js +0 -1
  137. package/dist/template-dispatch-2K7KV7YS.js +0 -1
  138. package/dist/template-execution-artifacts-NEPSVD2B.js +0 -1
  139. package/web/dist/assets/ChannelDetail-CsKBPHkT.js +0 -1
  140. package/web/dist/assets/Chat-DWTs-iOw.js +0 -2
  141. package/web/dist/assets/Events-nCImjXyr.js +0 -1
  142. package/web/dist/assets/Extensions-3lhbw0A2.js +0 -1
  143. package/web/dist/assets/GoalDetail-DRDg1JDv.js +0 -1
  144. package/web/dist/assets/Goals-DGmKvtGA.js +0 -1
  145. package/web/dist/assets/Plugins-BXrsGsXs.js +0 -1
  146. package/web/dist/assets/Roles-DH9cRv8h.js +0 -1
  147. package/web/dist/assets/TaskDetail-Bkaq0NwW.js +0 -2
  148. package/web/dist/assets/Work-4OcGMu_a.js +0 -1
  149. package/web/dist/assets/index-C-e-qpXc.js +0 -12
  150. package/web/dist/assets/index-DGTVc0qD.css +0 -2
  151. package/web/dist/assets/vendor-icons-U4igmrUq.js +0 -1
  152. /package/web/dist/assets/{format-BUYXZqDw.js → format-ZWN4JNj-.js} +0 -0
  153. /package/web/dist/assets/{ui-CerQw0jA.js → ui-D1crlGpt.js} +0 -0
@@ -1,10 +1,10 @@
1
- import{f as R,i as z}from"./chunk-VNXTBIPI.js";import{r as T,t as _,u as f}from"./chunk-RBJPQYV3.js";import{B as y,C as S,D as c,E as A,F as x,I as H}from"./chunk-KJNAORKM.js";import{c as B,e as U,f as Y}from"./chunk-FCV2DPZQ.js";var O={};U(O,{seedAdamAutomatorSkills:()=>K});async function K(t){let{ensureRoleWorkspace:r}=await import("./role-workspace-SIHNI6HO.js"),{getRole:e}=await import("./roles-F6AEM6B5.js"),{mkdir:a,readFile:n,writeFile:o,access:s}=await import("fs/promises"),{join:l}=await import("path"),d=e(t);if(!d)throw new Error(`Role '${t}' not found`);let u=r(d),m=l(u,".claude","skills");await a(m,{recursive:!0});let i=[{name:"aggregate_feature",description:"Aggregate a feature value over a window",inputs:[{name:"feature_name",desc:"Name of the feature to aggregate"},{name:"aggregation",desc:"Aggregation type: sum | avg | count | latest"},{name:"window_days",desc:"Number of days to look back"},{name:"field",desc:"Event payload field to aggregate"}],body:"Query events via sqlite3, compute aggregation, print numeric result."},{name:"check_threshold",description:"Compare a value vs threshold, emit breach if exceeded",inputs:[{name:"feature",desc:"Feature value (number)"},{name:"operator",desc:"Comparison operator: gt | gte | lt | lte | eq"},{name:"threshold",desc:"Threshold value"},{name:"on_breach_type",desc:"Event type to emit on breach"},{name:"on_breach_payload",desc:"JSON payload for breach event"}],body:"Read feature value, compare against threshold using the operator. On breach, emit new event via emit_event Skill."},{name:"query_events",description:"Range-query events table",inputs:[{name:"type_pattern",desc:"Event type pattern (e.g. 'scheduler.tick')"},{name:"window",desc:"Lookback window in hours"},{name:"limit",desc:"Maximum number of events to return"}],body:"sqlite3 parameterized query against the events table, returning matching rows as JSON."},{name:"query_state",description:"Read latest state_snapshot (not yet available)",inputs:[{name:"select",desc:"Dot-notation path to select (e.g. 'goals.active')"}],body:`Returns { state: null, available: false } \u2014 state_snapshot table not yet built (deferred to Phase 2).
1
+ import{f as g}from"./chunk-WVHN54MA.js";import{f as T,i as K}from"./chunk-3UR2PN5N.js";import{r as _,t as E,u as f}from"./chunk-K4IE6DPX.js";import{B as R,C as A,D as c,E as x,F as C,I as z}from"./chunk-MTQI6B7T.js";import{c as U,e as Y,f as H}from"./chunk-FCV2DPZQ.js";var L={};Y(L,{seedAdamAutomatorSkills:()=>J});async function J(t){let{ensureRoleWorkspace:r}=await import("./role-workspace-USY47ZPQ.js"),{getRole:e}=await import("./roles-3JXNHL7K.js"),{mkdir:a,readFile:n,writeFile:o,access:s}=await import("fs/promises"),{join:l}=await import("path"),d=e(t);if(!d)throw new Error(`Role '${t}' not found`);let u=r(d),m=l(u,".claude","skills");await a(m,{recursive:!0});let i=[{name:"aggregate_feature",description:"Aggregate a feature value over a window",inputs:[{name:"feature_name",desc:"Name of the feature to aggregate"},{name:"aggregation",desc:"Aggregation type: sum | avg | count | latest"},{name:"window_days",desc:"Number of days to look back"},{name:"field",desc:"Event payload field to aggregate"}],body:"Query events via sqlite3, compute aggregation, print numeric result."},{name:"check_threshold",description:"Compare a value vs threshold, emit breach if exceeded",inputs:[{name:"feature",desc:"Feature value (number)"},{name:"operator",desc:"Comparison operator: gt | gte | lt | lte | eq"},{name:"threshold",desc:"Threshold value"},{name:"on_breach_type",desc:"Event type to emit on breach"},{name:"on_breach_payload",desc:"JSON payload for breach event"}],body:"Read feature value, compare against threshold using the operator. On breach, emit new event via emit_event Skill."},{name:"query_events",description:"Range-query events table",inputs:[{name:"type_pattern",desc:"Event type pattern (e.g. 'scheduler.tick')"},{name:"window",desc:"Lookback window in hours"},{name:"limit",desc:"Maximum number of events to return"}],body:"sqlite3 parameterized query against the events table, returning matching rows as JSON."},{name:"query_state",description:"Read latest state_snapshot (not yet available)",inputs:[{name:"select",desc:"Dot-notation path to select (e.g. 'goals.active')"}],body:`Returns { state: null, available: false } \u2014 state_snapshot table not yet built (deferred to Phase 2).
2
2
 
3
3
  When the state_snapshot table is available, this Skill will query it for the latest snapshot matching the select path and return the value.`},{name:"query_goals",description:"Read active goals (goal_graph_nodes not built)",inputs:[{name:"types",desc:"Goal type filter (e.g. 'daily|weekly')"},{name:"status",desc:"Goal status filter: active | completed | paused"}],body:`Returns { goals: [], available: false } \u2014 goal_graph_nodes table not yet built (deferred to Phase 2).
4
4
 
5
5
  When the goal_graph_nodes table is available, this Skill will query the goals table for active goals matching the type and status filters.`},{name:"classify_route",description:"Match event vs rules, print action name",inputs:[{name:"routes_json",desc:"JSON array of routing rules [{pattern, action}]"},{name:"fallback",desc:"Fallback action if no pattern matches"}],body:"Iterate rules in order, first deep-equal pattern match wins, print the action name. If no match, print the fallback."},{name:"persist_artifact",description:"Write content to iCloud output path",inputs:[{name:"artifact_type",desc:"Artifact type (subdirectory name)"},{name:"content",desc:"Content to write"},{name:"user_day",desc:"User day string (e.g. '2026-04-16')"}],body:`Write content to ~/Library/Mobile Documents/com~apple~CloudDocs/Adam/Outputs/<artifact_type>/<user_day>.md
6
6
 
7
- NOTE: output_artifacts DB table not yet created (deferred to Phase 2). File write is performed but no DB row is inserted.`},{name:"emit_event",description:"Insert new events row + emit event_fired via OutboundGateway webhook",inputs:[{name:"type",desc:"Event type string (e.g. 'threshold.breach')"},{name:"payload",desc:"Event payload as JSON string"},{name:"dedup_key",desc:"Optional deduplication key"}],body:"POST to the configured webhook URL for the target event def, or use the internal createEvent API to insert a row directly."}];for(let P of i){let k=l(m,P.name),I=l(k,"SKILL.md");try{await s(I);continue}catch{}await a(k,{recursive:!0});let j=J(P);await o(I,j,"utf8")}}function J(t){let r=t.inputs.map(e=>`- ${e.name}: ${e.desc}`).join(`
7
+ NOTE: output_artifacts DB table not yet created (deferred to Phase 2). File write is performed but no DB row is inserted.`},{name:"emit_event",description:"Insert new events row + emit event_fired via OutboundGateway webhook",inputs:[{name:"type",desc:"Event type string (e.g. 'threshold.breach')"},{name:"payload",desc:"Event payload as JSON string"},{name:"dedup_key",desc:"Optional deduplication key"}],body:"POST to the configured webhook URL for the target event def, or use the internal createEvent API to insert a row directly."}];for(let k of i){let I=l(m,k.name),S=l(I,"SKILL.md");try{await s(S);continue}catch{}await a(I,{recursive:!0});let B=X(k);await o(S,B,"utf8")}}function X(t){let r=t.inputs.map(e=>`- ${e.name}: ${e.desc}`).join(`
8
8
  `);return`---
9
9
  description: ${t.description}
10
10
  ---
@@ -15,15 +15,15 @@ ${r}
15
15
 
16
16
  ## Instructions
17
17
  ${t.body}
18
- `}var F=B(()=>{"use strict"});H();import{v4 as p}from"uuid";z();var C={presetId:"engineer",name:"Engineer",cagPrompt:`Role: General-purpose software engineer.
18
+ `}var F=U(()=>{"use strict"});z();import{v4 as p}from"uuid";K();var M={presetId:"engineer",name:"Engineer",cagPrompt:`Role: General-purpose software engineer.
19
19
  Capabilities: Read, write, and edit code; run shell commands; search codebases.
20
20
  Approach: Analyze requirements \u2192 implement \u2192 test \u2192 verify. Write tests for new code. Follow existing code patterns.
21
21
  Best for: Feature implementation, bug fixes, refactoring, build/deploy scripts.
22
- Constraints: No web access. Works only within the assigned workspace directory.`,allowedTools:["Read","Write","Edit","Bash","Grep","Glob"],evaluationCriteria:{code_quality:4,test_pass:4,build_success:3},executionMode:"isolated"};var M={presetId:"reviewer",name:"Reviewer",cagPrompt:`Role: Code reviewer and security auditor. READ-ONLY \u2014 you do not modify files.
22
+ Constraints: No web access. Works only within the assigned workspace directory.`,allowedTools:["Read","Write","Edit","Bash","Grep","Glob"],evaluationCriteria:{code_quality:4,test_pass:4,build_success:3},executionMode:"isolated"};var N={presetId:"reviewer",name:"Reviewer",cagPrompt:`Role: Code reviewer and security auditor. READ-ONLY \u2014 you do not modify files.
23
23
  Capabilities: Read files, search code, run analysis commands (linters, type-checkers, test suites).
24
24
  Approach: Systematically review code for bugs, security issues, performance problems, and style violations. Output structured findings with file:line references.
25
25
  Best for: Code review, security audit, dependency audit, test coverage analysis.
26
- Constraints: No Write or Edit tools. Cannot modify code \u2014 only report findings.`,allowedTools:["Read","Grep","Glob","Bash"],evaluationCriteria:{bug_detection_rate:5,insight_quality:4},executionMode:"isolated"};var N={presetId:"researcher",name:"Researcher",cagPrompt:`Role: Information researcher and analyst with web access.
26
+ Constraints: No Write or Edit tools. Cannot modify code \u2014 only report findings.`,allowedTools:["Read","Grep","Glob","Bash"],evaluationCriteria:{bug_detection_rate:5,insight_quality:4},executionMode:"isolated"};var O={presetId:"researcher",name:"Researcher",cagPrompt:`Role: Information researcher and analyst with web access.
27
27
  Capabilities: Search the web, fetch web pages, read local files, run data processing scripts.
28
28
  Approach: Gather information from multiple sources \u2192 cross-reference \u2192 synthesize findings into structured reports.
29
29
  Best for: Market research, technical investigation, API documentation lookup, competitive analysis, news monitoring.
@@ -31,9 +31,9 @@ Constraints: No file write/edit permissions. Cannot modify the codebase \u2014 o
31
31
  Capabilities: Create and edit text files, read reference material, search for context.
32
32
  Approach: Understand the target audience and format \u2192 draft \u2192 refine. Match the project's existing tone and terminology.
33
33
  Best for: Documentation, reports, emails, translations, summaries, changelog entries.
34
- Constraints: No shell command execution. No web access. Works only with file read/write operations.`,allowedTools:["Read","Write","Edit","Grep","Glob"],evaluationCriteria:{content_quality:5,engagement:4},executionMode:"isolated"};var E={presetId:"chat-manager",name:"Chat Manager",cagPrompt:`You are the Chat Manager \u2014 orchestrating conversations and managing agent interactions.
34
+ Constraints: No shell command execution. No web access. Works only with file read/write operations.`,allowedTools:["Read","Write","Edit","Grep","Glob"],evaluationCriteria:{content_quality:5,engagement:4},executionMode:"isolated"};var w={presetId:"chat-manager",name:"Chat Manager",cagPrompt:`You are the Chat Manager \u2014 orchestrating conversations and managing agent interactions.
35
35
  You coordinate between user requests and agent execution, maintaining conversation context
36
- and routing tasks to the appropriate roles. You have broad memory access across all roles.`};var w={presetId:"adam-automator",name:"adam-automator",cagPrompt:`Role: Deterministic automation executor.
36
+ and routing tasks to the appropriate roles. You have broad memory access across all roles.`};var b={presetId:"adam-automator",name:"adam-automator",cagPrompt:`Role: Deterministic automation executor.
37
37
  Capabilities: Run preset Skills under .claude/skills/. Read/write files in the assigned workspace.
38
38
  Approach: When given an event and Skill name, invoke that Skill with the provided inputs. Do not interpret, do not deviate from the instruction, do not chain additional Skills unless told.
39
39
  Best for: Event-triggered deterministic logic (feature aggregation, threshold checks, artifact persistence, routing classification, event chaining).
@@ -55,7 +55,7 @@ If nothing found, record nothing and return "No feature requests found."
55
55
 
56
56
  Dedupe note: if the user later repeats the same request, emit a fresh record \u2014 the reviewer will dismiss duplicates via the /feature-requests page. Do not attempt to guess prior runs.
57
57
 
58
- Constraints: your ONLY callable tool is record_feature_request. No file access, no web search, no other channels.`,allowedTools:["mcp__mining-tools__record_feature_request"],disallowedTools:["Write","Edit","Bash","WebSearch","WebFetch","Read","Grep","Glob"],evaluationCriteria:{precision:5,recall:3,false_positive_rate:5},executionMode:"isolated"};var G={presetId:"mistake-digester",name:"Mistake Digester",cagPrompt:`Role: Cross-role failure analyst (notify-only).
58
+ Constraints: your ONLY callable tool is record_feature_request. No file access, no web search, no other channels.`,allowedTools:["mcp__mining-tools__record_feature_request"],disallowedTools:["Write","Edit","Bash","WebSearch","WebFetch","Read","Grep","Glob",...g],evaluationCriteria:{precision:5,recall:3,false_positive_rate:5},executionMode:"isolated"};var G={presetId:"mistake-digester",name:"Mistake Digester",cagPrompt:`Role: Cross-role failure analyst (notify-only).
59
59
  Your task is to call aggregate_mistakes with a 14-day window and all three dimensions.
60
60
  Then format the returned patterns as a markdown digest:
61
61
 
@@ -70,8 +70,8 @@ Constraints:
70
70
  - Your ONLY callable tool is aggregate_mistakes.
71
71
  - Do NOT propose any Role changes, CAG updates, or permission modifications.
72
72
  - This role is notify-only: report findings only.
73
- `,allowedTools:["mcp__audit-tools__aggregate_mistakes"],disallowedTools:["Write","Edit","Bash","WebSearch","WebFetch","Read","Grep","Glob"],evaluationCriteria:{signal_quality:5,conciseness:3,notify_only_compliance:5},executionMode:"isolated"};var $={presetId:"feature-mining",name:"Feature Mining (preset)",description:"Scans recent chat sessions for unmet user needs and records them as feature_requests.",trigger:{type:"manual"},steps:[{id:"mine",prompt:`Analyze the chat session excerpts below (pre-fetched from sessions modified after {{LAST_RUN_AT_HUMAN}}). Identify unmet feature requests and record each via record_feature_request. Return a summary count.
73
+ `,allowedTools:["mcp__audit-tools__aggregate_mistakes"],disallowedTools:["Write","Edit","Bash","WebSearch","WebFetch","Read","Grep","Glob",...g],evaluationCriteria:{signal_quality:5,conciseness:3,notify_only_compliance:5},executionMode:"isolated"};var $={presetId:"feature-mining",name:"Feature Mining (preset)",description:"Scans recent chat sessions for unmet user needs and records them as feature_requests.",trigger:{type:"manual"},steps:[{id:"mine",prompt:`Analyze the chat session excerpts below (pre-fetched from sessions modified after {{LAST_RUN_AT_HUMAN}}). Identify unmet feature requests and record each via record_feature_request. Return a summary count.
74
74
 
75
75
  === CHAT EXCERPTS ===
76
76
  {{CHAT_DATA}}
77
- === END EXCERPTS ===`,roleId:""}],config:{last_run_at:null,max_sessions:15,max_messages_per_session:30,message_char_cap:500},boundRolePresetId:"feature-miner"};var W={presetId:"mistake-digest",name:"Mistake Digest (preset)",description:"Weekly cross-role failure digest. Calls aggregate_mistakes and formats patterns for delivery. Configure deliverTo post-seed to enable channel delivery (left empty at seed since per-user channel target is unknown).",trigger:{type:"cron",cron:"0 8 * * 0"},steps:[{id:"digest",roleId:"",prompt:"Call aggregate_mistakes with default parameters (window 14 days, all 3 dimensions, minOccurrences 3, minRoles 2). Then format the returned patterns as a markdown digest with '# Mistake Digest' as the heading so it self-identifies. If no patterns, return 'No mistake patterns this period.'."}],config:{delivery_message_type:"mistake_digest"},boundRolePresetId:"mistake-digester"};var g=[C,M,N,D,E,w,q,G];var h=[$,W],Pe="role-chat-manager",V=g.map(t=>t.name);function ke(t){return t.source==="system"?!0:t.source==="user"?!1:V.includes(t.name)}function Ie(){v();let t=c(E.name);if(!t)throw new Error("ChatManager role not found after seedPresets()");return t}function Se(){v();let t=c(w.name);if(!t)throw new Error("adam-automator role not found after seedPresets()");return t}function Ae(){return v(),x(void 0,1e3,0)}function xe(){return g}function Ce(){return h}function L(t){return g.find(r=>r.presetId===t)}function X(t){return h.find(r=>r.presetId===t)}function b(t){let r=L(t);return r?c(r.name)?.id??"":""}function v(){let t=0,r=0;for(let e of g){if(c(e.name))continue;let o={id:e.presetId==="chat-manager"?"role-chat-manager":`role-${p().slice(0,8)}`,name:e.name,cagPrompt:e.cagPrompt,learnedRules:{stylePreferences:[],avoidedActions:[],pinnedParameters:[]},memoryStreamId:`mem-${p().slice(0,8)}`,status:"active",preferences:{},createdAt:Date.now(),allowedTools:e.allowedTools,disallowedTools:e.disallowedTools,evaluationCriteria:e.evaluationCriteria,executionMode:e.executionMode,model:e.model,effortTier:e.effortTier,skills:e.skills,source:"system",presetId:e.presetId};y(o),R(o),console.info(`[presets] Seeded Role preset: ${e.name} (${e.presetId})`),e.presetId==="adam-automator"&&Z(o.id).catch(s=>{console.warn(`[presets] Failed to seed adam-automator Skills: ${s}`)}),t++}for(let e of h){if(f().find(s=>s.presetId===e.presetId))continue;let n=b(e.boundRolePresetId),o={id:`tmpl-${p().slice(0,8)}`,name:e.name,description:e.description,trigger:e.trigger,steps:e.steps.map(s=>({...s,roleId:s.roleId===""?n:s.roleId})),config:e.config,enabled:!0,createdAt:Date.now(),isPreset:!0,presetId:e.presetId};T(o),r++,console.info(`[presets] Seeded Template preset: ${e.name} (${e.presetId})`)}return{rolesCreated:t,templatesCreated:r}}function Q(t,r){if(t==="role"){let e=L(r);if(!e)return{ok:!1,reason:"preset not found"};let a=c(e.name);if(a)A(a.id,{cagPrompt:e.cagPrompt,allowedTools:e.allowedTools,disallowedTools:e.disallowedTools,evaluationCriteria:e.evaluationCriteria,executionMode:e.executionMode,model:e.model,effortTier:e.effortTier,skills:e.skills,source:"system",presetId:e.presetId}),console.info(`[presets] Restored Role preset: ${e.name} (${r})`);else{let n=e.presetId==="chat-manager"?"role-chat-manager":`role-${p().slice(0,8)}`,o={id:n,name:e.name,cagPrompt:e.cagPrompt,learnedRules:{stylePreferences:[],avoidedActions:[],pinnedParameters:[]},memoryStreamId:`mem-${p().slice(0,8)}`,status:"active",preferences:{},createdAt:Date.now(),allowedTools:e.allowedTools,disallowedTools:e.disallowedTools,evaluationCriteria:e.evaluationCriteria,executionMode:e.executionMode,model:e.model,effortTier:e.effortTier,skills:e.skills,source:"system",presetId:e.presetId};y(o),R(o),console.info(`[presets] Re-created Role preset via restorePreset: ${e.name} (${r})`);let s=n;for(let l of h){if(l.boundRolePresetId!==r)continue;let d=f().find(i=>i.presetId===l.presetId);if(!d)continue;let u=!1,m=d.steps.map(i=>!i.roleId||S(i.roleId)?i:(u=!0,{...i,roleId:s}));u&&(_(d.id,{steps:m}),console.info(`[presets] Re-linked orphaned step roleIds on Template ${l.presetId} \u2192 Role ${r}`))}}return{ok:!0}}if(t==="template"){let e=X(r);if(!e)return{ok:!1,reason:"preset not found"};let a=b(e.boundRolePresetId);if(!a){if(!Q("role",e.boundRolePresetId).ok)return{ok:!1,reason:`bound role preset missing: ${e.boundRolePresetId}`};if(a=b(e.boundRolePresetId),!a)return{ok:!1,reason:`could not resolve bound role id after restore: ${e.boundRolePresetId}`}}let n=f().find(o=>o.presetId===e.presetId);if(n)_(n.id,{name:e.name,description:e.description,trigger:e.trigger,steps:e.steps.map(o=>({...o,roleId:o.roleId===""?a:o.roleId})),config:e.config,isPreset:!0,presetId:e.presetId}),console.info(`[presets] Restored Template preset: ${e.name} (${r})`);else{let o={id:`tmpl-${p().slice(0,8)}`,name:e.name,description:e.description,trigger:e.trigger,steps:e.steps.map(s=>({...s,roleId:s.roleId===""?a:s.roleId})),config:e.config,enabled:!0,createdAt:Date.now(),isPreset:!0,presetId:e.presetId};T(o),console.info(`[presets] Re-created Template preset via restorePreset: ${e.name} (${r})`)}return{ok:!0}}return{ok:!1,reason:"invalid type"}}async function Z(t){try{let{seedAdamAutomatorSkills:r}=(F(),Y(O));await r(t)}catch{console.warn(`[presets] seedAdamAutomatorSkills: module unavailable for roleId=${t}`)}}export{w as a,g as b,h as c,Pe as d,V as e,ke as f,Ie as g,Se as h,Ae as i,xe as j,Ce as k,L as l,X as m,v as n,Q as o};
77
+ === END EXCERPTS ===`,roleId:""}],config:{last_run_at:null,max_sessions:15,max_messages_per_session:30,message_char_cap:500},boundRolePresetId:"feature-miner"};var W={presetId:"mistake-digest",name:"Mistake Digest (preset)",description:"Weekly cross-role failure digest. Calls aggregate_mistakes and formats patterns for delivery. Configure deliverTo post-seed to enable channel delivery (left empty at seed since per-user channel target is unknown).",trigger:{type:"cron",cron:"0 8 * * 0"},steps:[{id:"digest",roleId:"",prompt:"Call aggregate_mistakes with default parameters (window 14 days, all 3 dimensions, minOccurrences 3, minRoles 2). Then format the returned patterns as a markdown digest with '# Mistake Digest' as the heading so it self-identifies. If no patterns, return 'No mistake patterns this period.'."}],config:{delivery_message_type:"mistake_digest"},boundRolePresetId:"mistake-digester"};var h=[M,N,O,D,w,b,q,G];var y=[$,W],Se="role-chat-manager",V=h.map(t=>t.name);function Ae(t){return t.source==="system"?!0:t.source==="user"?!1:V.includes(t.name)}function xe(){P();let t=c(w.name);if(!t)throw new Error("ChatManager role not found after seedPresets()");return t}function Ce(){P();let t=c(b.name);if(!t)throw new Error("adam-automator role not found after seedPresets()");return t}function Me(){return P(),C(void 0,1e3,0)}function Ne(){return h}function Oe(){return y}function j(t){return h.find(r=>r.presetId===t)}function Q(t){return y.find(r=>r.presetId===t)}function v(t){let r=j(t);return r?c(r.name)?.id??"":""}function P(){let t=0,r=0;for(let e of h){if(c(e.name))continue;let o={id:e.presetId==="chat-manager"?"role-chat-manager":`role-${p().slice(0,8)}`,name:e.name,cagPrompt:e.cagPrompt,learnedRules:{stylePreferences:[],avoidedActions:[],pinnedParameters:[]},memoryStreamId:`mem-${p().slice(0,8)}`,status:"active",preferences:{},createdAt:Date.now(),allowedTools:e.allowedTools,disallowedTools:e.disallowedTools,evaluationCriteria:e.evaluationCriteria,executionMode:e.executionMode,model:e.model,effortTier:e.effortTier,skills:e.skills,source:"system",presetId:e.presetId};R(o),T(o),console.info(`[presets] Seeded Role preset: ${e.name} (${e.presetId})`),e.presetId==="adam-automator"&&ee(o.id).catch(s=>{console.warn(`[presets] Failed to seed adam-automator Skills: ${s}`)}),t++}for(let e of y){if(f().find(s=>s.presetId===e.presetId))continue;let n=v(e.boundRolePresetId),o={id:`tmpl-${p().slice(0,8)}`,name:e.name,description:e.description,trigger:e.trigger,steps:e.steps.map(s=>({...s,roleId:s.roleId===""?n:s.roleId})),config:e.config,enabled:!0,createdAt:Date.now(),isPreset:!0,presetId:e.presetId};_(o),r++,console.info(`[presets] Seeded Template preset: ${e.name} (${e.presetId})`)}return{rolesCreated:t,templatesCreated:r}}function Z(t,r){if(t==="role"){let e=j(r);if(!e)return{ok:!1,reason:"preset not found"};let a=c(e.name);if(a)x(a.id,{cagPrompt:e.cagPrompt,allowedTools:e.allowedTools,disallowedTools:e.disallowedTools,evaluationCriteria:e.evaluationCriteria,executionMode:e.executionMode,model:e.model,effortTier:e.effortTier,skills:e.skills,source:"system",presetId:e.presetId}),console.info(`[presets] Restored Role preset: ${e.name} (${r})`);else{let n=e.presetId==="chat-manager"?"role-chat-manager":`role-${p().slice(0,8)}`,o={id:n,name:e.name,cagPrompt:e.cagPrompt,learnedRules:{stylePreferences:[],avoidedActions:[],pinnedParameters:[]},memoryStreamId:`mem-${p().slice(0,8)}`,status:"active",preferences:{},createdAt:Date.now(),allowedTools:e.allowedTools,disallowedTools:e.disallowedTools,evaluationCriteria:e.evaluationCriteria,executionMode:e.executionMode,model:e.model,effortTier:e.effortTier,skills:e.skills,source:"system",presetId:e.presetId};R(o),T(o),console.info(`[presets] Re-created Role preset via restorePreset: ${e.name} (${r})`);let s=n;for(let l of y){if(l.boundRolePresetId!==r)continue;let d=f().find(i=>i.presetId===l.presetId);if(!d)continue;let u=!1,m=d.steps.map(i=>!i.roleId||A(i.roleId)?i:(u=!0,{...i,roleId:s}));u&&(E(d.id,{steps:m}),console.info(`[presets] Re-linked orphaned step roleIds on Template ${l.presetId} \u2192 Role ${r}`))}}return{ok:!0}}if(t==="template"){let e=Q(r);if(!e)return{ok:!1,reason:"preset not found"};let a=v(e.boundRolePresetId);if(!a){if(!Z("role",e.boundRolePresetId).ok)return{ok:!1,reason:`bound role preset missing: ${e.boundRolePresetId}`};if(a=v(e.boundRolePresetId),!a)return{ok:!1,reason:`could not resolve bound role id after restore: ${e.boundRolePresetId}`}}let n=f().find(o=>o.presetId===e.presetId);if(n)E(n.id,{name:e.name,description:e.description,trigger:e.trigger,steps:e.steps.map(o=>({...o,roleId:o.roleId===""?a:o.roleId})),config:e.config,isPreset:!0,presetId:e.presetId}),console.info(`[presets] Restored Template preset: ${e.name} (${r})`);else{let o={id:`tmpl-${p().slice(0,8)}`,name:e.name,description:e.description,trigger:e.trigger,steps:e.steps.map(s=>({...s,roleId:s.roleId===""?a:s.roleId})),config:e.config,enabled:!0,createdAt:Date.now(),isPreset:!0,presetId:e.presetId};_(o),console.info(`[presets] Re-created Template preset via restorePreset: ${e.name} (${r})`)}return{ok:!0}}return{ok:!1,reason:"invalid type"}}async function ee(t){try{let{seedAdamAutomatorSkills:r}=(F(),H(L));await r(t)}catch{console.warn(`[presets] seedAdamAutomatorSkills: module unavailable for roleId=${t}`)}}export{b as a,h as b,y as c,Se as d,V as e,Ae as f,xe as g,Ce as h,Me as i,Ne as j,Oe as k,j as l,Q as m,P as n,Z as o};
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-NLTYJUQG.js";import{a as B,b as J}from"./chunk-NTVLV7NI.js";import{a as q}from"./chunk-N2OLEUAQ.js";import{c as R,e as K,g as ce}from"./chunk-IRUR4DVD.js";import{d as F}from"./chunk-TLMG5W3L.js";import"./chunk-Z6LHGA27.js";import{l as H,m as j,n as le}from"./chunk-BPXS4QEO.js";import"./chunk-WBAPIPST.js";import"./chunk-BLCNUT53.js";import"./chunk-FCV2DPZQ.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(`
2
+ import{a as G,b as h,c as W,e as z}from"./chunk-NLTYJUQG.js";import{a as B,b as J}from"./chunk-NTVLV7NI.js";import{a as q}from"./chunk-N2OLEUAQ.js";import{c as R,e as K,g as ce}from"./chunk-OGY42NUN.js";import{d as F}from"./chunk-TLMG5W3L.js";import"./chunk-Z6LHGA27.js";import{n as H,o as j,p as le}from"./chunk-QL2ZOLMC.js";import"./chunk-WBAPIPST.js";import"./chunk-BLCNUT53.js";import"./chunk-FCV2DPZQ.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-6TRGTNZ7.js")).default,{waitUntilExit:o}=$e(be.createElement(e));await o()});w.parse();
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-Z2GJAMX3.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-IRUR4DVD.js";import"./chunk-BPXS4QEO.js";import"./chunk-WBAPIPST.js";import"./chunk-BLCNUT53.js";import"./chunk-FCV2DPZQ.js";g();export{f as deleteConfigValue,c as getAllConfig,a as getConfigValue,e as isConfigEmpty,d as seedConfig,b as setConfigValue};
1
+ import{a,b,c,d,e,f,g}from"./chunk-OGY42NUN.js";import"./chunk-QL2ZOLMC.js";import"./chunk-WBAPIPST.js";import"./chunk-BLCNUT53.js";import"./chunk-FCV2DPZQ.js";g();export{f as deleteConfigValue,c as getAllConfig,a as getConfigValue,e as isConfigEmpty,d as seedConfig,b as setConfigValue};
@@ -1 +1 @@
1
- import{k as a,l as b,m as c,n as d}from"./chunk-BPXS4QEO.js";import"./chunk-WBAPIPST.js";import"./chunk-BLCNUT53.js";import"./chunk-FCV2DPZQ.js";d();export{c as closeDb,b as getDb,a as runMigrations};
1
+ import{m as a,n as b,o as c,p as d}from"./chunk-QL2ZOLMC.js";import"./chunk-WBAPIPST.js";import"./chunk-BLCNUT53.js";import"./chunk-FCV2DPZQ.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-NPGZRSGL.js";import"./chunk-BPXS4QEO.js";import"./chunk-WBAPIPST.js";import"./chunk-BLCNUT53.js";import"./chunk-245WE5AF.js";import"./chunk-FCV2DPZQ.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};
1
+ import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk-LQVBWVLE.js";import"./chunk-QL2ZOLMC.js";import"./chunk-WBAPIPST.js";import"./chunk-BLCNUT53.js";import"./chunk-245WE5AF.js";import"./chunk-FCV2DPZQ.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-H4MMEULK.js";import"./chunk-SCUPWMI5.js";import"./chunk-NUJSTEV4.js";import"./chunk-HJICGOD4.js";import"./chunk-NNMQGISW.js";import"./chunk-32LOJEHE.js";import"./chunk-LQVBWVLE.js";import"./chunk-6Y2DN2UH.js";import"./chunk-VVQ532U2.js";import"./chunk-AG5SADAI.js";import"./chunk-FYULPPFR.js";import"./chunk-AQAHVNNG.js";import"./chunk-K4IE6DPX.js";import"./chunk-L7JP7DUO.js";import"./chunk-MTQI6B7T.js";import"./chunk-OGY42NUN.js";import"./chunk-ASPPM7TQ.js";import"./chunk-Z6LHGA27.js";import"./chunk-LVHLUAZW.js";import"./chunk-QL2ZOLMC.js";import"./chunk-WBAPIPST.js";import"./chunk-BLCNUT53.js";import"./chunk-245WE5AF.js";import"./chunk-FCV2DPZQ.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-TZCMK3UG.js";import"./chunk-BPXS4QEO.js";import"./chunk-WBAPIPST.js";import"./chunk-BLCNUT53.js";import"./chunk-245WE5AF.js";import"./chunk-FCV2DPZQ.js";export{a as createEvolutionAudit,e as generateDiff,d as getLatestRoleEvolution,b as listEvolutionAudit,c as listEvolutionAuditByRole};
1
+ import{a,b,c,d,e}from"./chunk-R24YRJRG.js";import"./chunk-QL2ZOLMC.js";import"./chunk-WBAPIPST.js";import"./chunk-BLCNUT53.js";import"./chunk-245WE5AF.js";import"./chunk-FCV2DPZQ.js";export{a as createEvolutionAudit,e as generateDiff,d as getLatestRoleEvolution,b as listEvolutionAudit,c as listEvolutionAuditByRole};
@@ -0,0 +1 @@
1
+ import{d as a,e as b,f as c,g as d,h as e,i as f,j as g}from"./chunk-WVHN54MA.js";import"./chunk-C2XFPUFV.js";import"./chunk-HXDS4NWI.js";import"./chunk-AQAHVNNG.js";import"./chunk-3UR2PN5N.js";import"./chunk-K4IE6DPX.js";import"./chunk-L7JP7DUO.js";import"./chunk-3UZIEE2D.js";import"./chunk-FHESRUJY.js";import"./chunk-DRO3DG7X.js";import"./chunk-TJTH7LHX.js";import"./chunk-MTQI6B7T.js";import"./chunk-OGY42NUN.js";import"./chunk-Z6LHGA27.js";import"./chunk-LVHLUAZW.js";import"./chunk-QL2ZOLMC.js";import"./chunk-WBAPIPST.js";import"./chunk-BLCNUT53.js";import"./chunk-245WE5AF.js";import"./chunk-FCV2DPZQ.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,g as createExecutionTools};