manifest 5.6.3 → 5.6.5

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.
@@ -152,9 +152,6 @@ let DatabaseSeederService = DatabaseSeederService_1 = class DatabaseSeederServic
152
152
  this.logger.log(`Seeded tenant/agent with OTLP key: ${SEED_OTLP_KEY.substring(0, 8)}***`);
153
153
  }
154
154
  async seedModelPricing() {
155
- const count = await this.pricingRepo.count();
156
- if (count > 0)
157
- return;
158
155
  const models = [
159
156
  ['claude-opus-4-6', 'Anthropic', 0.000015, 0.000075],
160
157
  ['claude-sonnet-4-5-20250929', 'Anthropic', 0.000003, 0.000015],
@@ -1 +1 @@
1
- {"version":3,"file":"database-seeder.service.js","sourceRoot":"","sources":["../../src/database/database-seeder.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database-seeder.service.js","sourceRoot":"","sources":["../../src/database/database-seeder.service.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,17 @@
1
+ import { OnModuleInit } from '@nestjs/common';
1
2
  import { Repository } from 'typeorm';
2
3
  import { ModelPricing } from '../entities/model-pricing.entity';
3
4
  import { ModelPricingCacheService } from '../model-prices/model-pricing-cache.service';
4
5
  import { PricingHistoryService } from './pricing-history.service';
5
6
  import { UnresolvedModelTrackerService } from '../model-prices/unresolved-model-tracker.service';
6
- export declare class PricingSyncService {
7
+ export declare class PricingSyncService implements OnModuleInit {
7
8
  private readonly pricingRepo;
8
9
  private readonly pricingCache;
9
10
  private readonly pricingHistory;
10
11
  private readonly unresolvedTracker;
11
12
  private readonly logger;
12
13
  constructor(pricingRepo: Repository<ModelPricing>, pricingCache: ModelPricingCacheService, pricingHistory: PricingHistoryService, unresolvedTracker: UnresolvedModelTrackerService);
14
+ onModuleInit(): Promise<void>;
13
15
  syncPricing(): Promise<number>;
14
16
  private fetchOpenRouterModels;
15
17
  private syncAllModels;
@@ -38,6 +38,7 @@ const PROVIDER_DISPLAY_NAMES = {
38
38
  xai: 'xAI',
39
39
  };
40
40
  const OPENROUTER_API = 'https://openrouter.ai/api/v1/models';
41
+ const FRESHNESS_HOURS = 12;
41
42
  let PricingSyncService = PricingSyncService_1 = class PricingSyncService {
42
43
  pricingRepo;
43
44
  pricingCache;
@@ -50,6 +51,19 @@ let PricingSyncService = PricingSyncService_1 = class PricingSyncService {
50
51
  this.pricingHistory = pricingHistory;
51
52
  this.unresolvedTracker = unresolvedTracker;
52
53
  }
54
+ async onModuleInit() {
55
+ const cutoff = new Date(Date.now() - FRESHNESS_HOURS * 3600_000);
56
+ const recent = await this.pricingRepo.count({
57
+ where: { updated_at: (0, typeorm_2.MoreThan)(cutoff) },
58
+ });
59
+ if (recent > 0) {
60
+ this.logger.log('Pricing data is fresh — skipping startup sync');
61
+ return;
62
+ }
63
+ this.syncPricing().catch((err) => {
64
+ this.logger.error(`Startup pricing sync failed: ${err}`);
65
+ });
66
+ }
53
67
  async syncPricing() {
54
68
  this.logger.log('Starting daily model pricing sync from OpenRouter...');
55
69
  const data = await this.fetchOpenRouterModels();
@@ -80,25 +94,40 @@ let PricingSyncService = PricingSyncService_1 = class PricingSyncService {
80
94
  }
81
95
  async syncAllModels(data) {
82
96
  let updated = 0;
97
+ let failed = 0;
83
98
  const now = new Date((0, sql_dialect_1.sqlNow)());
84
99
  for (const model of data) {
85
- const prompt = Number(model.pricing?.prompt ?? 0);
86
- const completion = Number(model.pricing?.completion ?? 0);
87
- if (prompt === 0 && completion === 0)
88
- continue;
89
- const { canonical, provider } = this.deriveNames(model.id);
90
- const existing = await this.pricingRepo.findOneBy({
91
- model_name: canonical,
92
- });
93
- const incoming = {
94
- model_name: canonical,
95
- provider,
96
- input_price_per_token: prompt,
97
- output_price_per_token: completion,
98
- };
99
- await this.pricingHistory.recordChange(existing, incoming, 'sync');
100
- await this.pricingRepo.upsert({ ...incoming, updated_at: now }, ['model_name']);
101
- updated++;
100
+ try {
101
+ const prompt = Number(model.pricing?.prompt ?? 0);
102
+ const completion = Number(model.pricing?.completion ?? 0);
103
+ if (prompt === 0 && completion === 0)
104
+ continue;
105
+ if (!Number.isFinite(prompt) || !Number.isFinite(completion)) {
106
+ this.logger.warn(`Skipping ${model.id}: non-finite pricing`);
107
+ failed++;
108
+ continue;
109
+ }
110
+ const { canonical, provider } = this.deriveNames(model.id);
111
+ const existing = await this.pricingRepo.findOneBy({
112
+ model_name: canonical,
113
+ });
114
+ const incoming = {
115
+ model_name: canonical,
116
+ provider,
117
+ input_price_per_token: prompt,
118
+ output_price_per_token: completion,
119
+ };
120
+ await this.pricingHistory.recordChange(existing, incoming, 'sync');
121
+ await this.pricingRepo.upsert({ ...incoming, updated_at: now }, ['model_name']);
122
+ updated++;
123
+ }
124
+ catch (err) {
125
+ failed++;
126
+ this.logger.warn(`Failed to sync model ${model.id}: ${err instanceof Error ? err.message : err}`);
127
+ }
128
+ }
129
+ if (failed > 0) {
130
+ this.logger.warn(`Pricing sync: ${failed} models failed`);
102
131
  }
103
132
  return updated;
104
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pricing-sync.service.js","sourceRoot":"","sources":["../../src/database/pricing-sync.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pricing-sync.service.js","sourceRoot":"","sources":["../../src/database/pricing-sync.service.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,11 +16,11 @@ To resolve the conflict:`,(0,$o.getConflictResolutionRecipe)(u,r))),c=a):ZM.diag
16
16
  openclaw config set plugins.entries.manifest.config.endpoint https://app.manifest.build/otlp`:`Invalid apiKey format. Keys must start with '${Ce}'. Fix it via:
17
17
  openclaw config set manifest.apiKey ${Ce}YOUR_KEY`:`Missing apiKey. Set it via:
18
18
  openclaw config set manifest.apiKey ${Ce}YOUR_KEY
19
- or export MANIFEST_API_KEY=${Ce}YOUR_KEY`}var Qi=Oe(cM()),Zi=Oe(_i()),BI=Oe(II()),GI=Oe(wI()),HI=Oe(To());m();var zr=null,Jr=null,Pc=null,Mc=null;function ea(o,r){let i=new HI.Resource({"service.name":o.serviceName,"service.version":"5.6.3","manifest.plugin":"true"}),c={Authorization:`Bearer ${o.apiKey}`},a=new BI.OTLPTraceExporter({url:`${o.endpoint}/v1/traces`,headers:c});zr=new Qi.BasicTracerProvider({resource:i,spanProcessors:[new Qi.BatchSpanProcessor(a,{scheduledDelayMillis:5e3,maxQueueSize:2048,maxExportBatchSize:512})]}),zr.register(),r.info(`[manifest] Trace exporter -> ${o.endpoint}/v1/traces`);let u=new GI.OTLPMetricExporter({url:`${o.endpoint}/v1/metrics`,headers:c});return Jr=new Zi.MeterProvider({resource:i,readers:[new Zi.PeriodicExportingMetricReader({exporter:u,exportIntervalMillis:o.metricsIntervalMs})]}),yt.setGlobalMeterProvider(Jr),r.info(`[manifest] Metrics exporter -> ${o.endpoint}/v1/metrics (interval=${o.metricsIntervalMs}ms)`),Pc=ke.getTracer("manifest-plugin","5.6.3"),Mc=yt.getMeter("manifest-plugin","5.6.3"),{tracer:Pc,meter:Mc}}async function ta(o){o.info("[manifest] Shutting down telemetry..."),zr&&(await zr.shutdown(),zr=null),Jr&&(await Jr.shutdown(),Jr=null),Pc=null,Mc=null,o.info("[manifest] Telemetry shut down")}m();var lr=new Map,kI,YI,FI,KI,g5,jI,qI,WI,zI;function ra(o){kI=o.createCounter(me.LLM_REQUESTS,{description:"Total LLM inference requests"}),YI=o.createCounter(me.LLM_TOKENS_INPUT,{description:"Total input tokens sent to LLM"}),FI=o.createCounter(me.LLM_TOKENS_OUTPUT,{description:"Total output tokens from LLM"}),KI=o.createCounter(me.LLM_TOKENS_CACHE_READ,{description:"Total cache-read tokens"}),g5=o.createHistogram(me.LLM_DURATION,{description:"LLM request duration in ms",unit:"ms"}),jI=o.createCounter(me.TOOL_CALLS,{description:"Total tool invocations"}),qI=o.createCounter(me.TOOL_ERRORS,{description:"Total tool errors"}),WI=o.createHistogram(me.TOOL_DURATION,{description:"Tool execution duration in ms",unit:"ms"}),zI=o.createCounter(me.MESSAGES_RECEIVED,{description:"Total messages received from users"})}function na(o,r,i,c){o.on("message_received",a=>{let u=a.sessionKey||a.session?.key||`agent:${a.agent||"main"}:main`,t=a.channel||"unknown",e=r.startSpan(en.REQUEST,{kind:Ge.SERVER,attributes:{[B.SESSION_KEY]:u,[B.CHANNEL]:t}});lr.set(u,{root:e}),zI.add(1,{[B.CHANNEL]:t}),c.debug(`[manifest] Root span started for session=${u}`)}),o.on("before_agent_start",a=>{let u=a.sessionKey||a.session?.key||`agent:${a.agent||"main"}:main`,t=a.agent||"main",e=lr.get(u),n=e?.root?ke.setSpan(He.active(),e.root):He.active(),s=r.startSpan(en.AGENT_TURN,{kind:Ge.INTERNAL,attributes:{[B.AGENT_NAME]:t,[B.SESSION_KEY]:u}},n);e?e.turn=s:lr.set(u,{root:s,turn:s}),c.debug(`[manifest] Agent turn started: agent=${t}, session=${u}`)}),o.on("tool_result_persist",a=>{let u=a.toolName||a.tool||"unknown",t=a.durationMs||0,e=a.error==null,n=a.sessionKey||"unknown",s=lr.get(n),l=s?.turn?ke.setSpan(He.active(),s.turn):He.active(),E=r.startSpan(`${en.TOOL_PREFIX}${u}`,{kind:Ge.INTERNAL,attributes:{[B.TOOL_NAME]:u,[B.TOOL_SUCCESS]:String(e),[B.SESSION_KEY]:n}},l);e||(E.setStatus({code:Rt.ERROR,message:a.error?.message||"Tool execution failed"}),qI.add(1,{[B.TOOL_NAME]:u})),E.end(),jI.add(1,{[B.TOOL_NAME]:u}),WI.record(t,{[B.TOOL_NAME]:u})}),o.on("agent_end",a=>{let u=a.sessionKey||a.session?.key||`agent:${a.agent||"main"}:main`,e=[...a.messages||[]].reverse().find($r=>$r.role==="assistant"&&$r.usage),n=e?.model||a.model||"unknown",s=e?.provider||a.provider||"unknown",l=e?.usage||a.usage||{},E=l.input||l.inputTokens||0,O=l.output||l.outputTokens||0,g=l.cacheRead||l.cacheReadTokens||0,ue=l.cacheWrite||l.cacheWriteTokens||0,ve=lr.get(u);ve?.turn&&(ve.turn.setAttributes({[B.MODEL]:n,[B.PROVIDER]:s,[B.INPUT_TOKENS]:E,[B.OUTPUT_TOKENS]:O,[B.CACHE_READ_TOKENS]:g,[B.CACHE_WRITE_TOKENS]:ue}),ve.turn.end()),ve?.root&&ve.root!==ve.turn&&ve.root.end(),lr.delete(u);let Ie={[B.MODEL]:n,[B.PROVIDER]:s};kI.add(1,Ie),YI.add(E,Ie),FI.add(O,Ie),g>0&&KI.add(g,Ie),c.debug(`[manifest] agent_end tokens: in=${E}, out=${O}, cache=${g}`),c.debug(`[manifest] Trace completed for session=${u}`)}),c.info("[manifest] All hooks registered")}async function oa(o){let r=o.endpoint.replace(/\/otlp(\/v1)?\/?$/,""),i={endpointReachable:!1,authValid:!1,agentName:null,error:null};try{let c=await fetch(`${r}/api/v1/health`,{signal:AbortSignal.timeout(5e3)});if(!c.ok)return i.error=`Health endpoint returned ${c.status}`,i;i.endpointReachable=!0}catch(c){let a=c instanceof Error?c.message:String(c);return i.error=`Cannot reach endpoint: ${a}`,i}try{let c=await fetch(`${r}/api/v1/agent/usage?range=24h`,{headers:{Authorization:`Bearer ${o.apiKey}`},signal:AbortSignal.timeout(5e3)});if(c.status===401||c.status===403)return i.error="API key rejected \u2014 check your mnfst_ key is correct",i;if(!c.ok)return i.error=`Usage endpoint returned ${c.status}`,i;i.authValid=!0;let a=await c.json();a&&typeof a.agentName=="string"&&(i.agentName=a.agentName)}catch(c){let a=c instanceof Error?c.message:String(c);return i.error=`Auth check failed: ${a}`,i}return i}var JI={today:"24h",week:"7d",month:"30d"};async function XI(o,r,i,c){let a=`${o}${r}`;try{let u=await fetch(a,{headers:{Authorization:`Bearer ${i}`}});return u.ok?{result:await u.json()}:{error:`API returned ${u.status}`}}catch(u){let t=u instanceof Error?u.message:String(u);return c.error(`[manifest] API call failed: ${t}`),{error:t}}}function ia(o,r,i){let c=r.endpoint.replace(/\/otlp(\/v1)?\/?$/,"");o.registerTool({name:"manifest_usage",description:"Get token consumption for this agent: total, input, output, cache-read tokens, and action count. Use when the user asks about token usage or consumption.",parameters:{type:"object",properties:{period:{type:"string",enum:["today","week","month"],default:"today",description:"Time period"}}},handler:async a=>{let u=JI[a.period||"today"]||"24h";return XI(c,`/api/v1/agent/usage?range=${u}`,r.apiKey,i)}}),o.registerTool({name:"manifest_costs",description:"Get cost breakdown for this agent in USD, grouped by model. Use when the user asks about costs, spending, or money burned.",parameters:{type:"object",properties:{period:{type:"string",enum:["today","week","month"],default:"week",description:"Time period"}}},handler:async a=>{let u=JI[a.period||"week"]||"7d";return XI(c,`/api/v1/agent/costs?range=${u}`,r.apiKey,i)}}),o.registerTool({name:"manifest_health",description:"Check whether Manifest observability is connected and working. Use when the user asks if monitoring is set up or wants a connectivity test.",parameters:{type:"object",properties:{}},handler:async()=>{let a=await oa(r);return a.error?{error:a.error}:{result:{endpointReachable:a.endpointReachable,authValid:a.authValid,agentName:a.agentName,status:"ok"}}}}),i.info("[manifest] Registered agent tools: manifest_usage, manifest_costs, manifest_health")}var U=require("fs"),Ae=require("path"),gc=require("os"),QI=require("crypto");var aa=(0,Ae.join)((0,gc.homedir)(),".openclaw","manifest"),Xr=(0,Ae.join)(aa,"config.json"),ZI=(0,Ae.join)((0,gc.homedir)(),".openclaw"),$I=(0,Ae.join)(ZI,"openclaw.json"),L5=3e3;function I5(){(0,U.existsSync)(aa)||(0,U.mkdirSync)(aa,{recursive:!0,mode:448})}function C5(){if(I5(),(0,U.existsSync)(Xr))try{let i=JSON.parse((0,U.readFileSync)(Xr,"utf-8"));if(i.apiKey&&i.apiKey.startsWith(Ce))return i.apiKey}catch{}let o=`${Ce}local_${(0,QI.randomBytes)(24).toString("hex")}`,r={};if((0,U.existsSync)(Xr))try{r=JSON.parse((0,U.readFileSync)(Xr,"utf-8"))}catch{}return(0,U.writeFileSync)(Xr,JSON.stringify({...r,apiKey:o},null,2),{mode:384}),o}function eC(o){if(!(0,U.existsSync)(o))return{};try{return JSON.parse((0,U.readFileSync)(o,"utf-8"))}catch{return{}}}function tC(o,r){let i=(0,Ae.dirname)(o);(0,U.existsSync)(i)||(0,U.mkdirSync)(i,{recursive:!0,mode:448});let c=`${o}.tmp.${process.pid}`;(0,U.writeFileSync)(c,JSON.stringify(r,null,2),{mode:384}),(0,U.renameSync)(c,o)}function x5(o,r,i,c,a){let t={baseUrl:`http://${r}:${i}/v1`,api:"openai-completions",apiKey:c,models:[{id:"auto",name:"auto"}]};try{let e=eC($I);e.models||(e.models={}),e.models.providers||(e.models.providers={}),e.models.providers.manifest=t,e.agents||(e.agents={}),e.agents.defaults||(e.agents.defaults={}),e.agents.defaults.models||(e.agents.defaults.models={});let n=e.agents.defaults.models;Array.isArray(n)?n.includes("manifest/auto")||n.push("manifest/auto"):typeof n=="object"&&("manifest/auto"in n||(n["manifest/auto"]={})),tC($I,e),a.debug("[manifest] Wrote provider config to openclaw.json")}catch(e){let n=e instanceof Error?e.message:String(e);a.debug(`[manifest] Could not write openclaw.json: ${n}`)}try{if(o.config){o.config.models||(o.config.models={}),o.config.models.providers||(o.config.models.providers={}),o.config.models.providers.manifest=t,o.config.agents||(o.config.agents={}),o.config.agents.defaults||(o.config.agents.defaults={}),o.config.agents.defaults.models||(o.config.agents.defaults.models={});let e=o.config.agents.defaults.models;Array.isArray(e)?e.includes("manifest/auto")||e.push("manifest/auto"):typeof e=="object"&&("manifest/auto"in e||(e["manifest/auto"]={}))}a.debug("[manifest] Injected provider into runtime config")}catch(e){let n=e instanceof Error?e.message:String(e);a.debug(`[manifest] Could not inject runtime config: ${n}`)}}function b5(o,r){let i=(0,Ae.join)(ZI,"agents");if(!(0,U.existsSync)(i)){r.debug("[manifest] No agents directory found, skipping auth profile injection");return}let c={type:"api_key",provider:"manifest",key:o},a=0;try{let u=(0,U.readdirSync)(i,{withFileTypes:!0}).filter(t=>t.isDirectory());for(let t of u){let e=(0,Ae.join)(i,t.name,"agent","auth-profiles.json"),n=(0,Ae.dirname)(e);if(!(0,U.existsSync)(n))continue;let s=eC(e);s.version||(s.version=1),s.profiles||(s.profiles={});let l=s.profiles["manifest:default"];l&&l.key===o||(s.profiles["manifest:default"]=c,tC(e,s),a++)}}catch(u){let t=u instanceof Error?u.message:String(u);r.debug(`[manifest] Auth profile injection error: ${t}`)}a>0&&r.debug(`[manifest] Injected auth profile into ${a} agent(s)`)}async function U5(o,r){try{return(await fetch(`http://${o}:${r}/api/v1/health`,{signal:AbortSignal.timeout(L5)})).ok}catch{return!1}}function rC(o,r,i){let c=r.port,a=r.host,u=C5(),t=(0,Ae.join)(aa,"manifest.db");i.info("[manifest] Local mode \u2014 starting embedded server..."),x5(o,a,c,u,i),b5(u,i);let e;try{e=require("./server")}catch(O){let g=O instanceof Error?O.message:String(O);i.error(`[manifest] Failed to load embedded server.
19
+ or export MANIFEST_API_KEY=${Ce}YOUR_KEY`}var Qi=Oe(cM()),Zi=Oe(_i()),BI=Oe(II()),GI=Oe(wI()),HI=Oe(To());m();var zr=null,Jr=null,Pc=null,Mc=null;function ea(o,r){let i=new HI.Resource({"service.name":o.serviceName,"service.version":"5.6.5","manifest.plugin":"true"}),c={Authorization:`Bearer ${o.apiKey}`},a=new BI.OTLPTraceExporter({url:`${o.endpoint}/v1/traces`,headers:c});zr=new Qi.BasicTracerProvider({resource:i,spanProcessors:[new Qi.BatchSpanProcessor(a,{scheduledDelayMillis:5e3,maxQueueSize:2048,maxExportBatchSize:512})]}),zr.register(),r.debug(`[manifest] Trace exporter -> ${o.endpoint}/v1/traces`);let u=new GI.OTLPMetricExporter({url:`${o.endpoint}/v1/metrics`,headers:c});return Jr=new Zi.MeterProvider({resource:i,readers:[new Zi.PeriodicExportingMetricReader({exporter:u,exportIntervalMillis:o.metricsIntervalMs})]}),yt.setGlobalMeterProvider(Jr),r.debug(`[manifest] Metrics exporter -> ${o.endpoint}/v1/metrics (interval=${o.metricsIntervalMs}ms)`),Pc=ke.getTracer("manifest-plugin","5.6.5"),Mc=yt.getMeter("manifest-plugin","5.6.5"),{tracer:Pc,meter:Mc}}async function ta(o){o.info("[manifest] Shutting down telemetry..."),zr&&(await zr.shutdown(),zr=null),Jr&&(await Jr.shutdown(),Jr=null),Pc=null,Mc=null,o.info("[manifest] Telemetry shut down")}m();var lr=new Map,kI,YI,FI,KI,g5,jI,qI,WI,zI;function ra(o){kI=o.createCounter(me.LLM_REQUESTS,{description:"Total LLM inference requests"}),YI=o.createCounter(me.LLM_TOKENS_INPUT,{description:"Total input tokens sent to LLM"}),FI=o.createCounter(me.LLM_TOKENS_OUTPUT,{description:"Total output tokens from LLM"}),KI=o.createCounter(me.LLM_TOKENS_CACHE_READ,{description:"Total cache-read tokens"}),g5=o.createHistogram(me.LLM_DURATION,{description:"LLM request duration in ms",unit:"ms"}),jI=o.createCounter(me.TOOL_CALLS,{description:"Total tool invocations"}),qI=o.createCounter(me.TOOL_ERRORS,{description:"Total tool errors"}),WI=o.createHistogram(me.TOOL_DURATION,{description:"Tool execution duration in ms",unit:"ms"}),zI=o.createCounter(me.MESSAGES_RECEIVED,{description:"Total messages received from users"})}function na(o,r,i,c){o.on("message_received",a=>{let u=a.sessionKey||a.session?.key||`agent:${a.agent||"main"}:main`,t=a.channel||"unknown",e=r.startSpan(en.REQUEST,{kind:Ge.SERVER,attributes:{[B.SESSION_KEY]:u,[B.CHANNEL]:t}});lr.set(u,{root:e}),zI.add(1,{[B.CHANNEL]:t}),c.debug(`[manifest] Root span started for session=${u}`)}),o.on("before_agent_start",a=>{let u=a.sessionKey||a.session?.key||`agent:${a.agent||"main"}:main`,t=a.agent||"main",e=lr.get(u),n=e?.root?ke.setSpan(He.active(),e.root):He.active(),s=r.startSpan(en.AGENT_TURN,{kind:Ge.INTERNAL,attributes:{[B.AGENT_NAME]:t,[B.SESSION_KEY]:u}},n);e?e.turn=s:lr.set(u,{root:s,turn:s}),c.debug(`[manifest] Agent turn started: agent=${t}, session=${u}`)}),o.on("tool_result_persist",a=>{let u=a.toolName||a.tool||"unknown",t=a.durationMs||0,e=a.error==null,n=a.sessionKey||"unknown",s=lr.get(n),l=s?.turn?ke.setSpan(He.active(),s.turn):He.active(),E=r.startSpan(`${en.TOOL_PREFIX}${u}`,{kind:Ge.INTERNAL,attributes:{[B.TOOL_NAME]:u,[B.TOOL_SUCCESS]:String(e),[B.SESSION_KEY]:n}},l);e||(E.setStatus({code:Rt.ERROR,message:a.error?.message||"Tool execution failed"}),qI.add(1,{[B.TOOL_NAME]:u})),E.end(),jI.add(1,{[B.TOOL_NAME]:u}),WI.record(t,{[B.TOOL_NAME]:u})}),o.on("agent_end",a=>{let u=a.sessionKey||a.session?.key||`agent:${a.agent||"main"}:main`,e=[...a.messages||[]].reverse().find($r=>$r.role==="assistant"&&$r.usage),n=e?.model||a.model||"unknown",s=e?.provider||a.provider||"unknown",l=e?.usage||a.usage||{},E=l.input||l.inputTokens||0,O=l.output||l.outputTokens||0,g=l.cacheRead||l.cacheReadTokens||0,ue=l.cacheWrite||l.cacheWriteTokens||0,ve=lr.get(u);ve?.turn&&(ve.turn.setAttributes({[B.MODEL]:n,[B.PROVIDER]:s,[B.INPUT_TOKENS]:E,[B.OUTPUT_TOKENS]:O,[B.CACHE_READ_TOKENS]:g,[B.CACHE_WRITE_TOKENS]:ue}),ve.turn.end()),ve?.root&&ve.root!==ve.turn&&ve.root.end(),lr.delete(u);let Ie={[B.MODEL]:n,[B.PROVIDER]:s};kI.add(1,Ie),YI.add(E,Ie),FI.add(O,Ie),g>0&&KI.add(g,Ie),c.debug(`[manifest] agent_end tokens: in=${E}, out=${O}, cache=${g}`),c.debug(`[manifest] Trace completed for session=${u}`)}),c.debug("[manifest] All hooks registered")}async function oa(o){let r=o.endpoint.replace(/\/otlp(\/v1)?\/?$/,""),i={endpointReachable:!1,authValid:!1,agentName:null,error:null};try{let c=await fetch(`${r}/api/v1/health`,{signal:AbortSignal.timeout(5e3)});if(!c.ok)return i.error=`Health endpoint returned ${c.status}`,i;i.endpointReachable=!0}catch(c){let a=c instanceof Error?c.message:String(c);return i.error=`Cannot reach endpoint: ${a}`,i}try{let c=await fetch(`${r}/api/v1/agent/usage?range=24h`,{headers:{Authorization:`Bearer ${o.apiKey}`},signal:AbortSignal.timeout(5e3)});if(c.status===401||c.status===403)return i.error="API key rejected \u2014 check your mnfst_ key is correct",i;if(!c.ok)return i.error=`Usage endpoint returned ${c.status}`,i;i.authValid=!0;let a=await c.json();a&&typeof a.agentName=="string"&&(i.agentName=a.agentName)}catch(c){let a=c instanceof Error?c.message:String(c);return i.error=`Auth check failed: ${a}`,i}return i}var JI={today:"24h",week:"7d",month:"30d"};async function XI(o,r,i,c){let a=`${o}${r}`;try{let u=await fetch(a,{headers:{Authorization:`Bearer ${i}`}});return u.ok?{result:await u.json()}:{error:`API returned ${u.status}`}}catch(u){let t=u instanceof Error?u.message:String(u);return c.error(`[manifest] API call failed: ${t}`),{error:t}}}function ia(o,r,i){let c=r.endpoint.replace(/\/otlp(\/v1)?\/?$/,"");o.registerTool({name:"manifest_usage",description:"Get token consumption for this agent: total, input, output, cache-read tokens, and action count. Use when the user asks about token usage or consumption.",parameters:{type:"object",properties:{period:{type:"string",enum:["today","week","month"],default:"today",description:"Time period"}}},handler:async a=>{let u=JI[a.period||"today"]||"24h";return XI(c,`/api/v1/agent/usage?range=${u}`,r.apiKey,i)}}),o.registerTool({name:"manifest_costs",description:"Get cost breakdown for this agent in USD, grouped by model. Use when the user asks about costs, spending, or money burned.",parameters:{type:"object",properties:{period:{type:"string",enum:["today","week","month"],default:"week",description:"Time period"}}},handler:async a=>{let u=JI[a.period||"week"]||"7d";return XI(c,`/api/v1/agent/costs?range=${u}`,r.apiKey,i)}}),o.registerTool({name:"manifest_health",description:"Check whether Manifest observability is connected and working. Use when the user asks if monitoring is set up or wants a connectivity test.",parameters:{type:"object",properties:{}},handler:async()=>{let a=await oa(r);return a.error?{error:a.error}:{result:{endpointReachable:a.endpointReachable,authValid:a.authValid,agentName:a.agentName,status:"ok"}}}}),i.debug("[manifest] Registered agent tools: manifest_usage, manifest_costs, manifest_health")}var U=require("fs"),Ae=require("path"),gc=require("os"),QI=require("crypto");var aa=(0,Ae.join)((0,gc.homedir)(),".openclaw","manifest"),Xr=(0,Ae.join)(aa,"config.json"),ZI=(0,Ae.join)((0,gc.homedir)(),".openclaw"),$I=(0,Ae.join)(ZI,"openclaw.json"),L5=3e3;function I5(){(0,U.existsSync)(aa)||(0,U.mkdirSync)(aa,{recursive:!0,mode:448})}function C5(){if(I5(),(0,U.existsSync)(Xr))try{let i=JSON.parse((0,U.readFileSync)(Xr,"utf-8"));if(i.apiKey&&i.apiKey.startsWith(Ce))return i.apiKey}catch{}let o=`${Ce}local_${(0,QI.randomBytes)(24).toString("hex")}`,r={};if((0,U.existsSync)(Xr))try{r=JSON.parse((0,U.readFileSync)(Xr,"utf-8"))}catch{}return(0,U.writeFileSync)(Xr,JSON.stringify({...r,apiKey:o},null,2),{mode:384}),o}function eC(o){if(!(0,U.existsSync)(o))return{};try{return JSON.parse((0,U.readFileSync)(o,"utf-8"))}catch{return{}}}function tC(o,r){let i=(0,Ae.dirname)(o);(0,U.existsSync)(i)||(0,U.mkdirSync)(i,{recursive:!0,mode:448});let c=`${o}.tmp.${process.pid}`;(0,U.writeFileSync)(c,JSON.stringify(r,null,2),{mode:384}),(0,U.renameSync)(c,o)}function x5(o,r,i,c,a){let t={baseUrl:`http://${r}:${i}/v1`,api:"openai-completions",apiKey:c,models:[{id:"auto",name:"auto"}]};try{let e=eC($I);e.models||(e.models={}),e.models.providers||(e.models.providers={}),e.models.providers.manifest=t,e.agents||(e.agents={}),e.agents.defaults||(e.agents.defaults={}),e.agents.defaults.models||(e.agents.defaults.models={});let n=e.agents.defaults.models;Array.isArray(n)?n.includes("manifest/auto")||n.push("manifest/auto"):typeof n=="object"&&("manifest/auto"in n||(n["manifest/auto"]={})),tC($I,e),a.debug("[manifest] Wrote provider config to openclaw.json")}catch(e){let n=e instanceof Error?e.message:String(e);a.debug(`[manifest] Could not write openclaw.json: ${n}`)}try{if(o.config){o.config.models||(o.config.models={}),o.config.models.providers||(o.config.models.providers={}),o.config.models.providers.manifest=t,o.config.agents||(o.config.agents={}),o.config.agents.defaults||(o.config.agents.defaults={}),o.config.agents.defaults.models||(o.config.agents.defaults.models={});let e=o.config.agents.defaults.models;Array.isArray(e)?e.includes("manifest/auto")||e.push("manifest/auto"):typeof e=="object"&&("manifest/auto"in e||(e["manifest/auto"]={}))}a.debug("[manifest] Injected provider into runtime config")}catch(e){let n=e instanceof Error?e.message:String(e);a.debug(`[manifest] Could not inject runtime config: ${n}`)}}function b5(o,r){let i=(0,Ae.join)(ZI,"agents");if(!(0,U.existsSync)(i)){r.debug("[manifest] No agents directory found, skipping auth profile injection");return}let c={type:"api_key",provider:"manifest",key:o},a=0;try{let u=(0,U.readdirSync)(i,{withFileTypes:!0}).filter(t=>t.isDirectory());for(let t of u){let e=(0,Ae.join)(i,t.name,"agent","auth-profiles.json"),n=(0,Ae.dirname)(e);if(!(0,U.existsSync)(n))continue;let s=eC(e);s.version||(s.version=1),s.profiles||(s.profiles={});let l=s.profiles["manifest:default"];l&&l.key===o||(s.profiles["manifest:default"]=c,tC(e,s),a++)}}catch(u){let t=u instanceof Error?u.message:String(u);r.debug(`[manifest] Auth profile injection error: ${t}`)}a>0&&r.debug(`[manifest] Injected auth profile into ${a} agent(s)`)}async function U5(o,r){try{return(await fetch(`http://${o}:${r}/api/v1/health`,{signal:AbortSignal.timeout(L5)})).ok}catch{return!1}}function rC(o,r,i){let c=r.port,a=r.host,u=C5(),t=(0,Ae.join)(aa,"manifest.db");i.debug("[manifest] Local mode \u2014 starting embedded server..."),x5(o,a,c,u,i),b5(u,i);let e;try{e=require("./server")}catch(O){let g=O instanceof Error?O.message:String(O);i.error(`[manifest] Failed to load embedded server.
20
20
  Error: ${g}
21
- This is a packaging error \u2014 please reinstall the manifest plugin.`);return}let n=`http://${a}:${c}/otlp`,s={...r,apiKey:u,endpoint:n,captureContent:!0,metricsIntervalMs:xc.METRICS_INTERVAL_MS},{tracer:l,meter:E}=ea(s,i);ra(E),na(o,l,s,i),typeof o.registerTool=="function"&&ia(o,s,i),o.registerService({id:"manifest-local",start:async()=>{try{await e.start({port:c,host:a,dbPath:t}),i.info(`[manifest] Local server running on http://${a}:${c}`),i.info(`[manifest] Dashboard: http://${a}:${c}`),i.info(`[manifest] DB: ${t}`)}catch(O){let g=O instanceof Error?O.message:String(O);g.includes("EADDRINUSE")||g.includes("address already in use")?await U5(a,c)?i.info(`[manifest] Reusing existing server at http://${a}:${c}`):i.error(`[manifest] Port ${c} is already in use by another process.
21
+ This is a packaging error \u2014 please reinstall the manifest plugin.`);return}let n=`http://${a}:${c}/otlp`,s={...r,apiKey:u,endpoint:n,captureContent:!0,metricsIntervalMs:xc.METRICS_INTERVAL_MS},{tracer:l,meter:E}=ea(s,i);ra(E),na(o,l,s,i),typeof o.registerTool=="function"&&ia(o,s,i),i.info(`[manifest] \u{1F99A} View your Manifest Dashboard -> http://${a}:${c}`),o.registerService({id:"manifest-local",start:async()=>{try{await e.start({port:c,host:a,dbPath:t}),i.info(`[manifest] Local server running on http://${a}:${c}`),i.info(`[manifest] Dashboard: http://${a}:${c}`),i.info(`[manifest] DB: ${t}`)}catch(O){let g=O instanceof Error?O.message:String(O);g.includes("EADDRINUSE")||g.includes("address already in use")?await U5(a,c)?i.info(`[manifest] Reusing existing server at http://${a}:${c}`):i.error(`[manifest] Port ${c} is already in use by another process.
22
22
  Change it with: openclaw config set plugins.entries.manifest.config.port ${c+1}
23
- Then restart the gateway.`):i.error(`[manifest] Failed to start local server: ${g}`)}},stop:async()=>{await ta(i)}})}var oC=require("crypto"),Ve=require("os");function nC(){return{optedOut:__fromEnv.MANIFEST_TELEMETRY_OPTOUT==="1"||__fromEnv.MANIFEST_TELEMETRY_OPTOUT==="true",packageVersion:"5.6.3"}}var D5="https://eu.i.posthog.com",V5="phc_g5pLOu5bBRjhVJBwAsx0eCzJFWq0cri2TyVLQLxf045";function w5(){let o=`${(0,Ve.hostname)()}-${(0,Ve.platform)()}-${(0,Ve.arch)()}`;return(0,oC.createHash)("sha256").update(o).digest("hex").slice(0,16)}function Lc(o,r){let i=nC();if(i.optedOut)return;let c={api_key:V5,event:o,properties:{distinct_id:w5(),os:(0,Ve.platform)(),os_version:(0,Ve.release)(),node_version:process.versions.node,package_version:i.packageVersion,...r},timestamp:new Date().toISOString()};fetch(`${D5}/capture`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)}).catch(()=>{})}module.exports={id:"manifest",name:"Manifest \u2014 Agent Observability",register(o){let r=o.logger||{info:(...e)=>console.log(...e),debug:()=>{},error:(...e)=>console.error(...e),warn:(...e)=>console.warn(...e)},i=bc(o.pluginConfig);if(Lc("plugin_registered"),Lc("plugin_mode_selected",{mode:i.mode}),i.mode==="local"){rC(o,i,r);return}let c=Uc(i);if(c){i.apiKey?r.error(`[manifest] Configuration error:
23
+ Then restart the gateway.`):i.error(`[manifest] Failed to start local server: ${g}`)}},stop:async()=>{await ta(i)}})}var oC=require("crypto"),Ve=require("os");function nC(){return{optedOut:__fromEnv.MANIFEST_TELEMETRY_OPTOUT==="1"||__fromEnv.MANIFEST_TELEMETRY_OPTOUT==="true",packageVersion:"5.6.5"}}var D5="https://eu.i.posthog.com",V5="phc_g5pLOu5bBRjhVJBwAsx0eCzJFWq0cri2TyVLQLxf045";function w5(){let o=`${(0,Ve.hostname)()}-${(0,Ve.platform)()}-${(0,Ve.arch)()}`;return(0,oC.createHash)("sha256").update(o).digest("hex").slice(0,16)}function Lc(o,r){let i=nC();if(i.optedOut)return;let c={api_key:V5,event:o,properties:{distinct_id:w5(),os:(0,Ve.platform)(),os_version:(0,Ve.release)(),node_version:process.versions.node,package_version:i.packageVersion,...r},timestamp:new Date().toISOString()};fetch(`${D5}/capture`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)}).catch(()=>{})}module.exports={id:"manifest",name:"Manifest \u2014 Agent Observability",register(o){let r=o.logger||{info:(...e)=>console.log(...e),debug:()=>{},error:(...e)=>console.error(...e),warn:(...e)=>console.warn(...e)},i=bc(o.pluginConfig);if(Lc("plugin_registered"),Lc("plugin_mode_selected",{mode:i.mode}),i.mode==="local"){rC(o,i,r);return}let c=Uc(i);if(c){i.apiKey?r.error(`[manifest] Configuration error:
24
24
  ${c}`):r.info(`[manifest] Cloud mode requires an API key:
25
25
  openclaw config set plugins.entries.manifest.config.apiKey mnfst_YOUR_KEY
26
26
  openclaw gateway restart
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "manifest",
3
- "version": "5.6.3",
3
+ "version": "5.6.5",
4
4
  "description": "Observability plugin for OpenClaw — traces, metrics, and cost tracking for your AI agent",
5
5
  "main": "dist/index.js",
6
6
  "license": "MIT",
@@ -1 +1 @@
1
- import{j as Q,c as U,k as W,a as o,l as X,i as a,b as m,S as f,d as c,s as Z,t as l,m as ee,e as p,g as te,n as se,o as ie,h as ae}from"./index-CyTg3_v5.js";var le=l("<h3 class=settings-section__title>Email Provider"),ne=l('<div class="waiting-banner waiting-banner--success"role=status><i class="bxd bx-check-circle"></i><p>Email delivery is configured via <strong></strong>.'),re=l("<span class=settings-card__label-desc>Leave blank to keep existing key."),ce=l("<div class=settings-card__row><div class=settings-card__label><span class=settings-card__label-title>Domain</span><span class=settings-card__label-desc>Your Mailgun sending domain (e.g. mg.example.com)</span></div><div class=settings-card__control><input class=settings-card__input type=text placeholder=mg.example.com>"),de=l("<div class=email-config__form><div class=settings-card__row><div class=settings-card__label><span class=settings-card__label-title>Provider</span></div><div class=settings-card__control><select class=settings-card__input></select></div></div><div class=settings-card__row><div class=settings-card__label><span class=settings-card__label-title>API Key</span></div><div class=settings-card__control><input class=settings-card__input type=password></div></div><div class=settings-card__row><div class=settings-card__label><span class=settings-card__label-title>From Email</span><span class=settings-card__label-desc>Sender address for notifications (optional)</span></div><div class=settings-card__control><input class=settings-card__input type=email placeholder=noreply@example.com>"),oe=l('<button class="btn btn--ghost"style=color:hsl(var(--destructive))>Remove'),ge=l('<div class=settings-card><div class=settings-card__body><p class=settings-card__desc>Configure an email provider to receive notification alerts. Your API key is stored locally and never sent to any third party.</p></div><div class=settings-card__footer><button class="btn btn--outline"style=font-size:var(--font-size-sm)></button><button class="btn btn--primary"style=font-size:var(--font-size-sm)>'),ve=l("<p>Loading..."),_e=l("<option>");const ue=[{value:"mailgun",label:"Mailgun"},{value:"sendgrid",label:"SendGrid"},{value:"resend",label:"Resend"}],fe=()=>{const Y=Q.useSession(),j=()=>Y()?.data?.user?.email??"",[n,{refetch:T}]=U(W),[$,b]=o("resend"),[g,h]=o(""),[y,E]=o(""),[S,C]=o(""),[R,A]=o(!1),[K,z]=o(!1);X(()=>{const e=n();e?.configured&&e.provider&&(b(e.provider),e.domain&&E(e.domain),e.fromEmail&&C(e.fromEmail))});const G=async()=>{let e=j();try{const i=await te();i.email&&(e=i.email)}catch{}if(!e||e==="local@manifest.local"){p.error("Set a notification email in the section above before sending a test");return}A(!0);try{const i=await se({to:e,provider:$(),apiKey:g(),domain:y()||void 0,fromEmail:S()||void 0});i.success?p.success(`Test email sent to ${e}`):p.error(i.error??"Test email failed")}catch{}finally{A(!1)}},N=async()=>{z(!0);try{await ie({provider:$(),apiKey:g(),domain:y()||void 0,fromEmail:S()||void 0}),p.success("Email provider saved"),h(""),T()}catch{}finally{z(!1)}},O=async()=>{try{await ee(),p.success("Email provider removed"),h(""),E(""),C(""),b("resend"),T()}catch{}};return[le(),(()=>{var e=ge(),i=e.firstChild;i.firstChild;var I=i.nextSibling,v=I.firstChild,x=v.nextSibling;return a(i,m(f,{get when(){return!n.loading},get fallback(){return ve()},get children(){return[m(f,{get when(){return n()?.configured},get children(){var t=ne(),r=t.firstChild,d=r.nextSibling,w=d.firstChild,_=w.nextSibling;return a(_,()=>n()?.provider),t}}),(()=>{var t=de(),r=t.firstChild,d=r.firstChild,w=d.nextSibling,_=w.firstChild,D=r.nextSibling,k=D.firstChild;k.firstChild;var V=k.nextSibling,P=V.firstChild,L=D.nextSibling,q=L.firstChild,B=q.nextSibling,F=B.firstChild;return _.addEventListener("change",s=>b(s.currentTarget.value)),a(_,()=>ue.map(s=>(()=>{var u=_e();return a(u,()=>s.label),c(()=>u.value=s.value),u})())),a(k,m(f,{get when(){return n()?.configured},get children(){return re()}}),null),P.$$input=s=>h(s.currentTarget.value),a(t,m(f,{get when(){return $()==="mailgun"},get children(){var s=ce(),u=s.firstChild,H=u.nextSibling,M=H.firstChild;return M.$$input=J=>E(J.currentTarget.value),c(()=>M.value=y()),s}}),L),F.$$input=s=>C(s.currentTarget.value),c(()=>Z(P,"placeholder",n()?.configured?"********":"Enter API key")),c(()=>_.value=$()),c(()=>P.value=g()),c(()=>F.value=S()),t})()]}}),null),a(I,m(f,{get when(){return n()?.configured},get children(){var t=oe();return t.$$click=O,t}}),v),v.$$click=G,a(v,()=>R()?"Sending...":"Send test email"),x.$$click=N,a(x,()=>K()?"Saving...":"Save"),c(t=>{var r=R()||!g()&&!n()?.configured,d=K()||!g();return r!==t.e&&(v.disabled=t.e=r),d!==t.t&&(x.disabled=t.t=d),t},{e:void 0,t:void 0}),e})()]};ae(["input","click"]);export{fe as default};
1
+ import{j as Q,c as U,k as W,a as o,l as X,i as a,b as m,S as f,d as c,s as Z,t as l,m as ee,e as p,g as te,n as se,o as ie,h as ae}from"./index-D6VMzqMs.js";var le=l("<h3 class=settings-section__title>Email Provider"),ne=l('<div class="waiting-banner waiting-banner--success"role=status><i class="bxd bx-check-circle"></i><p>Email delivery is configured via <strong></strong>.'),re=l("<span class=settings-card__label-desc>Leave blank to keep existing key."),ce=l("<div class=settings-card__row><div class=settings-card__label><span class=settings-card__label-title>Domain</span><span class=settings-card__label-desc>Your Mailgun sending domain (e.g. mg.example.com)</span></div><div class=settings-card__control><input class=settings-card__input type=text placeholder=mg.example.com>"),de=l("<div class=email-config__form><div class=settings-card__row><div class=settings-card__label><span class=settings-card__label-title>Provider</span></div><div class=settings-card__control><select class=settings-card__input></select></div></div><div class=settings-card__row><div class=settings-card__label><span class=settings-card__label-title>API Key</span></div><div class=settings-card__control><input class=settings-card__input type=password></div></div><div class=settings-card__row><div class=settings-card__label><span class=settings-card__label-title>From Email</span><span class=settings-card__label-desc>Sender address for notifications (optional)</span></div><div class=settings-card__control><input class=settings-card__input type=email placeholder=noreply@example.com>"),oe=l('<button class="btn btn--ghost"style=color:hsl(var(--destructive))>Remove'),ge=l('<div class=settings-card><div class=settings-card__body><p class=settings-card__desc>Configure an email provider to receive notification alerts. Your API key is stored locally and never sent to any third party.</p></div><div class=settings-card__footer><button class="btn btn--outline"style=font-size:var(--font-size-sm)></button><button class="btn btn--primary"style=font-size:var(--font-size-sm)>'),ve=l("<p>Loading..."),_e=l("<option>");const ue=[{value:"mailgun",label:"Mailgun"},{value:"sendgrid",label:"SendGrid"},{value:"resend",label:"Resend"}],fe=()=>{const Y=Q.useSession(),j=()=>Y()?.data?.user?.email??"",[n,{refetch:T}]=U(W),[$,b]=o("resend"),[g,h]=o(""),[y,E]=o(""),[S,C]=o(""),[R,A]=o(!1),[K,z]=o(!1);X(()=>{const e=n();e?.configured&&e.provider&&(b(e.provider),e.domain&&E(e.domain),e.fromEmail&&C(e.fromEmail))});const G=async()=>{let e=j();try{const i=await te();i.email&&(e=i.email)}catch{}if(!e||e==="local@manifest.local"){p.error("Set a notification email in the section above before sending a test");return}A(!0);try{const i=await se({to:e,provider:$(),apiKey:g(),domain:y()||void 0,fromEmail:S()||void 0});i.success?p.success(`Test email sent to ${e}`):p.error(i.error??"Test email failed")}catch{}finally{A(!1)}},N=async()=>{z(!0);try{await ie({provider:$(),apiKey:g(),domain:y()||void 0,fromEmail:S()||void 0}),p.success("Email provider saved"),h(""),T()}catch{}finally{z(!1)}},O=async()=>{try{await ee(),p.success("Email provider removed"),h(""),E(""),C(""),b("resend"),T()}catch{}};return[le(),(()=>{var e=ge(),i=e.firstChild;i.firstChild;var I=i.nextSibling,v=I.firstChild,x=v.nextSibling;return a(i,m(f,{get when(){return!n.loading},get fallback(){return ve()},get children(){return[m(f,{get when(){return n()?.configured},get children(){var t=ne(),r=t.firstChild,d=r.nextSibling,w=d.firstChild,_=w.nextSibling;return a(_,()=>n()?.provider),t}}),(()=>{var t=de(),r=t.firstChild,d=r.firstChild,w=d.nextSibling,_=w.firstChild,D=r.nextSibling,k=D.firstChild;k.firstChild;var V=k.nextSibling,P=V.firstChild,L=D.nextSibling,q=L.firstChild,B=q.nextSibling,F=B.firstChild;return _.addEventListener("change",s=>b(s.currentTarget.value)),a(_,()=>ue.map(s=>(()=>{var u=_e();return a(u,()=>s.label),c(()=>u.value=s.value),u})())),a(k,m(f,{get when(){return n()?.configured},get children(){return re()}}),null),P.$$input=s=>h(s.currentTarget.value),a(t,m(f,{get when(){return $()==="mailgun"},get children(){var s=ce(),u=s.firstChild,H=u.nextSibling,M=H.firstChild;return M.$$input=J=>E(J.currentTarget.value),c(()=>M.value=y()),s}}),L),F.$$input=s=>C(s.currentTarget.value),c(()=>Z(P,"placeholder",n()?.configured?"********":"Enter API key")),c(()=>_.value=$()),c(()=>P.value=g()),c(()=>F.value=S()),t})()]}}),null),a(I,m(f,{get when(){return n()?.configured},get children(){var t=oe();return t.$$click=O,t}}),v),v.$$click=G,a(v,()=>R()?"Sending...":"Send test email"),x.$$click=N,a(x,()=>K()?"Saving...":"Save"),c(t=>{var r=R()||!g()&&!n()?.configured,d=K()||!g();return r!==t.e&&(v.disabled=t.e=r),d!==t.t&&(x.disabled=t.t=d),t},{e:void 0,t:void 0}),e})()]};ae(["input","click"]);export{fe as default};
@@ -0,0 +1 @@
1
+ import{c as x,g as y,a as v,i as g,b,S as p,d as _,s as C,t as e,e as h,f as E,h as N}from"./index-D6VMzqMs.js";var k=e("<h3 class=settings-section__title>Notification Email"),z=e('<div class="waiting-banner waiting-banner--success"role=status><i class="bxd bx-check-circle"></i><p>Notifications will be sent to <strong></strong>.'),A=e("<div class=settings-card__row><div class=settings-card__label><span class=settings-card__label-title>Email address</span><span class=settings-card__label-desc>Where to receive notification alerts.</span></div><div class=settings-card__control><input class=settings-card__input type=email>"),R=e('<div class=settings-card><div class=settings-card__body><p class=settings-card__desc>Set the email address where threshold alerts and notifications will be sent.</p></div><div class=settings-card__footer><button class="btn btn--primary"style=font-size:var(--font-size-sm)>'),L=e("<p>Loading..."),P=e('<div class="waiting-banner waiting-banner--warning"role=alert><i class="bxd bx-x-circle"></i><p>No notification email configured. Alerts will not be delivered until you set one.');const W=()=>{const[s,{refetch:$}]=x(y),[l,f]=v(""),[m,u]=v(!1),w=async()=>{const t=l().trim();if(!t){h.error("Please enter an email address");return}u(!0);try{await E(t),h.success("Notification email saved"),f(""),$()}catch{}finally{u(!1)}};return[k(),(()=>{var t=R(),n=t.firstChild;n.firstChild;var S=n.nextSibling,r=S.firstChild;return g(n,b(p,{get when(){return!s.loading},get fallback(){return L()},get children(){return[b(p,{get when(){return s()?.email},get fallback(){return P()},get children(){var i=z(),c=i.firstChild,o=c.nextSibling,a=o.firstChild,d=a.nextSibling;return g(d,()=>s().email),i}}),(()=>{var i=A(),c=i.firstChild,o=c.nextSibling,a=o.firstChild;return a.$$input=d=>f(d.currentTarget.value),_(()=>C(a,"placeholder",s()?.email??"you@example.com")),_(()=>a.value=l()),i})()]}}),null),r.$$click=w,g(r,()=>m()?"Saving...":"Save"),_(()=>r.disabled=m()||!l().trim()),t})()]};N(["input","click"]);export{W as default};