@keyou007/agent-bot 0.1.19-alpha.0 → 0.1.19

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 (42) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +3 -0
  3. package/README.zh.md +3 -0
  4. package/dist/cli/controlProtocol.js.map +1 -1
  5. package/dist/cli/help.js +2 -0
  6. package/dist/cli/help.js.map +1 -1
  7. package/dist/cli.js +20 -0
  8. package/dist/cli.js.map +1 -1
  9. package/dist/codex/CodexProcessManager.js +48 -0
  10. package/dist/codex/CodexProcessManager.js.map +1 -1
  11. package/dist/codex/CodexRuntime.js +94 -3
  12. package/dist/codex/CodexRuntime.js.map +1 -1
  13. package/dist/commands/CommandRouter.js +5 -0
  14. package/dist/commands/CommandRouter.js.map +1 -1
  15. package/dist/feishu/CardRenderer.js +83 -0
  16. package/dist/feishu/CardRenderer.js.map +1 -1
  17. package/dist/feishu/MergedForwardMessage.js +6 -1
  18. package/dist/feishu/MergedForwardMessage.js.map +1 -1
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/proxy/ProxySessionController.js +455 -7
  22. package/dist/proxy/ProxySessionController.js.map +1 -1
  23. package/dist/state/StateStore.js +10 -0
  24. package/dist/state/StateStore.js.map +1 -1
  25. package/docs/technical-reference.md +2 -2
  26. package/docs/technical-reference.zh.md +2 -2
  27. package/npm-shrinkwrap.json +2 -2
  28. package/package.json +1 -1
  29. package/skills/agent-bot/SKILL.md +3 -0
  30. package/src/cli/controlProtocol.ts +8 -0
  31. package/src/cli/help.ts +2 -0
  32. package/src/cli.ts +33 -0
  33. package/src/codex/CodexProcessManager.ts +43 -0
  34. package/src/codex/CodexRuntime.ts +112 -3
  35. package/src/commands/CommandRouter.ts +4 -0
  36. package/src/commands/commandTypes.ts +1 -0
  37. package/src/feishu/CardRenderer.ts +96 -0
  38. package/src/feishu/MergedForwardMessage.ts +5 -1
  39. package/src/index.ts +2 -0
  40. package/src/proxy/ProxySessionController.ts +553 -9
  41. package/src/runtime/types.ts +7 -0
  42. package/src/state/StateStore.ts +11 -0
@@ -209,6 +209,11 @@ export interface RuntimeExecutionSettings {
209
209
  permissionMode: PermissionMode;
210
210
  }
211
211
 
212
+ export interface RuntimeReleaseResult {
213
+ status: "released" | "busy";
214
+ activeSessionIds?: string[];
215
+ }
216
+
212
217
  export interface ReasoningEffortOption {
213
218
  value: string;
214
219
  description?: string;
@@ -225,6 +230,7 @@ export interface AgentRuntime {
225
230
  readSessionMetadata(remoteSessionId: string): Promise<RuntimeSessionMetadata>;
226
231
  listRemoteSessions?(input?: { searchTerm?: string; cursor?: string; limit?: number }): Promise<RemoteSessionPage>;
227
232
  readRemoteSession?(remoteSessionId: string): Promise<RemoteSessionSummary>;
233
+ readRemoteForkSource?(remoteSessionId: string): Promise<RemoteSessionSummary>;
228
234
  inspectRemoteSessionActivity?(remoteSessionId: string): Promise<RemoteSessionActivity>;
229
235
  synchronizeSession(sessionId: string): Promise<RuntimeSession>;
230
236
  startTurn(sessionId: string, prompt: RuntimePrompt): Promise<string>;
@@ -244,6 +250,7 @@ export interface AgentRuntime {
244
250
  respondToApproval(sessionId: string, requestId: string, decision: ApprovalDecision): Promise<void>;
245
251
  listModels(): Promise<ModelOption[]>;
246
252
  listModelProviders?(): Promise<ModelProviderOption[]>;
253
+ release?(options?: { force?: boolean }): Promise<RuntimeReleaseResult>;
247
254
  onEvent(listener: (event: RuntimeEvent) => void): () => void;
248
255
  close(): void;
249
256
  }
@@ -1741,6 +1741,17 @@ export class StateStore {
1741
1741
  .run(contextKey, eventType, JSON.stringify(payload), new Date().toISOString());
1742
1742
  }
1743
1743
 
1744
+ hasInjectedTopicRoot(localSessionId: string, rootMessageId: string): boolean {
1745
+ return Boolean(this.db.prepare(`
1746
+ SELECT 1
1747
+ FROM audit_events
1748
+ WHERE event_type = 'topic_root_injected'
1749
+ AND json_extract(payload_json, '$.localSessionId') = ?
1750
+ AND json_extract(payload_json, '$.rootMessageId') = ?
1751
+ LIMIT 1
1752
+ `).get(localSessionId, rootMessageId));
1753
+ }
1754
+
1744
1755
  claimInboundEvent(eventId: string, eventKind: "message" | "card_action"): boolean {
1745
1756
  const result = this.db
1746
1757
  .prepare(