@graphysdk/agents-sdk 1.3.0-beta.1776786180132 → 1.3.0-beta.1776929171854

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("tslib"),t=require("zod");class r extends Error{constructor(e,t){var r;super(e),Object.setPrototypeOf(this,new.target.prototype),this.name="GraphyApiError",this.status=null==t?void 0:t.status,this.code=null==t?void 0:t.code,this.retryable=null!==(r=null==t?void 0:t.retryable)&&void 0!==r&&r}}const i=e=>"progress"===e.type,n=e=>"complete"===e.type,o=e=>"error"===e.type;class s{constructor(e){if(this.tag="[GRAPHY]",!e.apiKey||0===e.apiKey.trim().length)throw new Error("apiKey is required and must not be empty");const t=new URL(e.baseUrl);if(!["http:","https:"].includes(t.protocol))throw new Error(`Invalid baseUrl protocol: ${t.protocol}. Only http(s) is allowed.`);this.apiKey=e.apiKey,this.baseUrl=t.origin+t.pathname.replace(/\/$/,""),this.timeout=e.timeout||6e4,this.retryConfig=e.retryConfig||{attempts:3,delay:1e3,backoff:2},this.logger=e.logger||{log:console.log,warn:console.warn,error:console.error,debug:console.debug}}static isProgressEvent(e){return i(e)}static isCompleteEvent(e){return n(e)}static isErrorEvent(e){return o(e)}stream(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.makeRequest(t,r,i);return this.parseSSE(e)})}fetch(t,s,a,c){return e.__awaiter(this,void 0,void 0,function*(){var l,g,d,h,u;const p=Date.now();this.logger.debug(`${this.tag} Fetch: ${t}`);try{const b=yield this.makeRequest(t,s,c),v=b.headers.get("content-type");if(null==v?void 0:v.includes("text/event-stream")){try{for(var m,y=!0,f=e.__asyncValues(this.parseSSE(b));!(l=(m=yield f.next()).done);y=!0){h=m.value,y=!1;const e=h;if(i(e)&&a&&a(e),n(e))return e.data;if(o(e)){const i=Date.now()-p;throw this.logger.error(`${this.tag} Server error: ${t} ${i}ms`,e.error),new r(e.error,{code:e.code,retryable:null!==(u=e.retryable)&&void 0!==u&&u})}}}catch(e){g={error:e}}finally{try{y||l||!(d=f.return)||(yield d.call(f))}finally{if(g)throw g.error}}const s=Date.now()-p;throw this.logger.error(`${this.tag} Stream incomplete: ${t} ${s}ms`),new r("Stream ended without completion")}return yield b.json()}catch(e){const i=Date.now()-p;if(this.logger.error(`${this.tag} Fetch failed: ${t} ${i}ms`,e),e instanceof r)throw e;throw e}finally{const e=Date.now()-p;this.logger.debug(`${this.tag} Fetch completed: ${t} ${e}ms`)}})}ping(){return e.__awaiter(this,void 0,void 0,function*(){const e=Date.now();try{return yield this.makeRequest("/health",void 0,void 0,this.retryConfig.attempts,"GET"),{ok:!0,latency:Date.now()-e}}catch(t){return{ok:!1,latency:Date.now()-e}}})}sleep(t){return e.__awaiter(this,void 0,void 0,function*(){return new Promise(e=>setTimeout(e,t))})}parseSSE(t){return e.__asyncGenerator(this,arguments,function*(){if(!t.body)throw new r("Response body is null");const i=t.body.getReader(),n=new TextDecoder;let o="",s="",a="";try{for(;;){const{done:t,value:r}=yield e.__await(i.read());if(t)break;o+=n.decode(r,{stream:!0});const c=o.split(/\r?\n/);o=c.pop()||"";for(const t of c)if(t.startsWith("event: "))s=t.slice(7).trim();else if(t.startsWith("data: "))a+=(a?"\n":"")+t.slice(6);else if(""===t.trim()&&a){try{const t=JSON.parse(a);let r;if("progress"===s){const e=t;r=Object.assign({type:"progress"},e)}else if("complete"===s)r={type:"complete",data:t};else if("error"===s){const e=t;r=Object.assign({type:"error"},e)}else if("preview"===s){const e=t;r=Object.assign(Object.assign({},e),{type:"preview"})}else{if("reasoning"!==s){s="",a="";continue}{const e=t;r=Object.assign(Object.assign({},e),{type:"reasoning"})}}if(yield yield e.__await(r),"complete"===s||"error"===s)return yield e.__await(void 0)}catch(e){this.logger.warn("Invalid SSE data format",a)}s="",a=""}}}finally{i.releaseLock()}})}makeRequest(t,i,n){return e.__awaiter(this,arguments,void 0,function*(e,t,i,n=1,o="POST"){if(!e.startsWith("/"))throw new r("Invalid endpoint: must start with /");const s=new URL(e,this.baseUrl);if(s.origin!==new URL(this.baseUrl).origin)throw new r("Endpoint resolved to unexpected origin");this.logger.debug(`${this.tag} Request ${n}/${this.retryConfig.attempts}: ${s}`);const a=new AbortController,c=setTimeout(()=>a.abort(),this.timeout),l=()=>a.abort();i&&i.addEventListener("abort",l);try{const c=yield fetch(s,Object.assign({method:o,headers:{"Content-Type":"application/json",Accept:"application/json, text/event-stream","Cache-Control":"no-cache",Authorization:`Bearer ${this.apiKey}`,"User-Agent":"Graphy-SDK/1.0"},signal:a.signal},"POST"===o&&{body:JSON.stringify(t)}));if(!c.ok){const s=c.status>=500||429===c.status;let a,l=`HTTP ${c.status}`;try{const e=yield c.json();if("object"==typeof e&&null!==e){const t=e;"string"==typeof t.message?l=t.message:"string"==typeof t.error&&(l=t.error),"string"==typeof t.code&&(a=t.code)}}catch(e){}const g=new r(l,{status:c.status,code:a,retryable:s});if(s&&n<this.retryConfig.attempts&&!(null==i?void 0:i.aborted)){const r=this.retryConfig.delay*Math.pow(this.retryConfig.backoff,n-1);return this.logger.warn(`${this.tag} Retrying ${e} in ${r}ms (attempt ${n+1})`),yield this.sleep(r),this.makeRequest(e,t,i,n+1,o)}throw this.logger.error(`${this.tag} Request failed: ${e} (${c.status}) - ${l}`),g}return this.logger.debug(`${this.tag} Connected: ${e}`),c}catch(s){if(s instanceof r)throw s;if(s instanceof Error&&"AbortError"===s.name)throw this.logger.debug(`${this.tag} Aborted: ${e}`),s;if(n<this.retryConfig.attempts&&!(null==i?void 0:i.aborted)){const r=this.retryConfig.delay*Math.pow(this.retryConfig.backoff,n-1);return this.logger.warn(`${this.tag} Network error, retrying ${e} in ${r}ms`),yield this.sleep(r),this.makeRequest(e,t,i,n+1,o)}throw this.logger.error(`${this.tag} Network error: ${e}`,s),new r("Network error",{retryable:!0})}finally{clearTimeout(c),i&&i.removeEventListener("abort",l)}})}}const a=t.z.enum(["EN_GB","EN_US"]),c=t.z.custom(e=>null!=e&&"object"==typeof e),l=t.z.enum(["none","low","medium","high"]),g=t.z.object({maxWallClockMs:t.z.number().positive().optional(),maxTotalTokens:t.z.number().int().positive().optional(),maxCostUsd:t.z.number().positive().optional()}),d=t.z.object({callId:t.z.string().max(256),locale:a.optional(),storytellingEffort:l.optional().default("low"),budget:g.optional()}),h=t.z.object({config:c,userPrompt:t.z.string().max(1e4).optional().default(""),metadata:d.optional()}),u=h.extend({maxSuggestionCount:t.z.number().int().min(1).max(4).optional()}),p=t.z.enum(["line","bar","groupedBar","stackedBar","100StackedBar","column","groupedColumn","stackedColumn","100StackedColumn","combo","pie","donut","funnel","heatmap","scatter","bubble","waterfall","table"]),m=t.z.object({dataPrepPrompt:t.z.string(),chartType:p,summary:t.z.string()}),y=t.z.object({response:t.z.object({message:t.z.string()}),config:c}),f=t.z.object({suggestions:t.z.array(m)}),b=t.z.enum(["comparison","relationship","distribution","composition"]),v=t.z.object({finding:t.z.string().describe("Plain-English summary of the finding (no stats jargon)."),confidence:t.z.number().min(0).max(1).describe("Statistical strength of the finding (0..1). Independent of topicality."),relevance:t.z.number().min(0).max(1).describe("Topical fit with the user prompt and chart narrative (0..1). Independent of statistical strength."),topic:t.z.string().min(1).describe("Kebab-case label grouping this finding with related ones; consumers can render findings as threads."),chartHint:t.z.string().min(1).max(240).describe('Natural-language data-prep recipe for a downstream mutate agent: filter → group → aggregate → sort, naming real dataset columns. No chart type or "render as" clause — that is set via chartFamily.'),chartFamily:b.describe("Abela family (comparison | relationship | distribution | composition). Downstream chart-generator picks the concrete chart type from this family + the data shape."),evidenceSummary:t.z.string().max(300).describe("Rigorous statistical back-up with exact numbers.")}),w=t.z.object({topic:t.z.string().min(1).describe("Kebab-case story headline shared by all child findings."),score:t.z.number().min(0).max(1).describe("Max quadrant score (relevance × confidence) across child findings."),count:t.z.number().int().min(1).describe("Number of findings in this story."),findings:t.z.array(v).describe("Child findings, sorted by quadrant score desc.")}),z=t.z.object({response:t.z.object({message:t.z.string(),steps:t.z.array(t.z.string())}),stories:t.z.array(w)}),x=t.z.object({response:t.z.object({message:t.z.string(),steps:t.z.array(t.z.string())}),config:c}),_=t.z.object({response:t.z.object({message:t.z.string(),steps:t.z.array(t.z.string())}),config:c}),S=t.z.enum(["high","medium","low"]),$=t.z.object({confidence:S,needsUserInput:t.z.boolean(),warnings:t.z.array(t.z.string()),cellConfidence:t.z.array(t.z.object({rowIndex:t.z.number().int().nonnegative(),columnKey:t.z.string(),confidence:S,quote:t.z.string().optional()})).optional()}),E=t.z.object({score:t.z.number().min(0).max(1),issues:t.z.array(t.z.string()),sufficient:t.z.boolean(),summary:t.z.string()}),j=5e5,C=t.z.object({sourceText:t.z.string().min(1).max(j),metadata:d.optional()}),O=t.z.object({response:t.z.object({message:t.z.string()}),config:c,extractMeta:$.nullable(),lastAccuracyEvaluation:E.optional()}),R=t.z.object({config:c,response:t.z.object({message:t.z.string(),steps:t.z.array(t.z.string())})}),k="/api/v0";exports.AiChartTypeEnum=p,exports.ChartFamilySchema=b,exports.ExploreFindingSchema=v,exports.ExploreStorySchema=w,exports.ExtractAccuracyEvaluationSchema=E,exports.ExtractConfidenceSchema=S,exports.ExtractFromProseParamsSchema=C,exports.ExtractFromProseResponseSchema=O,exports.ExtractMetaSchema=$,exports.GenerateAnnotationsResponseSchema=x,exports.GenerateExplorationResponseSchema=z,exports.GenerateGraphResponseSchema=R,exports.GenerateMutationResponseSchema=_,exports.GenerateNarrativeResponseSchema=y,exports.GenerateSuggestionsParamsSchema=u,exports.GenerateSuggestionsResponseSchema=f,exports.GraphGenerationRequestSchema=h,exports.GraphyAiSdk=class{constructor(e){this.client=new s(e)}generateGraph(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const{storytellingOptions:n}=t,o=e.__rest(t,["storytellingOptions"]),s=yield this.client.fetch(`${k}/generate`,o,r,i),a=R.parse(s);return this.stripStorytelling(a,n)})}generateGraphStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){const{storytellingOptions:i}=t,n=e.__rest(t,["storytellingOptions"]),o=yield this.client.stream(`${k}/generate`,n,r);return this.wrapStreamWithStorytellingStripping(o,i)})}generateNarrative(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.client.fetch(`${k}/narrate`,t,r,i);return y.parse(e)})}generateNarrativeStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){return this.client.stream(`${k}/narrate`,t,r)})}generateSuggestions(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.client.fetch(`${k}/suggestions`,t,r,i);return f.parse(e)})}generateSuggestionsStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){return this.client.stream(`${k}/suggestions`,t,r)})}generateExploration(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.client.fetch(`${k}/explore`,t,r,i);return z.parse(e)})}generateExplorationStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){return this.client.stream(`${k}/explore`,t,r)})}generateAnnotations(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.client.fetch(`${k}/annotate`,t,r,i);return x.parse(e)})}generateAnnotationsStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){return this.client.stream(`${k}/annotate`,t,r)})}generateMutation(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.client.fetch(`${k}/mutate`,t,r,i);return _.parse(e)})}generateMutationStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){return this.client.stream(`${k}/mutate`,t,r)})}extractFromProse(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.client.fetch(`${k}/extract`,t,r,i);return O.parse(e)})}extractFromProseStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){return this.client.stream(`${k}/extract`,t,r)})}stripStorytelling(e,t){return t&&e.config.content?Object.assign(Object.assign({},e),{config:Object.assign(Object.assign({},e.config),{content:Object.assign(Object.assign(Object.assign(Object.assign({},e.config.content),t.excludeTitle&&{title:void 0}),t.excludeSubtitle&&{subtitle:void 0}),t.excludeCaption&&{caption:void 0})})}):e}wrapStreamWithStorytellingStripping(t,r){return e.__asyncGenerator(this,arguments,function*(){var i,o,s,a;try{for(var c,l=!0,g=e.__asyncValues(t);!(i=(c=yield e.__await(g.next())).done);l=!0){a=c.value,l=!1;const t=a;if(n(t)){const i=this.stripStorytelling(t.data,r);yield yield e.__await(Object.assign(Object.assign({},t),{data:i}))}else yield yield e.__await(t)}}catch(e){o={error:e}}finally{try{l||i||!(s=g.return)||(yield e.__await(s.call(g)))}finally{if(o)throw o.error}}})}},exports.GraphyApiError=r,exports.InvocationBudgetSchema=g,exports.MAX_SOURCE_TEXT_LENGTH=j,exports.MAX_USER_PROMPT_LENGTH=1e4,exports.MetadataSchema=d,exports.StorytellingEffortSchema=l,exports.SuggestionSchema=m,exports.isCompleteEvent=n,exports.isErrorEvent=o,exports.isGraphyApiError=e=>e instanceof r,exports.isPreviewEvent=e=>"preview"===e.type,exports.isProgressEvent=i,exports.isReasoningEvent=e=>"reasoning"===e.type;
1
+ "use strict";var e=require("tslib"),t=require("zod");class r extends Error{constructor(e,t){var r;super(e),Object.setPrototypeOf(this,new.target.prototype),this.name="GraphyApiError",this.status=null==t?void 0:t.status,this.code=null==t?void 0:t.code,this.retryable=null!==(r=null==t?void 0:t.retryable)&&void 0!==r&&r}}const i=e=>"progress"===e.type,n=e=>"complete"===e.type,o=e=>"error"===e.type;class s{constructor(e){if(this.tag="[GRAPHY]",!e.apiKey||0===e.apiKey.trim().length)throw new Error("apiKey is required and must not be empty");const t=new URL(e.baseUrl);if(!["http:","https:"].includes(t.protocol))throw new Error(`Invalid baseUrl protocol: ${t.protocol}. Only http(s) is allowed.`);this.apiKey=e.apiKey,this.baseUrl=t.origin+t.pathname.replace(/\/$/,""),this.timeout=e.timeout||6e4,this.retryConfig=e.retryConfig||{attempts:3,delay:1e3,backoff:2},this.logger=e.logger||{log:console.log,warn:console.warn,error:console.error,debug:console.debug}}static isProgressEvent(e){return i(e)}static isCompleteEvent(e){return n(e)}static isErrorEvent(e){return o(e)}stream(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.makeRequest(t,r,i);return this.parseSSE(e)})}fetch(t,s,a,c){return e.__awaiter(this,void 0,void 0,function*(){var l,g,h,p,u;const d=Date.now();this.logger.debug(`${this.tag} Fetch: ${t}`);try{const b=yield this.makeRequest(t,s,c),v=b.headers.get("content-type");if(null==v?void 0:v.includes("text/event-stream")){try{for(var m,f=!0,y=e.__asyncValues(this.parseSSE(b));!(l=(m=yield y.next()).done);f=!0){p=m.value,f=!1;const e=p;if(i(e)&&a&&a(e),n(e))return e.data;if(o(e)){const i=Date.now()-d;throw this.logger.error(`${this.tag} Server error: ${t} ${i}ms`,e.error),new r(e.error,{code:e.code,retryable:null!==(u=e.retryable)&&void 0!==u&&u})}}}catch(e){g={error:e}}finally{try{f||l||!(h=y.return)||(yield h.call(y))}finally{if(g)throw g.error}}const s=Date.now()-d;throw this.logger.error(`${this.tag} Stream incomplete: ${t} ${s}ms`),new r("Stream ended without completion")}return yield b.json()}catch(e){const i=Date.now()-d;if(this.logger.error(`${this.tag} Fetch failed: ${t} ${i}ms`,e),e instanceof r)throw e;throw e}finally{const e=Date.now()-d;this.logger.debug(`${this.tag} Fetch completed: ${t} ${e}ms`)}})}ping(){return e.__awaiter(this,void 0,void 0,function*(){const e=Date.now();try{return yield this.makeRequest("/health",void 0,void 0,this.retryConfig.attempts,"GET"),{ok:!0,latency:Date.now()-e}}catch(t){return{ok:!1,latency:Date.now()-e}}})}sleep(t){return e.__awaiter(this,void 0,void 0,function*(){return new Promise(e=>setTimeout(e,t))})}parseSSE(t){return e.__asyncGenerator(this,arguments,function*(){if(!t.body)throw new r("Response body is null");const i=t.body.getReader(),n=new TextDecoder;let o="",s="",a="";try{for(;;){const{done:t,value:r}=yield e.__await(i.read());if(t)break;o+=n.decode(r,{stream:!0});const c=o.split(/\r?\n/);o=c.pop()||"";for(const t of c)if(t.startsWith("event: "))s=t.slice(7).trim();else if(t.startsWith("data: "))a+=(a?"\n":"")+t.slice(6);else if(""===t.trim()&&a){try{const t=JSON.parse(a);let r;if("progress"===s){const e=t;r=Object.assign({type:"progress"},e)}else if("complete"===s)r={type:"complete",data:t};else if("error"===s){const e=t;r=Object.assign({type:"error"},e)}else if("preview"===s){const e=t;r=Object.assign(Object.assign({},e),{type:"preview"})}else{if("reasoning"!==s){s="",a="";continue}{const e=t;r=Object.assign(Object.assign({},e),{type:"reasoning"})}}if(yield yield e.__await(r),"complete"===s||"error"===s)return yield e.__await(void 0)}catch(e){this.logger.warn("Invalid SSE data format",a)}s="",a=""}}}finally{i.releaseLock()}})}makeRequest(t,i,n){return e.__awaiter(this,arguments,void 0,function*(e,t,i,n=1,o="POST"){if(!e.startsWith("/"))throw new r("Invalid endpoint: must start with /");const s=new URL(e,this.baseUrl);if(s.origin!==new URL(this.baseUrl).origin)throw new r("Endpoint resolved to unexpected origin");this.logger.debug(`${this.tag} Request ${n}/${this.retryConfig.attempts}: ${s}`);const a=new AbortController,c=setTimeout(()=>a.abort(),this.timeout),l=()=>a.abort();i&&i.addEventListener("abort",l);try{const c=yield fetch(s,Object.assign({method:o,headers:{"Content-Type":"application/json",Accept:"application/json, text/event-stream","Cache-Control":"no-cache",Authorization:`Bearer ${this.apiKey}`,"User-Agent":"Graphy-SDK/1.0"},signal:a.signal},"POST"===o&&{body:JSON.stringify(t)}));if(!c.ok){const s=c.status>=500||429===c.status;let a,l=`HTTP ${c.status}`;try{const e=yield c.json();if("object"==typeof e&&null!==e){const t=e;"string"==typeof t.message?l=t.message:"string"==typeof t.error&&(l=t.error),"string"==typeof t.code&&(a=t.code)}}catch(e){}const g=new r(l,{status:c.status,code:a,retryable:s});if(s&&n<this.retryConfig.attempts&&!(null==i?void 0:i.aborted)){const r=this.retryConfig.delay*Math.pow(this.retryConfig.backoff,n-1);return this.logger.warn(`${this.tag} Retrying ${e} in ${r}ms (attempt ${n+1})`),yield this.sleep(r),this.makeRequest(e,t,i,n+1,o)}throw this.logger.error(`${this.tag} Request failed: ${e} (${c.status}) - ${l}`),g}return this.logger.debug(`${this.tag} Connected: ${e}`),c}catch(s){if(s instanceof r)throw s;if(s instanceof Error&&"AbortError"===s.name)throw this.logger.debug(`${this.tag} Aborted: ${e}`),s;if(n<this.retryConfig.attempts&&!(null==i?void 0:i.aborted)){const r=this.retryConfig.delay*Math.pow(this.retryConfig.backoff,n-1);return this.logger.warn(`${this.tag} Network error, retrying ${e} in ${r}ms`),yield this.sleep(r),this.makeRequest(e,t,i,n+1,o)}throw this.logger.error(`${this.tag} Network error: ${e}`,s),new r("Network error",{retryable:!0})}finally{clearTimeout(c),i&&i.removeEventListener("abort",l)}})}}const a=t.z.enum(["EN_GB","EN_US"]),c=t.z.custom(e=>null!=e&&"object"==typeof e),l=t.z.enum(["low","medium","high"]),g=t.z.enum(["none","low","medium","high"]),h=t.z.enum(["agentic","fast"]),p=t.z.object({maxWallClockMs:t.z.number().positive().optional(),maxTotalTokens:t.z.number().int().positive().optional(),maxCostUsd:t.z.number().positive().optional()}),u=t.z.object({callId:t.z.string().max(256),locale:a.optional(),effort:l.optional(),storytellingEffort:g.optional().default("low"),budget:p.optional(),executionMode:h.optional()}),d=t.z.object({config:c,userPrompt:t.z.string().max(1e4).optional().default(""),metadata:u.optional()}),m=d.extend({maxSuggestionCount:t.z.number().int().min(1).max(4).optional()}),f=t.z.enum(["line","bar","groupedBar","stackedBar","100StackedBar","column","groupedColumn","stackedColumn","100StackedColumn","combo","pie","donut","funnel","heatmap","scatter","bubble","waterfall","table"]),y=t.z.object({dataPrepPrompt:t.z.string(),chartType:f,summary:t.z.string()}),b=t.z.object({response:t.z.object({message:t.z.string()}),config:c}),v=t.z.object({suggestions:t.z.array(y)}),w=t.z.enum(["comparison","relationship","distribution","composition"]),x=t.z.object({finding:t.z.string().describe("Plain-English summary of the finding (no stats jargon)."),confidence:t.z.number().min(0).max(1).describe("Statistical strength of the finding (0..1). Independent of topicality."),relevance:t.z.number().min(0).max(1).describe("Topical fit with the user prompt and chart narrative (0..1). Independent of statistical strength."),topic:t.z.string().min(1).describe("Kebab-case label grouping this finding with related ones; consumers can render findings as threads."),chartHint:t.z.string().min(1).max(240).describe('Natural-language data-prep recipe for a downstream mutate agent: filter → group → aggregate → sort, naming real dataset columns. No chart type or "render as" clause — that is set via chartFamily.'),chartFamily:w.describe("Abela family (comparison | relationship | distribution | composition). Downstream chart-generator picks the concrete chart type from this family + the data shape."),evidenceSummary:t.z.string().max(300).describe("Rigorous statistical back-up with exact numbers.")}),z=t.z.object({topic:t.z.string().min(1).describe("Kebab-case story headline shared by all child findings."),score:t.z.number().min(0).max(1).describe("Max quadrant score (relevance × confidence) across child findings."),count:t.z.number().int().min(1).describe("Number of findings in this story."),findings:t.z.array(x).describe("Child findings, sorted by quadrant score desc.")}),S=t.z.object({response:t.z.object({message:t.z.string(),steps:t.z.array(t.z.string())}),stories:t.z.array(z)}),_=t.z.object({response:t.z.object({message:t.z.string(),steps:t.z.array(t.z.string())}),config:c}),$=t.z.object({response:t.z.object({message:t.z.string(),steps:t.z.array(t.z.string())}),config:c}),E=t.z.enum(["high","medium","low"]),j=t.z.object({confidence:E,needsUserInput:t.z.boolean(),warnings:t.z.array(t.z.string()),cellConfidence:t.z.array(t.z.object({rowIndex:t.z.number().int().nonnegative(),columnKey:t.z.string(),confidence:E,quote:t.z.string().optional()})).optional()}),C=t.z.object({score:t.z.number().min(0).max(1),issues:t.z.array(t.z.string()),sufficient:t.z.boolean(),summary:t.z.string()}),O=5e5,R=t.z.object({sourceText:t.z.string().min(1).max(O),metadata:u.optional()}),k=t.z.object({response:t.z.object({message:t.z.string()}),config:c,extractMeta:j.nullable(),lastAccuracyEvaluation:C.optional()}),G=t.z.object({config:c,response:t.z.object({message:t.z.string(),steps:t.z.array(t.z.string())})}),T=v,P="/api/v0";exports.AiChartTypeEnum=f,exports.ChartFamilySchema=w,exports.ExecutionModeSchema=h,exports.ExploreFindingSchema=x,exports.ExploreStorySchema=z,exports.ExtractAccuracyEvaluationSchema=C,exports.ExtractConfidenceSchema=E,exports.ExtractFromProseParamsSchema=R,exports.ExtractFromProseResponseSchema=k,exports.ExtractMetaSchema=j,exports.GenerateAnnotationsResponseSchema=_,exports.GenerateExplorationResponseSchema=S,exports.GenerateGraphResponseSchema=G,exports.GenerateGraphSuggestionsResponseSchema=T,exports.GenerateMutationResponseSchema=$,exports.GenerateNarrativeResponseSchema=b,exports.GenerateSuggestionsParamsSchema=m,exports.GenerateSuggestionsResponseSchema=v,exports.GraphGenerationRequestSchema=d,exports.GraphyAiSdk=class{constructor(e){this.client=new s(e)}generateGraph(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const{storytellingOptions:n}=t,o=e.__rest(t,["storytellingOptions"]),s=yield this.client.fetch(`${P}/generate`,o,r,i),a=G.parse(s);return this.stripStorytelling(a,n)})}generateGraphStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){const{storytellingOptions:i}=t,n=e.__rest(t,["storytellingOptions"]),o=yield this.client.stream(`${P}/generate`,n,r);return this.wrapStreamWithStorytellingStripping(o,i)})}generateNarrative(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.client.fetch(`${P}/narrate`,t,r,i);return b.parse(e)})}generateNarrativeStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){return this.client.stream(`${P}/narrate`,t,r)})}generateSuggestions(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.client.fetch(`${P}/suggestions`,t,r,i);return v.parse(e)})}generateSuggestionsStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){return this.client.stream(`${P}/suggestions`,t,r)})}generateExploration(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.client.fetch(`${P}/explore`,t,r,i);return S.parse(e)})}generateExplorationStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){return this.client.stream(`${P}/explore`,t,r)})}generateAnnotations(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.client.fetch(`${P}/annotate`,t,r,i);return _.parse(e)})}generateAnnotationsStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){return this.client.stream(`${P}/annotate`,t,r)})}generateMutation(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.client.fetch(`${P}/mutate`,t,r,i);return $.parse(e)})}generateMutationStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){return this.client.stream(`${P}/mutate`,t,r)})}extractFromProse(t,r,i){return e.__awaiter(this,void 0,void 0,function*(){const e=yield this.client.fetch(`${P}/extract`,t,r,i);return k.parse(e)})}extractFromProseStream(t,r){return e.__awaiter(this,void 0,void 0,function*(){return this.client.stream(`${P}/extract`,t,r)})}stripStorytelling(e,t){return t&&e.config.content?Object.assign(Object.assign({},e),{config:Object.assign(Object.assign({},e.config),{content:Object.assign(Object.assign(Object.assign(Object.assign({},e.config.content),t.excludeTitle&&{title:void 0}),t.excludeSubtitle&&{subtitle:void 0}),t.excludeCaption&&{caption:void 0})})}):e}wrapStreamWithStorytellingStripping(t,r){return e.__asyncGenerator(this,arguments,function*(){var i,o,s,a;try{for(var c,l=!0,g=e.__asyncValues(t);!(i=(c=yield e.__await(g.next())).done);l=!0){a=c.value,l=!1;const t=a;if(n(t)){const i=this.stripStorytelling(t.data,r);yield yield e.__await(Object.assign(Object.assign({},t),{data:i}))}else yield yield e.__await(t)}}catch(e){o={error:e}}finally{try{l||i||!(s=g.return)||(yield e.__await(s.call(g)))}finally{if(o)throw o.error}}})}},exports.GraphyApiError=r,exports.InvocationBudgetSchema=p,exports.InvocationEffortSchema=l,exports.MAX_SOURCE_TEXT_LENGTH=O,exports.MAX_USER_PROMPT_LENGTH=1e4,exports.MetadataSchema=u,exports.StorytellingEffortSchema=g,exports.SuggestionSchema=y,exports.isCompleteEvent=n,exports.isErrorEvent=o,exports.isGraphyApiError=e=>e instanceof r,exports.isPreviewEvent=e=>"preview"===e.type,exports.isProgressEvent=i,exports.isReasoningEvent=e=>"reasoning"===e.type;
package/dist/index.d.ts CHANGED
@@ -273,13 +273,25 @@ declare const isPreviewEvent: <T>(event: SSEEvent<T>) => event is PreviewEvent;
273
273
  */
274
274
  declare const isReasoningEvent: <T>(event: SSEEvent<T>) => event is ReasoningEvent;
275
275
 
276
+ declare const InvocationEffortSchema: z.ZodEnum<{
277
+ low: "low";
278
+ medium: "medium";
279
+ high: "high";
280
+ }>;
281
+ type InvocationEffort = z.infer<typeof InvocationEffortSchema>;
276
282
  declare const StorytellingEffortSchema: z.ZodEnum<{
277
- none: "none";
278
283
  low: "low";
279
284
  medium: "medium";
280
285
  high: "high";
286
+ none: "none";
281
287
  }>;
282
288
  type StorytellingEffort = z.infer<typeof StorytellingEffortSchema>;
289
+ /** Mirrors `ExecutionModeSchema` in `apps/agents-api/src/modules/agents/core/types/execution-mode.js`. */
290
+ declare const ExecutionModeSchema: z.ZodEnum<{
291
+ agentic: "agentic";
292
+ fast: "fast";
293
+ }>;
294
+ type ExecutionMode = z.infer<typeof ExecutionModeSchema>;
283
295
  /**
284
296
  * Optional per-request invocation budget. Mirrors `InvocationBudgetSchema` in
285
297
  * `apps/agents-api/src/modules/api/api.types.ts`. All fields are optional — the
@@ -301,17 +313,26 @@ declare const MetadataSchema: z.ZodObject<{
301
313
  EN_GB: "EN_GB";
302
314
  EN_US: "EN_US";
303
315
  }>>;
316
+ effort: z.ZodOptional<z.ZodEnum<{
317
+ low: "low";
318
+ medium: "medium";
319
+ high: "high";
320
+ }>>;
304
321
  storytellingEffort: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
305
- none: "none";
306
322
  low: "low";
307
323
  medium: "medium";
308
324
  high: "high";
325
+ none: "none";
309
326
  }>>>;
310
327
  budget: z.ZodOptional<z.ZodObject<{
311
328
  maxWallClockMs: z.ZodOptional<z.ZodNumber>;
312
329
  maxTotalTokens: z.ZodOptional<z.ZodNumber>;
313
330
  maxCostUsd: z.ZodOptional<z.ZodNumber>;
314
331
  }, z.core.$strip>>;
332
+ executionMode: z.ZodOptional<z.ZodEnum<{
333
+ agentic: "agentic";
334
+ fast: "fast";
335
+ }>>;
315
336
  }, z.core.$strip>;
316
337
  type Metadata = z.infer<typeof MetadataSchema>;
317
338
  /** Mirrors `MAX_USER_PROMPT_LENGTH` in the agents-api request schema. */
@@ -330,17 +351,26 @@ declare const GraphGenerationRequestSchema: z.ZodObject<{
330
351
  EN_GB: "EN_GB";
331
352
  EN_US: "EN_US";
332
353
  }>>;
354
+ effort: z.ZodOptional<z.ZodEnum<{
355
+ low: "low";
356
+ medium: "medium";
357
+ high: "high";
358
+ }>>;
333
359
  storytellingEffort: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
334
- none: "none";
335
360
  low: "low";
336
361
  medium: "medium";
337
362
  high: "high";
363
+ none: "none";
338
364
  }>>>;
339
365
  budget: z.ZodOptional<z.ZodObject<{
340
366
  maxWallClockMs: z.ZodOptional<z.ZodNumber>;
341
367
  maxTotalTokens: z.ZodOptional<z.ZodNumber>;
342
368
  maxCostUsd: z.ZodOptional<z.ZodNumber>;
343
369
  }, z.core.$strip>>;
370
+ executionMode: z.ZodOptional<z.ZodEnum<{
371
+ agentic: "agentic";
372
+ fast: "fast";
373
+ }>>;
344
374
  }, z.core.$strip>>;
345
375
  }, z.core.$strip>;
346
376
  type GraphGenerationRequest = z.input<typeof GraphGenerationRequestSchema>;
@@ -354,17 +384,26 @@ declare const GenerateSuggestionsParamsSchema: z.ZodObject<{
354
384
  EN_GB: "EN_GB";
355
385
  EN_US: "EN_US";
356
386
  }>>;
387
+ effort: z.ZodOptional<z.ZodEnum<{
388
+ low: "low";
389
+ medium: "medium";
390
+ high: "high";
391
+ }>>;
357
392
  storytellingEffort: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
358
- none: "none";
359
393
  low: "low";
360
394
  medium: "medium";
361
395
  high: "high";
396
+ none: "none";
362
397
  }>>>;
363
398
  budget: z.ZodOptional<z.ZodObject<{
364
399
  maxWallClockMs: z.ZodOptional<z.ZodNumber>;
365
400
  maxTotalTokens: z.ZodOptional<z.ZodNumber>;
366
401
  maxCostUsd: z.ZodOptional<z.ZodNumber>;
367
402
  }, z.core.$strip>>;
403
+ executionMode: z.ZodOptional<z.ZodEnum<{
404
+ agentic: "agentic";
405
+ fast: "fast";
406
+ }>>;
368
407
  }, z.core.$strip>>;
369
408
  maxSuggestionCount: z.ZodOptional<z.ZodNumber>;
370
409
  }, z.core.$strip>;
@@ -595,17 +634,26 @@ declare const ExtractFromProseParamsSchema: z.ZodObject<{
595
634
  EN_GB: "EN_GB";
596
635
  EN_US: "EN_US";
597
636
  }>>;
637
+ effort: z.ZodOptional<z.ZodEnum<{
638
+ low: "low";
639
+ medium: "medium";
640
+ high: "high";
641
+ }>>;
598
642
  storytellingEffort: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
599
- none: "none";
600
643
  low: "low";
601
644
  medium: "medium";
602
645
  high: "high";
646
+ none: "none";
603
647
  }>>>;
604
648
  budget: z.ZodOptional<z.ZodObject<{
605
649
  maxWallClockMs: z.ZodOptional<z.ZodNumber>;
606
650
  maxTotalTokens: z.ZodOptional<z.ZodNumber>;
607
651
  maxCostUsd: z.ZodOptional<z.ZodNumber>;
608
652
  }, z.core.$strip>>;
653
+ executionMode: z.ZodOptional<z.ZodEnum<{
654
+ agentic: "agentic";
655
+ fast: "fast";
656
+ }>>;
609
657
  }, z.core.$strip>>;
610
658
  }, z.core.$strip>;
611
659
  type ExtractFromProseParams = z.input<typeof ExtractFromProseParamsSchema>;
@@ -657,6 +705,37 @@ declare const GenerateGraphResponseSchema: z.ZodObject<{
657
705
  }, z.core.$strip>;
658
706
  }, z.core.$strip>;
659
707
  type GenerateGraphResponse = z.infer<typeof GenerateGraphResponseSchema>;
708
+ /** @deprecated Use {@link GenerateSuggestionsParams} instead. */
709
+ type GenerateGraphSuggestionsParams = GenerateSuggestionsParams;
710
+ /** @deprecated Use {@link GenerateSuggestionsResponse} instead. */
711
+ type GenerateGraphSuggestionsResponse = GenerateSuggestionsResponse;
712
+ /** @deprecated Use {@link GenerateSuggestionsResponseSchema} instead. */
713
+ declare const GenerateGraphSuggestionsResponseSchema: z.ZodObject<{
714
+ suggestions: z.ZodArray<z.ZodObject<{
715
+ dataPrepPrompt: z.ZodString;
716
+ chartType: z.ZodEnum<{
717
+ line: "line";
718
+ bar: "bar";
719
+ groupedBar: "groupedBar";
720
+ stackedBar: "stackedBar";
721
+ "100StackedBar": "100StackedBar";
722
+ column: "column";
723
+ groupedColumn: "groupedColumn";
724
+ stackedColumn: "stackedColumn";
725
+ "100StackedColumn": "100StackedColumn";
726
+ combo: "combo";
727
+ pie: "pie";
728
+ donut: "donut";
729
+ funnel: "funnel";
730
+ heatmap: "heatmap";
731
+ scatter: "scatter";
732
+ bubble: "bubble";
733
+ waterfall: "waterfall";
734
+ table: "table";
735
+ }>;
736
+ summary: z.ZodString;
737
+ }, z.core.$strip>>;
738
+ }, z.core.$strip>;
660
739
 
661
740
  /**
662
741
  * Client SDK for the Graphy AI Agents API.
@@ -967,5 +1046,5 @@ declare class GraphyAiSdk {
967
1046
  private wrapStreamWithStorytellingStripping;
968
1047
  }
969
1048
 
970
- export { AiChartTypeEnum, ChartFamilySchema, ExploreFindingSchema, ExploreStorySchema, ExtractAccuracyEvaluationSchema, ExtractConfidenceSchema, ExtractFromProseParamsSchema, ExtractFromProseResponseSchema, ExtractMetaSchema, GenerateAnnotationsResponseSchema, GenerateExplorationResponseSchema, GenerateGraphResponseSchema, GenerateMutationResponseSchema, GenerateNarrativeResponseSchema, GenerateSuggestionsParamsSchema, GenerateSuggestionsResponseSchema, GraphGenerationRequestSchema, GraphyAiSdk, GraphyApiError, InvocationBudgetSchema, MAX_SOURCE_TEXT_LENGTH, MAX_USER_PROMPT_LENGTH, MetadataSchema, StorytellingEffortSchema, SuggestionSchema, isCompleteEvent, isErrorEvent, isGraphyApiError, isPreviewEvent, isProgressEvent, isReasoningEvent };
971
- export type { AiChartType, ChartFamily, ClientConfig, CompleteEvent, ErrorEvent, ExploreFinding, ExploreStory, ExtractAccuracyEvaluation, ExtractConfidence, ExtractFromProseParams, ExtractFromProseResponse, ExtractMeta, GenerateAnnotationsParams, GenerateAnnotationsResponse, GenerateExplorationParams, GenerateExplorationResponse, GenerateGraphParams, GenerateGraphResponse, GenerateMutationParams, GenerateMutationResponse, GenerateNarrativeParams, GenerateNarrativeResponse, GenerateSuggestionsParams, GenerateSuggestionsResponse, GraphGenerationRequest, GraphyApiErrorOptions, InvocationBudget, Logger, Metadata, PreviewEvent, ProgressEvent, ProgressHandler, ReasoningEvent, RetryConfig, SSEEvent, StorytellingEffort, StorytellingOptions, Suggestion };
1049
+ export { AiChartTypeEnum, ChartFamilySchema, ExecutionModeSchema, ExploreFindingSchema, ExploreStorySchema, ExtractAccuracyEvaluationSchema, ExtractConfidenceSchema, ExtractFromProseParamsSchema, ExtractFromProseResponseSchema, ExtractMetaSchema, GenerateAnnotationsResponseSchema, GenerateExplorationResponseSchema, GenerateGraphResponseSchema, GenerateGraphSuggestionsResponseSchema, GenerateMutationResponseSchema, GenerateNarrativeResponseSchema, GenerateSuggestionsParamsSchema, GenerateSuggestionsResponseSchema, GraphGenerationRequestSchema, GraphyAiSdk, GraphyApiError, InvocationBudgetSchema, InvocationEffortSchema, MAX_SOURCE_TEXT_LENGTH, MAX_USER_PROMPT_LENGTH, MetadataSchema, StorytellingEffortSchema, SuggestionSchema, isCompleteEvent, isErrorEvent, isGraphyApiError, isPreviewEvent, isProgressEvent, isReasoningEvent };
1050
+ export type { AiChartType, ChartFamily, ClientConfig, CompleteEvent, ErrorEvent, ExecutionMode, ExploreFinding, ExploreStory, ExtractAccuracyEvaluation, ExtractConfidence, ExtractFromProseParams, ExtractFromProseResponse, ExtractMeta, GenerateAnnotationsParams, GenerateAnnotationsResponse, GenerateExplorationParams, GenerateExplorationResponse, GenerateGraphParams, GenerateGraphResponse, GenerateGraphSuggestionsParams, GenerateGraphSuggestionsResponse, GenerateMutationParams, GenerateMutationResponse, GenerateNarrativeParams, GenerateNarrativeResponse, GenerateSuggestionsParams, GenerateSuggestionsResponse, GraphGenerationRequest, GraphyApiErrorOptions, InvocationBudget, InvocationEffort, Logger, Metadata, PreviewEvent, ProgressEvent, ProgressHandler, ReasoningEvent, RetryConfig, SSEEvent, StorytellingEffort, StorytellingOptions, Suggestion };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{__awaiter as t,__asyncValues as e,__asyncGenerator as r,__await as i,__rest as n}from"tslib";import{z as o}from"zod";class s extends Error{constructor(t,e){var r;super(t),Object.setPrototypeOf(this,new.target.prototype),this.name="GraphyApiError",this.status=null==e?void 0:e.status,this.code=null==e?void 0:e.code,this.retryable=null!==(r=null==e?void 0:e.retryable)&&void 0!==r&&r}}const a=t=>t instanceof s,c=t=>"progress"===t.type,l=t=>"complete"===t.type,g=t=>"error"===t.type,d=t=>"preview"===t.type,u=t=>"reasoning"===t.type;class h{constructor(t){if(this.tag="[GRAPHY]",!t.apiKey||0===t.apiKey.trim().length)throw new Error("apiKey is required and must not be empty");const e=new URL(t.baseUrl);if(!["http:","https:"].includes(e.protocol))throw new Error(`Invalid baseUrl protocol: ${e.protocol}. Only http(s) is allowed.`);this.apiKey=t.apiKey,this.baseUrl=e.origin+e.pathname.replace(/\/$/,""),this.timeout=t.timeout||6e4,this.retryConfig=t.retryConfig||{attempts:3,delay:1e3,backoff:2},this.logger=t.logger||{log:console.log,warn:console.warn,error:console.error,debug:console.debug}}static isProgressEvent(t){return c(t)}static isCompleteEvent(t){return l(t)}static isErrorEvent(t){return g(t)}stream(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.makeRequest(e,r,i);return this.parseSSE(t)})}fetch(r,i,n,o){return t(this,void 0,void 0,function*(){var t,a,d,u,h;const p=Date.now();this.logger.debug(`${this.tag} Fetch: ${r}`);try{const b=yield this.makeRequest(r,i,o),v=b.headers.get("content-type");if(null==v?void 0:v.includes("text/event-stream")){try{for(var m,f=!0,y=e(this.parseSSE(b));!(t=(m=yield y.next()).done);f=!0){u=m.value,f=!1;const t=u;if(c(t)&&n&&n(t),l(t))return t.data;if(g(t)){const e=Date.now()-p;throw this.logger.error(`${this.tag} Server error: ${r} ${e}ms`,t.error),new s(t.error,{code:t.code,retryable:null!==(h=t.retryable)&&void 0!==h&&h})}}}catch(t){a={error:t}}finally{try{f||t||!(d=y.return)||(yield d.call(y))}finally{if(a)throw a.error}}const i=Date.now()-p;throw this.logger.error(`${this.tag} Stream incomplete: ${r} ${i}ms`),new s("Stream ended without completion")}return yield b.json()}catch(t){const e=Date.now()-p;if(this.logger.error(`${this.tag} Fetch failed: ${r} ${e}ms`,t),t instanceof s)throw t;throw t}finally{const t=Date.now()-p;this.logger.debug(`${this.tag} Fetch completed: ${r} ${t}ms`)}})}ping(){return t(this,void 0,void 0,function*(){const t=Date.now();try{return yield this.makeRequest("/health",void 0,void 0,this.retryConfig.attempts,"GET"),{ok:!0,latency:Date.now()-t}}catch(e){return{ok:!1,latency:Date.now()-t}}})}sleep(e){return t(this,void 0,void 0,function*(){return new Promise(t=>setTimeout(t,e))})}parseSSE(t){return r(this,arguments,function*(){if(!t.body)throw new s("Response body is null");const e=t.body.getReader(),r=new TextDecoder;let n="",o="",a="";try{for(;;){const{done:t,value:s}=yield i(e.read());if(t)break;n+=r.decode(s,{stream:!0});const c=n.split(/\r?\n/);n=c.pop()||"";for(const t of c)if(t.startsWith("event: "))o=t.slice(7).trim();else if(t.startsWith("data: "))a+=(a?"\n":"")+t.slice(6);else if(""===t.trim()&&a){try{const t=JSON.parse(a);let e;if("progress"===o){const r=t;e=Object.assign({type:"progress"},r)}else if("complete"===o)e={type:"complete",data:t};else if("error"===o){const r=t;e=Object.assign({type:"error"},r)}else if("preview"===o){const r=t;e=Object.assign(Object.assign({},r),{type:"preview"})}else{if("reasoning"!==o){o="",a="";continue}{const r=t;e=Object.assign(Object.assign({},r),{type:"reasoning"})}}if(yield yield i(e),"complete"===o||"error"===o)return yield i(void 0)}catch(t){this.logger.warn("Invalid SSE data format",a)}o="",a=""}}}finally{e.releaseLock()}})}makeRequest(e,r,i){return t(this,arguments,void 0,function*(t,e,r,i=1,n="POST"){if(!t.startsWith("/"))throw new s("Invalid endpoint: must start with /");const o=new URL(t,this.baseUrl);if(o.origin!==new URL(this.baseUrl).origin)throw new s("Endpoint resolved to unexpected origin");this.logger.debug(`${this.tag} Request ${i}/${this.retryConfig.attempts}: ${o}`);const a=new AbortController,c=setTimeout(()=>a.abort(),this.timeout),l=()=>a.abort();r&&r.addEventListener("abort",l);try{const c=yield fetch(o,Object.assign({method:n,headers:{"Content-Type":"application/json",Accept:"application/json, text/event-stream","Cache-Control":"no-cache",Authorization:`Bearer ${this.apiKey}`,"User-Agent":"Graphy-SDK/1.0"},signal:a.signal},"POST"===n&&{body:JSON.stringify(e)}));if(!c.ok){const o=c.status>=500||429===c.status;let a,l=`HTTP ${c.status}`;try{const t=yield c.json();if("object"==typeof t&&null!==t){const e=t;"string"==typeof e.message?l=e.message:"string"==typeof e.error&&(l=e.error),"string"==typeof e.code&&(a=e.code)}}catch(t){}const g=new s(l,{status:c.status,code:a,retryable:o});if(o&&i<this.retryConfig.attempts&&!(null==r?void 0:r.aborted)){const o=this.retryConfig.delay*Math.pow(this.retryConfig.backoff,i-1);return this.logger.warn(`${this.tag} Retrying ${t} in ${o}ms (attempt ${i+1})`),yield this.sleep(o),this.makeRequest(t,e,r,i+1,n)}throw this.logger.error(`${this.tag} Request failed: ${t} (${c.status}) - ${l}`),g}return this.logger.debug(`${this.tag} Connected: ${t}`),c}catch(o){if(o instanceof s)throw o;if(o instanceof Error&&"AbortError"===o.name)throw this.logger.debug(`${this.tag} Aborted: ${t}`),o;if(i<this.retryConfig.attempts&&!(null==r?void 0:r.aborted)){const o=this.retryConfig.delay*Math.pow(this.retryConfig.backoff,i-1);return this.logger.warn(`${this.tag} Network error, retrying ${t} in ${o}ms`),yield this.sleep(o),this.makeRequest(t,e,r,i+1,n)}throw this.logger.error(`${this.tag} Network error: ${t}`,o),new s("Network error",{retryable:!0})}finally{clearTimeout(c),r&&r.removeEventListener("abort",l)}})}}const p=o.enum(["EN_GB","EN_US"]),m=o.custom(t=>null!=t&&"object"==typeof t),f=o.enum(["none","low","medium","high"]),y=o.object({maxWallClockMs:o.number().positive().optional(),maxTotalTokens:o.number().int().positive().optional(),maxCostUsd:o.number().positive().optional()}),b=o.object({callId:o.string().max(256),locale:p.optional(),storytellingEffort:f.optional().default("low"),budget:y.optional()}),v=1e4,w=o.object({config:m,userPrompt:o.string().max(1e4).optional().default(""),metadata:b.optional()}),$=w.extend({maxSuggestionCount:o.number().int().min(1).max(4).optional()}),j=o.enum(["line","bar","groupedBar","stackedBar","100StackedBar","column","groupedColumn","stackedColumn","100StackedColumn","combo","pie","donut","funnel","heatmap","scatter","bubble","waterfall","table"]),S=o.object({dataPrepPrompt:o.string(),chartType:j,summary:o.string()}),x=o.object({response:o.object({message:o.string()}),config:m}),O=o.object({suggestions:o.array(S)}),k=o.enum(["comparison","relationship","distribution","composition"]),C=o.object({finding:o.string().describe("Plain-English summary of the finding (no stats jargon)."),confidence:o.number().min(0).max(1).describe("Statistical strength of the finding (0..1). Independent of topicality."),relevance:o.number().min(0).max(1).describe("Topical fit with the user prompt and chart narrative (0..1). Independent of statistical strength."),topic:o.string().min(1).describe("Kebab-case label grouping this finding with related ones; consumers can render findings as threads."),chartHint:o.string().min(1).max(240).describe('Natural-language data-prep recipe for a downstream mutate agent: filter → group → aggregate → sort, naming real dataset columns. No chart type or "render as" clause — that is set via chartFamily.'),chartFamily:k.describe("Abela family (comparison | relationship | distribution | composition). Downstream chart-generator picks the concrete chart type from this family + the data shape."),evidenceSummary:o.string().max(300).describe("Rigorous statistical back-up with exact numbers.")}),E=o.object({topic:o.string().min(1).describe("Kebab-case story headline shared by all child findings."),score:o.number().min(0).max(1).describe("Max quadrant score (relevance × confidence) across child findings."),count:o.number().int().min(1).describe("Number of findings in this story."),findings:o.array(C).describe("Child findings, sorted by quadrant score desc.")}),R=o.object({response:o.object({message:o.string(),steps:o.array(o.string())}),stories:o.array(E)}),T=o.object({response:o.object({message:o.string(),steps:o.array(o.string())}),config:m}),P=o.object({response:o.object({message:o.string(),steps:o.array(o.string())}),config:m}),q=o.enum(["high","medium","low"]),A=o.object({confidence:q,needsUserInput:o.boolean(),warnings:o.array(o.string()),cellConfidence:o.array(o.object({rowIndex:o.number().int().nonnegative(),columnKey:o.string(),confidence:q,quote:o.string().optional()})).optional()}),N=o.object({score:o.number().min(0).max(1),issues:o.array(o.string()),sufficient:o.boolean(),summary:o.string()}),U=5e5,D=o.object({sourceText:o.string().min(1).max(U),metadata:b.optional()}),K=o.object({response:o.object({message:o.string()}),config:m,extractMeta:A.nullable(),lastAccuracyEvaluation:N.optional()}),I=o.object({config:m,response:o.object({message:o.string(),steps:o.array(o.string())})}),F="/api/v0";class G{constructor(t){this.client=new h(t)}generateGraph(e,r,i){return t(this,void 0,void 0,function*(){const{storytellingOptions:t}=e,o=n(e,["storytellingOptions"]),s=yield this.client.fetch(`${F}/generate`,o,r,i),a=I.parse(s);return this.stripStorytelling(a,t)})}generateGraphStream(e,r){return t(this,void 0,void 0,function*(){const{storytellingOptions:t}=e,i=n(e,["storytellingOptions"]),o=yield this.client.stream(`${F}/generate`,i,r);return this.wrapStreamWithStorytellingStripping(o,t)})}generateNarrative(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.client.fetch(`${F}/narrate`,e,r,i);return x.parse(t)})}generateNarrativeStream(e,r){return t(this,void 0,void 0,function*(){return this.client.stream(`${F}/narrate`,e,r)})}generateSuggestions(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.client.fetch(`${F}/suggestions`,e,r,i);return O.parse(t)})}generateSuggestionsStream(e,r){return t(this,void 0,void 0,function*(){return this.client.stream(`${F}/suggestions`,e,r)})}generateExploration(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.client.fetch(`${F}/explore`,e,r,i);return R.parse(t)})}generateExplorationStream(e,r){return t(this,void 0,void 0,function*(){return this.client.stream(`${F}/explore`,e,r)})}generateAnnotations(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.client.fetch(`${F}/annotate`,e,r,i);return T.parse(t)})}generateAnnotationsStream(e,r){return t(this,void 0,void 0,function*(){return this.client.stream(`${F}/annotate`,e,r)})}generateMutation(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.client.fetch(`${F}/mutate`,e,r,i);return P.parse(t)})}generateMutationStream(e,r){return t(this,void 0,void 0,function*(){return this.client.stream(`${F}/mutate`,e,r)})}extractFromProse(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.client.fetch(`${F}/extract`,e,r,i);return K.parse(t)})}extractFromProseStream(e,r){return t(this,void 0,void 0,function*(){return this.client.stream(`${F}/extract`,e,r)})}stripStorytelling(t,e){return e&&t.config.content?Object.assign(Object.assign({},t),{config:Object.assign(Object.assign({},t.config),{content:Object.assign(Object.assign(Object.assign(Object.assign({},t.config.content),e.excludeTitle&&{title:void 0}),e.excludeSubtitle&&{subtitle:void 0}),e.excludeCaption&&{caption:void 0})})}):t}wrapStreamWithStorytellingStripping(t,n){return r(this,arguments,function*(){var r,o,s,a;try{for(var c,g=!0,d=e(t);!(r=(c=yield i(d.next())).done);g=!0){a=c.value,g=!1;const t=a;if(l(t)){const e=this.stripStorytelling(t.data,n);yield yield i(Object.assign(Object.assign({},t),{data:e}))}else yield yield i(t)}}catch(t){o={error:t}}finally{try{g||r||!(s=d.return)||(yield i(s.call(d)))}finally{if(o)throw o.error}}})}}export{j as AiChartTypeEnum,k as ChartFamilySchema,C as ExploreFindingSchema,E as ExploreStorySchema,N as ExtractAccuracyEvaluationSchema,q as ExtractConfidenceSchema,D as ExtractFromProseParamsSchema,K as ExtractFromProseResponseSchema,A as ExtractMetaSchema,T as GenerateAnnotationsResponseSchema,R as GenerateExplorationResponseSchema,I as GenerateGraphResponseSchema,P as GenerateMutationResponseSchema,x as GenerateNarrativeResponseSchema,$ as GenerateSuggestionsParamsSchema,O as GenerateSuggestionsResponseSchema,w as GraphGenerationRequestSchema,G as GraphyAiSdk,s as GraphyApiError,y as InvocationBudgetSchema,U as MAX_SOURCE_TEXT_LENGTH,v as MAX_USER_PROMPT_LENGTH,b as MetadataSchema,f as StorytellingEffortSchema,S as SuggestionSchema,l as isCompleteEvent,g as isErrorEvent,a as isGraphyApiError,d as isPreviewEvent,c as isProgressEvent,u as isReasoningEvent};
1
+ import{__awaiter as t,__asyncValues as e,__asyncGenerator as r,__await as i,__rest as n}from"tslib";import{z as o}from"zod";class s extends Error{constructor(t,e){var r;super(t),Object.setPrototypeOf(this,new.target.prototype),this.name="GraphyApiError",this.status=null==e?void 0:e.status,this.code=null==e?void 0:e.code,this.retryable=null!==(r=null==e?void 0:e.retryable)&&void 0!==r&&r}}const a=t=>t instanceof s,c=t=>"progress"===t.type,l=t=>"complete"===t.type,g=t=>"error"===t.type,d=t=>"preview"===t.type,u=t=>"reasoning"===t.type;class h{constructor(t){if(this.tag="[GRAPHY]",!t.apiKey||0===t.apiKey.trim().length)throw new Error("apiKey is required and must not be empty");const e=new URL(t.baseUrl);if(!["http:","https:"].includes(e.protocol))throw new Error(`Invalid baseUrl protocol: ${e.protocol}. Only http(s) is allowed.`);this.apiKey=t.apiKey,this.baseUrl=e.origin+e.pathname.replace(/\/$/,""),this.timeout=t.timeout||6e4,this.retryConfig=t.retryConfig||{attempts:3,delay:1e3,backoff:2},this.logger=t.logger||{log:console.log,warn:console.warn,error:console.error,debug:console.debug}}static isProgressEvent(t){return c(t)}static isCompleteEvent(t){return l(t)}static isErrorEvent(t){return g(t)}stream(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.makeRequest(e,r,i);return this.parseSSE(t)})}fetch(r,i,n,o){return t(this,void 0,void 0,function*(){var t,a,d,u,h;const p=Date.now();this.logger.debug(`${this.tag} Fetch: ${r}`);try{const b=yield this.makeRequest(r,i,o),v=b.headers.get("content-type");if(null==v?void 0:v.includes("text/event-stream")){try{for(var m,f=!0,y=e(this.parseSSE(b));!(t=(m=yield y.next()).done);f=!0){u=m.value,f=!1;const t=u;if(c(t)&&n&&n(t),l(t))return t.data;if(g(t)){const e=Date.now()-p;throw this.logger.error(`${this.tag} Server error: ${r} ${e}ms`,t.error),new s(t.error,{code:t.code,retryable:null!==(h=t.retryable)&&void 0!==h&&h})}}}catch(t){a={error:t}}finally{try{f||t||!(d=y.return)||(yield d.call(y))}finally{if(a)throw a.error}}const i=Date.now()-p;throw this.logger.error(`${this.tag} Stream incomplete: ${r} ${i}ms`),new s("Stream ended without completion")}return yield b.json()}catch(t){const e=Date.now()-p;if(this.logger.error(`${this.tag} Fetch failed: ${r} ${e}ms`,t),t instanceof s)throw t;throw t}finally{const t=Date.now()-p;this.logger.debug(`${this.tag} Fetch completed: ${r} ${t}ms`)}})}ping(){return t(this,void 0,void 0,function*(){const t=Date.now();try{return yield this.makeRequest("/health",void 0,void 0,this.retryConfig.attempts,"GET"),{ok:!0,latency:Date.now()-t}}catch(e){return{ok:!1,latency:Date.now()-t}}})}sleep(e){return t(this,void 0,void 0,function*(){return new Promise(t=>setTimeout(t,e))})}parseSSE(t){return r(this,arguments,function*(){if(!t.body)throw new s("Response body is null");const e=t.body.getReader(),r=new TextDecoder;let n="",o="",a="";try{for(;;){const{done:t,value:s}=yield i(e.read());if(t)break;n+=r.decode(s,{stream:!0});const c=n.split(/\r?\n/);n=c.pop()||"";for(const t of c)if(t.startsWith("event: "))o=t.slice(7).trim();else if(t.startsWith("data: "))a+=(a?"\n":"")+t.slice(6);else if(""===t.trim()&&a){try{const t=JSON.parse(a);let e;if("progress"===o){const r=t;e=Object.assign({type:"progress"},r)}else if("complete"===o)e={type:"complete",data:t};else if("error"===o){const r=t;e=Object.assign({type:"error"},r)}else if("preview"===o){const r=t;e=Object.assign(Object.assign({},r),{type:"preview"})}else{if("reasoning"!==o){o="",a="";continue}{const r=t;e=Object.assign(Object.assign({},r),{type:"reasoning"})}}if(yield yield i(e),"complete"===o||"error"===o)return yield i(void 0)}catch(t){this.logger.warn("Invalid SSE data format",a)}o="",a=""}}}finally{e.releaseLock()}})}makeRequest(e,r,i){return t(this,arguments,void 0,function*(t,e,r,i=1,n="POST"){if(!t.startsWith("/"))throw new s("Invalid endpoint: must start with /");const o=new URL(t,this.baseUrl);if(o.origin!==new URL(this.baseUrl).origin)throw new s("Endpoint resolved to unexpected origin");this.logger.debug(`${this.tag} Request ${i}/${this.retryConfig.attempts}: ${o}`);const a=new AbortController,c=setTimeout(()=>a.abort(),this.timeout),l=()=>a.abort();r&&r.addEventListener("abort",l);try{const c=yield fetch(o,Object.assign({method:n,headers:{"Content-Type":"application/json",Accept:"application/json, text/event-stream","Cache-Control":"no-cache",Authorization:`Bearer ${this.apiKey}`,"User-Agent":"Graphy-SDK/1.0"},signal:a.signal},"POST"===n&&{body:JSON.stringify(e)}));if(!c.ok){const o=c.status>=500||429===c.status;let a,l=`HTTP ${c.status}`;try{const t=yield c.json();if("object"==typeof t&&null!==t){const e=t;"string"==typeof e.message?l=e.message:"string"==typeof e.error&&(l=e.error),"string"==typeof e.code&&(a=e.code)}}catch(t){}const g=new s(l,{status:c.status,code:a,retryable:o});if(o&&i<this.retryConfig.attempts&&!(null==r?void 0:r.aborted)){const o=this.retryConfig.delay*Math.pow(this.retryConfig.backoff,i-1);return this.logger.warn(`${this.tag} Retrying ${t} in ${o}ms (attempt ${i+1})`),yield this.sleep(o),this.makeRequest(t,e,r,i+1,n)}throw this.logger.error(`${this.tag} Request failed: ${t} (${c.status}) - ${l}`),g}return this.logger.debug(`${this.tag} Connected: ${t}`),c}catch(o){if(o instanceof s)throw o;if(o instanceof Error&&"AbortError"===o.name)throw this.logger.debug(`${this.tag} Aborted: ${t}`),o;if(i<this.retryConfig.attempts&&!(null==r?void 0:r.aborted)){const o=this.retryConfig.delay*Math.pow(this.retryConfig.backoff,i-1);return this.logger.warn(`${this.tag} Network error, retrying ${t} in ${o}ms`),yield this.sleep(o),this.makeRequest(t,e,r,i+1,n)}throw this.logger.error(`${this.tag} Network error: ${t}`,o),new s("Network error",{retryable:!0})}finally{clearTimeout(c),r&&r.removeEventListener("abort",l)}})}}const p=o.enum(["EN_GB","EN_US"]),m=o.custom(t=>null!=t&&"object"==typeof t),f=o.enum(["low","medium","high"]),y=o.enum(["none","low","medium","high"]),b=o.enum(["agentic","fast"]),v=o.object({maxWallClockMs:o.number().positive().optional(),maxTotalTokens:o.number().int().positive().optional(),maxCostUsd:o.number().positive().optional()}),w=o.object({callId:o.string().max(256),locale:p.optional(),effort:f.optional(),storytellingEffort:y.optional().default("low"),budget:v.optional(),executionMode:b.optional()}),$=1e4,j=o.object({config:m,userPrompt:o.string().max(1e4).optional().default(""),metadata:w.optional()}),S=j.extend({maxSuggestionCount:o.number().int().min(1).max(4).optional()}),x=o.enum(["line","bar","groupedBar","stackedBar","100StackedBar","column","groupedColumn","stackedColumn","100StackedColumn","combo","pie","donut","funnel","heatmap","scatter","bubble","waterfall","table"]),O=o.object({dataPrepPrompt:o.string(),chartType:x,summary:o.string()}),k=o.object({response:o.object({message:o.string()}),config:m}),C=o.object({suggestions:o.array(O)}),E=o.enum(["comparison","relationship","distribution","composition"]),R=o.object({finding:o.string().describe("Plain-English summary of the finding (no stats jargon)."),confidence:o.number().min(0).max(1).describe("Statistical strength of the finding (0..1). Independent of topicality."),relevance:o.number().min(0).max(1).describe("Topical fit with the user prompt and chart narrative (0..1). Independent of statistical strength."),topic:o.string().min(1).describe("Kebab-case label grouping this finding with related ones; consumers can render findings as threads."),chartHint:o.string().min(1).max(240).describe('Natural-language data-prep recipe for a downstream mutate agent: filter → group → aggregate → sort, naming real dataset columns. No chart type or "render as" clause — that is set via chartFamily.'),chartFamily:E.describe("Abela family (comparison | relationship | distribution | composition). Downstream chart-generator picks the concrete chart type from this family + the data shape."),evidenceSummary:o.string().max(300).describe("Rigorous statistical back-up with exact numbers.")}),T=o.object({topic:o.string().min(1).describe("Kebab-case story headline shared by all child findings."),score:o.number().min(0).max(1).describe("Max quadrant score (relevance × confidence) across child findings."),count:o.number().int().min(1).describe("Number of findings in this story."),findings:o.array(R).describe("Child findings, sorted by quadrant score desc.")}),P=o.object({response:o.object({message:o.string(),steps:o.array(o.string())}),stories:o.array(T)}),q=o.object({response:o.object({message:o.string(),steps:o.array(o.string())}),config:m}),A=o.object({response:o.object({message:o.string(),steps:o.array(o.string())}),config:m}),N=o.enum(["high","medium","low"]),U=o.object({confidence:N,needsUserInput:o.boolean(),warnings:o.array(o.string()),cellConfidence:o.array(o.object({rowIndex:o.number().int().nonnegative(),columnKey:o.string(),confidence:N,quote:o.string().optional()})).optional()}),D=o.object({score:o.number().min(0).max(1),issues:o.array(o.string()),sufficient:o.boolean(),summary:o.string()}),K=5e5,I=o.object({sourceText:o.string().min(1).max(K),metadata:w.optional()}),M=o.object({response:o.object({message:o.string()}),config:m,extractMeta:U.nullable(),lastAccuracyEvaluation:D.optional()}),F=o.object({config:m,response:o.object({message:o.string(),steps:o.array(o.string())})}),G=C,L="/api/v0";class W{constructor(t){this.client=new h(t)}generateGraph(e,r,i){return t(this,void 0,void 0,function*(){const{storytellingOptions:t}=e,o=n(e,["storytellingOptions"]),s=yield this.client.fetch(`${L}/generate`,o,r,i),a=F.parse(s);return this.stripStorytelling(a,t)})}generateGraphStream(e,r){return t(this,void 0,void 0,function*(){const{storytellingOptions:t}=e,i=n(e,["storytellingOptions"]),o=yield this.client.stream(`${L}/generate`,i,r);return this.wrapStreamWithStorytellingStripping(o,t)})}generateNarrative(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.client.fetch(`${L}/narrate`,e,r,i);return k.parse(t)})}generateNarrativeStream(e,r){return t(this,void 0,void 0,function*(){return this.client.stream(`${L}/narrate`,e,r)})}generateSuggestions(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.client.fetch(`${L}/suggestions`,e,r,i);return C.parse(t)})}generateSuggestionsStream(e,r){return t(this,void 0,void 0,function*(){return this.client.stream(`${L}/suggestions`,e,r)})}generateExploration(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.client.fetch(`${L}/explore`,e,r,i);return P.parse(t)})}generateExplorationStream(e,r){return t(this,void 0,void 0,function*(){return this.client.stream(`${L}/explore`,e,r)})}generateAnnotations(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.client.fetch(`${L}/annotate`,e,r,i);return q.parse(t)})}generateAnnotationsStream(e,r){return t(this,void 0,void 0,function*(){return this.client.stream(`${L}/annotate`,e,r)})}generateMutation(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.client.fetch(`${L}/mutate`,e,r,i);return A.parse(t)})}generateMutationStream(e,r){return t(this,void 0,void 0,function*(){return this.client.stream(`${L}/mutate`,e,r)})}extractFromProse(e,r,i){return t(this,void 0,void 0,function*(){const t=yield this.client.fetch(`${L}/extract`,e,r,i);return M.parse(t)})}extractFromProseStream(e,r){return t(this,void 0,void 0,function*(){return this.client.stream(`${L}/extract`,e,r)})}stripStorytelling(t,e){return e&&t.config.content?Object.assign(Object.assign({},t),{config:Object.assign(Object.assign({},t.config),{content:Object.assign(Object.assign(Object.assign(Object.assign({},t.config.content),e.excludeTitle&&{title:void 0}),e.excludeSubtitle&&{subtitle:void 0}),e.excludeCaption&&{caption:void 0})})}):t}wrapStreamWithStorytellingStripping(t,n){return r(this,arguments,function*(){var r,o,s,a;try{for(var c,g=!0,d=e(t);!(r=(c=yield i(d.next())).done);g=!0){a=c.value,g=!1;const t=a;if(l(t)){const e=this.stripStorytelling(t.data,n);yield yield i(Object.assign(Object.assign({},t),{data:e}))}else yield yield i(t)}}catch(t){o={error:t}}finally{try{g||r||!(s=d.return)||(yield i(s.call(d)))}finally{if(o)throw o.error}}})}}export{x as AiChartTypeEnum,E as ChartFamilySchema,b as ExecutionModeSchema,R as ExploreFindingSchema,T as ExploreStorySchema,D as ExtractAccuracyEvaluationSchema,N as ExtractConfidenceSchema,I as ExtractFromProseParamsSchema,M as ExtractFromProseResponseSchema,U as ExtractMetaSchema,q as GenerateAnnotationsResponseSchema,P as GenerateExplorationResponseSchema,F as GenerateGraphResponseSchema,G as GenerateGraphSuggestionsResponseSchema,A as GenerateMutationResponseSchema,k as GenerateNarrativeResponseSchema,S as GenerateSuggestionsParamsSchema,C as GenerateSuggestionsResponseSchema,j as GraphGenerationRequestSchema,W as GraphyAiSdk,s as GraphyApiError,v as InvocationBudgetSchema,f as InvocationEffortSchema,K as MAX_SOURCE_TEXT_LENGTH,$ as MAX_USER_PROMPT_LENGTH,w as MetadataSchema,y as StorytellingEffortSchema,O as SuggestionSchema,l as isCompleteEvent,g as isErrorEvent,a as isGraphyApiError,d as isPreviewEvent,c as isProgressEvent,u as isReasoningEvent};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@graphysdk/agents-sdk",
3
3
  "author": "Graphy",
4
- "version": "1.3.0-beta.1776786180132",
4
+ "version": "1.3.0-beta.1776929171854",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "files": [
@@ -18,7 +18,7 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "zod": "^4.3.6",
21
- "@graphysdk/core": "1.3.0-beta.1776786180132"
21
+ "@graphysdk/core": "1.3.0-beta.1776929171854"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@rollup/plugin-commonjs": "^28.0.6",