berry-agent 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +96 -0
- package/dist/.api-emit.stamp +1 -0
- package/dist/.build-meta.json +6 -0
- package/dist/agent/events.js +1 -0
- package/dist/agent/index.js +2 -0
- package/dist/agent/loop.js +139 -0
- package/dist/agent/queue.js +119 -0
- package/dist/agent/stream.js +62 -0
- package/dist/agent/tools-batch.js +221 -0
- package/dist/agent/types.js +8 -0
- package/dist/api/berry-agent-llm.d.ts +18 -0
- package/dist/api/berry-agent.d.ts +9 -0
- package/dist/api/surface.json +1632 -0
- package/dist/api/tsconfig.paths.json +12 -0
- package/dist/api/typebox-compile.d.ts +2 -0
- package/dist/api/typebox-value.d.ts +2 -0
- package/dist/api/typebox.d.ts +2 -0
- package/dist/browser/cdp.js +256 -0
- package/dist/browser/codes.js +31 -0
- package/dist/browser/discover.js +107 -0
- package/dist/browser/engine.js +169 -0
- package/dist/browser/index.js +17 -0
- package/dist/browser/install.js +342 -0
- package/dist/browser/page.js +321 -0
- package/dist/browser/service.js +158 -0
- package/dist/browser/tools.js +198 -0
- package/dist/browser/types.js +81 -0
- package/dist/channels/ask-queue.js +82 -0
- package/dist/channels/commands.js +129 -0
- package/dist/channels/engine/cell.js +143 -0
- package/dist/channels/engine/diff.js +143 -0
- package/dist/channels/engine/engine.js +416 -0
- package/dist/channels/engine/index.js +8 -0
- package/dist/channels/engine/input-keys.js +86 -0
- package/dist/channels/engine/input.js +596 -0
- package/dist/channels/engine/memory-io.js +71 -0
- package/dist/channels/engine/process-io.js +38 -0
- package/dist/channels/engine/types.js +17 -0
- package/dist/channels/engine/width.js +122 -0
- package/dist/channels/index.js +15 -0
- package/dist/channels/registry.js +56 -0
- package/dist/channels/sdk/admit.js +29 -0
- package/dist/channels/sdk/backend.js +102 -0
- package/dist/channels/sdk/cursor.js +56 -0
- package/dist/channels/sdk/index.js +20 -0
- package/dist/channels/sdk/jsonl.js +208 -0
- package/dist/channels/sdk/protocol.js +24 -0
- package/dist/channels/sdk/schema.js +91 -0
- package/dist/channels/sdk/wire-core.js +446 -0
- package/dist/channels/service.js +169 -0
- package/dist/channels/tui/autocomplete/autocomplete.js +42 -0
- package/dist/channels/tui/autocomplete/file-mentions.js +106 -0
- package/dist/channels/tui/autocomplete/popup.js +148 -0
- package/dist/channels/tui/autocomplete/provider.js +7 -0
- package/dist/channels/tui/autocomplete/token.js +68 -0
- package/dist/channels/tui/backend/ansi-rows.js +211 -0
- package/dist/channels/tui/backend/main-screen.js +207 -0
- package/dist/channels/tui/backend/osc.js +91 -0
- package/dist/channels/tui/backend/transcript.js +230 -0
- package/dist/channels/tui/backend/tui-backend.js +915 -0
- package/dist/channels/tui/editor/editor-model.js +543 -0
- package/dist/channels/tui/editor/editor-view.js +140 -0
- package/dist/channels/tui/editor/editor.js +275 -0
- package/dist/channels/tui/editor/undo-stack.js +35 -0
- package/dist/channels/tui/editor/visual-lines.js +126 -0
- package/dist/channels/tui/editor/word-nav.js +106 -0
- package/dist/channels/tui/history/history-viewer.js +403 -0
- package/dist/channels/tui/index.js +3 -0
- package/dist/channels/tui/layout.js +167 -0
- package/dist/channels/tui/markdown/blocks.js +111 -0
- package/dist/channels/tui/markdown/inline.js +75 -0
- package/dist/channels/tui/markdown/markdown.js +182 -0
- package/dist/channels/tui/memory/memory-viewer.js +540 -0
- package/dist/channels/tui/overlay/alt-screen.js +105 -0
- package/dist/channels/tui/overlay/overlay.js +57 -0
- package/dist/channels/tui/overlay/select-confirm.js +156 -0
- package/dist/channels/tui/panels/todo-panel.js +54 -0
- package/dist/channels/tui/panels/tool-progress-panel.js +93 -0
- package/dist/channels/tui/scroll/scroll-view.js +254 -0
- package/dist/channels/tui/status/status-line.js +76 -0
- package/dist/channels/tui/text.js +38 -0
- package/dist/channels/tui/theme.js +41 -0
- package/dist/channels/types.js +11 -0
- package/dist/channels/ui-core.js +209 -0
- package/dist/checkpoint/capture.js +45 -0
- package/dist/checkpoint/codes.js +33 -0
- package/dist/checkpoint/command.js +82 -0
- package/dist/checkpoint/gate.js +48 -0
- package/dist/checkpoint/index.js +20 -0
- package/dist/checkpoint/restore.js +172 -0
- package/dist/checkpoint/store.js +247 -0
- package/dist/checkpoint/types.js +4 -0
- package/dist/checkpoint/walk.js +146 -0
- package/dist/compaction/ccr-tools.js +112 -0
- package/dist/compaction/ccr.js +84 -0
- package/dist/compaction/codes.js +21 -0
- package/dist/compaction/index.js +18 -0
- package/dist/compaction/policy.js +200 -0
- package/dist/compaction/service.js +422 -0
- package/dist/compaction/slots.js +121 -0
- package/dist/compaction/types.js +10 -0
- package/dist/context/codes.js +40 -0
- package/dist/context/events.js +160 -0
- package/dist/context/index.js +13 -0
- package/dist/context/logger.js +136 -0
- package/dist/context/scope.js +182 -0
- package/dist/context/workspace.js +104 -0
- package/dist/contracts/agent-events.d.ts +73 -0
- package/dist/contracts/agent-events.js +16 -0
- package/dist/contracts/api.d.ts +249 -0
- package/dist/contracts/api.js +299 -0
- package/dist/contracts/approval.d.ts +37 -0
- package/dist/contracts/approval.js +9 -0
- package/dist/contracts/env-ref.d.ts +41 -0
- package/dist/contracts/env-ref.js +32 -0
- package/dist/contracts/errors.d.ts +56 -0
- package/dist/contracts/errors.js +266 -0
- package/dist/contracts/events.d.ts +70 -0
- package/dist/contracts/events.js +329 -0
- package/dist/contracts/index.d.ts +32 -0
- package/dist/contracts/index.js +26 -0
- package/dist/contracts/llm.d.ts +275 -0
- package/dist/contracts/llm.js +12 -0
- package/dist/contracts/messages.d.ts +63 -0
- package/dist/contracts/messages.js +65 -0
- package/dist/contracts/redact.d.ts +46 -0
- package/dist/contracts/redact.js +223 -0
- package/dist/contracts/tools.d.ts +197 -0
- package/dist/contracts/tools.js +33 -0
- package/dist/contracts/types.d.ts +302 -0
- package/dist/contracts/types.js +50 -0
- package/dist/contracts/ui.d.ts +122 -0
- package/dist/contracts/ui.js +15 -0
- package/dist/conversation/agent-service.js +61 -0
- package/dist/conversation/approval-wiring.js +82 -0
- package/dist/conversation/backoff.js +38 -0
- package/dist/conversation/codes.js +47 -0
- package/dist/conversation/control-tools.js +102 -0
- package/dist/conversation/control.js +210 -0
- package/dist/conversation/driver.js +922 -0
- package/dist/conversation/index.js +12 -0
- package/dist/conversation/model-visible.js +169 -0
- package/dist/conversation/open-tools.js +126 -0
- package/dist/conversation/reseed.js +132 -0
- package/dist/conversation/sessions.js +215 -0
- package/dist/conversation/todo.js +203 -0
- package/dist/conversation/types.js +35 -0
- package/dist/conversation/wiring.js +204 -0
- package/dist/credentials/codes.js +59 -0
- package/dist/credentials/commands.js +186 -0
- package/dist/credentials/env-ref.js +34 -0
- package/dist/credentials/index.js +28 -0
- package/dist/credentials/migration.js +18 -0
- package/dist/credentials/oauth.js +266 -0
- package/dist/credentials/refresh.js +152 -0
- package/dist/credentials/secrets.js +118 -0
- package/dist/credentials/types.js +30 -0
- package/dist/exec/bash.js +279 -0
- package/dist/exec/codes.js +37 -0
- package/dist/exec/env.js +99 -0
- package/dist/exec/environment.js +39 -0
- package/dist/exec/git-guard.js +623 -0
- package/dist/exec/index.js +24 -0
- package/dist/exec/registry.js +120 -0
- package/dist/exec/spawn.js +281 -0
- package/dist/exec/tail.js +77 -0
- package/dist/exec/types.js +5 -0
- package/dist/goal/codes.js +33 -0
- package/dist/goal/command.js +175 -0
- package/dist/goal/fold.js +121 -0
- package/dist/goal/gates.js +122 -0
- package/dist/goal/index.js +22 -0
- package/dist/goal/migration.js +48 -0
- package/dist/goal/service.js +501 -0
- package/dist/goal/todo-tool.js +174 -0
- package/dist/goal/types.js +1 -0
- package/dist/goal/update-tool.js +46 -0
- package/dist/host/approval-cmd.js +276 -0
- package/dist/host/assembly.js +1146 -0
- package/dist/host/boot-failures.js +104 -0
- package/dist/host/budget-advisory.js +74 -0
- package/dist/host/budget-broadcast.js +50 -0
- package/dist/host/builtins.js +54 -0
- package/dist/host/cli.js +544 -0
- package/dist/host/codes.js +120 -0
- package/dist/host/config-schema.js +195 -0
- package/dist/host/conversation-stack.js +654 -0
- package/dist/host/core-plugins.js +1685 -0
- package/dist/host/credentials-cmd.js +42 -0
- package/dist/host/disclosure.js +30 -0
- package/dist/host/dispatch.js +105 -0
- package/dist/host/doors-cmd.js +154 -0
- package/dist/host/dump-config.js +44 -0
- package/dist/host/hook-dispatch-guard.js +27 -0
- package/dist/host/import-gate.js +153 -0
- package/dist/host/index.js +54 -0
- package/dist/host/issue-session.js +241 -0
- package/dist/host/loader.js +372 -0
- package/dist/host/main.js +161 -0
- package/dist/host/manifest.js +381 -0
- package/dist/host/mcp-entry.js +53 -0
- package/dist/host/plugin-boot.js +952 -0
- package/dist/host/plugin-context.js +672 -0
- package/dist/host/plugin-install.js +480 -0
- package/dist/host/plugin-reload.js +124 -0
- package/dist/host/plugin-store.js +462 -0
- package/dist/host/plugin-tools.js +359 -0
- package/dist/host/plugin-uninstall.js +257 -0
- package/dist/host/plugins-cmd.js +302 -0
- package/dist/host/plugins-command.js +130 -0
- package/dist/host/plugins-config.js +195 -0
- package/dist/host/prompt-sections.js +133 -0
- package/dist/host/run-entry.js +544 -0
- package/dist/host/runtime.js +209 -0
- package/dist/host/scheduler-tick.js +294 -0
- package/dist/host/serve-daemon.js +501 -0
- package/dist/host/serve-entry.js +279 -0
- package/dist/host/session-anchor.js +41 -0
- package/dist/host/sessions-cmd.js +219 -0
- package/dist/host/sessions-face.js +47 -0
- package/dist/host/settings-store.js +112 -0
- package/dist/host/signals.js +69 -0
- package/dist/host/single-instance.js +105 -0
- package/dist/host/subagent-factory.js +291 -0
- package/dist/host/testkit/harness.js +283 -0
- package/dist/host/testkit/index.js +14 -0
- package/dist/host/testkit/matrix.js +302 -0
- package/dist/host/tool-policy-store.js +177 -0
- package/dist/host/triggers.js +212 -0
- package/dist/host/tui-entry.js +216 -0
- package/dist/host/webui-bridge.js +165 -0
- package/dist/issue/codes.js +38 -0
- package/dist/issue/filter.js +146 -0
- package/dist/issue/github.js +116 -0
- package/dist/issue/index.js +17 -0
- package/dist/issue/mount.js +70 -0
- package/dist/issue/poll.js +58 -0
- package/dist/issue/service.js +341 -0
- package/dist/issue/tools.js +70 -0
- package/dist/issue/types.js +34 -0
- package/dist/issue/webhook.js +126 -0
- package/dist/llm/codes.js +77 -0
- package/dist/llm/complete.js +196 -0
- package/dist/llm/events.js +15 -0
- package/dist/llm/index.js +24 -0
- package/dist/llm/inflight.js +65 -0
- package/dist/llm/model-id.js +58 -0
- package/dist/llm/provider-face.d.ts +32 -0
- package/dist/llm/provider-face.js +34 -0
- package/dist/llm/recovery.js +146 -0
- package/dist/llm/runtime.js +46 -0
- package/dist/llm/stream-fn.js +147 -0
- package/dist/lsp/codes.js +31 -0
- package/dist/lsp/connection.js +147 -0
- package/dist/lsp/frame.js +110 -0
- package/dist/lsp/index.js +16 -0
- package/dist/lsp/inject.js +58 -0
- package/dist/lsp/instance.js +264 -0
- package/dist/lsp/service.js +522 -0
- package/dist/lsp/tools.js +53 -0
- package/dist/lsp/types.js +201 -0
- package/dist/mcp/bridge.js +222 -0
- package/dist/mcp/codes.js +21 -0
- package/dist/mcp/index.js +19 -0
- package/dist/mcp/jsonrpc.js +230 -0
- package/dist/mcp/service.js +125 -0
- package/dist/mcp/tools.js +145 -0
- package/dist/mcp/types.js +108 -0
- package/dist/memory/cite.js +131 -0
- package/dist/memory/codes.js +50 -0
- package/dist/memory/command.js +71 -0
- package/dist/memory/consolidate.js +219 -0
- package/dist/memory/cycle.js +109 -0
- package/dist/memory/dao.js +878 -0
- package/dist/memory/diff.js +238 -0
- package/dist/memory/extract.js +181 -0
- package/dist/memory/fts.js +58 -0
- package/dist/memory/index.js +42 -0
- package/dist/memory/inject.js +354 -0
- package/dist/memory/merge.js +178 -0
- package/dist/memory/migration.js +132 -0
- package/dist/memory/pollution.js +59 -0
- package/dist/memory/port.js +385 -0
- package/dist/memory/review.js +201 -0
- package/dist/memory/scan.js +89 -0
- package/dist/memory/tools.js +508 -0
- package/dist/memory/types.js +140 -0
- package/dist/obs/codes.js +38 -0
- package/dist/obs/db.js +115 -0
- package/dist/obs/index.js +20 -0
- package/dist/obs/rollup.js +61 -0
- package/dist/obs/service.js +363 -0
- package/dist/obs/session-tools.js +282 -0
- package/dist/obs/session-view.js +225 -0
- package/dist/obs/tool.js +97 -0
- package/dist/obs/types.js +1 -0
- package/dist/persist/audit.js +63 -0
- package/dist/persist/aux.js +39 -0
- package/dist/persist/codes.js +35 -0
- package/dist/persist/index.js +30 -0
- package/dist/persist/load-history.js +50 -0
- package/dist/persist/migrations.js +37 -0
- package/dist/persist/paths.js +108 -0
- package/dist/persist/persistence.js +229 -0
- package/dist/persist/schema.js +99 -0
- package/dist/persist/secret-box.js +95 -0
- package/dist/persist/store.js +706 -0
- package/dist/persist/write-behind.js +238 -0
- package/dist/safety/approval.js +171 -0
- package/dist/safety/bwrap.js +123 -0
- package/dist/safety/codes.js +57 -0
- package/dist/safety/danger.js +505 -0
- package/dist/safety/gate.js +226 -0
- package/dist/safety/index.js +24 -0
- package/dist/safety/presets.js +73 -0
- package/dist/safety/roots.js +139 -0
- package/dist/safety/sandbox.js +214 -0
- package/dist/safety/seatbelt.js +88 -0
- package/dist/safety/sensitive.js +34 -0
- package/dist/safety/tool-policy.js +203 -0
- package/dist/safety/types.js +13 -0
- package/dist/scheduler/codes.js +54 -0
- package/dist/scheduler/cron-backend.js +135 -0
- package/dist/scheduler/engine.js +280 -0
- package/dist/scheduler/gates.js +60 -0
- package/dist/scheduler/index.js +25 -0
- package/dist/scheduler/migration.js +22 -0
- package/dist/scheduler/runner.js +171 -0
- package/dist/scheduler/schedule.js +193 -0
- package/dist/scheduler/service.js +283 -0
- package/dist/scheduler/tick.js +139 -0
- package/dist/scheduler/types.js +1 -0
- package/dist/sdk/http.js +865 -0
- package/dist/sdk/index.js +22 -0
- package/dist/sdk/mcp.js +289 -0
- package/dist/sdk/plugin-route-registry.js +126 -0
- package/dist/sdk/plugin-routes.js +149 -0
- package/dist/sdk/security.js +116 -0
- package/dist/sdk/types.js +32 -0
- package/dist/session/budget.js +159 -0
- package/dist/session/codes.js +40 -0
- package/dist/session/derive.js +180 -0
- package/dist/session/event-data.js +1 -0
- package/dist/session/fork.js +72 -0
- package/dist/session/import-gates.js +148 -0
- package/dist/session/index.js +18 -0
- package/dist/session/recover.js +103 -0
- package/dist/session/session.js +279 -0
- package/dist/session/snapshot.js +107 -0
- package/dist/skills/agents.js +242 -0
- package/dist/skills/codes.js +51 -0
- package/dist/skills/discovery.js +266 -0
- package/dist/skills/frontmatter.js +215 -0
- package/dist/skills/index.js +28 -0
- package/dist/skills/load.js +118 -0
- package/dist/skills/manage.js +201 -0
- package/dist/skills/registry.js +138 -0
- package/dist/skills/render.js +124 -0
- package/dist/skills/sections.js +171 -0
- package/dist/skills/types.js +21 -0
- package/dist/subagent/codes.js +50 -0
- package/dist/subagent/declarative.js +55 -0
- package/dist/subagent/index.js +19 -0
- package/dist/subagent/notify.js +51 -0
- package/dist/subagent/provide.js +7 -0
- package/dist/subagent/registry.js +149 -0
- package/dist/subagent/service.js +338 -0
- package/dist/subagent/surface.js +44 -0
- package/dist/subagent/tool.js +153 -0
- package/dist/subagent/types.js +25 -0
- package/dist/tools/apply-patch.js +164 -0
- package/dist/tools/codes.js +109 -0
- package/dist/tools/fs.js +501 -0
- package/dist/tools/index.js +17 -0
- package/dist/tools/observed.js +99 -0
- package/dist/tools/pipeline.js +176 -0
- package/dist/tools/protected-read.js +54 -0
- package/dist/tools/registry.js +250 -0
- package/dist/tools/search.js +451 -0
- package/dist/tools/worktree.js +327 -0
- package/dist/web/codes.js +37 -0
- package/dist/web/gate.js +43 -0
- package/dist/web/hygiene.js +195 -0
- package/dist/web/index.js +16 -0
- package/dist/web/service.js +207 -0
- package/dist/web/ssrf-guard.js +44 -0
- package/dist/web/tool.js +76 -0
- package/dist/web/types.js +10 -0
- package/dist/webui/assets/index-B-t2O8gh.js +22 -0
- package/dist/webui/assets/index-DOlgSZ9Q.css +2 -0
- package/dist/webui/index.html +14 -0
- package/dist/webui/index.js +14 -0
- package/dist/webui/server.js +549 -0
- package/dist/webui/types.js +38 -0
- package/examples/README.md +26 -0
- package/examples/minimal-code-plugin/entry.js +43 -0
- package/examples/minimal-code-plugin/package.json +12 -0
- package/examples/pure-skill-pack/package.json +14 -0
- package/examples/pure-skill-pack/skills/markdown-table/SKILL.md +32 -0
- package/package.json +86 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 凭证 env 引用形(03 §10.9 注入腿——c-4 落码批)。
|
|
3
|
+
*
|
|
4
|
+
* 词面:`@credentials:<name>`(值位整串精确匹配——sigil 前缀 + 凭证名)。
|
|
5
|
+
* 用户在 MCP/LSP server config 的 env 声明里以引用形代替明文:
|
|
6
|
+
* `{ "GITHUB_TOKEN": "@credentials:github-token" }`——配置与 durable 面恒
|
|
7
|
+
* 只见引用形原文,明文值只在 spawn 时刻经宿主展开进子进程环境(exec
|
|
8
|
+
* buildChildEnv 单点——模型面/插件码面/工具结果结构性不见值)。
|
|
9
|
+
*
|
|
10
|
+
* 本文件是词面**单源**(跨模块契约词汇:exec 执法消费 + credentials
|
|
11
|
+
* resolver 消费 + 用户 config 书写三方法源):放 contracts 使两消费方均
|
|
12
|
+
* 零新 DAG 边(exec 与 credentials 均既有 contracts 边)。纯数据/纯函数、
|
|
13
|
+
* jiti 可载——与 api.ts 同族纪律。
|
|
14
|
+
*
|
|
15
|
+
* v1 无转义形:以 `@credentials:` 起头的 env 值一律视为引用形(该形在
|
|
16
|
+
* env 值位无正当字面用途——逃生口挂账不需要)。
|
|
17
|
+
*/
|
|
18
|
+
/** 引用形 sigil 前缀(含冒号——`@credentials:`;名 = 前缀后的非空余段) */
|
|
19
|
+
export const CREDENTIALS_ENV_REF_PREFIX = '@credentials:';
|
|
20
|
+
/**
|
|
21
|
+
* 解析 env 值是否为凭证引用形。
|
|
22
|
+
* @param value env 声明值(set 面单值)
|
|
23
|
+
* @returns 三态解析结果——'none' 字面放行 / 'ref' 交宿主展开 / 'invalid'
|
|
24
|
+
* 前缀命中而名空(调用方以 CREDENTIALS_ENV_REF_INVALID 响亮拒)
|
|
25
|
+
*/
|
|
26
|
+
export function parseCredentialEnvRef(value) {
|
|
27
|
+
if (!value.startsWith(CREDENTIALS_ENV_REF_PREFIX)) {
|
|
28
|
+
return { kind: 'none' };
|
|
29
|
+
}
|
|
30
|
+
const name = value.slice(CREDENTIALS_ENV_REF_PREFIX.length);
|
|
31
|
+
return name === '' ? { kind: 'invalid' } : { kind: 'ref', name };
|
|
32
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 错误码注册表与单一错误基类(02 篇 §5.3 错误码族规范;07 篇 §8 表 #9 定名)。
|
|
3
|
+
*
|
|
4
|
+
* 四条族规范(02 §5.3):
|
|
5
|
+
* 1. 形态:字符串错误码(SCREAMING_SNAKE + 模块前缀族),不搞兼容、定死一条路线;
|
|
6
|
+
* 2. 注册目录:错误码与事件类型同一纪律——contracts 显式注册、运行时可枚举、
|
|
7
|
+
* CI 校验抛出/写入点一致;插件扩展错误码同样显式注册,禁止字符串字面量散落;
|
|
8
|
+
* 3. 进程内载体:全仓单基类 BaseError(Error 子类,{ code, message, cause? })——
|
|
9
|
+
* 类不是词汇、码才是身份;禁止每码一类,catch 一律按 code 分派;
|
|
10
|
+
* 4. durable 事件内一律写码:错误信息 = code + 人读 message(日志自描述)。
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* 全仓单一错误基类(07 篇 §8 表 #9 定名,2026-09-05 冷读闸补定)。
|
|
14
|
+
*
|
|
15
|
+
* 用法约定:catch 一律按 `err instanceof BaseError && err.code === 'XXX'` 分派
|
|
16
|
+
* (或直接读 code 字段判别——码才是身份,类只作载体);禁止为单个错误码派生子类。
|
|
17
|
+
*/
|
|
18
|
+
export declare class BaseError extends Error {
|
|
19
|
+
/** 错误码身份(SCREAMING_SNAKE + 模块前缀,注册表成员) */
|
|
20
|
+
readonly code: string;
|
|
21
|
+
/**
|
|
22
|
+
* @param code 错误码(须已在注册表——本构造器不拦截,注册纪律由写入点与 CI 执法)
|
|
23
|
+
* @param message 人读错误信息(与 code 一道进 durable 事件的错误腿)
|
|
24
|
+
* @param options.cause 底层异常(可选;Error 原生 cause 语义)
|
|
25
|
+
*/
|
|
26
|
+
constructor(code: string, message: string, options?: {
|
|
27
|
+
cause?: unknown;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/** 错误码目录条目(可枚举目录 = 注册表值形态) */
|
|
31
|
+
export interface ErrorCodeInfo {
|
|
32
|
+
/** 错误码(SCREAMING_SNAKE + 模块前缀) */
|
|
33
|
+
code: string;
|
|
34
|
+
/** 归属模块(宿主件名或插件 id)——CI 对账「抛出/写入点一致」的依据 */
|
|
35
|
+
module: string;
|
|
36
|
+
/** 中文语义描述(生成目录用) */
|
|
37
|
+
description: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 错误码前缀族明列(02 篇 §5.3 #1)——文档性常量,供注册面校验与 CI 目录生成;
|
|
41
|
+
* 'HOST_' 系装配根码族(单活跃机 HOST_DATA_DIR_BUSY 等,07 篇 §1 定名位)。
|
|
42
|
+
*/
|
|
43
|
+
export declare const ERROR_CODE_PREFIXES: readonly ["TOOL_", "FS_", "SESSION_", "SANDBOX_", "LLM_", "EXEC_", "PROVIDER_", "APPROVAL_", "CHANNEL_", "WEB_", "CONTEXT_", "SKILLS_", "PLUGIN_", "HOST_", "PERSIST_", "API_", "AGENT_", "SDK_", "SCHEDULER_", "GOAL_", "SUBAGENT_", "JOB_", "TRIGGER_", "CREDENTIALS_", "DANGER_", "UI_"];
|
|
44
|
+
/**
|
|
45
|
+
* 注册错误码(宿主件落码批与插件装载面的统一入口)。
|
|
46
|
+
*
|
|
47
|
+
* 同码重复注册即抛(fail-loud——防两模块抢码/插件伪造宿主码;冲突属装配期
|
|
48
|
+
* 执法,归 host 码族 HOST_ERROR_CODE_CONFLICT)。
|
|
49
|
+
*/
|
|
50
|
+
export declare function registerErrorCodes(infos: readonly ErrorCodeInfo[]): void;
|
|
51
|
+
/** 判别错误码是否已注册(catch 面 code 分派前的目录查询) */
|
|
52
|
+
export declare function isKnownErrorCode(code: string): boolean;
|
|
53
|
+
/** 错误码目录条目查询(未注册返回 undefined) */
|
|
54
|
+
export declare function getErrorCodeInfo(code: string): ErrorCodeInfo | undefined;
|
|
55
|
+
/** 全量目录枚举(生成目录 / CI 校验用) */
|
|
56
|
+
export declare function listErrorCodes(): ErrorCodeInfo[];
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 错误码注册表与单一错误基类(02 篇 §5.3 错误码族规范;07 篇 §8 表 #9 定名)。
|
|
3
|
+
*
|
|
4
|
+
* 四条族规范(02 §5.3):
|
|
5
|
+
* 1. 形态:字符串错误码(SCREAMING_SNAKE + 模块前缀族),不搞兼容、定死一条路线;
|
|
6
|
+
* 2. 注册目录:错误码与事件类型同一纪律——contracts 显式注册、运行时可枚举、
|
|
7
|
+
* CI 校验抛出/写入点一致;插件扩展错误码同样显式注册,禁止字符串字面量散落;
|
|
8
|
+
* 3. 进程内载体:全仓单基类 BaseError(Error 子类,{ code, message, cause? })——
|
|
9
|
+
* 类不是词汇、码才是身份;禁止每码一类,catch 一律按 code 分派;
|
|
10
|
+
* 4. durable 事件内一律写码:错误信息 = code + 人读 message(日志自描述)。
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* 全仓单一错误基类(07 篇 §8 表 #9 定名,2026-09-05 冷读闸补定)。
|
|
14
|
+
*
|
|
15
|
+
* 用法约定:catch 一律按 `err instanceof BaseError && err.code === 'XXX'` 分派
|
|
16
|
+
* (或直接读 code 字段判别——码才是身份,类只作载体);禁止为单个错误码派生子类。
|
|
17
|
+
*/
|
|
18
|
+
export class BaseError extends Error {
|
|
19
|
+
/** 错误码身份(SCREAMING_SNAKE + 模块前缀,注册表成员) */
|
|
20
|
+
code;
|
|
21
|
+
/**
|
|
22
|
+
* @param code 错误码(须已在注册表——本构造器不拦截,注册纪律由写入点与 CI 执法)
|
|
23
|
+
* @param message 人读错误信息(与 code 一道进 durable 事件的错误腿)
|
|
24
|
+
* @param options.cause 底层异常(可选;Error 原生 cause 语义)
|
|
25
|
+
*/
|
|
26
|
+
constructor(code, message, options) {
|
|
27
|
+
super(message, options);
|
|
28
|
+
this.name = 'BaseError';
|
|
29
|
+
this.code = code;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 错误码前缀族明列(02 篇 §5.3 #1)——文档性常量,供注册面校验与 CI 目录生成;
|
|
34
|
+
* 'HOST_' 系装配根码族(单活跃机 HOST_DATA_DIR_BUSY 等,07 篇 §1 定名位)。
|
|
35
|
+
*/
|
|
36
|
+
export const ERROR_CODE_PREFIXES = [
|
|
37
|
+
'TOOL_',
|
|
38
|
+
'FS_',
|
|
39
|
+
'SESSION_',
|
|
40
|
+
'SANDBOX_',
|
|
41
|
+
'LLM_',
|
|
42
|
+
'EXEC_',
|
|
43
|
+
'PROVIDER_',
|
|
44
|
+
'APPROVAL_',
|
|
45
|
+
'CHANNEL_',
|
|
46
|
+
'WEB_',
|
|
47
|
+
'CONTEXT_',
|
|
48
|
+
'SKILLS_',
|
|
49
|
+
'PLUGIN_',
|
|
50
|
+
'HOST_',
|
|
51
|
+
'PERSIST_',
|
|
52
|
+
'API_',
|
|
53
|
+
'AGENT_',
|
|
54
|
+
'SDK_',
|
|
55
|
+
'SCHEDULER_',
|
|
56
|
+
'GOAL_',
|
|
57
|
+
'SUBAGENT_',
|
|
58
|
+
'JOB_',
|
|
59
|
+
'TRIGGER_',
|
|
60
|
+
'CREDENTIALS_',
|
|
61
|
+
'DANGER_',
|
|
62
|
+
'UI_',
|
|
63
|
+
];
|
|
64
|
+
/**
|
|
65
|
+
* 宿主核心错误码首批清单(规范已定名者全列;各模块落码批随纵切逐批增补——
|
|
66
|
+
* 增补走 registerErrorCodes 显式注册,禁止字面量散落)。
|
|
67
|
+
*/
|
|
68
|
+
const CORE_ERROR_CODES = [
|
|
69
|
+
{
|
|
70
|
+
code: 'SESSION_UNKNOWN_EVENT_TYPE',
|
|
71
|
+
module: 'session',
|
|
72
|
+
description: 'append 词汇检查红:事件类型未在词汇注册表(fail-loud 宁崩不默默丢)',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
code: 'SESSION_EVENT_OVER_BUDGET',
|
|
76
|
+
module: 'session',
|
|
77
|
+
description: '单条事件 JSON 序列化超 60KiB 硬帽(预算刀只裁腿不改判的触发标记)',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
code: 'SESSION_CORE_TYPE_FORBIDDEN',
|
|
81
|
+
module: 'session',
|
|
82
|
+
description: '核心事件词身份拒绝装载面注册/伪造(双闸判据同源,05 篇 §1.1)',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
code: 'SESSION_NOT_FOUND',
|
|
86
|
+
module: 'session',
|
|
87
|
+
description: '线/接口面命中不存在的会话(批 13b 随 SDK 请求面受理注册——webui 404 同语义)',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
code: 'SESSION_CLOSED',
|
|
91
|
+
module: 'session',
|
|
92
|
+
description: '线/接口面向已闭会话新发拒收(回放读面不受限——批 13b 随 SDK 请求面受理注册)',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
code: 'HOST_DATA_DIR_BUSY',
|
|
96
|
+
module: 'host',
|
|
97
|
+
description: '单活跃机拒启:同数据目录活跃标记在场且 pid 活(fail-loud 不降级)',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
code: 'HOST_ERROR_CODE_CONFLICT',
|
|
101
|
+
module: 'host',
|
|
102
|
+
description: '错误码注册冲突:同码被两方注册(装配期 fail-loud)',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
code: 'HOST_EVENT_TYPE_CONFLICT',
|
|
106
|
+
module: 'host',
|
|
107
|
+
description: '事件类型注册冲突:同型被两方注册(保留位——装载面撞名经 registerSessionEventType 动词走 PLUGIN_EVENT_TYPE_CONFLICT〔03 §2.7 指派〕,宿主装配期独立注册路径 v1 缺席;码在册不回收,宿主侧路径出现即启用)',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
code: 'PLUGIN_SHAPE_INVALID',
|
|
111
|
+
module: 'host',
|
|
112
|
+
description: '插件入口形状无效:entry 缺席且无声明载荷时 main default export 缺失/不可解析(03 篇入口解析序③)',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
code: 'API_VERSION_MISMATCH',
|
|
116
|
+
module: 'host',
|
|
117
|
+
description: '装载门版本不符拒载:宿主 API 版本低于清单 min,或点火后清单缺 api 块(03 篇 §8.4)',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
code: 'API_EXPERIMENTAL_UNDECLARED',
|
|
121
|
+
module: 'host',
|
|
122
|
+
description: '插件消费实验档(experimental)API 符号但清单 api 块未声明该键(03 篇 §8.4)',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
code: 'API_VERSION_MALFORMED',
|
|
126
|
+
module: 'host',
|
|
127
|
+
description: 'api 块版本串坏形(非 x.y 整数点分两段;03 篇 §8.4 坏形防御)',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
code: 'API_CAPABILITY_MISSING',
|
|
131
|
+
module: 'host',
|
|
132
|
+
description: '(预留)宿主能力面缺席清单所需能力——可选件构建差能力分叉日启用,结构化 message 载缺席能力名清单',
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
code: 'UI_ASK_UNANCHORED',
|
|
136
|
+
module: 'host',
|
|
137
|
+
description: 'ctx.ui 阻塞原语(confirm/select/input)无会话锚拒:装载期/无锚后台语境 opts.sessionId 缺席且无 ambient 命令锚(07 §4.3 消费腿条款档位 2)',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
code: 'UI_ASK_SESSION_CLOSED',
|
|
141
|
+
module: 'host',
|
|
142
|
+
description: 'ctx.ui 阻塞原语显式锚受理时会话不在通道核在册集拒:未 registerSession 或已 unregisterSession——命令尾链陈年锚晚到不悬死(07 §4.3 档位 2 锚时效)',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
code: 'UI_ASK_WINDOW_INVALID',
|
|
146
|
+
module: 'host',
|
|
147
|
+
description: '钩子派发窗内调 ctx.ui 阻塞三件拒:判序窗判前置锚判(窗内即使显式 sessionId 亦拒——撞的是派发序非锚定面,03 §3.4 钩子窗执法同形扩位)',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
code: 'AGENT_CONTINUE_INVALID',
|
|
151
|
+
module: 'agent',
|
|
152
|
+
description: 'continueRun 末角色校验红:末消息经 convertToLlm 转换后非 user/toolResult(04 篇 §2 入口两式)',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
code: 'AGENT_ROLE_EXISTS',
|
|
156
|
+
module: 'agent',
|
|
157
|
+
description: '自定义消息角色撞名:标准角色名或既有在册自定义角色(03 篇 §2.7 消息面拒绝式)',
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
code: 'AGENT_ROLE_INVALID',
|
|
161
|
+
module: 'agent',
|
|
162
|
+
description: '自定义消息角色名违域名前缀两段式纪律(恰含一个 /、两段均小写字母数字连字符)',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
code: 'CHANNEL_COMMAND_INVALID',
|
|
166
|
+
module: 'channels',
|
|
167
|
+
description: '命令名词法违例拒注册:主段连字符式 + 可选冒号子段(03 篇 §2.2 签名定形——撞名后写胜出不拒、词法违例拒)',
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
code: 'CHANNEL_BACKEND_RESERVED',
|
|
171
|
+
module: 'channels',
|
|
172
|
+
description: '插件注册界面后端 id 撞宿主域拒——后端 id 分域律执法(03 篇 §2.7:宿主后端宿主装配独占、插件结构性不可顶替;07 篇 §4 宿主后端恒在场条款执法承载)',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
code: 'SDK_PROTOCOL_MISMATCH',
|
|
176
|
+
module: 'sdk',
|
|
177
|
+
description: '线协议版本握手拒连:双方 protocolVersion 不匹配 fail-loud(03 篇 §10.6 线协议⑤)',
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
code: 'SDK_SESSION_BUSY',
|
|
181
|
+
module: 'sdk',
|
|
182
|
+
description: '会话受理竞态拒收档:并发 prompt 路由不可行态专用(03 篇 §10.6 请求面——驱动侧单源路由缺省吞并发)',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
code: 'SDK_MESSAGE_CONFLICT',
|
|
186
|
+
module: 'sdk',
|
|
187
|
+
description: '幂等 admit 异内容:同 messageId 异内容拒收(03 篇 §10.6 线协议④——同 ID 同内容幂等重收执不重跑)',
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
code: 'SDK_OVERLOADED',
|
|
191
|
+
module: 'sdk',
|
|
192
|
+
description: '线面出站过载:有界队列溢出拒收、可重试(03 篇 §10.6 线协议⑦——载荷携 retryAfter)',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
code: 'SDK_CURSOR_INVALID',
|
|
196
|
+
module: 'sdk',
|
|
197
|
+
description: '线面游标非法形:after 越高水位 / 崩溃截尾后旧游标作废(05 篇 §3.5——调用方从头或 getEntries 重对账)',
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
code: 'SDK_DECODE',
|
|
201
|
+
module: 'sdk',
|
|
202
|
+
description: 'HTTP 体解码/深校验拒(03 §10.6 批 13e-2 定形⑤——stdio 形坏行 warn 跳过不杀连接,HTTP 形 400 携错误帧)',
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
code: 'SDK_UNAUTHORIZED',
|
|
206
|
+
module: 'sdk',
|
|
207
|
+
description: 'HTTP 面鉴权失败:token 配置在场而凭证缺席/不符(03 §10.6 批 13e-2 定形⑤——Bearer 形携 token)',
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
code: 'SDK_FORBIDDEN',
|
|
211
|
+
module: 'sdk',
|
|
212
|
+
description: 'HTTP 面 Host/Origin 防线拒(03 §10.6 批 13e-2 定形⑤——回环钉死三防线 10.4 同律)',
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
code: 'SDK_ROUTE_PATH_RESERVED',
|
|
216
|
+
module: 'sdk',
|
|
217
|
+
description: '插件道路由 path 撞保留前缀闭集(/v1/·/plugins/)或越域坏形拒——前缀拼合单源执法的防御性回弹层(03 §10.6 U5 定形注:执法位本在 core: 道注册器,插件道经前缀施加律结构性框死于 /plugins/<id>/ 之下)',
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
code: 'SDK_ROUTE_AUTH_FORBIDDEN',
|
|
221
|
+
module: 'sdk',
|
|
222
|
+
description: '插件道申报不可用鉴权档拒——self 与 open{purpose:auth-exchange} 两逃生档不对插件道开放(03 §10.6 U5 收窄四件①)',
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
code: 'SDK_ROUTE_BODY_LIMIT',
|
|
226
|
+
module: 'sdk',
|
|
227
|
+
description: '插件道路由 bodyLimitBytes 超钳帽拒——须正整数且 ≤1MiB 可小不可大、缺席即 1MiB 受理面填值(03 §10.6 U5 收窄四件③:防面级缺省 10MiB 静默穿透)',
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
code: 'SDK_ROUTE_LIMIT_REACHED',
|
|
231
|
+
module: 'sdk',
|
|
232
|
+
description: '插件道路由数帽 16 per-plugin 达帽拒——受理面计数、摘除 fn 释放后可再注册(03 §10.6 U5 收窄四件④;门检/窗外/查重三拒复用既有码零新立)',
|
|
233
|
+
},
|
|
234
|
+
];
|
|
235
|
+
/** 注册表本体(code → 目录条目);模块加载时灌入核心码,插件码经 registerErrorCodes 入 */
|
|
236
|
+
const registry = new Map();
|
|
237
|
+
for (const info of CORE_ERROR_CODES)
|
|
238
|
+
registry.set(info.code, info);
|
|
239
|
+
/**
|
|
240
|
+
* 注册错误码(宿主件落码批与插件装载面的统一入口)。
|
|
241
|
+
*
|
|
242
|
+
* 同码重复注册即抛(fail-loud——防两模块抢码/插件伪造宿主码;冲突属装配期
|
|
243
|
+
* 执法,归 host 码族 HOST_ERROR_CODE_CONFLICT)。
|
|
244
|
+
*/
|
|
245
|
+
export function registerErrorCodes(infos) {
|
|
246
|
+
for (const info of infos) {
|
|
247
|
+
const existing = registry.get(info.code);
|
|
248
|
+
if (existing) {
|
|
249
|
+
const by = existing.module === info.module ? '同模块' : `${existing.module}(彼) vs ${info.module}(此)`;
|
|
250
|
+
throw new BaseError('HOST_ERROR_CODE_CONFLICT', `错误码 ${info.code} 重复注册:${by}——码身份唯一,先改注册面再注册`);
|
|
251
|
+
}
|
|
252
|
+
registry.set(info.code, info);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/** 判别错误码是否已注册(catch 面 code 分派前的目录查询) */
|
|
256
|
+
export function isKnownErrorCode(code) {
|
|
257
|
+
return registry.has(code);
|
|
258
|
+
}
|
|
259
|
+
/** 错误码目录条目查询(未注册返回 undefined) */
|
|
260
|
+
export function getErrorCodeInfo(code) {
|
|
261
|
+
return registry.get(code);
|
|
262
|
+
}
|
|
263
|
+
/** 全量目录枚举(生成目录 / CI 校验用) */
|
|
264
|
+
export function listErrorCodes() {
|
|
265
|
+
return [...registry.values()];
|
|
266
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 会话事件词汇注册表(05 篇 §1.1 事件类型清单——35 核心词全列,
|
|
3
|
+
* compaction 三词 2026-09-06 纵切批增补、compaction/fallback 2026-09-09
|
|
4
|
+
* U4 落码批入册、session/thinking-level 同日遗漏
|
|
5
|
+
* 审计批回填〔05 行 66 agent 纵切批已定名而注册表漏登〕、plugin/opens·
|
|
6
|
+
* capability/used 2026-09-08 U3 落码批入册〔05 行 70-71 开门制两审计词——
|
|
7
|
+
* 载体 = 进程级 durable 审计流(05 §9 audit_events,非会话 append 面),
|
|
8
|
+
* 入册即得核心词身份双闸(U3-0 台账 R-2)〕、session/paused 2026-09-11
|
|
9
|
+
* 无人值守深化批 u-3 入册〔核心词 33〕、credentials/changed 同日 ix-4
|
|
10
|
+
* 补注册〔c-1 立词而注册表漏行——/plugins config 表单腿 e2e 走真装配
|
|
11
|
+
* audit 词汇闸 fail-loud 抓出;核心词 34〕、compaction/skip 2026-09-13
|
|
12
|
+
* obs-b 压缩判据观测批入册〔05 §1.1 五门 skip 词——fire 而被门挡才落;
|
|
13
|
+
* 核心词 35〕)。
|
|
14
|
+
*
|
|
15
|
+
* 双入口纪律:核心词汇本表静态声明(含类别/归属/语义),插件扩展经
|
|
16
|
+
* registerEventType 显式注册;session append 词汇检查(未注册类型抛
|
|
17
|
+
* SESSION_UNKNOWN_EVENT_TYPE)以本注册表为判据。
|
|
18
|
+
*
|
|
19
|
+
* 类别四分法(05 §1.1 收口):
|
|
20
|
+
* - surface:构成派生表面(模型历史投影输入);
|
|
21
|
+
* - snapshot:请求重建证据(request/header),不进模型历史;
|
|
22
|
+
* - log-only:审计与状态恢复用,永不进模型历史;
|
|
23
|
+
* - structure:日志骨架标记(turn 边界/种子边界)——不进模型历史,
|
|
24
|
+
* 但是 fold 的判定输入(「不进模型历史」与「fold 不读」是两回事)。
|
|
25
|
+
*/
|
|
26
|
+
import type { ApiTier } from './api.js';
|
|
27
|
+
/** 事件类别四分法闭集(类别列口径与 05 §3.1 投影执法对齐) */
|
|
28
|
+
export declare const EVENT_CATEGORIES: readonly ["surface", "snapshot", "log-only", "structure"];
|
|
29
|
+
export type EventCategory = (typeof EVENT_CATEGORIES)[number];
|
|
30
|
+
/** 事件类型目录条目(注册表值形态) */
|
|
31
|
+
export interface EventTypeMeta {
|
|
32
|
+
/** 事件类型词汇(如 'user/message') */
|
|
33
|
+
type: string;
|
|
34
|
+
/** 类别四分法归属 */
|
|
35
|
+
category: EventCategory;
|
|
36
|
+
/**
|
|
37
|
+
* 注册者归属(宿主件名或插件 id)——「逐事件注册者以表内注记为准」
|
|
38
|
+
* (05 §1.1 表注):CI 校验抛出/写入点一致的依据。
|
|
39
|
+
*/
|
|
40
|
+
owner: string;
|
|
41
|
+
/**
|
|
42
|
+
* API 稳定性 tier(必填——零隐式 API 载体:目录宿主符号三级标签之一,
|
|
43
|
+
* TS 编译期即红;03 篇 §8.3 标级载体分职。核心 16 词全 stable——
|
|
44
|
+
* 会话事件词汇是已收口契约面)。
|
|
45
|
+
*/
|
|
46
|
+
tier: ApiTier;
|
|
47
|
+
/** 中文语义描述(生成目录用) */
|
|
48
|
+
description: string;
|
|
49
|
+
/** true = 读侧可以不认识此类型(向前兼容);缺省 = 必须认识(核心词全部不 ignorable) */
|
|
50
|
+
ignorable?: boolean;
|
|
51
|
+
}
|
|
52
|
+
/** 核心词类型名清单(核心词保护判据——registerEventType 拒收) */
|
|
53
|
+
export declare const CORE_EVENT_TYPE_NAMES: readonly string[];
|
|
54
|
+
/**
|
|
55
|
+
* 注册事件类型(插件扩展唯一入口;宿主件自管类型已列核心表)。
|
|
56
|
+
*
|
|
57
|
+
* 两类拒收(均 fail-loud):
|
|
58
|
+
* - 核心词身份:SESSION_CORE_TYPE_FORBIDDEN(防装载面伪造宿主词汇——
|
|
59
|
+
* 与 session append 侧词汇检查同判据双闸);
|
|
60
|
+
* - 注册冲突:PLUGIN_EVENT_TYPE_CONFLICT(03 §2.7 指派——装载面统一
|
|
61
|
+
* 插件域码:core 件与用户插件同走 registerSessionEventType 动词,
|
|
62
|
+
* 撞名按动词域拒收不分调用方身份)。
|
|
63
|
+
*/
|
|
64
|
+
export declare function registerEventType(meta: EventTypeMeta): void;
|
|
65
|
+
/** 判别事件类型是否已注册(session append 词汇检查的判据源) */
|
|
66
|
+
export declare function isKnownEventType(type: string): boolean;
|
|
67
|
+
/** 事件类型目录条目查询(未注册返回 undefined;类别/归属消费面用) */
|
|
68
|
+
export declare function getEventTypeMeta(type: string): EventTypeMeta | undefined;
|
|
69
|
+
/** 全量目录枚举(生成目录 / CI 校验用) */
|
|
70
|
+
export declare function listEventTypes(): EventTypeMeta[];
|