@dxos/assistant 0.7.5-staging.b81e783 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/index.mjs +35 -28
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +20 -20
- package/dist/lib/browser/testing/index.mjs.map +2 -2
- package/dist/lib/node/index.cjs +35 -28
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +20 -20
- package/dist/lib/node/testing/index.cjs.map +2 -2
- package/dist/lib/node-esm/index.mjs +35 -28
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +20 -20
- package/dist/lib/node-esm/testing/index.mjs.map +2 -2
- package/dist/types/src/ai-service/client.d.ts +7 -14
- package/dist/types/src/ai-service/client.d.ts.map +1 -1
- package/dist/types/src/ai-service/defs.d.ts +3 -0
- package/dist/types/src/ai-service/defs.d.ts.map +1 -0
- package/dist/types/src/ai-service/index.d.ts +1 -0
- package/dist/types/src/ai-service/index.d.ts.map +1 -1
- package/dist/types/src/ai-service/parser.d.ts +1 -1
- package/dist/types/src/ai-service/stream.d.ts.map +1 -1
- package/dist/types/src/ai-service/testing/index.d.ts +3 -0
- package/dist/types/src/ai-service/testing/index.d.ts.map +1 -0
- package/dist/types/src/ai-service/testing/mock.d.ts +7 -0
- package/dist/types/src/ai-service/testing/mock.d.ts.map +1 -0
- package/dist/types/src/ai-service/{testing.d.ts → testing/test-stream.d.ts} +1 -1
- package/dist/types/src/ai-service/testing/test-stream.d.ts.map +1 -0
- package/dist/types/src/ai-service/types.d.ts +97 -14
- package/dist/types/src/ai-service/types.d.ts.map +1 -1
- package/dist/types/src/conversation/conversation.d.ts.map +1 -1
- package/package.json +13 -13
- package/src/ai-service/client.test.ts +9 -8
- package/src/ai-service/client.ts +8 -29
- package/src/ai-service/defs.ts +24 -0
- package/src/ai-service/index.ts +1 -0
- package/src/ai-service/stream.ts +1 -1
- package/src/ai-service/testing/index.ts +6 -0
- package/src/ai-service/testing/mock.ts +17 -0
- package/src/ai-service/{testing.ts → testing/test-stream.ts} +1 -1
- package/src/ai-service/types.ts +12 -16
- package/src/bin/chat.ts +2 -2
- package/src/conversation/conversation.test.ts +4 -4
- package/src/conversation/conversation.ts +1 -1
- package/src/testing/artifacts.test.ts +9 -9
- package/src/testing/object-extraction.test.ts +1 -1
- package/src/testing/query-promts.ts +20 -20
- package/src/testing/query.test.ts +3 -3
- package/dist/types/src/ai-service/testing.d.ts.map +0 -1
|
@@ -135,34 +135,34 @@ import { defineTool, ToolResult } from "@dxos/artifact";
|
|
|
135
135
|
import { toJsonSchema } from "@dxos/echo-schema";
|
|
136
136
|
import { log } from "@dxos/log";
|
|
137
137
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/experimental/assistant/src/testing/query-promts.ts";
|
|
138
|
-
var createCypherTool = (dataSource, schemaTypes = []) => defineTool({
|
|
139
|
-
name: "
|
|
138
|
+
var createCypherTool = (dataSource, schemaTypes = []) => defineTool("dxos.org/echo", {
|
|
139
|
+
name: "query",
|
|
140
140
|
description: "Query the ECHO graph database in cypher query language. Returns data from the database." + (schemaTypes.length > 0 ? `
|
|
141
141
|
|
|
142
142
|
${createSystemPrompt(schemaTypes)}` : ""),
|
|
143
143
|
schema: S.Struct({
|
|
144
144
|
query: S.String.annotations({
|
|
145
145
|
description: `
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
146
|
+
A valid cypher query string to execute.
|
|
147
|
+
Query must have one MATCH clause.
|
|
148
|
+
Match clause can have multiple patterns but they must all be connected via a relationship chain.
|
|
149
|
+
Query might have zero or one WHERE clauses.
|
|
150
|
+
Query must have one RETURN clause.
|
|
151
|
+
RETURN clause can have multiple expressions separated by commas.
|
|
152
|
+
DISTINCT keyword is not allowed.
|
|
153
153
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
154
|
+
<example>
|
|
155
|
+
MATCH (n:Person) RETURN n.name
|
|
156
|
+
</example>
|
|
157
157
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
158
|
+
<example>
|
|
159
|
+
MATCH (s:Studio)-[:PRODUCED]->(m:Movie)-[:PRODUCED_IN]->(c:City {name: "Las Vegas"}) RETURN s
|
|
160
|
+
</example>
|
|
161
|
+
|
|
162
|
+
<example>
|
|
163
|
+
MATCH (a:Actor)-[:STARRED_IN]->(m:Movie)<-[:PRODUCED]-(s:Studio {name: "Cinema Pictures"}) WHERE m.name = "Once upon a time" RETURN m.name, a.name
|
|
164
|
+
</example>
|
|
165
|
+
`
|
|
166
166
|
})
|
|
167
167
|
}),
|
|
168
168
|
execute: async ({ query }) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/testing/defs.ts", "../../../../src/testing/logger.ts", "../../../../src/testing/query-promts.ts", "../../../../src/testing/test-data.ts", "../../../../src/testing/test-schema.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// TODO(burdon): Remove/Reconcile with @dxos/assistant-testing.\nexport const AI_SERVICE_ENDPOINT = {\n LOCAL: 'http://localhost:8788',\n REMOTE: 'https://ai-service.dxos.workers.dev',\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { ImageSource, MessageContentBlock } from '@dxos/artifact';\n\nimport type { ConversationEvent } from '../conversation';\n\nexport const createLogger = ({\n stream,\n filter,\n onImage,\n}: {\n stream?: boolean;\n filter?: (event: ConversationEvent) => boolean;\n onImage?: (img: { id: string; description?: string; source: ImageSource }) => void;\n} = {}) => {\n const images: Record<string, any> = {};\n let currentText = '';\n\n return (event: ConversationEvent) => {\n if (typeof filter === 'function' && !filter(event)) {\n return;\n }\n\n const printContentBlock = (content: MessageContentBlock) => {\n switch (content.type) {\n case 'text':\n process.stdout.write(content.text);\n break;\n case 'tool_use':\n process.stdout.write(`⚙️ [Tool Use] ${content.name}\\n`);\n break;\n case 'image': {\n if (content.id && content.source) {\n images[content.id] = content.source;\n }\n process.stdout.write(`[Image id=${content.id} mediaType=${content.source?.mediaType}]`);\n break;\n }\n }\n };\n\n const onTextBlockPrinted = (text: string) => {\n const imageMatch = text.match(/<image id=\"([^\"]+)\"(?:\\s+prompt=\"([^\"]+)\")?\\s*\\/>/);\n if (imageMatch && onImage && images[imageMatch[1]]) {\n onImage({\n id: imageMatch[1],\n description: imageMatch[2], // Extract prompt as description if present\n source: images[imageMatch[1]],\n });\n }\n };\n\n if (stream) {\n switch (event.type) {\n case 'message_start': {\n process.stdout.write(`${event.message.role.toUpperCase()}\\n\\n`);\n for (const content of event.message.content) {\n printContentBlock(content);\n }\n break;\n }\n case 'content_block_start': {\n currentText = '';\n printContentBlock(event.content);\n break;\n }\n case 'content_block_delta': {\n switch (event.delta.type) {\n case 'text_delta': {\n currentText += event.delta.text;\n process.stdout.write(event.delta.text);\n break;\n }\n case 'input_json_delta': {\n process.stdout.write(event.delta.partial_json);\n break;\n }\n }\n break;\n }\n case 'content_block_stop': {\n process.stdout.write('\\n');\n onTextBlockPrinted(currentText);\n currentText = '';\n break;\n }\n case 'message_delta': {\n break;\n }\n case 'message_stop': {\n process.stdout.write('\\n\\n');\n break;\n }\n }\n }\n\n switch (event.type) {\n case 'message': {\n if (!stream || event.message.role !== 'assistant') {\n process.stdout.write(`${event.message.role.toUpperCase()}\\n\\n`);\n for (const block of event.message.content) {\n switch (block.type) {\n case 'text':\n process.stdout.write(block.text + '\\n');\n onTextBlockPrinted(block.text);\n break;\n case 'tool_use':\n process.stdout.write(`⚙️ [Tool Use] ${block.name}\\n`);\n process.stdout.write(` ${JSON.stringify(block.input)}\\n`);\n break;\n case 'tool_result':\n if (block.isError) {\n process.stdout.write('❌ [Tool Error]\\n');\n process.stdout.write(block.content + '\\n');\n } else {\n process.stdout.write('✅ [Tool Success]\\n');\n process.stdout.write(block.content + '\\n');\n }\n }\n process.stdout.write('\\n\\n');\n }\n }\n break;\n }\n }\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema as S } from '@effect/schema';\n\nimport { defineTool, ToolResult } from '@dxos/artifact';\nimport { toJsonSchema } from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\n\nimport { executeQuery, formatJsonSchemaForLLM, type DataSource } from '../cypher';\nimport { trim } from '../util';\n\nexport const createCypherTool = (dataSource: DataSource, schemaTypes: S.Schema.Any[] = []) =>\n defineTool({\n name: 'graphQuery',\n description:\n 'Query the ECHO graph database in cypher query language. Returns data from the database.' +\n (schemaTypes.length > 0 ? `\\n\\n${createSystemPrompt(schemaTypes)}` : ''),\n schema: S.Struct({\n query: S.String.annotations({\n description: `\n A valid cypher query string to execute.\n Query must have one MATCH clause.\n Match clause can have multiple patterns but they must all be connected via a relationship chain.\n Query might have zero or one WHERE clauses.\n Query must have one RETURN clause.\n RETURN clause can have multiple expressions separated by commas.\n DISTINCT keyword is not allowed.\n\n <example>\n MATCH (n:Person) RETURN n.name\n </example>\n\n <example>\n MATCH (s:Studio)-[:PRODUCED]->(m:Movie)-[:PRODUCED_IN]->(c:City {name: \"Las Vegas\"}) RETURN s\n </example>\n \n <example>\n MATCH (a:Actor)-[:STARRED_IN]->(m:Movie)<-[:PRODUCED]-(s:Studio {name: \"Cinema Pictures\"}) WHERE m.name = \"Once upon a time\" RETURN m.name, a.name\n </example>\n `,\n }),\n }),\n execute: async ({ query }) => {\n try {\n log('cypher query', { query });\n const results = await executeQuery(dataSource, query);\n log('query complete', { results });\n return ToolResult.Success(results);\n } catch (e: any) {\n log.catch(e);\n return ToolResult.Error(e.message);\n }\n },\n });\n\nexport const createSystemPrompt = (schemaTypes: S.Schema.Any[]) => trim`\n You have access to ECHO graph database. You can query the database to get data to satisfy user prompts.\n\n Database schema is defined in pseud-cypher syntax. The schema is:\n\n <schema>\n ${formatJsonSchemaForLLM(schemaTypes.map((schema) => toJsonSchema(schema)))}\n <schema>\n\n Before replying always think step-by-step on how to proceed.\n Print your thoughts inside <cot> tags.\n \n <example>\n <cot>To answer the question I need to ...</cot>\n </example>\n\n Before answering the user's question, decide what tools you need to use to answer the question.\n`;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Schema as S } from '@effect/schema';\n\nimport { raise } from '@dxos/debug';\nimport type { EchoDatabase } from '@dxos/echo-db';\nimport { JSON_SCHEMA_ECHO_REF_ID, ObjectId, toJsonSchema, type JsonSchemaType, type Ref } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { create, makeRef } from '@dxos/live-object';\n\nimport {\n type DataSource,\n type Node,\n type Relationship,\n formatInferredRelationshipLabel,\n formatNodeLabel,\n} from '../cypher';\nimport { Contact, Org, Project, Task } from '../testing';\n\nexport const seedTestData = (db: EchoDatabase) => {\n const contactRich = db.add(\n create(Contact, {\n name: 'Rich',\n }),\n );\n const contactJosiah = db.add(\n create(Contact, {\n name: 'Josiah',\n }),\n );\n const contactDima = db.add(\n create(Contact, {\n name: 'Dima',\n }),\n );\n const contactFred = db.add(\n create(Contact, {\n name: 'Fred',\n }),\n );\n\n const projectComposer = db.add(\n create(Project, {\n name: 'Composer',\n }),\n );\n const projectEcho = db.add(\n create(Project, {\n name: 'ECHO',\n }),\n );\n const projectDoodles = db.add(\n create(Project, {\n name: 'Doodles',\n }),\n );\n\n const _taskComposer1 = db.add(\n create(Task, {\n name: 'Optimize startup performance',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer2 = db.add(\n create(Task, {\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskComposer3 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer5 = db.add(\n create(Task, {\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskComposer4 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskEcho1 = db.add(\n create(Task, {\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n }),\n );\n const _taskEcho2 = db.add(\n create(Task, {\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskDoodles1 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskDoodles2 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n }),\n );\n\n const _orgDxos = db.add(\n create(Org, {\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n }),\n );\n const _orgBraneframe = db.add(\n create(Org, {\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(projectComposer)],\n }),\n );\n};\n\n// TODO(burdon): Use schema/testing.\nexport const createTestData = (): MockDataSource => {\n const dataSource = new MockDataSource();\n\n const contactRich = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Rich',\n });\n const contactJosiah = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Josiah',\n });\n const contactDima = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Dima',\n });\n const contactFred = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Fred',\n });\n\n const projectComposer = dataSource.add(Project, {\n id: ObjectId.random(),\n name: 'Composer',\n });\n const projectEcho = dataSource.add(Project, {\n id: ObjectId.random(),\n name: 'ECHO',\n });\n const projectDoodles = dataSource.add(Project, {\n id: ObjectId.random(),\n name: 'Doodles',\n });\n\n const _taskComposer1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Optimize startup performance',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskComposer3 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer5 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n });\n const _taskComposer4 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskEcho1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n });\n const _taskEcho2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n });\n const _taskDoodles1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n });\n const _taskDoodles2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n });\n\n const _orgDxos = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n });\n const _orgBraneframe = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(projectComposer)],\n });\n dataSource.computeGraph();\n\n return dataSource;\n};\n\nexport class MockDataSource implements DataSource {\n objects: Record<\n string,\n {\n schema: S.Schema.All;\n typeDxn: string;\n id: string;\n data: unknown;\n }\n > = {};\n\n schema: Record<\n string,\n {\n json: JsonSchemaType;\n instance: S.Schema.All;\n }\n > = {};\n\n nodes: Node[] = [];\n relationships: Relationship[] = [];\n\n async getNodes({ label }: { label?: string }) {\n return this.nodes.filter((node) => !label || node.label === label);\n }\n\n async getRelationships({ label }: { label?: string }) {\n return this.relationships.filter((relationship) => !label || relationship.label === label);\n }\n\n add<S extends S.Schema.All>(schema: S, data: S.Schema.Type<S>) {\n invariant(typeof data.id === 'string', 'Data must have an id');\n const jsonSchema = toJsonSchema(schema);\n if (!this.schema[jsonSchema.$id!]) {\n this.schema[jsonSchema.$id!] = {\n json: jsonSchema,\n instance: schema,\n };\n }\n\n const typenameDxn = jsonSchema.$id ?? raise(new Error('Schema must have $id'));\n\n this.objects[data.id] = {\n schema,\n id: data.id,\n typeDxn: typenameDxn,\n data,\n };\n\n return data;\n }\n\n computeGraph() {\n this.nodes = [];\n this.relationships = [];\n\n for (const object of Object.values(this.objects)) {\n this.nodes.push({\n kind: 'node',\n id: object.id,\n label: formatNodeLabel(object.typeDxn),\n properties: object.data as any,\n });\n }\n\n for (const object of Object.values(this.objects)) {\n const schema = this.schema[object.typeDxn].json;\n const typenameDxn = schema.$id ?? raise(new Error('Schema must have $id'));\n\n for (const [name, propSchema] of Object.entries(schema.properties!)) {\n if (propSchema.$id === JSON_SCHEMA_ECHO_REF_ID) {\n const label = formatInferredRelationshipLabel(typenameDxn, name);\n\n const source = this.nodes.find((node) => node.id === object.id);\n if (!source) {\n continue;\n }\n\n const { id: targetId } = (object.data as any)[name].target;\n\n const target = this.nodes.find((node) => node.id === targetId);\n if (!target) {\n continue;\n }\n\n this.relationships.push({\n kind: 'relationship',\n id: `${object.id}-${name}-${target.id}`,\n label,\n properties: {},\n source,\n target,\n });\n } else if (\n propSchema.type === 'array' &&\n propSchema.items &&\n typeof propSchema.items === 'object' &&\n '$id' in propSchema.items &&\n propSchema.items.$id === JSON_SCHEMA_ECHO_REF_ID\n ) {\n const label = formatInferredRelationshipLabel(typenameDxn, name);\n\n const source = this.nodes.find((node) => node.id === object.id);\n if (!source) {\n continue;\n }\n\n for (const { id: targetId } of (object.data as any)[name].map((x: Ref<any>) => x.target)) {\n const target = this.nodes.find((node) => node.id === targetId);\n if (!target) {\n continue;\n }\n\n this.relationships.push({\n kind: 'relationship',\n id: `${object.id}-${name}-${targetId}`,\n label,\n properties: {},\n source,\n target,\n });\n }\n }\n }\n }\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema as S } from '@effect/schema';\n\nimport { EntityKind, ObjectAnnotationId, Ref } from '@dxos/echo-schema';\n\n// TODO(burdon): Reconcile with sdk/schema/testing.\n// TODO(burdon): Convert interface to type.\n\n// TODO(dmaretskyi): Extract.\nexport const ObjectId = S.String.annotations({ description: 'The unique object identifier.' });\n\nexport const Contact = S.Struct({\n id: ObjectId,\n name: S.String.annotations({ description: 'The name of the person.' }),\n email: S.optional(S.String).annotations({ description: 'Email address.' }),\n})\n .pipe(S.mutable)\n .annotations({\n [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Contact',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Contact extends S.Schema.Type<typeof Contact> {}\n\nexport const Project = S.Struct({\n id: ObjectId,\n name: S.String.annotations({ description: 'The name of the project.' }),\n description: S.optional(S.String).annotations({ description: 'The description of the project.' }),\n})\n .pipe(S.mutable)\n .annotations({\n [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Project',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Project extends S.Schema.Type<typeof Project> {}\n\nexport const Task = S.Struct({\n id: ObjectId,\n name: S.String.annotations({ description: 'The name of the task.' }),\n description: S.optional(S.String).annotations({ description: 'The description of the task.' }),\n project: Ref(Project),\n assignee: Ref(Contact),\n})\n .pipe(S.mutable)\n .annotations({\n [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Task',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Task extends S.Schema.Type<typeof Task> {}\n\nexport const Org = S.Struct({\n id: ObjectId,\n name: S.String.annotations({ description: 'The name of the organization.' }),\n projects: S.Array(Ref(Project)),\n employees: S.Array(Ref(Contact)),\n})\n .pipe(S.mutable)\n .annotations({\n [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Org',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Org extends S.Schema.Type<typeof Org> {}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// TODO(burdon): Remove/Reconcile with @dxos/assistant-testing.\nexport const AI_SERVICE_ENDPOINT = {\n LOCAL: 'http://localhost:8788',\n REMOTE: 'https://ai-service.dxos.workers.dev',\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { ImageSource, MessageContentBlock } from '@dxos/artifact';\n\nimport type { ConversationEvent } from '../conversation';\n\nexport const createLogger = ({\n stream,\n filter,\n onImage,\n}: {\n stream?: boolean;\n filter?: (event: ConversationEvent) => boolean;\n onImage?: (img: { id: string; description?: string; source: ImageSource }) => void;\n} = {}) => {\n const images: Record<string, any> = {};\n let currentText = '';\n\n return (event: ConversationEvent) => {\n if (typeof filter === 'function' && !filter(event)) {\n return;\n }\n\n const printContentBlock = (content: MessageContentBlock) => {\n switch (content.type) {\n case 'text':\n process.stdout.write(content.text);\n break;\n case 'tool_use':\n process.stdout.write(`⚙️ [Tool Use] ${content.name}\\n`);\n break;\n case 'image': {\n if (content.id && content.source) {\n images[content.id] = content.source;\n }\n process.stdout.write(`[Image id=${content.id} mediaType=${content.source?.mediaType}]`);\n break;\n }\n }\n };\n\n const onTextBlockPrinted = (text: string) => {\n const imageMatch = text.match(/<image id=\"([^\"]+)\"(?:\\s+prompt=\"([^\"]+)\")?\\s*\\/>/);\n if (imageMatch && onImage && images[imageMatch[1]]) {\n onImage({\n id: imageMatch[1],\n description: imageMatch[2], // Extract prompt as description if present\n source: images[imageMatch[1]],\n });\n }\n };\n\n if (stream) {\n switch (event.type) {\n case 'message_start': {\n process.stdout.write(`${event.message.role.toUpperCase()}\\n\\n`);\n for (const content of event.message.content) {\n printContentBlock(content);\n }\n break;\n }\n case 'content_block_start': {\n currentText = '';\n printContentBlock(event.content);\n break;\n }\n case 'content_block_delta': {\n switch (event.delta.type) {\n case 'text_delta': {\n currentText += event.delta.text;\n process.stdout.write(event.delta.text);\n break;\n }\n case 'input_json_delta': {\n process.stdout.write(event.delta.partial_json);\n break;\n }\n }\n break;\n }\n case 'content_block_stop': {\n process.stdout.write('\\n');\n onTextBlockPrinted(currentText);\n currentText = '';\n break;\n }\n case 'message_delta': {\n break;\n }\n case 'message_stop': {\n process.stdout.write('\\n\\n');\n break;\n }\n }\n }\n\n switch (event.type) {\n case 'message': {\n if (!stream || event.message.role !== 'assistant') {\n process.stdout.write(`${event.message.role.toUpperCase()}\\n\\n`);\n for (const block of event.message.content) {\n switch (block.type) {\n case 'text':\n process.stdout.write(block.text + '\\n');\n onTextBlockPrinted(block.text);\n break;\n case 'tool_use':\n process.stdout.write(`⚙️ [Tool Use] ${block.name}\\n`);\n process.stdout.write(` ${JSON.stringify(block.input)}\\n`);\n break;\n case 'tool_result':\n if (block.isError) {\n process.stdout.write('❌ [Tool Error]\\n');\n process.stdout.write(block.content + '\\n');\n } else {\n process.stdout.write('✅ [Tool Success]\\n');\n process.stdout.write(block.content + '\\n');\n }\n }\n process.stdout.write('\\n\\n');\n }\n }\n break;\n }\n }\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema as S } from '@effect/schema';\n\nimport { defineTool, ToolResult } from '@dxos/artifact';\nimport { toJsonSchema } from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\n\nimport { executeQuery, formatJsonSchemaForLLM, type DataSource } from '../cypher';\nimport { trim } from '../util';\n\nexport const createCypherTool = (dataSource: DataSource, schemaTypes: S.Schema.Any[] = []) =>\n defineTool('dxos.org/echo', {\n name: 'query',\n description:\n 'Query the ECHO graph database in cypher query language. Returns data from the database.' +\n (schemaTypes.length > 0 ? `\\n\\n${createSystemPrompt(schemaTypes)}` : ''),\n schema: S.Struct({\n query: S.String.annotations({\n description: `\n A valid cypher query string to execute.\n Query must have one MATCH clause.\n Match clause can have multiple patterns but they must all be connected via a relationship chain.\n Query might have zero or one WHERE clauses.\n Query must have one RETURN clause.\n RETURN clause can have multiple expressions separated by commas.\n DISTINCT keyword is not allowed.\n\n <example>\n MATCH (n:Person) RETURN n.name\n </example>\n\n <example>\n MATCH (s:Studio)-[:PRODUCED]->(m:Movie)-[:PRODUCED_IN]->(c:City {name: \"Las Vegas\"}) RETURN s\n </example>\n \n <example>\n MATCH (a:Actor)-[:STARRED_IN]->(m:Movie)<-[:PRODUCED]-(s:Studio {name: \"Cinema Pictures\"}) WHERE m.name = \"Once upon a time\" RETURN m.name, a.name\n </example>\n `,\n }),\n }),\n execute: async ({ query }) => {\n try {\n log('cypher query', { query });\n const results = await executeQuery(dataSource, query);\n log('query complete', { results });\n return ToolResult.Success(results);\n } catch (e: any) {\n log.catch(e);\n return ToolResult.Error(e.message);\n }\n },\n });\n\nexport const createSystemPrompt = (schemaTypes: S.Schema.Any[]) => trim`\n You have access to ECHO graph database. You can query the database to get data to satisfy user prompts.\n\n Database schema is defined in pseud-cypher syntax. The schema is:\n\n <schema>\n ${formatJsonSchemaForLLM(schemaTypes.map((schema) => toJsonSchema(schema)))}\n <schema>\n\n Before replying always think step-by-step on how to proceed.\n Print your thoughts inside <cot> tags.\n \n <example>\n <cot>To answer the question I need to ...</cot>\n </example>\n\n Before answering the user's question, decide what tools you need to use to answer the question.\n`;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Schema as S } from '@effect/schema';\n\nimport { raise } from '@dxos/debug';\nimport type { EchoDatabase } from '@dxos/echo-db';\nimport { JSON_SCHEMA_ECHO_REF_ID, ObjectId, toJsonSchema, type JsonSchemaType, type Ref } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { create, makeRef } from '@dxos/live-object';\n\nimport {\n type DataSource,\n type Node,\n type Relationship,\n formatInferredRelationshipLabel,\n formatNodeLabel,\n} from '../cypher';\nimport { Contact, Org, Project, Task } from '../testing';\n\nexport const seedTestData = (db: EchoDatabase) => {\n const contactRich = db.add(\n create(Contact, {\n name: 'Rich',\n }),\n );\n const contactJosiah = db.add(\n create(Contact, {\n name: 'Josiah',\n }),\n );\n const contactDima = db.add(\n create(Contact, {\n name: 'Dima',\n }),\n );\n const contactFred = db.add(\n create(Contact, {\n name: 'Fred',\n }),\n );\n\n const projectComposer = db.add(\n create(Project, {\n name: 'Composer',\n }),\n );\n const projectEcho = db.add(\n create(Project, {\n name: 'ECHO',\n }),\n );\n const projectDoodles = db.add(\n create(Project, {\n name: 'Doodles',\n }),\n );\n\n const _taskComposer1 = db.add(\n create(Task, {\n name: 'Optimize startup performance',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer2 = db.add(\n create(Task, {\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskComposer3 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer5 = db.add(\n create(Task, {\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskComposer4 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskEcho1 = db.add(\n create(Task, {\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n }),\n );\n const _taskEcho2 = db.add(\n create(Task, {\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskDoodles1 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskDoodles2 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n }),\n );\n\n const _orgDxos = db.add(\n create(Org, {\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n }),\n );\n const _orgBraneframe = db.add(\n create(Org, {\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(projectComposer)],\n }),\n );\n};\n\n// TODO(burdon): Use schema/testing.\nexport const createTestData = (): MockDataSource => {\n const dataSource = new MockDataSource();\n\n const contactRich = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Rich',\n });\n const contactJosiah = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Josiah',\n });\n const contactDima = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Dima',\n });\n const contactFred = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Fred',\n });\n\n const projectComposer = dataSource.add(Project, {\n id: ObjectId.random(),\n name: 'Composer',\n });\n const projectEcho = dataSource.add(Project, {\n id: ObjectId.random(),\n name: 'ECHO',\n });\n const projectDoodles = dataSource.add(Project, {\n id: ObjectId.random(),\n name: 'Doodles',\n });\n\n const _taskComposer1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Optimize startup performance',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskComposer3 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer5 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n });\n const _taskComposer4 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskEcho1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n });\n const _taskEcho2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n });\n const _taskDoodles1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n });\n const _taskDoodles2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n });\n\n const _orgDxos = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n });\n const _orgBraneframe = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(projectComposer)],\n });\n dataSource.computeGraph();\n\n return dataSource;\n};\n\nexport class MockDataSource implements DataSource {\n objects: Record<\n string,\n {\n schema: S.Schema.All;\n typeDxn: string;\n id: string;\n data: unknown;\n }\n > = {};\n\n schema: Record<\n string,\n {\n json: JsonSchemaType;\n instance: S.Schema.All;\n }\n > = {};\n\n nodes: Node[] = [];\n relationships: Relationship[] = [];\n\n async getNodes({ label }: { label?: string }) {\n return this.nodes.filter((node) => !label || node.label === label);\n }\n\n async getRelationships({ label }: { label?: string }) {\n return this.relationships.filter((relationship) => !label || relationship.label === label);\n }\n\n add<S extends S.Schema.All>(schema: S, data: S.Schema.Type<S>) {\n invariant(typeof data.id === 'string', 'Data must have an id');\n const jsonSchema = toJsonSchema(schema);\n if (!this.schema[jsonSchema.$id!]) {\n this.schema[jsonSchema.$id!] = {\n json: jsonSchema,\n instance: schema,\n };\n }\n\n const typenameDxn = jsonSchema.$id ?? raise(new Error('Schema must have $id'));\n\n this.objects[data.id] = {\n schema,\n id: data.id,\n typeDxn: typenameDxn,\n data,\n };\n\n return data;\n }\n\n computeGraph() {\n this.nodes = [];\n this.relationships = [];\n\n for (const object of Object.values(this.objects)) {\n this.nodes.push({\n kind: 'node',\n id: object.id,\n label: formatNodeLabel(object.typeDxn),\n properties: object.data as any,\n });\n }\n\n for (const object of Object.values(this.objects)) {\n const schema = this.schema[object.typeDxn].json;\n const typenameDxn = schema.$id ?? raise(new Error('Schema must have $id'));\n\n for (const [name, propSchema] of Object.entries(schema.properties!)) {\n if (propSchema.$id === JSON_SCHEMA_ECHO_REF_ID) {\n const label = formatInferredRelationshipLabel(typenameDxn, name);\n\n const source = this.nodes.find((node) => node.id === object.id);\n if (!source) {\n continue;\n }\n\n const { id: targetId } = (object.data as any)[name].target;\n\n const target = this.nodes.find((node) => node.id === targetId);\n if (!target) {\n continue;\n }\n\n this.relationships.push({\n kind: 'relationship',\n id: `${object.id}-${name}-${target.id}`,\n label,\n properties: {},\n source,\n target,\n });\n } else if (\n propSchema.type === 'array' &&\n propSchema.items &&\n typeof propSchema.items === 'object' &&\n '$id' in propSchema.items &&\n propSchema.items.$id === JSON_SCHEMA_ECHO_REF_ID\n ) {\n const label = formatInferredRelationshipLabel(typenameDxn, name);\n\n const source = this.nodes.find((node) => node.id === object.id);\n if (!source) {\n continue;\n }\n\n for (const { id: targetId } of (object.data as any)[name].map((x: Ref<any>) => x.target)) {\n const target = this.nodes.find((node) => node.id === targetId);\n if (!target) {\n continue;\n }\n\n this.relationships.push({\n kind: 'relationship',\n id: `${object.id}-${name}-${targetId}`,\n label,\n properties: {},\n source,\n target,\n });\n }\n }\n }\n }\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema as S } from '@effect/schema';\n\nimport { EntityKind, ObjectAnnotationId, Ref } from '@dxos/echo-schema';\n\n// TODO(burdon): Reconcile with sdk/schema/testing.\n// TODO(burdon): Convert interface to type.\n\n// TODO(dmaretskyi): Extract.\nexport const ObjectId = S.String.annotations({ description: 'The unique object identifier.' });\n\nexport const Contact = S.Struct({\n id: ObjectId,\n name: S.String.annotations({ description: 'The name of the person.' }),\n email: S.optional(S.String).annotations({ description: 'Email address.' }),\n})\n .pipe(S.mutable)\n .annotations({\n [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Contact',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Contact extends S.Schema.Type<typeof Contact> {}\n\nexport const Project = S.Struct({\n id: ObjectId,\n name: S.String.annotations({ description: 'The name of the project.' }),\n description: S.optional(S.String).annotations({ description: 'The description of the project.' }),\n})\n .pipe(S.mutable)\n .annotations({\n [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Project',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Project extends S.Schema.Type<typeof Project> {}\n\nexport const Task = S.Struct({\n id: ObjectId,\n name: S.String.annotations({ description: 'The name of the task.' }),\n description: S.optional(S.String).annotations({ description: 'The description of the task.' }),\n project: Ref(Project),\n assignee: Ref(Contact),\n})\n .pipe(S.mutable)\n .annotations({\n [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Task',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Task extends S.Schema.Type<typeof Task> {}\n\nexport const Org = S.Struct({\n id: ObjectId,\n name: S.String.annotations({ description: 'The name of the organization.' }),\n projects: S.Array(Ref(Project)),\n employees: S.Array(Ref(Contact)),\n})\n .pipe(S.mutable)\n .annotations({\n [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Org',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Org extends S.Schema.Type<typeof Org> {}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["AI_SERVICE_ENDPOINT", "LOCAL", "REMOTE", "createLogger", "stream", "filter", "onImage", "images", "currentText", "event", "printContentBlock", "content", "type", "process", "stdout", "write", "text", "name", "id", "source", "mediaType", "onTextBlockPrinted", "imageMatch", "match", "description", "message", "role", "toUpperCase", "delta", "partial_json", "block", "JSON", "stringify", "input", "isError", "Schema", "S", "defineTool", "ToolResult", "toJsonSchema", "log", "createCypherTool", "dataSource", "schemaTypes", "defineTool", "name", "description", "length", "createSystemPrompt", "schema", "S", "Struct", "query", "String", "annotations", "execute", "log", "results", "executeQuery", "ToolResult", "Success", "e", "catch", "Error", "message", "trim", "formatJsonSchemaForLLM", "map", "toJsonSchema", "raise", "JSON_SCHEMA_ECHO_REF_ID", "ObjectId", "toJsonSchema", "invariant", "create", "makeRef", "seedTestData", "db", "contactRich", "add", "create", "Contact", "name", "contactJosiah", "contactDima", "contactFred", "projectComposer", "Project", "projectEcho", "projectDoodles", "_taskComposer1", "Task", "project", "makeRef", "assignee", "_taskComposer2", "_taskComposer3", "_taskComposer5", "_taskComposer4", "_taskEcho1", "_taskEcho2", "_taskDoodles1", "_taskDoodles2", "_orgDxos", "Org", "employees", "projects", "_orgBraneframe", "createTestData", "dataSource", "MockDataSource", "id", "ObjectId", "random", "computeGraph", "objects", "schema", "nodes", "relationships", "getNodes", "label", "filter", "node", "getRelationships", "relationship", "data", "invariant", "jsonSchema", "toJsonSchema", "$id", "json", "instance", "typenameDxn", "raise", "Error", "typeDxn", "object", "Object", "values", "push", "kind", "formatNodeLabel", "properties", "propSchema", "entries", "JSON_SCHEMA_ECHO_REF_ID", "formatInferredRelationshipLabel", "source", "find", "targetId", "target", "type", "items", "map", "x", "Schema", "S", "EntityKind", "ObjectAnnotationId", "Ref", "ObjectId", "S", "String", "annotations", "description", "Contact", "Struct", "id", "name", "email", "optional", "pipe", "mutable", "ObjectAnnotationId", "kind", "EntityKind", "Object", "typename", "version", "Project", "Task", "project", "Ref", "assignee", "Org", "projects", "Array", "employees"]
|
|
7
7
|
}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -29,6 +29,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
29
29
|
var node_exports = {};
|
|
30
30
|
__export(node_exports, {
|
|
31
31
|
AIServiceClientImpl: () => AIServiceClientImpl,
|
|
32
|
+
DEFAULT_LLM_MODEL: () => DEFAULT_LLM_MODEL,
|
|
33
|
+
DEFAULT_LLM_MODELS: () => DEFAULT_LLM_MODELS,
|
|
32
34
|
EchoDataSource: () => import_chunk_QPHGQINW.EchoDataSource,
|
|
33
35
|
GenerateRequest: () => GenerateRequest,
|
|
34
36
|
GenerationStream: () => GenerationStream,
|
|
@@ -402,7 +404,7 @@ var AIServiceClientImpl = class {
|
|
|
402
404
|
constructor({ endpoint }) {
|
|
403
405
|
(0, import_invariant.invariant)(endpoint, "endpoint is required", {
|
|
404
406
|
F: __dxlog_file2,
|
|
405
|
-
L:
|
|
407
|
+
L: 34,
|
|
406
408
|
S: this,
|
|
407
409
|
A: [
|
|
408
410
|
"endpoint",
|
|
@@ -411,16 +413,6 @@ var AIServiceClientImpl = class {
|
|
|
411
413
|
});
|
|
412
414
|
this._endpoint = endpoint;
|
|
413
415
|
}
|
|
414
|
-
async getSpace(spaceId) {
|
|
415
|
-
throw new Error("Not implemented");
|
|
416
|
-
}
|
|
417
|
-
async getThread(spaceId, threadId) {
|
|
418
|
-
throw new Error("Not implemented");
|
|
419
|
-
}
|
|
420
|
-
async getMessages(spaceId, threadId) {
|
|
421
|
-
const res = await fetch(`${this._endpoint}/space/${spaceId}/thread/${threadId}/message`);
|
|
422
|
-
return import_schema.Schema.decodePromise(import_schema.Schema.Array(import_artifact.Message).pipe(import_schema.Schema.mutable))((await res.json()).data.results);
|
|
423
|
-
}
|
|
424
416
|
async appendMessages(messages) {
|
|
425
417
|
const url = `${this._endpoint}/message`;
|
|
426
418
|
const res = await fetch(url, {
|
|
@@ -436,14 +428,10 @@ var AIServiceClientImpl = class {
|
|
|
436
428
|
throw new Error(`${await res.text()} [${url}]`);
|
|
437
429
|
}
|
|
438
430
|
}
|
|
439
|
-
// TODO(dmaretskyi): Accept partial message schema.
|
|
440
|
-
async updateMessage(spaceId, threadId, messageId, message) {
|
|
441
|
-
throw new Error("Not implemented");
|
|
442
|
-
}
|
|
443
431
|
/**
|
|
444
|
-
*
|
|
432
|
+
* Process request and open message stream.
|
|
445
433
|
*/
|
|
446
|
-
async
|
|
434
|
+
async exec(request) {
|
|
447
435
|
request = {
|
|
448
436
|
tools: request.tools ?? [],
|
|
449
437
|
...request
|
|
@@ -452,7 +440,7 @@ var AIServiceClientImpl = class {
|
|
|
452
440
|
endpoint: this._endpoint
|
|
453
441
|
}, {
|
|
454
442
|
F: __dxlog_file2,
|
|
455
|
-
L:
|
|
443
|
+
L: 63,
|
|
456
444
|
S: this,
|
|
457
445
|
C: (f, a) => f(...a)
|
|
458
446
|
});
|
|
@@ -467,7 +455,7 @@ var AIServiceClientImpl = class {
|
|
|
467
455
|
});
|
|
468
456
|
(0, import_invariant.invariant)(response.body instanceof ReadableStream, void 0, {
|
|
469
457
|
F: __dxlog_file2,
|
|
470
|
-
L:
|
|
458
|
+
L: 72,
|
|
471
459
|
S: this,
|
|
472
460
|
A: [
|
|
473
461
|
"response.body instanceof ReadableStream",
|
|
@@ -477,6 +465,21 @@ var AIServiceClientImpl = class {
|
|
|
477
465
|
return createGenerationStream(response, controller);
|
|
478
466
|
}
|
|
479
467
|
};
|
|
468
|
+
var DEFAULT_LLM_MODEL = "@anthropic/claude-3-5-sonnet-20241022";
|
|
469
|
+
var DEFAULT_LLM_MODELS = [
|
|
470
|
+
// AI Gateway.
|
|
471
|
+
// https://developers.cloudflare.com/ai-gateway
|
|
472
|
+
"@anthropic/claude-3-5-haiku-20241022",
|
|
473
|
+
"@anthropic/claude-3-5-sonnet-20241022",
|
|
474
|
+
"@anthropic/claude-3-7-sonnet-20250219",
|
|
475
|
+
// Workers AI.
|
|
476
|
+
// https://developers.cloudflare.com/workers-ai/models
|
|
477
|
+
"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",
|
|
478
|
+
"@hf/nousresearch/hermes-2-pro-mistral-7b",
|
|
479
|
+
"@ollama/llama-3-1-nemotron-70b-instruct",
|
|
480
|
+
"@ollama/llama-3-1-nemotron-mini-4b-instruct",
|
|
481
|
+
"@ollama/llama-3-2-3b"
|
|
482
|
+
];
|
|
480
483
|
var textChunk = P.regexp(/[^<]+/).map((content) => ({
|
|
481
484
|
type: "text",
|
|
482
485
|
content
|
|
@@ -925,7 +928,7 @@ var mergeMessageBlock = (contentBlock, streamBlock) => {
|
|
|
925
928
|
}
|
|
926
929
|
};
|
|
927
930
|
var createArtifactElement = (id) => `<artifact id=${id} />`;
|
|
928
|
-
var LLMModel = import_schema2.Schema.Literal(
|
|
931
|
+
var LLMModel = import_schema2.Schema.Literal(...DEFAULT_LLM_MODELS);
|
|
929
932
|
var ToolTypes = Object.freeze({
|
|
930
933
|
// TODO(dmaretskyi): Not implemented yet.
|
|
931
934
|
// DatabaseQuery: 'database_query',
|
|
@@ -934,13 +937,14 @@ var ToolTypes = Object.freeze({
|
|
|
934
937
|
var GenerateRequest = import_schema2.Schema.Struct({
|
|
935
938
|
spaceId: import_schema2.Schema.optional(import_artifact3.SpaceIdSchema),
|
|
936
939
|
threadId: import_schema2.Schema.optional(import_echo_schema2.ObjectId),
|
|
937
|
-
// TODO(burdon): Make optional with default.
|
|
938
|
-
model: LLMModel,
|
|
939
940
|
/**
|
|
940
|
-
*
|
|
941
|
+
* Preferred model or system default.
|
|
941
942
|
*/
|
|
942
|
-
|
|
943
|
-
|
|
943
|
+
model: import_schema2.Schema.optional(LLMModel),
|
|
944
|
+
/**
|
|
945
|
+
* Tools available for the LLM.
|
|
946
|
+
*/
|
|
947
|
+
tools: import_schema2.Schema.optional(import_schema2.Schema.Array(import_artifact3.Tool).pipe(import_schema2.Schema.mutable)),
|
|
944
948
|
/**
|
|
945
949
|
* System instructions to the LLM.
|
|
946
950
|
*/
|
|
@@ -948,11 +952,12 @@ var GenerateRequest = import_schema2.Schema.Struct({
|
|
|
948
952
|
/**
|
|
949
953
|
* History of messages to include in the context window.
|
|
950
954
|
*/
|
|
955
|
+
// TODO(burdon): Rename messages.
|
|
951
956
|
history: import_schema2.Schema.optional(import_schema2.Schema.Array(import_artifact3.Message)),
|
|
952
957
|
/**
|
|
953
|
-
*
|
|
958
|
+
* Current request.
|
|
954
959
|
*/
|
|
955
|
-
|
|
960
|
+
prompt: import_schema2.Schema.optional(import_artifact3.Message)
|
|
956
961
|
});
|
|
957
962
|
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/experimental/assistant/src/conversation/conversation.ts";
|
|
958
963
|
var runLLM = async (params) => {
|
|
@@ -968,7 +973,7 @@ var runLLM = async (params) => {
|
|
|
968
973
|
C: (f, a) => f(...a)
|
|
969
974
|
});
|
|
970
975
|
const beginTs = Date.now();
|
|
971
|
-
const stream = await params.client.
|
|
976
|
+
const stream = await params.client.exec({
|
|
972
977
|
model: params.model,
|
|
973
978
|
spaceId: params.spaceId,
|
|
974
979
|
threadId: params.threadId,
|
|
@@ -1250,6 +1255,8 @@ var runTools = async ({ message, tools, extensions }) => {
|
|
|
1250
1255
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1251
1256
|
0 && (module.exports = {
|
|
1252
1257
|
AIServiceClientImpl,
|
|
1258
|
+
DEFAULT_LLM_MODEL,
|
|
1259
|
+
DEFAULT_LLM_MODELS,
|
|
1253
1260
|
EchoDataSource,
|
|
1254
1261
|
GenerateRequest,
|
|
1255
1262
|
GenerationStream,
|