kimaki 0.0.3 → 0.1.2
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/README.md +7 -0
- package/bin.js +63 -1
- package/dist/ai-tool-to-genai.js +207 -0
- package/dist/ai-tool-to-genai.test.js +267 -0
- package/dist/cli.js +348 -0
- package/dist/directVoiceStreaming.js +102 -0
- package/dist/discordBot.js +1760 -0
- package/dist/genai-worker-wrapper.js +104 -0
- package/dist/genai-worker.js +293 -0
- package/dist/genai.js +224 -0
- package/dist/logger.js +10 -0
- package/dist/markdown.js +203 -0
- package/dist/markdown.test.js +232 -0
- package/dist/openai-realtime.js +228 -0
- package/dist/plugin.js +1414 -0
- package/dist/tools.js +353 -0
- package/dist/utils.js +52 -0
- package/dist/voice.js +28 -0
- package/dist/worker-types.js +1 -0
- package/dist/xml.js +89 -0
- package/dist/xml.test.js +32 -0
- package/package.json +37 -56
- package/src/ai-tool-to-genai.test.ts +296 -0
- package/src/ai-tool-to-genai.ts +251 -0
- package/src/cli.ts +539 -0
- package/src/discordBot.ts +2356 -0
- package/src/genai-worker-wrapper.ts +152 -0
- package/src/genai-worker.ts +361 -0
- package/src/genai.ts +308 -0
- package/src/logger.ts +16 -0
- package/src/markdown.test.ts +314 -0
- package/src/markdown.ts +229 -0
- package/src/openai-realtime.ts +363 -0
- package/src/tools.ts +422 -0
- package/src/utils.ts +73 -0
- package/src/voice.ts +42 -0
- package/src/worker-types.ts +60 -0
- package/src/xml.test.ts +37 -0
- package/src/xml.ts +117 -0
- package/dist/bin.d.ts +0 -3
- package/dist/bin.d.ts.map +0 -1
- package/dist/bin.js +0 -4
- package/dist/bin.js.map +0 -1
- package/dist/bundle.js +0 -3124
- package/dist/cli.d.ts.map +0 -1
package/src/xml.ts
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { DomHandler, Parser, ElementType } from 'htmlparser2'
|
|
2
|
+
import type { ChildNode, Element, Text } from 'domhandler'
|
|
3
|
+
import { createLogger } from './logger.js'
|
|
4
|
+
|
|
5
|
+
const xmlLogger = createLogger('XML')
|
|
6
|
+
|
|
7
|
+
export function extractTagsArrays<T extends string>({
|
|
8
|
+
xml,
|
|
9
|
+
tags,
|
|
10
|
+
}: {
|
|
11
|
+
xml: string
|
|
12
|
+
tags: T[]
|
|
13
|
+
}): Record<T, string[]> & { others: string[] } {
|
|
14
|
+
const result: Record<string, string[]> = {
|
|
15
|
+
others: [],
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Initialize arrays for each tag
|
|
19
|
+
tags.forEach((tag) => {
|
|
20
|
+
result[tag] = []
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
const handler = new DomHandler(
|
|
25
|
+
(error, dom) => {
|
|
26
|
+
if (error) {
|
|
27
|
+
xmlLogger.error('Error parsing XML:', error)
|
|
28
|
+
} else {
|
|
29
|
+
const findTags = (nodes: ChildNode[], path: string[] = []) => {
|
|
30
|
+
nodes.forEach((node) => {
|
|
31
|
+
if (node.type === ElementType.Tag) {
|
|
32
|
+
const element = node as Element
|
|
33
|
+
const currentPath = [...path, element.name]
|
|
34
|
+
const pathString = currentPath.join('.')
|
|
35
|
+
|
|
36
|
+
// Extract content using original string positions
|
|
37
|
+
const extractContent = (): string => {
|
|
38
|
+
// Use element's own indices but exclude the tags
|
|
39
|
+
if (
|
|
40
|
+
element.startIndex !== null &&
|
|
41
|
+
element.endIndex !== null
|
|
42
|
+
) {
|
|
43
|
+
// Extract the full element including tags
|
|
44
|
+
const fullElement = xml.substring(
|
|
45
|
+
element.startIndex,
|
|
46
|
+
element.endIndex + 1,
|
|
47
|
+
)
|
|
48
|
+
// Find where content starts (after opening tag)
|
|
49
|
+
const contentStart = fullElement.indexOf('>') + 1
|
|
50
|
+
// Find where content ends (before this element's closing tag)
|
|
51
|
+
const closingTag = `</${element.name}>`
|
|
52
|
+
const contentEnd = fullElement.lastIndexOf(closingTag)
|
|
53
|
+
|
|
54
|
+
if (contentStart > 0 && contentEnd > contentStart) {
|
|
55
|
+
return fullElement.substring(contentStart, contentEnd)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return ''
|
|
59
|
+
}
|
|
60
|
+
return ''
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Check both single tag names and nested paths
|
|
64
|
+
if (tags.includes(element.name as T)) {
|
|
65
|
+
const content = extractContent()
|
|
66
|
+
result[element.name as T]?.push(content)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Check for nested path matches
|
|
70
|
+
if (tags.includes(pathString as T)) {
|
|
71
|
+
const content = extractContent()
|
|
72
|
+
result[pathString as T]?.push(content)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (element.children) {
|
|
76
|
+
findTags(element.children, currentPath)
|
|
77
|
+
}
|
|
78
|
+
} else if (
|
|
79
|
+
node.type === ElementType.Text &&
|
|
80
|
+
node.parent?.type === ElementType.Root
|
|
81
|
+
) {
|
|
82
|
+
const textNode = node as Text
|
|
83
|
+
if (textNode.data.trim()) {
|
|
84
|
+
// console.log('node.parent',node.parent)
|
|
85
|
+
result.others?.push(textNode.data.trim())
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
})
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
findTags(dom)
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
withStartIndices: true,
|
|
96
|
+
withEndIndices: true,
|
|
97
|
+
xmlMode: true,
|
|
98
|
+
},
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
const parser = new Parser(handler, {
|
|
102
|
+
xmlMode: true,
|
|
103
|
+
decodeEntities: false,
|
|
104
|
+
})
|
|
105
|
+
parser.write(xml)
|
|
106
|
+
parser.end()
|
|
107
|
+
} catch (error) {
|
|
108
|
+
xmlLogger.error('Unexpected error in extractTags:', error)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return result as Record<T, string[]> & { others: string[] }
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export function extractNonXmlContent(xml: string): string {
|
|
115
|
+
const result = extractTagsArrays({ xml, tags: [] })
|
|
116
|
+
return result.others.join('\n')
|
|
117
|
+
}
|
package/dist/bin.d.ts
DELETED
package/dist/bin.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":""}
|
package/dist/bin.js
DELETED
package/dist/bin.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B,GAAG,CAAC,KAAK,EAAE,CAAA"}
|