Local-first AI developer toolkit — knowledge base, code analysis, context management, and developer tools for LLM agents
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
no tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed v0.1.305 · analyzer v18 · 9h ago
danger signals5
- dynamic code executionnew Function()package/scaffold/dist/definitions/bodies.mjs:688
- [ ] **eval/Function prevention**: No dynamic code execution from user input (\`eval()\`, \`new Function()\`, \`vm.runInNewContext()\`) - dynamic code executionvm execpackage/scaffold/dist/definitions/bodies.mjs:688
- [ ] **eval/Function prevention**: No dynamic code execution from user input (\`eval()\`, \`new Function()\`, \`vm.runInNewContext()\`) - dynamic code executioneval()package/scaffold/dist/definitions/bodies.mjs:688
- [ ] **eval/Function prevention**: No dynamic code execution from user input (\`eval()\`, \`new Function()\`, \`vm.runInNewContext()\`) - dynamic code executionnew Function()package/scaffold/dist/definitions/skills/typescript.mjs:370
- Avoid \`eval()\`, \`new Function()\`, and dynamic \`require()\` — security + performance issues - dynamic code executioneval()package/scaffold/dist/definitions/skills/typescript.mjs:370
- Avoid \`eval()\`, \`new Function()\`, and dynamic \`require()\` — security + performance issues
evidence-backed
findings quoted directly from the published source artifact — not inferred
filesystem 10
- fs package/bin/aikit.mjs :2
import { existsSync, readFileSync } from 'node:fs'; - fs package/packages/cli/dist/templates-BQ1J4HzY.js :5
`))console.log(` ${t}`)}function P(e,t){if(console.log(`${e}:`),t.length===0){console.log(` none`),console.log(``);return}for(let e of t)console.log(` - ${e}`);console.log(``)}function F(e){let t - fs package/scaffold/dist/definitions/skills/_shared-viewer-inject.mjs :2
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs'; - fs package/scaffold/dist/definitions/skills/adr-skill.mjs :474
const fs=require('node:fs'); - fs package/scaffold/dist/definitions/skills/session-handoff.mjs :2
`),t=[`const path = require('node:path');`,`const os = require('node:os');`,`const { createHash } = require('node:crypto');`,``,`function computePartitionKey(cwd) {`,` const absolutePath = path.resol - fs package/scaffold/general/hooks/scripts/post-edit-check.mjs :2
import fs from 'node:fs'; - fs package/scaffold/general/hooks/scripts/session-init.mjs :2
import fs from 'node:fs'; - fs package/scaffold/general/hooks/scripts/session-learn.mjs :12
import fs from 'node:fs'; - fs package/scaffold/general/hooks/scripts/session-observer.mjs :12
import fs from 'node:fs'; - fs package/scaffold/general/hooks/scripts/subagent-context.mjs :2
import fs from 'node:fs';
shell / exec 12
- shell package/packages/browser/dist/index.js :1
import{createRequire as e}from"node:module";import{createHash as t,randomUUID as n}from"node:crypto";import{homedir as r}from"node:os";import{join as i}from"node:path";import{execFileSync as a}from"no - shell package/packages/cli/dist/index.js :1
import{d as e,f as t,i as n,p as r,s as i,u as a}from"./scaffold-BNPHP-QC.js";import{A as o,C as s,D as c,E as l,F as u,I as d,L as f,M as p,N as m,O as ee,P as h,S as te,T as ne,_ as re,a as g,b as _ - shell package/packages/cli/dist/templates-BQ1J4HzY.js :5
`))console.log(` ${t}`)}function P(e,t){if(console.log(`${e}:`),t.length===0){console.log(` none`),console.log(``);return}for(let e of t)console.log(` - ${e}`);console.log(``)}function F(e){let t - shell package/packages/embeddings/dist/index.js :1
import{fork as e}from"node:child_process";import{randomUUID as t}from"node:crypto";import{existsSync as n}from"node:fs";import{dirname as r,join as i}from"node:path";import{fileURLToPath as a}from"nod - shell package/packages/flows/dist/index.js :1
import{copyFileSync as e,cpSync as t,existsSync as n,mkdirSync as r,readFileSync as i,readdirSync as a,renameSync as o,rmSync as s,rmdirSync as c,symlinkSync as l,unlinkSync as u,writeFileSync as d}fr - shell package/packages/server/dist/proxy.js :1
import{n as e}from"./auth-Bz5dmZgR.js";import{fileURLToPath as t}from"node:url";import{spawn as n}from"node:child_process";import{createInterface as r}from"node:readline";function i(e){let t=[],n=e.re - shell package/packages/server/dist/server-0bgaP0Re.js :2
import{n as e,t}from"./bin.js";import{a as n,c as r,d as i,f as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,u as h}from"./supersession-DO_ZROFl.js";import{a as g,i as _,n as v,o a - shell package/packages/server/dist/server-DQvOpYNO.js :1
import{n as e,t}from"./curated-manager-i5QA4c79.js";import{a as n,c as r,d as i,f as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,u as h}from"./supersession-CWEne3av.js";import{a a - shell package/packages/server/dist/version-check-CJK1Fwmy.js :2
import{existsSync as e,mkdirSync as t,readFileSync as n,renameSync as r,rmSync as i,writeFileSync as a}from"node:fs";import{dirname as o,join as s,resolve as c}from"node:path";import{fileURLToPath as - shell package/packages/server/dist/version-check-yzdUDXHC.js :1
import{existsSync as e,mkdirSync as t,readFileSync as n,renameSync as r,rmSync as i,writeFileSync as a}from"node:fs";import{dirname as o,join as s,resolve as c}from"node:path";import{fileURLToPath as - shell package/packages/store/dist/index.js :114
FROM ${t.name}`,[a,r]);let s=e.queryAll(`SELECT COUNT(*) AS cnt FROM memory_embeddings`)[0]?.cnt??0;i+=s-o}i>0&&oe.info(`[migration v4] backfilled ${i} embeddings into memory_embeddings`)}}],v=a(`sqli - shell package/packages/tools/dist/index.js :1
import{mkdir as e,readFile as t,readdir as n,rm as r,stat as i,writeFile as a}from"node:fs/promises";import{basename as o,dirname as s,extname as c,isAbsolute as l,join as u,relative as d,resolve as f
network 14
- net package/packages/blocks-core/dist/index.mjs :1849
`)}function Wr(){return[` const captureDocumentAsPng = async () => {`,` const width = Math.max(`,` document.documentElement.scrollWidth,`,` document.documentElement.clien - net package/packages/browser/dist/index.js :9
`)}function qe(e){let t=(e??`GET`).toUpperCase();if(!Le.includes(t))throw Error(`Unsupported fetch method: ${t}`);return t}function Je(e){if(e===void 0)return 3e4;if(!Number.isFinite(e)||e<=0)throw Er - net package/packages/cli/dist/index.js :3
`);let s=await t({path:a,mode:r,outDir:i??o.onboardDir});for(let e of s.steps){let t=e.status===`success`?`✓`:`✗`,n=e.status===`success`?`${e.durationMs}ms, ${e.output.length} chars`:e.error;console.l - net package/packages/dashboard/dist/assets/index-CrO8_g2c.js :1
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}} - net package/packages/enterprise-bridge/dist/index.js :1
import{CircuitBreaker as e,HealthBus as t,TransientError as n,createLogger as r,withRetry as i}from"../../core/dist/index.js";import{existsSync as a,mkdirSync as o,readFileSync as s,writeFileSync as c - net package/packages/server/dist/server-0bgaP0Re.js :131
fetch(window.__aikitCallback, {method:'POST',headers:{'Content-Type':'application/json'}, - net package/packages/server/dist/server-DQvOpYNO.js :130
fetch(window.__aikitCallback, {method:'POST',headers:{'Content-Type':'application/json'}, - net package/packages/server/dist/version-check-CJK1Fwmy.js :2
import{existsSync as e,mkdirSync as t,readFileSync as n,renameSync as r,rmSync as i,writeFileSync as a}from"node:fs";import{dirname as o,join as s,resolve as c}from"node:path";import{fileURLToPath as - net package/packages/server/dist/version-check-yzdUDXHC.js :1
import{existsSync as e,mkdirSync as t,readFileSync as n,renameSync as r,rmSync as i,writeFileSync as a}from"node:fs";import{dirname as o,join as s,resolve as c}from"node:path";import{fileURLToPath as - net package/packages/settings-ui/dist/assets/index-BSvuHWLA.js :1
var e=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports);(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of docume - net package/packages/tools/dist/index.js :68
`);return i>=0?r+i:n}function To(e,t,n){let r=Math.round(e/t*100);return n>=80?`\n\n---\n*[Truncated at ${e.toLocaleString()} chars — ${r}% of original content]*`:n>=40?`\n\n*[Truncated at ${e.toLocal - net package/scaffold/dist/definitions/skills/browser-use.mjs :103
Executes \`fetch()\` in the page, so cookies, session state, and CSRF tokens are reused automatically. - net package/scaffold/dist/definitions/skills/docs.mjs :2476
*Diataxis content in this skill and its reference files is adapted from the [Diataxis framework](https://diataxis.fr/) by Daniele Procida, used under [CC-BY-SA 4.0](https://creativecommons.org/license - net package/scaffold/dist/definitions/skills/typescript.mjs :283
return await fetch(url, { signal: controller.signal });
secrets 3
- secrets package/packages/server/dist/server-0bgaP0Re.js :36
`),p.length>20&&(m+=`\n- ... and ${p.length-20} more`))}catch{}let h=bc(d),g=vc(d),_=f.output+m+h+g+gc()+'\n\n---\n_Analysis auto-saved to AI Kit memory. Next: Use `analyze({ aspect: "dependencies", . - secrets package/packages/server/dist/server-DQvOpYNO.js :35
`),p.length>20&&(m+=`\n- ... and ${p.length-20} more`))}catch{}let h=bc(d),g=vc(d),_=f.output+m+h+g+gc()+'\n\n---\n_Analysis auto-saved to AI Kit memory. Next: Use `analyze({ aspect: "dependencies", . - secrets package/packages/tools/dist/index.js :131
`)}function vu(e,t){try{return new URL(e,t).href}catch{return e}}const yu=Do,bu=15e3,xu=1e4,Su=[`multi`,`duckduckgo`,`bing-html`,`mojeek`,`searxng`,`google`,`brave`,`bing`];async function Cu(e){let{qu
database 1
- db package/scaffold/dist/definitions/skills/adr-skill.mjs :306
- [ ] \`grep -r "from 'pg'" src/ --include='*.ts' | grep -v 'src/db/'\` returns no results
tool registrations 137
- browser package/packages/browser/dist/index.js :18
- analyze package/packages/server/dist/server-0bgaP0Re.js :35
- blast_radius package/packages/server/dist/server-0bgaP0Re.js :35
- audit package/packages/server/dist/server-0bgaP0Re.js :36
- er_push package/packages/server/dist/server-0bgaP0Re.js :36
- er_pull package/packages/server/dist/server-0bgaP0Re.js :38
- er_sync_status package/packages/server/dist/server-0bgaP0Re.js :48
- compliance_score package/packages/server/dist/server-0bgaP0Re.js :53
- compact package/packages/server/dist/server-0bgaP0Re.js :146
- scope_map package/packages/server/dist/server-0bgaP0Re.js :147
- find package/packages/server/dist/server-0bgaP0Re.js :148
- symbol package/packages/server/dist/server-0bgaP0Re.js :150
- file_summary package/packages/server/dist/server-0bgaP0Re.js :150
- trace package/packages/server/dist/server-0bgaP0Re.js :150
- dead_symbols package/packages/server/dist/server-0bgaP0Re.js :151
- er_evolve_review package/packages/server/dist/server-0bgaP0Re.js :154
- check package/packages/server/dist/server-0bgaP0Re.js :158
- eval package/packages/server/dist/server-0bgaP0Re.js :159
- test_run package/packages/server/dist/server-0bgaP0Re.js :159
- parse_output package/packages/server/dist/server-0bgaP0Re.js :159
- delegate package/packages/server/dist/server-0bgaP0Re.js :160
- flow package/packages/server/dist/server-0bgaP0Re.js :186
- evidence_map package/packages/server/dist/server-0bgaP0Re.js :186
- digest package/packages/server/dist/server-0bgaP0Re.js :191
- forge_classify package/packages/server/dist/server-0bgaP0Re.js :192
- stratum_card package/packages/server/dist/server-0bgaP0Re.js :193
- forge_ground package/packages/server/dist/server-0bgaP0Re.js :194
- graph package/packages/server/dist/server-0bgaP0Re.js :195
- process package/packages/server/dist/server-0bgaP0Re.js :223
- watch package/packages/server/dist/server-0bgaP0Re.js :223
- health package/packages/server/dist/server-0bgaP0Re.js :223
- web_fetch package/packages/server/dist/server-0bgaP0Re.js :223
- guide package/packages/server/dist/server-0bgaP0Re.js :226
- knowledge package/packages/server/dist/server-0bgaP0Re.js :258
- lookup package/packages/server/dist/server-0bgaP0Re.js :258
- git_context package/packages/server/dist/server-0bgaP0Re.js :260
- diff_parse package/packages/server/dist/server-0bgaP0Re.js :260
- rename package/packages/server/dist/server-0bgaP0Re.js :261
- codemod package/packages/server/dist/server-0bgaP0Re.js :261
- data_transform package/packages/server/dist/server-0bgaP0Re.js :261
- memory_explain package/packages/server/dist/server-0bgaP0Re.js :263
- list_tools package/packages/server/dist/server-0bgaP0Re.js :263
- describe_tool package/packages/server/dist/server-0bgaP0Re.js :264
- search_tools package/packages/server/dist/server-0bgaP0Re.js :264
- onboard package/packages/server/dist/server-0bgaP0Re.js :266
- workset package/packages/server/dist/server-0bgaP0Re.js :267
- stash package/packages/server/dist/server-0bgaP0Re.js :268
- checkpoint package/packages/server/dist/server-0bgaP0Re.js :269
- lane package/packages/server/dist/server-0bgaP0Re.js :273
- queue package/packages/server/dist/server-0bgaP0Re.js :273
- er_update_policy package/packages/server/dist/server-0bgaP0Re.js :275
- produce_knowledge package/packages/server/dist/server-0bgaP0Re.js :2973
- reindex package/packages/server/dist/server-0bgaP0Re.js :2976
- replay package/packages/server/dist/server-0bgaP0Re.js :2984
- restore package/packages/server/dist/server-0bgaP0Re.js :2986
- search package/packages/server/dist/server-0bgaP0Re.js :2988
- session_digest package/packages/server/dist/server-0bgaP0Re.js :3001
- signal package/packages/server/dist/server-0bgaP0Re.js :3001
- status package/packages/server/dist/server-0bgaP0Re.js :3003
- status package/packages/server/dist/server-0bgaP0Re.js :3004
- web_search package/packages/server/dist/server-0bgaP0Re.js :3005
- http package/packages/server/dist/server-0bgaP0Re.js :3008
- regex_test package/packages/server/dist/server-0bgaP0Re.js :3009
- encode package/packages/server/dist/server-0bgaP0Re.js :3010
- measure package/packages/server/dist/server-0bgaP0Re.js :3010
- changelog package/packages/server/dist/server-0bgaP0Re.js :3012
- schema_validate package/packages/server/dist/server-0bgaP0Re.js :3012
- env package/packages/server/dist/server-0bgaP0Re.js :3015
- time package/packages/server/dist/server-0bgaP0Re.js :3016
- analyze package/packages/server/dist/server-DQvOpYNO.js :34
- blast_radius package/packages/server/dist/server-DQvOpYNO.js :34
- audit package/packages/server/dist/server-DQvOpYNO.js :35
- er_push package/packages/server/dist/server-DQvOpYNO.js :35
- er_pull package/packages/server/dist/server-DQvOpYNO.js :37
- er_sync_status package/packages/server/dist/server-DQvOpYNO.js :47
- compliance_score package/packages/server/dist/server-DQvOpYNO.js :52
- compact package/packages/server/dist/server-DQvOpYNO.js :145
- scope_map package/packages/server/dist/server-DQvOpYNO.js :146
- find package/packages/server/dist/server-DQvOpYNO.js :147
- symbol package/packages/server/dist/server-DQvOpYNO.js :149
- file_summary package/packages/server/dist/server-DQvOpYNO.js :149
- trace package/packages/server/dist/server-DQvOpYNO.js :149
- dead_symbols package/packages/server/dist/server-DQvOpYNO.js :150
- er_evolve_review package/packages/server/dist/server-DQvOpYNO.js :153
- check package/packages/server/dist/server-DQvOpYNO.js :157
- eval package/packages/server/dist/server-DQvOpYNO.js :158
- test_run package/packages/server/dist/server-DQvOpYNO.js :158
- parse_output package/packages/server/dist/server-DQvOpYNO.js :158
- delegate package/packages/server/dist/server-DQvOpYNO.js :159
- flow package/packages/server/dist/server-DQvOpYNO.js :185
- evidence_map package/packages/server/dist/server-DQvOpYNO.js :185
- digest package/packages/server/dist/server-DQvOpYNO.js :190
- forge_classify package/packages/server/dist/server-DQvOpYNO.js :191
- stratum_card package/packages/server/dist/server-DQvOpYNO.js :192
- forge_ground package/packages/server/dist/server-DQvOpYNO.js :193
- graph package/packages/server/dist/server-DQvOpYNO.js :194
- process package/packages/server/dist/server-DQvOpYNO.js :222
- watch package/packages/server/dist/server-DQvOpYNO.js :222
- health package/packages/server/dist/server-DQvOpYNO.js :222
- web_fetch package/packages/server/dist/server-DQvOpYNO.js :222
- guide package/packages/server/dist/server-DQvOpYNO.js :225
- knowledge package/packages/server/dist/server-DQvOpYNO.js :257
- lookup package/packages/server/dist/server-DQvOpYNO.js :257
- git_context package/packages/server/dist/server-DQvOpYNO.js :259
- diff_parse package/packages/server/dist/server-DQvOpYNO.js :259
- rename package/packages/server/dist/server-DQvOpYNO.js :260
- codemod package/packages/server/dist/server-DQvOpYNO.js :260
- data_transform package/packages/server/dist/server-DQvOpYNO.js :260
- memory_explain package/packages/server/dist/server-DQvOpYNO.js :262
- list_tools package/packages/server/dist/server-DQvOpYNO.js :262
- describe_tool package/packages/server/dist/server-DQvOpYNO.js :263
- search_tools package/packages/server/dist/server-DQvOpYNO.js :263
- onboard package/packages/server/dist/server-DQvOpYNO.js :265
- workset package/packages/server/dist/server-DQvOpYNO.js :266
- stash package/packages/server/dist/server-DQvOpYNO.js :267
- checkpoint package/packages/server/dist/server-DQvOpYNO.js :268
- lane package/packages/server/dist/server-DQvOpYNO.js :272
- queue package/packages/server/dist/server-DQvOpYNO.js :272
- er_update_policy package/packages/server/dist/server-DQvOpYNO.js :274
- produce_knowledge package/packages/server/dist/server-DQvOpYNO.js :2972
- reindex package/packages/server/dist/server-DQvOpYNO.js :2975
- replay package/packages/server/dist/server-DQvOpYNO.js :2983
- restore package/packages/server/dist/server-DQvOpYNO.js :2985
- search package/packages/server/dist/server-DQvOpYNO.js :2987
- session_digest package/packages/server/dist/server-DQvOpYNO.js :3000
- signal package/packages/server/dist/server-DQvOpYNO.js :3000
- status package/packages/server/dist/server-DQvOpYNO.js :3002
- status package/packages/server/dist/server-DQvOpYNO.js :3003
- web_search package/packages/server/dist/server-DQvOpYNO.js :3004
- http package/packages/server/dist/server-DQvOpYNO.js :3007
- regex_test package/packages/server/dist/server-DQvOpYNO.js :3008
- encode package/packages/server/dist/server-DQvOpYNO.js :3009
- measure package/packages/server/dist/server-DQvOpYNO.js :3009
- changelog package/packages/server/dist/server-DQvOpYNO.js :3011
- schema_validate package/packages/server/dist/server-DQvOpYNO.js :3011
- env package/packages/server/dist/server-DQvOpYNO.js :3014
- time package/packages/server/dist/server-DQvOpYNO.js :3015
install hooks 1
- postinstall package/packages/chunker/package.json :19
node scripts/vendor-wasm.mjs || echo WASM vendoring skipped (deps not available)
declared dependencies 36
- @huggingface/transformers@^4.x
- @lancedb/lancedb@^0.x
- @mcp-ui/server@^6.x
- @mixmark-io/domino@^2.x
- @modelcontextprotocol/ext-apps@^1.x
- @modelcontextprotocol/sdk@^1.x
- ajv@^8.x
- diff@^9.x
- express@^5.x
- gpt-tokenizer@^3.x
- linkedom@^0.x
- lru-cache@^11.x
- marked@^18.x
- mermaid@^11
- minimatch@^10.x
- sql.js@^1.x
- sqlite-vec@^0.x
- tree-sitter-wasms@~0.1.13
- turndown@^7.x
- web-tree-sitter@~0.24.7
- yaml@^2.x
- zod@^4.x
- @biomejs/biome@^2.x
- @types/better-sqlite3@^7.x
- @types/express@^5.x
- @types/node@^24.x
- rimraf@^6.x
- tsdown@^0.x
- turbo@^2.x
- typescript@^6.x
- vite@^8.x
- vite-plugin-singlefile@^2.x
- vitest@^4.x
- ws@^8.x
- better-sqlite3@^12.x
- playwright-core@^1.x