Skip to content

Commit bd07e67

Browse files
authored
271 version 0015 updates (#284)
* 231 version 0010 updates (#239) (#240) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * version 0011 updates (#244) * 231 version 0010 updates (#239) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 20240621 @Mookse - redirect logged in members to `/members` * 20240626 @Mookse - registration -> createAccount with Q * 20240626 @Mookse - hostedMembers fix * 20240626 @Mookse - avatar document name fix * 20240626 @Mookse - instruction change * 20240626 @Mookse - page-loader * 20240626 @Mookse - special pages fix --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * Version 0.0.11 (#243) * 231 version 0010 updates (#239) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 238 version 0011 updates (#242) * 231 version 0010 updates (#239) (#240) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 20240621 @Mookse - redirect logged in members to `/members` * 20240626 @Mookse - registration -> createAccount with Q * 20240626 @Mookse - hostedMembers fix * 20240626 @Mookse - avatar document name fix * 20240626 @Mookse - instruction change * 20240626 @Mookse - page-loader * 20240626 @Mookse - special pages fix --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * 251 hotfix tutorial (#254) (#255) * 231 version 0010 updates (#239) (#240) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * version 0011 updates (#244) * 231 version 0010 updates (#239) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 20240621 @Mookse - redirect logged in members to `/members` * 20240626 @Mookse - registration -> createAccount with Q * 20240626 @Mookse - hostedMembers fix * 20240626 @Mookse - avatar document name fix * 20240626 @Mookse - instruction change * 20240626 @Mookse - page-loader * 20240626 @Mookse - special pages fix --------- * Version 0.0.11 (#243) * 231 version 0010 updates (#239) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 238 version 0011 updates (#242) * 231 version 0010 updates (#239) (#240) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 20240621 @Mookse - redirect logged in members to `/members` * 20240626 @Mookse - registration -> createAccount with Q * 20240626 @Mookse - hostedMembers fix * 20240626 @Mookse - avatar document name fix * 20240626 @Mookse - instruction change * 20240626 @Mookse - page-loader * 20240626 @Mookse - special pages fix --------- --------- * 20240705 @Mookse - hotfix for experiences --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * Version 0.0.13 PROD -> base (#259) * 251 hotfix tutorial (#254) * 231 version 0010 updates (#239) (#240) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * version 0011 updates (#244) * 231 version 0010 updates (#239) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 20240621 @Mookse - redirect logged in members to `/members` * 20240626 @Mookse - registration -> createAccount with Q * 20240626 @Mookse - hostedMembers fix * 20240626 @Mookse - avatar document name fix * 20240626 @Mookse - instruction change * 20240626 @Mookse - page-loader * 20240626 @Mookse - special pages fix --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * Version 0.0.11 (#243) * 231 version 0010 updates (#239) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 238 version 0011 updates (#242) * 231 version 0010 updates (#239) (#240) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 20240621 @Mookse - redirect logged in members to `/members` * 20240626 @Mookse - registration -> createAccount with Q * 20240626 @Mookse - hostedMembers fix * 20240626 @Mookse - avatar document name fix * 20240626 @Mookse - instruction change * 20240626 @Mookse - page-loader * 20240626 @Mookse - special pages fix --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * 20240705 @Mookse - hotfix for experiences --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * 248 version 0013 updates (#258) * 231 version 0010 updates (#239) (#240) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * version 0011 updates (#244) * 231 version 0010 updates (#239) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 20240621 @Mookse - redirect logged in members to `/members` * 20240626 @Mookse - registration -> createAccount with Q * 20240626 @Mookse - hostedMembers fix * 20240626 @Mookse - avatar document name fix * 20240626 @Mookse - instruction change * 20240626 @Mookse - page-loader * 20240626 @Mookse - special pages fix --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * Version 0.0.11 (#243) * 231 version 0010 updates (#239) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 238 version 0011 updates (#242) * 231 version 0010 updates (#239) (#240) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 20240621 @Mookse - redirect logged in members to `/members` * 20240626 @Mookse - registration -> createAccount with Q * 20240626 @Mookse - hostedMembers fix * 20240626 @Mookse - avatar document name fix * 20240626 @Mookse - instruction change * 20240626 @Mookse - page-loader * 20240626 @Mookse - special pages fix --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * 20240705 @Mookse - hotfix for experiences * 20240705 @Mookse - add server status to readme.md * 20240705 @Mookse - Add Favicon on site for easier identification in Browser #252 * 20240705 @Mookse - remove sources from message --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * Azure deploy prod (#274) * 251 hotfix tutorial (#254) * 231 version 0010 updates (#239) (#240) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * version 0011 updates (#244) * 231 version 0010 updates (#239) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 20240621 @Mookse - redirect logged in members to `/members` * 20240626 @Mookse - registration -> createAccount with Q * 20240626 @Mookse - hostedMembers fix * 20240626 @Mookse - avatar document name fix * 20240626 @Mookse - instruction change * 20240626 @Mookse - page-loader * 20240626 @Mookse - special pages fix --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * Version 0.0.11 (#243) * 231 version 0010 updates (#239) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 238 version 0011 updates (#242) * 231 version 0010 updates (#239) (#240) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 20240621 @Mookse - redirect logged in members to `/members` * 20240626 @Mookse - registration -> createAccount with Q * 20240626 @Mookse - hostedMembers fix * 20240626 @Mookse - avatar document name fix * 20240626 @Mookse - instruction change * 20240626 @Mookse - page-loader * 20240626 @Mookse - special pages fix --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * 20240705 @Mookse - hotfix for experiences --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * 248 version 0013 updates (#258) * 231 version 0010 updates (#239) (#240) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * version 0011 updates (#244) * 231 version 0010 updates (#239) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 20240621 @Mookse - redirect logged in members to `/members` * 20240626 @Mookse - registration -> createAccount with Q * 20240626 @Mookse - hostedMembers fix * 20240626 @Mookse - avatar document name fix * 20240626 @Mookse - instruction change * 20240626 @Mookse - page-loader * 20240626 @Mookse - special pages fix --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * Version 0.0.11 (#243) * 231 version 0010 updates (#239) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 238 version 0011 updates (#242) * 231 version 0010 updates (#239) (#240) * 20240604 @Mookse - teams() route - teams(teamId) returns a fully formed team from server with new bots (when instructions provided) * 20240604 @Mookse - fix bot-bar `setActiveBot` - cosmetic * 20240604 @Mookse - fix duplicate team members return * 20240604 @Mookse - botBar reordered * 20240605 @Mookse - teams must be active * 20240605 @Mookse - default mods * 20240605 @Mookse - create (non-custom) bot frontend - diary updates * 20240605 @Mookse - imagining `share memory` * 20240606 @Mookse - story updates * 20240606 @Mookse - minor cosmetics * 20240606 @Mookse - fetchShadows() - ignite shadow: member-version (wip) * 20240607 @Mookse - `shadow` initial endpoint * 20240607 @Mookse - add processingBotId to payload (so that frontend can determine if it should setActive) * 20240607 @Mookse - front-end receives message about updating from agent shadow * 20240607 @Mookse - shadow cosmetics * 20240607 @Mookse - biographer openai function definitions * 20240607 @Mookse - now _that's_ an error * 20240607 @Mookse - updateSummary() **note**: wip as thread got stopped * 20240608 @Mookse - updates summary * 20240608 @Mookse - remove dataset after shadow triggered - add `proxy` endpoint to shadow ideas * 20240608 @Mookse - `globals.getGPTJavascriptFunction`: `getSummary`, `updateSummary` - `updateBotInstructions` route - on setActiveBot checks versions and updates as needed * 20240609 @Mookse - cosmetic * 20240609 @Mookse stable wip kicking off memory is correct, need tuning of instructions or alternate scene-stepwise motion, no problem small error left in frontend for more testing but time to save * 20240618 @Mookse - cosmetic: file under "the right evocation can make all the difference" * 20240618 @Mookse - cosmetic in dribs and drabs * 20240618 @Mookse - frontend 'next' fix * 20240621 @Mookse - redirect logged in members to `/members` * 20240626 @Mookse - registration -> createAccount with Q * 20240626 @Mookse - hostedMembers fix * 20240626 @Mookse - avatar document name fix * 20240626 @Mookse - instruction change * 20240626 @Mookse - page-loader * 20240626 @Mookse - special pages fix --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * 20240705 @Mookse - hotfix for experiences * 20240705 @Mookse - add server status to readme.md * 20240705 @Mookse - Add Favicon on site for easier identification in Browser #252 * 20240705 @Mookse - remove sources from message --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * 257-version-0014-updates (#273) --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com> * 20240716 @Mookse - journaler entrySummary fix * 20240718 @Mookse - return of journaler - remove avatar dob * 20240718 @Mookse - new GPT model released gpt-4o-mini * 20240718 @Mookse - name and interests update * 20240718 @Mookse - dynamic update to interests - Unable to Login by Pressing Enter Key After Entering Passphrase #267 * 20240719 @Mookse - versioning * 20240719 @Mookse - version fix - version in metadata * 20240819 @Mookse - key update * 20240719 @Mookse - relive testing * 20240719 @Mookse - catch server-breaking error * 20240720 @Mookse - vectorstore creation at account - pipeline dusting * 20240721 @Mookse - remove metadata from mUpdateBot decision * 20240721 @Mookse - vectorstore attached on update * 20240721 @Mookse - fix alpha order * 20240721 @Mookse - display file uploads * 20240721 @Mookse - remove chatbar from challenge * 20240722 @Mookse - front-end cosmetic updates - Consistent button treatment. Increased readability and accessibility for all button states. - fix labels and text boxes; Always fit on one 100% line; Fix spacing between Avatar Name / My Date of Birth and text entry box * 20240722 @Mookse - added thread_id to Q session. * 20240722 @Mookse - Markdown processing for codeblocks needs stripping or css class definition default class name: code; codeblocks give alternate problem, creating element called code, all of it surrounded in <pre code> --------- Signed-off-by: Erik Jespersen <42016062+Mookse@users.noreply.github.com>
1 parent 9842aae commit bd07e67

14 files changed

+485
-553
lines changed

inc/js/agents/system/asset-assistant.mjs

+43-86
Original file line numberDiff line numberDiff line change
@@ -9,62 +9,63 @@ const bearerToken = MYLIFE_EMBEDDING_SERVER_BEARER_TOKEN
99
const fileSizeLimit = parseInt(MYLIFE_EMBEDDING_SERVER_FILESIZE_LIMIT) || 1048576
1010
const fileSizeLimitAdmin = parseInt(MYLIFE_EMBEDDING_SERVER_FILESIZE_LIMIT_ADMIN) || 10485760
1111
class oAIAssetAssistant {
12-
#factory
13-
#uploadedFileList=[] // uploaded versions
1412
#globals
15-
#includeMyLife=false
1613
#llm
14+
#mbr_id
1715
#response
1816
#vectorstoreId
19-
#vectorstoreFileList // openai vectorstore versions
20-
constructor(factory, globals, llm){
21-
this.#factory = factory
17+
#vectorstoreFileList=[] // openai vectorstore versions
18+
constructor(mbr_id, globals, llm){
19+
this.#mbr_id = mbr_id
2220
this.#globals = globals
2321
this.#llm = llm
24-
this.#vectorstoreId = this.#factory.vectorstoreId
2522
}
2623
/**
27-
* Initializes the asset assistant by uploading the files to the vectorstore and optionally embedding and enacting the files.
24+
* Initializes the asset assistant by uploading the files to the vectorstore.
2825
* @param {string} vectorstoreId - The vectorstore id to upload the files into, if already exists (avatar would know).
29-
* @param {boolean} includeMyLife - Whether to embed and enact the files.
3026
* @returns {Promise<oAIAssetAssistant>} - The initialized asset assistant instance.
3127
*/
32-
async init(includeMyLife=false){
28+
async init(vectorstoreId){
29+
if(!vectorstoreId?.length)
30+
throw new Error('No vectorstoreId parameter. Please initialize the asset assistant correctly.')
31+
this.#vectorstoreId = vectorstoreId
3332
await this.updateVectorstoreFileList() // sets `this.#vectorstoreFileList`
34-
this.#includeMyLife = includeMyLife
3533
return this
3634
}
35+
/**
36+
* Updates the vectorstore file list.
37+
* @returns {Promise<void>} - Resolves when the vectorstore file list is updated.
38+
*/
3739
async updateVectorstoreFileList(){
38-
if(this.#vectorstoreId?.length){
39-
const updateList = (await this.#llm.files(this.#vectorstoreId)).data
40-
.filter(file=>!(this.#vectorstoreFileList ?? []).find(vsFile=>vsFile.id===file.id))
41-
if(updateList?.length){
42-
this.#vectorstoreFileList = await Promise.all(
43-
updateList.map(async file =>await this.#llm.file(file.id))
44-
)
45-
}
40+
let updateList = (await this.#llm.files(this.#vectorstoreId)).data
41+
.filter(file=>!(this.#vectorstoreFileList).find(vsFile=>vsFile.id===file.id))
42+
if(updateList?.length){
43+
updateList = await Promise.all(
44+
updateList.map(async file =>await this.#llm.file(file.id))
45+
)
46+
this.#vectorstoreFileList.push(...updateList)
4647
}
4748
}
49+
/**
50+
* Uploads files to the vectorstore.
51+
* @param {File[]} files - Array of uploaded files.
52+
* @returns {Promise<void>} - Resolves when the files are uploaded.
53+
*/
4854
async upload(files){
49-
if(!files || !files.length)
55+
if(!Array.isArray(files) || !files.length)
5056
throw new Error('No files found in request.')
51-
const newFiles = []
52-
files.forEach(file => {
53-
const hasFile = this.#uploadedFileList.some(_file=>_file.originalName===file.originalName)
54-
if(!hasFile)
55-
newFiles.push(this.#extractFile(file))
56-
})
57-
if(newFiles.length){ // only upload new files
58-
const vectorstoreId = this.#vectorstoreId
59-
this.#uploadedFileList.push(...newFiles)
60-
const fileStreams = newFiles.map(file=>fs.createReadStream(file.filepath))
61-
const dataRecord = await this.#llm.upload(vectorstoreId, fileStreams, this.mbr_id)
62-
const { response, vectorstoreId: newVectorstoreId, success } = dataRecord
63-
this.#response = response
64-
this.#vectorstoreId = newVectorstoreId
65-
if(!vectorstoreId && newVectorstoreId)
66-
this.#factory.vectorstoreId = newVectorstoreId // saves to datacore
67-
if(success && this.#vectorstoreId?.length)
57+
const uploadFiles = []
58+
files
59+
.forEach(file=>{
60+
if(!this.#fileExists(file))
61+
uploadFiles.push(this.#extractFile(file))
62+
})
63+
if(uploadFiles.length){ // only upload new files
64+
console.log('upload::uploadFiles', uploadFiles)
65+
const fileStreams = uploadFiles.map(file=>fs.createReadStream(file.filepath))
66+
const dataRecord = await this.#llm.upload(this.#vectorstoreId, fileStreams, this.mbr_id)
67+
const { response, success } = dataRecord
68+
if(success)
6869
await this.updateVectorstoreFileList()
6970
}
7071
files.forEach(file=>fs.unlinkSync(file.filepath)) /* delete .tmp files */
@@ -74,7 +75,7 @@ class oAIAssetAssistant {
7475
return this.vectorstoreFileList
7576
}
7677
get mbr_id(){
77-
return this.#factory.mbr_id
78+
return this.#mbr_id
7879
}
7980
get response(){
8081
return this.#response
@@ -85,54 +86,7 @@ class oAIAssetAssistant {
8586
get vectorstoreId(){
8687
return this.#vectorstoreId
8788
}
88-
// setters
89-
// private functions
90-
async #embedFile(){
91-
const _metadata = {
92-
source: 'corporate', // logickify
93-
source_id: file.originalFilename,
94-
url: 'testing-0001', // may or may not use url
95-
author: 'MAHT', // convert to session member (or agent)
96-
}
97-
const _token = bearerToken
98-
const _data = new FormData()
99-
_data.append('file', fs.createReadStream(file.filepath), { contentType: file.mimetype })
100-
_data.append('metadata', JSON.stringify(_metadata))
101-
const _request = {
102-
method: 'post',
103-
maxBodyLength: Infinity,
104-
url: 'http://localhost:8000/upsert-file',
105-
headers: {
106-
'Authorization': `Bearer ${_token}`,
107-
..._data.getHeaders()
108-
},
109-
data : _data
110-
}
111-
return await axios.request(_request)
112-
.then((response) => {
113-
console.log(`#embedFile() finished: ${response.data.ids}`)
114-
return response.data
115-
})
116-
.then(response=>{
117-
if(this.#includeMyLife)
118-
return this.#enactFile(response.data)
119-
return response.data
120-
})
121-
.catch((error) => {
122-
console.error(error.message)
123-
return {'#embedFile() finished error': error.message }
124-
})
125-
}
126-
async #enactFile(file){ // vitalizes by saving to MyLife database
127-
console.log('#enactFile() begin')
128-
const _fileContent = {
129-
...file,
130-
...{ mbr_id: this.mbr_id }
131-
}
132-
const oFile = new (AgentFactory.file)(_fileContent)
133-
console.log('testing factory',oFile.inspect(true))
134-
return oFile
135-
}
89+
/* private methods */
13690
/**
13791
* Takes an uploaded file object and extracts relevant file properties.
13892
* @param {File} file - File object
@@ -157,6 +111,9 @@ class oAIAssetAssistant {
157111
throw new Error('No files found in request.')
158112
return files.map(file=>this.#extractFile(file))
159113
}
114+
#fileExists(file){
115+
return this.#vectorstoreFileList?.some(vsFile=>vsFile.id===file.id || file.originalFilename==vsFile?.filename || file.newFilename==vsFile?.filename)
116+
}
160117
/**
161118
* Validates a file object, _throws error_ if file is invalid.
162119
* @param {File} file - File object

inc/js/functions.mjs

+8-3
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,17 @@ async function challenge(ctx){
9393
* @param {Koa} ctx - Koa Context object
9494
*/
9595
async function chat(ctx){
96-
const { botId, message, role, threadId, thread_id, } = ctx.request.body
96+
const { botId, message, role, } = ctx.request.body
9797
?? {} /* body nodes sent by fe */
9898
if(!message?.length)
9999
ctx.throw(400, 'missing `message` content')
100-
const { avatar, } = ctx.state
101-
const response = await avatar.chatRequest(botId, thread_id ?? threadId, message)
100+
const { avatar, MemberSession, } = ctx.state
101+
const { isMyLife, thread_id, } = MemberSession
102+
if(isMyLife && !thread_id?.length){
103+
const conversation = await avatar.createConversation('system', undefined, botId, true) // pushes to this.#conversations in Avatar
104+
MemberSession.thread_id = conversation.thread_id
105+
}
106+
const response = await avatar.chatRequest(botId, MemberSession.thread_id, message)
102107
ctx.body = response
103108
}
104109
async function collections(ctx){

inc/js/mylife-agent-factory.mjs

+29-33
Original file line numberDiff line numberDiff line change
@@ -318,8 +318,14 @@ class BotFactory extends EventEmitter{
318318
async collections(type){
319319
return await this.dataservices.collections(type)
320320
}
321-
async createBot(assistantData={ type: mDefaultBotType }){
322-
const bot = await mCreateBot(this.#llmServices, this, assistantData)
321+
/**
322+
*
323+
* @param {object} assistantData - The assistant data.
324+
* @param {string} vectorstoreId - The vectorstore id.
325+
* @returns {object} - The created bot.
326+
*/
327+
async createBot(assistantData={ type: mDefaultBotType }, vectorstoreId){
328+
const bot = await mCreateBot(this.#llmServices, this, assistantData, vectorstoreId)
323329
if(!bot)
324330
throw new Error('bot creation failed')
325331
return bot
@@ -492,10 +498,10 @@ class BotFactory extends EventEmitter{
492498
* Adds or updates a bot data in MyLife database. Note that when creating, pre-fill id.
493499
* @public
494500
* @param {object} bot - The bot data.
495-
* @param {object} options - Function options: `{ instructions: boolean, model: boolean, tools: boolean }`. Meant to express whether or not these elements should be refreshed. Useful during updates.
496-
* @returns {object} - The Cosmos bot.
501+
* @param {object} options - Function options: `{ instructions: boolean, model: boolean, tools: boolean, vectorstoreId: string, }`.
502+
* @returns {object} - The Cosmos bot version.
497503
*/
498-
async updateBot(bot, options){
504+
async updateBot(bot, options={}){
499505
return await mUpdateBot(this, this.#llmServices, bot, options)
500506
}
501507
/* getters/setters */
@@ -928,32 +934,15 @@ class AgentFactory extends BotFactory {
928934
get urlEmbeddingServer(){
929935
return process.env.MYLIFE_EMBEDDING_SERVER_URL+':'+process.env.MYLIFE_EMBEDDING_SERVER_PORT
930936
}
931-
get vectorstoreId(){
932-
return this.core.vectorstoreId
933-
}
934-
set vectorstoreId(vectorstoreId){
935-
/* validate vectorstoreId */
936-
if(!vectorstoreId?.length)
937-
throw new Error('vectorstoreId required')
938-
this.dataservices.patch(this.core.id, { vectorstoreId, }) /* no await */
939-
this.core.vectorstoreId = vectorstoreId /* update local */
940-
}
941937
}
942938
class MyLifeFactory extends AgentFactory {
943-
#accountCreation
944939
#dataservices = mDataservices
945940
#llmServices = mLLMServices
946941
#registrationData
947942
constructor(){
948943
super(mPartitionId)
949944
} // no init() for MyLife server
950945
/* public functions */
951-
async addMember(mbr_id){
952-
if(!this.globals.isValidGuid(mbr_id))
953-
return
954-
// Me! Q! I do it! I do it! I do it!
955-
/* but because Q needs to do it, how do I get up one level to avatar? */
956-
}
957946
/**
958947
* Compares registration email against supplied email to confirm `true`. **Note**: does not care if user enters an improper email, it will only fail the encounter, as email structure _is_ confirmed upon initial data write.
959948
* @param {string} email - The supplied email to confirm registration.
@@ -1088,7 +1077,7 @@ class MyLifeFactory extends AgentFactory {
10881077
}
10891078
} catch(error){
10901079
this.#registrationData = null
1091-
console.log(chalk.blueBright(`validateRegistration(${ registrationId })::error`))
1080+
console.log(chalk.blueBright(`validateRegistration(${ registrationId })::error`), error.message)
10921081
}
10931082
return this.#registrationData
10941083
}
@@ -1210,7 +1199,7 @@ async function mCreateBotLLM(llm, assistantData){
12101199
* @param {object} bot - Bot object, must include `type` property.
12111200
* @returns {object} - Bot object
12121201
*/
1213-
async function mCreateBot(llm, factory, bot){
1202+
async function mCreateBot(llm, factory, bot, vectorstoreId){
12141203
/* initial deconstructions */
12151204
const { bot_name: botName, description: botDescription, name: botDbName, type, } = bot
12161205
const { avatarId, } = factory
@@ -1228,15 +1217,18 @@ async function mCreateBot(llm, factory, bot){
12281217
?? 'gpt-4o'
12291218
const name = botDbName
12301219
?? `bot_${ type }_${ avatarId }`
1231-
const { tools, tool_resources, } = mGetAIFunctions(type, factory.globals, factory.vectorstoreId)
1220+
const { tools, tool_resources, } = mGetAIFunctions(type, factory.globals, vectorstoreId)
12321221
const id = factory.newGuid
12331222
const assistantData = {
12341223
being: 'bot',
12351224
bot_name,
12361225
description,
12371226
id,
12381227
instructions,
1239-
metadata: { externalId: id, },
1228+
metadata: {
1229+
externalId: id,
1230+
version: version.toString(),
1231+
},
12401232
model,
12411233
name,
12421234
object_id: avatarId,
@@ -1254,7 +1246,7 @@ async function mCreateBot(llm, factory, bot){
12541246
/* create in MyLife datastore */
12551247
assistantData.bot_id = botId
12561248
const assistant = await factory.dataservices.createBot(assistantData)
1257-
console.log(chalk.green(`bot created::${ type }`), assistant)
1249+
console.log(chalk.green(`bot created::${ type }`), assistant.id, assistant.bot_id, assistant.bot_name, )
12581250
return assistant
12591251
}
12601252
/**
@@ -1805,13 +1797,13 @@ function mSanitizeSchemaValue(_value) {
18051797
* @param {AgentFactory} factory - Factory object
18061798
* @param {LLMServices} llm - LLMServices object
18071799
* @param {object} bot - Bot object, winnow via mBot in `mylife-avatar.mjs` to only updated fields
1808-
* @param {object} options - Options object: { instructions: boolean, model: boolean, tools: boolean }
1800+
* @param {object} options - Options object: { instructions: boolean, model: boolean, tools: boolean, vectorstoreId: string, }
18091801
* @returns
18101802
*/
18111803
async function mUpdateBot(factory, llm, bot, options={}){
18121804
/* constants */
18131805
const {
1814-
id, // no modifications; see below
1806+
id, // no modifications
18151807
instructions: removeInstructions,
18161808
tools: removeTools,
18171809
tool_resources: removeResources,
@@ -1822,30 +1814,34 @@ async function mUpdateBot(factory, llm, bot, options={}){
18221814
instructions: updateInstructions=false,
18231815
model: updateModel=false,
18241816
tools: updateTools=false,
1817+
vectorstoreId,
18251818
} = options
18261819
if(!factory.globals.isValidGuid(id))
18271820
throw new Error('bot `id` required in bot argument: `{ id: guid }`')
18281821
if(updateInstructions){
18291822
const { instructions, version=1.0, } = mCreateBotInstructions(factory, bot)
18301823
botData.instructions = instructions
1824+
botData.metadata = botData.metadata ?? {}
1825+
botData.metadata.version = version.toString()
18311826
botData.version = version /* omitted from llm, but appears on updateBot */
18321827
}
18331828
if(updateTools){
1834-
const { tools, tool_resources, } = mGetAIFunctions(type, factory.globals, factory.vectorstoreId)
1829+
console.log('mUpdateBot', vectorstoreId)
1830+
const { tools, tool_resources, } = mGetAIFunctions(type, factory.globals, vectorstoreId)
18351831
botData.tools = tools
18361832
botData.tool_resources = tool_resources
18371833
}
18381834
if(updateModel)
18391835
botData.model = factory.globals.currentOpenAIBotModel
18401836
botData.id = id // validated
18411837
/* LLM updates */
1842-
const { bot_id, bot_name: name, instructions, metadata, tools, } = botData
1843-
if(bot_id?.length && (instructions || metadata || name || tools)){
1838+
const { bot_id, bot_name: name, instructions, tools, } = botData
1839+
if(bot_id?.length && (instructions || name || tools)){
18441840
botData.model = factory.globals.currentOpenAIBotModel // not dynamic
18451841
await llm.updateBot(botData)
18461842
const updatedLLMFields = Object.keys(botData)
18471843
.filter(key=>key!=='id' && key!=='bot_id') // strip mechanicals
1848-
console.log(chalk.green('mUpdateBot()::update in LLM'), bot_id, id, updatedLLMFields)
1844+
console.log(chalk.green('mUpdateBot()::update in OpenAI'), id, bot_id, updatedLLMFields)
18491845
}
18501846
const updatedBot = await factory.dataservices.updateBot(botData)
18511847
return updatedBot

0 commit comments

Comments
 (0)