High-level project management CLI, MCP server, SDK, and AI SDK agent loop for coding agents
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 84
filesystem 5
- fs package/dist/cli/index.js :4242
import { chmod, mkdir, readFile, rename, writeFile } from "fs/promises"; - fs package/dist/index.js :3010
import { existsSync as existsSync4 } from "fs"; - fs package/dist/mcp/index.js :2267
import { readFileSync as readFileSync5 } from "fs"; - fs package/dist/project-store.js :121
import { existsSync as existsSync2, mkdirSync } from "fs"; - fs package/dist/serve/index.js :5
import { readFileSync as readFileSync3 } from "fs";
shell / exec 4
- shell package/dist/cli/index.js :4248
import { spawn } from "child_process"; - shell package/dist/index.js :4480
const result = Bun.spawnSync({ - shell package/dist/mcp/index.js :7955
const result = Bun.spawnSync({ - shell package/dist/serve/index.js :787
const result = Bun.spawnSync({
network 3
- net package/dist/cli/index.js :2330
const response = await fetch(discoveryUrl, { - net package/dist/index.js :295
const response = await fetch(discoveryUrl, { - net package/dist/mcp/index.js :296
const response = await fetch(discoveryUrl, {
secrets 3
- secrets package/dist/cli/index.js :2639
process.env.VERCEL_OIDC_TOKEN = maybeToken.token; - secrets package/dist/index.js :604
process.env.VERCEL_OIDC_TOKEN = maybeToken.token; - secrets package/dist/mcp/index.js :605
process.env.VERCEL_OIDC_TOKEN = maybeToken.token;
database 1
- db package/dist/serve/index.js :249
import pg from "pg";
install hooks 3
- prepack package/package.json :60
bun run build && bun run scan:artifact - prepublishOnly package/package.json :61
bun run typecheck && bun test && bun run contracts:conformance && contracts no-cloud-scan . - postinstall package/package.json :62
mkdir -p $HOME/.hasna/projects 2>/dev/null || true
declared dependencies 20
- @modelcontextprotocol/sdk@^1.12.1
- @hasna/contracts@1.1.0
- @hasna/conversations@0.7.8
- @hasna/events@0.1.3
- @hasna/mementos@0.14.85
- @hasna/secrets@0.4.2
- @hasna/todos@0.15.49
- @json-render/core@0.19.0
- @openrouter/ai-sdk-provider@^2.9.0
- ai@^6.0.197
- chalk@^5.4.1
- commander@^13.1.0
show 8 more
- nanoid@^5.0.9
- pg@^8.13.3
- zod@3.25.76
- @types/bun@1.3.14
- @types/pg@^8.11.11
- ajv@8.20.0
- typescript@^5.7.3
- @hasna/loops@>=0.6.4
cursor-plugin 2
- opaque (low) package/.cursor/hooks.json
bundled .cursor/ plugin descriptor (package/.cursor/hooks.json) — presence-detected; review the descriptor - opaque (low) package/.cursor/hooks/goal-continue.sh
bundled .cursor/ plugin descriptor (package/.cursor/hooks/goal-continue.sh) — presence-detected; review the descriptor