@ai-zen/agents-host 0.0.0-stage → 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.
Files changed (146) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/LICENSE +21 -0
  3. package/README.md +759 -2
  4. package/dist/app.d.ts +384 -0
  5. package/dist/app.js +1148 -0
  6. package/dist/cli.d.ts +22 -0
  7. package/dist/cli.js +354 -0
  8. package/dist/config.d.ts +97 -0
  9. package/dist/config.js +171 -0
  10. package/dist/handlers/agentHandlers.d.ts +18 -0
  11. package/dist/handlers/agentHandlers.js +20 -0
  12. package/dist/handlers/assetHandlers.d.ts +29 -0
  13. package/dist/handlers/assetHandlers.js +35 -0
  14. package/dist/handlers/capabilities.d.ts +26 -0
  15. package/dist/handlers/capabilities.js +138 -0
  16. package/dist/handlers/completionHandlers.d.ts +18 -0
  17. package/dist/handlers/completionHandlers.js +13 -0
  18. package/dist/handlers/configHandlers.d.ts +31 -0
  19. package/dist/handlers/configHandlers.js +59 -0
  20. package/dist/handlers/conversationHandlers.d.ts +118 -0
  21. package/dist/handlers/conversationHandlers.js +314 -0
  22. package/dist/handlers/handoffHandlers.d.ts +17 -0
  23. package/dist/handlers/handoffHandlers.js +14 -0
  24. package/dist/handlers/hostHandlers.d.ts +39 -0
  25. package/dist/handlers/hostHandlers.js +56 -0
  26. package/dist/handlers/index.d.ts +128 -0
  27. package/dist/handlers/index.js +92 -0
  28. package/dist/handlers/messageHandlers.d.ts +11 -0
  29. package/dist/handlers/messageHandlers.js +10 -0
  30. package/dist/handlers/modelHandlers.d.ts +17 -0
  31. package/dist/handlers/modelHandlers.js +19 -0
  32. package/dist/handlers/noticeHandlers.d.ts +24 -0
  33. package/dist/handlers/noticeHandlers.js +24 -0
  34. package/dist/handlers/questionHandlers.d.ts +16 -0
  35. package/dist/handlers/questionHandlers.js +16 -0
  36. package/dist/handlers/searchHandlers.d.ts +12 -0
  37. package/dist/handlers/searchHandlers.js +12 -0
  38. package/dist/handlers/workspaceHandlers.d.ts +29 -0
  39. package/dist/handlers/workspaceHandlers.js +47 -0
  40. package/dist/i18n/en.d.ts +243 -0
  41. package/dist/i18n/en.js +270 -0
  42. package/dist/i18n/index.d.ts +43 -0
  43. package/dist/i18n/index.js +72 -0
  44. package/dist/i18n/zh.d.ts +240 -0
  45. package/dist/i18n/zh.js +257 -0
  46. package/dist/index.d.ts +17 -0
  47. package/dist/index.js +15 -0
  48. package/dist/net/UploadReceiver.d.ts +186 -0
  49. package/dist/net/UploadReceiver.js +494 -0
  50. package/dist/net/WsHub.d.ts +231 -0
  51. package/dist/net/WsHub.js +689 -0
  52. package/dist/net/auth.d.ts +73 -0
  53. package/dist/net/auth.js +74 -0
  54. package/dist/net/discovery.d.ts +72 -0
  55. package/dist/net/discovery.js +171 -0
  56. package/dist/net/index.d.ts +14 -0
  57. package/dist/net/index.js +10 -0
  58. package/dist/runtime/ChatRunner.d.ts +374 -0
  59. package/dist/runtime/ChatRunner.js +1204 -0
  60. package/dist/runtime/ConversationDrafts.d.ts +43 -0
  61. package/dist/runtime/ConversationDrafts.js +47 -0
  62. package/dist/runtime/RunRegistry.d.ts +79 -0
  63. package/dist/runtime/RunRegistry.js +108 -0
  64. package/dist/runtime/ScopeRegistry.d.ts +153 -0
  65. package/dist/runtime/ScopeRegistry.js +259 -0
  66. package/dist/runtime/TransientRunner.d.ts +90 -0
  67. package/dist/runtime/TransientRunner.js +179 -0
  68. package/dist/runtime/index.d.ts +14 -0
  69. package/dist/runtime/index.js +10 -0
  70. package/dist/services/AgentService.d.ts +150 -0
  71. package/dist/services/AgentService.js +718 -0
  72. package/dist/services/AssetService.d.ts +338 -0
  73. package/dist/services/AssetService.js +739 -0
  74. package/dist/services/AutoNaming.d.ts +92 -0
  75. package/dist/services/AutoNaming.js +235 -0
  76. package/dist/services/CompletionService.d.ts +122 -0
  77. package/dist/services/CompletionService.js +442 -0
  78. package/dist/services/ConfigService.d.ts +171 -0
  79. package/dist/services/ConfigService.js +695 -0
  80. package/dist/services/ConversationService.d.ts +274 -0
  81. package/dist/services/ConversationService.js +902 -0
  82. package/dist/services/CredentialService.d.ts +33 -0
  83. package/dist/services/CredentialService.js +86 -0
  84. package/dist/services/DiscoveryService.d.ts +182 -0
  85. package/dist/services/DiscoveryService.js +998 -0
  86. package/dist/services/HandoffService.d.ts +189 -0
  87. package/dist/services/HandoffService.js +414 -0
  88. package/dist/services/Logger.d.ts +130 -0
  89. package/dist/services/Logger.js +256 -0
  90. package/dist/services/MessageService.d.ts +88 -0
  91. package/dist/services/MessageService.js +280 -0
  92. package/dist/services/ModelService.d.ts +89 -0
  93. package/dist/services/ModelService.js +489 -0
  94. package/dist/services/NoticeService.d.ts +93 -0
  95. package/dist/services/NoticeService.js +217 -0
  96. package/dist/services/QuestionService.d.ts +184 -0
  97. package/dist/services/QuestionService.js +457 -0
  98. package/dist/services/SearchService.d.ts +54 -0
  99. package/dist/services/SearchService.js +117 -0
  100. package/dist/services/WorkspaceService.d.ts +96 -0
  101. package/dist/services/WorkspaceService.js +213 -0
  102. package/dist/services/imageSize.d.ts +41 -0
  103. package/dist/services/imageSize.js +146 -0
  104. package/dist/services/index.d.ts +20 -0
  105. package/dist/services/index.js +15 -0
  106. package/dist/services/secretMask.d.ts +24 -0
  107. package/dist/services/secretMask.js +34 -0
  108. package/dist/storage/AssetRepository.d.ts +87 -0
  109. package/dist/storage/AssetRepository.js +180 -0
  110. package/dist/storage/ConversationRepository.d.ts +55 -0
  111. package/dist/storage/ConversationRepository.js +128 -0
  112. package/dist/storage/CredentialRepository.d.ts +28 -0
  113. package/dist/storage/CredentialRepository.js +47 -0
  114. package/dist/storage/Database.d.ts +95 -0
  115. package/dist/storage/Database.js +180 -0
  116. package/dist/storage/MessageRepository.d.ts +104 -0
  117. package/dist/storage/MessageRepository.js +323 -0
  118. package/dist/storage/MetaRepository.d.ts +21 -0
  119. package/dist/storage/MetaRepository.js +33 -0
  120. package/dist/storage/NoticeRepository.d.ts +31 -0
  121. package/dist/storage/NoticeRepository.js +89 -0
  122. package/dist/storage/QuestionRepository.d.ts +34 -0
  123. package/dist/storage/QuestionRepository.js +96 -0
  124. package/dist/storage/WorkspaceRepository.d.ts +25 -0
  125. package/dist/storage/WorkspaceRepository.js +44 -0
  126. package/dist/storage/dbWorker.d.ts +10 -0
  127. package/dist/storage/dbWorker.js +132 -0
  128. package/dist/storage/index.d.ts +20 -0
  129. package/dist/storage/index.js +16 -0
  130. package/dist/storage/migrations.d.ts +26 -0
  131. package/dist/storage/migrations.js +207 -0
  132. package/dist/storage/types.d.ts +298 -0
  133. package/dist/storage/types.js +14 -0
  134. package/dist/wire/errors.d.ts +105 -0
  135. package/dist/wire/errors.js +143 -0
  136. package/dist/wire/events.d.ts +102 -0
  137. package/dist/wire/events.js +13 -0
  138. package/dist/wire/frames.d.ts +106 -0
  139. package/dist/wire/frames.js +156 -0
  140. package/dist/wire/index.d.ts +31 -0
  141. package/dist/wire/index.js +31 -0
  142. package/dist/wire/methods.d.ts +1896 -0
  143. package/dist/wire/methods.js +99 -0
  144. package/dist/wire/states.d.ts +487 -0
  145. package/dist/wire/states.js +61 -0
  146. package/package.json +63 -3
@@ -0,0 +1,150 @@
1
+ /**
2
+ * 助手服务:助手与子 Agent 定义的增删改查、改默认模型、改思考档位(F-B1…F-B7 / F-F5 / F-G3)。
3
+ *
4
+ * 助手定义是**配置**而不是用户数据(F-G3):一实体一文件,存在数据根的 `agents/` 与
5
+ * `sub-agents/` 下,能进 git、能手改。所以这里的读写全走 SDK 的 `AgentRepository`,
6
+ * 不碰数据库。有 `function` 字段的那些是子 Agent(SDK 的发现口径),落在 `sub-agents/`。
7
+ *
8
+ * 产品的两条硬要求:
9
+ * - **不可用的也要列出并说明原因**(F-B5):文件读不出来、模型没了、端点没配密钥,都算
10
+ * 不可用,但都照样出现在清单里,带着一句为什么。
11
+ * - **删默认助手要连带清默认**(F-F5):删完还留着一个指向空处的默认助手,下一次建对话
12
+ * 才会炸出来。
13
+ */
14
+ import { AgentRepository } from "@ai-zen/agents-sdk";
15
+ import type { AgentDefinition, AppConfig, ConfigManager, ReasoningPresets } from "@ai-zen/agents-sdk";
16
+ import type { AgentCreateParams, AgentCreateResult, AgentDeleteParams, AgentDeleteResult, AgentGetParams, AgentGetResult, AgentListParams, AgentListResult, AgentRestoreFactoryParams, AgentRestoreFactoryResult, AgentSetModelParams, AgentSetModelResult, AgentSetThinkingParams, AgentSetThinkingResult, AgentUpdateParams, AgentUpdateResult, AgentView } from "../wire/index.js";
17
+ /** 助手服务的依赖;由单根组装后注入 */
18
+ export interface AgentServiceOptions {
19
+ /** 配置唯一入口(SDK):默认助手、兜底模型、思考策略表都在这里 */
20
+ configManager: ConfigManager;
21
+ /** 助手定义仓储;缺省按 `<basePath>/agents/` 造一个 */
22
+ agents?: AgentRepository;
23
+ /** 子 Agent 定义仓储;缺省按 `<basePath>/sub-agents/` 造一个 */
24
+ subAgents?: AgentRepository;
25
+ /** 时钟,测试注入用;缺省 `Date.now` */
26
+ now?: () => number;
27
+ }
28
+ /** 一条定义来自哪个仓储(决定删除时该删哪个文件) */
29
+ type AgentHome = "agents" | "sub-agents";
30
+ /**
31
+ * 一个助手的最小只读事实:它现在叫什么、现在能不能用。
32
+ *
33
+ * `describe()` 的返回值。状态栏的助手块(`conversation.state`)只要这两条:它不展示提示词、
34
+ * 权限、思考档位,所以不必把整份 `AgentView` 搬过去。
35
+ */
36
+ export interface AgentDescription {
37
+ /** 定义上的 id(与传入的 `agentId` 相同) */
38
+ agentId: string;
39
+ /** 定义上的显示名 */
40
+ name: string;
41
+ /** 现在能不能跑(模型 / 端点 / 密钥都齐才算,与 `agent.list` 同一份口径) */
42
+ available: boolean;
43
+ }
44
+ /** 仓储里读到的一条定义;`definition` 为 `null` 表示文件在但读不出来 */
45
+ interface LoadedAgent {
46
+ id: string;
47
+ home: AgentHome;
48
+ definition: AgentDefinition | null;
49
+ /** 读不出来的原因(`definition === null` 时才有) */
50
+ brokenReason: string | null;
51
+ }
52
+ export declare class AgentService {
53
+ private readonly configManager;
54
+ private readonly repos;
55
+ private readonly now;
56
+ constructor(options: AgentServiceOptions);
57
+ /**
58
+ * 助手清单(F-B2 / F-B3 / F-B5)。
59
+ *
60
+ * 主助手在前、子 Agent 在后,各自按 id 排 —— 同一份磁盘状态每次给同一个顺序。
61
+ * 读不出来的定义文件也列出来(`available: false` + 原因):藏起来会让人以为它没了。
62
+ *
63
+ * `workspaceId` 只做存在性校验:助手定义的可用性(模型、端点、密钥)是全局配置的事实,
64
+ * 与项目无关;「这个项目里能不能用」要等可用的 Skill / MCP 清单定下来才有答案。
65
+ */
66
+ list(_params?: AgentListParams): Promise<AgentListResult>;
67
+ /** 按 id 取一个助手 */
68
+ get(params: AgentGetParams): Promise<AgentGetResult>;
69
+ /**
70
+ * 一个助手现在叫什么、能不能用(最小只读导出,PRD F-I6 的状态栏助手块用)。
71
+ *
72
+ * 与 `get()` 走同一份 `load()` / `toView()` 口径,只是只回这两条事实:调用方(会话现场快照)
73
+ * 要的是「这个 id 现在叫什么、还能不能跑」,不是整份定义。
74
+ *
75
+ * 拿不到就回 `null`:定义文件已经没了(助手被删,而对话仍记着那个 id,L7),或者文件在但
76
+ * 读不出来(坏 JSON)。这两种情况下「名字」与「可用性」都没有可报的事实。
77
+ */
78
+ describe(agentId: string): Promise<AgentDescription | null>;
79
+ /** 新建助手定义(一实体一文件,F-G3) */
80
+ create(params: AgentCreateParams): Promise<AgentCreateResult>;
81
+ /** 编辑助手定义(局部更新;`modelId: ""` 表示把绑定清掉,交给配置里的兜底模型) */
82
+ update(params: AgentUpdateParams): Promise<AgentUpdateResult>;
83
+ /**
84
+ * 删除助手定义(F-F5)。
85
+ *
86
+ * 删的正好是默认助手时连带把默认清掉(`defaultsCleared`)。其它指向关系(别的助手在
87
+ * 权限里点名它的 function)只报在 `references` 里 —— 那些是权限白名单里的一个名字,
88
+ * 删掉定义之后那条名字什么都不指,不是「不能删」。
89
+ */
90
+ delete(params: AgentDeleteParams): Promise<AgentDeleteResult>;
91
+ /**
92
+ * 改助手的默认模型(F-B4 / F-B1:影响以后的对话,与「改这段会话的模型」是两个动作)。
93
+ *
94
+ * 换了模型就同时把定义上「旧模型档位带来的那些参数」去掉:定义上的参数是给旧模型配的,
95
+ * 旧模型才认的键(例如某个厂商的 `thinking` 形状)发给新模型只会换来一句 400。
96
+ * 定义上与其无关的参数(`temperature` 之类)不动。
97
+ */
98
+ setModel(params: AgentSetModelParams): Promise<AgentSetModelResult>;
99
+ /**
100
+ * 把思考档位展开成参数写进助手定义(F-B6:写进去的是参数,档位名只是标签)。
101
+ *
102
+ * 档位必须在这个模型的思考策略表里:表里没有的档发出去只会换来一句 400。
103
+ * 合并口径是「在现有参数上叠加这一档的补丁」—— 与思考无关的参数(temperature 之类)不动。
104
+ *
105
+ * `level: null` 是撤回设值:把定义里属于思考策略的那些参数删掉,其余参数照旧留着;
106
+ * 删完不剩任何参数时 `modelParams` 整个从定义里去掉,让「参数即真相」回到模型的默认参数。
107
+ * 与会话那一侧的 `conversation.setThinking(null)`(改成会话行上的档位名)是两件事。
108
+ */
109
+ setThinking(params: AgentSetThinkingParams): Promise<AgentSetThinkingResult>;
110
+ /**
111
+ * 恢复出厂(F-F5:整条替换,与 `model.restoreFactory` 同一个语义)。
112
+ *
113
+ * 出厂那一份来自 SDK 的出厂定义(`DEFAULT_AGENT_DEFINITION` / `DEFAULT_SUBAGENT_DEFINITION`),
114
+ * 用户自建的助手不在出厂清单里,没有可恢复的版本。恢复之后这一条重新归 SDK 托管
115
+ * (`custom: false`,下次初始化会跟着出厂定义同步提示词),提示词 / 模型 / 权限 / 思考参数
116
+ * 全回到出厂那份;`createdAt` 是这个实体诞生的时刻,留着,`updatedAt` 是这次写入。
117
+ *
118
+ * `dryRun` 只算出「恢复之后会是什么样」,不落盘;本来就和出厂一致时回 `restored: false`
119
+ * (没有可恢复的改动,不是失败)。
120
+ */
121
+ restoreFactory(params: AgentRestoreFactoryParams): Promise<AgentRestoreFactoryResult>;
122
+ /** 一条定义(或一个读不出来的文件)→ 对外形状 */
123
+ toView(config: AppConfig, presets: ReasoningPresets, item: LoadedAgent): AgentView;
124
+ /** 这个助手现在能不能跑:没模型、模型没了、端点没了/没密钥,各有各的说法 */
125
+ private unavailableProblem;
126
+ /**
127
+ * 思考强度的状态(F-B6 / F-B7)。
128
+ *
129
+ * `manual` = 定义上的参数正好是某一档;`following_default` = 定义没指定,跟着模型默认走;
130
+ * `not_adjustable` = 这个模型引用的策略表里一条档位都没有。
131
+ */
132
+ private thinkingOf;
133
+ /** 默认助手 id:配置里那个还在就用它,否则回落 `default`,再否则取清单第一个 */
134
+ private resolveDefaultAgentId;
135
+ /** 哪个目录该放这条定义:有 `function` 的是子 Agent(SDK 的发现口径) */
136
+ private homeOf;
137
+ /** 读一个定义(两个目录都找);不存在回 `null` */
138
+ private load;
139
+ /** 读全部定义(两个目录),读不出来的也占一行 */
140
+ private loadAll;
141
+ /** 仓储对应的目录 */
142
+ private repoDir;
143
+ /** 要改定义时先把它读出来;读不出来(坏文件)就没有可改的内容 */
144
+ private requireEditable;
145
+ /** 引用:默认助手 + 别的助手在权限里点名的子 Agent function */
146
+ private referencesOf;
147
+ /** `modelId` 给了就必须指向一个存在的模型(写进定义的 id 不能是悬空的) */
148
+ private assertModelReference;
149
+ }
150
+ export {};