55// by Humans for All
66//
77
8+ import * as mChatMagic from './simplechat.js'
9+
810
911let gToolsWorker = /** @type {Worker } */ ( /** @type {unknown } */ ( null ) ) ;
12+ /**
13+ * @type {mChatMagic.Me }
14+ */
15+ let gMe = /** @type {mChatMagic.Me } */ ( /** @type {unknown } */ ( null ) ) ;
1016
1117
1218/**
@@ -19,22 +25,13 @@ function message_toolsworker(mev) {
1925}
2026
2127
22- /**
23- * Retrieve the global Me instance
24- */
25- function get_gme ( ) {
26- return ( /** @type {Object<string, Object<string, any>> } */ ( /** @type {unknown } */ ( document ) ) ) [ 'gMe' ]
27- }
28-
29-
3028/**
3129 * For now hash the shared secret with the year.
3230 */
33- function bearer_transform ( ) {
34- let data = `${ new Date ( ) . getUTCFullYear ( ) } ${ get_gme ( ) . tools . proxyAuthInsecure } `
35- return crypto . subtle . digest ( 'sha-256' , new TextEncoder ( ) . encode ( data ) ) . then ( ab => {
36- return Array . from ( new Uint8Array ( ab ) ) . map ( b => b . toString ( 16 ) . padStart ( 2 , '0' ) ) . join ( '' )
37- } )
31+ async function bearer_transform ( ) {
32+ let data = `${ new Date ( ) . getUTCFullYear ( ) } ${ gMe . tools . proxyAuthInsecure } `
33+ const ab = await crypto . subtle . digest ( 'sha-256' , new TextEncoder ( ) . encode ( data ) ) ;
34+ return Array . from ( new Uint8Array ( ab ) ) . map ( b => b . toString ( 16 ) . padStart ( 2 , '0' ) ) . join ( '' ) ;
3835}
3936
4037/**
@@ -56,7 +53,7 @@ function bearer_transform() {
5653async function proxyserver_get_anyargs ( chatid , toolcallid , toolname , objSearchParams , path , objHeaders = { } ) {
5754 if ( gToolsWorker . onmessage != null ) {
5855 let params = new URLSearchParams ( objSearchParams )
59- let newUrl = `${ get_gme ( ) . tools . proxyUrl } /${ path } ?${ params } `
56+ let newUrl = `${ gMe . tools . proxyUrl } /${ path } ?${ params } `
6057 let headers = new Headers ( objHeaders )
6158 let btoken = await bearer_transform ( )
6259 headers . append ( 'Authorization' , `Bearer ${ btoken } ` )
@@ -84,7 +81,7 @@ async function proxyserver_get_anyargs(chatid, toolcallid, toolname, objSearchPa
8481 * @param {Object<string, Object<string, any>> } tcs
8582 */
8683async function proxyserver_tc_setup ( tag , tcPath , tcName , tcsData , tcs ) {
87- await fetch ( `${ get_gme ( ) . tools . proxyUrl } /aum?url=${ tcPath } .jambudweepe.akashaganga.multiverse.987654321123456789` ) . then ( resp => {
84+ await fetch ( `${ gMe . tools . proxyUrl } /aum?url=${ tcPath } .jambudweepe.akashaganga.multiverse.987654321123456789` ) . then ( resp => {
8885 if ( resp . statusText != 'bharatavarshe' ) {
8986 console . log ( `WARN:ToolWeb:${ tag } :Dont forget to run the bundled local.tools/simpleproxy.py to enable me` )
9087 return
@@ -253,15 +250,13 @@ let searchwebtext_meta = {
253250 * @param {any } obj
254251 */
255252function searchwebtext_run ( chatid , toolcallid , toolname , obj ) {
256- if ( gToolsWorker . onmessage != null ) {
257- /** @type {string } */
258- let searchUrl = get_gme ( ) . tools . searchUrl ;
259- searchUrl = searchUrl . replace ( "SEARCHWORDS" , encodeURIComponent ( obj . words ) ) ;
260- delete ( obj . words )
261- obj [ 'url' ] = searchUrl
262- let headers = { 'urltext-tag-drops' : JSON . stringify ( get_gme ( ) . tools . searchDrops ) }
263- return proxyserver_get_anyargs ( chatid , toolcallid , toolname , obj , 'urltext' , headers ) ;
264- }
253+ /** @type {string } */
254+ let searchUrl = gMe . tools . searchUrl ;
255+ searchUrl = searchUrl . replace ( "SEARCHWORDS" , encodeURIComponent ( obj . words ) ) ;
256+ delete ( obj . words )
257+ obj [ 'url' ] = searchUrl
258+ let headers = { 'urltext-tag-drops' : JSON . stringify ( gMe . tools . searchDrops ) }
259+ return proxyserver_get_anyargs ( chatid , toolcallid , toolname , obj , 'urltext' , headers ) ;
265260}
266261
267262
@@ -349,13 +344,15 @@ async function fetchpdftext_setup(tcs) {
349344 * Used to get hold of the web worker to use for running tool/function call related code
350345 * Also to setup tool calls, which need to cross check things at runtime
351346 * @param {Worker } toolsWorker
347+ * @param {mChatMagic.Me } me
352348 */
353- export async function init ( toolsWorker ) {
349+ export async function init ( toolsWorker , me ) {
354350 /**
355351 * @type {Object<string, Object<string, any>> } tcs
356352 */
357353 let tc_switch = { }
358354 gToolsWorker = toolsWorker
355+ gMe = me
359356 await fetchweburlraw_setup ( tc_switch )
360357 await fetchweburltext_setup ( tc_switch )
361358 await searchwebtext_setup ( tc_switch )
0 commit comments