DaedArch · Models registry
Tool aggregates
Each row aggregates a category in daedarch.tools — the registered action layer. Full catalog at /tools.
—Models
—Categories
—Active
—Aggregates
Active
Discovered
Aggregates only
Vault-bound
—
';console.error(e);});
// ── Semantic search wiring ──
(function(){
var qIn = document.getElementById('q');
if(!qIn) return;
var resultsHost = document.createElement('section');
resultsHost.id = 'semantic-results';
resultsHost.style.cssText = 'padding:0 0 24px;border-bottom:1px solid var(--border);margin-bottom:18px;display:none';
var headEl = document.createElement('div');
headEl.className = 'head';
headEl.style.cssText = 'display:flex;align-items:baseline;gap:10px;margin-bottom:10px';
var h2 = document.createElement('h2');
h2.style.cssText = 'font-size:18px;margin:0;font-weight:500;color:#fff';
h2.appendChild(document.createTextNode('Semantic matches'));
var meta = document.createElement('span');
meta.style.cssText='color:var(--muted);font-size:12px;margin-left:8px';
meta.id = 'semantic-meta';
h2.appendChild(meta);
headEl.appendChild(h2);
resultsHost.appendChild(headEl);
var resGrid = document.createElement('div'); resGrid.className='grid'; resGrid.id='semantic-grid';
resultsHost.appendChild(resGrid);
var hostMain = document.querySelector('main.main') || document.getElementById('hierarchy').parentNode;
hostMain.insertBefore(resultsHost, document.getElementById('hierarchy'));
var timer = null, lastQuery = '', inflight = null;
function runSemantic(){
var q = qIn.value.trim();
if (q.length < 3){
resultsHost.style.display='none';
return;
}
if (q === lastQuery) return;
lastQuery = q;
meta.textContent = 'searching…';
resultsHost.style.display='block';
if (inflight) inflight.abort();
var ctrl = new AbortController(); inflight = ctrl;
var body = JSON.stringify(Object.assign({query:q, limit:12}, TOP_TYPE?{top_type:TOP_TYPE}:{}));
fetch('https://api.daedarch.ai/api/v4/t/public_models_search',{method:'POST',headers:{'Content-Type':'application/json'},body:body, signal:ctrl.signal})
.then(function(r){return r.json();})
.then(function(d){
inflight = null;
var rows = (d && d.results) || [];
resGrid.innerHTML = '';
if (!rows.length){
meta.textContent = 'no semantic matches · falling back to text filter';
resultsHost.style.display='none';
return;
}
rows.forEach(function(c){
var card = document.createElement('div');
card.className = 'card';
card.style.position='relative';
var h3 = document.createElement('h3'); h3.textContent = c.display_name || c.name || c.model_id; card.appendChild(h3);
if(c.provider){var p=document.createElement('div');p.className='provider';p.textContent=c.provider;card.appendChild(p);}
if(c.description){var pp=document.createElement('p');pp.textContent=c.description;card.appendChild(pp);}
if(c.capabilities && c.capabilities.length){
var caps = document.createElement('div'); caps.className='caps';
c.capabilities.slice(0,5).forEach(function(x){var sp=document.createElement('span');sp.textContent=x;caps.appendChild(sp);});
card.appendChild(caps);
}
var foot = document.createElement('div'); foot.className='meta';
var left = document.createElement('span');
var st = document.createElement('span'); st.className='badge ' + (c.status||'discovered');
st.textContent = (c.status||'discovered');
left.appendChild(st);
if(c.vault_bound){var v=document.createElement('span');v.className='badge vault';v.textContent='Vault';left.appendChild(v);}
foot.appendChild(left);
var rt = document.createElement('span'); rt.className='coverage'; rt.textContent = '· score ' + (c._score!=null?c._score.toFixed(3):'') + ' · ' + (c.type||'') + (c.subcategory?' / '+c.subcategory:'');
foot.appendChild(rt);
card.appendChild(foot);
resGrid.appendChild(card);
});
meta.textContent = rows.length + ' results · powered by milvus + nomic-embed';
})
.catch(function(e){
if(e.name === 'AbortError') return;
meta.textContent = 'semantic search unavailable';
resultsHost.style.display='none';
});
}
qIn.addEventListener('input', function(){
if (timer) clearTimeout(timer);
timer = setTimeout(runSemantic, 280);
});
})();
})();