Merchant-side agentic-commerce infrastructure for India's long-tail sellers: turns messy Instagram catalogs into something an AI buyer agent can safely buy from — every money action gated, bounded and auditable.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport streamable-http · http counts 14 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
confirm_product
-
create_cart
-
declare_intent
-
get_held_product
-
get_order
-
get_order_status
-
get_product
-
list_held_products
-
list_my_products
-
list_recent_orders
-
register_agent
-
store_summary
-
submit_catalog_item
-
submit_payment
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 47399a0 · analyzer v33 · 1w ago
skills & prompt files 1
- agent-rules ishanavasthi-agent-store-47399a0/CLAUDE.md
danger signals3
- suspicious endpoint 169.254.169.254 (cloud metadata) ishanavasthi-agent-store-47399a0/src/ingestion/fetchImage.test.ts :67
'http://169.254.169.254/latest/meta-data/iam/security-credentials/', - suspicious endpoint 169.254.169.254 (cloud metadata) ishanavasthi-agent-store-47399a0/src/ingestion/submission.integration.test.ts :180
imageUrl: 'http://169.254.169.254/latest/meta-data/', - suspicious endpoint 169.254.169.254 (cloud metadata) ishanavasthi-agent-store-47399a0/src/mcp/merchantFace.integration.test.ts :844
imageUrl: 'http://169.254.169.254/latest/meta-data/',
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 155
filesystem 16
- fs (weak) ishanavasthi-agent-store-47399a0/fixtures/demo-dataset/generate-images.mjs :21
import { existsSync, mkdirSync, unlinkSync, writeFileSync } from 'node:fs'; - fs ishanavasthi-agent-store-47399a0/src/evals/live/payerBot.ts :1
import { mkdir, writeFile } from 'node:fs/promises'; - fs (weak) ishanavasthi-agent-store-47399a0/src/evals/live/report.test.ts :1
import { mkdtemp, readFile, rm } from 'node:fs/promises'; - fs ishanavasthi-agent-store-47399a0/src/evals/live/report.ts :1
import { mkdir, writeFile } from 'node:fs/promises'; - fs ishanavasthi-agent-store-47399a0/src/evals/protocol/auditRules.ts :1
import { readFile } from 'node:fs/promises'; - fs ishanavasthi-agent-store-47399a0/src/evals/protocol/cli.ts :1
import { mkdir, writeFile } from 'node:fs/promises'; - fs ishanavasthi-agent-store-47399a0/src/http/app.ts :1
import { existsSync } from 'node:fs'; - fs (weak) ishanavasthi-agent-store-47399a0/src/http/auditViewer.integration.test.ts :3
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'; - fs ishanavasthi-agent-store-47399a0/src/ingestion/demoDataset.ts :1
import { readFile } from 'node:fs/promises'; - fs (weak) ishanavasthi-agent-store-47399a0/src/ingestion/demoRun.test.ts :1
import { readFileSync } from 'node:fs'; - fs (weak) ishanavasthi-agent-store-47399a0/src/ingestion/extraction/openaiResponsesModel.test.ts :1
import { readFileSync } from 'node:fs'; - fs (weak) ishanavasthi-agent-store-47399a0/src/ingestion/extraction/toExtraction.test.ts :1
import { readFileSync } from 'node:fs';
show 4 more
- fs ishanavasthi-agent-store-47399a0/src/ingestion/runAccuracy.ts :1
import { mkdir, writeFile } from 'node:fs/promises'; - fs ishanavasthi-agent-store-47399a0/src/ingestion/runCompare.ts :1
import { readFile, readdir } from 'node:fs/promises'; - fs (weak) ishanavasthi-agent-store-47399a0/src/ingestion/runRecord.test.ts :1
import { readFileSync } from 'node:fs'; - fs ishanavasthi-agent-store-47399a0/src/ingestion/spike/runExtractionSpike.ts :1
import { readFile, writeFile } from 'node:fs/promises';
shell / exec 1
- shell (weak) ishanavasthi-agent-store-47399a0/fixtures/demo-dataset/generate-images.mjs :20
import { execFileSync } from 'node:child_process';
network 14
- net (weak) ishanavasthi-agent-store-47399a0/fixtures/demo-dataset/generate-images.mjs :113
const res = await fetch('https://api.openai.com/v1/images/generations', { - net (weak) ishanavasthi-agent-store-47399a0/src/evals/live/liveHarness.integration.test.ts :1
import { createServer, type Server } from 'node:http'; - net ishanavasthi-agent-store-47399a0/src/evals/live/probe.ts :87
const response = await fetch(`${base}/acp/products`); - net ishanavasthi-agent-store-47399a0/src/evals/protocol/faces.ts :160
const response = await fetch(`${this.#base}${path}`, { - net ishanavasthi-agent-store-47399a0/src/evals/protocol/world.ts :2
import { createServer, type Server } from 'node:http'; - net (weak) ishanavasthi-agent-store-47399a0/src/http/auditViewer.integration.test.ts :4
import { createServer, type Server } from 'node:http'; - net (weak) ishanavasthi-agent-store-47399a0/src/http/demoImages.integration.test.ts :2
import { createServer, type Server } from 'node:http'; - net (weak) ishanavasthi-agent-store-47399a0/src/http/mcpFaces.integration.test.ts :2
import { createServer, type Server } from 'node:http'; - net (weak) ishanavasthi-agent-store-47399a0/src/http/merchantConfirmation.integration.test.ts :3
import { createServer, type Server } from 'node:http'; - net (weak) ishanavasthi-agent-store-47399a0/src/http/restFace.integration.test.ts :3
import { createServer, type Server } from 'node:http'; - net ishanavasthi-agent-store-47399a0/src/ingestion/extraction/openaiResponsesModel.ts :60
this.#fetch = options.fetchImpl ?? ((...args) => fetch(...args)); - net ishanavasthi-agent-store-47399a0/src/ingestion/extraction/providerHttp.ts :46
const fetchImpl = options.fetchImpl ?? ((...args: Parameters<typeof fetch>) => fetch(...args));
show 2 more
- net ishanavasthi-agent-store-47399a0/src/ingestion/fetchImage.ts :1
import { isIP } from 'node:net'; - net ishanavasthi-agent-store-47399a0/viewer/src/api.ts :91
const response = await fetch(path, { headers: { accept: 'application/json' } });
secrets 2
- secrets (weak) ishanavasthi-agent-store-47399a0/fixtures/demo-dataset/generate-images.mjs :93
const apiKey = process.env.OPENAI_API_KEY; - secrets ishanavasthi-agent-store-47399a0/src/db/seed.ts :40
const merchantToken = await ensureMerchantToken(db, MERCHANT_ID, process.env.MERCHANT_TOKEN);
tool registrations 14
- list_held_products ishanavasthi-agent-store-47399a0/src/mcp/merchantServer.ts :190
- get_held_product ishanavasthi-agent-store-47399a0/src/mcp/merchantServer.ts :216
- confirm_product ishanavasthi-agent-store-47399a0/src/mcp/merchantServer.ts :242
- list_my_products ishanavasthi-agent-store-47399a0/src/mcp/merchantServer.ts :305
- store_summary ishanavasthi-agent-store-47399a0/src/mcp/merchantServer.ts :356
- list_recent_orders ishanavasthi-agent-store-47399a0/src/mcp/merchantServer.ts :419
- get_order ishanavasthi-agent-store-47399a0/src/mcp/merchantServer.ts :475
- submit_catalog_item ishanavasthi-agent-store-47399a0/src/mcp/merchantServer.ts :521
- get_product ishanavasthi-agent-store-47399a0/src/mcp/server.ts :57
- register_agent ishanavasthi-agent-store-47399a0/src/mcp/server.ts :76
- declare_intent ishanavasthi-agent-store-47399a0/src/mcp/server.ts :121
- create_cart ishanavasthi-agent-store-47399a0/src/mcp/server.ts :182
show 2 more
- submit_payment ishanavasthi-agent-store-47399a0/src/mcp/server.ts :240
- get_order_status ishanavasthi-agent-store-47399a0/src/mcp/server.ts :331
declared dependencies 23
- @modelcontextprotocol/sdk@^1.30.0
- @neondatabase/serverless@^1.1.0
- drizzle-orm@^0.45.2
- express@^5.2.1
- razorpay@^2.9.8
- ws@^8.21.3
- zod@^4.4.3
- @anthropic-ai/claude-agent-sdk@^0.3.246
- @electric-sql/pglite@^0.5.7
- @types/express@^5.0.6
- @types/node@^22.15.3
- @types/react@^19.2.18
show 11 more
- @types/react-dom@^19.2.5
- @types/ws@^8.18.1
- @vitejs/plugin-react@^6.1.0
- drizzle-kit@^0.31.10
- playwright@^1.62.1
- react@^19.2.8
- react-dom@^19.2.8
- react-router-dom@^7.18.2
- typescript@^5.9.3
- vite@^8.2.2
- vitest@^4.1.11
perm:untrusted 2
- untrusted (weak) ishanavasthi-agent-store-47399a0/src/http/demoImages.integration.test.ts :68
const body = (await (await fetch(`${baseUrl}/`)).json()) as { endpoints: string[] }; - untrusted (weak) ishanavasthi-agent-store-47399a0/src/http/mcpFaces.integration.test.ts :94
const body = (await (await fetch(`${baseUrl}/`)).json()) as Record<string, any>;