@asgard-js/core 0.2.62 → 0.2.63

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 (50) hide show
  1. package/README.md +95 -20
  2. package/dist/constants/enum.d.ts +7 -0
  3. package/dist/constants/enum.d.ts.map +1 -1
  4. package/dist/index.cjs +4 -4
  5. package/dist/index.cjs.map +1 -1
  6. package/dist/index.d.ts +6 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +4 -4
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.mjs +1555 -1145
  11. package/dist/index.mjs.map +1 -1
  12. package/dist/lib/channel.d.ts +39 -1
  13. package/dist/lib/channel.d.ts.map +1 -1
  14. package/dist/lib/channel.spec.d.ts +2 -0
  15. package/dist/lib/channel.spec.d.ts.map +1 -0
  16. package/dist/lib/client.d.ts +16 -1
  17. package/dist/lib/client.d.ts.map +1 -1
  18. package/dist/lib/client.spec.d.ts +2 -0
  19. package/dist/lib/client.spec.d.ts.map +1 -0
  20. package/dist/lib/conversation.d.ts +18 -0
  21. package/dist/lib/conversation.d.ts.map +1 -1
  22. package/dist/lib/conversation.spec.d.ts +2 -0
  23. package/dist/lib/conversation.spec.d.ts.map +1 -0
  24. package/dist/lib/create-sse-observable.d.ts +4 -1
  25. package/dist/lib/create-sse-observable.d.ts.map +1 -1
  26. package/dist/lib/derived-stores.d.ts +39 -0
  27. package/dist/lib/derived-stores.d.ts.map +1 -0
  28. package/dist/lib/derived-stores.spec.d.ts +2 -0
  29. package/dist/lib/derived-stores.spec.d.ts.map +1 -0
  30. package/dist/lib/subagent-reducer.d.ts +46 -0
  31. package/dist/lib/subagent-reducer.d.ts.map +1 -0
  32. package/dist/lib/subagent-reducer.spec.d.ts +2 -0
  33. package/dist/lib/subagent-reducer.spec.d.ts.map +1 -0
  34. package/dist/lib/task-reducer.d.ts +23 -0
  35. package/dist/lib/task-reducer.d.ts.map +1 -0
  36. package/dist/lib/task-reducer.spec.d.ts +2 -0
  37. package/dist/lib/task-reducer.spec.d.ts.map +1 -0
  38. package/dist/types/channel.d.ts +73 -1
  39. package/dist/types/channel.d.ts.map +1 -1
  40. package/dist/types/client.d.ts +9 -0
  41. package/dist/types/client.d.ts.map +1 -1
  42. package/dist/types/index.d.ts +2 -0
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/dist/types/sse-response.d.ts +66 -0
  45. package/dist/types/sse-response.d.ts.map +1 -1
  46. package/dist/types/subagent.d.ts +37 -0
  47. package/dist/types/subagent.d.ts.map +1 -0
  48. package/dist/types/task.d.ts +21 -0
  49. package/dist/types/task.d.ts.map +1 -0
  50. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -5,4 +5,10 @@ export * from './constants/enum';
5
5
  export { default as AsgardServiceClient } from './lib/client';
6
6
  export { default as Channel } from './lib/channel';
7
7
  export { default as Conversation } from './lib/conversation';
8
+ export { isTaskTool, reduceTaskEvents } from './lib/task-reducer';
9
+ export type { TaskToolEvent } from './lib/task-reducer';
10
+ export { isAgentTool, isSubagentChildTool, reduceSubagents } from './lib/subagent-reducer';
11
+ export type { SubagentEvent } from './lib/subagent-reducer';
12
+ export { conversationToSubagentEvents, createDerivedStores, deriveSubagents, deriveTasks, subagentsEqual, tasksEqual, } from './lib/derived-stores';
13
+ export type { DerivedStores } from './lib/derived-stores';
8
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEzC,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE5D,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEzC,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE5D,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC3F,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,cAAc,EACd,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- (function(S,L){typeof exports=="object"&&typeof module<"u"?L(exports):typeof define=="function"&&define.amd?define(["exports"],L):(S=typeof globalThis<"u"?globalThis:S||self,L(S["@asgard-js/core"]={}))})(this,(function(S){"use strict";class L extends Error{status;statusText;body;constructor(e,t,r){super(`HTTP ${e}: ${t}`),this.name="HttpError",this.status=e,this.statusText=t,this.body=r}}function He(n){return n instanceof L}var N=(n=>(n.RESET_CHANNEL="RESET_CHANNEL",n.NONE="NONE",n.RESPONSE_TOOL_CALL_CONSENT="RESPONSE_TOOL_CALL_CONSENT",n))(N||{}),d=(n=>(n.INIT="asgard.run.init",n.PROCESS="asgard.process",n.PROCESS_START="asgard.process.start",n.PROCESS_COMPLETE="asgard.process.complete",n.MESSAGE="asgard.message",n.MESSAGE_START="asgard.message.start",n.MESSAGE_DELTA="asgard.message.delta",n.MESSAGE_COMPLETE="asgard.message.complete",n.TOOL_CALL="asgard.tool_call",n.TOOL_CALL_START="asgard.tool_call.start",n.TOOL_CALL_COMPLETE="asgard.tool_call.complete",n.TOOL_CALL_CONSENT="asgard.tool_call.consent",n.DONE="asgard.run.done",n.ERROR="asgard.run.error",n))(d||{}),oe=(n=>(n.ALLOW_ONCE="ALLOW_ONCE",n.ALLOW_ALWAYS="ALLOW_ALWAYS",n.DENY_ONCE="DENY_ONCE",n))(oe||{}),ie=(n=>(n.TEXT="TEXT",n.HINT="HINT",n.BUTTON="BUTTON",n.IMAGE="IMAGE",n.VIDEO="VIDEO",n.AUDIO="AUDIO",n.LOCATION="LOCATION",n.CAROUSEL="CAROUSEL",n.CHART="CHART",n.TABLE="TABLE",n.ATTACHMENT="ATTACHMENT",n))(ie||{}),Y=function(n,e){return Y=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(t[o]=r[o])},Y(n,e)};function O(n,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Y(n,e);function t(){this.constructor=n}n.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function Fe(n,e,t,r){function o(i){return i instanceof t?i:new t(function(s){s(i)})}return new(t||(t=Promise))(function(i,s){function a(f){try{u(r.next(f))}catch(p){s(p)}}function c(f){try{u(r.throw(f))}catch(p){s(p)}}function u(f){f.done?i(f.value):o(f.value).then(a,c)}u((r=r.apply(n,e||[])).next())})}function se(n,e){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},r,o,i,s=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return s.next=a(0),s.throw=a(1),s.return=a(2),typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function a(u){return function(f){return c([u,f])}}function c(u){if(r)throw new TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(t=0)),t;)try{if(r=1,o&&(i=u[0]&2?o.return:u[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,u[1])).done)return i;switch(o=0,i&&(u=[u[0]&2,i.value]),u[0]){case 0:case 1:i=u;break;case 4:return t.label++,{value:u[1],done:!1};case 5:t.label++,o=u[1],u=[0];continue;case 7:u=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(u[0]===6||u[0]===2)){t=0;continue}if(u[0]===3&&(!i||u[1]>i[0]&&u[1]<i[3])){t.label=u[1];break}if(u[0]===6&&t.label<i[1]){t.label=i[1],i=u;break}if(i&&t.label<i[2]){t.label=i[2],t.ops.push(u);break}i[2]&&t.ops.pop(),t.trys.pop();continue}u=e.call(n,t)}catch(f){u=[6,f],o=0}finally{r=i=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function M(n){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&n[e],r=0;if(t)return t.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&r>=n.length&&(n=void 0),{value:n&&n[r++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function U(n,e){var t=typeof Symbol=="function"&&n[Symbol.iterator];if(!t)return n;var r=t.call(n),o,i=[],s;try{for(;(e===void 0||e-- >0)&&!(o=r.next()).done;)i.push(o.value)}catch(a){s={error:a}}finally{try{o&&!o.done&&(t=r.return)&&t.call(r)}finally{if(s)throw s.error}}return i}function $(n,e,t){if(t||arguments.length===2)for(var r=0,o=e.length,i;r<o;r++)(i||!(r in e))&&(i||(i=Array.prototype.slice.call(e,0,r)),i[r]=e[r]);return n.concat(i||Array.prototype.slice.call(e))}function R(n){return this instanceof R?(this.v=n,this):new R(n)}function Ge(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=t.apply(n,e||[]),o,i=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(l){return function(y){return Promise.resolve(y).then(l,p)}}function a(l,y){r[l]&&(o[l]=function(v){return new Promise(function(E,C){i.push([l,v,E,C])>1||c(l,v)})},y&&(o[l]=y(o[l])))}function c(l,y){try{u(r[l](y))}catch(v){h(i[0][3],v)}}function u(l){l.value instanceof R?Promise.resolve(l.value.v).then(f,p):h(i[0][2],l)}function f(l){c("next",l)}function p(l){c("throw",l)}function h(l,y){l(y),i.shift(),i.length&&c(i[0][0],i[0][1])}}function Ke(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof M=="function"?M(n):n[Symbol.iterator](),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(i){t[i]=n[i]&&function(s){return new Promise(function(a,c){s=n[i](s),o(a,c,s.done,s.value)})}}function o(i,s,a,c){Promise.resolve(c).then(function(u){i({value:u,done:a})},s)}}typeof SuppressedError=="function"&&SuppressedError;function m(n){return typeof n=="function"}function ae(n){var e=function(r){Error.call(r),r.stack=new Error().stack},t=n(e);return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var q=ae(function(n){return function(t){n(this),this.message=t?t.length+` errors occurred during unsubscription:
2
- `+t.map(function(r,o){return o+1+") "+r.toString()}).join(`
3
- `):"",this.name="UnsubscriptionError",this.errors=t}});function j(n,e){if(n){var t=n.indexOf(e);0<=t&&n.splice(t,1)}}var k=(function(){function n(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return n.prototype.unsubscribe=function(){var e,t,r,o,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=M(s),c=a.next();!c.done;c=a.next()){var u=c.value;u.remove(this)}}catch(v){e={error:v}}finally{try{c&&!c.done&&(t=a.return)&&t.call(a)}finally{if(e)throw e.error}}else s.remove(this);var f=this.initialTeardown;if(m(f))try{f()}catch(v){i=v instanceof q?v.errors:[v]}var p=this._finalizers;if(p){this._finalizers=null;try{for(var h=M(p),l=h.next();!l.done;l=h.next()){var y=l.value;try{le(y)}catch(v){i=i??[],v instanceof q?i=$($([],U(i)),U(v.errors)):i.push(v)}}}catch(v){r={error:v}}finally{try{l&&!l.done&&(o=h.return)&&o.call(h)}finally{if(r)throw r.error}}}if(i)throw new q(i)}},n.prototype.add=function(e){var t;if(e&&e!==this)if(this.closed)le(e);else{if(e instanceof n){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(t=this._finalizers)!==null&&t!==void 0?t:[]).push(e)}},n.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},n.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},n.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&j(t,e)},n.prototype.remove=function(e){var t=this._finalizers;t&&j(t,e),e instanceof n&&e._removeParent(this)},n.EMPTY=(function(){var e=new n;return e.closed=!0,e})(),n})(),ce=k.EMPTY;function ue(n){return n instanceof k||n&&"closed"in n&&m(n.remove)&&m(n.add)&&m(n.unsubscribe)}function le(n){m(n)?n():n.unsubscribe()}var Ve={Promise:void 0},Be={setTimeout:function(n,e){for(var t=[],r=2;r<arguments.length;r++)t[r-2]=arguments[r];return setTimeout.apply(void 0,$([n,e],U(t)))},clearTimeout:function(n){return clearTimeout(n)},delegate:void 0};function fe(n){Be.setTimeout(function(){throw n})}function W(){}function D(n){n()}var X=(function(n){O(e,n);function e(t){var r=n.call(this)||this;return r.isStopped=!1,t?(r.destination=t,ue(t)&&t.add(r)):r.destination=We,r}return e.create=function(t,r,o){return new z(t,r,o)},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,n.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e})(k),Ye=(function(){function n(e){this.partialObserver=e}return n.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(r){H(r)}},n.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(r){H(r)}else H(e)},n.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(t){H(t)}},n})(),z=(function(n){O(e,n);function e(t,r,o){var i=n.call(this)||this,s;return m(t)||!t?s={next:t??void 0,error:r??void 0,complete:o??void 0}:s=t,i.destination=new Ye(s),i}return e})(X);function H(n){fe(n)}function qe(n){throw n}var We={closed:!0,next:W,error:qe,complete:W},J=(function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"})();function F(n){return n}function Xe(n){return n.length===0?F:n.length===1?n[0]:function(t){return n.reduce(function(r,o){return o(r)},t)}}var g=(function(){function n(e){e&&(this._subscribe=e)}return n.prototype.lift=function(e){var t=new n;return t.source=this,t.operator=e,t},n.prototype.subscribe=function(e,t,r){var o=this,i=Je(e)?e:new z(e,t,r);return D(function(){var s=o,a=s.operator,c=s.source;i.add(a?a.call(i,c):c?o._subscribe(i):o._trySubscribe(i))}),i},n.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},n.prototype.forEach=function(e,t){var r=this;return t=de(t),new t(function(o,i){var s=new z({next:function(a){try{e(a)}catch(c){i(c),s.unsubscribe()}},error:i,complete:o});r.subscribe(s)})},n.prototype._subscribe=function(e){var t;return(t=this.source)===null||t===void 0?void 0:t.subscribe(e)},n.prototype[J]=function(){return this},n.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Xe(e)(this)},n.prototype.toPromise=function(e){var t=this;return e=de(e),new e(function(r,o){var i;t.subscribe(function(s){return i=s},function(s){return o(s)},function(){return r(i)})})},n.create=function(e){return new n(e)},n})();function de(n){var e;return(e=n??Ve.Promise)!==null&&e!==void 0?e:Promise}function ze(n){return n&&m(n.next)&&m(n.error)&&m(n.complete)}function Je(n){return n&&n instanceof X||ze(n)&&ue(n)}function Qe(n){return m(n?.lift)}function x(n){return function(e){if(Qe(e))return e.lift(function(t){try{return n(t,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function I(n,e,t,r,o){return new Ze(n,e,t,r,o)}var Ze=(function(n){O(e,n);function e(t,r,o,i,s,a){var c=n.call(this,t)||this;return c.onFinalize=s,c.shouldUnsubscribe=a,c._next=r?function(u){try{r(u)}catch(f){t.error(f)}}:n.prototype._next,c._error=i?function(u){try{i(u)}catch(f){t.error(f)}finally{this.unsubscribe()}}:n.prototype._error,c._complete=o?function(){try{o()}catch(u){t.error(u)}finally{this.unsubscribe()}}:n.prototype._complete,c}return e.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;n.prototype.unsubscribe.call(this),!r&&((t=this.onFinalize)===null||t===void 0||t.call(this))}},e})(X),et=ae(function(n){return function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),Q=(function(n){O(e,n);function e(){var t=n.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return e.prototype.lift=function(t){var r=new he(this,this);return r.operator=t,r},e.prototype._throwIfClosed=function(){if(this.closed)throw new et},e.prototype.next=function(t){var r=this;D(function(){var o,i;if(r._throwIfClosed(),!r.isStopped){r.currentObservers||(r.currentObservers=Array.from(r.observers));try{for(var s=M(r.currentObservers),a=s.next();!a.done;a=s.next()){var c=a.value;c.next(t)}}catch(u){o={error:u}}finally{try{a&&!a.done&&(i=s.return)&&i.call(s)}finally{if(o)throw o.error}}}})},e.prototype.error=function(t){var r=this;D(function(){if(r._throwIfClosed(),!r.isStopped){r.hasError=r.isStopped=!0,r.thrownError=t;for(var o=r.observers;o.length;)o.shift().error(t)}})},e.prototype.complete=function(){var t=this;D(function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var r=t.observers;r.length;)r.shift().complete()}})},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(e.prototype,"observed",{get:function(){var t;return((t=this.observers)===null||t===void 0?void 0:t.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(t){return this._throwIfClosed(),n.prototype._trySubscribe.call(this,t)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var r=this,o=this,i=o.hasError,s=o.isStopped,a=o.observers;return i||s?ce:(this.currentObservers=null,a.push(t),new k(function(){r.currentObservers=null,j(a,t)}))},e.prototype._checkFinalizedStatuses=function(t){var r=this,o=r.hasError,i=r.thrownError,s=r.isStopped;o?t.error(i):s&&t.complete()},e.prototype.asObservable=function(){var t=new g;return t.source=this,t},e.create=function(t,r){return new he(t,r)},e})(g),he=(function(n){O(e,n);function e(t,r){var o=n.call(this)||this;return o.destination=t,o.source=r,o}return e.prototype.next=function(t){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.next)===null||o===void 0||o.call(r,t)},e.prototype.error=function(t){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.error)===null||o===void 0||o.call(r,t)},e.prototype.complete=function(){var t,r;(r=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||r===void 0||r.call(t)},e.prototype._subscribe=function(t){var r,o;return(o=(r=this.source)===null||r===void 0?void 0:r.subscribe(t))!==null&&o!==void 0?o:ce},e})(Q),pe=(function(n){O(e,n);function e(t){var r=n.call(this)||this;return r._value=t,r}return Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),e.prototype._subscribe=function(t){var r=n.prototype._subscribe.call(this,t);return!r.closed&&t.next(this._value),r},e.prototype.getValue=function(){var t=this,r=t.hasError,o=t.thrownError,i=t._value;if(r)throw o;return this._throwIfClosed(),i},e.prototype.next=function(t){n.prototype.next.call(this,this._value=t)},e})(Q),tt={now:function(){return Date.now()}},nt=(function(n){O(e,n);function e(t,r){return n.call(this)||this}return e.prototype.schedule=function(t,r){return this},e})(k),ve={setInterval:function(n,e){for(var t=[],r=2;r<arguments.length;r++)t[r-2]=arguments[r];return setInterval.apply(void 0,$([n,e],U(t)))},clearInterval:function(n){return clearInterval(n)},delegate:void 0},rt=(function(n){O(e,n);function e(t,r){var o=n.call(this,t,r)||this;return o.scheduler=t,o.work=r,o.pending=!1,o}return e.prototype.schedule=function(t,r){var o;if(r===void 0&&(r=0),this.closed)return this;this.state=t;var i=this.id,s=this.scheduler;return i!=null&&(this.id=this.recycleAsyncId(s,i,r)),this.pending=!0,this.delay=r,this.id=(o=this.id)!==null&&o!==void 0?o:this.requestAsyncId(s,this.id,r),this},e.prototype.requestAsyncId=function(t,r,o){return o===void 0&&(o=0),ve.setInterval(t.flush.bind(t,this),o)},e.prototype.recycleAsyncId=function(t,r,o){if(o===void 0&&(o=0),o!=null&&this.delay===o&&this.pending===!1)return r;r!=null&&ve.clearInterval(r)},e.prototype.execute=function(t,r){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var o=this._execute(t,r);if(o)return o;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},e.prototype._execute=function(t,r){var o=!1,i;try{this.work(t)}catch(s){o=!0,i=s||new Error("Scheduled action threw falsy error")}if(o)return this.unsubscribe(),i},e.prototype.unsubscribe=function(){if(!this.closed){var t=this,r=t.id,o=t.scheduler,i=o.actions;this.work=this.state=this.scheduler=null,this.pending=!1,j(i,this),r!=null&&(this.id=this.recycleAsyncId(o,r,null)),this.delay=null,n.prototype.unsubscribe.call(this)}},e})(nt),ye=(function(){function n(e,t){t===void 0&&(t=n.now),this.schedulerActionCtor=e,this.now=t}return n.prototype.schedule=function(e,t,r){return t===void 0&&(t=0),new this.schedulerActionCtor(this,e).schedule(r,t)},n.now=tt.now,n})(),ot=(function(n){O(e,n);function e(t,r){r===void 0&&(r=ye.now);var o=n.call(this,t,r)||this;return o.actions=[],o._active=!1,o}return e.prototype.flush=function(t){var r=this.actions;if(this._active){r.push(t);return}var o;this._active=!0;do if(o=t.execute(t.state,t.delay))break;while(t=r.shift());if(this._active=!1,o){for(;t=r.shift();)t.unsubscribe();throw o}},e})(ye),me=new ot(rt),it=me,st=new g(function(n){return n.complete()});function be(n){return n&&m(n.schedule)}function ge(n){return n[n.length-1]}function at(n){return m(ge(n))?n.pop():void 0}function Se(n){return be(ge(n))?n.pop():void 0}var we=(function(n){return n&&typeof n.length=="number"&&typeof n!="function"});function Ee(n){return m(n?.then)}function Oe(n){return m(n[J])}function Ie(n){return Symbol.asyncIterator&&m(n?.[Symbol.asyncIterator])}function Ce(n){return new TypeError("You provided "+(n!==null&&typeof n=="object"?"an invalid object":"'"+n+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function ct(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Ae=ct();function Te(n){return m(n?.[Ae])}function _e(n){return Ge(this,arguments,function(){var t,r,o,i;return se(this,function(s){switch(s.label){case 0:t=n.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,R(t.read())];case 3:return r=s.sent(),o=r.value,i=r.done,i?[4,R(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,R(o)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}})})}function Le(n){return m(n?.getReader)}function A(n){if(n instanceof g)return n;if(n!=null){if(Oe(n))return ut(n);if(we(n))return lt(n);if(Ee(n))return ft(n);if(Ie(n))return xe(n);if(Te(n))return dt(n);if(Le(n))return ht(n)}throw Ce(n)}function ut(n){return new g(function(e){var t=n[J]();if(m(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function lt(n){return new g(function(e){for(var t=0;t<n.length&&!e.closed;t++)e.next(n[t]);e.complete()})}function ft(n){return new g(function(e){n.then(function(t){e.closed||(e.next(t),e.complete())},function(t){return e.error(t)}).then(null,fe)})}function dt(n){return new g(function(e){var t,r;try{for(var o=M(n),i=o.next();!i.done;i=o.next()){var s=i.value;if(e.next(s),e.closed)return}}catch(a){t={error:a}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}e.complete()})}function xe(n){return new g(function(e){pt(n,e).catch(function(t){return e.error(t)})})}function ht(n){return xe(_e(n))}function pt(n,e){var t,r,o,i;return Fe(this,void 0,void 0,function(){var s,a;return se(this,function(c){switch(c.label){case 0:c.trys.push([0,5,6,11]),t=Ke(n),c.label=1;case 1:return[4,t.next()];case 2:if(r=c.sent(),!!r.done)return[3,4];if(s=r.value,e.next(s),e.closed)return[2];c.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=c.sent(),o={error:a},[3,11];case 6:return c.trys.push([6,,9,10]),r&&!r.done&&(i=t.return)?[4,i.call(t)]:[3,8];case 7:c.sent(),c.label=8;case 8:return[3,10];case 9:if(o)throw o.error;return[7];case 10:return[7];case 11:return e.complete(),[2]}})})}function T(n,e,t,r,o){r===void 0&&(r=0),o===void 0&&(o=!1);var i=e.schedule(function(){t(),o?n.add(this.schedule(null,r)):this.unsubscribe()},r);if(n.add(i),!o)return i}function Pe(n,e){return e===void 0&&(e=0),x(function(t,r){t.subscribe(I(r,function(o){return T(r,n,function(){return r.next(o)},e)},function(){return T(r,n,function(){return r.complete()},e)},function(o){return T(r,n,function(){return r.error(o)},e)}))})}function Me(n,e){return e===void 0&&(e=0),x(function(t,r){r.add(n.schedule(function(){return t.subscribe(r)},e))})}function vt(n,e){return A(n).pipe(Me(e),Pe(e))}function yt(n,e){return A(n).pipe(Me(e),Pe(e))}function mt(n,e){return new g(function(t){var r=0;return e.schedule(function(){r===n.length?t.complete():(t.next(n[r++]),t.closed||this.schedule())})})}function bt(n,e){return new g(function(t){var r;return T(t,e,function(){r=n[Ae](),T(t,e,function(){var o,i,s;try{o=r.next(),i=o.value,s=o.done}catch(a){t.error(a);return}s?t.complete():t.next(i)},0,!0)}),function(){return m(r?.return)&&r.return()}})}function Re(n,e){if(!n)throw new Error("Iterable cannot be null");return new g(function(t){T(t,e,function(){var r=n[Symbol.asyncIterator]();T(t,e,function(){r.next().then(function(o){o.done?t.complete():t.next(o.value)})},0,!0)})})}function gt(n,e){return Re(_e(n),e)}function St(n,e){if(n!=null){if(Oe(n))return vt(n,e);if(we(n))return mt(n,e);if(Ee(n))return yt(n,e);if(Ie(n))return Re(n,e);if(Te(n))return bt(n,e);if(Le(n))return gt(n,e)}throw Ce(n)}function Z(n,e){return e?St(n,e):A(n)}function wt(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var t=Se(n);return Z(n,t)}function Et(n){return n instanceof Date&&!isNaN(n)}function G(n,e){return x(function(t,r){var o=0;t.subscribe(I(r,function(i){r.next(n.call(e,i,o++))}))})}var Ot=Array.isArray;function It(n,e){return Ot(e)?n.apply(void 0,$([],U(e))):n(e)}function Ct(n){return G(function(e){return It(n,e)})}var At=Array.isArray,Tt=Object.getPrototypeOf,_t=Object.prototype,Lt=Object.keys;function xt(n){if(n.length===1){var e=n[0];if(At(e))return{args:e,keys:null};if(Pt(e)){var t=Lt(e);return{args:t.map(function(r){return e[r]}),keys:t}}}return{args:n,keys:null}}function Pt(n){return n&&typeof n=="object"&&Tt(n)===_t}function Mt(n,e){return n.reduce(function(t,r,o){return t[r]=e[o],t},{})}function Rt(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var t=Se(n),r=at(n),o=xt(n),i=o.args,s=o.keys;if(i.length===0)return Z([],t);var a=new g(Nt(i,t,s?function(c){return Mt(s,c)}:F));return r?a.pipe(Ct(r)):a}function Nt(n,e,t){return t===void 0&&(t=F),function(r){Ne(e,function(){for(var o=n.length,i=new Array(o),s=o,a=o,c=function(f){Ne(e,function(){var p=Z(n[f],e),h=!1;p.subscribe(I(r,function(l){i[f]=l,h||(h=!0,a--),a||r.next(t(i.slice()))},function(){--s||r.complete()}))},r)},u=0;u<o;u++)c(u)},r)}}function Ne(n,e,t){n?T(t,n,e):e()}function Ut(n,e,t,r,o,i,s,a){var c=[],u=0,f=0,p=!1,h=function(){p&&!c.length&&!u&&e.complete()},l=function(v){return u<r?y(v):c.push(v)},y=function(v){u++;var E=!1;A(t(v,f++)).subscribe(I(e,function(C){e.next(C)},function(){E=!0},void 0,function(){if(E)try{u--;for(var C=function(){var P=c.shift();s||y(P)};c.length&&u<r;)C();h()}catch(P){e.error(P)}}))};return n.subscribe(I(e,l,function(){p=!0,h()})),function(){}}function K(n,e,t){return t===void 0&&(t=1/0),m(e)?K(function(r,o){return G(function(i,s){return e(r,i,o,s)})(A(n(r,o)))},t):(typeof e=="number"&&(t=e),x(function(r,o){return Ut(r,o,n,t)}))}function Ue(n,e,t){n===void 0&&(n=0),t===void 0&&(t=it);var r=-1;return e!=null&&(be(e)?t=e:r=e),new g(function(o){var i=Et(n)?+n-t.now():n;i<0&&(i=0);var s=0;return t.schedule(function(){o.closed||(o.next(s++),0<=r?this.schedule(void 0,r):o.complete())},i)})}function $t(n,e){return m(e)?K(n,e,1):K(n,1)}function kt(n){return n<=0?function(){return st}:x(function(e,t){var r=0;e.subscribe(I(t,function(o){++r<=n&&(t.next(o),n<=r&&t.complete())}))})}function jt(n){return G(function(){return n})}function Dt(n,e){return K(function(t,r){return A(n(t,r)).pipe(kt(1),jt(t))})}function Ht(n,e){e===void 0&&(e=me);var t=Ue(n,e);return Dt(function(){return t})}function Ft(n){var e;e={count:n};var t=e.count,r=t===void 0?1/0:t,o=e.delay,i=e.resetOnSuccess,s=i===void 0?!1:i;return r<=0?F:x(function(a,c){var u=0,f,p=function(){var h=!1;f=a.subscribe(I(c,function(l){s&&(u=0),c.next(l)},void 0,function(l){if(u++<r){var y=function(){f?(f.unsubscribe(),f=null,p()):h=!0};if(o!=null){var v=typeof o=="number"?Ue(o):A(o(l,u)),E=I(c,function(){E.unsubscribe(),y()},function(){c.complete()});v.subscribe(E)}else y()}else c.error(l)})),h&&(f.unsubscribe(),f=null,p())};p()})}function Gt(n){return x(function(e,t){A(n).subscribe(I(t,function(){return t.complete()},W)),!t.closed&&e.subscribe(t)})}async function Kt(n,e){const t=n.getReader();let r;for(;!(r=await t.read()).done;)e(r.value)}function Vt(n){let e,t,r,o=!1;return function(s){e===void 0?(e=s,t=0,r=-1):e=Yt(e,s);const a=e.length;let c=0;for(;t<a;){o&&(e[t]===10&&(c=++t),o=!1);let u=-1;for(;t<a&&u===-1;++t)switch(e[t]){case 58:r===-1&&(r=t-c);break;case 13:o=!0;case 10:u=t;break}if(u===-1)break;n(e.subarray(c,u),r),c=t,r=-1}c===a?e=void 0:c!==0&&(e=e.subarray(c),t-=c)}}function Bt(n,e,t){let r=$e();const o=new TextDecoder;return function(s,a){if(s.length===0)t?.(r),r=$e();else if(a>0){const c=o.decode(s.subarray(0,a)),u=a+(s[a+1]===32?2:1),f=o.decode(s.subarray(u));switch(c){case"data":r.data=r.data?r.data+`
4
- `+f:f;break;case"event":r.event=f;break;case"id":n(r.id=f);break;case"retry":const p=parseInt(f,10);isNaN(p)||e(r.retry=p);break}}}}function Yt(n,e){const t=new Uint8Array(n.length+e.length);return t.set(n),t.set(e,n.length),t}function $e(){return{data:"",event:"",id:"",retry:void 0}}var qt=function(n,e){var t={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(n);o<r.length;o++)e.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(n,r[o])&&(t[r[o]]=n[r[o]]);return t};const ee="text/event-stream",Wt=1e3,ke="last-event-id";function Xt(n,e){var{signal:t,headers:r,onopen:o,onmessage:i,onclose:s,onerror:a,openWhenHidden:c,fetch:u}=e,f=qt(e,["signal","headers","onopen","onmessage","onclose","onerror","openWhenHidden","fetch"]);return new Promise((p,h)=>{const l=Object.assign({},r);l.accept||(l.accept=ee);let y;function v(){y.abort(),document.hidden||ne()}c||document.addEventListener("visibilitychange",v);let E=Wt,C=0;function P(){document.removeEventListener("visibilitychange",v),window.clearTimeout(C),y.abort()}t?.addEventListener("abort",()=>{P(),p()});const on=u??window.fetch,sn=o??zt;async function ne(){var re;y=new AbortController;try{const B=await on(n,Object.assign(Object.assign({},f),{headers:l,signal:y.signal}));await sn(B),await Kt(B.body,Vt(Bt(_=>{_?l[ke]=_:delete l[ke]},_=>{E=_},i))),s?.(),P(),p()}catch(B){if(!y.signal.aborted)try{const _=(re=a?.(B))!==null&&re!==void 0?re:E;window.clearTimeout(C),C=window.setTimeout(ne,_)}catch(_){P(),h(_)}}}ne()})}function zt(n){const e=n.headers.get("content-type");if(!e?.startsWith(ee))throw new Error(`Expected content-type to be ${ee}, Actual: ${e}`)}function Jt(n){const{endpoint:e,apiKey:t,payload:r,debugMode:o,customHeaders:i}=n;return new g(s=>{const a=new AbortController;let c;const u={"Content-Type":"application/json",...i};t&&(u["X-API-KEY"]=t);const f=new URLSearchParams;o&&f.set("is_debug","true");const p=new URL(e);return f.toString()&&(p.search=f.toString()),Xt(p.toString(),{method:"POST",headers:u,body:r?JSON.stringify(r):void 0,signal:a.signal,openWhenHidden:!0,onopen:async h=>{if(h.ok)c=h.headers.get("X-Trace-Id")??void 0;else{let l;try{l=await h.json()}catch{try{l=await h.text()}catch{l=null}}s.error(new L(h.status,h.statusText,l)),a.abort()}},onmessage:h=>{const l=JSON.parse(h.data);c?l.traceId=c:l.requestId&&(l.traceId=l.requestId,c||(c=l.requestId)),s.next(l)},onclose:()=>{s.complete()},onerror:h=>{throw s.error(h),a.abort(),h}}),()=>{a.abort()}})}class Qt{listeners={};on(e,t){this.listeners=Object.assign({},this.listeners,{[e]:(this.listeners[e]??[]).concat(t)})}off(e,t){this.listeners[e]&&(this.listeners=Object.assign({},this.listeners,{[e]:(this.listeners[e]??[]).filter(r=>r!==t)}))}remove(e){delete this.listeners[e]}emit(e,...t){this.listeners[e]&&this.listeners[e].forEach(r=>r(...t))}}class Zt{apiKey;endpoint;botProviderEndpoint;debugMode;destroy$=new Q;closed=!1;detached=!1;detachTimer;inFlight=0;sseEmitter=new Qt;transformSsePayload;customHeaders;constructor(e){if(!e.endpoint&&!e.botProviderEndpoint)throw new Error("Either endpoint or botProviderEndpoint must be provided");if(this.apiKey=e.apiKey,this.debugMode=e.debugMode,this.transformSsePayload=e.transformSsePayload,this.botProviderEndpoint=e.botProviderEndpoint,this.customHeaders={...e.customHeaders,...e.userIdentityHint?{"X-ASGARD-USER-IDENTITY-HINT":e.userIdentityHint}:{}},!e.endpoint&&e.botProviderEndpoint){const t=e.botProviderEndpoint.replace(/\/+$/,"");this.endpoint=`${t}/message/sse`}else e.endpoint&&(this.endpoint=e.endpoint,this.debugMode&&console.warn('[AsgardServiceClient] The "endpoint" option is deprecated and will be removed in the next major version. Please use "botProviderEndpoint" instead. The SSE endpoint will be automatically derived as "${botProviderEndpoint}/message/sse".'))}on(e,t){this.sseEmitter.remove(e),this.sseEmitter.on(e,t)}handleEvent(e){switch(e.eventType){case d.INIT:this.sseEmitter.emit(d.INIT,e);break;case d.PROCESS_START:case d.PROCESS_COMPLETE:this.sseEmitter.emit(d.PROCESS,e);break;case d.MESSAGE_START:case d.MESSAGE_DELTA:case d.MESSAGE_COMPLETE:this.sseEmitter.emit(d.MESSAGE,e);break;case d.TOOL_CALL_START:case d.TOOL_CALL_COMPLETE:this.sseEmitter.emit(d.TOOL_CALL,e);break;case d.TOOL_CALL_CONSENT:this.sseEmitter.emit(d.TOOL_CALL_CONSENT,e);break;case d.DONE:this.sseEmitter.emit(d.DONE,e);break;case d.ERROR:this.sseEmitter.emit(d.ERROR,e);break}}fetchSse(e,t){t?.onSseStart?.(),this.inFlight+=1,Jt({apiKey:this.apiKey,endpoint:this.endpoint,debugMode:this.debugMode,payload:this.transformSsePayload?.(e)??e,customHeaders:this.customHeaders}).pipe($t(r=>wt(r).pipe(Ht(t?.delayTime??50))),Gt(this.destroy$),Ft(3)).subscribe({next:r=>{this.detached||(t?.onSseMessage?.(r),this.handleEvent(r))},error:r=>{this.detached||t?.onSseError?.(r),this.onRunSettled()},complete:()=>{this.detached||t?.onSseCompleted?.(),this.onRunSettled()}})}detach(e){if(!(this.detached||this.closed)){if(this.detached=!0,this.inFlight===0){this.close();return}this.detachTimer=setTimeout(()=>this.close(),e.timeoutMs)}}onRunSettled(){this.inFlight=Math.max(0,this.inFlight-1),this.detached&&this.inFlight===0&&this.close()}close(){this.closed||(this.closed=!0,this.detachTimer&&(clearTimeout(this.detachTimer),this.detachTimer=void 0),this.destroy$.next(),this.destroy$.complete())}async uploadFile(e,t){const r=this.deriveBlobEndpoint();if(!r)throw new Error("Unable to derive blob endpoint. Please provide botProviderEndpoint in config.");const o=new FormData;o.append("file",e),o.append("customChannelId",t);const i={...this.customHeaders};this.apiKey&&(i["X-API-KEY"]=this.apiKey);try{const s=await fetch(r,{method:"POST",headers:i,body:o});if(!s.ok)throw new Error(`Upload failed: ${s.status} ${s.statusText}`);const a=await s.json();return this.debugMode&&console.log("[AsgardServiceClient] File upload response:",a),a}catch(s){throw console.error("[AsgardServiceClient] File upload error:",s),s}}async downloadCwdFile(e,t){const r=this.getBaseEndpoint();if(!r)throw new Error("Unable to derive cwd download endpoint. Please provide botProviderEndpoint in config.");const o=`custom_channel_id=${encodeURIComponent(t)}&relative_path=${encodeURIComponent(e)}`,i=`${r}/cwd/download?${o}`,s={...this.customHeaders};this.apiKey&&(s["X-API-KEY"]=this.apiKey);try{const a=await fetch(i,{method:"GET",headers:s});if(!a.ok)throw new Error(`CWD download failed: ${a.status} ${a.statusText}`);const c=await a.blob(),u=e.split("/").pop()||"download";return this.debugMode&&console.log("[AsgardServiceClient] CWD download response:",{filename:u,size:c.size}),{blob:c,filename:u}}catch(a){throw console.error("[AsgardServiceClient] CWD download error:",a),a}}deriveBlobEndpoint(){const e=this.getBaseEndpoint();return e?`${e}/blob`:null}getBaseEndpoint(){let e=this.botProviderEndpoint;return!e&&this.endpoint&&(e=this.endpoint.replace("/message/sse","")),e?e.replace(/\/+$/,""):null}}const b=[];for(let n=0;n<256;++n)b.push((n+256).toString(16).slice(1));function en(n,e=0){return(b[n[e+0]]+b[n[e+1]]+b[n[e+2]]+b[n[e+3]]+"-"+b[n[e+4]]+b[n[e+5]]+"-"+b[n[e+6]]+b[n[e+7]]+"-"+b[n[e+8]]+b[n[e+9]]+"-"+b[n[e+10]]+b[n[e+11]]+b[n[e+12]]+b[n[e+13]]+b[n[e+14]]+b[n[e+15]]).toLowerCase()}let te;const tn=new Uint8Array(16);function nn(){if(!te){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");te=crypto.getRandomValues.bind(crypto)}return te(tn)}const je={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function rn(n,e,t){n=n||{};const r=n.random??n.rng?.()??nn();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,en(r)}function De(n,e,t){return je.randomUUID&&!n?je.randomUUID():rn(n)}class w{messages=null;pendingConsent=null;constructor({messages:e,pendingConsent:t=null}){this.messages=e,this.pendingConsent=t??null}pushMessage(e){const t=new Map(this.messages);return t.set(e.messageId,e),new w({messages:t,pendingConsent:this.pendingConsent})}clearPendingConsent(){return this.pendingConsent?new w({messages:this.messages,pendingConsent:null}):this}onMessage(e){switch(e.eventType){case d.MESSAGE_START:return this.onMessageStart(e);case d.MESSAGE_DELTA:return this.onMessageDelta(e);case d.MESSAGE_COMPLETE:return this.onMessageComplete(e);case d.TOOL_CALL_START:return this.onToolCallStart(e);case d.TOOL_CALL_COMPLETE:return this.onToolCallComplete(e);case d.TOOL_CALL_CONSENT:return this.onToolCallConsent(e);case d.ERROR:return this.onMessageError(e);default:return this}}onMessageStart(e){const t=e.fact.messageStart.message,r=new Map(this.messages);return r.set(t.messageId,{type:"bot",eventType:d.MESSAGE_START,isTyping:!0,typingText:"",messageId:t.messageId,message:t,time:new Date,traceId:e.traceId,raw:""}),new w({messages:r,pendingConsent:this.pendingConsent})}onMessageDelta(e){const t=e.fact.messageDelta.message,r=new Map(this.messages),o=r.get(t.messageId);if(o?.type!=="bot")return this;const i=`${o?.typingText??""}${t.text}`;return r.set(t.messageId,{type:"bot",eventType:d.MESSAGE_DELTA,isTyping:!0,typingText:i,messageId:t.messageId,message:t,time:new Date,traceId:e.traceId??o.traceId,raw:o.raw}),new w({messages:r,pendingConsent:this.pendingConsent})}onMessageComplete(e){const t=e.fact.messageComplete.message,r=new Map(this.messages),o=r.get(t.messageId);return r.set(t.messageId,{type:"bot",eventType:d.MESSAGE_COMPLETE,isTyping:!1,typingText:null,messageId:t.messageId,message:t,time:new Date,traceId:e.traceId??(o?.type==="bot"?o.traceId:void 0),raw:JSON.stringify(e)}),new w({messages:r,pendingConsent:this.pendingConsent})}onMessageError(e){const t=De(),r=e.fact.runError.error,o=new Map(this.messages);return o.set(t,{type:"error",eventType:d.ERROR,messageId:t,error:r,time:new Date,traceId:e.traceId}),new w({messages:o,pendingConsent:this.pendingConsent})}onToolCallStart(e){const t=e.fact.toolCallStart,r=new Map(this.messages),o=`${t.processId}-${t.callSeq}`,i={type:"tool-call",eventType:d.TOOL_CALL_START,messageId:o,processId:t.processId,callSeq:t.callSeq,toolName:t.toolCall.toolName,reason:t.toolCall.reason,toolsetName:t.toolCall.toolsetName,parameter:t.toolCall.parameter,isComplete:!1,time:new Date,traceId:e.traceId};return r.set(o,i),new w({messages:r,pendingConsent:this.pendingConsent})}onToolCallComplete(e){const t=e.fact.toolCallComplete,r=new Map(this.messages),o=`${t.processId}-${t.callSeq}`,i=r.get(o);if(i?.type==="tool-call"){const s={...i,eventType:d.TOOL_CALL_COMPLETE,result:t.toolCallResult,isComplete:!0,traceId:e.traceId??i.traceId};r.set(o,s)}return new w({messages:r,pendingConsent:this.pendingConsent})}onToolCallConsent(e){const t=e.fact.toolCallConsent;return new w({messages:this.messages,pendingConsent:t})}}class V{client;customChannelId;customMessageId;isConnecting$;conversation$;statesObserver;statesSubscription;currentUserMessageId;lastSentMessageId;constructor(e){if(!e.client)throw new Error("client must be required");if(!e.customChannelId)throw new Error("customChannelId must be required");this.client=e.client,this.customChannelId=e.customChannelId,this.customMessageId=e.customMessageId,this.isConnecting$=new pe(!1),this.conversation$=new pe(e.conversation),this.statesObserver=e.statesObserver}static create(e){const t=new V(e);return t.subscribe(),t}static async reset(e,t,r,o){const i=new V(e);try{return i.subscribe(),o?.(i),await i.resetChannel(t,r),i}catch(s){throw i.close(),s}}subscribe(){this.statesSubscription=Rt([this.isConnecting$,this.conversation$]).pipe(G(([e,t])=>({isConnecting:e,conversation:t}))).subscribe(this.statesObserver)}resolvePayload(e){if(typeof e=="function")try{return e()}catch(t){throw new Error(`Failed to resolve payload function: ${t instanceof Error?t.message:String(t)}`)}return e}fetchSse(e,t){return new Promise((r,o)=>{this.isConnecting$.next(!0),this.client.fetchSse(e,{onSseStart:t?.onSseStart,onSseMessage:i=>{if(t?.onSseMessage?.(i),this.currentUserMessageId&&i.traceId){const s=new Map(this.conversation$.value.messages),a=s.get(this.currentUserMessageId);a&&a.type==="user"&&(s.set(this.currentUserMessageId,{...a,traceId:i.traceId}),this.conversation$.next(new w({messages:s}))),this.currentUserMessageId=void 0}this.conversation$.next(this.conversation$.value.onMessage(i))},onSseError:i=>{t?.onSseError?.(i),this.isConnecting$.next(!1),this.currentUserMessageId=void 0,o(i)},onSseCompleted:()=>{t?.onSseCompleted?.(),this.isConnecting$.next(!1),this.currentUserMessageId=void 0,r()}})})}resetChannel(e,t){return this.fetchSse({action:N.RESET_CHANNEL,customChannelId:this.customChannelId,customMessageId:this.customMessageId,text:e?.text||"",payload:this.resolvePayload(e?.payload)},t)}sendMessage(e,t){const r=e.text.trim(),o=e.customMessageId??De();return this.currentUserMessageId=o,this.lastSentMessageId=o,this.conversation$.next(this.conversation$.value.pushMessage({type:"user",messageId:o,text:r,blobIds:e.blobIds,filePreviewUrls:e.filePreviewUrls,documentNames:e.documentNames,time:new Date})),this.fetchSse({action:N.NONE,customChannelId:this.customChannelId,customMessageId:o,payload:this.resolvePayload(e?.payload),text:r,blobIds:e?.blobIds},t)}replyToolCallConsents(e,t,r){return this.conversation$.next(this.conversation$.value.clearPendingConsent()),this.fetchSse({action:N.RESPONSE_TOOL_CALL_CONSENT,customChannelId:this.customChannelId,customMessageId:this.lastSentMessageId??this.customMessageId,payload:this.resolvePayload(r),text:"",toolCallConsents:e},t)}close(){this.isConnecting$.complete(),this.conversation$.complete(),this.statesSubscription?.unsubscribe()}}S.AsgardServiceClient=Zt,S.Channel=V,S.Conversation=w,S.EventType=d,S.FetchSseAction=N,S.HttpError=L,S.MessageTemplateType=ie,S.ToolCallConsentResult=oe,S.isHttpError=He,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(p,C){typeof exports=="object"&&typeof module<"u"?C(exports):typeof define=="function"&&define.amd?define(["exports"],C):(p=typeof globalThis<"u"?globalThis:p||self,C(p["@asgard-js/core"]={}))})(this,(function(p){"use strict";class C extends Error{status;statusText;body;constructor(t,e,r){super(`HTTP ${t}: ${e}`),this.name="HttpError",this.status=t,this.statusText=e,this.body=r}}function et(n){return n instanceof C}var $=(n=>(n.RESET_CHANNEL="RESET_CHANNEL",n.NONE="NONE",n.RESPONSE_TOOL_CALL_CONSENT="RESPONSE_TOOL_CALL_CONSENT",n))($||{}),d=(n=>(n.INIT="asgard.run.init",n.PROCESS="asgard.process",n.PROCESS_START="asgard.process.start",n.PROCESS_COMPLETE="asgard.process.complete",n.MESSAGE="asgard.message",n.MESSAGE_START="asgard.message.start",n.MESSAGE_DELTA="asgard.message.delta",n.MESSAGE_COMPLETE="asgard.message.complete",n.MESSAGE_USER="asgard.message.user",n.MESSAGE_THINKING_START="asgard.message.thinking.start",n.MESSAGE_THINKING_DELTA="asgard.message.thinking.delta",n.MESSAGE_THINKING_COMPLETE="asgard.message.thinking.complete",n.TOOL_CALL="asgard.tool_call",n.TOOL_CALL_START="asgard.tool_call.start",n.TOOL_CALL_COMPLETE="asgard.tool_call.complete",n.TOOL_CALL_CONSENT="asgard.tool_call.consent",n.SUBAGENT_START="asgard.subagent.start",n.SUBAGENT_COMPLETE="asgard.subagent.complete",n.CHANNEL_TITLE_UPDATE="asgard.channel.title.update",n.DONE="asgard.run.done",n.ERROR="asgard.run.error",n))(d||{}),ae=(n=>(n.ALLOW_ONCE="ALLOW_ONCE",n.ALLOW_ALWAYS="ALLOW_ALWAYS",n.DENY_ONCE="DENY_ONCE",n))(ae||{}),ce=(n=>(n.TEXT="TEXT",n.HINT="HINT",n.BUTTON="BUTTON",n.IMAGE="IMAGE",n.VIDEO="VIDEO",n.AUDIO="AUDIO",n.LOCATION="LOCATION",n.CAROUSEL="CAROUSEL",n.CHART="CHART",n.TABLE="TABLE",n.ATTACHMENT="ATTACHMENT",n))(ce||{}),W=function(n,t){return W=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])},W(n,t)};function I(n,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");W(n,t);function e(){this.constructor=n}n.prototype=t===null?Object.create(t):(e.prototype=t.prototype,new e)}function tt(n,t,e,r){function s(i){return i instanceof e?i:new e(function(o){o(i)})}return new(e||(e=Promise))(function(i,o){function a(h){try{c(r.next(h))}catch(m){o(m)}}function u(h){try{c(r.throw(h))}catch(m){o(m)}}function c(h){h.done?i(h.value):s(h.value).then(a,u)}c((r=r.apply(n,t||[])).next())})}function ue(n,t){var e={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},r,s,i,o=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return o.next=a(0),o.throw=a(1),o.return=a(2),typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(c){return function(h){return u([c,h])}}function u(c){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(e=0)),e;)try{if(r=1,s&&(i=c[0]&2?s.return:c[0]?s.throw||((i=s.return)&&i.call(s),0):s.next)&&!(i=i.call(s,c[1])).done)return i;switch(s=0,i&&(c=[c[0]&2,i.value]),c[0]){case 0:case 1:i=c;break;case 4:return e.label++,{value:c[1],done:!1};case 5:e.label++,s=c[1],c=[0];continue;case 7:c=e.ops.pop(),e.trys.pop();continue;default:if(i=e.trys,!(i=i.length>0&&i[i.length-1])&&(c[0]===6||c[0]===2)){e=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]<i[3])){e.label=c[1];break}if(c[0]===6&&e.label<i[1]){e.label=i[1],i=c;break}if(i&&e.label<i[2]){e.label=i[2],e.ops.push(c);break}i[2]&&e.ops.pop(),e.trys.pop();continue}c=t.call(n,e)}catch(h){c=[6,h],s=0}finally{r=i=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}function U(n){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&n[t],r=0;if(e)return e.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&r>=n.length&&(n=void 0),{value:n&&n[r++],done:!n}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function j(n,t){var e=typeof Symbol=="function"&&n[Symbol.iterator];if(!e)return n;var r=e.call(n),s,i=[],o;try{for(;(t===void 0||t-- >0)&&!(s=r.next()).done;)i.push(s.value)}catch(a){o={error:a}}finally{try{s&&!s.done&&(e=r.return)&&e.call(r)}finally{if(o)throw o.error}}return i}function D(n,t,e){if(e||arguments.length===2)for(var r=0,s=t.length,i;r<s;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return n.concat(i||Array.prototype.slice.call(t))}function x(n){return this instanceof x?(this.v=n,this):new x(n)}function nt(n,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=e.apply(n,t||[]),s,i=[];return s=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",o),s[Symbol.asyncIterator]=function(){return this},s;function o(l){return function(f){return Promise.resolve(f).then(l,m)}}function a(l,f){r[l]&&(s[l]=function(g){return new Promise(function(k,T){i.push([l,g,k,T])>1||u(l,g)})},f&&(s[l]=f(s[l])))}function u(l,f){try{c(r[l](f))}catch(g){b(i[0][3],g)}}function c(l){l.value instanceof x?Promise.resolve(l.value.v).then(h,m):b(i[0][2],l)}function h(l){u("next",l)}function m(l){u("throw",l)}function b(l,f){l(f),i.shift(),i.length&&u(i[0][0],i[0][1])}}function rt(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=n[Symbol.asyncIterator],e;return t?t.call(n):(n=typeof U=="function"?U(n):n[Symbol.iterator](),e={},r("next"),r("throw"),r("return"),e[Symbol.asyncIterator]=function(){return this},e);function r(i){e[i]=n[i]&&function(o){return new Promise(function(a,u){o=n[i](o),s(a,u,o.done,o.value)})}}function s(i,o,a,u){Promise.resolve(u).then(function(c){i({value:c,done:a})},o)}}typeof SuppressedError=="function"&&SuppressedError;function v(n){return typeof n=="function"}function le(n){var t=function(r){Error.call(r),r.stack=new Error().stack},e=n(t);return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}var X=le(function(n){return function(e){n(this),this.message=e?e.length+` errors occurred during unsubscription:
2
+ `+e.map(function(r,s){return s+1+") "+r.toString()}).join(`
3
+ `):"",this.name="UnsubscriptionError",this.errors=e}});function K(n,t){if(n){var e=n.indexOf(t);0<=e&&n.splice(e,1)}}var N=(function(){function n(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return n.prototype.unsubscribe=function(){var t,e,r,s,i;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var a=U(o),u=a.next();!u.done;u=a.next()){var c=u.value;c.remove(this)}}catch(g){t={error:g}}finally{try{u&&!u.done&&(e=a.return)&&e.call(a)}finally{if(t)throw t.error}}else o.remove(this);var h=this.initialTeardown;if(v(h))try{h()}catch(g){i=g instanceof X?g.errors:[g]}var m=this._finalizers;if(m){this._finalizers=null;try{for(var b=U(m),l=b.next();!l.done;l=b.next()){var f=l.value;try{fe(f)}catch(g){i=i??[],g instanceof X?i=D(D([],j(i)),j(g.errors)):i.push(g)}}}catch(g){r={error:g}}finally{try{l&&!l.done&&(s=b.return)&&s.call(b)}finally{if(r)throw r.error}}}if(i)throw new X(i)}},n.prototype.add=function(t){var e;if(t&&t!==this)if(this.closed)fe(t);else{if(t instanceof n){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(e=this._finalizers)!==null&&e!==void 0?e:[]).push(t)}},n.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},n.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},n.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&K(e,t)},n.prototype.remove=function(t){var e=this._finalizers;e&&K(e,t),t instanceof n&&t._removeParent(this)},n.EMPTY=(function(){var t=new n;return t.closed=!0,t})(),n})(),de=N.EMPTY;function he(n){return n instanceof N||n&&"closed"in n&&v(n.remove)&&v(n.add)&&v(n.unsubscribe)}function fe(n){v(n)?n():n.unsubscribe()}var st={Promise:void 0},it={setTimeout:function(n,t){for(var e=[],r=2;r<arguments.length;r++)e[r-2]=arguments[r];return setTimeout.apply(void 0,D([n,t],j(e)))},clearTimeout:function(n){return clearTimeout(n)},delegate:void 0};function pe(n){it.setTimeout(function(){throw n})}function z(){}function F(n){n()}var J=(function(n){I(t,n);function t(e){var r=n.call(this)||this;return r.isStopped=!1,e?(r.destination=e,he(e)&&e.add(r)):r.destination=ct,r}return t.create=function(e,r,s){return new Q(e,r,s)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,n.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t})(N),ot=(function(){function n(t){this.partialObserver=t}return n.prototype.next=function(t){var e=this.partialObserver;if(e.next)try{e.next(t)}catch(r){B(r)}},n.prototype.error=function(t){var e=this.partialObserver;if(e.error)try{e.error(t)}catch(r){B(r)}else B(t)},n.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(e){B(e)}},n})(),Q=(function(n){I(t,n);function t(e,r,s){var i=n.call(this)||this,o;return v(e)||!e?o={next:e??void 0,error:r??void 0,complete:s??void 0}:o=e,i.destination=new ot(o),i}return t})(J);function B(n){pe(n)}function at(n){throw n}var ct={closed:!0,next:z,error:at,complete:z},Z=(function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"})();function q(n){return n}function ut(n){return n.length===0?q:n.length===1?n[0]:function(e){return n.reduce(function(r,s){return s(r)},e)}}var E=(function(){function n(t){t&&(this._subscribe=t)}return n.prototype.lift=function(t){var e=new n;return e.source=this,e.operator=t,e},n.prototype.subscribe=function(t,e,r){var s=this,i=dt(t)?t:new Q(t,e,r);return F(function(){var o=s,a=o.operator,u=o.source;i.add(a?a.call(i,u):u?s._subscribe(i):s._trySubscribe(i))}),i},n.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.error(e)}},n.prototype.forEach=function(t,e){var r=this;return e=ge(e),new e(function(s,i){var o=new Q({next:function(a){try{t(a)}catch(u){i(u),o.unsubscribe()}},error:i,complete:s});r.subscribe(o)})},n.prototype._subscribe=function(t){var e;return(e=this.source)===null||e===void 0?void 0:e.subscribe(t)},n.prototype[Z]=function(){return this},n.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return ut(t)(this)},n.prototype.toPromise=function(t){var e=this;return t=ge(t),new t(function(r,s){var i;e.subscribe(function(o){return i=o},function(o){return s(o)},function(){return r(i)})})},n.create=function(t){return new n(t)},n})();function ge(n){var t;return(t=n??st.Promise)!==null&&t!==void 0?t:Promise}function lt(n){return n&&v(n.next)&&v(n.error)&&v(n.complete)}function dt(n){return n&&n instanceof J||lt(n)&&he(n)}function ht(n){return v(n?.lift)}function M(n){return function(t){if(ht(t))return t.lift(function(e){try{return n(e,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function O(n,t,e,r,s){return new ft(n,t,e,r,s)}var ft=(function(n){I(t,n);function t(e,r,s,i,o,a){var u=n.call(this,e)||this;return u.onFinalize=o,u.shouldUnsubscribe=a,u._next=r?function(c){try{r(c)}catch(h){e.error(h)}}:n.prototype._next,u._error=i?function(c){try{i(c)}catch(h){e.error(h)}finally{this.unsubscribe()}}:n.prototype._error,u._complete=s?function(){try{s()}catch(c){e.error(c)}finally{this.unsubscribe()}}:n.prototype._complete,u}return t.prototype.unsubscribe=function(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;n.prototype.unsubscribe.call(this),!r&&((e=this.onFinalize)===null||e===void 0||e.call(this))}},t})(J),pt=le(function(n){return function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),ee=(function(n){I(t,n);function t(){var e=n.call(this)||this;return e.closed=!1,e.currentObservers=null,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return t.prototype.lift=function(e){var r=new me(this,this);return r.operator=e,r},t.prototype._throwIfClosed=function(){if(this.closed)throw new pt},t.prototype.next=function(e){var r=this;F(function(){var s,i;if(r._throwIfClosed(),!r.isStopped){r.currentObservers||(r.currentObservers=Array.from(r.observers));try{for(var o=U(r.currentObservers),a=o.next();!a.done;a=o.next()){var u=a.value;u.next(e)}}catch(c){s={error:c}}finally{try{a&&!a.done&&(i=o.return)&&i.call(o)}finally{if(s)throw s.error}}}})},t.prototype.error=function(e){var r=this;F(function(){if(r._throwIfClosed(),!r.isStopped){r.hasError=r.isStopped=!0,r.thrownError=e;for(var s=r.observers;s.length;)s.shift().error(e)}})},t.prototype.complete=function(){var e=this;F(function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var r=e.observers;r.length;)r.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return((e=this.observers)===null||e===void 0?void 0:e.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(e){return this._throwIfClosed(),n.prototype._trySubscribe.call(this,e)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var r=this,s=this,i=s.hasError,o=s.isStopped,a=s.observers;return i||o?de:(this.currentObservers=null,a.push(e),new N(function(){r.currentObservers=null,K(a,e)}))},t.prototype._checkFinalizedStatuses=function(e){var r=this,s=r.hasError,i=r.thrownError,o=r.isStopped;s?e.error(i):o&&e.complete()},t.prototype.asObservable=function(){var e=new E;return e.source=this,e},t.create=function(e,r){return new me(e,r)},t})(E),me=(function(n){I(t,n);function t(e,r){var s=n.call(this)||this;return s.destination=e,s.source=r,s}return t.prototype.next=function(e){var r,s;(s=(r=this.destination)===null||r===void 0?void 0:r.next)===null||s===void 0||s.call(r,e)},t.prototype.error=function(e){var r,s;(s=(r=this.destination)===null||r===void 0?void 0:r.error)===null||s===void 0||s.call(r,e)},t.prototype.complete=function(){var e,r;(r=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||r===void 0||r.call(e)},t.prototype._subscribe=function(e){var r,s;return(s=(r=this.source)===null||r===void 0?void 0:r.subscribe(e))!==null&&s!==void 0?s:de},t})(ee),H=(function(n){I(t,n);function t(e){var r=n.call(this)||this;return r._value=e,r}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(e){var r=n.prototype._subscribe.call(this,e);return!r.closed&&e.next(this._value),r},t.prototype.getValue=function(){var e=this,r=e.hasError,s=e.thrownError,i=e._value;if(r)throw s;return this._throwIfClosed(),i},t.prototype.next=function(e){n.prototype.next.call(this,this._value=e)},t})(ee),gt={now:function(){return Date.now()}},mt=(function(n){I(t,n);function t(e,r){return n.call(this)||this}return t.prototype.schedule=function(e,r){return this},t})(N),ve={setInterval:function(n,t){for(var e=[],r=2;r<arguments.length;r++)e[r-2]=arguments[r];return setInterval.apply(void 0,D([n,t],j(e)))},clearInterval:function(n){return clearInterval(n)},delegate:void 0},vt=(function(n){I(t,n);function t(e,r){var s=n.call(this,e,r)||this;return s.scheduler=e,s.work=r,s.pending=!1,s}return t.prototype.schedule=function(e,r){var s;if(r===void 0&&(r=0),this.closed)return this;this.state=e;var i=this.id,o=this.scheduler;return i!=null&&(this.id=this.recycleAsyncId(o,i,r)),this.pending=!0,this.delay=r,this.id=(s=this.id)!==null&&s!==void 0?s:this.requestAsyncId(o,this.id,r),this},t.prototype.requestAsyncId=function(e,r,s){return s===void 0&&(s=0),ve.setInterval(e.flush.bind(e,this),s)},t.prototype.recycleAsyncId=function(e,r,s){if(s===void 0&&(s=0),s!=null&&this.delay===s&&this.pending===!1)return r;r!=null&&ve.clearInterval(r)},t.prototype.execute=function(e,r){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var s=this._execute(e,r);if(s)return s;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,r){var s=!1,i;try{this.work(e)}catch(o){s=!0,i=o||new Error("Scheduled action threw falsy error")}if(s)return this.unsubscribe(),i},t.prototype.unsubscribe=function(){if(!this.closed){var e=this,r=e.id,s=e.scheduler,i=s.actions;this.work=this.state=this.scheduler=null,this.pending=!1,K(i,this),r!=null&&(this.id=this.recycleAsyncId(s,r,null)),this.delay=null,n.prototype.unsubscribe.call(this)}},t})(mt),ye=(function(){function n(t,e){e===void 0&&(e=n.now),this.schedulerActionCtor=t,this.now=e}return n.prototype.schedule=function(t,e,r){return e===void 0&&(e=0),new this.schedulerActionCtor(this,t).schedule(r,e)},n.now=gt.now,n})(),yt=(function(n){I(t,n);function t(e,r){r===void 0&&(r=ye.now);var s=n.call(this,e,r)||this;return s.actions=[],s._active=!1,s}return t.prototype.flush=function(e){var r=this.actions;if(this._active){r.push(e);return}var s;this._active=!0;do if(s=e.execute(e.state,e.delay))break;while(e=r.shift());if(this._active=!1,s){for(;e=r.shift();)e.unsubscribe();throw s}},t})(ye),be=new yt(vt),bt=be,St=new E(function(n){return n.complete()});function Se(n){return n&&v(n.schedule)}function Ee(n){return n[n.length-1]}function Et(n){return v(Ee(n))?n.pop():void 0}function Ie(n){return Se(Ee(n))?n.pop():void 0}var we=(function(n){return n&&typeof n.length=="number"&&typeof n!="function"});function Te(n){return v(n?.then)}function Ce(n){return v(n[Z])}function Oe(n){return Symbol.asyncIterator&&v(n?.[Symbol.asyncIterator])}function Ae(n){return new TypeError("You provided "+(n!==null&&typeof n=="object"?"an invalid object":"'"+n+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function It(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var _e=It();function Me(n){return v(n?.[_e])}function Le(n){return nt(this,arguments,function(){var e,r,s,i;return ue(this,function(o){switch(o.label){case 0:e=n.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,x(e.read())];case 3:return r=o.sent(),s=r.value,i=r.done,i?[4,x(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,x(s)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return e.releaseLock(),[7];case 10:return[2]}})})}function ke(n){return v(n?.getReader)}function L(n){if(n instanceof E)return n;if(n!=null){if(Ce(n))return wt(n);if(we(n))return Tt(n);if(Te(n))return Ct(n);if(Oe(n))return Pe(n);if(Me(n))return Ot(n);if(ke(n))return At(n)}throw Ae(n)}function wt(n){return new E(function(t){var e=n[Z]();if(v(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Tt(n){return new E(function(t){for(var e=0;e<n.length&&!t.closed;e++)t.next(n[e]);t.complete()})}function Ct(n){return new E(function(t){n.then(function(e){t.closed||(t.next(e),t.complete())},function(e){return t.error(e)}).then(null,pe)})}function Ot(n){return new E(function(t){var e,r;try{for(var s=U(n),i=s.next();!i.done;i=s.next()){var o=i.value;if(t.next(o),t.closed)return}}catch(a){e={error:a}}finally{try{i&&!i.done&&(r=s.return)&&r.call(s)}finally{if(e)throw e.error}}t.complete()})}function Pe(n){return new E(function(t){_t(n,t).catch(function(e){return t.error(e)})})}function At(n){return Pe(Le(n))}function _t(n,t){var e,r,s,i;return tt(this,void 0,void 0,function(){var o,a;return ue(this,function(u){switch(u.label){case 0:u.trys.push([0,5,6,11]),e=rt(n),u.label=1;case 1:return[4,e.next()];case 2:if(r=u.sent(),!!r.done)return[3,4];if(o=r.value,t.next(o),t.closed)return[2];u.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=u.sent(),s={error:a},[3,11];case 6:return u.trys.push([6,,9,10]),r&&!r.done&&(i=e.return)?[4,i.call(e)]:[3,8];case 7:u.sent(),u.label=8;case 8:return[3,10];case 9:if(s)throw s.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function A(n,t,e,r,s){r===void 0&&(r=0),s===void 0&&(s=!1);var i=t.schedule(function(){e(),s?n.add(this.schedule(null,r)):this.unsubscribe()},r);if(n.add(i),!s)return i}function Ue(n,t){return t===void 0&&(t=0),M(function(e,r){e.subscribe(O(r,function(s){return A(r,n,function(){return r.next(s)},t)},function(){return A(r,n,function(){return r.complete()},t)},function(s){return A(r,n,function(){return r.error(s)},t)}))})}function xe(n,t){return t===void 0&&(t=0),M(function(e,r){r.add(n.schedule(function(){return e.subscribe(r)},t))})}function Mt(n,t){return L(n).pipe(xe(t),Ue(t))}function Lt(n,t){return L(n).pipe(xe(t),Ue(t))}function kt(n,t){return new E(function(e){var r=0;return t.schedule(function(){r===n.length?e.complete():(e.next(n[r++]),e.closed||this.schedule())})})}function Pt(n,t){return new E(function(e){var r;return A(e,t,function(){r=n[_e](),A(e,t,function(){var s,i,o;try{s=r.next(),i=s.value,o=s.done}catch(a){e.error(a);return}o?e.complete():e.next(i)},0,!0)}),function(){return v(r?.return)&&r.return()}})}function Ne(n,t){if(!n)throw new Error("Iterable cannot be null");return new E(function(e){A(e,t,function(){var r=n[Symbol.asyncIterator]();A(e,t,function(){r.next().then(function(s){s.done?e.complete():e.next(s.value)})},0,!0)})})}function Ut(n,t){return Ne(Le(n),t)}function xt(n,t){if(n!=null){if(Ce(n))return Mt(n,t);if(we(n))return kt(n,t);if(Te(n))return Lt(n,t);if(Oe(n))return Ne(n,t);if(Me(n))return Pt(n,t);if(ke(n))return Ut(n,t)}throw Ae(n)}function te(n,t){return t?xt(n,t):L(n)}function Nt(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=Ie(n);return te(n,e)}function Rt(n){return n instanceof Date&&!isNaN(n)}function R(n,t){return M(function(e,r){var s=0;e.subscribe(O(r,function(i){r.next(n.call(t,i,s++))}))})}var $t=Array.isArray;function jt(n,t){return $t(t)?n.apply(void 0,D([],j(t))):n(t)}function Dt(n){return R(function(t){return jt(n,t)})}var Ht=Array.isArray,Gt=Object.getPrototypeOf,Kt=Object.prototype,Ft=Object.keys;function Bt(n){if(n.length===1){var t=n[0];if(Ht(t))return{args:t,keys:null};if(qt(t)){var e=Ft(t);return{args:e.map(function(r){return t[r]}),keys:e}}}return{args:n,keys:null}}function qt(n){return n&&typeof n=="object"&&Gt(n)===Kt}function Vt(n,t){return n.reduce(function(e,r,s){return e[r]=t[s],e},{})}function Yt(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=Ie(n),r=Et(n),s=Bt(n),i=s.args,o=s.keys;if(i.length===0)return te([],e);var a=new E(Wt(i,e,o?function(u){return Vt(o,u)}:q));return r?a.pipe(Dt(r)):a}function Wt(n,t,e){return e===void 0&&(e=q),function(r){Re(t,function(){for(var s=n.length,i=new Array(s),o=s,a=s,u=function(h){Re(t,function(){var m=te(n[h],t),b=!1;m.subscribe(O(r,function(l){i[h]=l,b||(b=!0,a--),a||r.next(e(i.slice()))},function(){--o||r.complete()}))},r)},c=0;c<s;c++)u(c)},r)}}function Re(n,t,e){n?A(e,n,t):t()}function Xt(n,t,e,r,s,i,o,a){var u=[],c=0,h=0,m=!1,b=function(){m&&!u.length&&!c&&t.complete()},l=function(g){return c<r?f(g):u.push(g)},f=function(g){c++;var k=!1;L(e(g,h++)).subscribe(O(t,function(T){t.next(T)},function(){k=!0},void 0,function(){if(k)try{c--;for(var T=function(){var P=u.shift();o||f(P)};u.length&&c<r;)T();b()}catch(P){t.error(P)}}))};return n.subscribe(O(t,l,function(){m=!0,b()})),function(){}}function V(n,t,e){return e===void 0&&(e=1/0),v(t)?V(function(r,s){return R(function(i,o){return t(r,i,s,o)})(L(n(r,s)))},e):(typeof t=="number"&&(e=t),M(function(r,s){return Xt(r,s,n,e)}))}function zt(n,t,e){n===void 0&&(n=0),e===void 0&&(e=bt);var r=-1;return t!=null&&(Se(t)?e=t:r=t),new E(function(s){var i=Rt(n)?+n-e.now():n;i<0&&(i=0);var o=0;return e.schedule(function(){s.closed||(s.next(o++),0<=r?this.schedule(void 0,r):s.complete())},i)})}function Jt(n,t){return v(t)?V(n,t,1):V(n,1)}function Qt(n){return n<=0?function(){return St}:M(function(t,e){var r=0;t.subscribe(O(e,function(s){++r<=n&&(e.next(s),n<=r&&e.complete())}))})}function Zt(n){return R(function(){return n})}function en(n,t){return V(function(e,r){return L(n(e,r)).pipe(Qt(1),Zt(e))})}function tn(n,t){t===void 0&&(t=be);var e=zt(n,t);return en(function(){return e})}function ne(n,t){return t===void 0&&(t=q),n=n??nn,M(function(e,r){var s,i=!0;e.subscribe(O(r,function(o){var a=t(o);(i||!n(s,a))&&(i=!1,s=a,r.next(o))}))})}function nn(n,t){return n===t}function rn(n){return M(function(t,e){L(n).subscribe(O(e,function(){return e.complete()},z)),!e.closed&&t.subscribe(e)})}async function sn(n,t){const e=n.getReader();let r;for(;!(r=await e.read()).done;)t(r.value)}function on(n){let t,e,r,s=!1;return function(o){t===void 0?(t=o,e=0,r=-1):t=cn(t,o);const a=t.length;let u=0;for(;e<a;){s&&(t[e]===10&&(u=++e),s=!1);let c=-1;for(;e<a&&c===-1;++e)switch(t[e]){case 58:r===-1&&(r=e-u);break;case 13:s=!0;case 10:c=e;break}if(c===-1)break;n(t.subarray(u,c),r),u=e,r=-1}u===a?t=void 0:u!==0&&(t=t.subarray(u),e-=u)}}function an(n,t,e){let r=$e();const s=new TextDecoder;return function(o,a){if(o.length===0)e?.(r),r=$e();else if(a>0){const u=s.decode(o.subarray(0,a)),c=a+(o[a+1]===32?2:1),h=s.decode(o.subarray(c));switch(u){case"data":r.data=r.data?r.data+`
4
+ `+h:h;break;case"event":r.event=h;break;case"id":n(r.id=h);break;case"retry":const m=parseInt(h,10);isNaN(m)||t(r.retry=m);break}}}}function cn(n,t){const e=new Uint8Array(n.length+t.length);return e.set(n),e.set(t,n.length),e}function $e(){return{data:"",event:"",id:"",retry:void 0}}var un=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(n);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(n,r[s])&&(e[r[s]]=n[r[s]]);return e};const re="text/event-stream",ln=1e3,je="last-event-id";function dn(n,t){var{signal:e,headers:r,onopen:s,onmessage:i,onclose:o,onerror:a,openWhenHidden:u,fetch:c}=t,h=un(t,["signal","headers","onopen","onmessage","onclose","onerror","openWhenHidden","fetch"]);return new Promise((m,b)=>{const l=Object.assign({},r);l.accept||(l.accept=re);let f;function g(){f.abort(),document.hidden||ie()}u||document.addEventListener("visibilitychange",g);let k=ln,T=0;function P(){document.removeEventListener("visibilitychange",g),window.clearTimeout(T),f.abort()}e?.addEventListener("abort",()=>{P(),m()});const In=c??window.fetch,wn=s??hn;async function ie(){var oe;f=new AbortController;try{const Y=await In(n,Object.assign(Object.assign({},h),{headers:l,signal:f.signal}));await wn(Y),await sn(Y.body,on(an(_=>{_?l[je]=_:delete l[je]},_=>{k=_},i))),o?.(),P(),m()}catch(Y){if(!f.signal.aborted)try{const _=(oe=a?.(Y))!==null&&oe!==void 0?oe:k;window.clearTimeout(T),T=window.setTimeout(ie,_)}catch(_){P(),b(_)}}}ie()})}function hn(n){const t=n.headers.get("content-type");if(!t?.startsWith(re))throw new Error(`Expected content-type to be ${re}, Actual: ${t}`)}function De(n){const{endpoint:t,apiKey:e,payload:r,debugMode:s,customHeaders:i}=n,o=n.method??"POST";return new E(a=>{const u=new AbortController;let c,h=!1;const m={"Content-Type":"application/json",...i};e&&(m["X-API-KEY"]=e);const b=new URL(t);return s&&b.searchParams.set("is_debug","true"),dn(b.toString(),{method:o,headers:m,body:o==="POST"&&r?JSON.stringify(r):void 0,signal:u.signal,openWhenHidden:!0,onopen:async l=>{if(l.ok)c=l.headers.get("X-Trace-Id")??void 0;else{let f;try{f=await l.json()}catch{try{f=await l.text()}catch{f=null}}a.error(new C(l.status,l.statusText,f)),u.abort()}},onmessage:l=>{l.id&&(h=!0);const f=JSON.parse(l.data);c?f.traceId=c:f.requestId&&(f.traceId=f.requestId,c||(c=f.requestId)),a.next(f)},onclose:()=>{a.complete()},onerror:l=>{if(!h)throw a.error(l),u.abort(),l}}),()=>{u.abort()}})}class fn{listeners={};on(t,e){this.listeners=Object.assign({},this.listeners,{[t]:(this.listeners[t]??[]).concat(e)})}off(t,e){this.listeners[t]&&(this.listeners=Object.assign({},this.listeners,{[t]:(this.listeners[t]??[]).filter(r=>r!==e)}))}remove(t){delete this.listeners[t]}emit(t,...e){this.listeners[t]&&this.listeners[t].forEach(r=>r(...e))}}class pn{apiKey;endpoint;botProviderEndpoint;debugMode;destroy$=new ee;closed=!1;detached=!1;detachTimer;inFlight=0;sseEmitter=new fn;transformSsePayload;customHeaders;constructor(t){if(!t.endpoint&&!t.botProviderEndpoint)throw new Error("Either endpoint or botProviderEndpoint must be provided");if(this.apiKey=t.apiKey,this.debugMode=t.debugMode,this.transformSsePayload=t.transformSsePayload,this.botProviderEndpoint=t.botProviderEndpoint,this.customHeaders={...t.customHeaders,...t.userIdentityHint?{"X-ASGARD-USER-IDENTITY-HINT":t.userIdentityHint}:{}},!t.endpoint&&t.botProviderEndpoint){const e=t.botProviderEndpoint.replace(/\/+$/,"");this.endpoint=`${e}/message/sse`}else t.endpoint&&(this.endpoint=t.endpoint,this.debugMode&&console.warn('[AsgardServiceClient] The "endpoint" option is deprecated and will be removed in the next major version. Please use "botProviderEndpoint" instead. The SSE endpoint will be automatically derived as "${botProviderEndpoint}/message/sse".'))}on(t,e){this.sseEmitter.remove(t),this.sseEmitter.on(t,e)}handleEvent(t){switch(t.eventType){case d.INIT:this.sseEmitter.emit(d.INIT,t);break;case d.PROCESS_START:case d.PROCESS_COMPLETE:this.sseEmitter.emit(d.PROCESS,t);break;case d.MESSAGE_START:case d.MESSAGE_DELTA:case d.MESSAGE_COMPLETE:this.sseEmitter.emit(d.MESSAGE,t);break;case d.TOOL_CALL_START:case d.TOOL_CALL_COMPLETE:this.sseEmitter.emit(d.TOOL_CALL,t);break;case d.TOOL_CALL_CONSENT:this.sseEmitter.emit(d.TOOL_CALL_CONSENT,t);break;case d.DONE:this.sseEmitter.emit(d.DONE,t);break;case d.ERROR:this.sseEmitter.emit(d.ERROR,t);break}}fetchSse(t,e){e?.onSseStart?.(),this.inFlight+=1,this.runSse(De({apiKey:this.apiKey,endpoint:this.endpoint,debugMode:this.debugMode,payload:this.transformSsePayload?.(t)??t,customHeaders:this.customHeaders}),e)}rejoinSse(t,e){e?.onSseStart?.(),this.inFlight+=1;const r=new URL(this.endpoint);r.searchParams.set("custom_channel_id",t),this.runSse(De({apiKey:this.apiKey,endpoint:r.toString(),debugMode:this.debugMode,method:"GET",customHeaders:this.customHeaders}),e)}deriveChannelMetadataEndpoint(){const t=this.getBaseEndpoint();return t?`${t}/channel/metadata`:null}async channelMetadata(t){const e=this.deriveChannelMetadataEndpoint();if(!e)throw new Error("Unable to derive channel metadata endpoint. Please provide botProviderEndpoint in config.");const r=new URL(e);r.searchParams.set("custom_channel_id",t);const s={...this.customHeaders};this.apiKey&&(s["X-API-KEY"]=this.apiKey);const i=await fetch(r.toString(),{method:"GET",headers:s});if(i.status===404)return null;if(!i.ok)throw new C(i.status,i.statusText,await i.text().catch(()=>{}));const o=await i.json(),a=o.data??o;return{title:a.title??null,runState:a.runState??"IDLE",lastActivityAt:a.lastActivityAt}}runSse(t,e){t.pipe(Jt(r=>Nt(r).pipe(tn(e?.delayTime??50))),rn(this.destroy$)).subscribe({next:r=>{this.detached||(e?.onSseMessage?.(r),this.handleEvent(r))},error:r=>{this.detached||e?.onSseError?.(r),this.onRunSettled()},complete:()=>{this.detached||e?.onSseCompleted?.(),this.onRunSettled()}})}detach(t){if(!(this.detached||this.closed)){if(this.detached=!0,this.inFlight===0){this.close();return}this.detachTimer=setTimeout(()=>this.close(),t.timeoutMs)}}onRunSettled(){this.inFlight=Math.max(0,this.inFlight-1),this.detached&&this.inFlight===0&&this.close()}close(){this.closed||(this.closed=!0,this.detachTimer&&(clearTimeout(this.detachTimer),this.detachTimer=void 0),this.destroy$.next(),this.destroy$.complete())}async uploadFile(t,e){const r=this.deriveBlobEndpoint();if(!r)throw new Error("Unable to derive blob endpoint. Please provide botProviderEndpoint in config.");const s=new FormData;s.append("file",t),s.append("customChannelId",e);const i={...this.customHeaders};this.apiKey&&(i["X-API-KEY"]=this.apiKey);try{const o=await fetch(r,{method:"POST",headers:i,body:s});if(!o.ok)throw new Error(`Upload failed: ${o.status} ${o.statusText}`);const a=await o.json();return this.debugMode&&console.log("[AsgardServiceClient] File upload response:",a),a}catch(o){throw console.error("[AsgardServiceClient] File upload error:",o),o}}async downloadCwdFile(t,e){const r=this.getBaseEndpoint();if(!r)throw new Error("Unable to derive cwd download endpoint. Please provide botProviderEndpoint in config.");const s=`custom_channel_id=${encodeURIComponent(e)}&relative_path=${encodeURIComponent(t)}`,i=`${r}/cwd/download?${s}`,o={...this.customHeaders};this.apiKey&&(o["X-API-KEY"]=this.apiKey);try{const a=await fetch(i,{method:"GET",headers:o});if(!a.ok)throw new Error(`CWD download failed: ${a.status} ${a.statusText}`);const u=await a.blob(),c=t.split("/").pop()||"download";return this.debugMode&&console.log("[AsgardServiceClient] CWD download response:",{filename:c,size:u.size}),{blob:u,filename:c}}catch(a){throw console.error("[AsgardServiceClient] CWD download error:",a),a}}deriveBlobEndpoint(){const t=this.getBaseEndpoint();return t?`${t}/blob`:null}getBaseEndpoint(){let t=this.botProviderEndpoint;return!t&&this.endpoint&&(t=this.endpoint.replace("/message/sse","")),t?t.replace(/\/+$/,""):null}}const S=[];for(let n=0;n<256;++n)S.push((n+256).toString(16).slice(1));function gn(n,t=0){return(S[n[t+0]]+S[n[t+1]]+S[n[t+2]]+S[n[t+3]]+"-"+S[n[t+4]]+S[n[t+5]]+"-"+S[n[t+6]]+S[n[t+7]]+"-"+S[n[t+8]]+S[n[t+9]]+"-"+S[n[t+10]]+S[n[t+11]]+S[n[t+12]]+S[n[t+13]]+S[n[t+14]]+S[n[t+15]]).toLowerCase()}let se;const mn=new Uint8Array(16);function vn(){if(!se){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");se=crypto.getRandomValues.bind(crypto)}return se(mn)}const He={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function yn(n,t,e){n=n||{};const r=n.random??n.rng?.()??vn();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,gn(r)}function Ge(n,t,e){return He.randomUUID&&!n?He.randomUUID():yn(n)}class y{messages=null;pendingConsent=null;constructor({messages:t,pendingConsent:e=null}){this.messages=t,this.pendingConsent=e??null}pushMessage(t){const e=new Map(this.messages);return e.set(t.messageId,t),new y({messages:e,pendingConsent:this.pendingConsent})}clearPendingConsent(){return this.pendingConsent?new y({messages:this.messages,pendingConsent:null}):this}onMessage(t){switch(t.eventType){case d.MESSAGE_START:return this.onMessageStart(t);case d.MESSAGE_DELTA:return this.onMessageDelta(t);case d.MESSAGE_COMPLETE:return this.onMessageComplete(t);case d.MESSAGE_USER:return this.onMessageUser(t);case d.MESSAGE_THINKING_START:return this.onThinkingStart(t);case d.MESSAGE_THINKING_DELTA:return this.onThinkingDelta(t);case d.MESSAGE_THINKING_COMPLETE:return this.onThinkingComplete(t);case d.TOOL_CALL_START:return this.onToolCallStart(t);case d.TOOL_CALL_COMPLETE:return this.onToolCallComplete(t);case d.TOOL_CALL_CONSENT:return this.onToolCallConsent(t);case d.SUBAGENT_START:return this.onSubagentStart(t);case d.SUBAGENT_COMPLETE:return this.onSubagentComplete(t);case d.ERROR:return this.onMessageError(t);default:return this}}isTerminalBot(t){return t?.type==="bot"&&!t.isTyping}isTerminalThinking(t){return t?.type==="thinking"&&!t.isThinking}onMessageStart(t){const e=t.fact.messageStart.message;if(this.isTerminalBot(this.messages?.get(e.messageId)))return this;const r=new Map(this.messages);return r.set(e.messageId,{type:"bot",eventType:d.MESSAGE_START,isTyping:!0,typingText:"",messageId:e.messageId,message:e,time:new Date,traceId:t.traceId,raw:""}),new y({messages:r,pendingConsent:this.pendingConsent})}onMessageDelta(t){const e=t.fact.messageDelta.message,r=this.messages?.get(e.messageId);if(this.isTerminalBot(r))return this;const s=r?.type==="bot"?r:void 0,i=new Map(this.messages);return i.set(e.messageId,{type:"bot",eventType:d.MESSAGE_DELTA,isTyping:!0,typingText:`${s?.typingText??""}${e.text}`,messageId:e.messageId,message:e,time:new Date,traceId:t.traceId??s?.traceId,raw:s?.raw??""}),new y({messages:i,pendingConsent:this.pendingConsent})}onMessageComplete(t){const e=t.fact.messageComplete.message,r=new Map(this.messages),s=r.get(e.messageId);return r.set(e.messageId,{type:"bot",eventType:d.MESSAGE_COMPLETE,isTyping:!1,typingText:null,messageId:e.messageId,message:e,time:new Date,traceId:t.traceId??(s?.type==="bot"?s.traceId:void 0),raw:JSON.stringify(t)}),new y({messages:r,pendingConsent:this.pendingConsent})}onThinkingStart(t){const e=t.fact.messageThinkingStart.message;if(this.isTerminalThinking(this.messages?.get(e.messageId)))return this;const r=new Map(this.messages),s={type:"thinking",messageId:e.messageId,text:e.text,isThinking:!0,time:new Date,traceId:t.traceId};return r.set(e.messageId,s),new y({messages:r,pendingConsent:this.pendingConsent})}onThinkingDelta(t){const e=t.fact.messageThinkingDelta.message,r=this.messages?.get(e.messageId);if(this.isTerminalThinking(r))return this;const s=r?.type==="thinking"?r:void 0,i=new Map(this.messages),o={type:"thinking",messageId:e.messageId,text:`${s?.text??""}${e.text}`,isThinking:!0,time:s?.time??new Date,traceId:t.traceId??s?.traceId};return i.set(e.messageId,o),new y({messages:i,pendingConsent:this.pendingConsent})}onThinkingComplete(t){const e=t.fact.messageThinkingComplete.message,r=this.messages?.get(e.messageId),s=r?.type==="thinking"?r:void 0,i=new Map(this.messages),o={type:"thinking",messageId:e.messageId,text:e.text,isThinking:!1,time:s?.time??new Date,traceId:t.traceId??s?.traceId};return i.set(e.messageId,o),new y({messages:i,pendingConsent:this.pendingConsent})}onMessageUser(t){const e=t.fact.messageUser;if((this.messages?.get(e.messageId)??(e.customMessageId?this.messages?.get(e.customMessageId):void 0))?.type==="user")return this;const s=new Map(this.messages),i={type:"user",messageId:e.messageId,text:e.text,blobIds:e.blobIds,customMessageId:e.customMessageId,identityHint:e.identityHint,time:new Date,traceId:t.traceId};return s.set(e.messageId,i),new y({messages:s,pendingConsent:this.pendingConsent})}onMessageError(t){const e=Ge(),r=t.fact.runError.error,s=new Map(this.messages);return s.set(e,{type:"error",eventType:d.ERROR,messageId:e,error:r,time:new Date,traceId:t.traceId}),new y({messages:s,pendingConsent:this.pendingConsent})}onToolCallStart(t){const e=t.fact.toolCallStart,r=new Map(this.messages),s=`${e.processId}-${e.callSeq}`,i={type:"tool-call",eventType:d.TOOL_CALL_START,messageId:s,processId:e.processId,callSeq:e.callSeq,toolName:e.toolCall.toolName,reason:e.toolCall.reason,toolsetName:e.toolCall.toolsetName,parameter:e.toolCall.parameter,toolUseId:e.toolUseId,parentToolUseId:e.parentToolUseId,isComplete:!1,time:new Date,traceId:t.traceId};return r.set(s,i),new y({messages:r,pendingConsent:this.pendingConsent})}onToolCallComplete(t){const e=t.fact.toolCallComplete,r=new Map(this.messages),s=`${e.processId}-${e.callSeq}`,i=r.get(s);if(i?.type==="tool-call"){const o={...i,eventType:d.TOOL_CALL_COMPLETE,result:e.toolCallResult,isError:e.isError,sidecar:e.toolUseResultSidecar,isComplete:!0,traceId:t.traceId??i.traceId};r.set(s,o)}return new y({messages:r,pendingConsent:this.pendingConsent})}onToolCallConsent(t){const e=t.fact.toolCallConsent;return new y({messages:this.messages,pendingConsent:e})}onSubagentStart(t){const e=t.fact.subagentStart,r=new Map(this.messages),s=`subagent:${e.parentToolUseId}:start`,i={type:"subagent",messageId:s,kind:"start",parentToolUseId:e.parentToolUseId,agentId:e.agentId,subagentType:e.subagentType,description:e.description,time:new Date,traceId:t.traceId};return r.set(s,i),new y({messages:r,pendingConsent:this.pendingConsent})}onSubagentComplete(t){const e=t.fact.subagentComplete,r=new Map(this.messages),s=`subagent:${e.parentToolUseId}:complete`,i={type:"subagent",messageId:s,kind:"complete",parentToolUseId:e.parentToolUseId,agentId:e.agentId,subagentType:e.subagentType,status:e.status,summary:e.summary,time:new Date,traceId:t.traceId};return r.set(s,i),new y({messages:r,pendingConsent:this.pendingConsent})}}const bn=new Set(["TaskCreate","TaskUpdate"]);function Ke(n){return n.toolsetName===""&&bn.has(n.toolName)}function Fe(n){return typeof n=="object"&&n!==null?n:void 0}function w(n){return typeof n=="string"?n:void 0}function Be(n){const t=[],e=new Map;for(const r of n){const s=r.parameter??{},i=r.sidecar??{};if(r.toolName==="TaskCreate"){const o=Fe(i.task),a=w(o?.id);if(!a)continue;e.has(a)||t.push(a),e.set(a,{id:a,subject:w(s.subject)||w(o?.subject)||"",activeForm:w(s.activeForm),description:w(s.description),status:e.get(a)?.status??"pending"})}else if(r.toolName==="TaskUpdate"){const o=Fe(i.statusChange),a=w(s.taskId)||w(i.taskId),u=w(o?.to)||w(s.status);if(!a||!u)continue;const c=e.get(a);c&&e.set(a,{...c,status:u})}}return t.map(r=>e.get(r))}function qe(n){return n.toolsetName===""&&n.toolName==="Agent"}function Ve(n){return!!n}function Ye(n){const t=[],e=new Map,r=new Map,s=i=>(e.has(i)||(t.push(i),e.set(i,{status:"running"}),r.set(i,new Map)),e.get(i));for(const i of n)switch(i.kind){case"agentStart":{const o=s(i.toolUseId);i.description&&!o.description&&(o.description=i.description);break}case"subagentStart":{const o=s(i.parentToolUseId);o.agentId=i.agentId??o.agentId,o.subagentType=i.subagentType??o.subagentType,o.description=i.description??o.description;break}case"toolStart":{s(i.parentToolUseId),r.get(i.parentToolUseId).set(i.toolUseId,{toolsetName:i.toolsetName,toolName:i.toolName,parameter:i.parameter??{},reason:i.reason,status:"running"});break}case"toolComplete":{const o=r.get(i.parentToolUseId)?.get(i.toolUseId);o&&(o.status=i.isError?"error":"completed");break}case"subagentComplete":{const o=s(i.parentToolUseId);o.status=i.status,o.summary=i.summary;break}}return t.map(i=>({parentToolUseId:i,...e.get(i),tools:Array.from(r.get(i).values())}))}function Sn(n){return typeof n=="string"?n:void 0}function We(n){const t=[];for(const e of n){if(e.type==="tool-call"&&qe(e)){t.push({kind:"agentStart",toolUseId:e.toolUseId??e.messageId,description:Sn(e.parameter.description)});continue}if(e.type==="tool-call"&&Ve(e.parentToolUseId)){const r=e.toolUseId??e.messageId;t.push({kind:"toolStart",parentToolUseId:e.parentToolUseId,toolUseId:r,toolsetName:e.toolsetName,toolName:e.toolName,parameter:e.parameter,reason:e.reason}),e.isComplete&&t.push({kind:"toolComplete",parentToolUseId:e.parentToolUseId,toolUseId:r,isError:e.isError});continue}if(e.type==="subagent"&&e.kind==="start"){t.push({kind:"subagentStart",parentToolUseId:e.parentToolUseId,agentId:e.agentId,subagentType:e.subagentType,description:e.description});continue}e.type==="subagent"&&e.kind==="complete"&&e.status&&t.push({kind:"subagentComplete",parentToolUseId:e.parentToolUseId,status:e.status,summary:e.summary})}return t}function Xe(n){const t=Array.from(n.messages?.values()??[]).filter(e=>e.type==="tool-call"&&e.isComplete&&Ke(e));return Be(t)}function ze(n){return Ye(We(Array.from(n.messages?.values()??[])))}function Je(n,t){return n===t?!0:n.length!==t.length?!1:n.every((e,r)=>{const s=t[r];return e.id===s.id&&e.status===s.status&&e.subject===s.subject&&e.activeForm===s.activeForm&&e.description===s.description})}function En(n,t){return n.length!==t.length?!1:n.every((e,r)=>{const s=t[r];return e.toolName===s.toolName&&e.toolsetName===s.toolsetName&&e.status===s.status&&e.reason===s.reason})}function Qe(n,t){return n===t?!0:n.length!==t.length?!1:n.every((e,r)=>{const s=t[r];return e.parentToolUseId===s.parentToolUseId&&e.status===s.status&&e.subagentType===s.subagentType&&e.description===s.description&&e.summary===s.summary&&En(e.tools,s.tools)})}function Ze(n){const t=new H([]),e=new H([]),r=new N;return r.add(n.pipe(R(Xe),ne(Je)).subscribe(t)),r.add(n.pipe(R(ze),ne(Qe)).subscribe(e)),{tasks$:t.asObservable(),subagents$:e.asObservable(),getTasks:()=>t.value,getSubagents:()=>e.value,teardown:()=>r.unsubscribe()}}class G{client;customChannelId;customMessageId;isConnecting$;conversation$;channelTitleSubject;derivedStores;statesObserver;statesSubscription;tasks$;subagents$;channelTitle$;currentUserMessageId;lastSentMessageId;constructor(t){if(!t.client)throw new Error("client must be required");if(!t.customChannelId)throw new Error("customChannelId must be required");this.client=t.client,this.customChannelId=t.customChannelId,this.customMessageId=t.customMessageId,this.isConnecting$=new H(!1),this.conversation$=new H(t.conversation),this.channelTitleSubject=new H(t.channelTitle??null),this.derivedStores=Ze(this.conversation$),this.tasks$=this.derivedStores.tasks$,this.subagents$=this.derivedStores.subagents$,this.channelTitle$=this.channelTitleSubject.pipe(ne()),this.statesObserver=t.statesObserver}getTasks(){return this.derivedStores.getTasks()}getSubagents(){return this.derivedStores.getSubagents()}getChannelTitle(){return this.channelTitleSubject.value}setChannelTitle(t){this.channelTitleSubject.next(t)}static create(t){const e=new G(t);return e.subscribe(),e}static async reset(t,e,r,s){const i=new G(t);try{return i.subscribe(),s?.(i),await i.resetChannel(e,r),i}catch(o){throw i.close(),o}}static async restore(t,e,r){const s=new G(t);try{return s.subscribe(),r?.(s),await s.rejoinChannel(e),s}catch(i){throw s.close(),i}}subscribe(){this.statesSubscription=Yt([this.isConnecting$,this.conversation$,this.derivedStores.tasks$,this.derivedStores.subagents$,this.channelTitle$]).pipe(R(([t,e,r,s,i])=>({isConnecting:t,conversation:e,tasks:r,subagents:s,channelTitle:i}))).subscribe(this.statesObserver)}resolvePayload(t){if(typeof t=="function")try{return t()}catch(e){throw new Error(`Failed to resolve payload function: ${e instanceof Error?e.message:String(e)}`)}return t}buildRunHandlers(t,e,r){return{onSseStart:t?.onSseStart,onSseMessage:s=>{if(t?.onSseMessage?.(s),s.eventType===d.CHANNEL_TITLE_UPDATE&&this.channelTitleSubject.next(s.fact.channelTitleUpdate.title),this.currentUserMessageId&&s.traceId){const i=new Map(this.conversation$.value.messages),o=i.get(this.currentUserMessageId);o&&o.type==="user"&&(i.set(this.currentUserMessageId,{...o,traceId:s.traceId}),this.conversation$.next(new y({messages:i}))),this.currentUserMessageId=void 0}this.conversation$.next(this.conversation$.value.onMessage(s))},onSseError:s=>{t?.onSseError?.(s),this.isConnecting$.next(!1),this.currentUserMessageId=void 0,r(s)},onSseCompleted:()=>{t?.onSseCompleted?.(),this.isConnecting$.next(!1),this.currentUserMessageId=void 0,e()}}}fetchSse(t,e){return new Promise((r,s)=>{this.isConnecting$.next(!0),this.client.fetchSse(t,this.buildRunHandlers(e,r,s))})}rejoinChannel(t){return new Promise((e,r)=>{if(!this.client.rejoinSse){e();return}this.isConnecting$.next(!0),this.client.rejoinSse(this.customChannelId,this.buildRunHandlers(t,e,r))})}resetChannel(t,e){return this.fetchSse({action:$.RESET_CHANNEL,customChannelId:this.customChannelId,customMessageId:this.customMessageId,text:t?.text||"",payload:this.resolvePayload(t?.payload)},e)}sendMessage(t,e){const r=t.text.trim(),s=t.customMessageId??Ge();return this.currentUserMessageId=s,this.lastSentMessageId=s,this.conversation$.next(this.conversation$.value.pushMessage({type:"user",messageId:s,text:r,blobIds:t.blobIds,filePreviewUrls:t.filePreviewUrls,documentNames:t.documentNames,time:new Date})),this.fetchSse({action:$.NONE,customChannelId:this.customChannelId,customMessageId:s,payload:this.resolvePayload(t?.payload),text:r,blobIds:t?.blobIds},e)}replyToolCallConsents(t,e,r){return this.conversation$.next(this.conversation$.value.clearPendingConsent()),this.fetchSse({action:$.RESPONSE_TOOL_CALL_CONSENT,customChannelId:this.customChannelId,customMessageId:this.lastSentMessageId??this.customMessageId,payload:this.resolvePayload(r),text:"",toolCallConsents:t},e)}close(){this.isConnecting$.complete(),this.conversation$.complete(),this.channelTitleSubject.complete(),this.derivedStores.teardown(),this.statesSubscription?.unsubscribe()}}p.AsgardServiceClient=pn,p.Channel=G,p.Conversation=y,p.EventType=d,p.FetchSseAction=$,p.HttpError=C,p.MessageTemplateType=ce,p.ToolCallConsentResult=ae,p.conversationToSubagentEvents=We,p.createDerivedStores=Ze,p.deriveSubagents=ze,p.deriveTasks=Xe,p.isAgentTool=qe,p.isHttpError=et,p.isSubagentChildTool=Ve,p.isTaskTool=Ke,p.reduceSubagents=Ye,p.reduceTaskEvents=Be,p.subagentsEqual=Qe,p.tasksEqual=Je,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})}));
5
5
  //# sourceMappingURL=index.js.map