@quilltap/plugin-types 1.3.0 → 1.4.0

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/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.4.0] - 2026-01-02
9
+
10
+ ### Added
11
+
12
+ - Added `AnnotationButton` interface for roleplay template annotation buttons:
13
+ - `label: string` - Full name for tooltip (e.g., "Narration", "Internal Monologue")
14
+ - `abbrev: string` - Abbreviated label for button display (e.g., "Nar", "Int", "OOC")
15
+ - `prefix: string` - Opening delimiter (e.g., "[", "{", "// ")
16
+ - `suffix: string` - Closing delimiter (e.g., "]", "}", "")
17
+ - Added `annotationButtons?: AnnotationButton[]` field to `RoleplayTemplateConfig` interface
18
+ - Enables roleplay template plugins to define custom annotation formatting buttons
19
+ - Used by the Document Editing Mode formatting toolbar
20
+
8
21
  ## [1.3.0] - 2026-01-02
9
22
 
10
23
  ### Added
@@ -845,6 +845,22 @@ interface ThemePluginExport {
845
845
  *
846
846
  * @module @quilltap/plugin-types/plugins/roleplay-template
847
847
  */
848
+ /**
849
+ * Configuration for an annotation button in the formatting toolbar.
850
+ *
851
+ * Annotation buttons allow users to insert roleplay formatting
852
+ * (e.g., narration brackets, OOC markers) with a single click.
853
+ */
854
+ interface AnnotationButton {
855
+ /** Full name displayed in tooltip (e.g., "Narration", "Internal Monologue") */
856
+ label: string;
857
+ /** Abbreviated label displayed on button (e.g., "Nar", "Int", "OOC") */
858
+ abbrev: string;
859
+ /** Opening delimiter (e.g., "[", "*", "{{") */
860
+ prefix: string;
861
+ /** Closing delimiter (e.g., "]", "*", "}}") - empty string for line-end delimiters */
862
+ suffix: string;
863
+ }
848
864
  /**
849
865
  * Configuration for a single roleplay template
850
866
  *
@@ -863,6 +879,20 @@ interface RoleplayTemplateConfig {
863
879
  systemPrompt: string;
864
880
  /** Tags for categorization and searchability */
865
881
  tags?: string[];
882
+ /**
883
+ * Annotation buttons for the formatting toolbar.
884
+ * Defines which formatting options are available when document editing mode is enabled.
885
+ *
886
+ * @example
887
+ * ```typescript
888
+ * annotationButtons: [
889
+ * { label: 'Narration', abbrev: 'Nar', prefix: '[', suffix: ']' },
890
+ * { label: 'Internal Monologue', abbrev: 'Int', prefix: '{', suffix: '}' },
891
+ * { label: 'Out of Character', abbrev: 'OOC', prefix: '// ', suffix: '' },
892
+ * ]
893
+ * ```
894
+ */
895
+ annotationButtons?: AnnotationButton[];
866
896
  }
867
897
  /**
868
898
  * Metadata for a roleplay template plugin
@@ -845,6 +845,22 @@ interface ThemePluginExport {
845
845
  *
846
846
  * @module @quilltap/plugin-types/plugins/roleplay-template
847
847
  */
848
+ /**
849
+ * Configuration for an annotation button in the formatting toolbar.
850
+ *
851
+ * Annotation buttons allow users to insert roleplay formatting
852
+ * (e.g., narration brackets, OOC markers) with a single click.
853
+ */
854
+ interface AnnotationButton {
855
+ /** Full name displayed in tooltip (e.g., "Narration", "Internal Monologue") */
856
+ label: string;
857
+ /** Abbreviated label displayed on button (e.g., "Nar", "Int", "OOC") */
858
+ abbrev: string;
859
+ /** Opening delimiter (e.g., "[", "*", "{{") */
860
+ prefix: string;
861
+ /** Closing delimiter (e.g., "]", "*", "}}") - empty string for line-end delimiters */
862
+ suffix: string;
863
+ }
848
864
  /**
849
865
  * Configuration for a single roleplay template
850
866
  *
@@ -863,6 +879,20 @@ interface RoleplayTemplateConfig {
863
879
  systemPrompt: string;
864
880
  /** Tags for categorization and searchability */
865
881
  tags?: string[];
882
+ /**
883
+ * Annotation buttons for the formatting toolbar.
884
+ * Defines which formatting options are available when document editing mode is enabled.
885
+ *
886
+ * @example
887
+ * ```typescript
888
+ * annotationButtons: [
889
+ * { label: 'Narration', abbrev: 'Nar', prefix: '[', suffix: ']' },
890
+ * { label: 'Internal Monologue', abbrev: 'Int', prefix: '{', suffix: '}' },
891
+ * { label: 'Out of Character', abbrev: 'OOC', prefix: '// ', suffix: '' },
892
+ * ]
893
+ * ```
894
+ */
895
+ annotationButtons?: AnnotationButton[];
866
896
  }
867
897
  /**
868
898
  * Metadata for a roleplay template plugin
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { AnthropicToolDefinition, AttachmentResults, CacheUsage, FileAttachment, GeneratedImage, GoogleToolDefinition, ImageGenParams, ImageGenProvider, ImageGenResponse, JSONSchemaDefinition, LLMMessage, LLMParams, LLMProvider, LLMResponse, ModelMetadata, ModelWarning, ModelWarningLevel, OpenAIToolDefinition, ResponseFormat, StreamChunk, TokenUsage, ToolCall, ToolCallRequest, ToolFormatOptions, ToolResult, UniversalTool } from './llm/index.mjs';
2
- export { A as AttachmentSupport, C as CheapModelConfig, p as ColorPalette, r as Effects, t as EmbeddedFont, E as EmbeddingModelInfo, F as FontDefinition, d as IconProps, I as ImageGenerationModelInfo, c as ImageProviderConstraints, o as InstalledPluginInfo, L as LLMProviderPlugin, f as MessageFormatSupport, M as ModelInfo, j as PluginAuthor, g as PluginCapability, h as PluginCategory, k as PluginCompatibility, n as PluginManifest, m as PluginPermissions, i as PluginStatus, b as ProviderCapabilities, l as ProviderConfig, a as ProviderConfigRequirements, P as ProviderMetadata, e as ProviderPluginExport, R as RoleplayTemplateConfig, x as RoleplayTemplateMetadata, y as RoleplayTemplatePlugin, z as RoleplayTemplatePluginExport, S as Spacing, u as ThemeMetadata, v as ThemePlugin, w as ThemePluginExport, s as ThemeTokens, T as ToolFormatType, q as Typography } from './index-cJ39N11H.mjs';
2
+ export { A as AttachmentSupport, C as CheapModelConfig, p as ColorPalette, r as Effects, t as EmbeddedFont, E as EmbeddingModelInfo, F as FontDefinition, d as IconProps, I as ImageGenerationModelInfo, c as ImageProviderConstraints, o as InstalledPluginInfo, L as LLMProviderPlugin, f as MessageFormatSupport, M as ModelInfo, j as PluginAuthor, g as PluginCapability, h as PluginCategory, k as PluginCompatibility, n as PluginManifest, m as PluginPermissions, i as PluginStatus, b as ProviderCapabilities, l as ProviderConfig, a as ProviderConfigRequirements, P as ProviderMetadata, e as ProviderPluginExport, R as RoleplayTemplateConfig, x as RoleplayTemplateMetadata, y as RoleplayTemplatePlugin, z as RoleplayTemplatePluginExport, S as Spacing, u as ThemeMetadata, v as ThemePlugin, w as ThemePluginExport, s as ThemeTokens, T as ToolFormatType, q as Typography } from './index-BH5jVqB9.mjs';
3
3
  export { ApiKeyError, AttachmentError, ConfigurationError, LogContext, LogLevel, ModelNotFoundError, PluginError, PluginLogger, ProviderApiError, RateLimitError, ToolExecutionError, createConsoleLogger, createNoopLogger } from './common/index.mjs';
4
4
  import 'react';
5
5
 
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { AnthropicToolDefinition, AttachmentResults, CacheUsage, FileAttachment, GeneratedImage, GoogleToolDefinition, ImageGenParams, ImageGenProvider, ImageGenResponse, JSONSchemaDefinition, LLMMessage, LLMParams, LLMProvider, LLMResponse, ModelMetadata, ModelWarning, ModelWarningLevel, OpenAIToolDefinition, ResponseFormat, StreamChunk, TokenUsage, ToolCall, ToolCallRequest, ToolFormatOptions, ToolResult, UniversalTool } from './llm/index.js';
2
- export { A as AttachmentSupport, C as CheapModelConfig, p as ColorPalette, r as Effects, t as EmbeddedFont, E as EmbeddingModelInfo, F as FontDefinition, d as IconProps, I as ImageGenerationModelInfo, c as ImageProviderConstraints, o as InstalledPluginInfo, L as LLMProviderPlugin, f as MessageFormatSupport, M as ModelInfo, j as PluginAuthor, g as PluginCapability, h as PluginCategory, k as PluginCompatibility, n as PluginManifest, m as PluginPermissions, i as PluginStatus, b as ProviderCapabilities, l as ProviderConfig, a as ProviderConfigRequirements, P as ProviderMetadata, e as ProviderPluginExport, R as RoleplayTemplateConfig, x as RoleplayTemplateMetadata, y as RoleplayTemplatePlugin, z as RoleplayTemplatePluginExport, S as Spacing, u as ThemeMetadata, v as ThemePlugin, w as ThemePluginExport, s as ThemeTokens, T as ToolFormatType, q as Typography } from './index-CKZPUEkh.js';
2
+ export { A as AttachmentSupport, C as CheapModelConfig, p as ColorPalette, r as Effects, t as EmbeddedFont, E as EmbeddingModelInfo, F as FontDefinition, d as IconProps, I as ImageGenerationModelInfo, c as ImageProviderConstraints, o as InstalledPluginInfo, L as LLMProviderPlugin, f as MessageFormatSupport, M as ModelInfo, j as PluginAuthor, g as PluginCapability, h as PluginCategory, k as PluginCompatibility, n as PluginManifest, m as PluginPermissions, i as PluginStatus, b as ProviderCapabilities, l as ProviderConfig, a as ProviderConfigRequirements, P as ProviderMetadata, e as ProviderPluginExport, R as RoleplayTemplateConfig, x as RoleplayTemplateMetadata, y as RoleplayTemplatePlugin, z as RoleplayTemplatePluginExport, S as Spacing, u as ThemeMetadata, v as ThemePlugin, w as ThemePluginExport, s as ThemeTokens, T as ToolFormatType, q as Typography } from './index-C0tKQeeQ.js';
3
3
  export { ApiKeyError, AttachmentError, ConfigurationError, LogContext, LogLevel, ModelNotFoundError, PluginError, PluginLogger, ProviderApiError, RateLimitError, ToolExecutionError, createConsoleLogger, createNoopLogger } from './common/index.js';
4
4
  import 'react';
5
5
 
@@ -1,3 +1,3 @@
1
- export { A as AttachmentSupport, p as ColorPalette, r as Effects, t as EmbeddedFont, E as EmbeddingModelInfo, F as FontDefinition, d as IconProps, I as ImageGenerationModelInfo, c as ImageProviderConstraints, o as InstalledPluginInfo, L as LLMProviderPlugin, M as ModelInfo, j as PluginAuthor, g as PluginCapability, h as PluginCategory, k as PluginCompatibility, n as PluginManifest, m as PluginPermissions, i as PluginStatus, b as ProviderCapabilities, l as ProviderConfig, a as ProviderConfigRequirements, P as ProviderMetadata, e as ProviderPluginExport, R as RoleplayTemplateConfig, x as RoleplayTemplateMetadata, y as RoleplayTemplatePlugin, z as RoleplayTemplatePluginExport, S as Spacing, u as ThemeMetadata, v as ThemePlugin, w as ThemePluginExport, s as ThemeTokens, q as Typography } from '../index-cJ39N11H.mjs';
1
+ export { A as AttachmentSupport, p as ColorPalette, r as Effects, t as EmbeddedFont, E as EmbeddingModelInfo, F as FontDefinition, d as IconProps, I as ImageGenerationModelInfo, c as ImageProviderConstraints, o as InstalledPluginInfo, L as LLMProviderPlugin, M as ModelInfo, j as PluginAuthor, g as PluginCapability, h as PluginCategory, k as PluginCompatibility, n as PluginManifest, m as PluginPermissions, i as PluginStatus, b as ProviderCapabilities, l as ProviderConfig, a as ProviderConfigRequirements, P as ProviderMetadata, e as ProviderPluginExport, R as RoleplayTemplateConfig, x as RoleplayTemplateMetadata, y as RoleplayTemplatePlugin, z as RoleplayTemplatePluginExport, S as Spacing, u as ThemeMetadata, v as ThemePlugin, w as ThemePluginExport, s as ThemeTokens, q as Typography } from '../index-BH5jVqB9.mjs';
2
2
  import 'react';
3
3
  import '../llm/index.mjs';
@@ -1,3 +1,3 @@
1
- export { A as AttachmentSupport, p as ColorPalette, r as Effects, t as EmbeddedFont, E as EmbeddingModelInfo, F as FontDefinition, d as IconProps, I as ImageGenerationModelInfo, c as ImageProviderConstraints, o as InstalledPluginInfo, L as LLMProviderPlugin, M as ModelInfo, j as PluginAuthor, g as PluginCapability, h as PluginCategory, k as PluginCompatibility, n as PluginManifest, m as PluginPermissions, i as PluginStatus, b as ProviderCapabilities, l as ProviderConfig, a as ProviderConfigRequirements, P as ProviderMetadata, e as ProviderPluginExport, R as RoleplayTemplateConfig, x as RoleplayTemplateMetadata, y as RoleplayTemplatePlugin, z as RoleplayTemplatePluginExport, S as Spacing, u as ThemeMetadata, v as ThemePlugin, w as ThemePluginExport, s as ThemeTokens, q as Typography } from '../index-CKZPUEkh.js';
1
+ export { A as AttachmentSupport, p as ColorPalette, r as Effects, t as EmbeddedFont, E as EmbeddingModelInfo, F as FontDefinition, d as IconProps, I as ImageGenerationModelInfo, c as ImageProviderConstraints, o as InstalledPluginInfo, L as LLMProviderPlugin, M as ModelInfo, j as PluginAuthor, g as PluginCapability, h as PluginCategory, k as PluginCompatibility, n as PluginManifest, m as PluginPermissions, i as PluginStatus, b as ProviderCapabilities, l as ProviderConfig, a as ProviderConfigRequirements, P as ProviderMetadata, e as ProviderPluginExport, R as RoleplayTemplateConfig, x as RoleplayTemplateMetadata, y as RoleplayTemplatePlugin, z as RoleplayTemplatePluginExport, S as Spacing, u as ThemeMetadata, v as ThemePlugin, w as ThemePluginExport, s as ThemeTokens, q as Typography } from '../index-C0tKQeeQ.js';
2
2
  import 'react';
3
3
  import '../llm/index.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quilltap/plugin-types",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "Type definitions for Quilltap plugin development",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",