入口模块

@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(buildArtifactspackageArtifactspublishArtifactscreateGuideDocexportDocsinitProjectdoctorProjectfindDefaultAppModuleloadProjectConfigdetectTypeScriptRuntimesupportsTypeScriptEntrypoints)不再从根入口再导出。请从对应 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/appcreateAgenitiApp()
  • @ageniti/core/buildbuildArtifacts()packageArtifacts()publishArtifacts() —— 构建、打包并发布可分发的 CLI tarball。
  • @ageniti/core/docscreateGuideDoc()exportDocs() —— 为 app actions 生成统一的 GUIDE.md
  • @ageniti/core/projectinitProject()doctorProject()findDefaultAppModule()loadProjectConfig()detectTypeScriptRuntime()supportsTypeScriptEntrypoints() —— 项目脚手架与探测 helper。
  • @ageniti/core/clicreateCli()
  • @ageniti/core/clientcreateClient()AgenitiClientError,用于进程内 / HTTP 类型化 client。
  • @ageniti/core/client-gengenerateClientTypes()jsonSchemaToTs(),构建期生成 .d.ts 类型化 client。
  • @ageniti/core/coredefineAction()createRuntime()ERROR_CODES 常量等 runtime 和 action 原语。
  • @ageniti/core/devcreateDevServer()
  • @ageniti/core/handlersdefineActions()actionFromHandler()actionsFromHandlers(),批量包装已有函数。
  • @ageniti/core/httpcreateHttpHandler()createHttpServer()parseRequestBody()sendJson()sendText()
  • @ageniti/core/json-runnercreateJsonRunner()
  • @ageniti/core/lintlintActions()
  • @ageniti/core/manifestdescribeAction()createSurfaceManifest()diffActionManifests() 等 manifest helper。
  • @ageniti/core/mcp:MCP manifest、handler 和 stdio server(自动识别 Content-Length 与 newline framing)。
  • @ageniti/core/reactcreateReactActionAdapter()makeInvoker()streamAction()(不 import React,非 React 项目也能加载)。
  • @ageniti/core/react-hooksuseAction() 状态机 hook(React 作为 peer dep)。
  • @ageniti/core/schemasisSchema()assertSchema()toJSONSchema()SchemaValidationError
  • @ageniti/core/schema-adapterwrapSchema()isZodLike()isStandardSchemaV1()zodToJsonSchema(),用于外部 schema 互操作。
  • @ageniti/core/test-utilscreateTestRuntime()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。