jeopi-cli 16.6.11 → 16.6.12

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.
@@ -37,7 +37,7 @@ export interface InteractiveModeNotify {
37
37
  message: string;
38
38
  }
39
39
  export declare function buildModelScopeNotification(scopedModelsForDisplay: readonly Pick<ScopedModel, "model" | "thinkingLevel" | "explicitThinkingLevel">[], startupQuiet: boolean): InteractiveModeNotify | null;
40
- export declare function submitInteractiveInput(mode: Pick<InteractiveMode, "markPendingSubmissionStarted" | "finishPendingSubmission" | "showError" | "checkShutdownRequested">, session: Pick<AgentSession, "prompt" | "promptCustomMessage" | "isStreaming">, input: SubmittedUserInput): Promise<void>;
40
+ export declare function submitInteractiveInput(mode: Pick<InteractiveMode, "markPendingSubmissionStarted" | "finishPendingSubmission" | "showError" | "checkShutdownRequested" | "liveDiscordBridge">, session: Pick<AgentSession, "prompt" | "promptCustomMessage" | "isStreaming">, input: SubmittedUserInput): Promise<void>;
41
41
  type AcpSessionFactory = (cwd: string) => Promise<AgentSession>;
42
42
  export interface AcpSessionFactoryOptions {
43
43
  baseOptions: CreateAgentSessionOptions;
@@ -0,0 +1,12 @@
1
+ import type { MessengerMessage } from "./types";
2
+ export declare function messengerArtifactDirectory(root: string, message: MessengerMessage): string;
3
+ export declare function prepareMessengerArtifactDirectory(root: string, message: MessengerMessage): Promise<string>;
4
+ export declare function downloadMessengerAttachments(directory: string, message: MessengerMessage, signal: AbortSignal, fetchImpl?: typeof fetch, timeoutMs?: number): Promise<string[]>;
5
+ export declare function messengerArtifactPrompt(root: string | undefined, message: MessengerMessage, signal: AbortSignal): Promise<string>;
6
+ export declare function readMessengerArtifacts(root: string, message: MessengerMessage, text: string): Promise<{
7
+ text: string;
8
+ files: {
9
+ name: string;
10
+ data: Uint8Array;
11
+ }[];
12
+ }>;
@@ -1,3 +1,4 @@
1
+ import type { UserMessage } from "jeopi-ai";
1
2
  import type { InteractiveModeContext } from "../modes/types";
2
3
  import { createDiscordAdapter, type DiscordTransportDeps } from "./discord";
3
4
  import { createMessengerGateway, type MessengerGateway } from "./gateway";
@@ -12,6 +13,9 @@ export interface LiveDiscordBridgeDependencies {
12
13
  export interface LiveDiscordBridge {
13
14
  readonly gateway: MessengerGateway;
14
15
  readonly active: boolean;
16
+ readonly relayDestination: string | undefined;
17
+ setRelayDestination(channelId: string | undefined): void;
18
+ withLocalTurn<T>(text: string, submit: (onPreparedUserMessage: (message: UserMessage) => void) => Promise<T>): Promise<T>;
15
19
  run(signal?: AbortSignal): Promise<void>;
16
20
  close(): Promise<void>;
17
21
  }
@@ -7,19 +7,29 @@ export interface MessengerMessage {
7
7
  messageId: string;
8
8
  text: string;
9
9
  threadId?: string;
10
+ parentChannelId?: string;
10
11
  direct: boolean;
11
12
  mentioned: boolean;
13
+ attachments?: {
14
+ url: string;
15
+ filename: string;
16
+ size: number;
17
+ }[];
12
18
  }
13
19
  export interface MessengerAdapter {
14
20
  platform: MessengerPlatform;
15
21
  start(onMessage: (message: MessengerMessage) => Promise<void>, signal: AbortSignal): Promise<void>;
16
22
  send(message: MessengerMessage, text: string, signal?: AbortSignal): Promise<void>;
23
+ prepare?(message: MessengerMessage, signal?: AbortSignal): Promise<MessengerMessage>;
24
+ status?(message: MessengerMessage, status: "processing" | "success" | "failure", signal?: AbortSignal): Promise<void>;
17
25
  }
18
26
  export interface MessengerPlatformConfig {
19
27
  tokenEnv: string;
20
28
  appTokenEnv?: string;
21
29
  allowedUserIds: string[];
22
30
  allowedChannelIds?: string[];
31
+ /** Dedicated operator-approved directory for Discord output files. */
32
+ artifactDir?: string;
23
33
  }
24
34
  export interface MessengerConfig {
25
35
  cwd: string;
@@ -14,7 +14,7 @@
14
14
  */
15
15
  import { Agent, type AgentEvent, type AgentMessage, type AgentState, type AgentTool, type StreamFn, ThinkingLevel, type ToolChoiceDirective } from "jeopi-agent-core";
16
16
  import { type CompactionResult, type ShakeConfig } from "jeopi-agent-core/compaction";
17
- import type { AssistantMessage, Context, ImageContent, Message, MessageAttribution, Model, ProviderSessionState, ResetCreditAccountStatus, ResetCreditRedeemOutcome, ResetCreditTarget, ServiceTier, ServiceTierByFamily, ServiceTierFamily, SimpleStreamOptions, TextContent, ToolChoice, UsageReport } from "jeopi-ai";
17
+ import type { AssistantMessage, Context, ImageContent, Message, MessageAttribution, Model, ProviderSessionState, ResetCreditAccountStatus, ResetCreditRedeemOutcome, ResetCreditTarget, ServiceTier, ServiceTierByFamily, ServiceTierFamily, SimpleStreamOptions, TextContent, ToolChoice, UsageReport, UserMessage } from "jeopi-ai";
18
18
  import { Effort } from "jeopi-ai";
19
19
  import type { InMemorySnapshotStore } from "jeopi-hashline";
20
20
  import { postmortem } from "jeopi-utils";
@@ -360,6 +360,8 @@ export interface PromptOptions {
360
360
  userInitiated?: boolean;
361
361
  /** Explicit billing/initiator attribution for the prompt. Defaults to user prompts as `user` and synthetic prompts as `agent`. */
362
362
  attribution?: MessageAttribution;
363
+ /** Observe the exact user message prepared for this submission, including queued messages. */
364
+ onPreparedUserMessage?: (message: UserMessage) => void;
363
365
  /** Skip pre-send compaction checks for this prompt (internal use for maintenance flows). */
364
366
  skipCompactionCheck?: boolean;
365
367
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "jeopi-cli",
4
- "version": "16.6.11",
4
+ "version": "16.6.12",
5
5
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
6
6
  "homepage": "https://github.com/akillness/jeopi",
7
7
  "author": "Can Boluk",
@@ -57,17 +57,17 @@
57
57
  "@agentclientprotocol/sdk": "0.25.0",
58
58
  "@babel/parser": "^7.29.7",
59
59
  "@mozilla/readability": "^0.6.0",
60
- "jeopi-hashline": "16.6.11",
61
- "jeopi-stats": "16.6.11",
62
- "jeopi-agent-core": "16.6.11",
63
- "jeopi-ai": "16.6.11",
64
- "jeopi-catalog": "16.6.11",
65
- "jeopi-mnemopi": "16.6.11",
66
- "jeopi-natives": "16.6.11",
67
- "jeopi-tui": "16.6.11",
68
- "jeopi-utils": "16.6.11",
69
- "jeopi-wire": "16.6.11",
70
- "jeopi-snapcompact": "16.6.11",
60
+ "jeopi-hashline": "16.6.12",
61
+ "jeopi-stats": "16.6.12",
62
+ "jeopi-agent-core": "16.6.12",
63
+ "jeopi-ai": "16.6.12",
64
+ "jeopi-catalog": "16.6.12",
65
+ "jeopi-mnemopi": "16.6.12",
66
+ "jeopi-natives": "16.6.12",
67
+ "jeopi-tui": "16.6.12",
68
+ "jeopi-utils": "16.6.12",
69
+ "jeopi-wire": "16.6.12",
70
+ "jeopi-snapcompact": "16.6.12",
71
71
  "@opentelemetry/api": "^1.9.1",
72
72
  "@opentelemetry/context-async-hooks": "^2.7.1",
73
73
  "@opentelemetry/exporter-trace-otlp-proto": "^0.218.0",