@jangts/agent-core 0.3.6 → 0.5.0

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.
Files changed (214) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +5 -5
  3. package/development/docs/README.en.md +2 -2
  4. package/development/docs/acceptance.en.md +2 -2
  5. package/development/docs/agent-development.en.md +1 -1
  6. package/development/docs/api/README.en.md +4 -2
  7. package/development/docs/api/README.md +2 -0
  8. package/development/docs/api/configuration-in-workflow.en.md +403 -0
  9. package/development/docs/api/configuration-in-workflow.md +403 -0
  10. package/development/docs/api/core.en.md +7 -7
  11. package/development/docs/api/core.md +6 -6
  12. package/development/docs/api/decorators.en.md +20 -0
  13. package/development/docs/api/decorators.md +20 -0
  14. package/development/docs/api/examples.en.md +1 -1
  15. package/development/docs/api/examples.md +1 -1
  16. package/development/docs/api/kits.en.md +22 -4
  17. package/development/docs/api/kits.md +22 -4
  18. package/development/docs/api/knowledge-answering.en.md +4 -1
  19. package/development/docs/api/knowledge-answering.md +4 -1
  20. package/development/docs/api/mock.en.md +2 -0
  21. package/development/docs/api/mock.md +2 -0
  22. package/development/docs/api/reference.en.md +508 -410
  23. package/development/docs/api/reference.md +508 -410
  24. package/development/docs/api/support.en.md +55 -9
  25. package/development/docs/api/support.md +53 -7
  26. package/development/docs/api/types.en.md +35 -1
  27. package/development/docs/api/types.md +43 -0
  28. package/development/docs/basic-usage.en.md +1 -1
  29. package/development/docs/basic-usage.md +1 -1
  30. package/development/docs/create-app.en.md +1 -1
  31. package/development/docs/examples/registration/associated.mjs +8 -0
  32. package/development/docs/examples/registration/independent.mjs +20 -0
  33. package/development/docs/examples/registration/protocol.mjs +48 -0
  34. package/development/docs/examples/registration/run.mjs +47 -0
  35. package/development/docs/examples/registration/tools.mjs +75 -0
  36. package/development/docs/examples/registration/workflow.mjs +109 -0
  37. package/development/docs/flows/knowledge-maintenance.en.md +1 -1
  38. package/development/docs/materials.en.md +1 -1
  39. package/development/docs/mechanisms.en.md +2 -2
  40. package/development/docs/mechanisms.md +1 -1
  41. package/development/docs/operations.en.md +1 -1
  42. package/development/docs/records.en.md +1 -1
  43. package/development/docs/registration.en.md +4 -4
  44. package/development/docs/registration.md +2 -2
  45. package/development/skills/agent-core-app/SKILL.md +4 -4
  46. package/development/skills/agent-core-app/templates/node-ts/README.md.tpl +1 -1
  47. package/development/skills/agent-core-app/templates/node-ts/src/catalog.ts.tpl +2 -2
  48. package/development/skills/agent-core-app/templates/node-ts/test/app.test.mjs.tpl +1 -1
  49. package/dist/cjs/capabilities/index.js +5 -12
  50. package/dist/cjs/capabilities/model.js +56 -12
  51. package/dist/cjs/capabilities/tool-conditions.js +65 -0
  52. package/dist/cjs/capabilities/tool-runtime.js +10 -3
  53. package/dist/cjs/context/audit.js +5 -8
  54. package/dist/cjs/context/index.js +3 -4
  55. package/dist/cjs/index.js +21 -17
  56. package/dist/cjs/kits/answering/tasks.js +5 -5
  57. package/dist/cjs/kits/domains/catalog.js +113 -0
  58. package/dist/cjs/kits/domains/index.js +20 -0
  59. package/dist/cjs/kits/{intents → domains}/registry.js +77 -31
  60. package/dist/cjs/kits/{intents → domains}/scopes.js +21 -21
  61. package/dist/cjs/kits/index.js +14 -13
  62. package/dist/cjs/kits/presentation/formats.js +110 -0
  63. package/dist/cjs/kits/presentation/index.js +10 -5
  64. package/dist/cjs/kits/reflection.js +2 -2
  65. package/dist/cjs/kits/text-blocks.js +101 -0
  66. package/dist/cjs/kits/tools.js +246 -158
  67. package/dist/cjs/model/index.js +2 -6
  68. package/dist/cjs/model/interactions/calls.js +61 -0
  69. package/dist/cjs/model/interactions/json-object.js +11 -11
  70. package/dist/cjs/model/interactions/native-functions.js +17 -23
  71. package/dist/cjs/model/message-diagnostics.js +13 -3
  72. package/dist/cjs/model/options.js +2 -0
  73. package/dist/cjs/model/preparation.js +39 -6
  74. package/dist/cjs/model/runner.js +14 -0
  75. package/dist/cjs/model/selection-transport.js +4 -4
  76. package/dist/cjs/model/token-budget.js +3 -0
  77. package/dist/cjs/model/transports.js +3 -2
  78. package/dist/cjs/structs/index.js +7 -6
  79. package/dist/cjs/structs/kits/presentation/formats.js +2 -0
  80. package/dist/cjs/structs/kits/text-blocks.js +11 -0
  81. package/dist/cjs/structs/model/session.js +11 -0
  82. package/dist/cjs/structs/support/associations.js +2 -0
  83. package/dist/cjs/support/associations.js +79 -0
  84. package/dist/cjs/support/context/snapshot.js +11 -1
  85. package/dist/cjs/support/decorators/index.js +45 -3
  86. package/dist/cjs/support/index.js +1 -0
  87. package/dist/cjs/support/model/capabilities.js +35 -5
  88. package/dist/cjs/support/model/chat-completions.js +11 -2
  89. package/dist/cjs/support/model/completion/calls.js +10 -56
  90. package/dist/cjs/support/model/preview-rules.js +11 -11
  91. package/dist/cjs/support/model/reply-preview.js +3 -3
  92. package/dist/cjs/support/model/session.js +152 -0
  93. package/dist/cjs/support/model/stage-transport.js +8 -8
  94. package/dist/cjs/support/model/transports.js +5 -2
  95. package/dist/cjs/support/tools.js +42 -17
  96. package/dist/esm/capabilities/index.d.ts +5 -10
  97. package/dist/esm/capabilities/index.js +5 -9
  98. package/dist/esm/capabilities/model.d.ts +17 -13
  99. package/dist/esm/capabilities/model.js +54 -10
  100. package/dist/esm/capabilities/tool-conditions.d.ts +9 -0
  101. package/dist/esm/capabilities/tool-conditions.js +59 -0
  102. package/dist/esm/capabilities/tool-runtime.js +10 -3
  103. package/dist/esm/capabilities/tools.d.ts +3 -3
  104. package/dist/esm/context/audit.js +5 -8
  105. package/dist/esm/context/index.d.ts +3 -4
  106. package/dist/esm/context/index.js +3 -4
  107. package/dist/esm/index.d.ts +19 -13
  108. package/dist/esm/index.js +18 -15
  109. package/dist/esm/kits/answering/tasks.d.ts +6 -6
  110. package/dist/esm/kits/answering/tasks.js +5 -5
  111. package/dist/esm/kits/domains/catalog.d.ts +42 -0
  112. package/dist/esm/kits/domains/catalog.js +110 -0
  113. package/dist/esm/kits/domains/index.d.ts +4 -0
  114. package/dist/esm/kits/domains/index.js +4 -0
  115. package/dist/esm/kits/domains/registry.d.ts +100 -0
  116. package/dist/esm/kits/{intents → domains}/registry.js +77 -31
  117. package/dist/esm/kits/{intents → domains}/scopes.d.ts +18 -18
  118. package/dist/esm/kits/{intents → domains}/scopes.js +21 -21
  119. package/dist/esm/kits/index.d.ts +6 -5
  120. package/dist/esm/kits/index.js +6 -5
  121. package/dist/esm/kits/presentation/formats.d.ts +42 -0
  122. package/dist/esm/kits/presentation/formats.js +105 -0
  123. package/dist/esm/kits/presentation/index.d.ts +14 -5
  124. package/dist/esm/kits/presentation/index.js +10 -5
  125. package/dist/esm/kits/reflection.js +3 -3
  126. package/dist/esm/kits/text-blocks.d.ts +24 -0
  127. package/dist/esm/kits/text-blocks.js +97 -0
  128. package/dist/esm/kits/tools.d.ts +69 -52
  129. package/dist/esm/kits/tools.js +246 -158
  130. package/dist/esm/model/index.d.ts +2 -6
  131. package/dist/esm/model/index.js +2 -6
  132. package/dist/esm/model/interactions/calls.d.ts +40 -0
  133. package/dist/esm/model/interactions/calls.js +58 -0
  134. package/dist/esm/model/interactions/json-object.js +11 -11
  135. package/dist/esm/model/interactions/native-functions.js +17 -23
  136. package/dist/esm/model/message-diagnostics.d.ts +6 -5
  137. package/dist/esm/model/message-diagnostics.js +13 -3
  138. package/dist/esm/model/options.js +2 -0
  139. package/dist/esm/model/preparation.js +39 -6
  140. package/dist/esm/model/runner.js +14 -0
  141. package/dist/esm/model/selection-transport.js +4 -4
  142. package/dist/esm/model/token-budget.js +3 -0
  143. package/dist/esm/model/transports.d.ts +2 -1
  144. package/dist/esm/model/transports.js +3 -2
  145. package/dist/esm/structs/capabilities/invocation.d.ts +1 -1
  146. package/dist/esm/structs/capabilities/model.d.ts +42 -11
  147. package/dist/esm/structs/capabilities/tools.d.ts +9 -4
  148. package/dist/esm/structs/common.d.ts +1 -1
  149. package/dist/esm/structs/index.d.ts +7 -6
  150. package/dist/esm/structs/index.js +7 -6
  151. package/dist/esm/structs/kits/answering/tasks.d.ts +2 -2
  152. package/dist/esm/structs/kits/{intents → domains}/catalog.d.ts +20 -20
  153. package/dist/esm/structs/kits/{intents → domains}/registry.d.ts +24 -21
  154. package/dist/esm/structs/kits/{intents → domains}/scopes.d.ts +9 -9
  155. package/dist/esm/structs/kits/presentation/formats.d.ts +42 -0
  156. package/dist/esm/structs/kits/presentation/formats.js +1 -0
  157. package/dist/esm/structs/kits/text-blocks.d.ts +25 -0
  158. package/dist/esm/structs/kits/text-blocks.js +10 -0
  159. package/dist/esm/structs/kits/tools.d.ts +82 -83
  160. package/dist/esm/structs/model/interactions.d.ts +18 -11
  161. package/dist/esm/structs/model/messages.d.ts +34 -2
  162. package/dist/esm/structs/model/runtime.d.ts +7 -0
  163. package/dist/esm/structs/model/session.d.ts +29 -0
  164. package/dist/esm/structs/model/session.js +10 -0
  165. package/dist/esm/structs/support/associations.d.ts +22 -0
  166. package/dist/esm/structs/support/associations.js +1 -0
  167. package/dist/esm/structs/support/model/interactions.d.ts +2 -2
  168. package/dist/esm/structs/support/model/messages.d.ts +6 -13
  169. package/dist/esm/structs/support/tools.d.ts +23 -23
  170. package/dist/esm/support/associations.d.ts +26 -0
  171. package/dist/esm/support/associations.js +76 -0
  172. package/dist/esm/support/context/snapshot.js +11 -1
  173. package/dist/esm/support/decorators/index.d.ts +13 -2
  174. package/dist/esm/support/decorators/index.js +40 -3
  175. package/dist/esm/support/decorators/pool.d.ts +6 -5
  176. package/dist/esm/support/decorators/types.d.ts +3 -1
  177. package/dist/esm/support/index.d.ts +1 -0
  178. package/dist/esm/support/index.js +1 -0
  179. package/dist/esm/support/model/capabilities.d.ts +8 -3
  180. package/dist/esm/support/model/capabilities.js +35 -5
  181. package/dist/esm/support/model/chat-completions.js +11 -2
  182. package/dist/esm/support/model/completion/calls.d.ts +6 -34
  183. package/dist/esm/support/model/completion/calls.js +8 -55
  184. package/dist/esm/support/model/index.d.ts +1 -1
  185. package/dist/esm/support/model/preview-rules.d.ts +13 -8
  186. package/dist/esm/support/model/preview-rules.js +11 -11
  187. package/dist/esm/support/model/reply-preview.d.ts +2 -2
  188. package/dist/esm/support/model/reply-preview.js +3 -3
  189. package/dist/esm/support/model/session.d.ts +61 -0
  190. package/dist/esm/support/model/session.js +148 -0
  191. package/dist/esm/support/model/stage-transport.d.ts +1 -1
  192. package/dist/esm/support/model/stage-transport.js +9 -9
  193. package/dist/esm/support/model/transports.d.ts +2 -0
  194. package/dist/esm/support/model/transports.js +2 -1
  195. package/dist/esm/support/tools.d.ts +11 -3
  196. package/dist/esm/support/tools.js +43 -18
  197. package/dist/esm/utils/catalog.d.ts +1 -1
  198. package/package.json +20 -6
  199. package/dist/cjs/execution/index.js +0 -30
  200. package/dist/cjs/kits/intents/catalog.js +0 -82
  201. package/dist/cjs/kits/intents/index.js +0 -35
  202. package/dist/esm/execution/index.d.ts +0 -11
  203. package/dist/esm/execution/index.js +0 -11
  204. package/dist/esm/kits/intents/catalog.d.ts +0 -39
  205. package/dist/esm/kits/intents/catalog.js +0 -79
  206. package/dist/esm/kits/intents/index.d.ts +0 -22
  207. package/dist/esm/kits/intents/index.js +0 -18
  208. package/dist/esm/kits/intents/registry.d.ts +0 -88
  209. /package/dist/cjs/structs/kits/{intents → domains}/catalog.js +0 -0
  210. /package/dist/cjs/structs/kits/{intents → domains}/registry.js +0 -0
  211. /package/dist/cjs/structs/kits/{intents → domains}/scopes.js +0 -0
  212. /package/dist/esm/structs/kits/{intents → domains}/catalog.js +0 -0
  213. /package/dist/esm/structs/kits/{intents → domains}/registry.js +0 -0
  214. /package/dist/esm/structs/kits/{intents → domains}/scopes.js +0 -0
@@ -2,13 +2,15 @@
2
2
 
3
3
  [共同类型](types.md) · [返回首页](README.md)。每个 Kit 从自己的子路径导入具名函数/构造器,静态声明与每次运行上下文分离。
4
4
 
5
- ## Intents、Interaction、Tools
5
+ ## Domain Tools、Scope、Interaction、Tools
6
+
7
+ IntentRegistry 注册继承 ModelTool 的 IntentTool,保留 scopePolicy、targetPolicy 和任务约束。asIntent.delegates 可覆盖推导结果;delegates 是可选允许集合,不是顺序。不存在独立 Intent 实体或 Intent ID;Scope 的 goalIds 引用真实 Tool ID。可选注册辅助从 `@jangts/agent-core/kits/domains` 导入。
6
8
 
7
9
  | 能力 | 首选接口/关键合同 |
8
10
  | --- | --- |
9
11
  | IntentRegistry | 定义主键 id,使用 scopePolicy/targetPolicy,实现共同 Registry 合同 |
10
- | ScopeRegistry | id、intentIds、toolIds、queryScopeIds、knowledgeTopicIds;aliases保留,查询方法使用scopeId |
11
- | defineAgentCatalog | 由实际登记投影关系;当前任务为`{ intentId, scopeId? }`,不能同时用scope指策略和引用 |
12
+ | ScopeRegistry | id、goalIds、toolIds、queryScopeIds、knowledgeTopicIds;aliases保留,查询方法使用scopeId |
13
+ | defineAgentCatalog | 由实际登记投影关系;当前任务为`{ goalId, scopeId? }`,不能同时用scope指策略和引用 |
12
14
  | defineInteractionProtocol | 一份commands声明编译协议,commandField由App拥有,不强制其wire字段叫type或kind |
13
15
  | defineCommandCatalog | commands闭集可用Record书写;公开definitions为数组,toRecord()为明确映射 |
14
16
  | bindInteraction | 对齐协议与具名handler;dispatch(input, context),不执行未登记命令 |
@@ -20,7 +22,7 @@
20
22
 
21
23
  InteractionProtocol、CommandCatalog 是公开构造器;Interaction 与 Interaction.Commands 分别提供它们的命名空间入口。
22
24
 
23
- Tools Kit保留全局检查→选中检查→授权→resume/execute→完成→finalize的真实次序。生命周期和contribution是本Kit局部协议。接收者字段叫receiver,不与OutputField.owner混用;请求内journal沿用Core分配的invocationId。
25
+ Tools Kit 保留全局检查→授权→resume/execute→完成→finalize 的真实次序。每个工具只声明一个 lifecycle 块:inspect、finalize 等钩子对全部工具运行,id/protocol/call 与 authorize/resume/complete 只由被选中的工具运行。接收者字段叫receiver,不与OutputField.owner混用;请求内journal沿用Core分配的invocationId。
24
26
 
25
27
  ## Evidence 与 Retrieval
26
28
 
@@ -72,6 +74,22 @@ TextSkill 定义使用 id、entry、toolIds 和 kind=text-workflow。目录项
72
74
 
73
75
  TextSkillLoader 接受 load({ entries }, { read })。注册 ID、路径、工具引用和重复项检查先于对应文件读取,read 与自定义解析器均须同步。读取端口、注册项和错误工厂可以由类实现,原型 getter 与原方法接收者保留。工具回执的 App 自有字段由 App 显式投影。
74
76
 
77
+ ## TextBlocks
78
+
79
+ ```ts
80
+ interface TextBlock {
81
+ readonly number: number
82
+ readonly text: string
83
+ readonly start: number
84
+ readonly end: number
85
+ }
86
+ TextBlocks.split(text, { targetChars }): readonly TextBlock[]
87
+ ```
88
+
89
+ `split` 只切分已解码的纯文本:标题与分隔线起新块,空行结束当前块,其余在换行处按 `targetChars` 断开。超过目标长度的单行保留为一个块,由分页读取再切片段,避免同一行被拆成互不相关的两段。各块按顺序拼回与原文逐字一致,保留全部空白与 CRLF;`number` 从 1 开始,`start`/`end` 是原文 UTF-16 偏移。`targetChars` 必须为正整数,空文本返回空数组。
90
+
91
+ Kit 不读写文件、不分页、不访问模型或存储;分页窗口、索引、摘要与提示词由 App 决定。块边界是结构边界,不与固定字符窗口对齐,需要覆盖范围时使用 `start`/`end`。
92
+
75
93
  ## TextSearch、VectorSearch、RRF、ModelCalls
76
94
 
77
95
  ```ts
@@ -43,7 +43,7 @@ interface AnswerTaskDefinition<Input, Metadata> {
43
43
  readonly id: string;
44
44
  readonly description: string;
45
45
  readonly inputSchema: SchemaAdapter<Input>;
46
- readonly intentIds: readonly string[];
46
+ readonly goalIds: readonly string[];
47
47
  readonly scopeId?: string;
48
48
  readonly readerId: string;
49
49
  readonly outputId: string;
@@ -145,6 +145,9 @@ OutputResult is `{ outputId, kind, value }`. Group children use program-assigned
145
145
  | --- | --- |
146
146
  | defineTextTemplate(master, options) | Pure compilation; render(values) substitutes once synchronously; errors.missingField creates an error |
147
147
  | defineSemanticSlots(definition) | namespace, keys, maxOccurrences; isValid(text): boolean |
148
+ | defineReplyFormats({ formats, checks }) | Compiles template-bound reply formats; resolve(context) returns an inspected format only on a match and undefined otherwise |
149
+ | replyFormatChecks.bubbles(totalLimit) / textBudget(maxChars) | Shared bubble count, blank-bubble and text-length checks; the app declares the limits |
150
+ | mergeReplyBubbles(bubbles, limit) | Program normalization for replies without a template: drops blank bubbles and merges overflow into the last one |
148
151
  | replyBubbleTexts(input) | Keeps the existing plain-text/bubble extraction responsibility and returns readonly string[]; count and length limits are enforced by the registered output contract |
149
152
  | publishReplyEvents({ text, delivery }, context) | Returns AsyncIterable<AgentOutputEvent>, preserving backpressure and cancellation as consumers pull; pacing continues to use *Ms |
150
153
  | serializeOutputEvents(events) / textOutputEvents(chunks) | Preserves explicit conversion between events and text streams and is not an invoke return mode |
@@ -43,7 +43,7 @@ interface AnswerTaskDefinition<Input, Metadata> {
43
43
  readonly id: string;
44
44
  readonly description: string;
45
45
  readonly inputSchema: SchemaAdapter<Input>;
46
- readonly intentIds: readonly string[];
46
+ readonly goalIds: readonly string[];
47
47
  readonly scopeId?: string;
48
48
  readonly readerId: string;
49
49
  readonly outputId: string;
@@ -145,6 +145,9 @@ OutputResult为`{ outputId, kind, value }`。group子项使用程序分配的id
145
145
  | --- | --- |
146
146
  | defineTextTemplate(master, options) | 纯编译;render(values)同步替换一次;errors.missingField创建错误 |
147
147
  | defineSemanticSlots(definition) | namespace、keys、maxOccurrences;isValid(text): boolean |
148
+ | defineReplyFormats({ formats, checks }) | 编译模板绑定的回复格式;resolve(context)仅命中时返回带inspect的格式,其余返回undefined |
149
+ | replyFormatChecks.bubbles(totalLimit) / textBudget(maxChars) | 通用气泡数量、空白气泡与正文长度检查,限额由应用声明 |
150
+ | mergeReplyBubbles(bubbles, limit) | 无模板回复的程序归一:丢弃空白气泡并把超出部分并入最后一条 |
148
151
  | replyBubbleTexts(input) | 保留现有纯文本/气泡提取职责,返回readonly string[];数量与长度限制由已登记输出合同执行 |
149
152
  | publishReplyEvents({ text, delivery }, context) | 返回AsyncIterable<AgentOutputEvent>,保留消费者拉取时的背压及取消;pacing继续使用*Ms |
150
153
  | serializeOutputEvents(events) / textOutputEvents(chunks) | 保留事件与文本流的显式转换,不作为invoke返回模式 |
@@ -2,6 +2,8 @@
2
2
 
3
3
  MockGPT simulates model replies with fixed data, functions and lightweight text algorithms, and is suited to debugging protocols, tool selection, streaming output, failure and cancellation. It does not perform real LLM inference. Ordinary rules do not use the network; the web source is an explicit optional network capability.
4
4
 
5
+ Install `@jangts/mock-gpt` before using the `/mock`, `/mock/node` or `/mock/web` entries; it is an optional peer dependency and is not installed with this package.
6
+
5
7
  ## Entry points and public exports
6
8
 
7
9
  | Entry | Runtime exports | Type exports |
@@ -2,6 +2,8 @@
2
2
 
3
3
  MockGPT 用固定数据、函数及轻量文本算法模拟模型回复,适合调试协议、工具选择、流式输出、失败与取消。它不执行真实 LLM 推理。普通规则不联网;网页来源是显式的可选网络能力。
4
4
 
5
+ 使用 `/mock`、`/mock/node`、`/mock/web` 前需安装 `@jangts/mock-gpt`;它是可选 peer 依赖,不会随本包自动安装。
6
+
5
7
  ## 入口与公开导出
6
8
 
7
9
  | 入口 | 运行时导出 | 类型导出 |