入口模块

@ageniti/core 同时提供根导出和更细粒度的 subpath export。

推荐默认方式

大多数应用直接从根包导入即可:

import { createAgenitiApp, defineAction, s } from "@ageniti/core";

这样最简单,也和文档示例保持一致。

可用导出

根导出

@ageniti/core

当你希望用一个入口拿到主要 authoring API 时,优先用根导出。根导出涵盖 action 契约、runtime、transport、adapter、schema、client 和测试工具 —— 应用或 host 在运行时所需的全部。

0.2.0 起:打包、文档与 project 工具链 helper(buildArtifacts、packageArtifacts、publishArtifacts、createGuideDoc、exportDocs、initProject、doctorProject、findDefaultAppModule、loadProjectConfig、detectTypeScriptRuntime、supportsTypeScriptEntrypoints)不再从根入口再导出。请从对应 subpath(@ageniti/core/build、@ageniti/core/docs、@ageniti/core/project)导入,让 runtime 热路径保持精简。

Subpath Export

@ageniti/core/ai-sdk
@ageniti/core/adapters
@ageniti/core/app
@ageniti/core/build
@ageniti/core/cli
@ageniti/core/client
@ageniti/core/client-gen
@ageniti/core/core
@ageniti/core/dev
@ageniti/core/docs
@ageniti/core/handlers
@ageniti/core/http
@ageniti/core/json-runner
@ageniti/core/lint
@ageniti/core/manifest
@ageniti/core/mcp
@ageniti/core/project
@ageniti/core/react
@ageniti/core/react-hooks
@ageniti/core/schema
@ageniti/core/schema-adapter
@ageniti/core/test-utils

每个 Subpath 暴露什么

  • @ageniti/core/ai-sdk:OpenAI-compatible tools、Responses tools、AI SDK tools 和组合 manifest。
  • @ageniti/core/adapters:内建 surface adapter 与 adapter helper。
  • @ageniti/core/app:createAgenitiApp()。
  • @ageniti/core/build:buildArtifacts()、packageArtifacts()、publishArtifacts() —— 构建、打包并发布可分发的 CLI tarball。
  • @ageniti/core/docs:createGuideDoc()、exportDocs() —— 为 app actions 生成统一的 GUIDE.md。
  • @ageniti/core/project:initProject()、doctorProject()、findDefaultAppModule()、loadProjectConfig()、detectTypeScriptRuntime()、supportsTypeScriptEntrypoints() —— 项目脚手架与探测 helper。
  • @ageniti/core/cli:createCli()。
  • @ageniti/core/client:createClient() 和 AgenitiClientError,用于进程内 / HTTP 类型化 client。
  • @ageniti/core/client-gen:generateClientTypes() 和 jsonSchemaToTs(),构建期生成 .d.ts 类型化 client。
  • @ageniti/core/core:defineAction()、createRuntime()、ERROR_CODES 常量等 runtime 和 action 原语。
  • @ageniti/core/dev:createDevServer()。
  • @ageniti/core/handlers:defineActions()、actionFromHandler()、actionsFromHandlers(),批量包装已有函数。
  • @ageniti/core/http:createHttpHandler()、createHttpServer()、parseRequestBody()、sendJson()、sendText()。
  • @ageniti/core/json-runner:createJsonRunner()。
  • @ageniti/core/lint:lintActions()。
  • @ageniti/core/manifest:describeAction()、createSurfaceManifest()、diffActionManifests() 等 manifest helper。
  • @ageniti/core/mcp:MCP manifest、handler 和 stdio server(自动识别 Content-Length 与 newline framing)。
  • @ageniti/core/react:createReactActionAdapter()、makeInvoker()、streamAction()(不 import React,非 React 项目也能加载)。
  • @ageniti/core/react-hooks:useAction() 状态机 hook(React 作为 peer dep)。
  • @ageniti/core/schema:s、isSchema()、assertSchema()、toJSONSchema() 和 SchemaValidationError。
  • @ageniti/core/schema-adapter:wrapSchema()、isZodLike()、isStandardSchemaV1()、zodToJsonSchema(),用于外部 schema 互操作。
  • @ageniti/core/test-utils:createTestRuntime()、expectOk()、expectError()、expectLog()、collectStream()、stubAction()。

常见导入模式

编写 action:

import { defineAction, s } from "@ageniti/core";

只构建 MCP server 包装层:

import { createMcpHandler } from "@ageniti/core/mcp";

运行 lint 或工具链检查:

import { lintActions } from "@ageniti/core/lint";

只生成 AI tool 定义:

import { createAISDKTools, createOpenAITools } from "@ageniti/core/ai-sdk";

什么时候更适合用 Subpath

优先使用 subpath 的情况:

  • 你在做边界明确的集成层
  • 你希望 import 直接表达模块职责
  • 你的包或服务只暴露单一 surface
  • 你在写围绕 manifest、lint 或 schema 的工具

优先使用根导出的情况:

  • 你在写主应用集成代码
  • 你希望 onboarding 尽可能简单
  • 你不需要显式的模块级分层
  • 你需要 build helper 或 project setup helper,而它们没有单独的 subpath export

类型声明

现在类型声明已经收敛到最小可维护形态:包只保留一个根入口声明文件,以及一个放在 src/types/ 下的中心化 subpath 声明映射,统一覆盖所有公开 subpath export。