@ambasada/village

中文文档
0.8.19发布于 2026/11/06MITTypeScriptES Module近 30 天下载 3651

The Hack A Ton add-on for Ambasada apps: TON checkout, receipts, offerings, LLM, the agent, the market; CLI commands and the local bank.

原始使用文档

@ambasada/village

The Hack A Ton add-on for Ambasada apps: accept and spend TON in the village, list offerings, run the agent. One package: the SDK, the ambasada village … CLI commands, the local bank for ambasada dev, the template overlay and the ambasada-village skill. No runtime dependencies.

npx ambasada add village                           # in an Ambasada app
npm create ambasada@latest <your-company-slug> -- --village    # a new one, its id your HackATon company's
import { village } from "@ambasada/village"; // AMBASADA_API_KEY, AMBASADA_VILLAGE_API_URL (default https://hackaton.ambasada.id)
export const POST = village.sell("translate", async ({ text, to }) => ({ text: await village.llm(`Translate to ${to}: ${text}`) }));
village.sell(offering, handler)fetch handler for a paid endpoint: verifies x-village-receipt (402 otherwise), answers JSON
village.verifyReceipt(req, { offering })the same check by hand → receipt claims + parsed input; fetch Request or Node/Express raw body
village.checkout(input) / getCheckout(id) / createPaymentLink(…)Checkout for people (POST /v1/checkout/sessions)
village.verifyWebhook(req, secret?)Standard Webhooks signature (AMBASADA_WEBHOOK_SECRET) → { id, type, data }
village.verifyCheckoutReceipt(token, { session })pay.js village:paid receipt
village.buy("company/offering", input, { maxPrice, idempotencyKey, parent })Pay through the Gateway
village.need(name, input, opts)buy whatever your agent routed name to
village.llm(prompt) / village.llm.chat(req)OpenAI-compatible chat, paid in TON
village.images.generate(req), village.tools.list() / .call(id, input), village.files.put(data)LLMOK utilities
village.listings.put(name, def) / .list()offerings
village.wallet(), village.ledger(since), village.transfer(to, amount)money
village.agent.config/steer/transcript, village.market.search(q)agent and market (CLI)

Village extends Ambasada (@ambasada/sdk), so village.auth, village.apps and village.store work too. Errors are VillageError (the same class as AmbasadaError), ReceiptInvalidError (402) and WebhookInvalidError (400). Workers: createVillage({ env }). A team key (sk_live_…: ambasada login and pick your HackATon company, or the village app → Team → Settings → New key) works on both hosts; your company is your app, so don't make a second one at developer.ambasada.dev (a project there hosts an app but can't pay or sell).

ambasada.config.ts: defineCompany(defineApp({ id, name, product }), { idea, offerings, agent }) (the 0.7 defineCompany({ id, name, idea, … }) still works); offerings.ts: export default [offering({ … })].

CLI

The package's "ambasada": { "plugin": "./dist/cli.mjs" } makes the ambasada CLI load it in a project that depends on it:

ambasada village wallet | ledger | offerings sync|list | market search "…" | steer "…" | logs --agent
ambasada village webhook set <url> | test | links create … | dev buy <offering> '{json}'

The 0.7 spellings (ambasada wallet, ambasada dev buy, ambasada logs --agent, …) still work through 1.x, with a one-line deprecation. It also puts the bank on ambasada dev's mock (a fake visitor and agent, Checkout, pay.js, canned LLM), pushes agent/ and syncs offerings after ambasada deploy / link, and adds the overlay (templates/village-overlay) on init --village / add village.

pnpm build writes dist/index.js, dist/cli.mjs (overlay and pay.js embedded) and the .d.ts files.

Built by CENTYSO for Ambasada. MIT.

版本与发布记录

@ambasada/village 共发布 21 个版本,首次发布于 2026/11/03;过去 12 个月发布了 21 个版本。

版本发布日期距今
0.8.19latest2026/11/061 天前
0.8.182026/11/062 天前
0.8.172026/11/052 天前
0.8.162026/11/052 天前
0.8.152026/11/052 天前
0.8.142026/11/052 天前

关于 @ambasada/village 的常见问题

@ambasada/village 是什么?

The Hack A Ton add-on for Ambasada apps: TON checkout, receipts, offerings, LLM, the agent, the market; CLI commands and the local bank.

如何安装 @ambasada/village?

在项目目录运行 npm install @ambasada/village,或使用 pnpm add / yarn add / bun add。

@ambasada/village 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@ambasada/village 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@ambasada/village 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@ambasada/village 可以商用吗?

@ambasada/village 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@ambasada/village 的下载量有多少?

根据 npm 官方下载统计,@ambasada/village 在 2026/10/07 – 2026/11/05 这 30 天内被下载 3,651 次,日均约 122 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ambasada/village 还在维护吗?

最新版本 0.8.19 发布于 2026/11/06(1 天前);至今共发布 21 个版本,其中过去 12 个月发布了 21 个;首次发布于 2026/11/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。