prosemirror-suggestcat-plugin 2.2.0 → 2.2.2

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 (94) hide show
  1. package/README.md +129 -299
  2. package/dist/index.es.js +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/playwright.config.d.ts +3 -0
  5. package/dist/playwright.config.d.ts.map +1 -0
  6. package/dist/{api → src/api}/config.d.ts +1 -0
  7. package/dist/src/api/config.d.ts.map +1 -0
  8. package/dist/{api → src/api}/index.d.ts +1 -0
  9. package/dist/src/api/index.d.ts.map +1 -0
  10. package/dist/{api → src/api}/request.d.ts +1 -0
  11. package/dist/src/api/request.d.ts.map +1 -0
  12. package/dist/{api → src/api}/streaming.d.ts +1 -0
  13. package/dist/src/api/streaming.d.ts.map +1 -0
  14. package/dist/{api → src/api}/types.d.ts +1 -0
  15. package/dist/src/api/types.d.ts.map +1 -0
  16. package/dist/{autoComplete → src/autoComplete}/actions.d.ts +1 -0
  17. package/dist/src/autoComplete/actions.d.ts.map +1 -0
  18. package/dist/{autoComplete → src/autoComplete}/index.d.ts +1 -0
  19. package/dist/src/autoComplete/index.d.ts.map +1 -0
  20. package/dist/{autoComplete → src/autoComplete}/plugin.d.ts +1 -0
  21. package/dist/src/autoComplete/plugin.d.ts.map +1 -0
  22. package/dist/{autoComplete → src/autoComplete}/streaming.d.ts +1 -0
  23. package/dist/src/autoComplete/streaming.d.ts.map +1 -0
  24. package/dist/{autoComplete → src/autoComplete}/types.d.ts +5 -4
  25. package/dist/src/autoComplete/types.d.ts.map +1 -0
  26. package/dist/{completeV2 → src/completeV2}/actions.d.ts +1 -0
  27. package/dist/src/completeV2/actions.d.ts.map +1 -0
  28. package/dist/{completeV2 → src/completeV2}/index.d.ts +1 -0
  29. package/dist/src/completeV2/index.d.ts.map +1 -0
  30. package/dist/{completeV2 → src/completeV2}/plugin.d.ts +1 -0
  31. package/dist/src/completeV2/plugin.d.ts.map +1 -0
  32. package/dist/{completeV2 → src/completeV2}/streaming.d.ts +1 -0
  33. package/dist/src/completeV2/streaming.d.ts.map +1 -0
  34. package/dist/{completeV2 → src/completeV2}/types.d.ts +1 -0
  35. package/dist/src/completeV2/types.d.ts.map +1 -0
  36. package/dist/{createUpdatePopup.d.ts → src/createUpdatePopup.d.ts} +1 -0
  37. package/dist/src/createUpdatePopup.d.ts.map +1 -0
  38. package/dist/{defaults.d.ts → src/defaults.d.ts} +1 -0
  39. package/dist/src/defaults.d.ts.map +1 -0
  40. package/dist/{grammarSuggestV2 → src/grammarSuggestV2}/actions.d.ts +2 -1
  41. package/dist/src/grammarSuggestV2/actions.d.ts.map +1 -0
  42. package/dist/{grammarSuggestV2 → src/grammarSuggestV2}/decorations.d.ts +2 -1
  43. package/dist/src/grammarSuggestV2/decorations.d.ts.map +1 -0
  44. package/dist/{grammarSuggestV2 → src/grammarSuggestV2}/index.d.ts +1 -0
  45. package/dist/src/grammarSuggestV2/index.d.ts.map +1 -0
  46. package/dist/{grammarSuggestV2 → src/grammarSuggestV2}/modelState.d.ts +1 -0
  47. package/dist/src/grammarSuggestV2/modelState.d.ts.map +1 -0
  48. package/dist/{grammarSuggestV2 → src/grammarSuggestV2}/plugin.d.ts +2 -1
  49. package/dist/src/grammarSuggestV2/plugin.d.ts.map +1 -0
  50. package/dist/{grammarSuggestV2 → src/grammarSuggestV2}/processor.d.ts +2 -1
  51. package/dist/src/grammarSuggestV2/processor.d.ts.map +1 -0
  52. package/dist/{grammarSuggestV2 → src/grammarSuggestV2}/types.d.ts +1 -0
  53. package/dist/src/grammarSuggestV2/types.d.ts.map +1 -0
  54. package/dist/{index.d.ts → src/index.d.ts} +1 -1
  55. package/dist/src/index.d.ts.map +1 -0
  56. package/dist/{types.d.ts → src/types.d.ts} +1 -0
  57. package/dist/src/types.d.ts.map +1 -0
  58. package/dist/{utils.d.ts → src/utils.d.ts} +1 -0
  59. package/dist/src/utils.d.ts.map +1 -0
  60. package/dist/src/utils.test.d.ts +2 -0
  61. package/dist/src/utils.test.d.ts.map +1 -0
  62. package/package.json +37 -33
  63. package/dist/blockRunner/defaults.d.ts +0 -3
  64. package/dist/blockRunner/examples/linkDetector/decorations.d.ts +0 -3
  65. package/dist/blockRunner/examples/linkDetector/index.d.ts +0 -4
  66. package/dist/blockRunner/examples/linkDetector/plugin.d.ts +0 -5
  67. package/dist/blockRunner/examples/linkDetector/processor.d.ts +0 -4
  68. package/dist/blockRunner/examples/linkDetector/types.d.ts +0 -8
  69. package/dist/blockRunner/examples/randomProcessor/decorations.d.ts +0 -4
  70. package/dist/blockRunner/examples/randomProcessor/index.d.ts +0 -4
  71. package/dist/blockRunner/examples/randomProcessor/plugin.d.ts +0 -5
  72. package/dist/blockRunner/examples/randomProcessor/processor.d.ts +0 -5
  73. package/dist/blockRunner/examples/randomProcessor/types.d.ts +0 -14
  74. package/dist/blockRunner/examples/sentenceLength/decorations.d.ts +0 -3
  75. package/dist/blockRunner/examples/sentenceLength/index.d.ts +0 -4
  76. package/dist/blockRunner/examples/sentenceLength/plugin.d.ts +0 -5
  77. package/dist/blockRunner/examples/sentenceLength/processor.d.ts +0 -5
  78. package/dist/blockRunner/examples/sentenceLength/types.d.ts +0 -12
  79. package/dist/blockRunner/examples/wordComplexity/decorations.d.ts +0 -3
  80. package/dist/blockRunner/examples/wordComplexity/index.d.ts +0 -4
  81. package/dist/blockRunner/examples/wordComplexity/plugin.d.ts +0 -5
  82. package/dist/blockRunner/examples/wordComplexity/processor.d.ts +0 -6
  83. package/dist/blockRunner/examples/wordComplexity/types.d.ts +0 -13
  84. package/dist/blockRunner/executor.d.ts +0 -7
  85. package/dist/blockRunner/executor.test.d.ts +0 -1
  86. package/dist/blockRunner/index.d.ts +0 -12
  87. package/dist/blockRunner/plugin.d.ts +0 -14
  88. package/dist/blockRunner/state.d.ts +0 -4
  89. package/dist/blockRunner/state.test.d.ts +0 -1
  90. package/dist/blockRunner/testHelpers.d.ts +0 -17
  91. package/dist/blockRunner/types.d.ts +0 -162
  92. package/dist/blockRunner/utils.d.ts +0 -25
  93. package/dist/blockRunner/utils.test.d.ts +0 -1
  94. package/dist/utils.test.d.ts +0 -1
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var t,e,o,s,n,r=require("prosemirror-model"),a=require("prosemirror-state"),i=require("tslib"),c=require("fast-diff"),p=require("@emergence-engineering/fast-diff-merge"),u=require("prosemirror-transform"),l=require("prosemirror-view");exports.GrammarSuggestMetaType=void 0,(t=exports.GrammarSuggestMetaType||(exports.GrammarSuggestMetaType={})).suggestionUpdate="suggestionUpdate",t.acceptSuggestion="acceptSuggestion",t.openSuggestion="openSuggestion",t.closeSuggestion="closeSuggestion",t.discardSuggestion="discardSuggestion",t.setEnabled="setEnabled",exports.GrammarSuggestElementClass=void 0,(exports.GrammarSuggestElementClass||(exports.GrammarSuggestElementClass={})).grammarSuggestPopup="grammar-suggest-popup",exports.MoodParamType=void 0,(e=exports.MoodParamType||(exports.MoodParamType={})).Casual="Casual",e.Confident="Confident",e.Straightforward="Straightforward",e.Friendly="Friendly",exports.TranslationTargetLanguage=void 0,(o=exports.TranslationTargetLanguage||(exports.TranslationTargetLanguage={})).English="English",o.Spanish="Spanish",o.French="French",o.German="German",o.Italian="Italian",o.Portuguese="Portuguese",o.Dutch="Dutch",o.Russian="Russian",o.Chinese="Chinese",o.Korean="Korean",o.Japanese="Japanese",exports.AiPromptsWithoutParam=void 0,(s=exports.AiPromptsWithoutParam||(exports.AiPromptsWithoutParam={})).Complete="Complete",s.SmallComplete="SmallComplete",s.Improve="Improve",s.MakeLonger="MakeLonger",s.MakeShorter="MakeShorter",s.Simplify="Simplify",s.Explain="Explain",s.ActionItems="ActionItems",exports.AiPromptsWithParam=void 0,(n=exports.AiPromptsWithParam||(exports.AiPromptsWithParam={})).ChangeTone="ChangeTone",n.Translate="Translate",n.Hint="Hint",n.Custom="Custom";const d=exports.AiPromptsWithoutParam,m=exports.AiPromptsWithParam;var g,x,S;exports.Status=void 0,(g=exports.Status||(exports.Status={})).idle="idle",g.new="new",g.streaming="streaming",g.finished="finished",g.accepted="accepted",g.cancelled="cancelled",g.rejected="rejected",g.done="done",g.error="error",exports.CompleteStatus=void 0,(x=exports.CompleteStatus||(exports.CompleteStatus={})).IDLE="idle",x.PENDING="pending",x.STREAMING="streaming",x.PREVIEW="preview",x.APPLYING="applying",exports.CompleteActionType=void 0,(S=exports.CompleteActionType||(exports.CompleteActionType={})).START_TASK="START_TASK",S.STREAM_UPDATE="STREAM_UPDATE",S.STREAM_COMPLETE="STREAM_COMPLETE",S.STREAM_ERROR="STREAM_ERROR",S.ACCEPT_RESULT="ACCEPT_RESULT",S.REJECT_RESULT="REJECT_RESULT",S.CANCEL_TASK="CANCEL_TASK",S.CLEAR_ERROR="CLEAR_ERROR",S.SET_ENABLED="SET_ENABLED";const E={maxSelection:1e3},T="https://suggestion-gw5lxik4dq-uc.a.run.app",f="https://prosemirror-ai-plugin.web.app/api/suggestion",y="openai:gpt-4o-mini";function C(t,e){var o;return i.__awaiter(this,void 0,void 0,(function*(){const{apiKey:s,text:n,task:r,params:a,endpoint:i=T,model:c=y,signal:p}=t;let u="";const l={model:c,modelParams:{input:[n],task:r,params:a}};try{const t=yield fetch(i,{method:"POST",cache:"no-cache",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},signal:p,body:JSON.stringify(l)});if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);const n=null===(o=t.body)||void 0===o?void 0:o.getReader();if(!n)throw new Error("No response body");for(;;){const{done:t,value:o}=yield n.read();if(t)break;if(null==p?void 0:p.aborted)return;const s=(new TextDecoder).decode(o);u+=s,e.onChunk(s,u)}(null==p?void 0:p.aborted)||e.onComplete(u)}catch(t){if(t instanceof Error&&"AbortError"===t.name)return;e.onError(t instanceof Error?t:new Error(String(t)))}}))}function A(t){return i.__awaiter(this,void 0,void 0,(function*(){const{apiKey:e,text:o,endpoint:s=f,model:n=y}=t,r={model:n,modelParams:{input:[...o.split("\n")]}};try{const t=yield fetch(s,{method:"POST",cache:"no-cache",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify(r)});if(!t.ok){const e=yield t.text();return console.error({status:t.status,text:e}),{fixed:!1,result:o,error:!0}}const n=yield t.json();return(null==n?void 0:n.length)?{result:n.join("\n"),fixed:!0}:{fixed:!1,result:o}}catch(t){return console.error("Grammar request error:",t),{fixed:!1,result:o,error:!0}}}))}const h=new WeakMap;function R(t){const e=h.get(t);e&&(e.abort(),h.delete(t))}const I=new a.PluginKey("completePluginV2"),O={status:exports.CompleteStatus.IDLE,streamedResult:"",enabled:!0};function b(t,e={}){const{maxSelection:o,apiEndpoint:s,model:n}=Object.assign(Object.assign({},E),e);let c=!1;return new a.Plugin({key:I,state:{init:()=>Object.assign({},O),apply(t,e){const o=t.getMeta(I);return o?function(t,e){switch(e.type){case exports.CompleteActionType.SET_ENABLED:return Object.assign(Object.assign(Object.assign({},t),{enabled:e.enabled}),e.enabled?{}:O);case exports.CompleteActionType.START_TASK:return t.status!==exports.CompleteStatus.IDLE?t:Object.assign(Object.assign({},t),{status:exports.CompleteStatus.PENDING,taskType:e.taskType,params:e.params,selection:e.selection,streamedResult:"",error:void 0});case exports.CompleteActionType.STREAM_UPDATE:return t.status!==exports.CompleteStatus.PENDING&&t.status!==exports.CompleteStatus.STREAMING?t:Object.assign(Object.assign({},t),{status:exports.CompleteStatus.STREAMING,streamedResult:e.result});case exports.CompleteActionType.STREAM_COMPLETE:return t.status!==exports.CompleteStatus.PENDING&&t.status!==exports.CompleteStatus.STREAMING?t:Object.assign(Object.assign({},t),{status:exports.CompleteStatus.PREVIEW,streamedResult:e.result});case exports.CompleteActionType.STREAM_ERROR:return Object.assign(Object.assign({},t),{status:exports.CompleteStatus.IDLE,error:e.error,streamedResult:"",taskType:void 0,params:void 0,selection:void 0});case exports.CompleteActionType.ACCEPT_RESULT:return t.status!==exports.CompleteStatus.PREVIEW?t:Object.assign(Object.assign({},t),{status:exports.CompleteStatus.APPLYING});case exports.CompleteActionType.REJECT_RESULT:return t.status!==exports.CompleteStatus.PREVIEW?t:Object.assign(Object.assign({},O),{enabled:t.enabled});case exports.CompleteActionType.CANCEL_TASK:return Object.assign(Object.assign({},O),{enabled:t.enabled});case exports.CompleteActionType.CLEAR_ERROR:return Object.assign(Object.assign({},t),{error:void 0});default:return t}}(e,o):e.status===exports.CompleteStatus.APPLYING?Object.assign(Object.assign({},O),{enabled:e.enabled}):e}},view:()=>({update(e){const p=I.getState(e.state);if(p&&p.enabled){if(p.status===exports.CompleteStatus.PENDING&&!c){const{text:r,error:a}=function(t,e,o){const{taskType:s,selection:n}=e;if(s===exports.AiPromptsWithoutParam.Complete){const{doc:e}=t.state,o=[];return e.descendants((t=>{"paragraph"===t.type.name&&o.push(t.textContent)})),{text:o.length>=2?o.slice(-2).join(" "):o.join(" ")}}return n?t.state.doc.textBetween(n.from,n.to).length>o?{text:"",error:"Selection is too big"}:{text:t.state.doc.textBetween(n.from,n.to,"\n")}:{text:"",error:"No selection"}}(e,p,o);if(a)return void e.dispatch(e.state.tr.setMeta(I,{type:exports.CompleteActionType.STREAM_ERROR,error:a}));if(!r)return void e.dispatch(e.state.tr.setMeta(I,{type:exports.CompleteActionType.STREAM_ERROR,error:"No text to process"}));c=!0,function({view:t,pluginKey:e,apiKey:o,text:s,task:n,params:r,apiEndpoint:a,model:c}){return i.__awaiter(this,void 0,void 0,(function*(){R(t);const i=new AbortController;h.set(t,i);try{yield C({apiKey:o,text:s,task:n,params:r,endpoint:a,model:c,signal:i.signal},{onChunk:(o,s)=>{t.isDestroyed||t.dispatch(t.state.tr.setMeta(e,{type:exports.CompleteActionType.STREAM_UPDATE,result:s}))},onComplete:o=>{t.isDestroyed||t.dispatch(t.state.tr.setMeta(e,{type:exports.CompleteActionType.STREAM_COMPLETE,result:o}))},onError:o=>{console.error("Streaming request error:",o),t.isDestroyed||t.dispatch(t.state.tr.setMeta(e,{type:exports.CompleteActionType.STREAM_ERROR,error:o.message}))}})}finally{h.delete(t)}}))}({view:e,pluginKey:I,apiKey:t,text:r,task:p.taskType,params:p.params,apiEndpoint:s,model:n}).finally((()=>{c=!1}))}p.status===exports.CompleteStatus.APPLYING&&function(t,e){const{taskType:o,selection:s,streamedResult:n}=e;if(!n)return;let{tr:i}=t.state;if(o===exports.AiPromptsWithoutParam.Complete)i=i.insertText(n,t.state.doc.nodeSize-2);else if(s){const e=n.split("\n\n").map((e=>t.state.schema.node("paragraph",null,e?t.state.schema.text(e):void 0))),o=r.Fragment.fromArray(e);i=i.setSelection(a.TextSelection.create(t.state.doc,s.from,s.to)),i.selection.replace(i,new r.Slice(o,0,0))}t.dispatch(i),t.focus()}(e,p)}},destroy(){}})})}const v={debounceMs:2e3,createUpdatePopup:(t,e,o,s,n)=>{const r=document.createElement("div");r.className="grammar-suggest-tooltip";const{spec:a}=e,i=t.dom.getBoundingClientRect();r.id=exports.GrammarSuggestElementClass.grammarSuggestPopup;const c=t.coordsAtPos(o),p=t.dom.scrollTop||0,u=t.dom.scrollLeft||0;r.style.left=`${c.left-i.left+u}px`,r.style.top=`${c.bottom-i.top+p+5}px`;const l=document.createElement("div");l.className="grammar-suggest-tooltip-apply",l.innerText=a.text||a.originalText,a.text||(l.style.textDecoration="line-through",l.style.color="red"),l.onclick=()=>{s(t,e)},r.appendChild(l);const d=document.createElement("div");return d.innerHTML="<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'><path d='M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM12 10.5858L14.8284 7.75736L16.2426 9.17157L13.4142 12L16.2426 14.8284L14.8284 16.2426L12 13.4142L9.17157 16.2426L7.75736 14.8284L10.5858 12L7.75736 9.17157L9.17157 7.75736L12 10.5858Z'></path></svg>",d.className="grammar-suggest-tooltip-discard",d.onclick=()=>{n(t,e)},r.appendChild(d),r},withYjs:!1},P=new a.PluginKey("completePlugin"),D=new a.PluginKey("grammarSuggestPlugin");var w,M,U;exports.RunnerStatus=void 0,(w=exports.RunnerStatus||(exports.RunnerStatus={})).IDLE="IDLE",w.ACTIVE="ACTIVE",exports.UnitStatus=void 0,(M=exports.UnitStatus||(exports.UnitStatus={})).DIRTY="DIRTY",M.WAITING="WAITING",M.QUEUED="QUEUED",M.PROCESSING="PROCESSING",M.DONE="DONE",M.BACKOFF="BACKOFF",M.ERROR="ERROR",exports.ActionType=void 0,(U=exports.ActionType||(exports.ActionType={})).INIT="INIT",U.FINISH="FINISH",U.CLEAR="CLEAR",U.RESUME="RESUME",U.UNIT_STARTED="UNIT_STARTED",U.UNIT_SUCCESS="UNIT_SUCCESS",U.UNIT_ERROR="UNIT_ERROR",U.UPDATE_CONTEXT="UPDATE_CONTEXT",U.REMOVE_DECORATION="REMOVE_DECORATION",U.SELECT_DECORATION="SELECT_DECORATION",U.DESELECT_DECORATION="DESELECT_DECORATION";const N={nodeTypes:"paragraph",priorityFilter:()=>!0,visibilityFilter:()=>!0,getGroupId:()=>"default",batchSize:4,maxRetries:3,backoffBase:1e3,dirtyHandling:{shouldRecalculate:!0,debounceDelay:2e3,skipDirtyOnSelfChange:!0},forceRerender:()=>{},onUpdate:void 0};function _(t){return Object.assign(Object.assign(Object.assign({},N),t),{dirtyHandling:Object.assign(Object.assign({},N.dirtyHandling),t.dirtyHandling)})}function L(t,e,o){const s=[];let n="",r=0;return t.nodesBetween(e,o,((t,a)=>{if(t.isText&&t.text){const i=Math.max(e,a),c=Math.min(o,a+t.nodeSize),p=t.text.slice(i-a,c-a);s.push({from:r,docPos:i}),n+=p,r+=p.length}else t.isBlock&&n.length>0&&(s.push({from:r,docPos:a}),n+="\n",r+=1)})),{text:n,mapping:s}}function j(t,e){var o,s;for(let o=e.length-1;o>=0;o--)if(e[o].from<=t)return e[o].docPos+(t-e[o].from);return null!==(s=null===(o=e[0])||void 0===o?void 0:o.docPos)&&void 0!==s?s:0}function k(t,e,o,s="paragraph"){const n=Array.isArray(s)?s:[s],r=[];return t.nodesBetween(e,o,((e,o)=>{if(n.includes(e.type.name)){const s=o+e.nodeSize,n=L(t,o,s);n.text.trim().length>0&&r.push(Object.assign({from:o,to:s},n))}})),r}const G=(t,e)=>t.map((t=>null==t?void 0:t.map(e,0,0))).filter((t=>null!==t)),K=(t,e)=>{const o=t.doc.content.findDiffStart(e.doc.content),s=e.doc.content.findDiffEnd(t.doc.content);if(!s||!o)return;let n=new u.StepMap([0,0,0]),r=o,a=s.a;return s&&o&&(s.a<o?(r=s.a,a=s.b,n=new u.StepMap([s.a,0,s.b-s.a])):s.b<o?(r=s.b,a=s.a,n=new u.StepMap([s.b,s.a-s.b,0])):n=new u.StepMap([o,s.a-o,s.b-o])),{end:a,mapping:new u.Mapping([n]),start:r}};function F(t,e,o,s,n=!1){var r;const a=K(e,o);if(!a)return t;const{start:i,end:c,mapping:p}=a,u=Array.isArray(s.nodeTypes)?s.nodeTypes:[s.nodeTypes],l=Date.now()+s.dirtyHandling.debounceDelay,d=null===(r=t.unitsInProgress)||void 0===r?void 0:r.slice().sort(((t,e)=>t.from-e.from));if(d){const o=[],s=p.map(d[0].from),r=p.map(d[d.length-1].to),a=k(e.doc,s,r,u);for(const t in d){const e=d[t],s=a[t];if(s){let{status:t}=e;!n&&s.from<=c&&s.to>=i&&(t=exports.UnitStatus.DIRTY),o.push(Object.assign(Object.assign(Object.assign({},e),{status:t,waitUntil:n?e.waitUntil:l}),s))}else o.push(Object.assign(Object.assign({},e),{status:exports.UnitStatus.DONE,from:r,to:r}))}return Object.assign(Object.assign({},t),{unitsInProgress:o,decorations:G(t.decorations,p)})}return Object.assign(Object.assign({},t),{decorations:G(t.decorations,p)})}function V(t,e){return 1e3*Math.pow(e/1e3,t)}function B(t){return new Promise((e=>setTimeout(e,t)))}function W(t,e,o){t.dispatch(t.state.tr.setMeta(e,o))}function H(t,e,o){if(e.status===exports.RunnerStatus.ACTIVE)return e.unitsInProgress.find((t=>t.id===o))}function q(t,e,o){const s=t.unitsInProgress.map((t=>t.id===e?Object.assign(Object.assign({},t),o):t));return"waitUntil"in o&&s.sort(((t,e)=>t.waitUntil-e.waitUntil)),Object.assign(Object.assign({},t),{unitsInProgress:s})}function $(t,e,o,s,n="paragraph"){return k(t,e,o,n).map(((t,e)=>({id:{},status:exports.UnitStatus.QUEUED,from:t.from,to:t.to,text:t.text,mapping:t.mapping,metadata:s(t,e),retryCount:0,waitUntil:0})))}function Q(t,e,o,s){var n;switch(e.type){case exports.ActionType.INIT:return function(t,e,o,s){const n=$(o,e.onlySelection?s.from:0,e.onlySelection?s.to:o.content.size,((t,o)=>{var s;if(void 0!==e.metadata.single)return e.metadata.single;if(void 0!==e.metadata.array)return null!==(s=e.metadata.array[o])&&void 0!==s?s:e.metadata.array[0];if(void 0!==e.metadata.factory){const o={id:{},status:exports.UnitStatus.QUEUED,from:t.from,to:t.to,text:t.text,mapping:[],metadata:{},retryCount:0,waitUntil:0};return e.metadata.factory(o)}return{}})).map((e=>Object.assign(Object.assign({},e),{status:t.options.priorityFilter(e,t.contextState)?exports.UnitStatus.QUEUED:exports.UnitStatus.WAITING})));return Object.assign(Object.assign({},t),{status:exports.RunnerStatus.ACTIVE,unitsInProgress:n})}(t,e,s.doc,s.selection);case exports.ActionType.UNIT_STARTED:return t.status!==exports.RunnerStatus.ACTIVE?t:function(t,e){const o=t.unitsInProgress.find((t=>t.id===e));return o?q(t,e,{status:exports.UnitStatus.PROCESSING,requestText:o.text}):t}(t,e.unitId);case exports.ActionType.UNIT_SUCCESS:return t.status!==exports.RunnerStatus.ACTIVE?t:function(t,e,o){const s=t.unitsInProgress.find((t=>t.id===e.unitId));if(!s)return t;const n=Date.now()+t.options.dirtyHandling.debounceDelay;if(void 0!==s.requestText&&s.requestText!==s.text)return q(t,e.unitId,{status:exports.UnitStatus.DIRTY,requestText:void 0,waitUntil:n});const r=o(e.response,s),a=q(t,e.unitId,{status:exports.UnitStatus.DONE,response:e.response,requestText:void 0});return Object.assign(Object.assign({},a),{decorations:[...a.decorations,...r]})}(t,e,o);case exports.ActionType.UNIT_ERROR:return t.status!==exports.RunnerStatus.ACTIVE?t:function(t,e){const o=t.unitsInProgress.find((t=>t.id===e.unitId));if(!o)return t;const s=Date.now()+t.options.dirtyHandling.debounceDelay;if(void 0!==o.requestText&&o.requestText!==o.text)return q(t,e.unitId,{status:exports.UnitStatus.DIRTY,requestText:void 0,waitUntil:s});const n=o.retryCount+1;return n>=t.options.maxRetries?q(t,e.unitId,{status:exports.UnitStatus.ERROR,retryCount:n,requestText:void 0}):q(t,e.unitId,{status:exports.UnitStatus.BACKOFF,retryCount:n,waitUntil:Date.now()+V(n,t.options.backoffBase),requestText:void 0})}(t,e);case exports.ActionType.FINISH:return Object.assign(Object.assign({},t),{status:exports.RunnerStatus.IDLE});case exports.ActionType.CLEAR:return Object.assign(Object.assign({},t),{decorations:[],unitsInProgress:void 0,status:exports.RunnerStatus.IDLE,selected:void 0});case exports.ActionType.RESUME:return t.status!==exports.RunnerStatus.IDLE?t:(null===(n=t.unitsInProgress)||void 0===n?void 0:n.length)?Object.assign(Object.assign({},t),{status:exports.RunnerStatus.ACTIVE}):t;case exports.ActionType.UPDATE_CONTEXT:return Object.assign(Object.assign({},t),{contextState:e.contextState});case exports.ActionType.REMOVE_DECORATION:return Object.assign(Object.assign({},t),{decorations:t.decorations.filter((t=>t.spec.id!==e.id))});case exports.ActionType.SELECT_DECORATION:return Object.assign(Object.assign({},t),{selected:e.id});case exports.ActionType.DESELECT_DECORATION:return Object.assign(Object.assign({},t),{selected:void 0});default:return t}}function Y(t,e){return{status:exports.RunnerStatus.IDLE,decorations:[],selected:void 0,contextState:t,options:e}}function z(t,e,o,s){return i.__awaiter(this,void 0,void 0,(function*(){const n=t.getState(e.state);if(!n||n.status!==exports.RunnerStatus.ACTIVE)return!1;const r=function(t,e){var o;if(t.status!==exports.RunnerStatus.ACTIVE)return;const s=Date.now(),n=null!==(o=t.unitsInProgress)&&void 0!==o?o:[],r=t=>[exports.UnitStatus.QUEUED,exports.UnitStatus.BACKOFF,exports.UnitStatus.DIRTY].includes(t.status)&&t.waitUntil<=s,a=n.find((o=>r(o)&&e.priorityFilter(o,t.contextState)));if(a)return a;const i=n.find(r);if(i)return i;return n.find((t=>[exports.UnitStatus.QUEUED,exports.UnitStatus.BACKOFF,exports.UnitStatus.DIRTY].includes(t.status)&&t.waitUntil>s))||void 0}(n,s);if(!r)return!1;W(e,t,{type:exports.ActionType.UNIT_STARTED,unitId:r.id});const a=t.getState(e.state);if(!a)return!1;const i=H(0,a,r.id);if(i&&i.waitUntil>Date.now()){yield B(i.waitUntil-Date.now());const o=t.getState(e.state);if(!o||o.status!==exports.RunnerStatus.ACTIVE)return!1}try{const s=yield o(e,r);s.error?W(e,t,{type:exports.ActionType.UNIT_ERROR,unitId:r.id,error:s.error}):void 0!==s.data&&W(e,t,{type:exports.ActionType.UNIT_SUCCESS,unitId:r.id,response:s.data})}catch(o){W(e,t,{type:exports.ActionType.UNIT_ERROR,unitId:r.id,error:o instanceof Error?o:new Error(String(o))})}return!0}))}function J(t,e,o,s){return i.__awaiter(this,void 0,void 0,(function*(){return!!(yield z(t,e,o,s))&&J(t,e,o,s)}))}function X(t,e,o,s){return i.__awaiter(this,void 0,void 0,(function*(){const n=Array.from({length:s.batchSize},(()=>J(t,e,o,s)));yield Promise.all(n)}))}function Z(t){return t.status===exports.RunnerStatus.ACTIVE&&t.unitsInProgress.some((t=>t.status===exports.UnitStatus.QUEUED||t.status===exports.UnitStatus.WAITING||t.status===exports.UnitStatus.BACKOFF||t.status===exports.UnitStatus.DIRTY||t.status===exports.UnitStatus.PROCESSING))}function tt(t){const{pluginKey:e,unitProcessor:o,decorationFactory:s,decorationTransformer:n,widgetFactory:r,initialContextState:i,options:c,handleKeyDown:p}=t,u=_(null!=c?c:{});let d=!1;return new a.Plugin({key:e,state:{init:()=>Y(i,u),apply(t,o,n,r){const a=t.getMeta(e),i=t.docChanged&&void 0!==a&&u.dirtyHandling.skipDirtyOnSelfChange;let c=o;if(t.docChanged&&(c=F(o,t,n,u,i)),a){const t=Q(c,a,s,r);return u.onUpdate&&u.onUpdate(t),t}return c}},props:{decorations(t){const o=e.getState(t);if(!o)return l.DecorationSet.empty;let s=o.decorations.filter((t=>u.visibilityFilter(t,o.contextState)));n&&(s=n(s,o));const a=[];if(r&&o.unitsInProgress)for(const t of o.unitsInProgress)if(t.status!==exports.UnitStatus.DONE&&t.status!==exports.UnitStatus.ERROR){const e=r(t);e&&a.push(e)}return l.DecorationSet.create(t.doc,[...s,...a])},handleKeyDown:p},view:()=>({update(t){const s=e.getState(t.state);s&&s.status===exports.RunnerStatus.ACTIVE&&!d&&Z(s)&&(d=!0,X(e,t,o,u).finally((()=>{d=!1;const o=e.getState(t.state);!o||o.status!==exports.RunnerStatus.ACTIVE||Z(o)||u.dirtyHandling.shouldRecalculate||W(t,e,{type:exports.ActionType.FINISH})})))}})})}function et(t){return new a.PluginKey(t)}const ot=(t,e)=>t.map((o=>{const s=j(o.from,e.mapping),n=j(o.to,e.mapping);return l.Decoration.inline(s,n,{class:"link-detected",style:"color: #0066cc; text-decoration: underline; cursor: pointer;"},{id:{},unitId:e.id,originalText:o.url,response:t,url:o.url})})),st=/https?:\/\/[^\s<>"')\]]+/g;const nt=(t,e)=>i.__awaiter(void 0,void 0,void 0,(function*(){return{data:function(t){const e=[];let o=st.exec(t);for(;null!==o;)e.push({url:o[0],from:o.index,to:o.index+o[0].length}),o=st.exec(t);return e}(e.text)}})),rt=et("linkDetector");const at={moderate:{class:"word-complexity-moderate",style:"background-color: rgba(255, 193, 7, 0.3); border-radius: 2px;"},high:{class:"word-complexity-high",style:"background-color: rgba(244, 67, 54, 0.3); border-radius: 2px;"}},it=(t,e)=>t.map((o=>{const s=j(o.from,e.mapping),n=j(o.to,e.mapping),r=at[o.complexity];return l.Decoration.inline(s,n,{class:r.class,style:r.style},{id:{},unitId:e.id,originalText:o.word,response:t,syllables:o.syllables,complexity:o.complexity})}));function ct(t){let e=t.toLowerCase().replace(/[^a-z]/g,"");if(e.length<=3)return 1;e=e.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/,""),e=e.replace(/^y/,"");const o=e.match(/[aeiouy]{1,2}/g);return o?Math.max(1,o.length):1}const pt=/[a-zA-Z]+/g;function ut(t,e,o){const s=[];let n=pt.exec(t);for(;null!==n;){const r=n[0],a=ct(r);a>=e&&s.push({word:r,from:n.index,to:n.index+r.length,syllables:a,complexity:a>=o?"high":"moderate"}),n=pt.exec(t)}return s}const lt=(t,e)=>i.__awaiter(void 0,void 0,void 0,(function*(){return{data:ut(e.text,3,4)}})),dt={moderateThreshold:3,highThreshold:4},mt=et("wordComplexity");const gt={warning:{class:"sentence-too-long-warning",style:"background-color: rgba(255, 152, 0, 0.2); border-radius: 2px;"},error:{class:"sentence-too-long-error",style:"background-color: rgba(244, 67, 54, 0.2); border-radius: 2px;"}},xt=(t,e)=>t.map((o=>{const s=j(o.from,e.mapping),n=j(o.to,e.mapping),r=gt[o.severity];return l.Decoration.inline(s,n,{class:r.class,style:r.style},{id:{},unitId:e.id,originalText:e.text.slice(o.from,o.to),response:t,wordCount:o.wordCount,severity:o.severity})})),St=/[^.!?]*[.!?]+/g,Et=/\b\w+\b/g;function Tt(t){const e=t.match(Et);return e?e.length:0}function ft(t,e,o){const s=[];let n=St.exec(t);for(;null!==n;){const r=n[0],a=Tt(r);a>=e&&s.push({from:n.index,to:n.index+r.length,wordCount:a,severity:a>=o?"error":"warning"}),n=St.exec(t)}return s}const yt=(t,e)=>i.__awaiter(void 0,void 0,void 0,(function*(){return{data:ft(e.text,25,40)}})),Ct={warningThreshold:25,errorThreshold:40},At=et("sentenceLength");const ht=(t,e)=>[l.Decoration.inline(e.from+1,e.to-1,{class:"random-processor-success",style:"background-color: rgba(76, 175, 80, 0.2); border-radius: 2px;"},{id:{},unitId:e.id,originalText:e.text,response:t,processingTime:t.processingTime})],Rt=t=>{let e,o;const s=Math.max(0,t.waitUntil-Date.now());switch(t.status){case exports.UnitStatus.QUEUED:e="⏳ Queued...",o="random-processor-widget queued";break;case exports.UnitStatus.PROCESSING:e="⚙️ Processing...",o="random-processor-widget processing";break;case exports.UnitStatus.BACKOFF:e=`🔄 Retry in ${Math.ceil(s/1e3)}s (attempt ${t.retryCount+1})`,o="random-processor-widget backoff";break;case exports.UnitStatus.ERROR:e=`❌ Failed after ${t.retryCount} retries`,o="random-processor-widget error";break;case exports.UnitStatus.DIRTY:e="⚠️ Changed",o="random-processor-widget dirty";break;case exports.UnitStatus.WAITING:e="⏸️ Waiting...",o="random-processor-widget waiting";break;default:return}let n,r;switch(t.status){case exports.UnitStatus.ERROR:n="#ffebee",r="#c62828";break;case exports.UnitStatus.DIRTY:n="#fff9c4",r="#f57f17";break;case exports.UnitStatus.BACKOFF:n="#fff3e0",r="#e65100";break;default:n="#e3f2fd",r="#1565c0"}const a=document.createElement("span");if(a.className=o,a.textContent=e,t.status===exports.UnitStatus.BACKOFF&&s>0){const e=setInterval((()=>{const o=Math.max(0,t.waitUntil-Date.now());a.textContent=`🔄 Retry in ${Math.ceil(o/1e3)}s (attempt ${t.retryCount+1})`,(o<=0||!a.isConnected)&&clearInterval(e)}),1e3)}return a.style.cssText=`\n display: inline-block;\n padding: 2px 8px;\n margin-right: 8px;\n font-size: 12px;\n border-radius: 4px;\n background: ${n};\n color: ${r};\n `,l.Decoration.widget(t.from+1,a,{side:-1})};function It(t,e){return Math.floor(Math.random()*(e-t+1))+t}function Ot(t){return new Promise((e=>setTimeout(e,t)))}const bt=(t,e)=>i.__awaiter(void 0,void 0,void 0,(function*(){const t=It(500,3e3);yield Ot(t);return Math.random()<.3?{error:new Error(`Random error after ${t}ms (attempt ${e.metadata.attempt})`)}:{data:{processingTime:t,success:!0,message:`Processed "${e.text.slice(0,20)}..." in ${t}ms`}}})),vt={minDelay:500,maxDelay:3e3,errorRate:.3},Pt=et("randomProcessor");const Dt=(t,e)=>t.fixed&&0!==t.suggestions.length?t.suggestions.map((o=>{const s=j(o.from,e.mapping),n=j(o.to,e.mapping),r=""===o.replacement,a={id:{},unitId:e.id,originalText:o.original,replacement:o.replacement,response:t};return l.Decoration.inline(s,n,{class:"grammarSuggestionV2 "+(r?"removalSuggestionV2":"")},a)})):[],wt=(t,e)=>{const o=e.contextState.selectedSuggestionId;return o?t.map((t=>{const e=t.spec;return e.id===o?l.Decoration.inline(t.from,t.to,{class:"grammarSuggestionV2 grammarSuggestionV2-selected"},e):t})):t},Mt=t=>{let e,o;const s=Math.max(0,t.waitUntil-Date.now());switch(t.status){case exports.UnitStatus.QUEUED:case exports.UnitStatus.WAITING:e="⏳",o="grammarWidgetV2 queued";break;case exports.UnitStatus.PROCESSING:e="🔍",o="grammarWidgetV2 processing";break;case exports.UnitStatus.BACKOFF:e=`🔄 ${Math.ceil(s/1e3)}s`,o="grammarWidgetV2 backoff";break;case exports.UnitStatus.ERROR:e="❌",o="grammarWidgetV2 error";break;case exports.UnitStatus.DIRTY:e="✏️",o="grammarWidgetV2 dirty";break;default:return}const n=document.createElement("span");if(n.className=o,n.textContent=e,t.status===exports.UnitStatus.BACKOFF&&s>0){const e=setInterval((()=>{const o=Math.max(0,t.waitUntil-Date.now());n.textContent=`🔄 ${Math.ceil(o/1e3)}s`,(o<=0||!n.isConnected)&&clearInterval(e)}),1e3)}return l.Decoration.widget(t.from+1,n,{side:-1})};const Ut=t=>{const{apiKey:e,apiEndpoint:o,model:s,modelStateManager:n}="string"==typeof t?{apiKey:t,apiEndpoint:void 0,model:void 0,modelStateManager:void 0}:t;return(t,r)=>i.__awaiter(void 0,void 0,void 0,(function*(){var t,a,i;try{const c=null!==(t=null==n?void 0:n.getCurrentModel())&&void 0!==t?t:s,u=yield A({apiKey:e,text:r.text,endpoint:o,model:c});if(u.error)return null==n||n.handleFailure(),{error:new Error("Grammar API error")};if(null==n||n.handleSuccess(),!u.fixed)return{data:{fixed:!1,originalText:r.text,fixedText:r.text,suggestions:[]}};const l=(a=r.text,i=u.result,p.getDiff(a,i).filter((t=>!p.isIdentity(t))).filter((t=>t.original!==`${t.replacement}\n`)).map((t=>({from:t.from,to:t.replacement.endsWith("\n")?t.to-1:t.to,original:t.original,replacement:t.replacement.endsWith("\n")?t.replacement.slice(0,-1):t.replacement}))));return{data:{fixed:l.length>0,originalText:r.text,fixedText:u.result,suggestions:l}}}catch(t){return null==n||n.handleFailure(),{error:t instanceof Error?t:new Error(String(t))}}}))};function Nt(t,e,o){const s=e.getState(t.state);if(s)return s.decorations.find((t=>t.spec.id===o))}function _t(t,e,o){const s=Nt(t,e,o);if(!s)return;const n=s.spec,{replacement:i}=n,{from:c,to:p}=s,u=i.split("\n").map((e=>e?t.state.schema.node("paragraph",null,t.state.schema.text(e)):t.state.schema.node("paragraph"))),l=r.Fragment.fromArray(u);let{tr:d}=t.state;d=d.setSelection(a.TextSelection.create(t.state.doc,c,p)),d.selection.replace(d,new r.Slice(l,1,1)),d=d.setMeta(e,{type:exports.ActionType.REMOVE_DECORATION,id:o}),t.dispatch(d)}function Lt(t,e,o){W(t,e,{type:exports.ActionType.REMOVE_DECORATION,id:o})}function jt(t,e,o){W(t,e,{type:exports.ActionType.UPDATE_CONTEXT,contextState:{selectedSuggestionId:o}})}function kt(t,e){W(t,e,{type:exports.ActionType.UPDATE_CONTEXT,contextState:{selectedSuggestionId:void 0}})}function Gt(t,e,o,s){var n,r,a;return i.__awaiter(this,void 0,void 0,(function*(){const i=null!==(n=null==s?void 0:s.endpoint)&&void 0!==n?n:T,c=null==s?void 0:s.modelStateManager,p=null!==(a=null!==(r=null==c?void 0:c.getCurrentModel())&&void 0!==r?r:null==s?void 0:s.model)&&void 0!==a?a:y;return new Promise(((s,n)=>{const r={previousPromptType:"Grammar",oldVersion:e,newVersion:o};C({apiKey:t,text:e,task:exports.AiPromptsWithParam.Hint,params:r,endpoint:i,model:p},{onChunk:()=>{},onComplete:t=>{null==c||c.handleSuccess(),s(t)},onError:t=>{null==c||c.handleFailure(),n(t)}})}))}))}const Kt={selectedSuggestionId:void 0},Ft=et("grammarSuggestV2"),Vt=(t,e,o,s,n,r)=>{const a=e.spec,c=document.createElement("div");c.className="grammarPopupV2";const p=document.createElement("div");p.className="grammarPopupV2-mainRow";const u=document.createElement("span");u.className="grammarPopupV2-original",u.textContent=`"${a.originalText}"`;const l=document.createElement("span");l.className="grammarPopupV2-arrow",l.textContent=" → ";const d=document.createElement("span");d.className="grammarPopupV2-replacement",d.textContent=""===a.replacement?"(remove)":`"${a.replacement}"`;const m=document.createElement("button");m.className="grammarPopupV2-hint",m.textContent="?",m.title="Why this suggestion?";const g=document.createElement("div");g.className="grammarPopupV2-hintArea",g.style.display="none";let x=!1;m.onclick=t=>i.__awaiter(void 0,void 0,void 0,(function*(){if(t.preventDefault(),t.stopPropagation(),"none"===g.style.display){if(g.style.display="block",!x){g.innerHTML='<span class="grammarPopupV2-loading">Loading...</span>';try{const t=yield r();g.innerHTML="";const e=document.createElement("span");e.className="grammarPopupV2-hintText",e.textContent=t,g.appendChild(e),x=!0}catch(t){g.innerHTML='<span class="grammarPopupV2-hintError">Could not load hint</span>'}}}else g.style.display="none"}));const S=document.createElement("button");S.className="grammarPopupV2-accept",S.textContent="✓",S.onclick=t=>{t.preventDefault(),t.stopPropagation(),s()};const E=document.createElement("button");return E.className="grammarPopupV2-discard",E.textContent="✕",E.onclick=t=>{t.preventDefault(),t.stopPropagation(),n()},p.appendChild(u),p.appendChild(l),p.appendChild(d),p.appendChild(m),p.appendChild(S),p.appendChild(E),c.appendChild(p),c.appendChild(g),c};var Bt,Wt;exports.AutoCompleteStatus=void 0,(Bt=exports.AutoCompleteStatus||(exports.AutoCompleteStatus={})).IDLE="idle",Bt.DEBOUNCING="debouncing",Bt.PENDING="pending",Bt.STREAMING="streaming",Bt.SHOWING="showing",exports.AutoCompleteActionType=void 0,(Wt=exports.AutoCompleteActionType||(exports.AutoCompleteActionType={})).SET_ENABLED="SET_ENABLED",Wt.START_DEBOUNCE="START_DEBOUNCE",Wt.START_REQUEST="START_REQUEST",Wt.STREAM_UPDATE="STREAM_UPDATE",Wt.STREAM_COMPLETE="STREAM_COMPLETE",Wt.STREAM_ERROR="STREAM_ERROR",Wt.DISMISS="DISMISS",Wt.ACCEPT="ACCEPT";const Ht={debounceMs:500,maxContextLength:2e3,ghostTextClass:"autoCompleteGhostText"},qt=new WeakMap;function $t(t){const e=qt.get(t);e&&(e.abort(),qt.delete(t))}function Qt(t,e){if(!e)return e;const{doc:o,selection:s}=t.state,n=s.from;if(n<=0)return e;const r=o.textBetween(n-1,n,""),a=e.charAt(0),i=/[\s\-]/;return!i.test(r)&&!i.test(a)?` ${e}`:e}const Yt=new a.PluginKey("autoCompletePlugin"),zt={status:exports.AutoCompleteStatus.IDLE,enabled:!0,suggestion:"",cursorPos:0};function Jt(t,e){switch(e.type){case exports.AutoCompleteActionType.SET_ENABLED:return Object.assign(Object.assign({},zt),{enabled:e.enabled});case exports.AutoCompleteActionType.START_DEBOUNCE:return Object.assign(Object.assign({},t),{status:exports.AutoCompleteStatus.DEBOUNCING,cursorPos:e.cursorPos,suggestion:"",error:void 0});case exports.AutoCompleteActionType.START_REQUEST:return t.status!==exports.AutoCompleteStatus.DEBOUNCING?t:Object.assign(Object.assign({},t),{status:exports.AutoCompleteStatus.PENDING});case exports.AutoCompleteActionType.STREAM_UPDATE:return t.status!==exports.AutoCompleteStatus.PENDING&&t.status!==exports.AutoCompleteStatus.STREAMING?t:Object.assign(Object.assign({},t),{status:exports.AutoCompleteStatus.STREAMING,suggestion:e.suggestion});case exports.AutoCompleteActionType.STREAM_COMPLETE:return t.status!==exports.AutoCompleteStatus.PENDING&&t.status!==exports.AutoCompleteStatus.STREAMING?t:Object.assign(Object.assign({},t),{status:exports.AutoCompleteStatus.SHOWING,suggestion:e.suggestion});case exports.AutoCompleteActionType.STREAM_ERROR:return Object.assign(Object.assign({},t),{status:exports.AutoCompleteStatus.IDLE,error:e.error,suggestion:""});case exports.AutoCompleteActionType.DISMISS:case exports.AutoCompleteActionType.ACCEPT:return Object.assign(Object.assign({},t),{status:exports.AutoCompleteStatus.IDLE,suggestion:""});default:return t}}const Xt=b;Object.defineProperty(exports,"getDiff",{enumerable:!0,get:function(){return p.getDiff}}),exports.DEFAULT_COMPLETION_ENDPOINT=T,exports.DEFAULT_GRAMMAR_ENDPOINT=f,exports.DEFAULT_MODEL=y,exports.OpenAiPromptsWithParam=m,exports.OpenAiPromptsWithoutParam=d,exports.acceptAutoCompletion=function(t){const e=Yt.getState(t.state);if(!e||!e.suggestion)return!1;const o=t.state.tr.insertText(e.suggestion,e.cursorPos);return t.dispatch(o),t.dispatch(t.state.tr.setMeta(Yt,{type:exports.AutoCompleteActionType.DISMISS})),t.focus(),!0},exports.acceptResult=function(t){t.dispatch(t.state.tr.setMeta(I,{type:exports.CompleteActionType.ACCEPT_RESULT}))},exports.acceptSuggestion=_t,exports.allUnitsFinished=function(t){return t.every((t=>t.status===exports.UnitStatus.DONE||t.status===exports.UnitStatus.ERROR))},exports.autoCompleteKey=Yt,exports.autoCompletePlugin=function(t,e={}){const o=Object.assign(Object.assign({},Ht),e),{debounceMs:s,maxContextLength:n,apiEndpoint:r,model:c,ghostTextClass:p}=o;let u=null,d=!1,m=null,g=null;return new a.Plugin({key:Yt,state:{init:()=>Object.assign({},zt),apply(t,e,o,s){const n=t.getMeta(Yt);if(n)return Jt(e,n);if(t.docChanged&&(e.status===exports.AutoCompleteStatus.SHOWING||e.status===exports.AutoCompleteStatus.STREAMING)){if(s.selection.from!==e.cursorPos)return Jt(e,{type:exports.AutoCompleteActionType.DISMISS})}return!t.selectionSet||t.docChanged||e.status!==exports.AutoCompleteStatus.SHOWING&&e.status!==exports.AutoCompleteStatus.STREAMING?e:Jt(e,{type:exports.AutoCompleteActionType.DISMISS})}},props:{decorations(t){const e=Yt.getState(t);if(!e||!e.enabled)return l.DecorationSet.empty;if((e.status===exports.AutoCompleteStatus.STREAMING||e.status===exports.AutoCompleteStatus.SHOWING)&&e.suggestion){const o=document.createElement("span");o.className=p,o.textContent=e.suggestion,o.setAttribute("contenteditable","false");const s=l.Decoration.widget(e.cursorPos,o,{side:1});return l.DecorationSet.create(t.doc,[s])}return l.DecorationSet.empty},handleKeyDown(t,e){const o=Yt.getState(t.state);return!(!o||!o.enabled)&&("Tab"===e.key&&!e.shiftKey&&o.status===exports.AutoCompleteStatus.SHOWING&&o.suggestion?(e.preventDefault(),m=o.suggestion,g=o.cursorPos,t.dispatch(t.state.tr.setMeta(Yt,{type:exports.AutoCompleteActionType.ACCEPT})),!0):"Escape"===e.key&&(o.status===exports.AutoCompleteStatus.STREAMING||o.status===exports.AutoCompleteStatus.SHOWING)&&(e.preventDefault(),$t(t),t.dispatch(t.state.tr.setMeta(Yt,{type:exports.AutoCompleteActionType.DISMISS})),!0))}},view:()=>({update(e,o){const a=Yt.getState(e.state),p=Yt.getState(o);if(a&&a.enabled){if(null!==m&&null!==g){const t=m,o=g;m=null,g=null;const s=e.state.tr.insertText(t,o);return e.dispatch(s),void e.focus()}if(e.state,e.state.doc!==o.doc&&(null==p?void 0:p.status)!==exports.AutoCompleteStatus.PENDING&&(null==p?void 0:p.status)!==exports.AutoCompleteStatus.STREAMING){e.state.tr,u&&(clearTimeout(u),u=null),$t(e);const t=e.state.selection.from;e.dispatch(e.state.tr.setMeta(Yt,{type:exports.AutoCompleteActionType.START_DEBOUNCE,cursorPos:t})),u=setTimeout((()=>{u=null;const t=Yt.getState(e.state);(null==t?void 0:t.status)===exports.AutoCompleteStatus.DEBOUNCING&&e.dispatch(e.state.tr.setMeta(Yt,{type:exports.AutoCompleteActionType.START_REQUEST}))}),s)}if(a.status===exports.AutoCompleteStatus.PENDING&&!d){if(!function(t){const{doc:e,selection:o}=t.state,s=o.from,n=e.resolve(s),r=n.parent,a=n.start();if(s!==a+r.content.size)return!1;const i=r.textBetween(0,s-a,"");return!!i.trim()&&!/[.!?]\s*$/.test(i)}(e))return void e.dispatch(e.state.tr.setMeta(Yt,{type:exports.AutoCompleteActionType.DISMISS}));const o=function(t,e){const{doc:o,selection:s}=t.state,n=s.from,r=o.textBetween(0,n,"\n");return r.length>e?r.slice(-e):r}(e,n);if(!o.trim())return void e.dispatch(e.state.tr.setMeta(Yt,{type:exports.AutoCompleteActionType.DISMISS}));d=!0,function({view:t,pluginKey:e,apiKey:o,context:s,apiEndpoint:n,model:r}){return i.__awaiter(this,void 0,void 0,(function*(){$t(t);const a=new AbortController;qt.set(t,a);try{yield C({apiKey:o,text:s,task:exports.AiPromptsWithoutParam.SmallComplete,endpoint:n,model:r,signal:a.signal},{onChunk:(o,s)=>{t.isDestroyed||t.dispatch(t.state.tr.setMeta(e,{type:exports.AutoCompleteActionType.STREAM_UPDATE,suggestion:Qt(t,s)}))},onComplete:o=>{t.isDestroyed||t.dispatch(t.state.tr.setMeta(e,{type:exports.AutoCompleteActionType.STREAM_COMPLETE,suggestion:Qt(t,o)}))},onError:o=>{console.error("Auto-complete streaming error:",o),t.isDestroyed||t.dispatch(t.state.tr.setMeta(e,{type:exports.AutoCompleteActionType.STREAM_ERROR,error:o.message}))}})}finally{qt.delete(t)}}))}({view:e,pluginKey:Yt,apiKey:t,context:o,apiEndpoint:r,model:c}).finally((()=>{d=!1}))}}else u&&(clearTimeout(u),u=null)},destroy(){u&&(clearTimeout(u),u=null)}})})},exports.blockRunnerPlugin=tt,exports.calculateBackoff=V,exports.canResume=function(t){var e;return t.status===exports.RunnerStatus.IDLE&&!!(null===(e=t.unitsInProgress)||void 0===e?void 0:e.some((t=>t.status!==exports.UnitStatus.DONE&&t.status!==exports.UnitStatus.ERROR)))},exports.cancelActiveRequest=R,exports.cancelAutoCompleteRequest=$t,exports.cancelTask=function(t){R(t),t.dispatch(t.state.tr.setMeta(I,{type:exports.CompleteActionType.CANCEL_TASK}))},exports.clearError=function(t){t.dispatch(t.state.tr.setMeta(I,{type:exports.CompleteActionType.CLEAR_ERROR}))},exports.completePlugin=Xt,exports.completePluginKey=P,exports.completePluginV2=b,exports.completeV2Key=I,exports.countSyllables=ct,exports.createApiConfig=function(t){var e,o;return{apiKey:t.apiKey,endpoint:null!==(e=t.endpoint)&&void 0!==e?e:T,model:null!==(o=t.model)&&void 0!==o?o:y}},exports.createBlockRunnerKey=et,exports.createGrammarApiConfig=function(t){var e,o;return{apiKey:t.apiKey,endpoint:null!==(e=t.endpoint)&&void 0!==e?e:f,model:null!==(o=t.model)&&void 0!==o?o:y}},exports.createGrammarProcessor=Ut,exports.createInitialState=Y,exports.createLinkDetectorPlugin=function(){const t=tt({pluginKey:rt,unitProcessor:nt,decorationFactory:ot,initialContextState:{}});return new a.Plugin({key:rt,state:t.spec.state,props:Object.assign(Object.assign({},t.spec.props),{handleDOMEvents:{click:(t,e)=>{const o=e.target;if(o.classList.contains("link-detected")){const s=t.posAtDOM(o,0),n=rt.getState(t.state);if(n){const t=n.decorations.find((t=>t.from<=s&&t.to>=s&&t.spec.url));if(null==t?void 0:t.spec.url)return window.open(t.spec.url,"_blank"),e.preventDefault(),!0}}return!1}}}),view:t.spec.view})},exports.createRandomProcessor=t=>(e,o)=>i.__awaiter(void 0,void 0,void 0,(function*(){var e,s,n;const r=t(),a=null!==(e=r.minDelay)&&void 0!==e?e:500,i=null!==(s=r.maxDelay)&&void 0!==s?s:3e3,c=null!==(n=r.errorRate)&&void 0!==n?n:.3,p=It(a,i);yield Ot(p);return Math.random()<c?{error:new Error(`Random error after ${p}ms (attempt ${o.metadata.attempt})`)}:{data:{processingTime:p,success:!0,message:`Processed "${o.text.slice(0,20)}..." in ${p}ms`}}})),exports.createRandomProcessorPlugin=function(t={}){return tt({pluginKey:Pt,unitProcessor:bt,decorationFactory:ht,widgetFactory:Rt,initialContextState:Object.assign(Object.assign({},vt),t),options:{batchSize:2,maxRetries:3,backoffBase:2e3}})},exports.createSentenceLengthPlugin=function(t={}){return tt({pluginKey:At,unitProcessor:yt,decorationFactory:xt,initialContextState:Object.assign(Object.assign({},Ct),t)})},exports.createSentenceLengthProcessor=t=>(e,o)=>i.__awaiter(void 0,void 0,void 0,(function*(){var e,s;const n=t(),r=null!==(e=n.warningThreshold)&&void 0!==e?e:25,a=null!==(s=n.errorThreshold)&&void 0!==s?s:40;return{data:ft(o.text,r,a)}})),exports.createUnitsFromDocument=$,exports.createWordComplexityPlugin=function(t={}){return tt({pluginKey:mt,unitProcessor:lt,decorationFactory:it,initialContextState:Object.assign(Object.assign({},dt),t)})},exports.createWordComplexityProcessor=t=>(e,o)=>i.__awaiter(void 0,void 0,void 0,(function*(){var e,s;const n=t(),r=null!==(e=n.moderateThreshold)&&void 0!==e?e:3,a=null!==(s=n.highThreshold)&&void 0!==s?s:4;return{data:ut(o.text,r,a)}})),exports.defaultAutoCompleteOptions=Ht,exports.defaultCompleteOptions={maxSelection:1e3},exports.defaultCompleteV2Options=E,exports.defaultOptions=v,exports.defaultRunnerOptions=N,exports.deselectSuggestion=kt,exports.discardSuggestion=Lt,exports.dismissAutoCompletion=function(t){$t(t),t.dispatch(t.state.tr.setMeta(Yt,{type:exports.AutoCompleteActionType.DISMISS}))},exports.dispatchAction=W,exports.executeParallel=X,exports.extractTextWithMapping=L,exports.getAutoCompleteState=function(t){return Yt.getState(t.state)},exports.getChangedRegions=(t,e)=>{if(t===e)return{start:t.length,end:t.length,oldStart:t.length,oldEnd:t.length,oldText:"",newText:""};const o=c(t,e),s=o[0],n=s[0]===c.EQUAL?s[1].length-1:0,r=((t,e)=>{if(e[e.length-1][0]!==c.EQUAL)return t.length;const o=e.slice(0,e.length-1);let s=0;for(const t of o){const[e,o]=t;e===c.EQUAL&&(s+=o.length),e===c.DELETE&&(s+=o.length)}return s})(t,o),a=t.lastIndexOf("\n",n),i=t.indexOf("\n",r),p=-1===a?0:a+1,u=-1===i?t.length:i,l=t.slice(p,u),d=e.slice(p,e.length-(t.length-u));return{start:p,end:p+d.length,oldStart:p,oldEnd:u,oldText:l,newText:d}},exports.getCompleteState=function(t){return I.getState(t.state)},exports.getProgress=function(t){var e;if(t.status!==exports.RunnerStatus.ACTIVE)return{completed:0,total:0,decorations:t.decorations.length};const o=null!==(e=t.unitsInProgress)&&void 0!==e?e:[];return{completed:o.filter((t=>t.status===exports.UnitStatus.DONE||t.status===exports.UnitStatus.ERROR)).length,total:o.length,decorations:t.decorations.length}},exports.getSelectedDecoration=function(t,e){const o=e.getState(t.state);if(null==o?void 0:o.contextState.selectedSuggestionId)return Nt(t,e,o.contextState.selectedSuggestionId)},exports.getUnitById=H,exports.getUnitsInRange=k,exports.grammarDecorationFactory=Dt,exports.grammarDecorationTransformer=wt,exports.grammarRequest=A,exports.grammarSuggestPluginKey=D,exports.grammarSuggestPluginV2=function(t,e={}){var o;const{apiEndpoint:s,model:n,fallback:r,batchSize:i=4,maxRetries:c=3,backoffBase:p=2e3,debounceMs:u=1e3,createPopup:d=Vt}=e,m=r?function(t){const{primaryModel:e,fallbackModel:o,failureThreshold:s}=t;let n=0;return{getCurrentModel:()=>o&&s>0&&n>=s?o:e,handleSuccess(){n=0},handleFailure(){o&&n++}}}({primaryModel:n,fallbackModel:r.fallbackModel,failureThreshold:null!==(o=r.failureThreshold)&&void 0!==o?o:3}):void 0,g=Ut({apiKey:t,apiEndpoint:s,model:n,modelStateManager:m}),x=tt({pluginKey:Ft,unitProcessor:g,decorationFactory:Dt,decorationTransformer:wt,widgetFactory:Mt,initialContextState:Kt,options:{batchSize:i,maxRetries:c,backoffBase:p,dirtyHandling:{debounceDelay:u}}});return new a.Plugin({key:Ft,state:x.spec.state,props:Object.assign(Object.assign({},x.spec.props),{decorations(e){var o;const r=null===(o=x.spec.props)||void 0===o?void 0:o.decorations,a=r?r.call(x,e):l.DecorationSet.empty;if("react"===d)return a;const i=Ft.getState(e);if(!(null==i?void 0:i.contextState.selectedSuggestionId))return a;const c=i.decorations.find((t=>t.spec.id===i.contextState.selectedSuggestionId));if(!c)return a;const p=c.spec,u=l.Decoration.widget(c.from,((e,o)=>{const r=o();return void 0===r?document.createElement("div"):d(e,c,r,(()=>_t(e,Ft,c.spec.id)),(()=>Lt(e,Ft,c.spec.id)),(()=>Gt(t,p.originalText,p.replacement,{endpoint:s,model:n,modelStateManager:m})))}),{id:c.spec.id,side:-1,stopEvent:()=>!0});return a.add(e.doc,[u])},handleClick(t,e,o){const s=Ft.getState(t.state);if(!s)return!1;const n=s.decorations.find((t=>t.from<=e&&e<=t.to));return n?(n.spec.id===s.contextState.selectedSuggestionId||jt(t,Ft,n.spec.id),!1):(s.contextState.selectedSuggestionId&&kt(t,Ft),!1)}}),view:x.spec.view})},exports.grammarSuggestV2Key=Ft,exports.grammarWidgetFactory=Mt,exports.handleAction=Q,exports.hasActiveRequest=function(t){return h.has(t)},exports.hasAutoCompleteRequest=function(t){return qt.has(t)},exports.hasAutoCompletion=function(t){const e=Yt.getState(t.state);return!!(null==e?void 0:e.suggestion)},exports.hasUnitsToProcess=Z,exports.isAutoCompleteEnabled=function(t){var e;const o=Yt.getState(t.state);return null!==(e=null==o?void 0:o.enabled)&&void 0!==e&&e},exports.linkDetectorDecorationFactory=ot,exports.linkDetectorKey=rt,exports.linkDetectorProcessor=nt,exports.mergeOptions=_,exports.pauseRunner=function(t,e){W(t,e,{type:exports.ActionType.FINISH})},exports.randomProcessor=bt,exports.randomProcessorDecorationFactory=ht,exports.randomProcessorKey=Pt,exports.randomProcessorWidgetFactory=Rt,exports.rejectResult=function(t){t.dispatch(t.state.tr.setMeta(I,{type:exports.CompleteActionType.REJECT_RESULT}))},exports.remapPositions=F,exports.requestHint=Gt,exports.resumeRunner=function(t,e){W(t,e,{type:exports.ActionType.RESUME})},exports.selectSuggestion=jt,exports.sentenceLengthDecorationFactory=xt,exports.sentenceLengthKey=At,exports.sentenceLengthProcessor=yt,exports.setAutoCompleteEnabled=function(t,e){e||$t(t),t.dispatch(t.state.tr.setMeta(Yt,{type:exports.AutoCompleteActionType.SET_ENABLED,enabled:e}))},exports.setCompleteEnabled=(t,e)=>{t.dispatch(t.state.tr.setMeta(P,{type:"setEnabled",enabled:e}))},exports.setEnabled=function(t,e){e||R(t),t.dispatch(t.state.tr.setMeta(I,{type:exports.CompleteActionType.SET_ENABLED,enabled:e}))},exports.setGrammarSuggestEnabled=(t,e)=>{t.dispatch(t.state.tr.setMeta(D,{type:exports.GrammarSuggestMetaType.setEnabled,enabled:e}))},exports.sleep=B,exports.startTask=function(t,e,o){const s=t.state.selection;t.dispatch(t.state.tr.setMeta(I,{type:exports.CompleteActionType.START_TASK,taskType:e,params:o,selection:s.empty?void 0:s}))},exports.streamingRequest=C,exports.textToDocPos=j,exports.updateUnit=q,exports.wordComplexityDecorationFactory=it,exports.wordComplexityKey=mt,exports.wordComplexityProcessor=lt;
1
+ "use strict";var t,e,o,s,r,n=require("prosemirror-model"),a=require("prosemirror-state"),i=require("fast-diff"),p=require("@emergence-engineering/fast-diff-merge"),l=require("prosemirror-view"),c=require("@emergence-engineering/prosemirror-block-runner");exports.GrammarSuggestMetaType=void 0,(t=exports.GrammarSuggestMetaType||(exports.GrammarSuggestMetaType={})).suggestionUpdate="suggestionUpdate",t.acceptSuggestion="acceptSuggestion",t.openSuggestion="openSuggestion",t.closeSuggestion="closeSuggestion",t.discardSuggestion="discardSuggestion",t.setEnabled="setEnabled",exports.GrammarSuggestElementClass=void 0,(exports.GrammarSuggestElementClass||(exports.GrammarSuggestElementClass={})).grammarSuggestPopup="grammar-suggest-popup",exports.MoodParamType=void 0,(e=exports.MoodParamType||(exports.MoodParamType={})).Casual="Casual",e.Confident="Confident",e.Straightforward="Straightforward",e.Friendly="Friendly",exports.TranslationTargetLanguage=void 0,(o=exports.TranslationTargetLanguage||(exports.TranslationTargetLanguage={})).English="English",o.Spanish="Spanish",o.French="French",o.German="German",o.Italian="Italian",o.Portuguese="Portuguese",o.Dutch="Dutch",o.Russian="Russian",o.Chinese="Chinese",o.Korean="Korean",o.Japanese="Japanese",exports.AiPromptsWithoutParam=void 0,(s=exports.AiPromptsWithoutParam||(exports.AiPromptsWithoutParam={})).Complete="Complete",s.SmallComplete="SmallComplete",s.Improve="Improve",s.MakeLonger="MakeLonger",s.MakeShorter="MakeShorter",s.Simplify="Simplify",s.Explain="Explain",s.ActionItems="ActionItems",exports.AiPromptsWithParam=void 0,(r=exports.AiPromptsWithParam||(exports.AiPromptsWithParam={})).ChangeTone="ChangeTone",r.Translate="Translate",r.Hint="Hint",r.Custom="Custom";const u=exports.AiPromptsWithoutParam,m=exports.AiPromptsWithParam;var d,g,S;exports.Status=void 0,(d=exports.Status||(exports.Status={})).idle="idle",d.new="new",d.streaming="streaming",d.finished="finished",d.accepted="accepted",d.cancelled="cancelled",d.rejected="rejected",d.done="done",d.error="error",exports.CompleteStatus=void 0,(g=exports.CompleteStatus||(exports.CompleteStatus={})).IDLE="idle",g.PENDING="pending",g.STREAMING="streaming",g.PREVIEW="preview",g.APPLYING="applying",exports.CompleteActionType=void 0,(S=exports.CompleteActionType||(exports.CompleteActionType={})).START_TASK="START_TASK",S.STREAM_UPDATE="STREAM_UPDATE",S.STREAM_COMPLETE="STREAM_COMPLETE",S.STREAM_ERROR="STREAM_ERROR",S.ACCEPT_RESULT="ACCEPT_RESULT",S.REJECT_RESULT="REJECT_RESULT",S.CANCEL_TASK="CANCEL_TASK",S.CLEAR_ERROR="CLEAR_ERROR",S.SET_ENABLED="SET_ENABLED";const x={maxSelection:1e3},E="https://suggestion-gw5lxik4dq-uc.a.run.app",T="https://prosemirror-ai-plugin.web.app/api/suggestion",A="openai:gpt-4o-mini";async function C(t,e){const{apiKey:o,text:s,task:r,params:n,endpoint:a=E,model:i=A,signal:p}=t;let l="";const c={model:i,modelParams:{input:[s],task:r,params:n}};try{const t=await fetch(a,{method:"POST",cache:"no-cache",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o}`},signal:p,body:JSON.stringify(c)});if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);const s=t.body?.getReader();if(!s)throw new Error("No response body");for(;;){const{done:t,value:o}=await s.read();if(t)break;if(p?.aborted)return;const r=(new TextDecoder).decode(o);l+=r,e.onChunk(r,l)}p?.aborted||e.onComplete(l)}catch(t){if(t instanceof Error&&"AbortError"===t.name)return;e.onError(t instanceof Error?t:new Error(String(t)))}}async function y(t){const{apiKey:e,text:o,endpoint:s=T,model:r=A}=t,n={model:r,modelParams:{input:[...o.split("\n")]}};try{const t=await fetch(s,{method:"POST",cache:"no-cache",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify(n)});if(!t.ok){const e=await t.text();return console.error({status:t.status,text:e}),{fixed:!1,result:o,error:!0}}const r=await t.json();return r?.length?{result:r.join("\n"),fixed:!0}:{fixed:!1,result:o}}catch(t){return console.error("Grammar request error:",t),{fixed:!1,result:o,error:!0}}}const f=new WeakMap;function h(t){const e=f.get(t);e&&(e.abort(),f.delete(t))}const R=new a.PluginKey("completePluginV2"),P={status:exports.CompleteStatus.IDLE,streamedResult:"",enabled:!0};function M(t,e={}){const{maxSelection:o,apiEndpoint:s,model:r}={...x,...e};let i=!1;return new a.Plugin({key:R,state:{init:()=>({...P}),apply(t,e){const o=t.getMeta(R);return o?function(t,e){switch(e.type){case exports.CompleteActionType.SET_ENABLED:return{...t,enabled:e.enabled,...e.enabled?{}:P};case exports.CompleteActionType.START_TASK:return t.status!==exports.CompleteStatus.IDLE?t:{...t,status:exports.CompleteStatus.PENDING,taskType:e.taskType,params:e.params,selection:e.selection,streamedResult:"",error:void 0};case exports.CompleteActionType.STREAM_UPDATE:return t.status!==exports.CompleteStatus.PENDING&&t.status!==exports.CompleteStatus.STREAMING?t:{...t,status:exports.CompleteStatus.STREAMING,streamedResult:e.result};case exports.CompleteActionType.STREAM_COMPLETE:return t.status!==exports.CompleteStatus.PENDING&&t.status!==exports.CompleteStatus.STREAMING?t:{...t,status:exports.CompleteStatus.PREVIEW,streamedResult:e.result};case exports.CompleteActionType.STREAM_ERROR:return{...t,status:exports.CompleteStatus.IDLE,error:e.error,streamedResult:"",taskType:void 0,params:void 0,selection:void 0};case exports.CompleteActionType.ACCEPT_RESULT:return t.status!==exports.CompleteStatus.PREVIEW?t:{...t,status:exports.CompleteStatus.APPLYING};case exports.CompleteActionType.REJECT_RESULT:return t.status!==exports.CompleteStatus.PREVIEW?t:{...P,enabled:t.enabled};case exports.CompleteActionType.CANCEL_TASK:return{...P,enabled:t.enabled};case exports.CompleteActionType.CLEAR_ERROR:return{...t,error:void 0};default:return t}}(e,o):e.status===exports.CompleteStatus.APPLYING?{...P,enabled:e.enabled}:e}},view:()=>({update(e){const p=R.getState(e.state);if(p&&p.enabled){if(p.status===exports.CompleteStatus.PENDING&&!i){const{text:n,error:a}=function(t,e,o){const{taskType:s,selection:r}=e;if(s===exports.AiPromptsWithoutParam.Complete){const{doc:e}=t.state,o=[];return e.descendants(t=>{"paragraph"===t.type.name&&o.push(t.textContent)}),{text:o.length>=2?o.slice(-2).join(" "):o.join(" ")}}return r?t.state.doc.textBetween(r.from,r.to).length>o?{text:"",error:"Selection is too big"}:{text:t.state.doc.textBetween(r.from,r.to,"\n")}:{text:"",error:"No selection"}}(e,p,o);if(a)return void e.dispatch(e.state.tr.setMeta(R,{type:exports.CompleteActionType.STREAM_ERROR,error:a}));if(!n)return void e.dispatch(e.state.tr.setMeta(R,{type:exports.CompleteActionType.STREAM_ERROR,error:"No text to process"}));i=!0,async function({view:t,pluginKey:e,apiKey:o,text:s,task:r,params:n,apiEndpoint:a,model:i}){h(t);const p=new AbortController;f.set(t,p);try{await C({apiKey:o,text:s,task:r,params:n,endpoint:a,model:i,signal:p.signal},{onChunk:(o,s)=>{t.isDestroyed||t.dispatch(t.state.tr.setMeta(e,{type:exports.CompleteActionType.STREAM_UPDATE,result:s}))},onComplete:o=>{t.isDestroyed||t.dispatch(t.state.tr.setMeta(e,{type:exports.CompleteActionType.STREAM_COMPLETE,result:o}))},onError:o=>{console.error("Streaming request error:",o),t.isDestroyed||t.dispatch(t.state.tr.setMeta(e,{type:exports.CompleteActionType.STREAM_ERROR,error:o.message}))}})}finally{f.delete(t)}}({view:e,pluginKey:R,apiKey:t,text:n,task:p.taskType,params:p.params,apiEndpoint:s,model:r}).finally(()=>{i=!1})}p.status===exports.CompleteStatus.APPLYING&&function(t,e){const{taskType:o,selection:s,streamedResult:r}=e;if(!r)return;let{tr:i}=t.state;if(o===exports.AiPromptsWithoutParam.Complete)i=i.insertText(r,t.state.doc.nodeSize-2);else if(s){const e=r.split("\n\n").map(e=>t.state.schema.node("paragraph",null,e?t.state.schema.text(e):void 0)),o=n.Fragment.fromArray(e);i=i.setSelection(a.TextSelection.create(t.state.doc,s.from,s.to)),i.selection.replace(i,new n.Slice(o,0,0))}t.dispatch(i),t.focus()}(e,p)}},destroy(){}})})}const D={debounceMs:2e3,createUpdatePopup:(t,e,o,s,r)=>{const n=document.createElement("div");n.className="grammar-suggest-tooltip";const{spec:a}=e,i=t.dom.getBoundingClientRect();n.id=exports.GrammarSuggestElementClass.grammarSuggestPopup;const p=t.coordsAtPos(o),l=t.dom.scrollTop||0,c=t.dom.scrollLeft||0;n.style.left=`${p.left-i.left+c}px`,n.style.top=`${p.bottom-i.top+l+5}px`;const u=document.createElement("div");u.className="grammar-suggest-tooltip-apply",u.innerText=a.text||a.originalText,a.text||(u.style.textDecoration="line-through",u.style.color="red"),u.onclick=()=>{s(t,e)},n.appendChild(u);const m=document.createElement("div");return m.innerHTML="<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'><path d='M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM12 10.5858L14.8284 7.75736L16.2426 9.17157L13.4142 12L16.2426 14.8284L14.8284 16.2426L12 13.4142L9.17157 16.2426L7.75736 14.8284L10.5858 12L7.75736 9.17157L9.17157 7.75736L12 10.5858Z'></path></svg>",m.className="grammar-suggest-tooltip-discard",m.onclick=()=>{r(t,e)},n.appendChild(m),n},withYjs:!1},I=new a.PluginKey("completePlugin"),N=new a.PluginKey("grammarSuggestPlugin"),L=(t,e)=>t.fixed&&0!==t.suggestions.length?t.suggestions.map(o=>{const s=e.from+1+c.textPosToDocPos(o.from,e.mapping),r=e.from+1+c.textPosToDocPos(o.to,e.mapping),n=""===o.replacement,a={id:{},unitId:e.id,originalText:o.original,replacement:o.replacement,response:t};return l.Decoration.inline(s,r,{class:"grammarSuggestionV2 "+(n?"removalSuggestionV2":"")},a)}):[],b=(t,e)=>{const o=e.contextState.selectedSuggestionId;return o?t.map(t=>{const e=t.spec;return e.id===o?l.Decoration.inline(t.from,t.to,{class:"grammarSuggestionV2 grammarSuggestionV2-selected"},e):t}):t},w=t=>{let e,o;const s=Math.max(0,t.waitUntil-Date.now());switch(t.status){case c.UnitStatus.QUEUED:case c.UnitStatus.WAITING:e="⏳",o="grammarWidgetV2 queued";break;case c.UnitStatus.PROCESSING:e="🔍",o="grammarWidgetV2 processing";break;case c.UnitStatus.BACKOFF:e=`🔄 ${Math.ceil(s/1e3)}s`,o="grammarWidgetV2 backoff";break;case c.UnitStatus.ERROR:e="❌",o="grammarWidgetV2 error";break;case c.UnitStatus.DIRTY:e="✏️",o="grammarWidgetV2 dirty";break;default:return}const r=document.createElement("span");if(r.className=o,r.textContent=e,t.status===c.UnitStatus.BACKOFF&&s>0){const e=setInterval(()=>{const o=Math.max(0,t.waitUntil-Date.now());r.textContent=`🔄 ${Math.ceil(o/1e3)}s`,(o<=0||!r.isConnected)&&clearInterval(e)},1e3)}return l.Decoration.widget(t.from+1,r,{side:-1})};const v=t=>{const{apiKey:e,apiEndpoint:o,model:s,modelStateManager:r}="string"==typeof t?{apiKey:t,apiEndpoint:void 0,model:void 0,modelStateManager:void 0}:t;return async(t,n)=>{try{const t=r?.getCurrentModel()??s,l=await y({apiKey:e,text:n.text,endpoint:o,model:t});if(l.error)return r?.handleFailure(),{error:new Error("Grammar API error")};if(r?.handleSuccess(),!l.fixed)return{data:{fixed:!1,originalText:n.text,fixedText:n.text,suggestions:[]}};const c=(a=n.text,i=l.result,p.getDiff(a,i).filter(t=>!p.isIdentity(t)).filter(t=>t.original!==`${t.replacement}\n`).map(t=>({from:t.from,to:t.replacement.endsWith("\n")?t.to-1:t.to,original:t.original,replacement:t.replacement.endsWith("\n")?t.replacement.slice(0,-1):t.replacement})));return{data:{fixed:c.length>0,originalText:n.text,fixedText:l.result,suggestions:c}}}catch(t){return r?.handleFailure(),{error:t instanceof Error?t:new Error(String(t))}}var a,i}};function _(t,e,o){const s=e.getState(t.state);if(s)return s.decorations.find(t=>t.spec.id===o)}function O(t,e,o){const s=_(t,e,o);if(!s)return;const r=s.spec,{replacement:i}=r,{from:p,to:l}=s,u=i.split("\n").map(e=>e?t.state.schema.node("paragraph",null,t.state.schema.text(e)):t.state.schema.node("paragraph")),m=n.Fragment.fromArray(u);let{tr:d}=t.state;d=d.setSelection(a.TextSelection.create(t.state.doc,p,l)),d.selection.replace(d,new n.Slice(m,1,1)),d=d.setMeta(e,{type:c.ActionType.REMOVE_DECORATION,id:o}),t.dispatch(d)}function G(t,e,o){c.dispatchAction(t,e,{type:c.ActionType.REMOVE_DECORATION,id:o})}function k(t,e,o){c.dispatchAction(t,e,{type:c.ActionType.UPDATE_CONTEXT,contextState:{selectedSuggestionId:o}})}function U(t,e){c.dispatchAction(t,e,{type:c.ActionType.UPDATE_CONTEXT,contextState:{selectedSuggestionId:void 0}})}async function K(t,e,o,s){const r=s?.endpoint??E,n=s?.modelStateManager,a=n?.getCurrentModel()??s?.model??A;return new Promise((s,i)=>{const p={previousPromptType:"Grammar",oldVersion:e,newVersion:o};C({apiKey:t,text:e,task:exports.AiPromptsWithParam.Hint,params:p,endpoint:r,model:a},{onChunk:()=>{},onComplete:t=>{n?.handleSuccess(),s(t)},onError:t=>{n?.handleFailure(),i(t)}})})}const W={selectedSuggestionId:void 0},V=c.createBlockRunnerKey("grammarSuggestV2"),B=(t,e,o,s,r,n)=>{const a=e.spec,i=document.createElement("div");i.className="grammarPopupV2";const p=document.createElement("div");p.className="grammarPopupV2-mainRow";const l=document.createElement("span");l.className="grammarPopupV2-original",l.textContent=`"${a.originalText}"`;const c=document.createElement("span");c.className="grammarPopupV2-arrow",c.textContent=" → ";const u=document.createElement("span");u.className="grammarPopupV2-replacement",u.textContent=""===a.replacement?"(remove)":`"${a.replacement}"`;const m=document.createElement("button");m.className="grammarPopupV2-hint",m.textContent="?",m.title="Why this suggestion?";const d=document.createElement("div");d.className="grammarPopupV2-hintArea",d.style.display="none";let g=!1;m.onclick=async t=>{if(t.preventDefault(),t.stopPropagation(),"none"===d.style.display){if(d.style.display="block",!g){d.innerHTML='<span class="grammarPopupV2-loading">Loading...</span>';try{const t=await n();d.innerHTML="";const e=document.createElement("span");e.className="grammarPopupV2-hintText",e.textContent=t,d.appendChild(e),g=!0}catch{d.innerHTML='<span class="grammarPopupV2-hintError">Could not load hint</span>'}}}else d.style.display="none"};const S=document.createElement("button");S.className="grammarPopupV2-accept",S.textContent="✓",S.onclick=t=>{t.preventDefault(),t.stopPropagation(),s()};const x=document.createElement("button");return x.className="grammarPopupV2-discard",x.textContent="✕",x.onclick=t=>{t.preventDefault(),t.stopPropagation(),r()},p.appendChild(l),p.appendChild(c),p.appendChild(u),p.appendChild(m),p.appendChild(S),p.appendChild(x),i.appendChild(p),i.appendChild(d),i};var F,q;exports.AutoCompleteStatus=void 0,(F=exports.AutoCompleteStatus||(exports.AutoCompleteStatus={})).IDLE="idle",F.DEBOUNCING="debouncing",F.PENDING="pending",F.STREAMING="streaming",F.SHOWING="showing",exports.AutoCompleteActionType=void 0,(q=exports.AutoCompleteActionType||(exports.AutoCompleteActionType={})).SET_ENABLED="SET_ENABLED",q.START_DEBOUNCE="START_DEBOUNCE",q.START_REQUEST="START_REQUEST",q.STREAM_UPDATE="STREAM_UPDATE",q.STREAM_COMPLETE="STREAM_COMPLETE",q.STREAM_ERROR="STREAM_ERROR",q.DISMISS="DISMISS",q.ACCEPT="ACCEPT";const H={debounceMs:500,maxContextLength:2e3,ghostTextClass:"autoCompleteGhostText"},$=new WeakMap;function j(t){const e=$.get(t);e&&(e.abort(),$.delete(t))}function J(t,e){if(!e)return e;const{doc:o,selection:s}=t.state,r=s.from;if(r<=0)return e;const n=o.textBetween(r-1,r,""),a=e.charAt(0),i=/[\s\-]/;return!i.test(n)&&!i.test(a)?` ${e}`:e}const Q=new a.PluginKey("autoCompletePlugin"),z={status:exports.AutoCompleteStatus.IDLE,enabled:!0,suggestion:"",cursorPos:0};function Y(t,e){switch(e.type){case exports.AutoCompleteActionType.SET_ENABLED:return{...z,enabled:e.enabled};case exports.AutoCompleteActionType.START_DEBOUNCE:return{...t,status:exports.AutoCompleteStatus.DEBOUNCING,cursorPos:e.cursorPos,suggestion:"",error:void 0};case exports.AutoCompleteActionType.START_REQUEST:return t.status!==exports.AutoCompleteStatus.DEBOUNCING?t:{...t,status:exports.AutoCompleteStatus.PENDING};case exports.AutoCompleteActionType.STREAM_UPDATE:return t.status!==exports.AutoCompleteStatus.PENDING&&t.status!==exports.AutoCompleteStatus.STREAMING?t:{...t,status:exports.AutoCompleteStatus.STREAMING,suggestion:e.suggestion};case exports.AutoCompleteActionType.STREAM_COMPLETE:return t.status!==exports.AutoCompleteStatus.PENDING&&t.status!==exports.AutoCompleteStatus.STREAMING?t:{...t,status:exports.AutoCompleteStatus.SHOWING,suggestion:e.suggestion};case exports.AutoCompleteActionType.STREAM_ERROR:return{...t,status:exports.AutoCompleteStatus.IDLE,error:e.error,suggestion:""};case exports.AutoCompleteActionType.DISMISS:case exports.AutoCompleteActionType.ACCEPT:return{...t,status:exports.AutoCompleteStatus.IDLE,suggestion:""};default:return t}}const Z=M;Object.defineProperty(exports,"getDiff",{enumerable:!0,get:function(){return p.getDiff}}),exports.DEFAULT_COMPLETION_ENDPOINT=E,exports.DEFAULT_GRAMMAR_ENDPOINT=T,exports.DEFAULT_MODEL=A,exports.OpenAiPromptsWithParam=m,exports.OpenAiPromptsWithoutParam=u,exports.acceptAutoCompletion=function(t){const e=Q.getState(t.state);if(!e||!e.suggestion)return!1;const o=t.state.tr.insertText(e.suggestion,e.cursorPos);return t.dispatch(o),t.dispatch(t.state.tr.setMeta(Q,{type:exports.AutoCompleteActionType.DISMISS})),t.focus(),!0},exports.acceptResult=function(t){t.dispatch(t.state.tr.setMeta(R,{type:exports.CompleteActionType.ACCEPT_RESULT}))},exports.acceptSuggestion=O,exports.autoCompleteKey=Q,exports.autoCompletePlugin=function(t,e={}){const o={...H,...e},{debounceMs:s,maxContextLength:r,apiEndpoint:n,model:i,ghostTextClass:p}=o;let c=null,u=!1,m=null,d=null;return new a.Plugin({key:Q,state:{init:()=>({...z}),apply(t,e,o,s){const r=t.getMeta(Q);if(r)return Y(e,r);if(t.docChanged&&(e.status===exports.AutoCompleteStatus.SHOWING||e.status===exports.AutoCompleteStatus.STREAMING)){if(s.selection.from!==e.cursorPos)return Y(e,{type:exports.AutoCompleteActionType.DISMISS})}return!t.selectionSet||t.docChanged||e.status!==exports.AutoCompleteStatus.SHOWING&&e.status!==exports.AutoCompleteStatus.STREAMING?e:Y(e,{type:exports.AutoCompleteActionType.DISMISS})}},props:{decorations(t){const e=Q.getState(t);if(!e||!e.enabled)return l.DecorationSet.empty;if((e.status===exports.AutoCompleteStatus.STREAMING||e.status===exports.AutoCompleteStatus.SHOWING)&&e.suggestion){const o=document.createElement("span");o.className=p,o.textContent=e.suggestion,o.setAttribute("contenteditable","false");const s=l.Decoration.widget(e.cursorPos,o,{side:1});return l.DecorationSet.create(t.doc,[s])}return l.DecorationSet.empty},handleKeyDown(t,e){const o=Q.getState(t.state);return!(!o||!o.enabled)&&("Tab"===e.key&&!e.shiftKey&&o.status===exports.AutoCompleteStatus.SHOWING&&o.suggestion?(e.preventDefault(),m=o.suggestion,d=o.cursorPos,t.dispatch(t.state.tr.setMeta(Q,{type:exports.AutoCompleteActionType.ACCEPT})),!0):"Escape"===e.key&&(o.status===exports.AutoCompleteStatus.STREAMING||o.status===exports.AutoCompleteStatus.SHOWING)&&(e.preventDefault(),j(t),t.dispatch(t.state.tr.setMeta(Q,{type:exports.AutoCompleteActionType.DISMISS})),!0))}},view:()=>({update(e,o){const a=Q.getState(e.state),p=Q.getState(o);if(a&&a.enabled){if(null!==m&&null!==d){const t=m,o=d;m=null,d=null;const s=e.state.tr.insertText(t,o);return e.dispatch(s),void e.focus()}if(e.state,e.state.doc!==o.doc&&p?.status!==exports.AutoCompleteStatus.PENDING&&p?.status!==exports.AutoCompleteStatus.STREAMING){e.state.tr,c&&(clearTimeout(c),c=null),j(e);const t=e.state.selection.from;e.dispatch(e.state.tr.setMeta(Q,{type:exports.AutoCompleteActionType.START_DEBOUNCE,cursorPos:t})),c=setTimeout(()=>{c=null;const t=Q.getState(e.state);t?.status===exports.AutoCompleteStatus.DEBOUNCING&&e.dispatch(e.state.tr.setMeta(Q,{type:exports.AutoCompleteActionType.START_REQUEST}))},s)}if(a.status===exports.AutoCompleteStatus.PENDING&&!u){if(!function(t){const{doc:e,selection:o}=t.state,s=o.from,r=e.resolve(s),n=r.parent,a=r.start();if(s!==a+n.content.size)return!1;const i=n.textBetween(0,s-a,"");return!!i.trim()&&!/[.!?]\s*$/.test(i)}(e))return void e.dispatch(e.state.tr.setMeta(Q,{type:exports.AutoCompleteActionType.DISMISS}));const o=function(t,e){const{doc:o,selection:s}=t.state,r=s.from,n=o.textBetween(0,r,"\n");return n.length>e?n.slice(-e):n}(e,r);if(!o.trim())return void e.dispatch(e.state.tr.setMeta(Q,{type:exports.AutoCompleteActionType.DISMISS}));u=!0,async function({view:t,pluginKey:e,apiKey:o,context:s,apiEndpoint:r,model:n}){j(t);const a=new AbortController;$.set(t,a);try{await C({apiKey:o,text:s,task:exports.AiPromptsWithoutParam.SmallComplete,endpoint:r,model:n,signal:a.signal},{onChunk:(o,s)=>{t.isDestroyed||t.dispatch(t.state.tr.setMeta(e,{type:exports.AutoCompleteActionType.STREAM_UPDATE,suggestion:J(t,s)}))},onComplete:o=>{t.isDestroyed||t.dispatch(t.state.tr.setMeta(e,{type:exports.AutoCompleteActionType.STREAM_COMPLETE,suggestion:J(t,o)}))},onError:o=>{console.error("Auto-complete streaming error:",o),t.isDestroyed||t.dispatch(t.state.tr.setMeta(e,{type:exports.AutoCompleteActionType.STREAM_ERROR,error:o.message}))}})}finally{$.delete(t)}}({view:e,pluginKey:Q,apiKey:t,context:o,apiEndpoint:n,model:i}).finally(()=>{u=!1})}}else c&&(clearTimeout(c),c=null)},destroy(){c&&(clearTimeout(c),c=null)}})})},exports.cancelActiveRequest=h,exports.cancelAutoCompleteRequest=j,exports.cancelTask=function(t){h(t),t.dispatch(t.state.tr.setMeta(R,{type:exports.CompleteActionType.CANCEL_TASK}))},exports.clearError=function(t){t.dispatch(t.state.tr.setMeta(R,{type:exports.CompleteActionType.CLEAR_ERROR}))},exports.completePlugin=Z,exports.completePluginKey=I,exports.completePluginV2=M,exports.completeV2Key=R,exports.createApiConfig=function(t){return{apiKey:t.apiKey,endpoint:t.endpoint??E,model:t.model??A}},exports.createGrammarApiConfig=function(t){return{apiKey:t.apiKey,endpoint:t.endpoint??T,model:t.model??A}},exports.createGrammarProcessor=v,exports.defaultAutoCompleteOptions=H,exports.defaultCompleteOptions={maxSelection:1e3},exports.defaultCompleteV2Options=x,exports.defaultOptions=D,exports.deselectSuggestion=U,exports.discardSuggestion=G,exports.dismissAutoCompletion=function(t){j(t),t.dispatch(t.state.tr.setMeta(Q,{type:exports.AutoCompleteActionType.DISMISS}))},exports.getAutoCompleteState=function(t){return Q.getState(t.state)},exports.getChangedRegions=(t,e)=>{if(t===e)return{start:t.length,end:t.length,oldStart:t.length,oldEnd:t.length,oldText:"",newText:""};const o=i(t,e),s=o[0],r=s[0]===i.EQUAL?s[1].length-1:0,n=((t,e)=>{if(e[e.length-1][0]!==i.EQUAL)return t.length;const o=e.slice(0,e.length-1);let s=0;for(const t of o){const[e,o]=t;e===i.EQUAL&&(s+=o.length),e===i.DELETE&&(s+=o.length)}return s})(t,o),a=t.lastIndexOf("\n",r),p=t.indexOf("\n",n),l=-1===a?0:a+1,c=-1===p?t.length:p,u=t.slice(l,c),m=e.slice(l,e.length-(t.length-c));return{start:l,end:l+m.length,oldStart:l,oldEnd:c,oldText:u,newText:m}},exports.getCompleteState=function(t){return R.getState(t.state)},exports.getSelectedDecoration=function(t,e){const o=e.getState(t.state);if(o?.contextState.selectedSuggestionId)return _(t,e,o.contextState.selectedSuggestionId)},exports.grammarDecorationFactory=L,exports.grammarDecorationTransformer=b,exports.grammarRequest=y,exports.grammarSuggestPluginKey=N,exports.grammarSuggestPluginV2=function(t,e={}){const{apiEndpoint:o,model:s,fallback:r,batchSize:n=4,maxRetries:i=3,backoffBase:p=2e3,debounceMs:u=1e3,createPopup:m=B}=e,d=r?function(t){const{primaryModel:e,fallbackModel:o,failureThreshold:s}=t;let r=0;return{getCurrentModel:()=>o&&s>0&&r>=s?o:e,handleSuccess(){r=0},handleFailure(){o&&r++}}}({primaryModel:s,fallbackModel:r.fallbackModel,failureThreshold:r.failureThreshold??3}):void 0,g=v({apiKey:t,apiEndpoint:o,model:s,modelStateManager:d}),S=c.blockRunnerPlugin({pluginKey:V,unitProcessor:g,decorationFactory:L,decorationTransformer:b,widgetFactory:w,initialContextState:W,options:{batchSize:n,maxRetries:i,backoffBase:p,dirtyHandling:{debounceDelay:u}}});return new a.Plugin({key:V,state:S.spec.state,props:{...S.spec.props,decorations(e){const r=S.spec.props?.decorations,n=r?r.call(S,e):l.DecorationSet.empty;if("react"===m)return n;const a=V.getState(e);if(!a?.contextState.selectedSuggestionId)return n;const i=a.decorations.find(t=>t.spec.id===a.contextState.selectedSuggestionId);if(!i)return n;const p=i.spec,c=l.Decoration.widget(i.from,(e,r)=>{const n=r();return void 0===n?document.createElement("div"):m(e,i,n,()=>O(e,V,i.spec.id),()=>G(e,V,i.spec.id),()=>K(t,p.originalText,p.replacement,{endpoint:o,model:s,modelStateManager:d}))},{id:i.spec.id,side:-1,stopEvent:()=>!0});return n.add(e.doc,[c])},handleClick(t,e,o){const s=V.getState(t.state);if(!s)return!1;const r=s.decorations.find(t=>t.from<=e&&e<=t.to);return r?(r.spec.id===s.contextState.selectedSuggestionId||k(t,V,r.spec.id),!1):(s.contextState.selectedSuggestionId&&U(t,V),!1)}},view:S.spec.view})},exports.grammarSuggestV2Key=V,exports.grammarWidgetFactory=w,exports.hasActiveRequest=function(t){return f.has(t)},exports.hasAutoCompleteRequest=function(t){return $.has(t)},exports.hasAutoCompletion=function(t){const e=Q.getState(t.state);return!!e?.suggestion},exports.isAutoCompleteEnabled=function(t){const e=Q.getState(t.state);return e?.enabled??!1},exports.rejectResult=function(t){t.dispatch(t.state.tr.setMeta(R,{type:exports.CompleteActionType.REJECT_RESULT}))},exports.requestHint=K,exports.selectSuggestion=k,exports.setAutoCompleteEnabled=function(t,e){e||j(t),t.dispatch(t.state.tr.setMeta(Q,{type:exports.AutoCompleteActionType.SET_ENABLED,enabled:e}))},exports.setCompleteEnabled=(t,e)=>{t.dispatch(t.state.tr.setMeta(I,{type:"setEnabled",enabled:e}))},exports.setEnabled=function(t,e){e||h(t),t.dispatch(t.state.tr.setMeta(R,{type:exports.CompleteActionType.SET_ENABLED,enabled:e}))},exports.setGrammarSuggestEnabled=(t,e)=>{t.dispatch(t.state.tr.setMeta(N,{type:exports.GrammarSuggestMetaType.setEnabled,enabled:e}))},exports.startTask=function(t,e,o){const s=t.state.selection;t.dispatch(t.state.tr.setMeta(R,{type:exports.CompleteActionType.START_TASK,taskType:e,params:o,selection:s.empty?void 0:s}))},exports.streamingRequest=C;
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@playwright/test").PlaywrightTestConfig<{}, {}>;
2
+ export default _default;
3
+ //# sourceMappingURL=playwright.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright.config.d.ts","sourceRoot":"","sources":["../playwright.config.ts"],"names":[],"mappings":";AAEA,wBA2CG"}
@@ -5,3 +5,4 @@ export declare const DEFAULT_MODEL = "openai:gpt-4o-mini";
5
5
  export type AIModel = "openai:gpt-4o" | "openai:gpt-4o-mini" | "cerebras:llama-3.1-8b" | "cerebras:llama-3.3-70b" | "cerebras:qwen-3-32b";
6
6
  export declare function createApiConfig(config: ApiConfig): Required<ApiConfig>;
7
7
  export declare function createGrammarApiConfig(config: ApiConfig): Required<ApiConfig>;
8
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/api/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC,eAAO,MAAM,2BAA2B,+CACM,CAAC;AAG/C,eAAO,MAAM,wBAAwB,yDACmB,CAAC;AAGzD,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAClD,MAAM,MAAM,OAAO,GACf,eAAe,GACf,oBAAoB,GACpB,uBAAuB,GACvB,wBAAwB,GACxB,qBAAqB,CAAC;AAG1B,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAMtE;AAGD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAM7E"}
@@ -2,3 +2,4 @@ export { DEFAULT_COMPLETION_ENDPOINT, DEFAULT_GRAMMAR_ENDPOINT, DEFAULT_MODEL, c
2
2
  export type { ApiConfig, ApiRequestBody, StreamingCallbacks, GrammarApiResponse, } from "./types";
3
3
  export { streamingRequest, type StreamingRequestOptions } from "./streaming";
4
4
  export { grammarRequest, type GrammarRequestOptions, type GrammarRequestResult, } from "./request";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,aAAa,EACb,eAAe,EACf,sBAAsB,GACvB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAG7E,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,WAAW,CAAC"}
@@ -14,3 +14,4 @@ export interface GrammarRequestResult {
14
14
  * Returns the corrected text.
15
15
  */
16
16
  export declare function grammarRequest(options: GrammarRequestOptions): Promise<GrammarRequestResult>;
17
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/api/request.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CA2D/B"}
@@ -14,3 +14,4 @@ export interface StreamingRequestOptions {
14
14
  * Returns a promise that resolves when the stream completes.
15
15
  */
16
16
  export declare function streamingRequest(options: StreamingRequestOptions, callbacks: StreamingCallbacks): Promise<void>;
17
+ //# sourceMappingURL=streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../../src/api/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAkB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,EAChC,SAAS,EAAE,kBAAkB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAyEf"}
@@ -28,3 +28,4 @@ export interface GrammarApiResponse {
28
28
  type: string;
29
29
  }[];
30
30
  }
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/api/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAGD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,MAAM,CAAC,EAAE,UAAU,CAAC;KACrB,CAAC;CACH;AAGD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAGD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;CACL"}
@@ -31,3 +31,4 @@ export declare function isAutoCompleteEnabled(view: EditorView): boolean;
31
31
  * Check if a completion is currently being shown
32
32
  */
33
33
  export declare function hasAutoCompletion(view: EditorView): boolean;
34
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/autoComplete/actions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAA0B,MAAM,SAAS,CAAC;AAGpE;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,OAAO,GACf,IAAI,CAYN;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAsB9D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAQ5D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,UAAU,GACf,iBAAiB,GAAG,SAAS,CAE/B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAG/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAG3D"}
@@ -33,3 +33,4 @@ export { AutoCompleteStatus, AutoCompleteActionType, type AutoCompleteState, typ
33
33
  export { autoCompletePlugin, autoCompleteKey } from "./plugin";
34
34
  export { setAutoCompleteEnabled, acceptAutoCompletion, dismissAutoCompletion, getAutoCompleteState, isAutoCompleteEnabled, hasAutoCompletion, } from "./actions";
35
35
  export { cancelActiveRequest as cancelAutoCompleteRequest, hasActiveRequest as hasAutoCompleteRequest, } from "./streaming";
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/autoComplete/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG/D,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,mBAAmB,IAAI,yBAAyB,EAChD,gBAAgB,IAAI,sBAAsB,GAC3C,MAAM,aAAa,CAAC"}
@@ -12,3 +12,4 @@ export declare const autoCompleteKey: PluginKey<AutoCompleteState>;
12
12
  * Create the auto-complete plugin
13
13
  */
14
14
  export declare function autoCompletePlugin(apiKey: string, options?: Partial<AutoCompleteOptions>): Plugin<AutoCompleteState>;
15
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/autoComplete/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EACL,iBAAiB,EAIjB,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AASjB,eAAO,MAAM,eAAe,8BAE3B,CAAC;AAgJF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM,GACzC,MAAM,CAAC,iBAAiB,CAAC,CAsQ3B"}
@@ -46,3 +46,4 @@ export declare function extractContext(view: EditorView, maxLength: number): str
46
46
  */
47
47
  export declare function shouldTriggerAutoComplete(view: EditorView): boolean;
48
48
  export {};
49
+ //# sourceMappingURL=streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../../src/autoComplete/streaming.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAA0B,MAAM,SAAS,CAAC;AAKpE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAM1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAE1D;AAED,UAAU,2BAA2B;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,GACjB,MAAM,CAsBR;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,IAAI,EACJ,SAAS,EACT,MAAM,EACN,OAAO,EACP,WAAW,EACX,KAAK,GACN,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD7C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAa1E;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CA+BnE"}
@@ -5,10 +5,10 @@
5
5
  * action types, and configuration options for the auto-complete plugin.
6
6
  */
7
7
  export declare enum AutoCompleteStatus {
8
- IDLE = "idle",
9
- DEBOUNCING = "debouncing",
10
- PENDING = "pending",
11
- STREAMING = "streaming",
8
+ IDLE = "idle",// Waiting for user input
9
+ DEBOUNCING = "debouncing",// Timer running after user typed
10
+ PENDING = "pending",// API request started
11
+ STREAMING = "streaming",// Receiving chunks
12
12
  SHOWING = "showing"
13
13
  }
14
14
  export interface AutoCompleteState {
@@ -66,3 +66,4 @@ export interface AutoCompleteOptions {
66
66
  ghostTextClass?: string;
67
67
  }
68
68
  export declare const defaultAutoCompleteOptions: AutoCompleteOptions;
69
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/autoComplete/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,oBAAY,kBAAkB;IAC5B,IAAI,SAAS,CAAE,yBAAyB;IACxC,UAAU,eAAe,CAAE,iCAAiC;IAC5D,OAAO,YAAY,CAAE,sBAAsB;IAC3C,SAAS,cAAc,CAAE,mBAAmB;IAC5C,OAAO,YAAY;CACpB;AAGD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,oBAAY,sBAAsB;IAChC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,YAAY,iBAAiB;IAC7B,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAGD,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,sBAAsB,CAAC,WAAW,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,sBAAsB,CAAC,cAAc,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,sBAAsB,CAAC,aAAa,CAAC;CAC5C;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,sBAAsB,CAAC,aAAa,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,sBAAsB,CAAC,eAAe,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,sBAAsB,CAAC,YAAY,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,sBAAsB,CAAC,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC;CACrC;AAGD,MAAM,MAAM,kBAAkB,GAC1B,4BAA4B,GAC5B,+BAA+B,GAC/B,8BAA8B,GAC9B,8BAA8B,GAC9B,gCAAgC,GAChC,6BAA6B,GAC7B,yBAAyB,GACzB,wBAAwB,CAAC;AAG7B,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,eAAO,MAAM,0BAA0B,EAAE,mBAIxC,CAAC"}
@@ -28,3 +28,4 @@ export declare function clearError(view: EditorView): void;
28
28
  * Get the current plugin state
29
29
  */
30
30
  export declare function getCompleteState(view: EditorView): CompleteV2State | undefined;
31
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/completeV2/actions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAEL,eAAe,EACf,QAAQ,EACR,UAAU,EACV,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,EAClB,MAAM,CAAC,EAAE,UAAU,GAAG,iBAAiB,GACtC,IAAI,CAWN;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAMnD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAMnD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CASjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAYnE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAMjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,GACf,eAAe,GAAG,SAAS,CAE7B"}
@@ -2,3 +2,4 @@ export { CompleteStatus, CompleteActionType, type CompleteV2State, type Complete
2
2
  export { completePluginV2, completeV2Key } from "./plugin";
3
3
  export { startTask, acceptResult, rejectResult, cancelTask, setEnabled, clearError, getCompleteState, } from "./actions";
4
4
  export { cancelActiveRequest, hasActiveRequest } from "./streaming";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/completeV2/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,wBAAwB,EAExB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,QAAQ,GACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG3D,OAAO,EACL,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
@@ -5,3 +5,4 @@ export declare const completeV2Key: PluginKey<CompleteV2State>;
5
5
  * Create the complete V2 plugin
6
6
  */
7
7
  export declare function completePluginV2(apiKey: string, options?: Partial<CompleteV2Options>): Plugin<CompleteV2State>;
8
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/completeV2/plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAiB,MAAM,mBAAmB,CAAC;AAErE,OAAO,EACL,eAAe,EAIf,iBAAiB,EAGlB,MAAM,SAAS,CAAC;AAIjB,eAAO,MAAM,aAAa,4BAAqD,CAAC;AAqMhF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAO,CAAC,iBAAiB,CAAM,GACvC,MAAM,CAAC,eAAe,CAAC,CAmGzB"}
@@ -24,3 +24,4 @@ interface StreamingRequestParams {
24
24
  */
25
25
  export declare function streamingRequest({ view, pluginKey, apiKey, text, task, params, apiEndpoint, model, }: StreamingRequestParams): Promise<void>;
26
26
  export {};
27
+ //# sourceMappingURL=streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../../src/completeV2/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAOrE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAM1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAE1D;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,IAAI,EACJ,SAAS,EACT,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,WAAW,EACX,KAAK,GACN,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDxC"}
@@ -69,3 +69,4 @@ export interface CompleteV2Options {
69
69
  model?: string;
70
70
  }
71
71
  export declare const defaultCompleteV2Options: CompleteV2Options;
72
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/completeV2/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGrD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,QAAQ,GACd,MAAM,UAAU,CAAC;AAGlB,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAGD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAGD,oBAAY,kBAAkB;IAC5B,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;CAC5B;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,kBAAkB,CAAC,UAAU,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC,eAAe,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,kBAAkB,CAAC,YAAY,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,kBAAkB,CAAC,WAAW,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,kBAAkB,CAAC,WAAW,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,kBAAkB,CAAC,WAAW,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;CAClB;AAGD,MAAM,MAAM,cAAc,GACtB,eAAe,GACf,kBAAkB,GAClB,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,CAAC;AAGrB,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,eAAO,MAAM,wBAAwB,EAAE,iBAEtC,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { Decoration, EditorView } from "prosemirror-view";
2
2
  export declare const createUpdatePopup: (view: EditorView, decoration: Decoration, pos: number, applySuggestion: (view: EditorView, decoration: Decoration) => void, discardSuggestion: (view: EditorView, decoration: Decoration) => void) => HTMLDivElement;
3
+ //# sourceMappingURL=createUpdatePopup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createUpdatePopup.d.ts","sourceRoot":"","sources":["../../src/createUpdatePopup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI1D,eAAO,MAAM,iBAAiB,GAC5B,MAAM,UAAU,EAChB,YAAY,UAAU,EACtB,KAAK,MAAM,EACX,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,KAAK,IAAI,EACnE,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,KAAK,IAAI,mBAsCtE,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import { DefaultCompleteOptions, GrammarSuggestPluginOptions } from "./types";
2
2
  export declare const defaultOptions: GrammarSuggestPluginOptions;
3
3
  export declare const defaultCompleteOptions: DefaultCompleteOptions;
4
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAG9E,eAAO,MAAM,cAAc,EAAE,2BAI5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,sBAEpC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { PluginKey } from "prosemirror-state";
2
2
  import { Decoration, EditorView } from "prosemirror-view";
3
- import { RunnerState } from "../blockRunner";
3
+ import { RunnerState } from "@emergence-engineering/prosemirror-block-runner";
4
4
  import { GrammarContextState, GrammarFixResult, GrammarUnitMetadata } from "./types";
5
5
  import { ModelStateManager } from "./modelState";
6
6
  type GrammarState = RunnerState<GrammarFixResult, GrammarContextState, GrammarUnitMetadata>;
@@ -15,3 +15,4 @@ export declare function requestHint(apiKey: string, originalText: string, replac
15
15
  modelStateManager?: ModelStateManager;
16
16
  }): Promise<string>;
17
17
  export {};
18
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/grammarSuggestV2/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAGL,WAAW,EACZ,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,mBAAmB,EAEnB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,KAAK,YAAY,GAAG,WAAW,CAC7B,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,CACpB,CAAC;AAeF,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,EAClC,YAAY,EAAE,MAAM,GACnB,IAAI,CAoCN;AAGD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,EAClC,YAAY,EAAE,MAAM,GACnB,IAAI,CAKN;AAGD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,EAClC,YAAY,EAAE,MAAM,GACnB,IAAI,CAMN;AAGD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,GACjC,IAAI,CAKN;AAGD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,GACjC,UAAU,GAAG,SAAS,CASxB;AAGD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,GACA,OAAO,CAAC,MAAM,CAAC,CAsCjB"}
@@ -1,5 +1,6 @@
1
- import { DecorationFactory, DecorationTransformer, WidgetFactory } from "../blockRunner/types";
1
+ import { DecorationFactory, DecorationTransformer, WidgetFactory } from "@emergence-engineering/prosemirror-block-runner";
2
2
  import { GrammarContextState, GrammarFixResult, GrammarUnitMetadata } from "./types";
3
3
  export declare const grammarDecorationFactory: DecorationFactory<GrammarFixResult, GrammarUnitMetadata>;
4
4
  export declare const grammarDecorationTransformer: DecorationTransformer<GrammarFixResult, GrammarContextState, GrammarUnitMetadata>;
5
5
  export declare const grammarWidgetFactory: WidgetFactory<GrammarUnitMetadata>;
6
+ //# sourceMappingURL=decorations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorations.d.ts","sourceRoot":"","sources":["../../../src/grammarSuggestV2/decorations.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EAKrB,aAAa,EAEd,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,mBAAmB,EAEnB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CACtD,gBAAgB,EAChB,mBAAmB,CAgCpB,CAAC;AAGF,eAAO,MAAM,4BAA4B,EAAE,qBAAqB,CAC9D,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,CA2BpB,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,mBAAmB,CAkDnE,CAAC"}
@@ -3,3 +3,4 @@ export { grammarSuggestPluginV2, grammarSuggestV2Key } from "./plugin";
3
3
  export { acceptSuggestion, discardSuggestion, selectSuggestion, deselectSuggestion, getSelectedDecoration, requestHint, } from "./actions";
4
4
  export { grammarDecorationFactory, grammarDecorationTransformer, grammarWidgetFactory, } from "./decorations";
5
5
  export { createGrammarProcessor, type GrammarProcessorOptions, } from "./processor";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/grammarSuggestV2/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGvE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,GACZ,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,sBAAsB,EACtB,KAAK,uBAAuB,GAC7B,MAAM,aAAa,CAAC"}
@@ -9,3 +9,4 @@ export interface ModelStateConfig {
9
9
  failureThreshold: number;
10
10
  }
11
11
  export declare function createModelStateManager(config: ModelStateConfig): ModelStateManager;
12
+ //# sourceMappingURL=modelState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelState.d.ts","sourceRoot":"","sources":["../../../src/grammarSuggestV2/modelState.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,eAAe,IAAI,MAAM,GAAG,SAAS,CAAC;IACtC,aAAa,IAAI,IAAI,CAAC;IACtB,aAAa,IAAI,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,GACvB,iBAAiB,CA4BnB"}
@@ -1,7 +1,8 @@
1
1
  import { Plugin, PluginKey } from "prosemirror-state";
2
- import { RunnerState } from "../blockRunner";
2
+ import { RunnerState } from "@emergence-engineering/prosemirror-block-runner";
3
3
  import { GrammarContextState, GrammarFixResult, GrammarSuggestV2Options, GrammarUnitMetadata } from "./types";
4
4
  type GrammarState = RunnerState<GrammarFixResult, GrammarContextState, GrammarUnitMetadata>;
5
5
  export declare const grammarSuggestV2Key: PluginKey<RunnerState<GrammarFixResult, GrammarContextState, GrammarUnitMetadata>>;
6
6
  export declare function grammarSuggestPluginV2(apiKey: string, options?: Partial<GrammarSuggestV2Options>): Plugin<GrammarState>;
7
7
  export {};
8
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/grammarSuggestV2/plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAGL,WAAW,EACZ,MAAM,iDAAiD,CAAC;AAOzD,OAAO,EACL,mBAAmB,EAEnB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAUjB,KAAK,YAAY,GAAG,WAAW,CAC7B,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,CACpB,CAAC;AAQF,eAAO,MAAM,mBAAmB,oFAIX,CAAC;AA4GtB,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAC7C,MAAM,CAAC,YAAY,CAAC,CA8JtB"}
@@ -1,5 +1,5 @@
1
1
  import { EditorView } from "prosemirror-view";
2
- import { ProcessingUnit, UnitProcessorResult } from "../blockRunner/types";
2
+ import { ProcessingUnit, UnitProcessorResult } from "@emergence-engineering/prosemirror-block-runner";
3
3
  import { GrammarFixResult, GrammarUnitMetadata } from "./types";
4
4
  import { ModelStateManager } from "./modelState";
5
5
  export interface GrammarProcessorOptions {
@@ -9,3 +9,4 @@ export interface GrammarProcessorOptions {
9
9
  modelStateManager?: ModelStateManager;
10
10
  }
11
11
  export declare const createGrammarProcessor: (options: GrammarProcessorOptions | string) => (_view: EditorView, unit: ProcessingUnit<GrammarUnitMetadata>) => Promise<UnitProcessorResult<GrammarFixResult>>;
12
+ //# sourceMappingURL=processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../src/grammarSuggestV2/processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,cAAc,EACd,mBAAmB,EACpB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EACL,gBAAgB,EAEhB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAoBjD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAGD,eAAO,MAAM,sBAAsB,GACjC,SAAS,uBAAuB,GAAG,MAAM,MAcvC,OAAO,UAAU,EACjB,MAAM,cAAc,CAAC,mBAAmB,CAAC,KACxC,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAqDjD,CAAC"}
@@ -40,3 +40,4 @@ export interface GrammarDecorationSpec {
40
40
  replacement: string;
41
41
  response: GrammarFixResult;
42
42
  }
43
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/grammarSuggestV2/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC;AAGD,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAGD,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EACR,OAAO,GACP,CAAC,CACC,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,MAAM,IAAI,EAC3B,iBAAiB,EAAE,MAAM,IAAI,EAC7B,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,KAC/B,WAAW,CAAC,CAAC;CACvB;AAGD,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B"}
@@ -4,9 +4,9 @@ export { completePluginKey, grammarSuggestPluginKey, getChangedRegions, setGramm
4
4
  export * from "./types";
5
5
  export { getDiff } from "@emergence-engineering/fast-diff-merge";
6
6
  export * from "./api";
7
- export * from "./blockRunner";
8
7
  export * from "./grammarSuggestV2";
9
8
  export * from "./completeV2";
10
9
  export * from "./autoComplete";
11
10
  /** @deprecated Use completePluginV2 instead */
12
11
  export declare const completePlugin: typeof completePluginV2;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAEjB,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAGjE,cAAc,OAAO,CAAC;AAGtB,cAAc,oBAAoB,CAAC;AAGnC,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAC/B,+CAA+C;AAC/C,eAAO,MAAM,cAAc,yBAAmB,CAAC"}
@@ -165,3 +165,4 @@ export interface TaskMeta {
165
165
  export interface DefaultCompleteOptions {
166
166
  maxSelection: number;
167
167
  }
168
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,aAAa,CAAC;IAC3B,eAAe,EAAE,aAAa,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,2BAA2B,GAAG;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,CACjB,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,KAAK,IAAI,EACnE,iBAAiB,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,KAAK,IAAI,KAClE,WAAW,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,sBAAsB;IAChC,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,UAAU,eAAe;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,sBAAsB,CAAC,gBAAgB,CAAC;IAC9C,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;CACL,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,sBAAsB,CAAC,gBAAgB,CAAC;IAC9C,GAAG,EAAE,oBAAoB,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC,cAAc,CAAC;IAC5C,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,sBAAsB,CAAC,iBAAiB,CAAC;IAC/C,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,sBAAsB,CAAC,eAAe,CAAC;CAC9C;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,sBAAsB,CAAC,UAAU,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GACzB,oBAAoB,GACpB,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,GACnB,qBAAqB,GACrB,cAAc,CAAC;AAEnB,MAAM,MAAM,4BAA4B,GAAG;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,oBAAY,0BAA0B;IACpC,mBAAmB,0BAA0B;CAC9C;AAED,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,eAAe,oBAAoB;IACnC,QAAQ,aAAa;CACtB;AAED,oBAAY,yBAAyB;IACnC,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,cAAc,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAC9E,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,oBAAY,qBAAqB;IAC/B,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAC/B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,WAAW,gBAAgB;CAC5B;AAGD,oBAAY,kBAAkB;IAC5B,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAGD,oDAAoD;AACpD,eAAO,MAAM,yBAAyB,8BAAwB,CAAC;AAC/D,iDAAiD;AACjD,eAAO,MAAM,sBAAsB,2BAAqB,CAAC;AAEzD,MAAM,MAAM,QAAQ,GAAG,qBAAqB,GAAG,kBAAkB,CAAC;AAGlE,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,iBAAiB,GACjB,UAAU,GACV,YAAY,CAAC;AAEjB,oBAAY,MAAM;IAChB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;CAC3E;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;CACtB"}
@@ -10,3 +10,4 @@ export declare const setCompleteEnabled: (view: EditorView, enabled: boolean) =>
10
10
  export declare const getTextWithNewlines: (doc: Node) => string;
11
11
  export declare const getLastChangePos: (oldText: string, changes: [number, string][]) => number;
12
12
  export declare const getChangedRegions: (oldText: string, newText: string) => ChangedRegion;
13
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EACL,aAAa,EACb,mBAAmB,EAEnB,yBAAyB,EAGzB,QAAQ,EACT,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,iBAAiB,gCAE7B,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,GAAG,KAAG,IAAI,IAAI,QAKlD,CAAC;AAEF,eAAO,MAAM,uBAAuB,sCAEnC,CAAC;AAGF,eAAO,MAAM,wBAAwB,GACnC,MAAM,UAAU,EAChB,SAAS,OAAO,SAQjB,CAAC;AAGF,eAAO,MAAM,kBAAkB,GAAI,MAAM,UAAU,EAAE,SAAS,OAAO,SAOpE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,KAAK,IAAI,WAkB5C,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,SAAS,MAAM,EACf,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAgB5B,CAAC;AAMF,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,SAAS,MAAM,KACd,aAyCF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../src/utils.test.ts"],"names":[],"mappings":""}