diff --git a/packages/agents/package.json b/packages/agents/package.json index 687350d..3666821 100644 --- a/packages/agents/package.json +++ b/packages/agents/package.json @@ -37,8 +37,8 @@ "dotenv": "^16.4.5", "effect": "^3.7.2", "llamaindex": "0.6.9", - "mdast": "^3.0.0", "mdast-util-heading-range": "^4.0.0", + "unist-util-find-all-between": "^2.1.0", "ollama": "^0.5.9", "pathe": "^1.1.2", "radash": "^12.1.0", diff --git a/packages/agents/src/Agent/Agent.spec.ts b/packages/agents/src/Agent/Agent.spec.ts index 3fb015b..351bbc0 100644 --- a/packages/agents/src/Agent/Agent.spec.ts +++ b/packages/agents/src/Agent/Agent.spec.ts @@ -9,14 +9,11 @@ describe("Agent", () => { const agent = new HelloAgent(); const program = Effect.gen(function* () { - const createTask = Effect.succeed( - new Task( + + return yield* agent.process(new Task( "Create a greeting for Alex Whiteside, a software architect who enjoys sarcasm and XKCD", - ["Be Positive", "Be Creative"], - Schema.Struct({ greeting: Schema.String }), - ), - ); - return yield* agent.process(createTask); + Schema.Struct({ greeting: Schema.String }), ["Be Positive", "Be Creative"] + ),); }); const runnable = Effect.provide(program, AppLayer); diff --git a/packages/agents/src/Agent/Agent.ts b/packages/agents/src/Agent/Agent.ts index ecde375..b05e425 100644 --- a/packages/agents/src/Agent/Agent.ts +++ b/packages/agents/src/Agent/Agent.ts @@ -1,57 +1,62 @@ -import { Schema } from "@effect/schema"; -import { LLMService } from "../services"; -import { Effect } from "effect"; -import { extractJSON, getMdast } from "../md"; -import { getSectionByHeading } from "../md/getSection"; -import { isRight } from "effect/Either"; -import { Task, TaskResult } from "../task"; -import { Prompts } from "./prompts"; -import { InjectSection } from "./injectSection"; -import { AIFunctionLike, AIFunctionSet } from "@agentic/core"; +import {Schema} from "@effect/schema"; +import {Effect} from "effect"; +import {extractJSON, getMdast} from "../md"; +import {getSectionByHeading} from "../md/getSection"; +import {isRight} from "effect/Either"; +import {type Task, TaskResult} from "../task"; +import {Prompts} from "./prompts"; +import {InjectSection} from "./injectSection"; +import {generate} from "../ChatEngine/engine"; +import type {ToolObject} from "../ChatEngine/tools"; +import {Ollama} from "ollama"; export abstract class Agent { - abstract name: string; - abstract description: string; - public tools:AIFunctionLike[] = [] - constructor() {} + abstract name: string + abstract description: string + public tools: ToolObject[] = [] - generatePrompt(task: Task) { - const about = InjectSection( - "About You", - [ - `You are a ${this.name}, responsible for ${this.description}.`, - "You are part of a multi-agent system which helps humans solve complex problems.", - ].join("\n"), - ); + generatePrompt(task: Task) { + const about = InjectSection( + 'About You', + [ + `You are a ${this.name}, responsible for ${this.description}.`, + 'You are part of a multi-agent system which helps humans solve complex problems.', + ].join('\n'), + ) - const details = [ - about, - Prompts.responseConventions, - InjectSection("Instructions", task.instructions), - InjectSection("Acceptance Criteria", task.acceptanceCriteria), - InjectSection("Schema (JsonSchema)", task.format), - ]; + const details = [ + about, + Prompts.responseConventions, + InjectSection('Instructions', task.instructions), + InjectSection('Acceptance Criteria', task.acceptanceCriteria), + InjectSection('Schema (JsonSchema)', task.format), + ] - return details.join("\n\n"); - } + return details.join('\n\n') + } - process(task: Effect.Effect, Error, never>) { - const generatePrompt = this.generatePrompt.bind(this); - return Effect.gen(function* () { - const llm = yield* LLMService; + process(task: Task) { + return Effect.gen(this, function* () { + const llm = new Ollama({host:'http://studio.local:11434'}) + const prompt = this.generatePrompt(task) + const messages = [{ role: 'user', content: prompt }] + const response = yield* Effect.promise(()=>generate({ + llm, + tools: this.tools, + model: 'mistral-small', + messageHistory: messages, + })) - const taskReal = yield* task; - const prompt = generatePrompt(taskReal); - const response = yield* llm.generateText(prompt, "mistral-small"); + const lastMessage = response[-1] - const mdast = yield* getMdast(response); - const data = Schema.decodeEither(taskReal.format)( - extractJSON(getSectionByHeading(mdast, Prompts.sectionKeys.data)), - ); - if (isRight(data)) { - return new TaskResult(data.right, ""); - } - return new TaskResult(null, "null"); - }); - } + const mdast = getMdast(lastMessage.content) + const data = Schema.decodeEither(task.format)( + extractJSON(getSectionByHeading(mdast, Prompts.sectionKeys.data)), + ) + if (isRight(data)) { + return new TaskResult(data.right, '') + } + return new TaskResult(null, 'null') + }) + } } diff --git a/packages/agents/src/Agent/LlamaIndexAgent.ts b/packages/agents/src/Agent/LlamaIndexAgent.ts deleted file mode 100644 index ee88306..0000000 --- a/packages/agents/src/Agent/LlamaIndexAgent.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { JSONSchema, Schema } from "@effect/schema"; -import { generate } from "../ChatEngine/engine"; -import { createTool } from "../ChatEngine/tools"; -import { Ollama } from "ollama"; - -const schema = Schema.Struct({ - query: Schema.String.annotations({ description: "The query to search for" }), -}); - -const searchWikipedia = async (args: Schema.Schema.Type) => { - const result = await fetch( - `https://en.wikipedia.org/w/rest.php/v1/search/page?q=${args.query.toLowerCase()}`, - { - headers: { - "api-user-agent": "Alex Whiteside (https://github.com/awhiteside1)", - accept: "application/json", - }, - }, - ); - return result.json(); -}; - -const params = JSONSchema.make(schema); - -const WikiSearchTool = createTool({ - name: "search_wikipedia", - description: "query wikipedia for a given search term or topic", - implementation: searchWikipedia, - params: schema, -}); - -export class LlamaIndexAgent { - constructor() {} - - async process(message: string) { - const messages = [{ role: "user", content: message }]; - const result = await generate({ - llm: new Ollama(), - tools: [WikiSearchTool], - messageHistory: messages, - model: "llama3.1", - }); - - return result; - } -} diff --git a/packages/agents/src/Agent/injectSection.ts b/packages/agents/src/Agent/injectSection.ts index 986178b..6da8de5 100644 --- a/packages/agents/src/Agent/injectSection.ts +++ b/packages/agents/src/Agent/injectSection.ts @@ -1,4 +1,4 @@ -import { JSONSchema, Schema } from "@effect/schema"; +import { JSONSchema, type Schema } from "@effect/schema"; import { Match } from "effect"; import { isArray } from "radash"; import { isSchema } from "@effect/schema/Schema"; diff --git a/packages/agents/src/agents/Tools.spec.ts b/packages/agents/src/agents/Tools.spec.ts deleted file mode 100644 index d53a83f..0000000 --- a/packages/agents/src/agents/Tools.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { WikiAgent } from "./WikiAgent"; -import { Effect } from "effect"; -import { Task } from "../task"; -import { Schema } from "@effect/schema"; -import { AppLayer } from "../services"; - -describe("Wiki", () => { - it("should ", { timeout: 1000000 }, async () => { - const wikiAgent = new WikiAgent(); - const runnable = Effect.gen(function* () { - return yield* wikiAgent.process( - Effect.succeed(new Task("", [""], Schema.String)), - ); - }); - const app = Effect.provide(runnable, AppLayer); - await Effect.runPromiseExit(app).then(console.log); - }); -}); diff --git a/packages/agents/src/agents/WikiAgent.ts b/packages/agents/src/agents/WikiAgent.ts deleted file mode 100644 index 9d1046a..0000000 --- a/packages/agents/src/agents/WikiAgent.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Agent } from "../Agent/Agent"; -import { Effect } from "effect"; -import { Task, TaskResult } from "../task"; - -import { wikipedia, WikipediaClient } from "@agentic/wikipedia"; -import { AIFunctionSet, createAIChain, Msg } from "@agentic/core"; -import { LLMService } from "../services"; -import { Message } from "ollama"; -import defu from "defu"; - -export class WikiAgent extends Agent { - name = "Wikipedia Agent"; - description = "Searches wikipedia for background on a given topic or term."; - - constructor() { - super(); - const wikipedia = new WikipediaClient({ - apiUserAgent: - "Alex Whiteside (https://github.com/awhiteside1)", - }); - this.tools = [wikipedia]; - } - - process(task: Effect.Effect, Error, never>) { - return Effect.gen(this, function* () { - const llm = yield* LLMService; - - const messages: Array = [ - { - role: "system", - content: - "You are a wikipedia search assistant, who helps research requested topics.", - }, - { role: "user", content: "What is a cantaloupe?" }, - ]; - const chain = createAIChain({ - params: { model: "mistral-small" }, - chatFn: async (args) => { - const response = await Effect.runPromise( - llm.chat({ ...args, model: "llama3.1" }), - ); - response.message.tool_calls?.forEach((tool) => { - // @ts-ignore - tool.function.arguments = JSON.stringify(tool.function.arguments); - }); - return response; - }, - tools: this.tools, - }); - const result = yield* Effect.tryPromise({ - try: () => chain({ messages, model: "llama3.1" }), - catch: (err) => new Error(err), - }); - console.log(result); - return new TaskResult(null, ""); - }); - } -} diff --git a/packages/agents/src/agents/WikiAgent/WikiAgent.spec.ts b/packages/agents/src/agents/WikiAgent/WikiAgent.spec.ts index 8edb54f..efcf146 100644 --- a/packages/agents/src/agents/WikiAgent/WikiAgent.spec.ts +++ b/packages/agents/src/agents/WikiAgent/WikiAgent.spec.ts @@ -1,12 +1,23 @@ -import { LlamaIndexAgent } from "./WikiAgent"; +import { WikiAgent } from './WikiAgent' +import { Effect } from 'effect' +import { Task } from '../../task' +import { Schema } from '@effect/schema' +import { AppLayer } from '../../services' -describe("LLamaIndex", () => { - it("should whatever", {timeout:100000},async() => { +describe('LLamaIndex', () => { + it('should whatever', { timeout: 100000 }, async () => { + const agent = new WikiAgent() - const agent = new LlamaIndexAgent() + const program = Effect.gen(function* () { + const task = new Task( + 'Get me background information about Cantaloupe, the fruit. ', + Schema.String, + ) + return yield* agent.process(task) + }) + const runnable = Effect.provide(program, AppLayer) + const result = await Effect.runPromise(runnable) - const result = await agent.process('Get me background information about Cantaloupe, the fruit. ') - expect(result).toBeDefined() - }); - -}); \ No newline at end of file + expect(result).toBeDefined() + }) +}) diff --git a/packages/agents/src/agents/WikiAgent/WikiAgent.ts b/packages/agents/src/agents/WikiAgent/WikiAgent.ts index 270e335..8e9541e 100644 --- a/packages/agents/src/agents/WikiAgent/WikiAgent.ts +++ b/packages/agents/src/agents/WikiAgent/WikiAgent.ts @@ -1,18 +1,8 @@ -import { generate } from "../../ChatEngine/engine"; -import { Ollama } from "ollama"; -import { WikiSearchTool } from "./WikiTools"; +import {WikiSearchTool} from './WikiTools' +import {Agent} from '../../Agent/Agent' -export class LlamaIndexAgent { - - async process(message: string) { - const messages = [{ role: "user", content: message }]; - const result = await generate({ - llm: new Ollama({host:'http://studio.local:11434'}), - tools: [WikiSearchTool], - messageHistory: messages, - model: "llama3.1", - }); - - return result; - } +export class WikiAgent extends Agent { + tools = [WikiSearchTool] + name = 'Wikipedia Agent' + description = 'Searches wikipedia for information on requested topics. ' } diff --git a/packages/agents/src/md/pipeline.ts b/packages/agents/src/md/pipeline.ts index 934a583..350089d 100644 --- a/packages/agents/src/md/pipeline.ts +++ b/packages/agents/src/md/pipeline.ts @@ -1,12 +1,10 @@ import { remark } from "remark"; import remarkGfm from "remark-gfm"; -import { Root } from "mdast"; -import { Effect } from "effect"; +import type { Root } from "mdast"; + const markdownPipeline = remark().use(remarkGfm); -export const getMdast = (md: string) => { - return Effect.succeed(markdownPipeline.parse(md)); -}; +export const getMdast = (md: string) => markdownPipeline.parse(md) -export const stringifyMdast = (node: Root)=> Effect.succeed(markdownPipeline.stringify(node)) \ No newline at end of file +export const stringifyMdast = (node: Root)=> markdownPipeline.stringify(node) \ No newline at end of file diff --git a/packages/agents/src/task/index.ts b/packages/agents/src/task/index.ts index aed1a67..9b5f5ff 100644 --- a/packages/agents/src/task/index.ts +++ b/packages/agents/src/task/index.ts @@ -3,8 +3,8 @@ import { Schema } from "@effect/schema"; export class Task { constructor( readonly instructions: string, - readonly acceptanceCriteria: Array = [], readonly format: Schema.Schema.AnyNoContext, + readonly acceptanceCriteria: Array = [], ) {} } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 957fac9..f8b9d9a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -74,9 +74,6 @@ importers: llamaindex: specifier: 0.6.9 version: 0.6.9(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/credential-providers@3.651.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1)))(@notionhq/client@2.2.15(encoding@0.1.13))(encoding@0.1.13)(socks@2.8.3)(typescript@5.6.2) - mdast: - specifier: ^3.0.0 - version: 3.0.0 mdast-util-heading-range: specifier: ^4.0.0 version: 4.0.0 @@ -101,6 +98,9 @@ importers: unist-util-find: specifier: ^3.0.0 version: 3.0.0 + unist-util-find-all-between: + specifier: ^2.1.0 + version: 2.1.0 unist-util-select: specifier: ^5.1.0 version: 5.1.0 @@ -170,7 +170,7 @@ importers: version: 2.1.1(vite@5.4.7(@types/node@22.5.5)(lightningcss@1.27.0)(sass@1.77.4)(stylus@0.30.1)) vite-plugin-node-polyfills: specifier: ^0.22.0 - version: 0.22.0(rollup@4.21.3)(vite@5.4.7(@types/node@22.5.5)(lightningcss@1.27.0)(stylus@0.30.1)) + version: 0.22.0(rollup@3.29.4)(vite@5.4.7(@types/node@22.5.5)(lightningcss@1.27.0)(stylus@0.30.1)) devDependencies: '@types/react': specifier: 18.3.8 @@ -180,7 +180,7 @@ importers: version: 2.0.0(typescript@5.6.2) vite-plugin-dts: specifier: ^4.2.1 - version: 4.2.1(@types/node@22.5.5)(rollup@4.21.3)(typescript@5.6.2)(vite@5.4.7(@types/node@22.5.5)(lightningcss@1.27.0)(stylus@0.30.1)) + version: 4.2.1(@types/node@22.5.5)(rollup@3.29.4)(typescript@5.6.2)(vite@5.4.7(@types/node@22.5.5)(lightningcss@1.27.0)(stylus@0.30.1)) vite-plugin-externalize-deps: specifier: ^0.8.0 version: 0.8.0(vite@5.4.7(@types/node@22.5.5)(lightningcss@1.27.0)(sass@1.77.4)(stylus@0.30.1)) @@ -3865,6 +3865,9 @@ packages: '@types/triple-beam@1.3.5': resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} @@ -7062,10 +7065,6 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - mdast@3.0.0: - resolution: {integrity: sha512-xySmf8g4fPKMeC07jXGz971EkLbWAJ83s4US2Tj9lEdnZ142UP5grN73H1Xd3HzrdbU5o9GYYP/y8F9ZSwLE9g==} - deprecated: '`mdast` was renamed to `remark`' - mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} @@ -9434,9 +9433,19 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unist-util-find-all-between@2.1.0: + resolution: {integrity: sha512-OCCUtDD8UHKeODw3TPXyFDxPCbpgBzbGTTaDpR68nvxkwiVcawBqMVrokfBMvUi7ij2F5q7S4s4Jq5dvkcBt+w==} + engines: {node: '>=10'} + + unist-util-find@1.0.4: + resolution: {integrity: sha512-T5vI7IkhroDj7KxAIy057VbIeGnCXfso4d4GoUsjbAmDLQUkzAeszlBtzx1+KHgdsYYBygaqUBvrbYCfePedZw==} + unist-util-find@3.0.0: resolution: {integrity: sha512-T7ZqS7immLjYyC4FCp2hDo3ksZ1v+qcbb+e5+iWxc2jONgHOLXPCpms1L8VV4hVxCXgWTxmBHDztuEZFVwC+Gg==} + unist-util-is@4.1.0: + resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} + unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} @@ -9446,9 +9455,15 @@ packages: unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + unist-util-visit-parents@3.1.1: + resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} + unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit@2.0.3: + resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} + unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} @@ -13063,17 +13078,17 @@ snapshots: '@payloadcms/eslint-config@1.1.1(typescript@5.6.2)': dependencies: '@types/eslint': 8.44.2 - '@typescript-eslint/eslint-plugin': 6.6.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 6.6.0(@typescript-eslint/parser@6.6.0(eslint@8.48.0)(typescript@5.6.2))(eslint@8.48.0)(typescript@5.6.2) '@typescript-eslint/parser': 6.6.0(eslint@8.48.0)(typescript@5.6.2) eslint: 8.48.0 eslint-config-prettier: 9.0.0(eslint@8.48.0) eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.6.0(eslint@8.48.0)(typescript@5.6.2))(eslint@8.48.0) - eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@6.6.0(eslint@8.48.0)(typescript@5.6.2))(eslint@8.48.0)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) + eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.48.0)(typescript@5.6.2) eslint-plugin-jest-dom: 5.1.0(eslint@8.48.0) eslint-plugin-jsx-a11y: 6.7.1(eslint@8.48.0) eslint-plugin-node: 11.1.0(eslint@8.48.0) eslint-plugin-perfectionist: 2.0.0(eslint@8.48.0)(typescript@5.6.2) - eslint-plugin-playwright: 0.16.0(eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@6.6.0(eslint@8.48.0)(typescript@5.6.2))(eslint@8.48.0)(typescript@5.6.2))(eslint@8.48.0)(typescript@5.6.2))(eslint@8.48.0) + eslint-plugin-playwright: 0.16.0(eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.48.0) eslint-plugin-react: 7.33.2(eslint@8.48.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.48.0) eslint-plugin-regexp: 1.15.0(eslint@8.48.0) @@ -13652,13 +13667,13 @@ snapshots: optionalDependencies: rollup: 3.29.4 - '@rollup/plugin-inject@5.0.5(rollup@4.21.3)': + '@rollup/plugin-inject@5.0.5(rollup@3.29.4)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.21.3) + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) estree-walker: 2.0.2 magic-string: 0.30.11 optionalDependencies: - rollup: 4.21.3 + rollup: 3.29.4 '@rollup/plugin-json@6.1.0(rollup@3.29.4)': dependencies: @@ -14801,6 +14816,8 @@ snapshots: '@types/triple-beam@1.3.5': {} + '@types/unist@2.0.11': {} + '@types/unist@3.0.3': {} '@types/uuid@10.0.0': {} @@ -14822,16 +14839,16 @@ snapshots: dependencies: '@types/node': 22.5.4 - '@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@6.6.0(eslint@8.48.0)(typescript@5.6.2))(eslint@8.48.0)(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/parser': 6.6.0(eslint@8.48.0)(typescript@5.6.2) '@typescript-eslint/scope-manager': 6.6.0 '@typescript-eslint/type-utils': 6.6.0(eslint@8.48.0)(typescript@5.6.2) '@typescript-eslint/utils': 6.6.0(eslint@8.48.0)(typescript@5.6.2) '@typescript-eslint/visitor-keys': 6.6.0 debug: 4.3.7 - eslint: 8.57.1 + eslint: 8.48.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -16912,12 +16929,12 @@ snapshots: eslint: 8.48.0 requireindex: 1.2.0 - eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@6.6.0(eslint@8.48.0)(typescript@5.6.2))(eslint@8.48.0)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2): + eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.48.0)(typescript@5.6.2): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.48.0)(typescript@5.6.2) - eslint: 8.57.1 + eslint: 8.48.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 6.6.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 6.6.0(@typescript-eslint/parser@6.6.0(eslint@8.48.0)(typescript@5.6.2))(eslint@8.48.0)(typescript@5.6.2) transitivePeerDependencies: - supports-color - typescript @@ -16982,11 +16999,11 @@ snapshots: - supports-color - typescript - eslint-plugin-playwright@0.16.0(eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@6.6.0(eslint@8.48.0)(typescript@5.6.2))(eslint@8.48.0)(typescript@5.6.2))(eslint@8.48.0)(typescript@5.6.2))(eslint@8.48.0): + eslint-plugin-playwright@0.16.0(eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.48.0): dependencies: eslint: 8.48.0 optionalDependencies: - eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@6.6.0(eslint@8.48.0)(typescript@5.6.2))(eslint@8.48.0)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) + eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.48.0)(typescript@5.6.2) eslint-plugin-react-hooks@4.6.0(eslint@8.48.0): dependencies: @@ -18688,8 +18705,6 @@ snapshots: dependencies: '@types/mdast': 4.0.4 - mdast@3.0.0: {} - mdn-data@2.0.28: {} mdn-data@2.0.30: {} @@ -21604,12 +21619,24 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 + unist-util-find-all-between@2.1.0: + dependencies: + unist-util-find: 1.0.4 + unist-util-is: 4.1.0 + + unist-util-find@1.0.4: + dependencies: + lodash.iteratee: 4.7.0 + unist-util-visit: 2.0.3 + unist-util-find@3.0.0: dependencies: '@types/unist': 3.0.3 lodash.iteratee: 4.7.0 unist-util-visit: 5.0.0 + unist-util-is@4.1.0: {} + unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.3 @@ -21626,11 +21653,22 @@ snapshots: dependencies: '@types/unist': 3.0.3 + unist-util-visit-parents@3.1.1: + dependencies: + '@types/unist': 2.0.11 + unist-util-is: 4.1.0 + unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.0 + unist-util-visit@2.0.3: + dependencies: + '@types/unist': 2.0.11 + unist-util-is: 4.1.0 + unist-util-visit-parents: 3.1.1 + unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -21783,10 +21821,10 @@ snapshots: - supports-color - terser - vite-plugin-dts@4.2.1(@types/node@22.5.5)(rollup@4.21.3)(typescript@5.6.2)(vite@5.4.7(@types/node@22.5.5)(lightningcss@1.27.0)(stylus@0.30.1)): + vite-plugin-dts@4.2.1(@types/node@22.5.5)(rollup@3.29.4)(typescript@5.6.2)(vite@5.4.7(@types/node@22.5.5)(lightningcss@1.27.0)(stylus@0.30.1)): dependencies: '@microsoft/api-extractor': 7.47.7(@types/node@22.5.5) - '@rollup/pluginutils': 5.1.0(rollup@4.21.3) + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) '@volar/typescript': 2.4.5 '@vue/language-core': 2.1.6(typescript@5.6.2) compare-versions: 6.1.1 @@ -21813,9 +21851,9 @@ snapshots: picocolors: 1.1.0 vite: 5.4.7(@types/node@22.5.5)(lightningcss@1.27.0)(sass@1.77.4)(stylus@0.30.1) - vite-plugin-node-polyfills@0.22.0(rollup@4.21.3)(vite@5.4.7(@types/node@22.5.5)(lightningcss@1.27.0)(stylus@0.30.1)): + vite-plugin-node-polyfills@0.22.0(rollup@3.29.4)(vite@5.4.7(@types/node@22.5.5)(lightningcss@1.27.0)(stylus@0.30.1)): dependencies: - '@rollup/plugin-inject': 5.0.5(rollup@4.21.3) + '@rollup/plugin-inject': 5.0.5(rollup@3.29.4) node-stdlib-browser: 1.2.1 vite: 5.4.7(@types/node@22.5.5)(lightningcss@1.27.0)(sass@1.77.4)(stylus@0.30.1) transitivePeerDependencies: