@trismegisto/spine 3.3.6 → 3.3.8

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/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@trismegisto/spine",
3
- "version": "3.3.6",
3
+ "version": "3.3.8",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "peerDependencies": {
6
6
  "@angular/common": ">=21.0.0",
7
7
  "@angular/core": ">=21.0.0",
8
8
  "@angular/router": ">=21.0.0",
9
9
  "@orfeu/angular": "^1.0.0",
10
- "@trismegisto/angular": "^3.3.6",
11
- "@trismegisto/core": "^3.3.6",
12
- "@trismegisto/icons": "^3.3.6",
13
- "@trismegisto/primitives": "^3.3.6",
14
- "@trismegisto/tokens": "^3.3.6",
10
+ "@trismegisto/angular": "^3.3.8",
11
+ "@trismegisto/core": "^3.3.8",
12
+ "@trismegisto/icons": "^3.3.8",
13
+ "@trismegisto/primitives": "^3.3.8",
14
+ "@trismegisto/tokens": "^3.3.8",
15
15
  "rxjs": "^7.0.0",
16
16
  "@apollo/client": "^4.2.0",
17
17
  "apollo-angular": "^14.2.0",
@@ -199,7 +199,6 @@ interface SpineNoticeType {
199
199
  defaultEnabled?: boolean;
200
200
  }
201
201
  interface SpineAiAgentConfig {
202
- agent: string;
203
202
  http: string;
204
203
  ws: string;
205
204
  /** O nome do agente: no balão, no painel, no ícone do cabeçalho e nas iniciais do avatar. Padrão: "Agente de IA". */
@@ -232,7 +231,8 @@ interface SpineAiAgentConfig {
232
231
  */
233
232
  interface SpineFeatures {
234
233
  /** Conversa com o agente de IA do app, num botão flutuante no canto inferior direito. Fala com o gateway de agentes:
235
- * `http` e `ws` são os endereços dele e `agent` é o id do agente. Só leitura ou não, quem decide é o backend do agente. */
234
+ * `http` e `ws` são os endereços dele. Qual é o agente o app não informa: o gateway o descobre pelo client do token.
235
+ * Só leitura ou não, quem decide é o backend do agente. */
236
236
  aiAgent?: SpineAiAgentConfig;
237
237
  /** Sessões › "Conectar um agente de IA": gera um token de aplicação e a configuração MCP pronta para colar.
238
238
  * Precisa de `SPINE_ADMIN_API` (tokens de aplicação). */
@@ -2163,6 +2163,12 @@ interface SpineMessages {
2163
2163
  retry: string;
2164
2164
  close: string;
2165
2165
  newConversation: string;
2166
+ transcriptDownload: string;
2167
+ transcriptDownloadError: string;
2168
+ transcriptFile: string;
2169
+ transcriptQueries: string;
2170
+ transcriptStepFailed: string;
2171
+ transcriptPage: string;
2166
2172
  dock: string;
2167
2173
  undock: string;
2168
2174
  greetingTitle: string;
@@ -1 +1 @@
1
- {"version":3,"file":"trismegisto-spine.d.ts","sources":["../../../projects/ui/src/route.model.ts","../../../projects/ui/src/route-tree.ts","../../../projects/ui/src/builtin-pages.ts","../../../projects/ui/src/hermes.imports.ts","../../../projects/ui/src/brand.ts","../../../projects/ui/src/app-config.token.ts","../../../projects/ui/src/theme.service.ts","../../../projects/ui/src/theme-preset.service.ts","../../../projects/ui/src/density.service.ts","../../../projects/ui/src/theme.initializer.ts","../../../projects/ui/src/icons.generated.ts","../../../projects/ui/src/package-info.token.ts","../../../projects/ui/src/preferences.service.ts","../../../projects/ui/src/admin-api.token.ts","../../../projects/ui/src/quick-access.service.ts","../../../projects/ui/src/user-storage.ts","../../../projects/ui/src/runtime-environment.ts","../../../projects/ui/src/i18n/spine-messages.ts","../../../projects/ui/src/i18n/spine-messages.en.ts","../../../projects/ui/src/i18n/spine-messages.es.ts","../../../projects/ui/src/i18n/spine-i18n.ts"],"mappings":"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","names":[]}
1
+ {"version":3,"file":"trismegisto-spine.d.ts","sources":["../../../projects/ui/src/route.model.ts","../../../projects/ui/src/route-tree.ts","../../../projects/ui/src/builtin-pages.ts","../../../projects/ui/src/hermes.imports.ts","../../../projects/ui/src/brand.ts","../../../projects/ui/src/app-config.token.ts","../../../projects/ui/src/theme.service.ts","../../../projects/ui/src/theme-preset.service.ts","../../../projects/ui/src/density.service.ts","../../../projects/ui/src/theme.initializer.ts","../../../projects/ui/src/icons.generated.ts","../../../projects/ui/src/package-info.token.ts","../../../projects/ui/src/preferences.service.ts","../../../projects/ui/src/admin-api.token.ts","../../../projects/ui/src/quick-access.service.ts","../../../projects/ui/src/user-storage.ts","../../../projects/ui/src/runtime-environment.ts","../../../projects/ui/src/i18n/spine-messages.ts","../../../projects/ui/src/i18n/spine-messages.en.ts","../../../projects/ui/src/i18n/spine-messages.es.ts","../../../projects/ui/src/i18n/spine-i18n.ts"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"trismegisto-spine-layout-ai-agent-chat.component-C5JljPYD.mjs","sources":["../../../projects/ui/layout/src/ai-agent/ai-agent-chat.component.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, signal, viewChild } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { AuthorizationService } from '@orfeu/angular/core';\nimport { BubbleComponent } from '@trismegisto/angular/bubble';\nimport { ButtonComponent } from '@trismegisto/angular/button';\nimport { IconButtonComponent } from '@trismegisto/angular/icon-button';\nimport { MessageComponent } from '@trismegisto/angular/message';\nimport { MessageScrollerComponent } from '@trismegisto/angular/message-scroller';\nimport { PromptSuggestionsComponent } from '@trismegisto/angular/prompt-suggestions';\nimport { TextareaAddonDirective, TextareaComponent } from '@trismegisto/angular/textarea';\nimport { HermesToastService } from '@trismegisto/angular/toast';\nimport { TraceComponent, TraceItemComponent } from '@trismegisto/angular/trace';\nimport { SPINE_MESSAGES } from '@trismegisto/spine';\nimport { SpineMarkdownComponent } from '../docs/markdown.component';\nimport { SpineAgentEntry, SpineAiAgentService } from './ai-agent.service';\n\n/** A conversa com o agente do app, dentro do painel flutuante. O estado fica no `SpineAiAgentService`. */\n@Component({\n selector: 'spine-ai-agent-chat',\n imports: [\n BubbleComponent, ButtonComponent, IconButtonComponent, MessageComponent, MessageScrollerComponent,\n PromptSuggestionsComponent, ReactiveFormsModule, SpineMarkdownComponent, TextareaAddonDirective, TextareaComponent,\n TraceComponent, TraceItemComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"spine-agent\">\n @if (agent.entries().length) {\n <hm-message-scroller class=\"spine-agent__messages\" [label]=\"text.conversation\">\n @for (entry of agent.entries(); track entry.id; let last = $last) {\n <hm-message\n [author]=\"entry.role === 'person' ? text.you : agent.title\"\n [align]=\"entry.role === 'person' ? 'end' : 'start'\"\n [avatarUrl]=\"entry.role === 'person' ? picture : last ? agent.avatarNow() : agent.avatar()\"\n >\n @if (entry.role === 'person') {\n <hm-bubble variant=\"received\"><span class=\"spine-agent__plain\">{{ entry.text }}</span></hm-bubble>\n } @else {\n <div class=\"spine-agent__answer\">\n @if (entry.steps.length) {\n <hm-trace class=\"spine-agent__steps\" [label]=\"text.steps\">\n @for (step of entry.steps; track step.id) {\n <hm-trace-item [heading]=\"step.title\" [status]=\"step.status\" [detail]=\"step.detail ?? ''\" />\n }\n </hm-trace>\n }\n @if (entry.error) {\n <p class=\"spine-agent__error\" role=\"alert\">{{ entry.text }}</p>\n @if (last && !agent.running()) {\n <hm-button size=\"small\" emphasis=\"medium\" icon=\"refresh\" (clicked)=\"agent.retry()\">{{ text.retry }}</hm-button>\n }\n } @else if (entry.text) {\n <hm-bubble class=\"spine-agent__bubble\" variant=\"emphasis\"><spine-markdown [content]=\"entry.text\" /></hm-bubble>\n @if (!(last && agent.running())) {\n <div class=\"spine-agent__actions\">\n <hm-icon-button emphasis=\"subtle\" size=\"small\" icon=\"copy\" [label]=\"text.copy\" (clicked)=\"copy(entry)\" />\n <hm-icon-button\n emphasis=\"subtle\"\n size=\"small\"\n icon=\"thumbs-up\"\n [solid]=\"entry.rating === 'up'\"\n [label]=\"text.rateUp\"\n (clicked)=\"rateUp(entry)\"\n />\n <hm-icon-button\n emphasis=\"subtle\"\n size=\"small\"\n icon=\"thumbs-down\"\n [solid]=\"entry.rating === 'down'\"\n [label]=\"text.rateDown\"\n (clicked)=\"correcting.set(entry.id)\"\n />\n </div>\n @if (correcting() === entry.id) {\n <form class=\"spine-agent__correction\" (submit)=\"$event.preventDefault(); sendCorrection(entry)\">\n <hm-textarea\n [label]=\"text.correctionLabel\"\n [placeholder]=\"text.correctionPlaceholder\"\n [rows]=\"2\"\n [formControl]=\"correction\"\n />\n <div class=\"spine-agent__correction-actions\">\n <hm-button size=\"small\" emphasis=\"minimal\" (clicked)=\"correcting.set(null)\">{{ text.correctionCancel }}</hm-button>\n <hm-button size=\"small\" emphasis=\"medium\" (clicked)=\"sendCorrection(entry)\">{{ text.correctionSend }}</hm-button>\n </div>\n </form>\n }\n }\n } @else if (!entry.steps.length) {\n <hm-bubble [typing]=\"true\" />\n }\n </div>\n }\n </hm-message>\n }\n </hm-message-scroller>\n } @else {\n <div class=\"spine-agent__empty\">\n @if (agent.image() ?? agent.avatar(); as image) {\n <img class=\"spine-agent__portrait\" [src]=\"image\" alt=\"\" (error)=\"agent.imageFailed(image)\" />\n }\n <p class=\"spine-agent__intro\">{{ text.empty }}</p>\n <hm-prompt-suggestions [suggestions]=\"agent.suggestions()\" (chosen)=\"choose($event)\" />\n </div>\n }\n\n <hm-textarea\n class=\"spine-agent__input\"\n [label]=\"text.placeholder\"\n [labelHidden]=\"true\"\n [placeholder]=\"text.placeholder\"\n [rows]=\"2\"\n [maxRows]=\"6\"\n [autoGrow]=\"true\"\n submitKey=\"enter\"\n [formControl]=\"draft\"\n (submitted)=\"send()\"\n >\n <hm-icon-button\n hmTextareaActionsEnd\n class=\"spine-agent__send\"\n emphasis=\"filled\"\n size=\"medium\"\n icon=\"send-arrow\"\n [label]=\"text.send\"\n [disabled]=\"agent.running()\"\n (clicked)=\"send()\"\n />\n </hm-textarea>\n <p class=\"spine-agent__note\">{{ text.note }}</p>\n </div>\n `,\n styles: [`\n :host { display: block; height: 100%; }\n .spine-agent { display: flex; flex-direction: column; gap: var(--hm-space-sm); height: 100%; min-height: 0; }\n .spine-agent__messages { flex: 1; min-height: 0; }\n .spine-agent__empty {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n gap: var(--hm-space-sm);\n min-height: 0;\n overflow-y: auto;\n }\n .spine-agent__intro { margin: 0; color: var(--hm-muted); }\n .spine-agent__portrait {\n align-self: center;\n /* Em painel baixo, é a imagem que cede: o texto e as sugestões continuam à vista. */\n flex: 0 1 auto;\n min-block-size: 0;\n max-inline-size: 60%;\n max-block-size: calc(var(--hm-space-3xl) * 5);\n object-fit: contain;\n }\n .spine-agent__plain { white-space: pre-wrap; overflow-wrap: anywhere; }\n .spine-agent__answer { display: flex; flex-direction: column; align-items: flex-start; gap: var(--hm-space-xs); min-width: 0; width: 100%; }\n .spine-agent__steps { width: 100%; }\n /* O balão acompanha o texto até a largura toda; a tabela maior que isso rola dentro dele. */\n .spine-agent__bubble { inline-size: 100%; max-inline-size: 100%; }\n .spine-agent__answer spine-markdown { display: block; max-inline-size: 100%; overflow-x: auto; }\n /* O avatar já diz de quem é a mensagem. O nome sai só da tela: leitor de tela continua lendo. */\n :host ::ng-deep .spine-agent__messages .hm-message__header {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n }\n /* A tabela herda o tom do balão: só o título ganha um véu do texto, que funciona nos dois temas. */\n :host ::ng-deep .spine-agent__bubble .spine-md th { background: color-mix(in srgb, var(--hm-text) 8%, transparent); }\n :host ::ng-deep .spine-agent__bubble .spine-md :is(th, td) { border-color: color-mix(in srgb, var(--hm-text) 18%, transparent); }\n .spine-agent__input { --hm-radius-control: calc(var(--hm-radius) * 3); }\n .spine-agent__send { --hm-radius-control: var(--hm-radius-pill); }\n .spine-agent__error { margin: 0; color: var(--hm-danger); }\n .spine-agent__actions { display: flex; gap: var(--hm-space-micro); }\n .spine-agent__correction { display: flex; flex-direction: column; gap: var(--hm-space-xs); inline-size: 100%; }\n .spine-agent__correction-actions { display: flex; justify-content: flex-end; gap: var(--hm-space-xs); }\n .spine-agent__note { margin: 0; color: var(--hm-muted); font-size: var(--hm-font-size-xs); }\n `],\n})\nexport class SpineAiAgentChatComponent {\n protected readonly agent = inject(SpineAiAgentService);\n protected readonly text = inject(SPINE_MESSAGES).aiAgentChat;\n protected readonly draft = new FormControl('', { nonNullable: true });\n protected readonly correction = new FormControl('', { nonNullable: true });\n /** A resposta que a pessoa está corrigindo. */\n protected readonly correcting = signal<number | null>(null);\n protected readonly picture = inject(AuthorizationService).profile?.picture ?? null;\n private readonly scroller = viewChild(MessageScrollerComponent);\n private readonly toast = inject(HermesToastService);\n\n protected send(): void {\n const value = this.draft.value;\n if (!value.trim() || this.agent.running()) return;\n this.draft.setValue('');\n this.ask(value);\n }\n\n protected choose(suggestion: string): void {\n this.ask(suggestion);\n }\n\n protected async copy(entry: SpineAgentEntry): Promise<void> {\n try {\n await navigator.clipboard.writeText(entry.text);\n this.toast.success(this.text.copied);\n } catch {\n this.toast.error(this.text.copyError);\n }\n }\n\n protected async rateUp(entry: SpineAgentEntry): Promise<void> {\n this.correcting.set(null);\n if (!(await this.agent.rate(entry.id, 'up'))) this.toast.error(this.text.rateError);\n }\n\n protected async sendCorrection(entry: SpineAgentEntry): Promise<void> {\n const sent = await this.agent.rate(entry.id, 'down', this.correction.value.trim());\n if (!sent) {\n this.toast.error(this.text.rateError);\n return;\n }\n this.correcting.set(null);\n this.correction.setValue('');\n this.toast.success(this.text.rateThanks);\n }\n\n private ask(text: string): void {\n this.agent.send(text);\n queueMicrotask(() => this.scroller()?.scrollToEnd());\n }\n}\n"],"names":[],"mappings":"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"}