agent-life-bridge 0.1.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 (195) hide show
  1. package/.env.example +20 -0
  2. package/LICENSE +21 -0
  3. package/README.md +350 -0
  4. package/bin/agent-life-bridge.mjs +13 -0
  5. package/config.example.json +130 -0
  6. package/config.multi-agent.example.json +88 -0
  7. package/dist/agents/agent-life-session-map-store.d.ts +21 -0
  8. package/dist/agents/agent-life-session-map-store.d.ts.map +1 -0
  9. package/dist/agents/agent-life-session-map-store.js +78 -0
  10. package/dist/agents/agent-life-session-map-store.js.map +1 -0
  11. package/dist/agents/agent-resolver.d.ts +12 -0
  12. package/dist/agents/agent-resolver.d.ts.map +1 -0
  13. package/dist/agents/agent-resolver.js +114 -0
  14. package/dist/agents/agent-resolver.js.map +1 -0
  15. package/dist/agents/agent-router.d.ts +8 -0
  16. package/dist/agents/agent-router.d.ts.map +1 -0
  17. package/dist/agents/agent-router.js +72 -0
  18. package/dist/agents/agent-router.js.map +1 -0
  19. package/dist/agents/cli-backends.d.ts +25 -0
  20. package/dist/agents/cli-backends.d.ts.map +1 -0
  21. package/dist/agents/cli-backends.js +252 -0
  22. package/dist/agents/cli-backends.js.map +1 -0
  23. package/dist/agents/cli-output.d.ts +43 -0
  24. package/dist/agents/cli-output.d.ts.map +1 -0
  25. package/dist/agents/cli-output.js +352 -0
  26. package/dist/agents/cli-output.js.map +1 -0
  27. package/dist/agents/cli-runner.d.ts +32 -0
  28. package/dist/agents/cli-runner.d.ts.map +1 -0
  29. package/dist/agents/cli-runner.js +861 -0
  30. package/dist/agents/cli-runner.js.map +1 -0
  31. package/dist/agents/cli-session-store.d.ts +53 -0
  32. package/dist/agents/cli-session-store.d.ts.map +1 -0
  33. package/dist/agents/cli-session-store.js +263 -0
  34. package/dist/agents/cli-session-store.js.map +1 -0
  35. package/dist/agents/codex-app-server-runtime.d.ts +80 -0
  36. package/dist/agents/codex-app-server-runtime.d.ts.map +1 -0
  37. package/dist/agents/codex-app-server-runtime.js +1049 -0
  38. package/dist/agents/codex-app-server-runtime.js.map +1 -0
  39. package/dist/agents/fch-runtime-context.d.ts +28 -0
  40. package/dist/agents/fch-runtime-context.d.ts.map +1 -0
  41. package/dist/agents/fch-runtime-context.js +65 -0
  42. package/dist/agents/fch-runtime-context.js.map +1 -0
  43. package/dist/agents/model-selection.d.ts +28 -0
  44. package/dist/agents/model-selection.d.ts.map +1 -0
  45. package/dist/agents/model-selection.js +40 -0
  46. package/dist/agents/model-selection.js.map +1 -0
  47. package/dist/agents/models-config.d.ts +28 -0
  48. package/dist/agents/models-config.d.ts.map +1 -0
  49. package/dist/agents/models-config.js +43 -0
  50. package/dist/agents/models-config.js.map +1 -0
  51. package/dist/channels/agent-life.d.ts +9 -0
  52. package/dist/channels/agent-life.d.ts.map +1 -0
  53. package/dist/channels/agent-life.js +407 -0
  54. package/dist/channels/agent-life.js.map +1 -0
  55. package/dist/channels/command-gating.d.ts +20 -0
  56. package/dist/channels/command-gating.d.ts.map +1 -0
  57. package/dist/channels/command-gating.js +43 -0
  58. package/dist/channels/command-gating.js.map +1 -0
  59. package/dist/channels/draft-stream-controls.d.ts +21 -0
  60. package/dist/channels/draft-stream-controls.d.ts.map +1 -0
  61. package/dist/channels/draft-stream-controls.js +43 -0
  62. package/dist/channels/draft-stream-controls.js.map +1 -0
  63. package/dist/channels/draft-stream-loop.d.ts +31 -0
  64. package/dist/channels/draft-stream-loop.d.ts.map +1 -0
  65. package/dist/channels/draft-stream-loop.js +60 -0
  66. package/dist/channels/draft-stream-loop.js.map +1 -0
  67. package/dist/channels/mention-gating.d.ts +18 -0
  68. package/dist/channels/mention-gating.d.ts.map +1 -0
  69. package/dist/channels/mention-gating.js +20 -0
  70. package/dist/channels/mention-gating.js.map +1 -0
  71. package/dist/channels/registry.d.ts +5 -0
  72. package/dist/channels/registry.d.ts.map +1 -0
  73. package/dist/channels/registry.js +14 -0
  74. package/dist/channels/registry.js.map +1 -0
  75. package/dist/channels/run-state-machine.d.ts +21 -0
  76. package/dist/channels/run-state-machine.d.ts.map +1 -0
  77. package/dist/channels/run-state-machine.js +41 -0
  78. package/dist/channels/run-state-machine.js.map +1 -0
  79. package/dist/channels/session-envelope.d.ts +5 -0
  80. package/dist/channels/session-envelope.d.ts.map +1 -0
  81. package/dist/channels/session-envelope.js +16 -0
  82. package/dist/channels/session-envelope.js.map +1 -0
  83. package/dist/channels/session-id.d.ts +3 -0
  84. package/dist/channels/session-id.d.ts.map +1 -0
  85. package/dist/channels/session-id.js +11 -0
  86. package/dist/channels/session-id.js.map +1 -0
  87. package/dist/channels/session.d.ts +18 -0
  88. package/dist/channels/session.d.ts.map +1 -0
  89. package/dist/channels/session.js +35 -0
  90. package/dist/channels/session.js.map +1 -0
  91. package/dist/channels/typing-lifecycle.d.ts +16 -0
  92. package/dist/channels/typing-lifecycle.d.ts.map +1 -0
  93. package/dist/channels/typing-lifecycle.js +31 -0
  94. package/dist/channels/typing-lifecycle.js.map +1 -0
  95. package/dist/cli/cmd-add-agent.d.ts +19 -0
  96. package/dist/cli/cmd-add-agent.d.ts.map +1 -0
  97. package/dist/cli/cmd-add-agent.js +362 -0
  98. package/dist/cli/cmd-add-agent.js.map +1 -0
  99. package/dist/cli/cmd-config.d.ts +3 -0
  100. package/dist/cli/cmd-config.d.ts.map +1 -0
  101. package/dist/cli/cmd-config.js +16 -0
  102. package/dist/cli/cmd-config.js.map +1 -0
  103. package/dist/cli/cmd-doctor.d.ts +3 -0
  104. package/dist/cli/cmd-doctor.d.ts.map +1 -0
  105. package/dist/cli/cmd-doctor.js +127 -0
  106. package/dist/cli/cmd-doctor.js.map +1 -0
  107. package/dist/cli/cmd-logs.d.ts +3 -0
  108. package/dist/cli/cmd-logs.d.ts.map +1 -0
  109. package/dist/cli/cmd-logs.js +26 -0
  110. package/dist/cli/cmd-logs.js.map +1 -0
  111. package/dist/cli/cmd-onboard.d.ts +5 -0
  112. package/dist/cli/cmd-onboard.d.ts.map +1 -0
  113. package/dist/cli/cmd-onboard.js +53 -0
  114. package/dist/cli/cmd-onboard.js.map +1 -0
  115. package/dist/cli/cmd-restart.d.ts +3 -0
  116. package/dist/cli/cmd-restart.d.ts.map +1 -0
  117. package/dist/cli/cmd-restart.js +22 -0
  118. package/dist/cli/cmd-restart.js.map +1 -0
  119. package/dist/cli/cmd-start.d.ts +19 -0
  120. package/dist/cli/cmd-start.d.ts.map +1 -0
  121. package/dist/cli/cmd-start.js +783 -0
  122. package/dist/cli/cmd-start.js.map +1 -0
  123. package/dist/cli/cmd-status.d.ts +3 -0
  124. package/dist/cli/cmd-status.d.ts.map +1 -0
  125. package/dist/cli/cmd-status.js +16 -0
  126. package/dist/cli/cmd-status.js.map +1 -0
  127. package/dist/cli/cmd-stop.d.ts +9 -0
  128. package/dist/cli/cmd-stop.d.ts.map +1 -0
  129. package/dist/cli/cmd-stop.js +59 -0
  130. package/dist/cli/cmd-stop.js.map +1 -0
  131. package/dist/cli/cmd-update.d.ts +3 -0
  132. package/dist/cli/cmd-update.d.ts.map +1 -0
  133. package/dist/cli/cmd-update.js +127 -0
  134. package/dist/cli/cmd-update.js.map +1 -0
  135. package/dist/cli/cmd-version.d.ts +4 -0
  136. package/dist/cli/cmd-version.d.ts.map +1 -0
  137. package/dist/cli/cmd-version.js +12 -0
  138. package/dist/cli/cmd-version.js.map +1 -0
  139. package/dist/cli/pid-file.d.ts +23 -0
  140. package/dist/cli/pid-file.d.ts.map +1 -0
  141. package/dist/cli/pid-file.js +136 -0
  142. package/dist/cli/pid-file.js.map +1 -0
  143. package/dist/cli/run-main.d.ts +16 -0
  144. package/dist/cli/run-main.d.ts.map +1 -0
  145. package/dist/cli/run-main.js +114 -0
  146. package/dist/cli/run-main.js.map +1 -0
  147. package/dist/cli/update-check.d.ts +15 -0
  148. package/dist/cli/update-check.d.ts.map +1 -0
  149. package/dist/cli/update-check.js +187 -0
  150. package/dist/cli/update-check.js.map +1 -0
  151. package/dist/commands/prefix-router.d.ts +17 -0
  152. package/dist/commands/prefix-router.d.ts.map +1 -0
  153. package/dist/commands/prefix-router.js +79 -0
  154. package/dist/commands/prefix-router.js.map +1 -0
  155. package/dist/config/agent-dirs.d.ts +24 -0
  156. package/dist/config/agent-dirs.d.ts.map +1 -0
  157. package/dist/config/agent-dirs.js +71 -0
  158. package/dist/config/agent-dirs.js.map +1 -0
  159. package/dist/config/config.d.ts +4 -0
  160. package/dist/config/config.d.ts.map +1 -0
  161. package/dist/config/config.js +42 -0
  162. package/dist/config/config.js.map +1 -0
  163. package/dist/config/default-config.d.ts +9 -0
  164. package/dist/config/default-config.d.ts.map +1 -0
  165. package/dist/config/default-config.js +94 -0
  166. package/dist/config/default-config.js.map +1 -0
  167. package/dist/config/env-vars.d.ts +15 -0
  168. package/dist/config/env-vars.d.ts.map +1 -0
  169. package/dist/config/env-vars.js +16 -0
  170. package/dist/config/env-vars.js.map +1 -0
  171. package/dist/config/merge-config.d.ts +7 -0
  172. package/dist/config/merge-config.d.ts.map +1 -0
  173. package/dist/config/merge-config.js +45 -0
  174. package/dist/config/merge-config.js.map +1 -0
  175. package/dist/config/paths.d.ts +25 -0
  176. package/dist/config/paths.d.ts.map +1 -0
  177. package/dist/config/paths.js +31 -0
  178. package/dist/config/paths.js.map +1 -0
  179. package/dist/config/zod-schema.d.ts +3114 -0
  180. package/dist/config/zod-schema.d.ts.map +1 -0
  181. package/dist/config/zod-schema.js +217 -0
  182. package/dist/config/zod-schema.js.map +1 -0
  183. package/dist/entry.d.ts +3 -0
  184. package/dist/entry.d.ts.map +1 -0
  185. package/dist/entry.js +70 -0
  186. package/dist/entry.js.map +1 -0
  187. package/dist/logger.d.ts +5 -0
  188. package/dist/logger.d.ts.map +1 -0
  189. package/dist/logger.js +42 -0
  190. package/dist/logger.js.map +1 -0
  191. package/dist/types/index.d.ts +215 -0
  192. package/dist/types/index.d.ts.map +1 -0
  193. package/dist/types/index.js +2 -0
  194. package/dist/types/index.js.map +1 -0
  195. package/package.json +62 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-schema.d.ts","sourceRoot":"","sources":["../../src/config/zod-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ import { z } from 'zod';
2
+ // ============================================================
3
+ // AgentLife Channel Config
4
+ // ============================================================
5
+ export const AgentLifeAccountSchema = z.object({
6
+ gateway_url: z.string().url('gateway_url must be a valid URL'),
7
+ bot_token: z.string().min(1, 'bot_token is required'),
8
+ poll_timeout: z.number().int().min(0).max(60).default(30),
9
+ retry_interval: z.number().int().min(1).default(5),
10
+ max_retry_interval: z.number().int().min(5).default(60),
11
+ });
12
+ export const AgentLifeChannelSchema = z.object({
13
+ gateway_url: z.string().url('gateway_url must be a valid URL').optional(),
14
+ bot_token: z.string().min(1, 'bot_token is required').optional(),
15
+ poll_timeout: z.number().int().min(0).max(60).default(30),
16
+ retry_interval: z.number().int().min(1).default(5),
17
+ max_retry_interval: z.number().int().min(5).default(60),
18
+ accounts: z.record(AgentLifeAccountSchema).optional(),
19
+ }).superRefine((value, ctx) => {
20
+ const hasTopLevelAccount = Boolean(value.gateway_url && value.bot_token);
21
+ const hasNamedAccounts = Boolean(value.accounts && Object.keys(value.accounts).length > 0);
22
+ if (!hasTopLevelAccount && !hasNamedAccounts) {
23
+ ctx.addIssue({
24
+ code: z.ZodIssueCode.custom,
25
+ message: 'agent-life requires either top-level gateway_url+bot_token or channels["agent-life"].accounts',
26
+ });
27
+ }
28
+ });
29
+ export const AGENT_LIFE_CHANNEL_ID = 'agent-life';
30
+ export const DEFAULT_AGENT_LIFE_ACCOUNT_ID = 'dlb-default';
31
+ export function normalizeAgentLifeChannelConfigs(raw) {
32
+ const normalized = [];
33
+ if (raw.accounts) {
34
+ for (const [accountId, config] of Object.entries(raw.accounts)) {
35
+ normalized.push({ accountId, config });
36
+ }
37
+ }
38
+ if (raw.gateway_url && raw.bot_token && !raw.accounts?.[DEFAULT_AGENT_LIFE_ACCOUNT_ID]) {
39
+ normalized.unshift({
40
+ accountId: DEFAULT_AGENT_LIFE_ACCOUNT_ID,
41
+ config: {
42
+ gateway_url: raw.gateway_url,
43
+ bot_token: raw.bot_token,
44
+ poll_timeout: raw.poll_timeout,
45
+ retry_interval: raw.retry_interval,
46
+ max_retry_interval: raw.max_retry_interval,
47
+ },
48
+ });
49
+ }
50
+ return normalized;
51
+ }
52
+ export function toPersistedAgentLifeChannelConfig(raw) {
53
+ const accounts = Object.fromEntries(normalizeAgentLifeChannelConfigs(raw).map(({ accountId, config }) => [accountId, config]));
54
+ return {
55
+ poll_timeout: raw.poll_timeout,
56
+ retry_interval: raw.retry_interval,
57
+ max_retry_interval: raw.max_retry_interval,
58
+ accounts,
59
+ };
60
+ }
61
+ // ============================================================
62
+ // CLI Backend Config — cliBackends 配置
63
+ // ============================================================
64
+ export const CliBackendConfigSchema = z.object({
65
+ command: z.string().min(1),
66
+ args: z.array(z.string()).optional(),
67
+ output: z.enum(['json', 'jsonl', 'text']).optional(),
68
+ resumeOutput: z.enum(['json', 'jsonl', 'text']).optional(),
69
+ runtimeMode: z.enum(['exec', 'app-server']).optional(),
70
+ appServer: z.object({
71
+ args: z.array(z.string()).optional(),
72
+ listen: z.string().min(1).optional(),
73
+ sessionSource: z.string().min(1).optional(),
74
+ startupTimeoutMs: z.number().int().positive().optional(),
75
+ requestTimeoutMs: z.number().int().positive().optional(),
76
+ serviceName: z.string().min(1).optional(),
77
+ experimentalApi: z.boolean().optional(),
78
+ optOutNotificationMethods: z.array(z.string()).optional(),
79
+ approvalPolicy: z.enum(['untrusted', 'on-failure', 'on-request', 'never']).optional(),
80
+ sandbox: z.enum(['read-only', 'workspace-write', 'danger-full-access']).optional(),
81
+ persistExtendedHistory: z.boolean().optional(),
82
+ experimentalRawEvents: z.boolean().optional(),
83
+ }).optional(),
84
+ input: z.enum(['arg', 'stdin']).optional(),
85
+ maxPromptArgChars: z.number().int().positive().optional(),
86
+ env: z.record(z.string()).optional(),
87
+ clearEnv: z.array(z.string()).optional(),
88
+ modelArg: z.string().optional(),
89
+ modelAliases: z.record(z.string()).optional(),
90
+ sessionArg: z.string().optional(),
91
+ sessionArgs: z.array(z.string()).optional(),
92
+ resumeArgs: z.array(z.string()).optional(),
93
+ sessionIdFields: z.array(z.string()).optional(),
94
+ sessionMode: z.enum(['always', 'existing', 'none']).optional(),
95
+ systemPromptArg: z.string().optional(),
96
+ systemPromptMode: z.enum(['append', 'replace']).optional(),
97
+ systemPromptWhen: z.enum(['first', 'always', 'never']).optional(),
98
+ imageArg: z.string().optional(),
99
+ imageMode: z.enum(['repeat', 'list']).optional(),
100
+ serialize: z.boolean().optional(),
101
+ reliability: z.object({
102
+ watchdog: z.object({
103
+ fresh: z.object({
104
+ noOutputTimeoutMs: z.number().int().positive().optional(),
105
+ noOutputTimeoutRatio: z.number().positive().optional(),
106
+ minMs: z.number().int().positive().optional(),
107
+ maxMs: z.number().int().positive().optional(),
108
+ }).optional(),
109
+ resume: z.object({
110
+ noOutputTimeoutMs: z.number().int().positive().optional(),
111
+ noOutputTimeoutRatio: z.number().positive().optional(),
112
+ minMs: z.number().int().positive().optional(),
113
+ maxMs: z.number().int().positive().optional(),
114
+ }).optional(),
115
+ }).optional(),
116
+ }).optional(),
117
+ });
118
+ // ============================================================
119
+ // Model Reference — provider/model 格式,支持 fallback
120
+ // ============================================================
121
+ export const ModelRefSchema = z.object({
122
+ primary: z.string().min(1),
123
+ fallbacks: z.array(z.string()).optional(),
124
+ });
125
+ // ============================================================
126
+ // Agent Defaults Config
127
+ // ============================================================
128
+ export const AgentDefaultsSchema = z.object({
129
+ model: ModelRefSchema,
130
+ cliBackends: z.record(CliBackendConfigSchema).optional(),
131
+ tools: z.object({
132
+ allow: z.array(z.string()).optional(),
133
+ deny: z.array(z.string()).optional(),
134
+ }).optional(),
135
+ max_tokens: z.number().int().positive().optional(),
136
+ env: z.record(z.string()).optional(),
137
+ clearEnv: z.array(z.string()).optional(),
138
+ });
139
+ // ============================================================
140
+ // Agent Config — agents.list[] 中的命名 agent
141
+ // ============================================================
142
+ const AGENT_ID_REGEX = /^[a-z0-9][a-z0-9_-]{0,63}$/;
143
+ export const AgentConfigSchema = z.object({
144
+ id: z.string().regex(AGENT_ID_REGEX, 'agentId must match ^[a-z0-9][a-z0-9_-]{0,63}$'),
145
+ default: z.boolean().optional(),
146
+ name: z.string().optional(),
147
+ model: z.union([ModelRefSchema, z.string()]).optional(),
148
+ workspace: z.string().optional(),
149
+ cliSessionId: z.string().optional(),
150
+ systemPrompt: z.string().optional(),
151
+ cliBackends: z.record(CliBackendConfigSchema.partial()).optional(),
152
+ env: z.record(z.string()).optional(),
153
+ clearEnv: z.array(z.string()).optional(),
154
+ tools: z.object({
155
+ allow: z.array(z.string()).optional(),
156
+ deny: z.array(z.string()).optional(),
157
+ }).optional(),
158
+ skills: z.array(z.string()).optional(),
159
+ identity: z.object({
160
+ name: z.string().optional(),
161
+ emoji: z.string().optional(),
162
+ }).optional(),
163
+ });
164
+ // ============================================================
165
+ // Binding Match — 路由匹配条件
166
+ // ============================================================
167
+ export const BindingMatchSchema = z.object({
168
+ channel: z.string().optional(),
169
+ accountId: z.string().optional(),
170
+ peer: z.object({
171
+ kind: z.enum(['private', 'group', 'multi_bot']).optional(),
172
+ id: z.string().optional(),
173
+ }).optional(),
174
+ userId: z.string().optional(),
175
+ });
176
+ export const AgentBindingSchema = z.object({
177
+ agentId: z.string().min(1),
178
+ comment: z.string().optional(),
179
+ match: BindingMatchSchema,
180
+ });
181
+ // ============================================================
182
+ // Files Config
183
+ // ============================================================
184
+ export const FilesConfigSchema = z.object({
185
+ temp_dir: z.string().default('/tmp/agent-life-bridge/files'),
186
+ max_file_size: z.number().int().positive().default(52428800), // 50MB
187
+ });
188
+ // ============================================================
189
+ // Logging Config
190
+ // ============================================================
191
+ export const LoggingConfigSchema = z.object({
192
+ level: z.enum(['trace', 'debug', 'info', 'warn', 'error', 'fatal']).default('info'),
193
+ pretty: z.boolean().default(false),
194
+ });
195
+ // ============================================================
196
+ // Skills Config
197
+ // ============================================================
198
+ export const SkillsConfigSchema = z.object({
199
+ dirs: z.array(z.string()).default(['./skills']),
200
+ });
201
+ // ============================================================
202
+ // Root Config Schema
203
+ // ============================================================
204
+ export const AppConfigSchema = z.object({
205
+ channels: z.object({
206
+ [AGENT_LIFE_CHANNEL_ID]: AgentLifeChannelSchema,
207
+ }),
208
+ agents: z.object({
209
+ defaults: AgentDefaultsSchema,
210
+ list: z.array(AgentConfigSchema).optional(),
211
+ }),
212
+ bindings: z.array(AgentBindingSchema).optional(),
213
+ skills: SkillsConfigSchema.default({}),
214
+ files: FilesConfigSchema.default({}),
215
+ logging: LoggingConfigSchema.default({}),
216
+ });
217
+ //# sourceMappingURL=zod-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-schema.js","sourceRoot":"","sources":["../../src/config/zod-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import './channels/agent-life.js';
3
+ //# sourceMappingURL=entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":";AAaA,OAAO,0BAA0B,CAAA"}
package/dist/entry.js ADDED
@@ -0,0 +1,70 @@
1
+ #!/usr/bin/env node
2
+ import { parseCliArgs, printHelp } from './cli/run-main.js';
3
+ import { cmdStart } from './cli/cmd-start.js';
4
+ import { cmdStop } from './cli/cmd-stop.js';
5
+ import { cmdStatus } from './cli/cmd-status.js';
6
+ import { cmdOnboard } from './cli/cmd-onboard.js';
7
+ import { cmdAddAgent } from './cli/cmd-add-agent.js';
8
+ import { cmdRestart } from './cli/cmd-restart.js';
9
+ import { cmdDoctor } from './cli/cmd-doctor.js';
10
+ import { cmdLogs } from './cli/cmd-logs.js';
11
+ import { cmdConfig } from './cli/cmd-config.js';
12
+ import { cmdUpdate } from './cli/cmd-update.js';
13
+ import { cmdVersion } from './cli/cmd-version.js';
14
+ import './channels/agent-life.js';
15
+ async function main() {
16
+ let args;
17
+ try {
18
+ args = parseCliArgs();
19
+ }
20
+ catch (error) {
21
+ console.error(error instanceof Error ? error.message : String(error));
22
+ process.exit(1);
23
+ }
24
+ switch (args.command) {
25
+ case 'help':
26
+ printHelp();
27
+ break;
28
+ case 'start':
29
+ await cmdStart(args);
30
+ break;
31
+ case 'stop':
32
+ await cmdStop(args);
33
+ break;
34
+ case 'status':
35
+ await cmdStatus(args);
36
+ break;
37
+ case 'onboard':
38
+ await cmdOnboard(args);
39
+ break;
40
+ case 'add-agent':
41
+ await cmdAddAgent(args);
42
+ break;
43
+ case 'restart':
44
+ await cmdRestart(args);
45
+ break;
46
+ case 'doctor':
47
+ await cmdDoctor(args);
48
+ break;
49
+ case 'logs':
50
+ await cmdLogs(args);
51
+ break;
52
+ case 'config':
53
+ await cmdConfig(args);
54
+ break;
55
+ case 'update':
56
+ await cmdUpdate(args);
57
+ break;
58
+ case 'version':
59
+ await cmdVersion(args);
60
+ break;
61
+ default:
62
+ printHelp();
63
+ process.exit(1);
64
+ }
65
+ }
66
+ main().catch(err => {
67
+ console.error('Fatal error:', err);
68
+ process.exit(1);
69
+ });
70
+ //# sourceMappingURL=entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,0BAA0B,CAAA;AAEjC,KAAK,UAAU,IAAI;IACjB,IAAI,IAAI,CAAA;IACR,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,EAAE,CAAA;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,KAAK,MAAM;YACT,SAAS,EAAE,CAAA;YACX,MAAK;QACP,KAAK,OAAO;YACV,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;YACpB,MAAK;QACP,KAAK,MAAM;YACT,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;YACnB,MAAK;QACP,KAAK,QAAQ;YACX,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;YACrB,MAAK;QACP,KAAK,SAAS;YACZ,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;YACtB,MAAK;QACP,KAAK,WAAW;YACd,MAAM,WAAW,CAAC,IAAI,CAAC,CAAA;YACvB,MAAK;QACP,KAAK,SAAS;YACZ,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;YACtB,MAAK;QACP,KAAK,QAAQ;YACX,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;YACrB,MAAK;QACP,KAAK,MAAM;YACT,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;YACnB,MAAK;QACP,KAAK,QAAQ;YACX,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;YACrB,MAAK;QACP,KAAK,QAAQ;YACX,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;YACrB,MAAK;QACP,KAAK,SAAS;YACZ,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;YACtB,MAAK;QACP;YACE,SAAS,EAAE,CAAA;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { Logger } from './types/index.js';
2
+ export declare function resolveLogFilePath(date?: Date): string;
3
+ export declare function createLogger(level?: string, pretty?: boolean): Logger;
4
+ export declare function getLogger(): Logger;
5
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAI9C,wBAAgB,kBAAkB,CAAC,IAAI,OAAa,GAAG,MAAM,CAG5D;AAED,wBAAgB,YAAY,CAAC,KAAK,SAAS,EAAE,MAAM,UAAQ,GAAG,MAAM,CA+BnE;AAED,wBAAgB,SAAS,IAAI,MAAM,CAKlC"}
package/dist/logger.js ADDED
@@ -0,0 +1,42 @@
1
+ import { mkdirSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import pino from 'pino';
4
+ import { DATA_LOGS_DIR } from './config/paths.js';
5
+ let _logger = null;
6
+ export function resolveLogFilePath(date = new Date()) {
7
+ const day = date.toISOString().slice(0, 10);
8
+ return join(DATA_LOGS_DIR, `agent-life-bridge-${day}.log`);
9
+ }
10
+ export function createLogger(level = 'info', pretty = false) {
11
+ mkdirSync(DATA_LOGS_DIR, { recursive: true });
12
+ const fileDestination = pino.destination({
13
+ dest: resolveLogFilePath(),
14
+ mkdir: true,
15
+ sync: false,
16
+ });
17
+ const stdoutDestination = pretty
18
+ ? pino.transport({
19
+ target: 'pino-pretty',
20
+ options: {
21
+ colorize: true,
22
+ translateTime: 'SYS:standard',
23
+ },
24
+ })
25
+ : pino.destination({ dest: 1, sync: false });
26
+ const streams = [
27
+ { stream: stdoutDestination },
28
+ { stream: fileDestination },
29
+ ];
30
+ _logger = pino({
31
+ level,
32
+ base: { pid: process.pid },
33
+ }, pino.multistream(streams));
34
+ return _logger;
35
+ }
36
+ export function getLogger() {
37
+ if (!_logger) {
38
+ _logger = createLogger();
39
+ }
40
+ return _logger;
41
+ }
42
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD,IAAI,OAAO,GAAkB,IAAI,CAAA;AAEjC,MAAM,UAAU,kBAAkB,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3C,OAAO,IAAI,CAAC,aAAa,EAAE,qBAAqB,GAAG,MAAM,CAAC,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAK,GAAG,MAAM,EAAE,MAAM,GAAG,KAAK;IACzD,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAE7C,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,IAAI,EAAE,kBAAkB,EAAE;QAC1B,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,KAAK;KACZ,CAAC,CAAA;IACF,MAAM,iBAAiB,GAAG,MAAM;QAC9B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACf,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE;gBACP,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,cAAc;aAC9B;SACF,CAAC;QACF,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG;QACd,EAAE,MAAM,EAAE,iBAAiB,EAAE;QAC7B,EAAE,MAAM,EAAE,eAAe,EAAE;KAC5B,CAAA;IAED,OAAO,GAAG,IAAI,CACZ;QACE,KAAK;QACL,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;KAC3B,EACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAC1B,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,YAAY,EAAE,CAAA;IAC1B,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,215 @@
1
+ import type { Logger as PinoLogger } from 'pino';
2
+ export type Logger = PinoLogger;
3
+ export interface SessionEnvelope {
4
+ /** Stable agent-life session key (e.g. bot_token + chat_id), not the CLI backend session id */
5
+ sessionId: string;
6
+ source: {
7
+ channel: string;
8
+ accountId?: string;
9
+ chatId: number | string;
10
+ messageThreadId?: number;
11
+ chatType: 'private' | 'group' | 'multi_bot';
12
+ userId: number | string;
13
+ senderName?: string;
14
+ username?: string;
15
+ messageId: number;
16
+ replyToMessageId?: number;
17
+ agentLifeSessionKey?: string;
18
+ };
19
+ content: {
20
+ /** Full message text (after @mention stripping if applicable) */
21
+ text: string;
22
+ /** Prompt shaping mode for downstream CLI backends */
23
+ promptMode?: 'default' | 'cli_passthrough';
24
+ /** @mention names extracted from the message */
25
+ mentions: string[];
26
+ /** File attachments (already downloaded to local temp path) */
27
+ attachments: Array<{
28
+ type: 'document' | 'photo' | 'audio' | 'video';
29
+ localPath: string;
30
+ mimeType?: string;
31
+ fileName?: string;
32
+ }>;
33
+ };
34
+ meta: {
35
+ timestamp: number;
36
+ /** Original raw update object from the channel */
37
+ raw: object;
38
+ };
39
+ }
40
+ export interface ChannelContext {
41
+ dispatch(envelope: SessionEnvelope): Promise<void>;
42
+ logger: Logger;
43
+ }
44
+ export interface ChannelPlugin {
45
+ id: string;
46
+ setup(config: unknown, ctx: ChannelContext): Promise<void>;
47
+ teardown(): Promise<void>;
48
+ }
49
+ export interface CliBackendConfig {
50
+ command: string;
51
+ args?: string[];
52
+ output?: 'json' | 'jsonl' | 'text';
53
+ resumeOutput?: 'json' | 'jsonl' | 'text';
54
+ runtimeMode?: 'exec' | 'app-server';
55
+ appServer?: {
56
+ args?: string[];
57
+ listen?: string;
58
+ sessionSource?: string;
59
+ startupTimeoutMs?: number;
60
+ requestTimeoutMs?: number;
61
+ serviceName?: string;
62
+ experimentalApi?: boolean;
63
+ optOutNotificationMethods?: string[];
64
+ approvalPolicy?: 'untrusted' | 'on-failure' | 'on-request' | 'never';
65
+ sandbox?: 'read-only' | 'workspace-write' | 'danger-full-access';
66
+ persistExtendedHistory?: boolean;
67
+ experimentalRawEvents?: boolean;
68
+ };
69
+ input?: 'arg' | 'stdin';
70
+ maxPromptArgChars?: number;
71
+ env?: Record<string, string>;
72
+ clearEnv?: string[];
73
+ modelArg?: string;
74
+ modelAliases?: Record<string, string>;
75
+ sessionArg?: string;
76
+ sessionArgs?: string[];
77
+ resumeArgs?: string[];
78
+ sessionIdFields?: string[];
79
+ sessionMode?: 'always' | 'existing' | 'none';
80
+ systemPromptArg?: string;
81
+ systemPromptMode?: 'append' | 'replace';
82
+ systemPromptWhen?: 'first' | 'always' | 'never';
83
+ imageArg?: string;
84
+ imageMode?: 'repeat' | 'list';
85
+ serialize?: boolean;
86
+ reliability?: {
87
+ watchdog?: {
88
+ fresh?: {
89
+ noOutputTimeoutMs?: number;
90
+ noOutputTimeoutRatio?: number;
91
+ minMs?: number;
92
+ maxMs?: number;
93
+ };
94
+ resume?: {
95
+ noOutputTimeoutMs?: number;
96
+ noOutputTimeoutRatio?: number;
97
+ minMs?: number;
98
+ maxMs?: number;
99
+ };
100
+ };
101
+ };
102
+ }
103
+ export interface SessionStoreEntry {
104
+ runtimeSessionId: string;
105
+ updatedAt: number;
106
+ provider?: string;
107
+ model?: string;
108
+ cliSessionIds?: Record<string, string>;
109
+ /** Per-session workspace directory override (set via /cwd directive) */
110
+ workspaceDir?: string;
111
+ /** Root session -> currently active derived session key created via /new */
112
+ activeSessionKey?: string;
113
+ /** Monotonic counter for derived session keys */
114
+ branchCounter?: number;
115
+ /** Parent/root session key for derived sessions */
116
+ parentSessionKey?: string;
117
+ }
118
+ export interface CliRunUsage {
119
+ input?: number;
120
+ output?: number;
121
+ cacheRead?: number;
122
+ cacheWrite?: number;
123
+ total?: number;
124
+ }
125
+ export interface CliRunDiagnostics {
126
+ queueWaitMs: number;
127
+ commandElapsedMs: number;
128
+ totalElapsedMs: number;
129
+ outputMode: 'json' | 'jsonl' | 'text' | 'app-server';
130
+ runtimeMode?: 'exec' | 'app-server';
131
+ hadStdout: boolean;
132
+ hadStderr: boolean;
133
+ firstStdoutMs?: number;
134
+ firstStderrMs?: number;
135
+ threadStartedMs?: number;
136
+ firstAgentMessageMs?: number;
137
+ turnCompletedMs?: number;
138
+ reconnectCount: number;
139
+ fellBackToHttps: boolean;
140
+ runtimeRestartCount?: number;
141
+ threadOperation?: 'start' | 'resume' | 'reuse';
142
+ threadOperationElapsedMs?: number;
143
+ cliSessionIdSource?: 'parsed' | 'stream' | 'existing' | 'runtime';
144
+ }
145
+ export interface CliRunResult {
146
+ text: string;
147
+ messages?: string[];
148
+ provider: string;
149
+ model: string;
150
+ cliSessionId?: string;
151
+ isResume: boolean;
152
+ usage?: CliRunUsage;
153
+ diagnostics?: CliRunDiagnostics;
154
+ }
155
+ export interface CliRunCallbacks {
156
+ onProcessing?: () => Promise<void> | void;
157
+ onProgress?: (text: string) => Promise<void> | void;
158
+ onAssistantMessage?: (text: string) => Promise<void> | void;
159
+ }
160
+ export interface CliRunParams {
161
+ envelope: SessionEnvelope;
162
+ provider: string;
163
+ model: string;
164
+ workspaceDir: string;
165
+ timeoutMs: number;
166
+ systemPrompt?: string;
167
+ callbacks?: CliRunCallbacks;
168
+ /** Agent-level environment variables (merged on top of backend env) */
169
+ agentEnv?: Record<string, string>;
170
+ /** Environment variable keys to clear before spawning CLI */
171
+ agentClearEnv?: string[];
172
+ /** FCH runtime context propagated to Codex outbound requests */
173
+ fchContext?: {
174
+ sessionId: string;
175
+ agentId: string;
176
+ applyId: string;
177
+ requestId: string;
178
+ };
179
+ /** Agent-level cliBackends (merged defaults+agent), used instead of global config when provided */
180
+ cliBackends?: Record<string, CliBackendConfig>;
181
+ }
182
+ export interface CliTurnExecutor {
183
+ run(params: CliRunParams): Promise<CliRunResult>;
184
+ }
185
+ export interface ResolvedAgent {
186
+ id: string;
187
+ name: string;
188
+ model: {
189
+ primary: string;
190
+ fallbacks?: string[];
191
+ };
192
+ workspace: string;
193
+ cliSessionId?: string;
194
+ systemPrompt?: string;
195
+ cliBackends: Record<string, CliBackendConfig>;
196
+ env: Record<string, string>;
197
+ clearEnv: string[];
198
+ tools?: {
199
+ allow?: string[];
200
+ deny?: string[];
201
+ };
202
+ skills?: string[];
203
+ identity?: {
204
+ name?: string;
205
+ emoji?: string;
206
+ };
207
+ stateDir: string;
208
+ }
209
+ export type BotStatus = 'pending' | 'processing' | 'read';
210
+ export interface ManagedFileLayout {
211
+ tempDir: string;
212
+ downloadPath: `${string}/${string}`;
213
+ maxFileSize: number;
214
+ }
215
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}