comisai 1.0.24 → 1.0.25

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.
Files changed (98) hide show
  1. package/node_modules/@comis/agent/package.json +1 -1
  2. package/node_modules/@comis/channels/package.json +1 -1
  3. package/node_modules/@comis/cli/package.json +1 -1
  4. package/node_modules/@comis/core/dist/bootstrap.js +5 -0
  5. package/node_modules/@comis/core/dist/config/env-layer.d.ts +31 -0
  6. package/node_modules/@comis/core/dist/config/env-layer.js +41 -0
  7. package/node_modules/@comis/core/dist/config/layered.d.ts +9 -0
  8. package/node_modules/@comis/core/dist/config/layered.js +11 -0
  9. package/node_modules/@comis/core/package.json +1 -1
  10. package/node_modules/@comis/daemon/dist/daemon.js +3 -0
  11. package/node_modules/@comis/daemon/package.json +1 -1
  12. package/node_modules/@comis/gateway/package.json +1 -1
  13. package/node_modules/@comis/infra/package.json +1 -1
  14. package/node_modules/@comis/memory/package.json +1 -1
  15. package/node_modules/@comis/scheduler/package.json +1 -1
  16. package/node_modules/@comis/shared/package.json +1 -1
  17. package/node_modules/@comis/skills/package.json +1 -1
  18. package/node_modules/@comis/web/dist/assets/{agent-detail-BG9MGWWj.js → agent-detail-ru-AhppM.js} +270 -270
  19. package/node_modules/@comis/web/dist/assets/agent-editor-hjwRuFVp.js +2173 -0
  20. package/node_modules/@comis/web/dist/assets/{agent-list-LHCJ4rw2.js → agent-list-6Uotjatr.js} +170 -170
  21. package/node_modules/@comis/web/dist/assets/{approvals-q9VH_IKr.js → approvals-C-K6hN2U.js} +13 -13
  22. package/node_modules/@comis/web/dist/assets/billing-view-CxysXH0p.js +375 -0
  23. package/node_modules/@comis/web/dist/assets/{channel-detail-CaInesJM.js → channel-detail-BBCKtmne.js} +265 -265
  24. package/node_modules/@comis/web/dist/assets/channel-list-FkfeOLBQ.js +323 -0
  25. package/node_modules/@comis/web/dist/assets/{chat-console-CNmzl0JW.js → chat-console-BumBaIgO.js} +243 -246
  26. package/node_modules/@comis/web/dist/assets/{config-editor-DX4ITw6y.js → config-editor-C9BSwHGy.js} +477 -477
  27. package/node_modules/@comis/web/dist/assets/{context-dag-browser-BwiaF5tf.js → context-dag-browser-BHm00mJD.js} +105 -105
  28. package/node_modules/@comis/web/dist/assets/{context-engine-BZ5Am6hA.js → context-engine-BENY3pWE.js} +136 -136
  29. package/node_modules/@comis/web/dist/assets/decorate-BvWYovGE.js +38 -0
  30. package/node_modules/@comis/web/dist/assets/{delivery-view-OfBZof-m.js → delivery-view-BCnkPsAp.js} +134 -134
  31. package/node_modules/@comis/web/dist/assets/{diagnostics-view-YFwCxgr2.js → diagnostics-view-C_jQFG2H.js} +82 -82
  32. package/node_modules/@comis/web/dist/assets/directive-BOYXJ-K-.js +1 -0
  33. package/node_modules/@comis/web/dist/assets/{extract-variables-BM5qyK-s.js → extract-variables-B7-Doo7l.js} +39 -39
  34. package/node_modules/@comis/web/dist/assets/{ic-array-editor-B7m6x7-S.js → ic-array-editor-BLoEyeLS.js} +29 -29
  35. package/node_modules/@comis/web/dist/assets/{ic-breadcrumb-CUMpp3BL.js → ic-breadcrumb-DqN6G3gc.js} +16 -16
  36. package/node_modules/@comis/web/dist/assets/{ic-budget-segment-bar-BtJ6x5mN.js → ic-budget-segment-bar-zLsMzjDO.js} +20 -20
  37. package/node_modules/@comis/web/dist/assets/ic-chat-message-FdQcZsSQ.js +352 -0
  38. package/node_modules/@comis/web/dist/assets/{ic-confirm-dialog-CCDbB04e.js → ic-confirm-dialog-DGlPbV1T.js} +26 -26
  39. package/node_modules/@comis/web/dist/assets/{ic-connection-dot-CnT1b8xr.js → ic-connection-dot-BgYiK2N4.js} +13 -13
  40. package/node_modules/@comis/web/dist/assets/ic-data-table-CKIvr-ag.js +277 -0
  41. package/node_modules/@comis/web/dist/assets/ic-delivery-row-B3YwjjuM.js +67 -0
  42. package/node_modules/@comis/web/dist/assets/{ic-detail-panel-BF83r-if.js → ic-detail-panel-DiCe4hLr.js} +27 -27
  43. package/node_modules/@comis/web/dist/assets/{ic-empty-state-60l2ePhd.js → ic-empty-state-CM3Wbj2f.js} +19 -19
  44. package/node_modules/@comis/web/dist/assets/ic-graph-canvas-ByRjij68.js +359 -0
  45. package/node_modules/@comis/web/dist/assets/ic-icon-BGNCCPpZ.js +33 -0
  46. package/node_modules/@comis/web/dist/assets/{ic-layer-waterfall-COvEYMg5.js → ic-layer-waterfall-WkaFyu-l.js} +18 -18
  47. package/node_modules/@comis/web/dist/assets/ic-relative-time-B3UAnTqg.js +12 -0
  48. package/node_modules/@comis/web/dist/assets/{ic-search-input-CSOxY9g7.js → ic-search-input-B02AGw1i.js} +22 -22
  49. package/node_modules/@comis/web/dist/assets/{ic-select-Ce-Raudx.js → ic-select-BqfZISjw.js} +29 -29
  50. package/node_modules/@comis/web/dist/assets/ic-tabs-yBjkWKJH.js +95 -0
  51. package/node_modules/@comis/web/dist/assets/ic-tag-CvMVQFRR.js +33 -0
  52. package/node_modules/@comis/web/dist/assets/{ic-time-range-picker-CypCT68y.js → ic-time-range-picker-DXbYeBmY.js} +31 -31
  53. package/node_modules/@comis/web/dist/assets/{ic-tool-call-7MaXSsCW.js → ic-tool-call-DMPHsLyx.js} +51 -51
  54. package/node_modules/@comis/web/dist/assets/index-CVEaS9aY.css +2 -0
  55. package/node_modules/@comis/web/dist/assets/index-FLPhHz8p.js +2792 -0
  56. package/node_modules/@comis/web/dist/assets/{mcp-management-BNZPnpDn.js → mcp-management-5jyScQis.js} +209 -209
  57. package/node_modules/@comis/web/dist/assets/{media-config-BBvTYxOX.js → media-config-J9oT9PPs.js} +154 -154
  58. package/node_modules/@comis/web/dist/assets/{media-test-BkK3RCRK.js → media-test-DGTCtM8-.js} +259 -259
  59. package/node_modules/@comis/web/dist/assets/{memory-inspector-1hDGCGat.js → memory-inspector-D5Re9ptG.js} +450 -450
  60. package/node_modules/@comis/web/dist/assets/{message-center-CXefwsUu.js → message-center-cRLK6ZmG.js} +290 -290
  61. package/node_modules/@comis/web/dist/assets/{models-C1qcU_j3.js → models-D5vu07MR.js} +371 -371
  62. package/node_modules/@comis/web/dist/assets/observability-types-D0tkwElU.js +1 -0
  63. package/node_modules/@comis/web/dist/assets/{observe-view-C0VBhX4C.js → observe-view-CalNNEmd.js} +399 -399
  64. package/node_modules/@comis/web/dist/assets/pipeline-builder-DUYDGwZf.js +1495 -0
  65. package/node_modules/@comis/web/dist/assets/{pipeline-history-DkfOQ6SW.js → pipeline-history-BAO8brOe.js} +124 -124
  66. package/node_modules/@comis/web/dist/assets/{pipeline-history-detail-hyHgD0ai.js → pipeline-history-detail-DectIoQt.js} +65 -65
  67. package/node_modules/@comis/web/dist/assets/{pipeline-list-BPW8hV-q.js → pipeline-list-BHlaBKww.js} +227 -227
  68. package/node_modules/@comis/web/dist/assets/{pipeline-monitor-Bip16T7e.js → pipeline-monitor-BhtpNEHf.js} +298 -298
  69. package/node_modules/@comis/web/dist/assets/{scheduler-BGgwKd06.js → scheduler-VafN_8xi.js} +486 -486
  70. package/node_modules/@comis/web/dist/assets/{security-D15st4xx.js → security-QQXMRTlo.js} +389 -389
  71. package/node_modules/@comis/web/dist/assets/{session-detail-SGEYNJ0M.js → session-detail-BpZ_8Yih.js} +294 -294
  72. package/node_modules/@comis/web/dist/assets/session-key-parser-Dkqcj2Ss.js +1 -0
  73. package/node_modules/@comis/web/dist/assets/session-list-DfCm8Cec.js +231 -0
  74. package/node_modules/@comis/web/dist/assets/{setup-wizard-nT0tz9QP.js → setup-wizard-C-z477CG.js} +486 -494
  75. package/node_modules/@comis/web/dist/assets/{skills-D8yVfSUy.js → skills-BCOGPf6s.js} +329 -329
  76. package/node_modules/@comis/web/dist/assets/{subagents-HHXMeHYo.js → subagents-l-auUraL.js} +74 -74
  77. package/node_modules/@comis/web/dist/assets/{workspace-manager-BQlr10iH.js → workspace-manager-DlvBixiq.js} +236 -236
  78. package/node_modules/@comis/web/dist/index.html +3 -2
  79. package/node_modules/@comis/web/package.json +1 -1
  80. package/package.json +15 -15
  81. package/node_modules/@comis/web/dist/assets/agent-editor-C26Q_xCs.js +0 -2173
  82. package/node_modules/@comis/web/dist/assets/billing-view-CtYvBqTE.js +0 -375
  83. package/node_modules/@comis/web/dist/assets/channel-list-B8dj3O9a.js +0 -323
  84. package/node_modules/@comis/web/dist/assets/directive-DoeGSK_T.js +0 -1
  85. package/node_modules/@comis/web/dist/assets/ic-chat-message-CFyDJd0z.js +0 -352
  86. package/node_modules/@comis/web/dist/assets/ic-data-table-CKUNTxHw.js +0 -277
  87. package/node_modules/@comis/web/dist/assets/ic-delivery-row-GP5Fkygs.js +0 -67
  88. package/node_modules/@comis/web/dist/assets/ic-graph-canvas-C8FuSMe1.js +0 -359
  89. package/node_modules/@comis/web/dist/assets/ic-icon-xeGTVhVG.js +0 -33
  90. package/node_modules/@comis/web/dist/assets/ic-relative-time-3FqpjeAI.js +0 -12
  91. package/node_modules/@comis/web/dist/assets/ic-tabs-B7QtM_v8.js +0 -95
  92. package/node_modules/@comis/web/dist/assets/ic-tag-CPPUnDLF.js +0 -33
  93. package/node_modules/@comis/web/dist/assets/index-CEcM1R_C.js +0 -2830
  94. package/node_modules/@comis/web/dist/assets/index-CIJFuItj.css +0 -1
  95. package/node_modules/@comis/web/dist/assets/observability-types-D7jUtSde.js +0 -1
  96. package/node_modules/@comis/web/dist/assets/pipeline-builder-DcUUIrm0.js +0 -1496
  97. package/node_modules/@comis/web/dist/assets/session-key-parser-DPORMVyU.js +0 -1
  98. package/node_modules/@comis/web/dist/assets/session-list-6ybUTxbY.js +0 -231
@@ -1,261 +1,4 @@
1
- import{a as f,I as v,b as e,A as o,s as _,f as g,i as b,n as m,r as d,t as x}from"./index-CEcM1R_C.js";import"./ic-tabs-B7QtM_v8.js";import"./ic-empty-state-60l2ePhd.js";import"./ic-icon-xeGTVhVG.js";var y=Object.defineProperty,$=Object.getOwnPropertyDescriptor,l=(i,a,r,t)=>{for(var s=t>1?void 0:t?$(a,r):a,c=i.length-1,u;c>=0;c--)(u=i[c])&&(s=(t?u(a,r,s):u(s))||s);return t&&s&&y(a,r,s),s};const w=[{id:"stt",label:"STT"},{id:"tts",label:"TTS"},{id:"vision",label:"Vision"},{id:"document",label:"Document"},{id:"video",label:"Video"},{id:"link",label:"Link"}],R=25*1024*1024,T=20*1024*1024,h=50*1024*1024;function p(i){const a=new Uint8Array(i),r=32768,t=[];for(let s=0;s<a.length;s+=r)t.push(String.fromCharCode(...a.subarray(s,s+r)));return btoa(t.join(""))}let n=class extends f{constructor(){super(...arguments),this._activeTab="stt",this._processing=!1,this._sttResult=null,this._ttsResult=null,this._audioUrl=null,this._ttsText="",this._ttsVoice="",this._visionResult=null,this._documentResult=null,this._videoResult=null,this._visionPrompt="",this._videoPrompt="",this._linkUrl="",this._linkResult=null,this._loadState="loaded",this._providers=null,this._imagePreviewUrl=null}connectedCallback(){super.connectedCallback(),this._loadProviders()}disconnectedCallback(){super.disconnectedCallback(),this._audioUrl&&(URL.revokeObjectURL(this._audioUrl),this._audioUrl=null),this._imagePreviewUrl&&(URL.revokeObjectURL(this._imagePreviewUrl),this._imagePreviewUrl=null)}async _loadProviders(){if(this.rpcClient)try{const i=await this.rpcClient.call("media.providers");this._providers=i}catch{this._providers=null}}async _handleSttUpload(i){const a=i.target,r=a.files?.[0];if(r){if(r.size>R){v.show("File exceeds 25MB limit","error"),a.value="";return}this._processing=!0,this._sttResult=null;try{const t=await r.arrayBuffer(),s=p(t),c=await this.rpcClient.call("media.test.stt",{audio:s,mimeType:r.type||"audio/wav"});this._sttResult=c}catch(t){const s=t instanceof Error?t.message:String(t);v.show(`STT failed: ${s}`,"error")}finally{this._processing=!1}}}async _handleTtsSynthesize(){if(this._ttsText.trim()){this._processing=!0,this._ttsResult=null,this._audioUrl&&(URL.revokeObjectURL(this._audioUrl),this._audioUrl=null);try{const i=await this.rpcClient.call("media.test.tts",{text:this._ttsText,voice:this._ttsVoice||void 0});this._ttsResult=i;const a=atob(i.audio),r=new Uint8Array(a.length);for(let s=0;s<a.length;s++)r[s]=a.charCodeAt(s);const t=new Blob([r],{type:i.mimeType});this._audioUrl=URL.createObjectURL(t)}catch(i){const a=i instanceof Error?i.message:String(i);v.show(`TTS failed: ${a}`,"error")}finally{this._processing=!1}}}async _handleVisionUpload(i){const a=i.target,r=a.files?.[0];if(r){if(r.size>T){v.show("File exceeds 20MB limit","error"),a.value="";return}this._imagePreviewUrl&&URL.revokeObjectURL(this._imagePreviewUrl),this._imagePreviewUrl=URL.createObjectURL(r),this._processing=!0,this._visionResult=null,this.requestUpdate();try{const t=await r.arrayBuffer(),s=p(t),c=await this.rpcClient.call("media.test.vision",{image:s,mimeType:r.type||"image/jpeg",prompt:this._visionPrompt||void 0});this._visionResult=c}catch(t){const s=t instanceof Error?t.message:String(t);v.show(`Vision analysis failed: ${s}`,"error")}finally{this._processing=!1,a.value=""}}}async _handleDocumentUpload(i){const a=i.target,r=a.files?.[0];if(r){if(r.size>h){v.show("File exceeds 50MB limit","error"),a.value="";return}this._processing=!0,this._documentResult=null;try{const t=await r.arrayBuffer(),s=p(t),c=await this.rpcClient.call("media.test.document",{file:s,mimeType:r.type||"application/octet-stream",fileName:r.name});this._documentResult=c}catch(t){const s=t instanceof Error?t.message:String(t);v.show(`Document extraction failed: ${s}`,"error")}finally{this._processing=!1,a.value=""}}}async _handleVideoUpload(i){const a=i.target,r=a.files?.[0];if(r){if(r.size>h){v.show("File exceeds 50MB limit","error"),a.value="";return}this._processing=!0,this._videoResult=null;try{const t=await r.arrayBuffer(),s=p(t),c=await this.rpcClient.call("media.test.video",{video:s,mimeType:r.type||"video/mp4",prompt:this._videoPrompt||void 0});this._videoResult=c}catch(t){const s=t instanceof Error?t.message:String(t);v.show(`Video analysis failed: ${s}`,"error")}finally{this._processing=!1,a.value=""}}}async _handleLinkTest(){if(this._linkUrl.trim()){this._processing=!0,this._linkResult=null;try{const i=await this.rpcClient.call("media.test.link",{url:this._linkUrl});this._linkResult=i}catch(i){const a=i instanceof Error?i.message:String(i);v.show(`Link processing failed: ${a}`,"error")}finally{this._processing=!1}}}_renderSttProviderInfo(){if(this._providers===null)return e`<div class="provider-info">Provider info unavailable</div>`;if(!this._providers.stt)return e`<div class="provider-info warning">STT not configured -- set integrations.media.transcription in config</div>`;const i=this._providers.stt;return e`<div class="provider-info">Provider: ${i.provider}${i.model?` (${i.model})`:""}</div>`}_renderTtsProviderInfo(){if(this._providers===null)return e`<div class="provider-info">Provider info unavailable</div>`;if(!this._providers.tts)return e`<div class="provider-info warning">TTS not configured -- set integrations.media.tts in config</div>`;const i=this._providers.tts;return e`<div class="provider-info">Provider: ${i.provider}, Voice: ${i.voice}, Format: ${i.format}</div>`}_renderSttTab(){return e`
2
- <div class="card">
3
- <div class="card-title">Speech-to-Text</div>
4
- ${this._renderSttProviderInfo()}
5
- <div class="file-input-wrapper">
6
- <label class="file-label">Upload audio file</label>
7
- <input
8
- type="file"
9
- accept="audio/*,.wav,.mp3,.ogg,.m4a,.webm,.flac"
10
- @change=${this._handleSttUpload}
11
- ?disabled=${this._processing}
12
- />
13
- <div class="file-hint">Max 25MB</div>
14
- </div>
15
- ${this._processing?e`
16
- <div class="spinner-inline">
17
- <ic-loading></ic-loading>
18
- Transcribing...
19
- </div>
20
- `:o}
21
- ${this._sttResult?e`
22
- <div class="result-box">
23
- <div class="result-label">Transcription</div>
24
- <pre class="result-text">${this._sttResult.text}</pre>
25
- <div class="result-meta">
26
- ${this._sttResult.language?e`<span>Language: ${this._sttResult.language}</span>`:o}
27
- ${this._sttResult.durationMs?e`<span>Duration: ${this._sttResult.durationMs}ms</span>`:o}
28
- <span>Provider: ${this._sttResult.provider}</span>
29
- </div>
30
- </div>
31
- `:o}
32
- </div>
33
- `}_renderTtsTab(){return e`
34
- <div class="card">
35
- <div class="card-title">Text-to-Speech</div>
36
- ${this._renderTtsProviderInfo()}
37
- <div class="input-group">
38
- <label class="input-label">Text to synthesize</label>
39
- <textarea
40
- placeholder="Enter text to synthesize..."
41
- .value=${this._ttsText}
42
- @input=${i=>{this._ttsText=i.target.value}}
43
- ?disabled=${this._processing}
44
- ></textarea>
45
- </div>
46
- <div class="input-group">
47
- <label class="input-label">Voice override (optional)</label>
48
- <input
49
- class="text-input"
50
- type="text"
51
- placeholder="Leave empty for default"
52
- .value=${this._ttsVoice}
53
- @input=${i=>{this._ttsVoice=i.target.value}}
54
- ?disabled=${this._processing}
55
- />
56
- </div>
57
- <button
58
- class="btn-primary"
59
- @click=${this._handleTtsSynthesize}
60
- ?disabled=${this._processing||!this._ttsText.trim()}
61
- >
62
- Synthesize
63
- </button>
64
- ${this._processing?e`
65
- <div class="spinner-inline">
66
- <ic-loading></ic-loading>
67
- Synthesizing...
68
- </div>
69
- `:o}
70
- ${this._audioUrl&&this._ttsResult?e`
71
- <div class="audio-player">
72
- <audio controls src=${this._audioUrl}></audio>
73
- <div class="result-meta">
74
- <span>Size: ${(this._ttsResult.sizeBytes/1024).toFixed(1)} KB</span>
75
- <span>Format: ${this._ttsResult.mimeType}</span>
76
- <span>Provider: ${this._ttsResult.provider}</span>
77
- </div>
78
- </div>
79
- `:o}
80
- </div>
81
- `}_renderVisionProviderInfo(){if(this._providers===null)return e`<div class="provider-info">Provider info unavailable</div>`;if(!this._providers.vision)return e`<div class="provider-info warning">Vision not configured -- set integrations.media.vision in config</div>`;const i=this._providers.vision;return e`<div class="provider-info">
82
- Providers: ${i.providers.join(", ")}${i.defaultProvider?` (default: ${i.defaultProvider})`:""}
83
- </div>`}_renderDocumentProviderInfo(){return this._providers===null?e`<div class="provider-info">Provider info unavailable</div>`:this._providers.documentExtraction?.enabled?e`<div class="provider-info">Document extraction enabled</div>`:e`<div class="provider-info warning">Document extraction not configured -- set integrations.media.documentExtraction in config</div>`}_renderVideoProviderInfo(){if(this._providers===null)return e`<div class="provider-info">Provider info unavailable</div>`;const i=this._providers.vision;return i?.videoCapable?.length?e`<div class="provider-info">Video-capable providers: ${i.videoCapable.join(", ")}</div>`:e`<div class="provider-info warning">No video-capable vision provider configured (requires Gemini or compatible)</div>`}_renderVisionTab(){return e`
84
- <div class="card">
85
- <div class="card-title">Vision Analysis</div>
86
- ${this._renderVisionProviderInfo()}
87
- <div class="file-input-wrapper">
88
- <label class="file-label">Upload image</label>
89
- <input
90
- type="file"
91
- accept="image/*,.png,.jpg,.jpeg,.gif,.webp,.bmp"
92
- @change=${this._handleVisionUpload}
93
- ?disabled=${this._processing}
94
- />
95
- <div class="file-hint">Max 20MB</div>
96
- </div>
97
- <div class="input-group">
98
- <label class="input-label">Analysis prompt (optional)</label>
99
- <textarea
100
- placeholder="Describe this image in detail"
101
- .value=${this._visionPrompt}
102
- @input=${i=>{this._visionPrompt=i.target.value}}
103
- ?disabled=${this._processing}
104
- ></textarea>
105
- </div>
106
- ${this._processing?e`
107
- <div class="spinner-inline">
108
- <ic-loading></ic-loading>
109
- Analyzing image...
110
- </div>
111
- `:o}
112
- ${this._imagePreviewUrl?e`
113
- <div class="image-preview">
114
- <img src=${this._imagePreviewUrl} alt="Upload preview" />
115
- </div>
116
- `:o}
117
- ${this._visionResult?e`
118
- <div class="result-box">
119
- <div class="result-label">Analysis</div>
120
- <pre class="result-text">${this._visionResult.description}</pre>
121
- <div class="result-meta">
122
- <span>Provider: ${this._visionResult.provider}</span>
123
- <span>Model: ${this._visionResult.model}</span>
124
- </div>
125
- </div>
126
- `:o}
127
- </div>
128
- `}_renderDocumentTab(){return e`
129
- <div class="card">
130
- <div class="card-title">Document Extraction</div>
131
- ${this._renderDocumentProviderInfo()}
132
- <div class="file-input-wrapper">
133
- <label class="file-label">Upload document</label>
134
- <input
135
- type="file"
136
- accept=".pdf,.csv,.txt,.json,.xml,.html,.md,.doc,.docx,.xls,.xlsx"
137
- @change=${this._handleDocumentUpload}
138
- ?disabled=${this._processing}
139
- />
140
- <div class="file-hint">Max 50MB</div>
141
- </div>
142
- ${this._processing?e`
143
- <div class="spinner-inline">
144
- <ic-loading></ic-loading>
145
- Extracting text...
146
- </div>
147
- `:o}
148
- ${this._documentResult?e`
149
- <div class="result-box">
150
- <div class="result-label">Extracted Text</div>
151
- <pre class="result-text result-text--scrollable">${this._documentResult.text}</pre>
152
- <div class="result-meta">
153
- <span>File: ${this._documentResult.fileName}</span>
154
- <span>Chars: ${this._documentResult.extractedChars.toLocaleString()}</span>
155
- ${this._documentResult.pageCount!=null?e`<span>Pages: ${this._documentResult.pageCount}</span>`:o}
156
- ${this._documentResult.truncated?e`<span class="truncated-badge">Truncated</span>`:o}
157
- <span>Duration: ${this._documentResult.durationMs}ms</span>
158
- </div>
159
- </div>
160
- `:o}
161
- </div>
162
- `}_renderVideoTab(){return e`
163
- <div class="card">
164
- <div class="card-title">Video Analysis</div>
165
- ${this._renderVideoProviderInfo()}
166
- <div class="file-input-wrapper">
167
- <label class="file-label">Upload video</label>
168
- <input
169
- type="file"
170
- accept="video/*,.mp4,.mov,.avi,.webm,.mkv"
171
- @change=${this._handleVideoUpload}
172
- ?disabled=${this._processing}
173
- />
174
- <div class="file-hint">Max 50MB</div>
175
- </div>
176
- <div class="input-group">
177
- <label class="input-label">Analysis prompt (optional)</label>
178
- <textarea
179
- placeholder="Describe this video concisely."
180
- .value=${this._videoPrompt}
181
- @input=${i=>{this._videoPrompt=i.target.value}}
182
- ?disabled=${this._processing}
183
- ></textarea>
184
- </div>
185
- ${this._processing?e`
186
- <div class="spinner-inline">
187
- <ic-loading></ic-loading>
188
- Analyzing video...
189
- </div>
190
- `:o}
191
- ${this._videoResult?e`
192
- <div class="result-box">
193
- <div class="result-label">Analysis</div>
194
- <pre class="result-text">${this._videoResult.description}</pre>
195
- <div class="result-meta">
196
- <span>Provider: ${this._videoResult.provider}</span>
197
- <span>Model: ${this._videoResult.model}</span>
198
- </div>
199
- </div>
200
- `:o}
201
- </div>
202
- `}_renderLinkProviderInfo(){return this._providers===null?e`<div class="provider-info">Provider info unavailable</div>`:this._providers.linkUnderstanding?.enabled?e`<div class="provider-info">Link enrichment enabled (max ${this._providers.linkUnderstanding.maxLinks} links)</div>`:e`<div class="provider-info warning">Link understanding not configured</div>`}_renderLinkTab(){return e`
203
- <div class="card">
204
- <div class="card-title">Link Enrichment</div>
205
- ${this._renderLinkProviderInfo()}
206
- <div class="input-group">
207
- <label class="input-label">Enter URL to process</label>
208
- <input
209
- class="text-input"
210
- type="url"
211
- placeholder="https://example.com/article"
212
- .value=${this._linkUrl}
213
- @input=${i=>{this._linkUrl=i.target.value}}
214
- ?disabled=${this._processing}
215
- />
216
- </div>
217
- <button
218
- class="btn-primary"
219
- @click=${this._handleLinkTest}
220
- ?disabled=${this._processing||!this._linkUrl.trim()}
221
- >
222
- Process Link
223
- </button>
224
- ${this._processing?e`
225
- <div class="spinner-inline">
226
- <ic-loading></ic-loading>
227
- Processing link...
228
- </div>
229
- `:o}
230
- ${this._linkResult?e`
231
- <div class="result-box">
232
- <div class="result-label">Enriched Text</div>
233
- <pre class="result-text result-text--scrollable">${this._linkResult.enrichedText}</pre>
234
- <div class="result-meta">
235
- <span>Links processed: ${this._linkResult.linksProcessed}</span>
236
- </div>
237
- ${this._linkResult.errors.length>0?e`
238
- <div class="provider-info warning" style="margin-top: var(--ic-space-sm);">
239
- Errors: ${this._linkResult.errors.join(", ")}
240
- </div>
241
- `:o}
242
- </div>
243
- `:o}
244
- </div>
245
- `}_renderActiveTab(){switch(this._activeTab){case"stt":return this._renderSttTab();case"tts":return this._renderTtsTab();case"vision":return this._renderVisionTab();case"document":return this._renderDocumentTab();case"video":return this._renderVideoTab();case"link":return this._renderLinkTab();default:return o}}render(){return e`
246
- <div class="header-row">
247
- <div class="header-title">Media Tools</div>
248
- </div>
249
- <ic-tabs
250
- .tabs=${w}
251
- .activeTab=${this._activeTab}
252
- @tab-change=${i=>{this._activeTab=i.detail}}
253
- >
254
- </ic-tabs>
255
- <div class="tab-content">
256
- ${this._renderActiveTab()}
257
- </div>
258
- `}};n.styles=[_,g,b`
1
+ import{c as e,f as t,h as n,l as r,n as i,o as a,r as o,s,t as c,u as l}from"./decorate-BvWYovGE.js";import{a as u}from"./index-FLPhHz8p.js";import"./ic-empty-state-CM3Wbj2f.js";import"./ic-tabs-yBjkWKJH.js";var d=[{id:`stt`,label:`STT`},{id:`tts`,label:`TTS`},{id:`vision`,label:`Vision`},{id:`document`,label:`Document`},{id:`video`,label:`Video`},{id:`link`,label:`Link`}],f=25*1024*1024,p=20*1024*1024,m=50*1024*1024;function h(e){let t=new Uint8Array(e),n=32768,r=[];for(let e=0;e<t.length;e+=n)r.push(String.fromCharCode(...t.subarray(e,e+n)));return btoa(r.join(``))}var g=class extends r{constructor(...e){super(...e),this._activeTab=`stt`,this._processing=!1,this._sttResult=null,this._ttsResult=null,this._audioUrl=null,this._ttsText=``,this._ttsVoice=``,this._visionResult=null,this._documentResult=null,this._videoResult=null,this._visionPrompt=``,this._videoPrompt=``,this._linkUrl=``,this._linkResult=null,this._loadState=`loaded`,this._providers=null,this._imagePreviewUrl=null}static{this.styles=[o,i,n`
259
2
  :host {
260
3
  display: block;
261
4
  }
@@ -493,4 +236,261 @@ import{a as f,I as v,b as e,A as o,s as _,f as g,i as b,n as m,r as d,t as x}fro
493
236
  font-weight: 600;
494
237
  }
495
238
 
496
- `];l([m({attribute:!1})],n.prototype,"rpcClient",2);l([m({attribute:!1})],n.prototype,"apiClient",2);l([d()],n.prototype,"_activeTab",2);l([d()],n.prototype,"_processing",2);l([d()],n.prototype,"_sttResult",2);l([d()],n.prototype,"_ttsResult",2);l([d()],n.prototype,"_audioUrl",2);l([d()],n.prototype,"_ttsText",2);l([d()],n.prototype,"_ttsVoice",2);l([d()],n.prototype,"_visionResult",2);l([d()],n.prototype,"_documentResult",2);l([d()],n.prototype,"_videoResult",2);l([d()],n.prototype,"_visionPrompt",2);l([d()],n.prototype,"_videoPrompt",2);l([d()],n.prototype,"_linkUrl",2);l([d()],n.prototype,"_linkResult",2);l([d()],n.prototype,"_loadState",2);l([d()],n.prototype,"_providers",2);n=l([x("ic-media-test-view")],n);export{n as IcMediaTestView};
239
+ `]}connectedCallback(){super.connectedCallback(),this._loadProviders()}disconnectedCallback(){super.disconnectedCallback(),this._audioUrl&&=(URL.revokeObjectURL(this._audioUrl),null),this._imagePreviewUrl&&=(URL.revokeObjectURL(this._imagePreviewUrl),null)}async _loadProviders(){if(this.rpcClient)try{let e=await this.rpcClient.call(`media.providers`);this._providers=e}catch{this._providers=null}}async _handleSttUpload(e){let t=e.target,n=t.files?.[0];if(n){if(n.size>f){u.show(`File exceeds 25MB limit`,`error`),t.value=``;return}this._processing=!0,this._sttResult=null;try{let e=h(await n.arrayBuffer()),t=await this.rpcClient.call(`media.test.stt`,{audio:e,mimeType:n.type||`audio/wav`});this._sttResult=t}catch(e){let t=e instanceof Error?e.message:String(e);u.show(`STT failed: ${t}`,`error`)}finally{this._processing=!1}}}async _handleTtsSynthesize(){if(this._ttsText.trim()){this._processing=!0,this._ttsResult=null,this._audioUrl&&=(URL.revokeObjectURL(this._audioUrl),null);try{let e=await this.rpcClient.call(`media.test.tts`,{text:this._ttsText,voice:this._ttsVoice||void 0});this._ttsResult=e;let t=atob(e.audio),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);let r=new Blob([n],{type:e.mimeType});this._audioUrl=URL.createObjectURL(r)}catch(e){let t=e instanceof Error?e.message:String(e);u.show(`TTS failed: ${t}`,`error`)}finally{this._processing=!1}}}async _handleVisionUpload(e){let t=e.target,n=t.files?.[0];if(n){if(n.size>p){u.show(`File exceeds 20MB limit`,`error`),t.value=``;return}this._imagePreviewUrl&&URL.revokeObjectURL(this._imagePreviewUrl),this._imagePreviewUrl=URL.createObjectURL(n),this._processing=!0,this._visionResult=null,this.requestUpdate();try{let e=h(await n.arrayBuffer()),t=await this.rpcClient.call(`media.test.vision`,{image:e,mimeType:n.type||`image/jpeg`,prompt:this._visionPrompt||void 0});this._visionResult=t}catch(e){let t=e instanceof Error?e.message:String(e);u.show(`Vision analysis failed: ${t}`,`error`)}finally{this._processing=!1,t.value=``}}}async _handleDocumentUpload(e){let t=e.target,n=t.files?.[0];if(n){if(n.size>m){u.show(`File exceeds 50MB limit`,`error`),t.value=``;return}this._processing=!0,this._documentResult=null;try{let e=h(await n.arrayBuffer()),t=await this.rpcClient.call(`media.test.document`,{file:e,mimeType:n.type||`application/octet-stream`,fileName:n.name});this._documentResult=t}catch(e){let t=e instanceof Error?e.message:String(e);u.show(`Document extraction failed: ${t}`,`error`)}finally{this._processing=!1,t.value=``}}}async _handleVideoUpload(e){let t=e.target,n=t.files?.[0];if(n){if(n.size>m){u.show(`File exceeds 50MB limit`,`error`),t.value=``;return}this._processing=!0,this._videoResult=null;try{let e=h(await n.arrayBuffer()),t=await this.rpcClient.call(`media.test.video`,{video:e,mimeType:n.type||`video/mp4`,prompt:this._videoPrompt||void 0});this._videoResult=t}catch(e){let t=e instanceof Error?e.message:String(e);u.show(`Video analysis failed: ${t}`,`error`)}finally{this._processing=!1,t.value=``}}}async _handleLinkTest(){if(this._linkUrl.trim()){this._processing=!0,this._linkResult=null;try{let e=await this.rpcClient.call(`media.test.link`,{url:this._linkUrl});this._linkResult=e}catch(e){let t=e instanceof Error?e.message:String(e);u.show(`Link processing failed: ${t}`,`error`)}finally{this._processing=!1}}}_renderSttProviderInfo(){if(this._providers===null)return t`<div class="provider-info">Provider info unavailable</div>`;if(!this._providers.stt)return t`<div class="provider-info warning">STT not configured -- set integrations.media.transcription in config</div>`;let e=this._providers.stt;return t`<div class="provider-info">Provider: ${e.provider}${e.model?` (${e.model})`:``}</div>`}_renderTtsProviderInfo(){if(this._providers===null)return t`<div class="provider-info">Provider info unavailable</div>`;if(!this._providers.tts)return t`<div class="provider-info warning">TTS not configured -- set integrations.media.tts in config</div>`;let e=this._providers.tts;return t`<div class="provider-info">Provider: ${e.provider}, Voice: ${e.voice}, Format: ${e.format}</div>`}_renderSttTab(){return t`
240
+ <div class="card">
241
+ <div class="card-title">Speech-to-Text</div>
242
+ ${this._renderSttProviderInfo()}
243
+ <div class="file-input-wrapper">
244
+ <label class="file-label">Upload audio file</label>
245
+ <input
246
+ type="file"
247
+ accept="audio/*,.wav,.mp3,.ogg,.m4a,.webm,.flac"
248
+ @change=${this._handleSttUpload}
249
+ ?disabled=${this._processing}
250
+ />
251
+ <div class="file-hint">Max 25MB</div>
252
+ </div>
253
+ ${this._processing?t`
254
+ <div class="spinner-inline">
255
+ <ic-loading></ic-loading>
256
+ Transcribing...
257
+ </div>
258
+ `:l}
259
+ ${this._sttResult?t`
260
+ <div class="result-box">
261
+ <div class="result-label">Transcription</div>
262
+ <pre class="result-text">${this._sttResult.text}</pre>
263
+ <div class="result-meta">
264
+ ${this._sttResult.language?t`<span>Language: ${this._sttResult.language}</span>`:l}
265
+ ${this._sttResult.durationMs?t`<span>Duration: ${this._sttResult.durationMs}ms</span>`:l}
266
+ <span>Provider: ${this._sttResult.provider}</span>
267
+ </div>
268
+ </div>
269
+ `:l}
270
+ </div>
271
+ `}_renderTtsTab(){return t`
272
+ <div class="card">
273
+ <div class="card-title">Text-to-Speech</div>
274
+ ${this._renderTtsProviderInfo()}
275
+ <div class="input-group">
276
+ <label class="input-label">Text to synthesize</label>
277
+ <textarea
278
+ placeholder="Enter text to synthesize..."
279
+ .value=${this._ttsText}
280
+ @input=${e=>{this._ttsText=e.target.value}}
281
+ ?disabled=${this._processing}
282
+ ></textarea>
283
+ </div>
284
+ <div class="input-group">
285
+ <label class="input-label">Voice override (optional)</label>
286
+ <input
287
+ class="text-input"
288
+ type="text"
289
+ placeholder="Leave empty for default"
290
+ .value=${this._ttsVoice}
291
+ @input=${e=>{this._ttsVoice=e.target.value}}
292
+ ?disabled=${this._processing}
293
+ />
294
+ </div>
295
+ <button
296
+ class="btn-primary"
297
+ @click=${this._handleTtsSynthesize}
298
+ ?disabled=${this._processing||!this._ttsText.trim()}
299
+ >
300
+ Synthesize
301
+ </button>
302
+ ${this._processing?t`
303
+ <div class="spinner-inline">
304
+ <ic-loading></ic-loading>
305
+ Synthesizing...
306
+ </div>
307
+ `:l}
308
+ ${this._audioUrl&&this._ttsResult?t`
309
+ <div class="audio-player">
310
+ <audio controls src=${this._audioUrl}></audio>
311
+ <div class="result-meta">
312
+ <span>Size: ${(this._ttsResult.sizeBytes/1024).toFixed(1)} KB</span>
313
+ <span>Format: ${this._ttsResult.mimeType}</span>
314
+ <span>Provider: ${this._ttsResult.provider}</span>
315
+ </div>
316
+ </div>
317
+ `:l}
318
+ </div>
319
+ `}_renderVisionProviderInfo(){if(this._providers===null)return t`<div class="provider-info">Provider info unavailable</div>`;if(!this._providers.vision)return t`<div class="provider-info warning">Vision not configured -- set integrations.media.vision in config</div>`;let e=this._providers.vision;return t`<div class="provider-info">
320
+ Providers: ${e.providers.join(`, `)}${e.defaultProvider?` (default: ${e.defaultProvider})`:``}
321
+ </div>`}_renderDocumentProviderInfo(){return this._providers===null?t`<div class="provider-info">Provider info unavailable</div>`:this._providers.documentExtraction?.enabled?t`<div class="provider-info">Document extraction enabled</div>`:t`<div class="provider-info warning">Document extraction not configured -- set integrations.media.documentExtraction in config</div>`}_renderVideoProviderInfo(){if(this._providers===null)return t`<div class="provider-info">Provider info unavailable</div>`;let e=this._providers.vision;return e?.videoCapable?.length?t`<div class="provider-info">Video-capable providers: ${e.videoCapable.join(`, `)}</div>`:t`<div class="provider-info warning">No video-capable vision provider configured (requires Gemini or compatible)</div>`}_renderVisionTab(){return t`
322
+ <div class="card">
323
+ <div class="card-title">Vision Analysis</div>
324
+ ${this._renderVisionProviderInfo()}
325
+ <div class="file-input-wrapper">
326
+ <label class="file-label">Upload image</label>
327
+ <input
328
+ type="file"
329
+ accept="image/*,.png,.jpg,.jpeg,.gif,.webp,.bmp"
330
+ @change=${this._handleVisionUpload}
331
+ ?disabled=${this._processing}
332
+ />
333
+ <div class="file-hint">Max 20MB</div>
334
+ </div>
335
+ <div class="input-group">
336
+ <label class="input-label">Analysis prompt (optional)</label>
337
+ <textarea
338
+ placeholder="Describe this image in detail"
339
+ .value=${this._visionPrompt}
340
+ @input=${e=>{this._visionPrompt=e.target.value}}
341
+ ?disabled=${this._processing}
342
+ ></textarea>
343
+ </div>
344
+ ${this._processing?t`
345
+ <div class="spinner-inline">
346
+ <ic-loading></ic-loading>
347
+ Analyzing image...
348
+ </div>
349
+ `:l}
350
+ ${this._imagePreviewUrl?t`
351
+ <div class="image-preview">
352
+ <img src=${this._imagePreviewUrl} alt="Upload preview" />
353
+ </div>
354
+ `:l}
355
+ ${this._visionResult?t`
356
+ <div class="result-box">
357
+ <div class="result-label">Analysis</div>
358
+ <pre class="result-text">${this._visionResult.description}</pre>
359
+ <div class="result-meta">
360
+ <span>Provider: ${this._visionResult.provider}</span>
361
+ <span>Model: ${this._visionResult.model}</span>
362
+ </div>
363
+ </div>
364
+ `:l}
365
+ </div>
366
+ `}_renderDocumentTab(){return t`
367
+ <div class="card">
368
+ <div class="card-title">Document Extraction</div>
369
+ ${this._renderDocumentProviderInfo()}
370
+ <div class="file-input-wrapper">
371
+ <label class="file-label">Upload document</label>
372
+ <input
373
+ type="file"
374
+ accept=".pdf,.csv,.txt,.json,.xml,.html,.md,.doc,.docx,.xls,.xlsx"
375
+ @change=${this._handleDocumentUpload}
376
+ ?disabled=${this._processing}
377
+ />
378
+ <div class="file-hint">Max 50MB</div>
379
+ </div>
380
+ ${this._processing?t`
381
+ <div class="spinner-inline">
382
+ <ic-loading></ic-loading>
383
+ Extracting text...
384
+ </div>
385
+ `:l}
386
+ ${this._documentResult?t`
387
+ <div class="result-box">
388
+ <div class="result-label">Extracted Text</div>
389
+ <pre class="result-text result-text--scrollable">${this._documentResult.text}</pre>
390
+ <div class="result-meta">
391
+ <span>File: ${this._documentResult.fileName}</span>
392
+ <span>Chars: ${this._documentResult.extractedChars.toLocaleString()}</span>
393
+ ${this._documentResult.pageCount==null?l:t`<span>Pages: ${this._documentResult.pageCount}</span>`}
394
+ ${this._documentResult.truncated?t`<span class="truncated-badge">Truncated</span>`:l}
395
+ <span>Duration: ${this._documentResult.durationMs}ms</span>
396
+ </div>
397
+ </div>
398
+ `:l}
399
+ </div>
400
+ `}_renderVideoTab(){return t`
401
+ <div class="card">
402
+ <div class="card-title">Video Analysis</div>
403
+ ${this._renderVideoProviderInfo()}
404
+ <div class="file-input-wrapper">
405
+ <label class="file-label">Upload video</label>
406
+ <input
407
+ type="file"
408
+ accept="video/*,.mp4,.mov,.avi,.webm,.mkv"
409
+ @change=${this._handleVideoUpload}
410
+ ?disabled=${this._processing}
411
+ />
412
+ <div class="file-hint">Max 50MB</div>
413
+ </div>
414
+ <div class="input-group">
415
+ <label class="input-label">Analysis prompt (optional)</label>
416
+ <textarea
417
+ placeholder="Describe this video concisely."
418
+ .value=${this._videoPrompt}
419
+ @input=${e=>{this._videoPrompt=e.target.value}}
420
+ ?disabled=${this._processing}
421
+ ></textarea>
422
+ </div>
423
+ ${this._processing?t`
424
+ <div class="spinner-inline">
425
+ <ic-loading></ic-loading>
426
+ Analyzing video...
427
+ </div>
428
+ `:l}
429
+ ${this._videoResult?t`
430
+ <div class="result-box">
431
+ <div class="result-label">Analysis</div>
432
+ <pre class="result-text">${this._videoResult.description}</pre>
433
+ <div class="result-meta">
434
+ <span>Provider: ${this._videoResult.provider}</span>
435
+ <span>Model: ${this._videoResult.model}</span>
436
+ </div>
437
+ </div>
438
+ `:l}
439
+ </div>
440
+ `}_renderLinkProviderInfo(){return this._providers===null?t`<div class="provider-info">Provider info unavailable</div>`:this._providers.linkUnderstanding?.enabled?t`<div class="provider-info">Link enrichment enabled (max ${this._providers.linkUnderstanding.maxLinks} links)</div>`:t`<div class="provider-info warning">Link understanding not configured</div>`}_renderLinkTab(){return t`
441
+ <div class="card">
442
+ <div class="card-title">Link Enrichment</div>
443
+ ${this._renderLinkProviderInfo()}
444
+ <div class="input-group">
445
+ <label class="input-label">Enter URL to process</label>
446
+ <input
447
+ class="text-input"
448
+ type="url"
449
+ placeholder="https://example.com/article"
450
+ .value=${this._linkUrl}
451
+ @input=${e=>{this._linkUrl=e.target.value}}
452
+ ?disabled=${this._processing}
453
+ />
454
+ </div>
455
+ <button
456
+ class="btn-primary"
457
+ @click=${this._handleLinkTest}
458
+ ?disabled=${this._processing||!this._linkUrl.trim()}
459
+ >
460
+ Process Link
461
+ </button>
462
+ ${this._processing?t`
463
+ <div class="spinner-inline">
464
+ <ic-loading></ic-loading>
465
+ Processing link...
466
+ </div>
467
+ `:l}
468
+ ${this._linkResult?t`
469
+ <div class="result-box">
470
+ <div class="result-label">Enriched Text</div>
471
+ <pre class="result-text result-text--scrollable">${this._linkResult.enrichedText}</pre>
472
+ <div class="result-meta">
473
+ <span>Links processed: ${this._linkResult.linksProcessed}</span>
474
+ </div>
475
+ ${this._linkResult.errors.length>0?t`
476
+ <div class="provider-info warning" style="margin-top: var(--ic-space-sm);">
477
+ Errors: ${this._linkResult.errors.join(`, `)}
478
+ </div>
479
+ `:l}
480
+ </div>
481
+ `:l}
482
+ </div>
483
+ `}_renderActiveTab(){switch(this._activeTab){case`stt`:return this._renderSttTab();case`tts`:return this._renderTtsTab();case`vision`:return this._renderVisionTab();case`document`:return this._renderDocumentTab();case`video`:return this._renderVideoTab();case`link`:return this._renderLinkTab();default:return l}}render(){return t`
484
+ <div class="header-row">
485
+ <div class="header-title">Media Tools</div>
486
+ </div>
487
+ <ic-tabs
488
+ .tabs=${d}
489
+ .activeTab=${this._activeTab}
490
+ @tab-change=${e=>{this._activeTab=e.detail}}
491
+ >
492
+ </ic-tabs>
493
+ <div class="tab-content">
494
+ ${this._renderActiveTab()}
495
+ </div>
496
+ `}};c([s({attribute:!1})],g.prototype,`rpcClient`,void 0),c([s({attribute:!1})],g.prototype,`apiClient`,void 0),c([a()],g.prototype,`_activeTab`,void 0),c([a()],g.prototype,`_processing`,void 0),c([a()],g.prototype,`_sttResult`,void 0),c([a()],g.prototype,`_ttsResult`,void 0),c([a()],g.prototype,`_audioUrl`,void 0),c([a()],g.prototype,`_ttsText`,void 0),c([a()],g.prototype,`_ttsVoice`,void 0),c([a()],g.prototype,`_visionResult`,void 0),c([a()],g.prototype,`_documentResult`,void 0),c([a()],g.prototype,`_videoResult`,void 0),c([a()],g.prototype,`_visionPrompt`,void 0),c([a()],g.prototype,`_videoPrompt`,void 0),c([a()],g.prototype,`_linkUrl`,void 0),c([a()],g.prototype,`_linkResult`,void 0),c([a()],g.prototype,`_loadState`,void 0),c([a()],g.prototype,`_providers`,void 0),g=c([e(`ic-media-test-view`)],g);export{g as IcMediaTestView};