@hachej/boring-agent 0.1.51 → 0.1.53

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.
@@ -550,7 +550,7 @@ interface ChatPanelEmptyState {
550
550
  /** Optional content rendered below the suggestion grid (e.g. a footer link). */
551
551
  footer?: ReactNode;
552
552
  }
553
- interface PiChatPanelProps {
553
+ interface PiChatPanelProps<TComposerBlocker extends ComposerBlocker = ComposerBlocker> {
554
554
  /** Optional externally selected Pi session id. When provided, session navigation is owned by the host. */
555
555
  sessionId?: string;
556
556
  /** Alias kept for consumers that still pass the pre-cutover prop name. */
@@ -601,9 +601,9 @@ interface PiChatPanelProps {
601
601
  onMentionedFilesConsumed?: () => void;
602
602
  onData?: (part: unknown) => void;
603
603
  onOpenArtifact?: (path: string) => void;
604
- composerBlockers?: ComposerBlocker[];
604
+ composerBlockers?: TComposerBlocker[];
605
605
  onComposerStop?: () => void;
606
- onComposerBlockerAction?: (blocker: ComposerBlocker, action: string) => void;
606
+ onComposerBlockerAction?: (blocker: TComposerBlocker, action: string) => void;
607
607
  /** Fired once each time a run settles (busy → idle). Hosts use it to refresh
608
608
  * out-of-band state after a turn (e.g. a usage/quota indicator). The agent stays
609
609
  * agnostic about what the host does with it. */
@@ -613,7 +613,7 @@ interface PiChatPanelProps {
613
613
  * knowing what the code means or what the action does. */
614
614
  renderNoticeAction?: (notice: PiChatRuntimeNotice) => ReactNode;
615
615
  }
616
- declare function PiChatPanel({ sessionId, extraCommands, apiBaseUrl, workspaceId, storageScope, requestHeaders, storage, fetch, className, chrome, debug, showSessions, hotReloadEnabled, suggestions, emptyState, emptyPlacement, composerPlaceholder, initialDraft, autoSubmitInitialDraft, onDraftRestored, onAutoSubmitInitialDraftAccepted, onAutoSubmitInitialDraftSettled, model, defaultModel, availableModels, hideDefaultModelOption, hideComposerSettings, suppressPreSubmitCancelledWarning, thinkingLevel, thinkingControl, serverResourcesEnabled, mentionedFiles, commands, excludeBuiltinCommands, toolRenderers, createRemoteSession, remoteSessionOptions, hydrateMessages, workspaceWarmupStatus, onSessionReset, onBeforeSubmit, onReloadAgentPlugins, onCommandResult, onComposerWarning, onMentionedFilesConsumed, onData, onOpenArtifact, composerBlockers, onComposerStop, onComposerBlockerAction, onTurnComplete, renderNoticeAction, }: PiChatPanelProps): react_jsx_runtime.JSX.Element;
616
+ declare function PiChatPanel<TComposerBlocker extends ComposerBlocker = ComposerBlocker>({ sessionId, extraCommands, apiBaseUrl, workspaceId, storageScope, requestHeaders, storage, fetch, className, chrome, debug, showSessions, hotReloadEnabled, suggestions, emptyState, emptyPlacement, composerPlaceholder, initialDraft, autoSubmitInitialDraft, onDraftRestored, onAutoSubmitInitialDraftAccepted, onAutoSubmitInitialDraftSettled, model, defaultModel, availableModels, hideDefaultModelOption, hideComposerSettings, suppressPreSubmitCancelledWarning, thinkingLevel, thinkingControl, serverResourcesEnabled, mentionedFiles, commands, excludeBuiltinCommands, toolRenderers, createRemoteSession, remoteSessionOptions, hydrateMessages, workspaceWarmupStatus, onSessionReset, onBeforeSubmit, onReloadAgentPlugins, onCommandResult, onComposerWarning, onMentionedFilesConsumed, onData, onOpenArtifact, composerBlockers, onComposerStop, onComposerBlockerAction, onTurnComplete, renderNoticeAction, }: PiChatPanelProps<TComposerBlocker>): react_jsx_runtime.JSX.Element;
617
617
 
618
618
  interface DebugDrawerProps {
619
619
  apiBaseUrl?: string;
@@ -716,4 +716,4 @@ declare const CodeBlock: ({ code, language, showLineNumbers, className, children
716
716
 
717
717
  declare function cn(...inputs: ClassValue[]): string;
718
718
 
719
- export { type AgentCommandContribution, type AgentCommandOptions, ArtifactOpenProvider, ChatEmptyState, type ChatEmptyStateProps, PiChatPanel as ChatPanel, type PiChatPanelProps as ChatPanelProps, type ChatSuggestion, CodeBlock, type CommandRegistry, Conversation, ConversationContent, ConversationScrollButton, DebugDrawer, type GroupedToolEntry, Message, MessageAction, MessageActions, MessageContent, MessageResponse, type OpenArtifactHandler, type ParsedCommand, PiChatPanel, type PiChatPanelProps, SessionBrowser as PiSessionBrowser, type PiSessionCreateInit, SessionList as PiSessionList, PromptInput, PromptInputFooter, PromptInputSubmit, PromptInputTextarea, Reasoning, ReasoningContent, ReasoningTrigger, type SessionListProps, type SlashCommand, type SlashCommandContext, ToolCallGroup, type ToolPart, type ToolRenderer, type ToolRendererOverrides, type UploadFileOptions, type UploadFileResult, type UsePiSessionsOptions, type UsePiSessionsResult, activeSessionStorageKey, builtinCommands, clearActiveSessionId, cn, createCommandRegistry, defaultChatSuggestions, defaultToolRenderers, getAgentCommands, mergeShadcnToolRenderers, mergeToolRenderers, parseSlashCommand, readActiveSessionId, resolveToolRenderer, uploadFile, useOpenArtifact, usePiSessions, writeActiveSessionId };
719
+ export { type AgentCommandContribution, type AgentCommandOptions, ArtifactOpenProvider, ChatEmptyState, type ChatEmptyStateProps, PiChatPanel as ChatPanel, type PiChatPanelProps as ChatPanelProps, type ChatSuggestion, CodeBlock, type CommandRegistry, type ComposerBlocker, type ComposerBlockerAction, Conversation, ConversationContent, ConversationScrollButton, DebugDrawer, type GroupedToolEntry, Message, MessageAction, MessageActions, MessageContent, MessageResponse, type OpenArtifactHandler, type ParsedCommand, PiChatPanel, type PiChatPanelProps, SessionBrowser as PiSessionBrowser, type PiSessionCreateInit, SessionList as PiSessionList, PromptInput, PromptInputFooter, PromptInputSubmit, PromptInputTextarea, Reasoning, ReasoningContent, ReasoningTrigger, type SessionListProps, type SlashCommand, type SlashCommandContext, ToolCallGroup, type ToolPart, type ToolRenderer, type ToolRendererOverrides, type UploadFileOptions, type UploadFileResult, type UsePiSessionsOptions, type UsePiSessionsResult, activeSessionStorageKey, builtinCommands, clearActiveSessionId, cn, createCommandRegistry, defaultChatSuggestions, defaultToolRenderers, getAgentCommands, mergeShadcnToolRenderers, mergeToolRenderers, parseSlashCommand, readActiveSessionId, resolveToolRenderer, uploadFile, useOpenArtifact, usePiSessions, writeActiveSessionId };
@@ -308,11 +308,12 @@ var builtinCommands = [
308
308
  handler(_, ctx) {
309
309
  const cmds = ctx.listCommands();
310
310
  if (cmds.length === 0) return "No commands available.";
311
- const escape = (text) => text.replace(/\|/g, "\\|").replace(/\n/g, " ");
312
311
  return [
313
- "| Command | Description |",
314
- "| --- | --- |",
315
- ...cmds.map((c) => `| \`/${c.name}\` | ${escape(c.description ?? "")} |`)
312
+ "Available commands:",
313
+ ...cmds.map((c) => {
314
+ const desc = (c.description ?? "").replace(/\s+/g, " ").trim();
315
+ return desc ? `/${c.name} \u2014 ${desc}` : `/${c.name}`;
316
+ })
316
317
  ].join("\n");
317
318
  }
318
319
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hachej/boring-agent",
3
- "version": "0.1.51",
3
+ "version": "0.1.53",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Pane-embeddable coding agent. Ships direct/local/vercel-sandbox execution modes behind one interface.",
@@ -74,7 +74,7 @@
74
74
  "use-stick-to-bottom": "^1.1.3",
75
75
  "yaml": "^2.8.3",
76
76
  "zod": "^3.25.76",
77
- "@hachej/boring-ui-kit": "0.1.51"
77
+ "@hachej/boring-ui-kit": "0.1.53"
78
78
  },
79
79
  "devDependencies": {
80
80
  "@antithesishq/bombadil": "0.5.0",