@workerdeck/core 3.4.0 → 3.6.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.
- package/build/index.d.mts +25 -2
- package/build/index.mjs +117 -5
- package/build/index.mjs.map +1 -1
- package/package.json +3 -3
package/build/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { McpServerStatus, Options, Query, SDKMessage, SDKSessionInfo, SDKUserMessage, SessionMessage } from "@anthropic-ai/claude-agent-sdk";
|
|
2
|
-
import { ApiMessage, ByModel, ChecklistItem, ContextReading, ContextUsageCategory, CostBreakdown, CreateSessionRequest, EngineCapabilities, McpServerConfigWire, McpServerStatusInfo, MessageAttachment, MessageOrigin, ModelOption, PeerSessionSummary, PermissionDecisionSource, PermissionMode, PermissionRequest, PricingTable, ProfileEngine, ProfileInfo, ProviderContextWindow, SdkSessionSummary, SessionEvent, SessionEventBody, SessionInfo, SessionStatus, ShellEndReason, ShellInfo, ShellOwner, ShellStatus, ToolCallRequestFrame, ToolExecutionBackend, ToolExecutionOutput } from "@workerdeck/protocol";
|
|
2
|
+
import { ApiMessage, ByModel, ChecklistItem, ContextReading, ContextUsageCategory, CostBreakdown, CreateSessionRequest, EngineCapabilities, McpServerConfigWire, McpServerStatusInfo, MessageAttachment, MessageOrigin, ModelOption, PeerSessionSummary, PermissionDecisionSource, PermissionMode, PermissionRequest, PricingTable, ProfileEngine, ProfileInfo, ProviderContextWindow, SdkSessionSummary, SessionEvent, SessionEventBody, SessionInfo, SessionStatus, ShellEndReason, ShellInfo, ShellOwner, ShellStatus, StatusLabel, StatusLabelInput, ToolCallRequestFrame, ToolExecutionBackend, ToolExecutionOutput } from "@workerdeck/protocol";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { LanguageModel, LanguageModel as LanguageModel$1, ModelMessage, Tool, Tool as Tool$1, ToolSet, ToolSet as ToolSet$1 } from "ai";
|
|
5
5
|
import { SandboxEngine, SandboxVfs } from "@workerdeck/sandbox";
|
|
@@ -26,6 +26,15 @@ type GatewayToolSpec<N extends string = string> = {
|
|
|
26
26
|
inputSchema: Record<string, unknown>;
|
|
27
27
|
};
|
|
28
28
|
//#endregion
|
|
29
|
+
//#region src/lib/avatar-tool.d.ts
|
|
30
|
+
interface AvatarDirectory {
|
|
31
|
+
change(sessionId: string, seed?: string): Promise<string>;
|
|
32
|
+
}
|
|
33
|
+
declare const CHANGE_AVATAR_TOOL = "change_avatar";
|
|
34
|
+
declare const AVATAR_SEED_MAX = 64;
|
|
35
|
+
declare function installAvatarDirectory(directory: AvatarDirectory | undefined): void;
|
|
36
|
+
declare function avatarDirectoryHandle(own?: () => AvatarDirectory | undefined): AvatarDirectory;
|
|
37
|
+
//#endregion
|
|
29
38
|
//#region src/lib/context-reset.d.ts
|
|
30
39
|
type ContextResetRequest = {
|
|
31
40
|
prompt: string;
|
|
@@ -402,6 +411,7 @@ type EngineRunnerConfig = CreateSessionRequest & {
|
|
|
402
411
|
instructions?: SessionInstructions;
|
|
403
412
|
defaultApprovalTimeoutMs?: number | null;
|
|
404
413
|
peers?: PeerDirectory;
|
|
414
|
+
avatar?: AvatarDirectory;
|
|
405
415
|
contextReset?: ContextResetDirectory;
|
|
406
416
|
shells?: ShellDirectory;
|
|
407
417
|
shellAgentWrite?: ShellAgentWrite;
|
|
@@ -409,6 +419,7 @@ type EngineRunnerConfig = CreateSessionRequest & {
|
|
|
409
419
|
fallbackTitle?: string;
|
|
410
420
|
startAsleep?: boolean;
|
|
411
421
|
effortDefaults?: Record<string, string>;
|
|
422
|
+
statusLabel?: StatusLabel;
|
|
412
423
|
};
|
|
413
424
|
type ParkedExecution = {
|
|
414
425
|
executionId: string;
|
|
@@ -465,6 +476,7 @@ interface Runner {
|
|
|
465
476
|
reconnectMcpServer?(name: string): Promise<void>;
|
|
466
477
|
setMcpServerEnabled?(name: string, enabled: boolean): Promise<void>;
|
|
467
478
|
setTitle(title: string | undefined): void;
|
|
479
|
+
setStatusLabel?(label: StatusLabelInput | null): StatusLabel | null;
|
|
468
480
|
resolvePermission(requestId: string, decision: PermissionDecision): boolean;
|
|
469
481
|
interrupt(): Promise<void>;
|
|
470
482
|
stopTask?(toolUseId: string): Promise<boolean>;
|
|
@@ -492,6 +504,7 @@ declare class EventLog {
|
|
|
492
504
|
get proseCount(): number;
|
|
493
505
|
get contextUsage(): ContextReading | undefined;
|
|
494
506
|
get checklist(): ChecklistItem[] | undefined;
|
|
507
|
+
get statusLabel(): StatusLabel | null | undefined;
|
|
495
508
|
get resetSeq(): number;
|
|
496
509
|
get lastActivityAt(): number | undefined;
|
|
497
510
|
append(body: SessionEventBody): SessionEvent;
|
|
@@ -639,9 +652,15 @@ type SessionReportInput = {
|
|
|
639
652
|
declare const SESSION_INFO_TOOL = "session_info";
|
|
640
653
|
declare function buildSessionReport(input: SessionReportInput): SessionReport;
|
|
641
654
|
//#endregion
|
|
655
|
+
//#region src/lib/status-label.d.ts
|
|
656
|
+
type StatusLabelSink = (label: StatusLabelInput | null) => StatusLabel | null;
|
|
657
|
+
declare const SET_STATUS_TOOL = "set_status";
|
|
658
|
+
//#endregion
|
|
642
659
|
//#region src/lib/session-tools.d.ts
|
|
643
660
|
type SessionToolSources = {
|
|
644
661
|
report?: SessionReportSource;
|
|
662
|
+
status?: StatusLabelSink;
|
|
663
|
+
avatar?: AvatarDirectory;
|
|
645
664
|
reset?: ContextResetDirectory;
|
|
646
665
|
peers?: PeerDirectory;
|
|
647
666
|
shells?: ShellDirectory;
|
|
@@ -676,6 +695,7 @@ declare abstract class EngineRunner<C extends EngineRunnerConfig> {
|
|
|
676
695
|
get lastSeq(): number;
|
|
677
696
|
get pendingApprovals(): PermissionRequest[];
|
|
678
697
|
setTitle(title: string | undefined): void;
|
|
698
|
+
setStatusLabel(input: StatusLabelInput | null): StatusLabel | null;
|
|
679
699
|
carryCost(state: CostLedgerState): void;
|
|
680
700
|
costState(): CostLedgerState;
|
|
681
701
|
resolvePermission(requestId: string, decision: PermissionDecision): boolean;
|
|
@@ -704,6 +724,7 @@ declare abstract class EngineRunner<C extends EngineRunnerConfig> {
|
|
|
704
724
|
scope: Record<string, string> | undefined;
|
|
705
725
|
agentContextReset: true | undefined;
|
|
706
726
|
title: string | undefined;
|
|
727
|
+
statusLabel: StatusLabel | undefined;
|
|
707
728
|
costUsd: number | undefined;
|
|
708
729
|
usageByModel: import("@workerdeck/protocol").ByModel | undefined;
|
|
709
730
|
lastActivityAt: number | undefined;
|
|
@@ -1038,6 +1059,8 @@ type ToolContextOptions = {
|
|
|
1038
1059
|
shellWrite?: boolean;
|
|
1039
1060
|
selfId?: () => string;
|
|
1040
1061
|
report?: SessionReportSource;
|
|
1062
|
+
status?: StatusLabelSink;
|
|
1063
|
+
avatar?: AvatarDirectory;
|
|
1041
1064
|
};
|
|
1042
1065
|
type ToolContext = {
|
|
1043
1066
|
vfs: SandboxVfs;
|
|
@@ -1422,5 +1445,5 @@ declare class JsonRpcStdioConnection {
|
|
|
1422
1445
|
//#region src/engines/provider/adapter.d.ts
|
|
1423
1446
|
declare const providerAdapter: EngineAdapter;
|
|
1424
1447
|
//#endregion
|
|
1425
|
-
export { AiSdkRunner, type AiSdkRunnerConfig, type AiSdkSessionState, type AppServerConnectFn, type AppServerConnectOptions, type AppServerConnection, type AppServerHistoryTurn, type AppServerItem, type AppServerThreadListResponse, type AppServerThreadSummary, type AppServerTokenUsage, type AppServerTurn, type AppServerUserInput, type AttachmentInput, type AttachmentKind, type BridgeAnswer, BrowserBridgeExecutor, type BrowserBridgeExecutorOptions, CLAUDE_CATALOG, CODEX_CATALOG, CONTEXT_RESET_PROMPT_MAX, CONTEXT_RESET_REASON_MAX, CONTEXT_RESET_TOOL, type ClaudeAuthProbe, type ClaudeAuthStatus, type ClearContextOptions, type CodexAdapterConfig, CodexRunner, type CodexRunnerConfig, type ContextResetDirectory, type ContextResetRequest, type CostFigures, CostLedger, type CostLedgerState, type DeferredDispatch, DeferredExecutor, type DeferredExecutorOptions, type EngineAdapter, type EngineAvailability, type EngineRunnerConfig, type EngineRunnerRequest, type EngineSessionOptions, GATEWAY_SECRET_ENV_KEYS, type HeadTail, type HeadTailOptions, type HistoryFn, type HostFetch, type HostToolDefinition, InputQueue, type InstructionsContext, JsonRpcError, JsonRpcStdioConnection, type LanguageModel, type LocalCommandEmit, type LocalCommandEvent, LocalCommandQueue, type LocalCommandResult, type LocalShellSource, type McpConnection, type ModelCatalog, PEER_MCP_SERVER, PEER_MESSAGE_MAX_CHARS, PEER_RECENT_DEFAULT, PEER_RECENT_MAX, PEER_TOOL_NAMES, type ParkedExecution, type PeerDirectory, type PeerMention, type PeerPeek, type PeerSendOptions, type PeerSendResult, type PeerSessionSummary, type PeerToolName, type PeerToolSpec, type PendingEntry, type PendingKind, type PendingOutcome, PendingRequestRegistry, type PendingToolCall, type PermissionDecision, type QueryFn, QuickJsExecutor, type QuickJsExecutorOptions, type RegisterOptions, type Runner, type RunnerSnapshot, SESSION_INFO_TOOL, SHELL_KEYS_MAX, SHELL_KEY_NAMES, SHELL_READ_TOOL_NAMES, SHELL_REFUSAL, SHELL_TOOL_NAMES, SHELL_TOOL_SHAPES, SHELL_WRITE_REFUSAL, SHELL_WRITE_TOOL_NAMES, SUPPORTED_ATTACHMENT_TYPES, type SendMessageOptions, type SessionContextReport, type SessionEventListener, type SessionInstructions, type SessionRateLimitReport, type SessionReport, SessionRunner, type SessionRunnerConfig, type SettledBy, type ShellAgentWrite, type ShellContextOptions, type ShellDirectory, type ShellKeyOptions, type ShellKillResult, type ShellReadOptions, type ShellReadResult, type ShellRunOptions, type ShellSummary, type ShellToolName, type ShellToolOptions, type ShellToolOutput, type ShellToolSpec, type ShellView, type ShellWait, type ShellWriteOptions, type SleepResult, TTY_REDRAW_CARRY, type Tool, type ToolCallOutput, type ToolContext, type ToolContextOptions, type ToolDefinition, type ToolExecutionCall, type ToolExecutionDispatch, type ToolExecutionResult, type ToolExecutor, type ToolSet, type ToolTrust, type WebFetchDigest, type WebFetchFn, type WebFetchOptions, type WebFetchResult, agentMayWrite, attachmentContentBlocks, attachmentKind, attachmentRef, buildSessionReport, checkClaudeAuth, clampShellTail, claudeAdapter, codexAdapter, composeInstructions, connectAppServer, connectMcpTools, contextResetDirectoryHandle, countLines, createEngineSession, createToolContext, createWebFetch, encodeShellKey, encodeShellKeys, getEngineAdapter, headTail, htmlToMarkdown, installContextResetDirectory, installPeerDirectory, installShellDirectory, installedPeerDirectory, installedShellDirectory, isHostAllowed, isLocalShellSource, isPrivateAddress, isShellToolName, isShellWriteToolName, isSlashCommand, listCodexSessions, localCommandContext, localCommandEvent, localCommandTranscript, mcpStatusInfo, modelOptionsFromSdk, normalizeMediaType, normalizeSdkMessage, peerDirectoryHandle, peerMentionsEnvelope, peerMessageEnvelope, peerSummary, peerToolSpecs, providerAdapter, recentLines, replaySlice, resolveBundledClaudeExecutable, resolveBundledCodexExecutable, resolveInstructions, runPeerTool, runShellTool, shellContextText, shellDirectoryHandle, shellInlineText, shellKillText, shellOwnershipRefusal, shellReadText, shellSummary, shellTail, shellToolNames, shellToolNeedsCard, shellToolOf, shellToolSpecs, shellWriteDeniedText, shellWriteToolOf, splitLines, toApiMessage, toExecutionResult, truncateResultBlocks, ttyRedraws, ttyText, withHostTools, withMcpTools, withPeerContext, withoutGatewaySecrets, withoutPeerContext };
|
|
1448
|
+
export { AVATAR_SEED_MAX, AiSdkRunner, type AiSdkRunnerConfig, type AiSdkSessionState, type AppServerConnectFn, type AppServerConnectOptions, type AppServerConnection, type AppServerHistoryTurn, type AppServerItem, type AppServerThreadListResponse, type AppServerThreadSummary, type AppServerTokenUsage, type AppServerTurn, type AppServerUserInput, type AttachmentInput, type AttachmentKind, type AvatarDirectory, type BridgeAnswer, BrowserBridgeExecutor, type BrowserBridgeExecutorOptions, CHANGE_AVATAR_TOOL, CLAUDE_CATALOG, CODEX_CATALOG, CONTEXT_RESET_PROMPT_MAX, CONTEXT_RESET_REASON_MAX, CONTEXT_RESET_TOOL, type ClaudeAuthProbe, type ClaudeAuthStatus, type ClearContextOptions, type CodexAdapterConfig, CodexRunner, type CodexRunnerConfig, type ContextResetDirectory, type ContextResetRequest, type CostFigures, CostLedger, type CostLedgerState, type DeferredDispatch, DeferredExecutor, type DeferredExecutorOptions, type EngineAdapter, type EngineAvailability, type EngineRunnerConfig, type EngineRunnerRequest, type EngineSessionOptions, GATEWAY_SECRET_ENV_KEYS, type HeadTail, type HeadTailOptions, type HistoryFn, type HostFetch, type HostToolDefinition, InputQueue, type InstructionsContext, JsonRpcError, JsonRpcStdioConnection, type LanguageModel, type LocalCommandEmit, type LocalCommandEvent, LocalCommandQueue, type LocalCommandResult, type LocalShellSource, type McpConnection, type ModelCatalog, PEER_MCP_SERVER, PEER_MESSAGE_MAX_CHARS, PEER_RECENT_DEFAULT, PEER_RECENT_MAX, PEER_TOOL_NAMES, type ParkedExecution, type PeerDirectory, type PeerMention, type PeerPeek, type PeerSendOptions, type PeerSendResult, type PeerSessionSummary, type PeerToolName, type PeerToolSpec, type PendingEntry, type PendingKind, type PendingOutcome, PendingRequestRegistry, type PendingToolCall, type PermissionDecision, type QueryFn, QuickJsExecutor, type QuickJsExecutorOptions, type RegisterOptions, type Runner, type RunnerSnapshot, SESSION_INFO_TOOL, SET_STATUS_TOOL, SHELL_KEYS_MAX, SHELL_KEY_NAMES, SHELL_READ_TOOL_NAMES, SHELL_REFUSAL, SHELL_TOOL_NAMES, SHELL_TOOL_SHAPES, SHELL_WRITE_REFUSAL, SHELL_WRITE_TOOL_NAMES, SUPPORTED_ATTACHMENT_TYPES, type SendMessageOptions, type SessionContextReport, type SessionEventListener, type SessionInstructions, type SessionRateLimitReport, type SessionReport, SessionRunner, type SessionRunnerConfig, type SettledBy, type ShellAgentWrite, type ShellContextOptions, type ShellDirectory, type ShellKeyOptions, type ShellKillResult, type ShellReadOptions, type ShellReadResult, type ShellRunOptions, type ShellSummary, type ShellToolName, type ShellToolOptions, type ShellToolOutput, type ShellToolSpec, type ShellView, type ShellWait, type ShellWriteOptions, type SleepResult, type StatusLabelSink, TTY_REDRAW_CARRY, type Tool, type ToolCallOutput, type ToolContext, type ToolContextOptions, type ToolDefinition, type ToolExecutionCall, type ToolExecutionDispatch, type ToolExecutionResult, type ToolExecutor, type ToolSet, type ToolTrust, type WebFetchDigest, type WebFetchFn, type WebFetchOptions, type WebFetchResult, agentMayWrite, attachmentContentBlocks, attachmentKind, attachmentRef, avatarDirectoryHandle, buildSessionReport, checkClaudeAuth, clampShellTail, claudeAdapter, codexAdapter, composeInstructions, connectAppServer, connectMcpTools, contextResetDirectoryHandle, countLines, createEngineSession, createToolContext, createWebFetch, encodeShellKey, encodeShellKeys, getEngineAdapter, headTail, htmlToMarkdown, installAvatarDirectory, installContextResetDirectory, installPeerDirectory, installShellDirectory, installedPeerDirectory, installedShellDirectory, isHostAllowed, isLocalShellSource, isPrivateAddress, isShellToolName, isShellWriteToolName, isSlashCommand, listCodexSessions, localCommandContext, localCommandEvent, localCommandTranscript, mcpStatusInfo, modelOptionsFromSdk, normalizeMediaType, normalizeSdkMessage, peerDirectoryHandle, peerMentionsEnvelope, peerMessageEnvelope, peerSummary, peerToolSpecs, providerAdapter, recentLines, replaySlice, resolveBundledClaudeExecutable, resolveBundledCodexExecutable, resolveInstructions, runPeerTool, runShellTool, shellContextText, shellDirectoryHandle, shellInlineText, shellKillText, shellOwnershipRefusal, shellReadText, shellSummary, shellTail, shellToolNames, shellToolNeedsCard, shellToolOf, shellToolSpecs, shellWriteDeniedText, shellWriteToolOf, splitLines, toApiMessage, toExecutionResult, truncateResultBlocks, ttyRedraws, ttyText, withHostTools, withMcpTools, withPeerContext, withoutGatewaySecrets, withoutPeerContext };
|
|
1426
1449
|
//# sourceMappingURL=index.d.mts.map
|
package/build/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
2
|
import { createHash, randomUUID } from "node:crypto";
|
|
3
3
|
import { createSdkMcpServer, getSessionInfo, getSessionMessages, listSessions, query, tool } from "@anthropic-ai/claude-agent-sdk";
|
|
4
|
-
import { CHECKLIST_TEXT_MAX, ENGINE_CAPABILITIES, PEER_MENTION_MAX, PROTOCOL_VERSION, SHELL_COMMAND_MAX, SHELL_CONTEXT_FLUSH_MAX_CHARS, SHELL_CONTEXT_HEAD_CHARS, SHELL_CONTEXT_HEAD_LINES, SHELL_CONTEXT_TAIL_CHARS, SHELL_CONTEXT_TAIL_LINES, SHELL_INLINE_CHARS, SHELL_INLINE_LINES, SHELL_INLINE_LINE_CHARS, SHELL_INPUT_MAX, SHELL_INTERACTIVE_NOTE, SHELL_READ_DEFAULT_LINES, SHELL_READ_MAX_LINES, SHELL_WAIT_DEFAULT_MS, SHELL_WAIT_MAX_MS, SUBAGENT_HISTORY, TOOL_RESULT_HEAD_CHARS, addTokenUsage, byModelTotalTokens, canonicalModel, contextReading, costOfByModel, emptyTokenUsage, errorMessage, imagePartRef, logCoalesceKey, mergeByModel, parseTodoWriteInput, peerDeliveredPrefix, replayCoalesceKey, replayRetains, sanitizeToolTitle, snapshotRetains, supportsPermissionMode, tokenUsageFromWire, totalTokens, transcriptActivity, transcriptContent, transcriptProse, usageIsStale } from "@workerdeck/protocol";
|
|
4
|
+
import { CHECKLIST_TEXT_MAX, ENGINE_CAPABILITIES, PEER_MENTION_MAX, PROTOCOL_VERSION, SHELL_COMMAND_MAX, SHELL_CONTEXT_FLUSH_MAX_CHARS, SHELL_CONTEXT_HEAD_CHARS, SHELL_CONTEXT_HEAD_LINES, SHELL_CONTEXT_TAIL_CHARS, SHELL_CONTEXT_TAIL_LINES, SHELL_INLINE_CHARS, SHELL_INLINE_LINES, SHELL_INLINE_LINE_CHARS, SHELL_INPUT_MAX, SHELL_INTERACTIVE_NOTE, SHELL_READ_DEFAULT_LINES, SHELL_READ_MAX_LINES, SHELL_WAIT_DEFAULT_MS, SHELL_WAIT_MAX_MS, STATUS_LABEL_EMOJI_MAX, STATUS_LABEL_TEXT_MAX, SUBAGENT_HISTORY, TOOL_RESULT_HEAD_CHARS, addTokenUsage, byModelTotalTokens, canonicalModel, contextReading, costOfByModel, emptyTokenUsage, errorMessage, imagePartRef, logCoalesceKey, mergeByModel, parseTodoWriteInput, peerDeliveredPrefix, replayCoalesceKey, replayRetains, sanitizeToolTitle, snapshotRetains, supportsPermissionMode, teamRole, tokenUsageFromWire, totalTokens, transcriptActivity, transcriptContent, transcriptProse, usageIsStale } from "@workerdeck/protocol";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { appendFileSync, closeSync, existsSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, realpathSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
7
7
|
import { homedir, tmpdir } from "node:os";
|
|
@@ -1196,6 +1196,7 @@ var EventLog = class {
|
|
|
1196
1196
|
#proseCount = 0;
|
|
1197
1197
|
#contextUsage;
|
|
1198
1198
|
#checklist;
|
|
1199
|
+
#statusLabel;
|
|
1199
1200
|
#resetSeq = 0;
|
|
1200
1201
|
#lastActivityAt;
|
|
1201
1202
|
get events() {
|
|
@@ -1216,6 +1217,9 @@ var EventLog = class {
|
|
|
1216
1217
|
get checklist() {
|
|
1217
1218
|
return this.#checklist;
|
|
1218
1219
|
}
|
|
1220
|
+
get statusLabel() {
|
|
1221
|
+
return this.#statusLabel;
|
|
1222
|
+
}
|
|
1219
1223
|
get resetSeq() {
|
|
1220
1224
|
return this.#resetSeq;
|
|
1221
1225
|
}
|
|
@@ -1243,6 +1247,7 @@ var EventLog = class {
|
|
|
1243
1247
|
this.#proseCount = 0;
|
|
1244
1248
|
this.#contextUsage = void 0;
|
|
1245
1249
|
this.#checklist = void 0;
|
|
1250
|
+
this.#statusLabel = void 0;
|
|
1246
1251
|
this.#resetSeq = 0;
|
|
1247
1252
|
for (const event of events) {
|
|
1248
1253
|
this.#fold(event);
|
|
@@ -1265,10 +1270,12 @@ var EventLog = class {
|
|
|
1265
1270
|
this.#proseCount += transcriptProse(event);
|
|
1266
1271
|
this.#contextUsage = contextReading(event) ?? this.#contextUsage;
|
|
1267
1272
|
if (event.type === "checklist") this.#checklist = event.items.length > 0 ? event.items : void 0;
|
|
1273
|
+
if (event.type === "status_label") this.#statusLabel = event.label;
|
|
1268
1274
|
if (event.type === "conversation_reset") {
|
|
1269
1275
|
this.#resetSeq = event.seq;
|
|
1270
1276
|
this.#contextUsage = void 0;
|
|
1271
1277
|
this.#checklist = void 0;
|
|
1278
|
+
this.#statusLabel = null;
|
|
1272
1279
|
}
|
|
1273
1280
|
}
|
|
1274
1281
|
};
|
|
@@ -1958,6 +1965,18 @@ var EngineRunner = class {
|
|
|
1958
1965
|
setTitle(title) {
|
|
1959
1966
|
this.config = withTitle(this.config, title);
|
|
1960
1967
|
}
|
|
1968
|
+
setStatusLabel(input) {
|
|
1969
|
+
this.assertAccepting();
|
|
1970
|
+
const label = input ? {
|
|
1971
|
+
...input,
|
|
1972
|
+
setAt: Date.now()
|
|
1973
|
+
} : null;
|
|
1974
|
+
this.core.emit({
|
|
1975
|
+
type: "status_label",
|
|
1976
|
+
label
|
|
1977
|
+
});
|
|
1978
|
+
return label;
|
|
1979
|
+
}
|
|
1961
1980
|
carryCost(state) {
|
|
1962
1981
|
this.core.carryCost(state);
|
|
1963
1982
|
}
|
|
@@ -2006,6 +2025,8 @@ var EngineRunner = class {
|
|
|
2006
2025
|
get toolSources() {
|
|
2007
2026
|
return {
|
|
2008
2027
|
report: () => this.sessionReport(),
|
|
2028
|
+
status: (input) => this.setStatusLabel(input),
|
|
2029
|
+
avatar: this.config.avatar,
|
|
2009
2030
|
reset: this.config.contextReset,
|
|
2010
2031
|
peers: this.config.peers,
|
|
2011
2032
|
shells: this.config.shells,
|
|
@@ -2031,6 +2052,7 @@ var EngineRunner = class {
|
|
|
2031
2052
|
scope: this.config.scope,
|
|
2032
2053
|
agentContextReset: this.config.contextReset ? true : void 0,
|
|
2033
2054
|
title: sessionTitle(this.config, engineTitle),
|
|
2055
|
+
statusLabel: (log.statusLabel === void 0 ? this.config.statusLabel : log.statusLabel) ?? void 0,
|
|
2034
2056
|
costUsd: this.core.cost.costUsd,
|
|
2035
2057
|
usageByModel: this.core.cost.byModel,
|
|
2036
2058
|
lastActivityAt: log.lastActivityAt
|
|
@@ -2227,7 +2249,23 @@ function peerSummary(info) {
|
|
|
2227
2249
|
model: info.model,
|
|
2228
2250
|
contextUsage: info.contextUsage,
|
|
2229
2251
|
lastActivityAt: info.lastActivityAt,
|
|
2230
|
-
pendingPermissionCount: info.pendingPermissionCount
|
|
2252
|
+
pendingPermissionCount: info.pendingPermissionCount,
|
|
2253
|
+
...teamFields(info)
|
|
2254
|
+
};
|
|
2255
|
+
}
|
|
2256
|
+
function teamFields(info) {
|
|
2257
|
+
const agent = info.agent?.name;
|
|
2258
|
+
const named = agent === void 0 ? {} : { agent };
|
|
2259
|
+
const role = teamRole(info.agent);
|
|
2260
|
+
if (role === void 0) return named;
|
|
2261
|
+
const team = role === "member" ? info.agent?.team : info.agent?.name;
|
|
2262
|
+
return team === void 0 ? {
|
|
2263
|
+
...named,
|
|
2264
|
+
role
|
|
2265
|
+
} : {
|
|
2266
|
+
...named,
|
|
2267
|
+
role,
|
|
2268
|
+
team
|
|
2231
2269
|
};
|
|
2232
2270
|
}
|
|
2233
2271
|
function recentLines(events, limit) {
|
|
@@ -2320,6 +2358,61 @@ function agentResetFields(options) {
|
|
|
2320
2358
|
return options?.agentReason === void 0 ? {} : { agentReason: options.agentReason };
|
|
2321
2359
|
}
|
|
2322
2360
|
//#endregion
|
|
2361
|
+
//#region src/lib/avatar-tool.ts
|
|
2362
|
+
const CHANGE_AVATAR_TOOL = "change_avatar";
|
|
2363
|
+
const AVATAR_SEED_MAX = 64;
|
|
2364
|
+
const AVATAR_SLOT = globalSlot("workerdeck.avatar.directory");
|
|
2365
|
+
const CHANGE_AVATAR_TOOL_SHAPES = { [CHANGE_AVATAR_TOOL]: {
|
|
2366
|
+
description: "Give yourself a new avatar: the picture the human sees beside your name in the session list. Each call rolls a new one; pass `seed` to get the same avatar for the same seed (any short word or phrase). On the workerdeck CLI a seed starting with a pack name and a colon picks the family: `monkey:`, `toad:`, `steampunk-bulldogs:` or `panda:`. You cannot see the result, so only change it when the human asks or you have a reason to.",
|
|
2367
|
+
shape: { seed: z.string().trim().min(1).max(64).optional().describe("Optional: the same seed always rolls the same avatar") }
|
|
2368
|
+
} };
|
|
2369
|
+
const CHANGE_AVATAR_TOOLS = defineToolFamily(CHANGE_AVATAR_TOOL_SHAPES, { [CHANGE_AVATAR_TOOL]: async (directory, from, input) => ({
|
|
2370
|
+
text: await directory.change(from, input.seed),
|
|
2371
|
+
isError: false
|
|
2372
|
+
}) });
|
|
2373
|
+
const CHANGE_AVATAR_TOOL_SHAPE = CHANGE_AVATAR_TOOL_SHAPES[CHANGE_AVATAR_TOOL];
|
|
2374
|
+
function isChangeAvatarToolName(name) {
|
|
2375
|
+
return CHANGE_AVATAR_TOOLS.is(name);
|
|
2376
|
+
}
|
|
2377
|
+
function runChangeAvatarTool(directory, from, args) {
|
|
2378
|
+
return CHANGE_AVATAR_TOOLS.run(directory, from, CHANGE_AVATAR_TOOL, args);
|
|
2379
|
+
}
|
|
2380
|
+
function installAvatarDirectory(directory) {
|
|
2381
|
+
AVATAR_SLOT.install(directory);
|
|
2382
|
+
}
|
|
2383
|
+
function avatarDirectoryHandle(own) {
|
|
2384
|
+
return lateBoundDirectory(["change"], AVATAR_SLOT, own, "avatars are not available on this gateway");
|
|
2385
|
+
}
|
|
2386
|
+
//#endregion
|
|
2387
|
+
//#region src/lib/status-label.ts
|
|
2388
|
+
const SET_STATUS_TOOL = "set_status";
|
|
2389
|
+
const SET_STATUS_TOOL_SHAPES = { [SET_STATUS_TOOL]: {
|
|
2390
|
+
description: "Set the one-line status shown under your name in the human's session list, like a chat status: what you are doing, waiting on, or need from them (\"waiting on CI\", \"blocked: needs an API key\", \"done, ready for review\"). It stays until you change it and clears when your conversation is reset. Pass an empty `text` to clear it. Keep it short and current; it is a glance, not a log.",
|
|
2391
|
+
shape: {
|
|
2392
|
+
text: z.string().max(STATUS_LABEL_TEXT_MAX).describe("The status line; empty clears it"),
|
|
2393
|
+
emoji: z.string().max(STATUS_LABEL_EMOJI_MAX).optional().describe("One emoji shown before the text")
|
|
2394
|
+
}
|
|
2395
|
+
} };
|
|
2396
|
+
const SET_STATUS_TOOLS = defineToolFamily(SET_STATUS_TOOL_SHAPES, { [SET_STATUS_TOOL]: async (sink, _from, input) => {
|
|
2397
|
+
const text = input.text.replace(/\s+/g, " ").trim();
|
|
2398
|
+
const emoji = input.emoji?.trim();
|
|
2399
|
+
const label = sink(text ? emoji ? {
|
|
2400
|
+
text,
|
|
2401
|
+
emoji
|
|
2402
|
+
} : { text } : null);
|
|
2403
|
+
return {
|
|
2404
|
+
text: label ? `Status set: ${label.emoji ? `${label.emoji} ` : ""}${label.text}` : "Status cleared",
|
|
2405
|
+
isError: false
|
|
2406
|
+
};
|
|
2407
|
+
} });
|
|
2408
|
+
const SET_STATUS_TOOL_SHAPE = SET_STATUS_TOOL_SHAPES[SET_STATUS_TOOL];
|
|
2409
|
+
function isSetStatusToolName(name) {
|
|
2410
|
+
return SET_STATUS_TOOLS.is(name);
|
|
2411
|
+
}
|
|
2412
|
+
function runSetStatusTool(sink, from, args) {
|
|
2413
|
+
return SET_STATUS_TOOLS.run(sink, from, SET_STATUS_TOOL, args);
|
|
2414
|
+
}
|
|
2415
|
+
//#endregion
|
|
2323
2416
|
//#region src/lib/shells.ts
|
|
2324
2417
|
const SHELL_REFUSAL = "shell commands are not available on this session";
|
|
2325
2418
|
const SHELL_WRITE_REFUSAL = "the agent may not start, type into or kill shells on this session (shell.agentWrite is read-only)";
|
|
@@ -2668,13 +2761,23 @@ function shellDirectoryHandle(own) {
|
|
|
2668
2761
|
//#endregion
|
|
2669
2762
|
//#region src/lib/session-tools.ts
|
|
2670
2763
|
function sessionTools(sources, from) {
|
|
2671
|
-
const { report, reset, peers, shells, write } = sources;
|
|
2764
|
+
const { report, status, avatar, reset, peers, shells, write } = sources;
|
|
2672
2765
|
return [
|
|
2673
2766
|
...report ? [{
|
|
2674
2767
|
name: SESSION_INFO_TOOL,
|
|
2675
2768
|
...SESSION_INFO_TOOL_SHAPE,
|
|
2676
2769
|
run: () => runSessionInfoTool(report, from())
|
|
2677
2770
|
}] : [],
|
|
2771
|
+
...status ? [{
|
|
2772
|
+
name: SET_STATUS_TOOL,
|
|
2773
|
+
...SET_STATUS_TOOL_SHAPE,
|
|
2774
|
+
run: (args) => runSetStatusTool(status, from(), args)
|
|
2775
|
+
}] : [],
|
|
2776
|
+
...avatar ? [{
|
|
2777
|
+
name: CHANGE_AVATAR_TOOL,
|
|
2778
|
+
...CHANGE_AVATAR_TOOL_SHAPE,
|
|
2779
|
+
run: (args) => runChangeAvatarTool(avatar, from(), args)
|
|
2780
|
+
}] : [],
|
|
2678
2781
|
...reset ? [{
|
|
2679
2782
|
name: CONTEXT_RESET_TOOL,
|
|
2680
2783
|
...CONTEXT_RESET_TOOL_SHAPE,
|
|
@@ -2697,6 +2800,8 @@ function sessionToolSpecs(sources) {
|
|
|
2697
2800
|
}
|
|
2698
2801
|
function runSessionTool(sources, from, name, args) {
|
|
2699
2802
|
if (sources.report && isSessionInfoToolName(name)) return runSessionInfoTool(sources.report, from);
|
|
2803
|
+
if (sources.status && isSetStatusToolName(name)) return runSetStatusTool(sources.status, from, args);
|
|
2804
|
+
if (sources.avatar && isChangeAvatarToolName(name)) return runChangeAvatarTool(sources.avatar, from, args);
|
|
2700
2805
|
if (sources.reset && isContextResetToolName(name)) return runContextResetTool(sources.reset, from, args);
|
|
2701
2806
|
if (sources.peers && isPeerToolName(name)) return runPeerTool(sources.peers, from, name, args);
|
|
2702
2807
|
if (sources.shells && isShellToolName(name)) return runShellTool(sources.shells, from, name, args, { write: sources.write });
|
|
@@ -5346,6 +5451,8 @@ function createToolContext(options) {
|
|
|
5346
5451
|
}
|
|
5347
5452
|
const gatewayTools = sessionTools({
|
|
5348
5453
|
report: options.report,
|
|
5454
|
+
status: options.status,
|
|
5455
|
+
avatar: options.avatar,
|
|
5349
5456
|
reset: options.contextReset,
|
|
5350
5457
|
peers: options.peers,
|
|
5351
5458
|
shells: options.shells,
|
|
@@ -5523,10 +5630,15 @@ function createEngineSession(options) {
|
|
|
5523
5630
|
onFileDelivered: options.capabilities?.deliverFiles === false || !isGranted("deliverFiles") ? void 0 : (file) => runner?.emitFileDelivered(file),
|
|
5524
5631
|
peers: options.config.peers,
|
|
5525
5632
|
contextReset: options.config.contextReset,
|
|
5633
|
+
avatar: options.config.avatar,
|
|
5526
5634
|
shells: options.config.shells,
|
|
5527
5635
|
shellWrite: options.config.shellAgentWrite !== void 0,
|
|
5528
5636
|
selfId: () => runner?.id ?? "pending",
|
|
5529
|
-
report: () => runner ? runner.sessionReport() : Promise.reject(/* @__PURE__ */ new Error("session is still starting"))
|
|
5637
|
+
report: () => runner ? runner.sessionReport() : Promise.reject(/* @__PURE__ */ new Error("session is still starting")),
|
|
5638
|
+
status: (label) => {
|
|
5639
|
+
if (!runner) throw new Error("session is still starting");
|
|
5640
|
+
return runner.setStatusLabel(label);
|
|
5641
|
+
}
|
|
5530
5642
|
});
|
|
5531
5643
|
const declaredServers = options.profile?.session?.mcpServers;
|
|
5532
5644
|
const connected = options.mcp?.tools ?? options.mcpTools;
|
|
@@ -8316,6 +8428,6 @@ function getEngineAdapter(engine) {
|
|
|
8316
8428
|
return ADAPTERS[engine ?? "claude"];
|
|
8317
8429
|
}
|
|
8318
8430
|
//#endregion
|
|
8319
|
-
export { AiSdkRunner, BrowserBridgeExecutor, CLAUDE_CATALOG, CODEX_CATALOG, CONTEXT_RESET_PROMPT_MAX, CONTEXT_RESET_REASON_MAX, CONTEXT_RESET_TOOL, CodexRunner, CostLedger, DeferredExecutor, GATEWAY_SECRET_ENV_KEYS, InputQueue, JsonRpcError, JsonRpcStdioConnection, LocalCommandQueue, PEER_MCP_SERVER, PEER_MESSAGE_MAX_CHARS, PEER_RECENT_DEFAULT, PEER_RECENT_MAX, PEER_TOOL_NAMES, PendingRequestRegistry, QuickJsExecutor, SESSION_INFO_TOOL, SHELL_KEYS_MAX, SHELL_KEY_NAMES, SHELL_READ_TOOL_NAMES, SHELL_REFUSAL, SHELL_TOOL_NAMES, SHELL_TOOL_SHAPES, SHELL_WRITE_REFUSAL, SHELL_WRITE_TOOL_NAMES, SUPPORTED_ATTACHMENT_TYPES, SessionRunner, TTY_REDRAW_CARRY, agentMayWrite, attachmentContentBlocks, attachmentKind, attachmentRef, buildSessionReport, checkClaudeAuth, clampShellTail, claudeAdapter, codexAdapter, composeInstructions, connectAppServer, connectMcpTools, contextResetDirectoryHandle, countLines, createEngineSession, createToolContext, createWebFetch, encodeShellKey, encodeShellKeys, getEngineAdapter, headTail, htmlToMarkdown, installContextResetDirectory, installPeerDirectory, installShellDirectory, installedPeerDirectory, installedShellDirectory, isHostAllowed, isLocalShellSource, isPrivateAddress, isShellToolName, isShellWriteToolName, isSlashCommand, listCodexSessions, localCommandContext, localCommandEvent, localCommandTranscript, mcpStatusInfo, modelOptionsFromSdk, normalizeMediaType, normalizeSdkMessage, peerDirectoryHandle, peerMentionsEnvelope, peerMessageEnvelope, peerSummary, peerToolSpecs, providerAdapter, recentLines, replaySlice, resolveBundledClaudeExecutable, resolveBundledCodexExecutable, resolveInstructions, runPeerTool, runShellTool, shellContextText, shellDirectoryHandle, shellInlineText, shellKillText, shellOwnershipRefusal, shellReadText, shellSummary, shellTail, shellToolNames, shellToolNeedsCard, shellToolOf, shellToolSpecs, shellWriteDeniedText, shellWriteToolOf, splitLines, toApiMessage, toExecutionResult, truncateResultBlocks, ttyRedraws, ttyText, withHostTools, withMcpTools, withPeerContext, withoutGatewaySecrets, withoutPeerContext };
|
|
8431
|
+
export { AVATAR_SEED_MAX, AiSdkRunner, BrowserBridgeExecutor, CHANGE_AVATAR_TOOL, CLAUDE_CATALOG, CODEX_CATALOG, CONTEXT_RESET_PROMPT_MAX, CONTEXT_RESET_REASON_MAX, CONTEXT_RESET_TOOL, CodexRunner, CostLedger, DeferredExecutor, GATEWAY_SECRET_ENV_KEYS, InputQueue, JsonRpcError, JsonRpcStdioConnection, LocalCommandQueue, PEER_MCP_SERVER, PEER_MESSAGE_MAX_CHARS, PEER_RECENT_DEFAULT, PEER_RECENT_MAX, PEER_TOOL_NAMES, PendingRequestRegistry, QuickJsExecutor, SESSION_INFO_TOOL, SET_STATUS_TOOL, SHELL_KEYS_MAX, SHELL_KEY_NAMES, SHELL_READ_TOOL_NAMES, SHELL_REFUSAL, SHELL_TOOL_NAMES, SHELL_TOOL_SHAPES, SHELL_WRITE_REFUSAL, SHELL_WRITE_TOOL_NAMES, SUPPORTED_ATTACHMENT_TYPES, SessionRunner, TTY_REDRAW_CARRY, agentMayWrite, attachmentContentBlocks, attachmentKind, attachmentRef, avatarDirectoryHandle, buildSessionReport, checkClaudeAuth, clampShellTail, claudeAdapter, codexAdapter, composeInstructions, connectAppServer, connectMcpTools, contextResetDirectoryHandle, countLines, createEngineSession, createToolContext, createWebFetch, encodeShellKey, encodeShellKeys, getEngineAdapter, headTail, htmlToMarkdown, installAvatarDirectory, installContextResetDirectory, installPeerDirectory, installShellDirectory, installedPeerDirectory, installedShellDirectory, isHostAllowed, isLocalShellSource, isPrivateAddress, isShellToolName, isShellWriteToolName, isSlashCommand, listCodexSessions, localCommandContext, localCommandEvent, localCommandTranscript, mcpStatusInfo, modelOptionsFromSdk, normalizeMediaType, normalizeSdkMessage, peerDirectoryHandle, peerMentionsEnvelope, peerMessageEnvelope, peerSummary, peerToolSpecs, providerAdapter, recentLines, replaySlice, resolveBundledClaudeExecutable, resolveBundledCodexExecutable, resolveInstructions, runPeerTool, runShellTool, shellContextText, shellDirectoryHandle, shellInlineText, shellKillText, shellOwnershipRefusal, shellReadText, shellSummary, shellTail, shellToolNames, shellToolNeedsCard, shellToolOf, shellToolSpecs, shellWriteDeniedText, shellWriteToolOf, splitLines, toApiMessage, toExecutionResult, truncateResultBlocks, ttyRedraws, ttyText, withHostTools, withMcpTools, withPeerContext, withoutGatewaySecrets, withoutPeerContext };
|
|
8320
8432
|
|
|
8321
8433
|
//# sourceMappingURL=index.mjs.map
|