@elvisw/dsh-magic-context 0.0.0-stage → 0.13.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/LICENSE +23 -0
- package/NOTICE +93 -0
- package/README.md +452 -2
- package/README.zh-CN.md +368 -0
- package/cordis.patch.yml +20 -0
- package/lib/client.js +2270 -0
- package/lib/core/compartments.js +424 -0
- package/lib/core/corpus-store.js +176 -0
- package/lib/core/directive-detect.js +147 -0
- package/lib/core/domain-reconcile.js +394 -0
- package/lib/core/domains.js +127 -0
- package/lib/core/embedding-local.js +247 -0
- package/lib/core/global-autostage.js +223 -0
- package/lib/core/global-domains.js +302 -0
- package/lib/core/journal.js +248 -0
- package/lib/core/llm-deadline.js +53 -0
- package/lib/core/machine-domain.js +106 -0
- package/lib/core/maintenance.js +380 -0
- package/lib/core/memory-bridge.js +818 -0
- package/lib/core/memory-categories.js +84 -0
- package/lib/core/memory-scoring.js +65 -0
- package/lib/core/memory-search.js +414 -0
- package/lib/core/memory-write.js +1176 -0
- package/lib/core/policy.js +111 -0
- package/lib/core/profile-confirmation.js +55 -0
- package/lib/core/profile-review.js +375 -0
- package/lib/core/profile-write.js +283 -0
- package/lib/core/reference-seeds.js +63 -0
- package/lib/core/route-health.js +106 -0
- package/lib/core/stores.js +1021 -0
- package/lib/core/tagger.js +7 -0
- package/lib/core/types.js +15 -0
- package/lib/core/vector-backfill.js +140 -0
- package/lib/core/vector-lane.js +184 -0
- package/lib/dsh/command-surface.js +376 -0
- package/lib/dsh/compaction-engine.js +231 -0
- package/lib/dsh/config-switches.js +56 -0
- package/lib/dsh/config.js +13 -0
- package/lib/dsh/context-pressure.js +36 -0
- package/lib/dsh/drop-landing.js +42 -0
- package/lib/dsh/emergency.js +89 -0
- package/lib/dsh/flush-command.js +148 -0
- package/lib/dsh/global-review.js +412 -0
- package/lib/dsh/historian.js +907 -0
- package/lib/dsh/live-journal.js +81 -0
- package/lib/dsh/maintenance-wiring.js +229 -0
- package/lib/dsh/management-pass.js +564 -0
- package/lib/dsh/memory-lane.js +535 -0
- package/lib/dsh/pre-step.js +675 -0
- package/lib/dsh/project-drift.js +116 -0
- package/lib/dsh/recomp.js +192 -0
- package/lib/dsh/reduce-guidance.js +188 -0
- package/lib/dsh/seams.js +588 -0
- package/lib/dsh/search-hint.js +186 -0
- package/lib/dsh/session-notice.js +100 -0
- package/lib/dsh/status-command.js +75 -0
- package/lib/dsh/telemetry.js +349 -0
- package/lib/dsh/tool-bridge.js +1009 -0
- package/lib/dsh/volatile.js +89 -0
- package/lib/index.js +931 -0
- package/package.json +108 -4
- package/tools/migrate-profile-package-name.mjs +317 -0
- package/vendor/onnx/LICENSE +27 -0
- package/vendor/onnx/ort-wasm-simd-threaded.mjs +59 -0
- package/vendor/onnx/ort-wasm-simd-threaded.wasm +0 -0
- package/vendor/onnx/ort.node.min.mjs +8 -0
package/package.json
CHANGED
|
@@ -1,6 +1,110 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elvisw/dsh-magic-context",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.13.0",
|
|
4
|
+
"description": "Magic Context for DeepSeek Harness — elvisw fork: reversible context reclaim, an out-of-band historian, an m[0]/m[1] baseline, project memories in the plugin's own corpus, and the compaction seam.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"deepseek-harness",
|
|
7
|
+
"dsh",
|
|
8
|
+
"dsh-plugin",
|
|
9
|
+
"magic-context",
|
|
10
|
+
"context-management",
|
|
11
|
+
"context-compaction",
|
|
12
|
+
"memory",
|
|
13
|
+
"llm",
|
|
14
|
+
"ai-agent",
|
|
15
|
+
"typescript"
|
|
16
|
+
],
|
|
17
|
+
"homepage": "https://github.com/elvisw/dsh-plugin-magic-context#readme",
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/elvisw/dsh-plugin-magic-context/issues"
|
|
20
|
+
},
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "git+https://github.com/elvisw/dsh-plugin-magic-context.git"
|
|
24
|
+
},
|
|
25
|
+
"type": "module",
|
|
26
|
+
"license": "MIT",
|
|
27
|
+
"author": "elvisw",
|
|
28
|
+
"contributors": [
|
|
29
|
+
"wukai"
|
|
30
|
+
],
|
|
31
|
+
"engines": {
|
|
32
|
+
"node": ">=22.19"
|
|
33
|
+
},
|
|
34
|
+
"main": "lib/index.js",
|
|
35
|
+
"exports": {
|
|
36
|
+
".": {
|
|
37
|
+
"default": "./lib/index.js"
|
|
38
|
+
},
|
|
39
|
+
"./client": "./lib/client.js",
|
|
40
|
+
"./cordis.patch.yml": "./cordis.patch.yml",
|
|
41
|
+
"./package.json": "./package.json"
|
|
42
|
+
},
|
|
43
|
+
"files": [
|
|
44
|
+
"lib",
|
|
45
|
+
"vendor",
|
|
46
|
+
"cordis.patch.yml",
|
|
47
|
+
"tools/migrate-profile-package-name.mjs",
|
|
48
|
+
"README.md",
|
|
49
|
+
"NOTICE",
|
|
50
|
+
"LICENSE"
|
|
51
|
+
],
|
|
52
|
+
"publishConfig": {
|
|
53
|
+
"access": "public",
|
|
54
|
+
"provenance": true
|
|
55
|
+
},
|
|
56
|
+
"dsh": {
|
|
57
|
+
"bundle": {
|
|
58
|
+
"patch": "./cordis.patch.yml"
|
|
59
|
+
},
|
|
60
|
+
"client": {
|
|
61
|
+
"platform": "web"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"scripts": {
|
|
65
|
+
"build": "tsc -p tsconfig.build.json && node scripts/copy-client.mjs",
|
|
66
|
+
"pack:dist": "node scripts/mc-pack-dist.mjs",
|
|
67
|
+
"typecheck": "tsc --noEmit",
|
|
68
|
+
"test": "vitest run",
|
|
69
|
+
"test:watch": "vitest",
|
|
70
|
+
"gate": "node scripts/mc-test.mjs --full",
|
|
71
|
+
"phase": "node scripts/mc-phase.mjs",
|
|
72
|
+
"check:i18n": "node scripts/mc-i18n-check.mjs",
|
|
73
|
+
"doctor": "node scripts/dsh-doctor.mjs",
|
|
74
|
+
"build:seeds": "node scripts/build-reference-seeds.mjs",
|
|
75
|
+
"prepublishOnly": "npm run build"
|
|
76
|
+
},
|
|
77
|
+
"peerDependencies": {
|
|
78
|
+
"@deepseek-ai/cordis": "*",
|
|
79
|
+
"@deepseek-ai/dsh-agent": "*",
|
|
80
|
+
"@deepseek-ai/dsh-compaction": "*",
|
|
81
|
+
"@deepseek-ai/dsh-llm": "*",
|
|
82
|
+
"@deepseek-ai/dsh-session": "*",
|
|
83
|
+
"@deepseek-ai/dsh-tools": "*",
|
|
84
|
+
"@deepseek-ai/schemastery": "*"
|
|
85
|
+
},
|
|
86
|
+
"devDependencies": {
|
|
87
|
+
"@deepseek-ai/cordis": "4.0.5",
|
|
88
|
+
"@deepseek-ai/dsh-agent": "0.2.1-rc.1",
|
|
89
|
+
"@deepseek-ai/dsh-agent-loop": "0.2.1-rc.1",
|
|
90
|
+
"@deepseek-ai/dsh-compaction": "0.2.1-rc.1",
|
|
91
|
+
"@deepseek-ai/dsh-compaction-basic": "0.2.1-rc.1",
|
|
92
|
+
"@deepseek-ai/dsh-llm": "0.2.1-rc.1",
|
|
93
|
+
"@deepseek-ai/dsh-session": "0.2.1-rc.1",
|
|
94
|
+
"@deepseek-ai/dsh-session-projection": "0.2.1-rc.1",
|
|
95
|
+
"@deepseek-ai/dsh-session-title": "0.2.1-rc.1",
|
|
96
|
+
"@deepseek-ai/dsh-system-prompt": "0.2.1-rc.1",
|
|
97
|
+
"@deepseek-ai/dsh-token-meter": "0.2.1-rc.1",
|
|
98
|
+
"@deepseek-ai/dsh-tools": "0.2.1-rc.1",
|
|
99
|
+
"@deepseek-ai/schemastery": "3.18.5",
|
|
100
|
+
"@huggingface/tokenizers": "0.2.0",
|
|
101
|
+
"@types/node": "^24.19.1",
|
|
102
|
+
"onnxruntime-common": "1.31.0-dev.20260911-2a43ec07e",
|
|
103
|
+
"typescript": "^5.9.3",
|
|
104
|
+
"vitest": "^4.1.8"
|
|
105
|
+
},
|
|
106
|
+
"dependencies": {
|
|
107
|
+
"@huggingface/tokenizers": "0.2.0",
|
|
108
|
+
"onnxruntime-common": "1.31.0-dev.20260911-2a43ec07e"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* One-time migration for the npm package rename.
|
|
4
|
+
*
|
|
5
|
+
* The DSH loader matches a profile/home/overlay patch row by BOTH `id` and
|
|
6
|
+
* `name`. `dsh plugin add/remove` does not rewrite `cordis.patch.yml`, so a
|
|
7
|
+
* 0.12.x row still saying the old package name is skipped after the package
|
|
8
|
+
* is replaced: its `config` (including a custom `dataDir`) silently stops
|
|
9
|
+
* applying. This helper changes only that row's `name` line.
|
|
10
|
+
*
|
|
11
|
+
* Conservative by design: no YAML dependency, no guess when the file is not
|
|
12
|
+
* a plain block-style mapping. It refuses flow-style, anchors/aliases,
|
|
13
|
+
* multi-document files, duplicate target rows and unknown names.
|
|
14
|
+
*/
|
|
15
|
+
import { copyFileSync, existsSync, readFileSync, renameSync, statSync, writeFileSync } from 'node:fs'
|
|
16
|
+
import { dirname, join, resolve } from 'node:path'
|
|
17
|
+
import { fileURLToPath } from 'node:url'
|
|
18
|
+
|
|
19
|
+
export const TARGET_ID = 'magic-context-dsh'
|
|
20
|
+
export const NEW_NAME = '@elvisw/dsh-magic-context'
|
|
21
|
+
export const OLD_NAMES = [
|
|
22
|
+
'@elvisw/dsh-plugin-magic-context',
|
|
23
|
+
'dsh-plugin-magic-context',
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
const isOld = (name) => OLD_NAMES.includes(name)
|
|
27
|
+
const isNew = (name) => name === NEW_NAME
|
|
28
|
+
|
|
29
|
+
const stripQuotes = (value) => {
|
|
30
|
+
const text = value.trim()
|
|
31
|
+
if (text.length >= 2 && ((text.startsWith("'") && text.endsWith("'")) || (text.startsWith('"') && text.endsWith('"')))) {
|
|
32
|
+
return text.slice(1, -1)
|
|
33
|
+
}
|
|
34
|
+
return text
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Split `value # comment` outside single/double quotes. */
|
|
38
|
+
const splitTrailingComment = (value) => {
|
|
39
|
+
let quote = ''
|
|
40
|
+
for (let i = 0; i < value.length; i += 1) {
|
|
41
|
+
const char = value[i]
|
|
42
|
+
if (quote !== '') {
|
|
43
|
+
if (char === quote) quote = ''
|
|
44
|
+
continue
|
|
45
|
+
}
|
|
46
|
+
if (char === "'" || char === '"') {
|
|
47
|
+
quote = char
|
|
48
|
+
continue
|
|
49
|
+
}
|
|
50
|
+
if (char === '#' && (i === 0 || /\s/.test(value[i - 1]))) {
|
|
51
|
+
return { value: value.slice(0, i).trimEnd(), comment: value.slice(i) }
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return { value: value.trimEnd(), comment: '' }
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const quoteLike = (name, original) => {
|
|
58
|
+
const text = original.trim()
|
|
59
|
+
if (text.startsWith('"')) return `"${name}"`
|
|
60
|
+
if (text.startsWith("'")) return `'${name}'`
|
|
61
|
+
// An unquoted @/scope is not a safe YAML plain scalar; write a quoted one.
|
|
62
|
+
return `'${name}'`
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const indentOf = (line) => line.length - line.trimStart().length
|
|
66
|
+
const isBlankOrComment = (line) => line.trim() === '' || line.trimStart().startsWith('#')
|
|
67
|
+
|
|
68
|
+
const refuse = (state, message) => ({ state, changed: false, error: message })
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Pure text migration. Returns `{ state, changed, text, error?, line? }`.
|
|
72
|
+
* States: no-target, already-migrated, id-only, rewritten, refused.
|
|
73
|
+
*/
|
|
74
|
+
export function migratePatchText(text, options = {}) {
|
|
75
|
+
const targetId = options.targetId ?? TARGET_ID
|
|
76
|
+
const newName = options.newName ?? NEW_NAME
|
|
77
|
+
const oldNames = options.oldNames ?? OLD_NAMES
|
|
78
|
+
const lines = text.split('\n').map((raw) => {
|
|
79
|
+
const cr = raw.endsWith('\r')
|
|
80
|
+
return { text: cr ? raw.slice(0, -1) : raw, cr }
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
// A leading `---` is tolerated; a second one means a multi-document file.
|
|
84
|
+
const documentMarkers = lines
|
|
85
|
+
.map((line, index) => ({ line: line.text, index }))
|
|
86
|
+
.filter(({ line }) => /^---(?:\s*#.*)?$/.test(line) || /^\.\.\.\s*$/.test(line))
|
|
87
|
+
if (documentMarkers.length > 1 || (documentMarkers.length === 1 && documentMarkers[0].index !== 0)) {
|
|
88
|
+
return refuse('refused', 'multi-document YAML is not supported')
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const idLines = []
|
|
92
|
+
let unresolvedId = false
|
|
93
|
+
for (let index = 0; index < lines.length; index += 1) {
|
|
94
|
+
const line = lines[index].text
|
|
95
|
+
if (!line.includes(targetId)) continue
|
|
96
|
+
if (line.includes('{') || line.includes('[')) {
|
|
97
|
+
return refuse('refused', `flow-style target row at line ${index + 1}`)
|
|
98
|
+
}
|
|
99
|
+
const match = /^(\s*)(?:-\s*)?id:\s*(?:"([^"]*)"|'([^']*)'|([^#\s]+))\s*(?:#.*)?$/.exec(line)
|
|
100
|
+
if (match === null) {
|
|
101
|
+
if (!isBlankOrComment(line) && /(?:^|\s)["']?id["']?\s*:/.test(line)) unresolvedId = true
|
|
102
|
+
continue
|
|
103
|
+
}
|
|
104
|
+
const id = match[2] ?? match[3] ?? match[4]
|
|
105
|
+
if (id === targetId) idLines.push({ index, indent: match[1].length, dashed: /^\s*-\s*/.test(line) })
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (idLines.length === 0) {
|
|
109
|
+
if (unresolvedId) return refuse('refused', `could not safely locate the ${targetId} row`)
|
|
110
|
+
const names = lines
|
|
111
|
+
.map((line) => /^\s*name:\s*(.*)$/.exec(line.text))
|
|
112
|
+
.filter(Boolean)
|
|
113
|
+
.map((match) => stripQuotes(splitTrailingComment(match[1]).value))
|
|
114
|
+
if (names.some((name) => isNew(name))) {
|
|
115
|
+
return refuse('refused', `a ${newName} row exists but no ${targetId} row was found`)
|
|
116
|
+
}
|
|
117
|
+
return { state: 'no-target', changed: false, text }
|
|
118
|
+
}
|
|
119
|
+
if (idLines.length > 1) {
|
|
120
|
+
return refuse('refused', `multiple ${targetId} rows`)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const target = idLines[0]
|
|
124
|
+
|
|
125
|
+
// Nearest enclosing line with less indentation. For a dashed row this finds
|
|
126
|
+
// a parent (for example a bundle `- insert:`); for a bare `-` item it finds
|
|
127
|
+
// the item line that owns the following keys.
|
|
128
|
+
let ancestor = -1
|
|
129
|
+
for (let index = target.index - 1; index >= 0; index -= 1) {
|
|
130
|
+
const line = lines[index].text
|
|
131
|
+
if (isBlankOrComment(line)) continue
|
|
132
|
+
if (indentOf(line) < target.indent) {
|
|
133
|
+
ancestor = index
|
|
134
|
+
break
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const ownerLine = ancestor === -1 ? '' : lines[ancestor].text
|
|
138
|
+
if (/^\s*-\s*insert\s*:/.test(ownerLine)) {
|
|
139
|
+
return refuse('refused', `insert row for ${targetId} is not a config override`)
|
|
140
|
+
}
|
|
141
|
+
if (!target.dashed) {
|
|
142
|
+
if (ancestor === -1 || !/^\s*-\s*(?:$|#|.*:)/.test(ownerLine)) {
|
|
143
|
+
return refuse('refused', `id is not a config override row`)
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
let end = target.index + 1
|
|
148
|
+
while (end < lines.length) {
|
|
149
|
+
const line = lines[end].text
|
|
150
|
+
if (isBlankOrComment(line)) {
|
|
151
|
+
end += 1
|
|
152
|
+
continue
|
|
153
|
+
}
|
|
154
|
+
const indent = indentOf(line)
|
|
155
|
+
if (indent <= target.indent) break
|
|
156
|
+
end += 1
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// A `name:` before `id:` belongs to the same mapping but our row scan starts
|
|
160
|
+
// at `id:`. Refuse instead of pretending this is an id-only row.
|
|
161
|
+
if (!target.dashed) {
|
|
162
|
+
if (/^\s*-\s*name\s*:/.test(ownerLine)) {
|
|
163
|
+
return refuse('refused', `name appears before id in the ${targetId} row`)
|
|
164
|
+
}
|
|
165
|
+
for (let index = ancestor + 1; index < target.index; index += 1) {
|
|
166
|
+
const line = lines[index].text
|
|
167
|
+
if (isBlankOrComment(line)) continue
|
|
168
|
+
const match = /^(\s*)name\s*:/.exec(line)
|
|
169
|
+
if (match !== null && match[1].length === target.indent) {
|
|
170
|
+
return refuse('refused', `name appears before id in the ${targetId} row`)
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const nameLines = []
|
|
176
|
+
let unresolvedName = false
|
|
177
|
+
for (let index = target.index + 1; index < end; index += 1) {
|
|
178
|
+
const line = lines[index].text
|
|
179
|
+
const match = /^(\s*)name\s*:\s*(.*)$/.exec(line)
|
|
180
|
+
if (match === null) {
|
|
181
|
+
if (!isBlankOrComment(line) && /(?:^|\s)["']?name["']?\s*:/.test(line)) unresolvedName = true
|
|
182
|
+
continue
|
|
183
|
+
}
|
|
184
|
+
nameLines.push({ index, indent: match[1].length, raw: match[2] })
|
|
185
|
+
}
|
|
186
|
+
if (unresolvedName) {
|
|
187
|
+
return refuse('refused', `could not safely read the ${targetId} row name`)
|
|
188
|
+
}
|
|
189
|
+
const expectedNameIndent = target.dashed ? target.indent + 2 : target.indent
|
|
190
|
+
const misindented = nameLines.find((line) => line.indent !== expectedNameIndent)
|
|
191
|
+
if (misindented !== undefined) {
|
|
192
|
+
return refuse('refused', `nested name at line ${misindented.index + 1} is not the ${targetId} row name`)
|
|
193
|
+
}
|
|
194
|
+
if (nameLines.length === 0) {
|
|
195
|
+
return { state: 'id-only', changed: false, text }
|
|
196
|
+
}
|
|
197
|
+
if (nameLines.length > 1) {
|
|
198
|
+
return refuse('refused', `multiple name lines in the ${targetId} row`)
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
const nameLine = nameLines[0]
|
|
202
|
+
const { value, comment } = splitTrailingComment(nameLine.raw)
|
|
203
|
+
const name = stripQuotes(value)
|
|
204
|
+
if (name === '' || name === '~' || name === 'null') {
|
|
205
|
+
return refuse('refused', `empty name in the ${targetId} row`)
|
|
206
|
+
}
|
|
207
|
+
if (value.includes('{') || value.includes('[') || value.startsWith('&') || value.startsWith('*')) {
|
|
208
|
+
return refuse('refused', 'flow-style, anchor or alias name is not supported')
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// A different row already using the new name is a conflict even when the
|
|
212
|
+
// target row itself is old. Check before rewriting.
|
|
213
|
+
for (let index = 0; index < lines.length; index += 1) {
|
|
214
|
+
if (index > target.index && index < end) continue
|
|
215
|
+
const match = /^\s*name:\s*(.*)$/.exec(lines[index].text)
|
|
216
|
+
if (match === null) continue
|
|
217
|
+
const other = stripQuotes(splitTrailingComment(match[1]).value)
|
|
218
|
+
if (isNew(other)) {
|
|
219
|
+
return refuse('refused', `another row already uses ${newName}`)
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
if (isNew(name)) {
|
|
224
|
+
return { state: 'already-migrated', changed: false, text }
|
|
225
|
+
}
|
|
226
|
+
if (!oldNames.includes(name)) {
|
|
227
|
+
return refuse('refused', `unknown package name ${JSON.stringify(name)} in the ${targetId} row`)
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
const original = lines[nameLine.index]
|
|
231
|
+
const replacement = quoteLike(newName, value)
|
|
232
|
+
const suffix = comment === '' ? '' : ' ' + comment
|
|
233
|
+
lines[nameLine.index] = {
|
|
234
|
+
text: `${' '.repeat(nameLine.indent)}name: ${replacement}${suffix}`,
|
|
235
|
+
cr: original.cr,
|
|
236
|
+
}
|
|
237
|
+
return {
|
|
238
|
+
state: 'rewritten',
|
|
239
|
+
changed: true,
|
|
240
|
+
text: lines.map((line) => line.text + (line.cr ? '\r' : '')).join('\n'),
|
|
241
|
+
line: nameLine.index + 1,
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
const timestamp = () => {
|
|
246
|
+
const now = new Date()
|
|
247
|
+
const pad = (value) => String(value).padStart(2, '0')
|
|
248
|
+
return `${now.getFullYear()}${pad(now.getMonth() + 1)}${pad(now.getDate())}-${pad(now.getHours())}${pad(now.getMinutes())}${pad(now.getSeconds())}`
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/** Read, migrate and atomically write one patch file. */
|
|
252
|
+
export function migratePatchFile(patchPath, options = {}) {
|
|
253
|
+
const path = resolve(patchPath)
|
|
254
|
+
if (!existsSync(path) || !statSync(path).isFile()) {
|
|
255
|
+
return { state: 'refused', changed: false, error: `patch file not found: ${path}` }
|
|
256
|
+
}
|
|
257
|
+
let text
|
|
258
|
+
try {
|
|
259
|
+
text = readFileSync(path, 'utf8')
|
|
260
|
+
} catch (error) {
|
|
261
|
+
return { state: 'refused', changed: false, error: `cannot read ${path}: ${error.message}` }
|
|
262
|
+
}
|
|
263
|
+
const result = migratePatchText(text, options)
|
|
264
|
+
if (!result.changed) return result
|
|
265
|
+
const backup = `${path}.bak-${timestamp()}`
|
|
266
|
+
try {
|
|
267
|
+
copyFileSync(path, backup)
|
|
268
|
+
const temp = join(dirname(path), `.${timestamp()}-${process.pid}.tmp`)
|
|
269
|
+
writeFileSync(temp, result.text, 'utf8')
|
|
270
|
+
renameSync(temp, path)
|
|
271
|
+
} catch (error) {
|
|
272
|
+
return { state: 'refused', changed: false, error: `cannot write ${path}: ${error.message}` }
|
|
273
|
+
}
|
|
274
|
+
return { ...result, backup }
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
const usage = `Usage: node tools/migrate-profile-package-name.mjs --patch <cordis.patch.yml>
|
|
278
|
+
|
|
279
|
+
Migrates one profile/home/overlay patch row:
|
|
280
|
+
id: ${TARGET_ID}
|
|
281
|
+
from ${OLD_NAMES.join(' or ')}
|
|
282
|
+
to ${NEW_NAME}.
|
|
283
|
+
|
|
284
|
+
The patch path is required; the helper never guesses a profile.`
|
|
285
|
+
|
|
286
|
+
const main = () => {
|
|
287
|
+
const args = process.argv.slice(2)
|
|
288
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
289
|
+
console.log(usage)
|
|
290
|
+
return 0
|
|
291
|
+
}
|
|
292
|
+
const index = args.indexOf('--patch')
|
|
293
|
+
const patch = index === -1 ? '' : args[index + 1] ?? ''
|
|
294
|
+
if (patch === '' || patch.startsWith('--')) {
|
|
295
|
+
console.error(usage)
|
|
296
|
+
return 2
|
|
297
|
+
}
|
|
298
|
+
const result = migratePatchFile(patch)
|
|
299
|
+
if (result.error !== undefined) {
|
|
300
|
+
console.error(`migrate-profile-package-name: ${result.error}`)
|
|
301
|
+
return 4
|
|
302
|
+
}
|
|
303
|
+
if (result.state === 'rewritten') {
|
|
304
|
+
console.log(`migrated ${TARGET_ID} to ${NEW_NAME} (backup: ${result.backup})`)
|
|
305
|
+
} else if (result.state === 'already-migrated') {
|
|
306
|
+
console.log(`already migrated: ${TARGET_ID} uses ${NEW_NAME}`)
|
|
307
|
+
} else if (result.state === 'id-only') {
|
|
308
|
+
console.log(`${TARGET_ID} has no name line; preserved as-is`)
|
|
309
|
+
} else {
|
|
310
|
+
console.log(`no ${TARGET_ID} row; nothing to migrate`)
|
|
311
|
+
}
|
|
312
|
+
return 0
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
if (process.argv[1] !== undefined && resolve(process.argv[1]) === fileURLToPath(import.meta.url)) {
|
|
316
|
+
process.exitCode = main()
|
|
317
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
The three files in this directory (`ort.node.min.mjs`,
|
|
2
|
+
`ort-wasm-simd-threaded.mjs`, `ort-wasm-simd-threaded.wasm`) are taken verbatim
|
|
3
|
+
from onnxruntime-web 1.31.0-dev.20260914-8d85527a0
|
|
4
|
+
(https://github.com/microsoft/onnxruntime, package `onnxruntime-web`).
|
|
5
|
+
See ../../NOTICE for the exact provenance.
|
|
6
|
+
|
|
7
|
+
MIT License
|
|
8
|
+
|
|
9
|
+
Copyright (c) Microsoft Corporation
|
|
10
|
+
|
|
11
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
13
|
+
in the Software without restriction, including without limitation the rights
|
|
14
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
16
|
+
furnished to do so, subject to the following conditions:
|
|
17
|
+
|
|
18
|
+
The above copyright notice and this permission notice shall be included in all
|
|
19
|
+
copies or substantial portions of the Software.
|
|
20
|
+
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
+
SOFTWARE.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
async function ortWasmThreaded(moduleArg={}){var moduleRtn;var h=moduleArg,aa=!!globalThis.window,k=!!globalThis.WorkerGlobalScope,m=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type,n=k&&self.name?.startsWith("em-pthread");if(m){const {createRequire:a}=await import("module");var require=a(import.meta.url),ba=require("worker_threads");global.Worker=ba.Worker;n=(k=!ba.jc)&&"em-pthread"==ba.workerData}h.mountExternalData=(a,b)=>{a.startsWith("./")&&(a=a.substring(2));(h.Tb||(h.Tb=new Map)).set(a,b)};
|
|
2
|
+
h.unmountExternalData=()=>{delete h.Tb;delete h.mc;delete h.lc;delete h.nc};var SharedArrayBuffer=globalThis.SharedArrayBuffer??(new WebAssembly.Memory({initial:0,maximum:0,shared:!0})).buffer.constructor,ca="./this.program",da=(a,b)=>{throw b;},ea=import.meta.url,fa="",ha,ia;
|
|
3
|
+
if(m){var fs=require("fs");ea.startsWith("file:")&&(fa=require("path").dirname(require("url").fileURLToPath(ea))+"/");ia=a=>{a=ja(a)?new URL(a):a;return fs.readFileSync(a)};ha=async a=>{a=ja(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1<process.argv.length&&(ca=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);da=(a,b)=>{process.exitCode=a;throw b;}}else if(aa||k){try{fa=(new URL(".",ea)).href}catch{}m||(k&&(ia=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";
|
|
4
|
+
b.send(null);return new Uint8Array(b.response)}),ha=async a=>{if(ja(a))return new Promise((d,c)=>{var e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=()=>{200==e.status||0==e.status&&e.response?d(e.response):c(e.status)};e.onerror=c;e.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url);})}var ka=console.log.bind(console),la=console.error.bind(console);
|
|
5
|
+
if(m){var ma=require("util"),na=a=>"object"==typeof a?ma.inspect(a):a;ka=(...a)=>fs.writeSync(1,a.map(na).join(" ")+"\n");la=(...a)=>fs.writeSync(2,a.map(na).join(" ")+"\n")}var oa=ka,p=la,q,r,pa=!1,t,ja=a=>a.startsWith("file://");function v(){x.buffer!=z.buffer&&qa()}var ra,sa;
|
|
6
|
+
if(m&&n){var ta=ba.parentPort;ta.on("message",a=>global.onmessage?.({data:a}));Object.assign(globalThis,{self:global,postMessage:a=>ta.postMessage(a)});process.on("uncaughtException",a=>{postMessage({Rb:"uncaughtException",error:a});process.exit(1)})}var ua;
|
|
7
|
+
if(n){var va=!1;self.onunhandledrejection=b=>{throw b.reason||b;};function a(b){try{var d=b.data,c=d.Rb;if("load"===c){let e=[];self.onmessage=f=>e.push(f);ua=()=>{postMessage({Rb:"loaded"});for(let f of e)a(f);self.onmessage=a};for(const f of d.ac)if(!h[f]||h[f].proxy)h[f]=(...g)=>{postMessage({Rb:"callHandler",$b:f,args:g})},"print"==f&&(oa=h[f]),"printErr"==f&&(p=h[f]);x=d.fc;qa();r=d.hc;wa();xa()}else if("run"===c){ya(d.Qb);za(d.Qb,0,0,1,0,0);Aa();Ba(d.Qb);va||=!0;try{Ca(d.dc,d.Vb)}catch(e){if("unwind"!=
|
|
8
|
+
e)throw e;}}else"setimmediate"!==d.target&&("checkMailbox"===c?va&&Da():c&&(p(`worker: received unknown command ${c}`),p(d)))}catch(e){throw Ea(),e;}}self.onmessage=a}var z,A,Fa,C,D,Ga,G,H,Ha=!1;function qa(){var a=x.buffer;h.HEAP8=z=new Int8Array(a);Fa=new Int16Array(a);h.HEAPU8=A=new Uint8Array(a);new Uint16Array(a);h.HEAP32=C=new Int32Array(a);h.HEAPU32=D=new Uint32Array(a);Ga=new Float32Array(a);G=new Float64Array(a);H=new BigInt64Array(a);new BigUint64Array(a)}
|
|
9
|
+
function Ia(){Ha=!0;n?ua():I.Va()}function J(a){a="Aborted("+a+")";p(a);pa=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");sa?.(a);throw a;}var Ja;async function Ka(a){if(!q)try{var b=await ha(a);return new Uint8Array(b)}catch{}if(a==Ja&&q)a=new Uint8Array(q);else if(ia)a=ia(a);else throw"both async and sync fetching of the wasm failed";return a}
|
|
10
|
+
async function La(a,b){try{var d=await Ka(a);return await WebAssembly.instantiate(d,b)}catch(c){p(`failed to asynchronously prepare wasm: ${c}`),J(c)}}async function Na(a){var b=Ja;if(!q&&!ja(b)&&!m)try{var d=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(d,a)}catch(c){p(`wasm streaming compile failed: ${c}`),p("falling back to ArrayBuffer instantiation")}return La(b,a)}
|
|
11
|
+
function Oa(){Pa={T:Qa,f:Ra,w:Sa,e:Ta,k:Ua,h:Va,L:Wa,b:Xa,G:Ya,ua:Za,j:$a,M:ab,La:bb,qa:cb,sa:db,Ma:eb,Ja:fb,Ca:gb,Ia:hb,Z:ib,ra:jb,oa:kb,Ka:lb,pa:mb,Ra:nb,Fa:ob,ma:pb,va:qb,ja:rb,U:sb,Ea:Ba,Oa:tb,za:ub,Aa:vb,Ba:wb,xa:xb,ya:yb,ka:zb,Ta:Ab,Qa:Bb,W:Cb,V:Db,Pa:Eb,F:Fb,Na:Gb,na:Hb,u:Ib,H:Jb,S:Kb,la:Lb,ba:Mb,Ua:Nb,Ga:Ob,Ha:Pb,ta:Qb,I:Rb,wa:Sb,Y:Tb,Da:Ub,X:Vb,$:Wb,N:Xb,aa:Yb,O:Zb,v:$b,d:ac,m:bc,n:cc,r:dc,ca:ec,E:fc,o:gc,P:hc,C:ic,J:jc,da:kc,ea:lc,z:mc,fa:nc,Q:oc,ga:pc,y:qc,D:rc,c:sc,q:tc,i:uc,_:vc,l:wc,
|
|
12
|
+
p:xc,s:yc,t:zc,x:Ac,R:Bc,A:Cc,K:Dc,B:Ec,ha:Fc,ia:Gc,g:Hc,a:x,Sa:Ic};return{a:Pa}}
|
|
13
|
+
async function wa(){function a(c,e){I=c.exports;I=Jc();Kc.push(I.xb);c=I;h._OrtInit=c.Wa;h._OrtGetLastError=c.Xa;h._OrtCreateSessionOptions=c.Ya;h._OrtAppendExecutionProvider=c.Za;h._OrtAddFreeDimensionOverride=c._a;h._OrtAddSessionConfigEntry=c.$a;h._OrtReleaseSessionOptions=c.ab;h._OrtCreateSession=c.bb;h._OrtReleaseSession=c.cb;h._OrtGetInputOutputCount=c.db;h._OrtGetInputOutputMetadata=c.eb;h._OrtFree=c.fb;h._OrtCreateTensor=c.gb;h._OrtGetTensorData=c.hb;h._OrtReleaseTensor=c.ib;h._OrtCreateRunOptions=
|
|
14
|
+
c.jb;h._OrtAddRunConfigEntry=c.kb;h._OrtReleaseRunOptions=c.lb;h._OrtCreateBinding=c.mb;h._OrtBindInput=c.nb;h._OrtBindOutput=c.ob;h._OrtClearBoundOutputs=c.pb;h._OrtReleaseBinding=c.qb;h._OrtRunWithBinding=c.rb;h._OrtRun=c.sb;h._OrtEndProfiling=c.tb;Lc=c.ub;Mc=h._free=c.vb;Nc=h._malloc=c.wb;za=c.zb;Ea=c.Ab;Oc=c.Bb;Pc=c.Cb;Qc=c.Db;Rc=c.Eb;Sc=c.Fb;K=c.Gb;L=c.Hb;Tc=c.Ib;M=c.Jb;Uc=c.Kb;N=c.Lb;Vc=c.Mb;Wc=c.Nb;Xc=c.Ob;Yc=c.Pb;Zc=c.yb;r=e;return I}var b=Oa();if(h.instantiateWasm)return new Promise(c=>{h.instantiateWasm(b,
|
|
15
|
+
(e,f)=>{c(a(e,f))})});if(n){var d=new WebAssembly.Instance(r,Oa());return a(d,r)}Ja??=h.locateFile?h.locateFile?h.locateFile("ort-wasm-simd-threaded.wasm",fa):fa+"ort-wasm-simd-threaded.wasm":(new URL("ort-wasm-simd-threaded.wasm",import.meta.url)).href;return function(c){return a(c.instance,c.module)}(await Na(b))}class $c{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}
|
|
16
|
+
var ad=a=>{a.terminate();a.onmessage=()=>{}},bd=[],O=0,P=null,ed=a=>{0==Q.length&&(cd(),dd(Q[0]));var b=Q.pop();if(!b)return 6;R.push(b);S[a.Qb]=b;b.Qb=a.Qb;var d={Rb:"run",dc:a.cc,Vb:a.Vb,Qb:a.Qb};m&&b.unref();b.postMessage(d,a.Zb);return 0},T=0,U=(a,b,...d)=>{var c=16*d.length,e=N(),f=Uc(c),g=f>>>3,l;for(l of d)"bigint"==typeof l?((v(),H)[g++>>>0]=1n,(v(),H)[g++>>>0]=l):((v(),H)[g++>>>0]=0n,(v(),G)[g++>>>0]=l);a=Oc(a,0,c,f,b);M(e);return a};
|
|
17
|
+
function Ic(a){if(n)return U(0,1,a);t=a;if(!(0<T)){for(var b of R)ad(b);for(b of Q)ad(b);Q=[];R=[];S={};pa=!0}da(a,new $c(a))}function fd(a){if(n)return U(1,0,a);Qb(a)}var Qb=a=>{t=a;if(n)throw fd(a),"unwind";Ic(a)},Q=[],R=[],Kc=[],S={};function gd(){for(var a=h.numThreads-1;a--;)cd();bd.push(async()=>{var b=hd();O++;await b;O--;0==O&&P&&(b=P,P=null,b())})}var jd=a=>{var b=a.Qb;delete S[b];Q.push(a);R.splice(R.indexOf(a),1);a.Qb=0;Pc(b)};function Aa(){Kc.forEach(a=>a())}
|
|
18
|
+
var dd=a=>new Promise(b=>{a.onmessage=f=>{var g=f.data;f=g.Rb;if(g.Ub&&g.Ub!=Lc()){var l=S[g.Ub];l?l.postMessage(g,g.Zb):p(`Internal error! Worker sent a message "${f}" to target pthread ${g.Ub}, but that thread no longer exists!`)}else if("checkMailbox"===f)Da();else if("spawnThread"===f)ed(g);else if("cleanupThread"===f)kd(()=>{jd(S[g.ec])});else if("loaded"===f)a.loaded=!0,m&&!a.Qb&&a.unref(),b(a);else if("setimmediate"===g.target)a.postMessage(g);else if("uncaughtException"===f)a.onerror(g.error);
|
|
19
|
+
else if("callHandler"===f)h[g.$b](...g.args);else f&&p(`worker sent an unknown command ${f}`)};a.onerror=f=>{p(`${"worker sent an error!"} ${f.filename}:${f.lineno}: ${f.message}`);throw f;};m&&(a.on("message",f=>a.onmessage({data:f})),a.on("error",f=>a.onerror(f)));var d=[],c=[],e;for(e of c)h.propertyIsEnumerable(e)&&d.push(e);a.postMessage({Rb:"load",ac:d,fc:x,hc:r})});async function hd(){if(!n)return Promise.all(Q.map(dd))}
|
|
20
|
+
function cd(){var a=new Worker(new URL(import.meta.url),{type:"module",workerData:"em-pthread",name:"em-pthread"});Q.push(a)}function ya(a){var b=(v(),D)[a+52>>>2>>>0];a=(v(),D)[a+56>>>2>>>0];Tc(b,b-a);M(b)}var ld=[],V=a=>{var b=ld[a];b||(ld[a]=b=Zc.get(a));return b},Ca=(a,b)=>{T=0;a=V(a)(b);0<T?t=a:Qc(a)},x,md=[],nd=0;function Ra(a){a>>>=0;var b=new od(a);0==(v(),z)[b.Sb+12>>>0]&&(pd(b,!0),nd--);qd(b,!1);md.push(b);return Yc(a)}
|
|
21
|
+
var W=0,Sa=()=>{K(0,0);var a=md.pop();Vc(a.Wb);W=0};function pd(a,b){b=b?1:0;(v(),z)[a.Sb+12>>>0]=b}function qd(a,b){b=b?1:0;(v(),z)[a.Sb+13>>>0]=b}class od{constructor(a){this.Wb=a;this.Sb=a-24}}var rd=a=>{var b=W;if(!b)return L(0),0;var d=new od(b);(v(),D)[d.Sb+16>>>2>>>0]=b;var c=(v(),D)[d.Sb+4>>>2>>>0];if(!c)return L(0),b;for(var e of a){if(0===e||e===c)break;if(Xc(e,c,d.Sb+16))return L(e),b}L(c);return b};function Ta(){return rd([])}function Ua(a){return rd([a>>>0])}
|
|
22
|
+
function Va(a,b,d,c){return rd([a>>>0,b>>>0,d>>>0,c>>>0])}var Wa=()=>{var a=md.pop();a||J("no exception to throw");var b=a.Wb;0==(v(),z)[a.Sb+13>>>0]&&(md.push(a),qd(a,!0),pd(a,!1),nd++);Wc(b);W=b;throw W;};function Xa(a,b,d){a>>>=0;var c=new od(a);b>>>=0;d>>>=0;(v(),D)[c.Sb+16>>>2>>>0]=0;(v(),D)[c.Sb+4>>>2>>>0]=b;(v(),D)[c.Sb+8>>>2>>>0]=d;Wc(a);W=a;nd++;throw W;}var Ya=()=>nd;function sd(a,b,d,c){return n?U(2,1,a,b,d,c):Za(a,b,d,c)}
|
|
23
|
+
function Za(a,b,d,c){a>>>=0;b>>>=0;d>>>=0;c>>>=0;if(!globalThis.SharedArrayBuffer)return 6;var e=[];if(n&&0===e.length)return sd(a,b,d,c);a={cc:d,Qb:a,Vb:c,Zb:e};return n?(a.Rb="spawnThread",postMessage(a,e),0):ed(a)}function $a(a){W||=a>>>0;throw W;}
|
|
24
|
+
var td=globalThis.TextDecoder&&new TextDecoder,ud=(a,b=0,d,c)=>{b>>>=0;var e=b;d=e+d;if(c)c=d;else{for(;a[e]&&!(e>=d);)++e;c=e}if(16<c-b&&a.buffer&&td)return td.decode(a.buffer instanceof ArrayBuffer?a.subarray(b,c):a.slice(b,c));for(e="";b<c;)if(d=a[b++],d&128){var f=a[b++]&63;if(192==(d&224))e+=String.fromCharCode((d&31)<<6|f);else{var g=a[b++]&63;d=224==(d&240)?(d&15)<<12|f<<6|g:(d&7)<<18|f<<12|g<<6|a[b++]&63;65536>d?e+=String.fromCharCode(d):(d-=65536,e+=String.fromCharCode(55296|d>>10,56320|
|
|
25
|
+
d&1023))}}else e+=String.fromCharCode(d);return e},vd=(a,b,d)=>(a>>>=0)?ud((v(),A),a,b,d):"";function ab(a,b,d){return n?U(3,1,a,b,d):0}function bb(a,b){if(n)return U(4,1,a,b)}function cb(a,b){if(n)return U(5,1,a,b)}function db(a,b,d){if(n)return U(6,1,a,b,d)}function eb(a,b,d){return n?U(7,1,a,b,d):0}function fb(a,b){if(n)return U(8,1,a,b)}function gb(a,b,d){if(n)return U(9,1,a,b,d)}function hb(a,b,d,c){if(n)return U(10,1,a,b,d,c)}function ib(a,b,d,c){if(n)return U(11,1,a,b,d,c)}
|
|
26
|
+
function jb(a,b,d,c){if(n)return U(12,1,a,b,d,c)}function kb(a){if(n)return U(13,1,a)}function lb(a,b){if(n)return U(14,1,a,b)}function mb(a,b,d){if(n)return U(15,1,a,b,d)}var nb=()=>J("");function ob(a){za(a>>>0,!k,1,!aa,131072,!1);Aa()}
|
|
27
|
+
var kd=a=>{if(!pa)try{if(a(),!(0<T))try{n?Lc()&&Qc(t):Qb(t)}catch(b){b instanceof $c||"unwind"==b||da(1,b)}}catch(b){b instanceof $c||"unwind"==b||da(1,b)}},wd=!Atomics.waitAsync||globalThis.navigator?.userAgent&&91>Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function Ba(a){a>>>=0;wd||(Atomics.waitAsync((v(),C),a>>>2,a).value.then(Da),a+=128,Atomics.store((v(),C),a>>>2,1))}var Da=()=>kd(()=>{var a=Lc();a&&(Ba(a),Sc())});
|
|
28
|
+
function pb(a,b){a>>>=0;a==b>>>0?setTimeout(Da):n?postMessage({Ub:a,Rb:"checkMailbox"}):(a=S[a])&&a.postMessage({Rb:"checkMailbox"})}var xd=[];function qb(a,b,d,c,e){b>>>=0;e>>>=0;xd.length=0;d=e>>>3;for(c=e+c>>>3;d<c;){var f;(v(),H)[d++>>>0]?f=(v(),H)[d++>>>0]:f=(v(),G)[d++>>>0];xd.push(f)}return(b?yd[b]:zd[a])(...xd)}var rb=()=>{T=0};function sb(a){a>>>=0;n?postMessage({Rb:"cleanupThread",ec:a}):jd(S[a])}function tb(a){m&&S[a>>>0].ref()}
|
|
29
|
+
function ub(a,b){a=-9007199254740992>a||9007199254740992<a?NaN:Number(a);b>>>=0;a=new Date(1E3*a);(v(),C)[b>>>2>>>0]=a.getUTCSeconds();(v(),C)[b+4>>>2>>>0]=a.getUTCMinutes();(v(),C)[b+8>>>2>>>0]=a.getUTCHours();(v(),C)[b+12>>>2>>>0]=a.getUTCDate();(v(),C)[b+16>>>2>>>0]=a.getUTCMonth();(v(),C)[b+20>>>2>>>0]=a.getUTCFullYear()-1900;(v(),C)[b+24>>>2>>>0]=a.getUTCDay();a=(a.getTime()-Date.UTC(a.getUTCFullYear(),0,1,0,0,0,0))/864E5|0;(v(),C)[b+28>>>2>>>0]=a}
|
|
30
|
+
var Ad=a=>0===a%4&&(0!==a%100||0===a%400),Bd=[0,31,60,91,121,152,182,213,244,274,305,335],Cd=[0,31,59,90,120,151,181,212,243,273,304,334];
|
|
31
|
+
function vb(a,b){a=-9007199254740992>a||9007199254740992<a?NaN:Number(a);b>>>=0;a=new Date(1E3*a);(v(),C)[b>>>2>>>0]=a.getSeconds();(v(),C)[b+4>>>2>>>0]=a.getMinutes();(v(),C)[b+8>>>2>>>0]=a.getHours();(v(),C)[b+12>>>2>>>0]=a.getDate();(v(),C)[b+16>>>2>>>0]=a.getMonth();(v(),C)[b+20>>>2>>>0]=a.getFullYear()-1900;(v(),C)[b+24>>>2>>>0]=a.getDay();var d=(Ad(a.getFullYear())?Bd:Cd)[a.getMonth()]+a.getDate()-1|0;(v(),C)[b+28>>>2>>>0]=d;(v(),C)[b+36>>>2>>>0]=-(60*a.getTimezoneOffset());d=(new Date(a.getFullYear(),
|
|
32
|
+
6,1)).getTimezoneOffset();var c=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();a=(d!=c&&a.getTimezoneOffset()==Math.min(c,d))|0;(v(),C)[b+32>>>2>>>0]=a}
|
|
33
|
+
function wb(a){a>>>=0;var b=new Date((v(),C)[a+20>>>2>>>0]+1900,(v(),C)[a+16>>>2>>>0],(v(),C)[a+12>>>2>>>0],(v(),C)[a+8>>>2>>>0],(v(),C)[a+4>>>2>>>0],(v(),C)[a>>>2>>>0],0),d=(v(),C)[a+32>>>2>>>0],c=b.getTimezoneOffset(),e=(new Date(b.getFullYear(),6,1)).getTimezoneOffset(),f=(new Date(b.getFullYear(),0,1)).getTimezoneOffset(),g=Math.min(f,e);0>d?(v(),C)[a+32>>>2>>>0]=Number(e!=f&&g==c):0<d!=(g==c)&&(e=Math.max(f,e),b.setTime(b.getTime()+6E4*((0<d?g:e)-c)));(v(),C)[a+24>>>2>>>0]=b.getDay();d=(Ad(b.getFullYear())?
|
|
34
|
+
Bd:Cd)[b.getMonth()]+b.getDate()-1|0;(v(),C)[a+28>>>2>>>0]=d;(v(),C)[a>>>2>>>0]=b.getSeconds();(v(),C)[a+4>>>2>>>0]=b.getMinutes();(v(),C)[a+8>>>2>>>0]=b.getHours();(v(),C)[a+12>>>2>>>0]=b.getDate();(v(),C)[a+16>>>2>>>0]=b.getMonth();(v(),C)[a+20>>>2>>>0]=b.getYear();a=b.getTime();return BigInt(isNaN(a)?-1:a/1E3)}function xb(a,b,d,c,e,f,g){return n?U(16,1,a,b,d,c,e,f,g):-52}function yb(a,b,d,c,e,f){if(n)return U(17,1,a,b,d,c,e,f)}var X={},Ib=()=>performance.timeOrigin+performance.now();
|
|
35
|
+
function zb(a,b){if(n)return U(18,1,a,b);X[a]&&(clearTimeout(X[a].id),delete X[a]);if(!b)return 0;var d=setTimeout(()=>{delete X[a];kd(()=>Rc(a,performance.timeOrigin+performance.now()))},b);X[a]={id:d,oc:b};return 0}
|
|
36
|
+
var Y=(a,b,d)=>{var c=(v(),A);b>>>=0;if(0<d){var e=b;d=b+d-1;for(var f=0;f<a.length;++f){var g=a.codePointAt(f);if(127>=g){if(b>=d)break;c[b++>>>0]=g}else if(2047>=g){if(b+1>=d)break;c[b++>>>0]=192|g>>6;c[b++>>>0]=128|g&63}else if(65535>=g){if(b+2>=d)break;c[b++>>>0]=224|g>>12;c[b++>>>0]=128|g>>6&63;c[b++>>>0]=128|g&63}else{if(b+3>=d)break;c[b++>>>0]=240|g>>18;c[b++>>>0]=128|g>>12&63;c[b++>>>0]=128|g>>6&63;c[b++>>>0]=128|g&63;f++}}c[b>>>0]=0;a=b-e}else a=0;return a};
|
|
37
|
+
function Ab(a,b,d,c){a>>>=0;b>>>=0;d>>>=0;c>>>=0;var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();var g=Math.max(f,e);(v(),D)[a>>>2>>>0]=60*g;(v(),C)[b>>>2>>>0]=Number(f!=e);b=l=>{var u=Math.abs(l);return`UTC${0<=l?"-":"+"}${String(Math.floor(u/60)).padStart(2,"0")}${String(u%60).padStart(2,"0")}`};a=b(f);b=b(e);e<f?(Y(a,d,17),Y(b,c,17)):(Y(a,c,17),Y(b,d,17))}var Eb=()=>Date.now(),Dd=1;
|
|
38
|
+
function Bb(a,b,d){d>>>=0;if(!(0<=a&&3>=a))return 28;if(0===a)a=Date.now();else if(Dd)a=performance.timeOrigin+performance.now();else return 52;a=Math.round(1E6*a);(v(),H)[d>>>3>>>0]=BigInt(a);return 0}var Ed=[];function Cb(a,b,d){a>>>=0;b>>>=0;d>>>=0;Ed.length=0;for(var c;c=(v(),A)[b++>>>0];){var e=105!=c;e&=112!=c;d+=e&&d%8?4:0;Ed.push(112==c?(v(),D)[d>>>2>>>0]:106==c?(v(),H)[d>>>3>>>0]:105==c?(v(),C)[d>>>2>>>0]:(v(),G)[d>>>3>>>0]);d+=e?8:4}return yd[a](...Ed)}var Db=()=>{};
|
|
39
|
+
function Fb(a,b){return p(vd(a>>>0,b>>>0))}var Gb=()=>{T+=1;throw"unwind";};function Hb(){return 4294901760}var Jb=()=>m?require("os").cpus().length:navigator.hardwareConcurrency,Z={},Fd=a=>{for(var b=0,d=0;d<a.length;++d){var c=a.charCodeAt(d);127>=c?b++:2047>=c?b+=2:55296<=c&&57343>=c?(b+=4,++d):b+=3}return b},Gd=a=>{var b;return(b=/\bwasm-function\[\d+\]:(0x[0-9a-f]+)/.exec(a))?+b[1]:(b=/:(\d+):\d+(?:\)|$)/.exec(a))?2147483648|+b[1]:0},Hd=a=>{for(var b of a)(a=Gd(b))&&(Z[a]=b)};
|
|
40
|
+
function Mb(){var a=Error().stack.toString().split("\n");"Error"==a[0]&&a.shift();Hd(a);Z.Xb=Gd(a[3]);Z.bc=a;return Z.Xb}function Kb(a){a=Z[a>>>0];if(!a)return 0;var b;if(b=/^\s+at .*\.wasm\.(.*) \(.*\)$/.exec(a))a=b[1];else if(b=/^\s+at (.*) \(.*\)$/.exec(a))a=b[1];else if(b=/^(.+?)@/.exec(a))a=b[1];else return 0;Mc(Kb.Yb??0);b=Fd(a)+1;var d=Nc(b);d&&Y(a,d,b);Kb.Yb=d;return Kb.Yb}
|
|
41
|
+
function Lb(a){a>>>=0;var b=(v(),A).length;if(a<=b||4294901760<a)return!1;for(var d=1;4>=d;d*=2){var c=b*(1+.2/d);c=Math.min(c,a+100663296);a:{c=(Math.min(4294901760,65536*Math.ceil(Math.max(a,c)/65536))-x.buffer.byteLength+65535)/65536|0;try{x.grow(c);qa();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1}
|
|
42
|
+
function Nb(a,b,d){a>>>=0;b>>>=0;if(Z.Xb==a)var c=Z.bc;else c=Error().stack.toString().split("\n"),"Error"==c[0]&&c.shift(),Hd(c);for(var e=3;c[e]&&Gd(c[e])!=a;)++e;for(a=0;a<d&&c[a+e];++a)(v(),C)[b+4*a>>>2>>>0]=Gd(c[a+e]);return a}
|
|
43
|
+
var Id={},Kd=()=>{if(!Jd){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:ca||"./this.program"},b;for(b in Id)void 0===Id[b]?delete a[b]:a[b]=Id[b];var d=[];for(b in a)d.push(`${b}=${a[b]}`);Jd=d}return Jd},Jd;function Ob(a,b){if(n)return U(19,1,a,b);a>>>=0;b>>>=0;var d=0,c=0,e;for(e of Kd()){var f=b+d;(v(),D)[a+c>>>2>>>0]=f;d+=Y(e,f,Infinity)+1;c+=4}return 0}
|
|
44
|
+
function Pb(a,b){if(n)return U(20,1,a,b);a>>>=0;b>>>=0;var d=Kd();(v(),D)[a>>>2>>>0]=d.length;a=0;for(var c of d)a+=Fd(c)+1;(v(),D)[b>>>2>>>0]=a;return 0}function Rb(a){return n?U(21,1,a):52}function Sb(a,b,d,c,e){return n?U(22,1,a,b,d,c,e):52}function Tb(a,b,d,c){return n?U(23,1,a,b,d,c):52}function Ub(a,b,d,c){return n?U(24,1,a,b,d,c):70}var Ld=[null,[],[]];
|
|
45
|
+
function Vb(a,b,d,c){if(n)return U(25,1,a,b,d,c);b>>>=0;d>>>=0;c>>>=0;for(var e=0,f=0;f<d;f++){var g=(v(),D)[b>>>2>>>0],l=(v(),D)[b+4>>>2>>>0];b+=8;for(var u=0;u<l;u++){var w=a,y=(v(),A)[g+u>>>0],B=Ld[w];0===y||10===y?((1===w?oa:p)(ud(B)),B.length=0):B.push(y)}e+=l}(v(),D)[c>>>2>>>0]=e;return 0}function Hc(a){return a>>>0}n||gd();n||(x=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),qa());h.wasmBinary&&(q=h.wasmBinary);h.stackSave=()=>N();h.stackRestore=a=>M(a);h.stackAlloc=a=>Uc(a);
|
|
46
|
+
h.setValue=function(a,b,d="i8"){d.endsWith("*")&&(d="*");switch(d){case "i1":(v(),z)[a>>>0]=b;break;case "i8":(v(),z)[a>>>0]=b;break;case "i16":(v(),Fa)[a>>>1>>>0]=b;break;case "i32":(v(),C)[a>>>2>>>0]=b;break;case "i64":(v(),H)[a>>>3>>>0]=BigInt(b);break;case "float":(v(),Ga)[a>>>2>>>0]=b;break;case "double":(v(),G)[a>>>3>>>0]=b;break;case "*":(v(),D)[a>>>2>>>0]=b;break;default:J(`invalid type for setValue: ${d}`)}};
|
|
47
|
+
h.getValue=function(a,b="i8"){b.endsWith("*")&&(b="*");switch(b){case "i1":return(v(),z)[a>>>0];case "i8":return(v(),z)[a>>>0];case "i16":return(v(),Fa)[a>>>1>>>0];case "i32":return(v(),C)[a>>>2>>>0];case "i64":return(v(),H)[a>>>3>>>0];case "float":return(v(),Ga)[a>>>2>>>0];case "double":return(v(),G)[a>>>3>>>0];case "*":return(v(),D)[a>>>2>>>0];default:J(`invalid type for getValue: ${b}`)}};h.UTF8ToString=vd;h.stringToUTF8=Y;h.lengthBytesUTF8=Fd;
|
|
48
|
+
var zd=[Ic,fd,sd,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb,mb,xb,yb,zb,Ob,Pb,Rb,Sb,Tb,Ub,Vb],yd={1043436:(a,b,d,c,e)=>{if("undefined"==typeof h||!h.Tb)return 1;a=vd(Number(a>>>0));a.startsWith("./")&&(a=a.substring(2));a=h.Tb.get(a);if(!a)return 2;b=Number(b>>>0);d=Number(d>>>0);c=Number(c>>>0);if(b+d>a.byteLength)return 3;try{const f=a.subarray(b,b+d);switch(e){case 0:(v(),A).set(f,c>>>0);break;case 1:h.ic?h.ic(c,f):h.kc(c,f);break;default:return 4}return 0}catch{return 4}},1044260:()=>"undefined"!==typeof wasmOffsetConverter};
|
|
49
|
+
function Qa(){return"undefined"!==typeof wasmOffsetConverter}var Lc,Mc,Nc,za,Ea,Oc,Pc,Qc,Rc,Sc,K,L,Tc,M,Uc,N,Vc,Wc,Xc,Yc,Zc,Pa;function cc(a,b,d,c){var e=N();try{return V(a)(b,d,c)}catch(f){M(e);if(f!==f+0)throw f;K(1,0)}}function bc(a,b,d){var c=N();try{return V(a)(b,d)}catch(e){M(c);if(e!==e+0)throw e;K(1,0)}}function sc(a){var b=N();try{V(a)()}catch(d){M(b);if(d!==d+0)throw d;K(1,0)}}function ac(a,b){var d=N();try{return V(a)(b)}catch(c){M(d);if(c!==c+0)throw c;K(1,0)}}
|
|
50
|
+
function uc(a,b,d){var c=N();try{V(a)(b,d)}catch(e){M(c);if(e!==e+0)throw e;K(1,0)}}function tc(a,b){var d=N();try{V(a)(b)}catch(c){M(d);if(c!==c+0)throw c;K(1,0)}}function gc(a,b,d,c,e,f,g){var l=N();try{return V(a)(b,d,c,e,f,g)}catch(u){M(l);if(u!==u+0)throw u;K(1,0)}}function yc(a,b,d,c,e,f){var g=N();try{V(a)(b,d,c,e,f)}catch(l){M(g);if(l!==l+0)throw l;K(1,0)}}function wc(a,b,d,c){var e=N();try{V(a)(b,d,c)}catch(f){M(e);if(f!==f+0)throw f;K(1,0)}}
|
|
51
|
+
function xc(a,b,d,c,e){var f=N();try{V(a)(b,d,c,e)}catch(g){M(f);if(g!==g+0)throw g;K(1,0)}}function zc(a,b,d,c,e,f,g){var l=N();try{V(a)(b,d,c,e,f,g)}catch(u){M(l);if(u!==u+0)throw u;K(1,0)}}function Gc(a,b,d,c,e,f,g){var l=N();try{V(a)(b,d,c,e,f,g)}catch(u){M(l);if(u!==u+0)throw u;K(1,0)}}function Fc(a,b,d,c,e,f,g,l){var u=N();try{V(a)(b,d,c,e,f,g,l)}catch(w){M(u);if(w!==w+0)throw w;K(1,0)}}function dc(a,b,d,c,e){var f=N();try{return V(a)(b,d,c,e)}catch(g){M(f);if(g!==g+0)throw g;K(1,0)}}
|
|
52
|
+
function mc(a,b,d){var c=N();try{return V(a)(b,d)}catch(e){M(c);if(e!==e+0)throw e;K(1,0)}}function Ac(a,b,d,c,e,f,g,l){var u=N();try{V(a)(b,d,c,e,f,g,l)}catch(w){M(u);if(w!==w+0)throw w;K(1,0)}}function Dc(a,b,d,c,e,f,g,l,u,w,y,B){var E=N();try{V(a)(b,d,c,e,f,g,l,u,w,y,B)}catch(F){M(E);if(F!==F+0)throw F;K(1,0)}}function qc(a,b,d){var c=N();try{return V(a)(b,d)}catch(e){M(c);if(e!==e+0)throw e;K(1,0);return 0n}}
|
|
53
|
+
function Bc(a,b,d,c,e,f,g,l,u){var w=N();try{V(a)(b,d,c,e,f,g,l,u)}catch(y){M(w);if(y!==y+0)throw y;K(1,0)}}function $b(a){var b=N();try{return V(a)()}catch(d){M(b);if(d!==d+0)throw d;K(1,0)}}function pc(a,b){var d=N();try{return V(a)(b)}catch(c){M(d);if(c!==c+0)throw c;K(1,0);return 0n}}function nc(a,b,d,c){var e=N();try{return V(a)(b,d,c)}catch(f){M(e);if(f!==f+0)throw f;K(1,0)}}function oc(a){var b=N();try{return V(a)()}catch(d){M(b);if(d!==d+0)throw d;K(1,0);return 0n}}
|
|
54
|
+
function lc(a,b,d,c){var e=N();try{return V(a)(b,d,c)}catch(f){M(e);if(f!==f+0)throw f;K(1,0)}}function kc(a,b,d,c,e){var f=N();try{return V(a)(b,d,c,e)}catch(g){M(f);if(g!==g+0)throw g;K(1,0)}}function jc(a,b,d,c,e,f){var g=N();try{return V(a)(b,d,c,e,f)}catch(l){M(g);if(l!==l+0)throw l;K(1,0)}}function fc(a,b,d,c,e,f){var g=N();try{return V(a)(b,d,c,e,f)}catch(l){M(g);if(l!==l+0)throw l;K(1,0)}}
|
|
55
|
+
function ec(a,b,d,c,e,f){var g=N();try{return V(a)(b,d,c,e,f)}catch(l){M(g);if(l!==l+0)throw l;K(1,0)}}function hc(a,b,d,c,e,f,g,l){var u=N();try{return V(a)(b,d,c,e,f,g,l)}catch(w){M(u);if(w!==w+0)throw w;K(1,0)}}function rc(a,b,d,c,e){var f=N();try{return V(a)(b,d,c,e)}catch(g){M(f);if(g!==g+0)throw g;K(1,0);return 0n}}function Zb(a,b,d,c){var e=N();try{return V(a)(b,d,c)}catch(f){M(e);if(f!==f+0)throw f;K(1,0)}}
|
|
56
|
+
function Xb(a,b,d,c){var e=N();try{return V(a)(b,d,c)}catch(f){M(e);if(f!==f+0)throw f;K(1,0)}}function ic(a,b,d,c,e,f,g,l,u,w,y,B){var E=N();try{return V(a)(b,d,c,e,f,g,l,u,w,y,B)}catch(F){M(E);if(F!==F+0)throw F;K(1,0)}}function Cc(a,b,d,c,e,f,g,l,u,w,y){var B=N();try{V(a)(b,d,c,e,f,g,l,u,w,y)}catch(E){M(B);if(E!==E+0)throw E;K(1,0)}}function Ec(a,b,d,c,e,f,g,l,u,w,y,B,E,F,Md,Nd){var Od=N();try{V(a)(b,d,c,e,f,g,l,u,w,y,B,E,F,Md,Nd)}catch(Ma){M(Od);if(Ma!==Ma+0)throw Ma;K(1,0)}}
|
|
57
|
+
function Yb(a,b,d){var c=N();try{return V(a)(b,d)}catch(e){M(c);if(e!==e+0)throw e;K(1,0)}}function Wb(a,b,d){var c=N();try{return V(a)(b,d)}catch(e){M(c);if(e!==e+0)throw e;K(1,0)}}function vc(a,b,d,c){var e=N();try{V(a)(b,d,c)}catch(f){M(e);if(f!==f+0)throw f;K(1,0)}}function Jc(){var a=I;a=Object.assign({},a);var b=c=>()=>c()>>>0,d=c=>e=>c(e)>>>0;a.ub=b(a.ub);a.wb=d(a.wb);a.Kb=d(a.Kb);a.Lb=b(a.Lb);a.Pb=d(a.Pb);return a}
|
|
58
|
+
function xa(){if(0<O)P=xa;else if(n)ra?.(h),Ia();else{for(var a=bd;0<a.length;)a.shift()(h);0<O?P=xa:(h.calledRun=!0,pa||(Ia(),ra?.(h)))}}var I;n||(I=await (wa()),xa());h.PTR_SIZE=4;Ha?moduleRtn=h:moduleRtn=new Promise((a,b)=>{ra=a;sa=b});
|
|
59
|
+
;return moduleRtn}export default ortWasmThreaded;var isPthread=globalThis.self?.name?.startsWith("em-pthread");var isNode=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";if(isNode)isPthread=(await import("worker_threads")).workerData==="em-pthread";isPthread&&ortWasmThreaded();
|
|
Binary file
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ONNX Runtime Web v1.31.0-dev.20260914-8d85527a0
|
|
3
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
import{createRequire}from"module";const require=createRequire(import.meta.url);
|
|
7
|
+
var pe=Object.defineProperty;var Et=Object.getOwnPropertyDescriptor;var St=Object.getOwnPropertyNames;var ht=Object.prototype.hasOwnProperty;var de=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var C=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(o){throw n=[o],o}};var Ot=(e,t)=>{for(var n in t)pe(e,n,{get:t[n],enumerable:!0})},It=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of St(t))!ht.call(e,r)&&r!==n&&pe(e,r,{get:()=>t[r],enumerable:!(o=Et(t,r))||o.enumerable});return e};var Tt=e=>It(pe({},"__esModule",{value:!0}),e);var j,ne=C(()=>{"use strict";j=!!(typeof process<"u"&&process.versions&&process.versions.node)});var Ae,Lt,Bt,$,xe,De,_t,Pt,vt,Dt,Ue,Ce,me=C(()=>{"use strict";ne();Ae=j||typeof location>"u"?void 0:location.origin,Lt=import.meta.url>"file:"&&import.meta.url<"file;",Bt=()=>{if(!j){if(Lt){let e=URL;return new URL(new e("ort.node.min.mjs",import.meta.url).href,Ae).href}return import.meta.url}},$=Bt(),xe=()=>{if($&&!$.startsWith("blob:"))return $.substring(0,$.lastIndexOf("/")+1)},De=(e,t)=>{try{let n=t??$;return(n?new URL(e,n):new URL(e)).origin===Ae}catch{return!1}},_t=(e,t)=>{let n=t??$;try{return(n?new URL(e,n):new URL(e)).href}catch{return}},Pt=(e,t)=>`${t??"./"}${e}`,vt=async e=>{let n=await(await fetch(e,{credentials:"same-origin"})).blob();return URL.createObjectURL(n)},Dt=async e=>(await import(/*webpackIgnore:true*/ /*@vite-ignore*/e)).default,Ue=void 0,Ce=async(e,t,n,o)=>{let r=Ue&&!(e||t);if(r)if($)r=De($)||o&&!n;else if(o&&!n)r=!0;else throw new Error("cannot determine the script source URL.");if(r)return[void 0,Ue];{let a="ort-wasm-simd-threaded.mjs",s=e??_t(a,t),i=!j&&n&&s&&!De(s,t),u=i?await vt(s):s??Pt(a,t);return[i?u:void 0,await Dt(u)]}}});var be,we,oe,Me,Ut,At,xt,We,E,V=C(()=>{"use strict";me();we=!1,oe=!1,Me=!1,Ut=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},At=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},xt=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,19,1,17,0,65,1,253,15,65,2,253,15,65,3,253,15,253,147,2,11]))}catch{return!1}},We=async e=>{if(we)return Promise.resolve();if(oe)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Me)throw new Error("previous call to 'initializeWebAssembly()' failed.");oe=!0;let t=e.initTimeout,n=e.numThreads;if(e.simd!==!1){if(e.simd==="relaxed"){if(!xt())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!At())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let o=Ut();n>1&&!o&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+n+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),e.numThreads=n=1);let r=e.wasmPaths,a=typeof r=="string"?r:void 0,s=r?.mjs,i=s?.href??s,u=r?.wasm,l=u?.href??u,w=e.wasmBinary,[f,c]=await Ce(i,a,n>1,!!w||!!l),p=!1,S=[];if(t>0&&S.push(new Promise(h=>{setTimeout(()=>{p=!0,h()},t)})),S.push(new Promise((h,P)=>{let m={numThreads:n};if(w)m.wasmBinary=w,m.locateFile=b=>b;else if(l||a)m.locateFile=b=>l??a+b;else if(i&&i.indexOf("blob:")!==0)m.locateFile=b=>new URL(b,i).href;else if(f){let b=xe();b&&(m.locateFile=M=>b+M)}c(m).then(b=>{oe=!1,we=!0,be=b,h(),f&&URL.revokeObjectURL(f)},b=>{oe=!1,Me=!0,P(b)})})),await Promise.race(S),p)throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`)},E=()=>{if(we&&be)return be;throw new Error("WebAssembly is not initialized yet.")}});var A,Q,g,se=C(()=>{"use strict";V();A=(e,t)=>{let n=E(),o=n.lengthBytesUTF8(e)+1,r=n._malloc(o);return n.stringToUTF8(e,r,o),t.push(r),r},Q=(e,t,n,o)=>{if(typeof e=="object"&&e!==null){if(n.has(e))throw new Error("Circular reference in options");n.add(e)}Object.entries(e).forEach(([r,a])=>{let s=t?t+r:r;if(typeof a=="object")Q(a,s+".",n,o);else if(typeof a=="string"||typeof a=="number")o(s,a.toString());else if(typeof a=="boolean")o(s,a?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof a}`)})},g=e=>{let t=E(),n=t.stackSave();try{let o=t.PTR_SIZE,r=t.stackAlloc(2*o);t._OrtGetLastError(r,r+o);let a=Number(t.getValue(r,o===4?"i32":"i64")),s=t.getValue(r+o,"*"),i=s?t.UTF8ToString(s):"";throw new Error(`${e} ERROR_CODE: ${a}, ERROR_MESSAGE: ${i}`)}finally{t.stackRestore(n)}}});var ke,Fe=C(()=>{"use strict";V();se();ke=e=>{let t=E(),n=0,o=[],r=e||{};try{if(e?.logSeverityLevel===void 0)r.logSeverityLevel=2;else if(typeof e.logSeverityLevel!="number"||!Number.isInteger(e.logSeverityLevel)||e.logSeverityLevel<0||e.logSeverityLevel>4)throw new Error(`log severity level is not valid: ${e.logSeverityLevel}`);if(e?.logVerbosityLevel===void 0)r.logVerbosityLevel=0;else if(typeof e.logVerbosityLevel!="number"||!Number.isInteger(e.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${e.logVerbosityLevel}`);e?.terminate===void 0&&(r.terminate=!1);let a=0;return e?.tag!==void 0&&(a=A(e.tag,o)),n=t._OrtCreateRunOptions(r.logSeverityLevel,r.logVerbosityLevel,!!r.terminate,a),n===0&&g("Can't create run options."),e?.extra!==void 0&&Q(e.extra,"",new WeakSet,(s,i)=>{let u=A(s,o),l=A(i,o);t._OrtAddRunConfigEntry(n,u,l)!==0&&g(`Can't set a run config entry: ${s} - ${i}.`)}),[n,o]}catch(a){throw n!==0&&t._OrtReleaseRunOptions(n),o.forEach(s=>t._free(s)),a}}});var Ct,Mt,Wt,q,kt,Re,Ne=C(()=>{"use strict";V();se();Ct=e=>{switch(e){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"layout":return 3;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${e}`)}},Mt=e=>{switch(e){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},Wt=e=>{e.extra||(e.extra={}),e.extra.session||(e.extra.session={});let t=e.extra.session;t.use_ort_model_bytes_directly||(t.use_ort_model_bytes_directly="1"),e.executionProviders&&e.executionProviders.some(n=>(typeof n=="string"?n:n.name)==="webgpu")&&(e.enableMemPattern=!1)},q=(e,t,n,o)=>{let r=A(t,o),a=A(n,o);E()._OrtAddSessionConfigEntry(e,r,a)!==0&&g(`Can't set a session config entry: ${t} - ${n}.`)},kt=async(e,t,n)=>{let o=t.executionProviders;for(let r of o){let a=typeof r=="string"?r:r.name,s=[];switch(a){case"webnn":if(a="WEBNN",q(e,"session.disable_quant_qdq","1",n),q(e,"session.disable_qdq_constant_folding","1",n),typeof r!="string"){let c=r?.deviceType;c&&q(e,"deviceType",c,n)}break;case"webgpu":if(a="JS",typeof r!="string"){let f=r;if(f?.preferredLayout){if(f.preferredLayout!=="NCHW"&&f.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${f.preferredLayout}`);q(e,"preferredLayout",f.preferredLayout,n)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${a}`)}let i=A(a,n),u=s.length,l=0,w=0;if(u>0){l=E()._malloc(u*E().PTR_SIZE),n.push(l),w=E()._malloc(u*E().PTR_SIZE),n.push(w);for(let f=0;f<u;f++)E().setValue(l+f*E().PTR_SIZE,s[f][0],"*"),E().setValue(w+f*E().PTR_SIZE,s[f][1],"*")}await E()._OrtAppendExecutionProvider(e,i,l,w,u)!==0&&g(`Can't append execution provider: ${a}.`)}},Re=async e=>{let t=E(),n=0,o=[],r=e||{};Wt(r);try{let a=Ct(r.graphOptimizationLevel??"all"),s=Mt(r.executionMode??"sequential"),i=typeof r.logId=="string"?A(r.logId,o):0,u=r.logSeverityLevel??2;if(!Number.isInteger(u)||u<0||u>4)throw new Error(`log severity level is not valid: ${u}`);let l=r.logVerbosityLevel??0;if(!Number.isInteger(l)||l<0||l>4)throw new Error(`log verbosity level is not valid: ${l}`);let w=typeof r.optimizedModelFilePath=="string"?A(r.optimizedModelFilePath,o):0;if(n=t._OrtCreateSessionOptions(a,!!r.enableCpuMemArena,!!r.enableMemPattern,s,!!r.enableProfiling,0,i,u,l,w),n===0&&g("Can't create session options."),r.executionProviders&&await kt(n,r,o),r.enableGraphCapture!==void 0){if(typeof r.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${r.enableGraphCapture}`);q(n,"enableGraphCapture",r.enableGraphCapture.toString(),o)}if(r.freeDimensionOverrides)for(let[f,c]of Object.entries(r.freeDimensionOverrides)){if(typeof f!="string")throw new Error(`free dimension override name must be a string: ${f}`);if(typeof c!="number"||!Number.isInteger(c)||c<0)throw new Error(`free dimension override value must be a non-negative integer: ${c}`);let p=A(f,o);t._OrtAddFreeDimensionOverride(n,p,c)!==0&&g(`Can't set a free dimension override: ${f} - ${c}.`)}return r.extra!==void 0&&Q(r.extra,"",new WeakSet,(f,c)=>{q(n,f,c,o)}),[n,o]}catch(a){throw n!==0&&t._OrtReleaseSessionOptions(n)!==0&&g("Can't release session options."),o.forEach(s=>t._free(s)),a}}});var J,ae,Y,Ge,je,ie,ue,$e,ge=C(()=>{"use strict";J=e=>{switch(e){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${e}`)}},ae=e=>{switch(e){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${e}`)}},Y=(e,t)=>{let n=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][e],o=typeof t=="number"?t:t.reduce((r,a)=>r*a,1);return n>0?Math.ceil(o*n):void 0},Ge=e=>{switch(e){case"float16":return typeof Float16Array<"u"?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${e}`)}},je=e=>{switch(e){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${e}`)}},ie=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",ue=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint64"||e==="int8"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",$e=e=>{switch(e){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${e}`)}}});var ee,ye=C(()=>{"use strict";ne();ee=async e=>{if(typeof e=="string")if(j)try{let{readFile:t}=de("node:fs/promises");return new Uint8Array(await t(e))}catch(t){if(t.code==="ERR_FS_FILE_TOO_LARGE"){let{createReadStream:n}=de("node:fs"),o=n(e),r=[];for await(let a of o)r.push(a);return new Uint8Array(Buffer.concat(r))}throw t}else{let t=await fetch(e);if(!t.ok)throw new Error(`failed to load external data file: ${e}`);let n=t.headers.get("Content-Length"),o=n?parseInt(n,10):0;if(o<1073741824)return new Uint8Array(await t.arrayBuffer());{if(!t.body)throw new Error(`failed to load external data file: ${e}, no response body.`);let r=t.body.getReader(),a;try{a=new ArrayBuffer(o)}catch(i){if(i instanceof RangeError){let u=Math.ceil(o/65536);a=new WebAssembly.Memory({initial:u,maximum:u}).buffer}else throw i}let s=0;for(;;){let{done:i,value:u}=await r.read();if(i)break;let l=u.byteLength;new Uint8Array(a,s,l).set(u),s+=l}return new Uint8Array(a,0,o)}}else return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}});import{TRACE_EVENT_BEGIN as ze,TRACE_EVENT_END as He}from"onnxruntime-common";var Ft,Je,Ye,Z,Rt,Ve,Ee,Ze,Xe,qe,Ke,Qe,et=C(()=>{"use strict";Fe();Ne();ge();V();se();ye();Ft=(e,t)=>{E()._OrtInit(e,t)!==0&&g("Can't initialize onnxruntime.")},Je=async e=>{Ft(e.wasm.numThreads,je(e.logLevel))},Ye=async(e,t)=>{E().asyncInit?.();let n=e.webgpu.adapter;if(t==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");if(n){if(typeof n.limits!="object"||typeof n.features!="object"||typeof n.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let o=e.webgpu.powerPreference;if(o!==void 0&&o!=="low-power"&&o!=="high-performance")throw new Error(`Invalid powerPreference setting: "${o}"`);let r=e.webgpu.forceFallbackAdapter;if(r!==void 0&&typeof r!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${r}"`);if(n=await navigator.gpu.requestAdapter({powerPreference:o,forceFallbackAdapter:r}),!n)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}}if(t==="webnn"&&(typeof navigator>"u"||!navigator.ml))throw new Error("WebNN is not supported in current environment")},Z=new Map,Rt=e=>{let t=E(),n=t.stackSave();try{let o=t.PTR_SIZE,r=t.stackAlloc(2*o);t._OrtGetInputOutputCount(e,r,r+o)!==0&&g("Can't get session input/output count.");let s=o===4?"i32":"i64";return[Number(t.getValue(r,s)),Number(t.getValue(r+o,s))]}finally{t.stackRestore(n)}},Ve=(e,t)=>{let n=E(),o=n.stackSave(),r=0;try{let a=n.PTR_SIZE,s=n.stackAlloc(2*a);n._OrtGetInputOutputMetadata(e,t,s,s+a)!==0&&g("Can't get session input/output metadata.");let u=Number(n.getValue(s,"*"));r=Number(n.getValue(s+a,"*"));let l=n.HEAP32[r/4];if(l===0)return[u,0];let w=n.HEAPU32[r/4+1],f=[];for(let c=0;c<w;c++){let p=Number(n.getValue(r+8+c*a,"*"));f.push(p!==0?n.UTF8ToString(p):Number(n.getValue(r+8+(c+w)*a,"*")))}return[u,l,f]}finally{n.stackRestore(o),r!==0&&n._OrtFree(r)}},Ee=e=>{let t=E(),n=t._malloc(e.byteLength);if(n===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${e.byteLength}.`);return t.HEAPU8.set(e,n),[n,e.byteLength]},Ze=async(e,t)=>{let n,o,r=E();Array.isArray(e)?[n,o]=e:e.buffer===r.HEAPU8.buffer?[n,o]=[e.byteOffset,e.byteLength]:[n,o]=Ee(e);let a=0,s=0,i=0,u=[],l=[],w=[];try{if([s,u]=await Re(t),t?.externalData&&r.mountExternalData){let y=[];for(let O of t.externalData){let _=typeof O=="string"?O:O.path,U=typeof O=="string"?O:O.data;y.push(ee(U).then(L=>{r.mountExternalData(_,L)}))}await Promise.all(y)}for(let y of t?.executionProviders??[])if((typeof y=="string"?y:y.name)==="webnn"){if(r.shouldTransferToMLTensor=!1,typeof y!="string"){let _=y,U=_?.context,L=_?.gpuDevice,X=_?.deviceType,z=_?.powerPreference;U?r.currentContext=U:L?r.currentContext=await r.webnnCreateMLContext(L):r.currentContext=await r.webnnCreateMLContext({deviceType:X,powerPreference:z})}else r.currentContext=await r.webnnCreateMLContext();break}a=await r._OrtCreateSession(n,o,s),r.webgpuOnCreateSession?.(a),a===0&&g("Can't create a session."),r.jsepOnCreateSession?.(),r.currentContext&&(r.webnnRegisterMLContext(a,r.currentContext),r.currentContext=void 0,r.shouldTransferToMLTensor=!0);let[f,c]=Rt(a),p=!!t?.enableGraphCapture,S=[],h=[],P=[],m=[],b=[];for(let y=0;y<f;y++){let[O,_,U]=Ve(a,y);O===0&&g("Can't get an input name."),l.push(O);let L=r.UTF8ToString(O);S.push(L),P.push(_===0?{name:L,isTensor:!1}:{name:L,isTensor:!0,type:ae(_),shape:U})}for(let y=0;y<c;y++){let[O,_,U]=Ve(a,y+f);O===0&&g("Can't get an output name."),w.push(O);let L=r.UTF8ToString(O);h.push(L),m.push(_===0?{name:L,isTensor:!1}:{name:L,isTensor:!0,type:ae(_),shape:U})}return Z.set(a,[a,l,w,null,p,!1]),[a,S,h,P,m]}catch(f){throw l.forEach(c=>r._OrtFree(c)),w.forEach(c=>r._OrtFree(c)),i!==0&&r._OrtReleaseBinding(i)!==0&&g("Can't release IO binding."),a!==0&&r._OrtReleaseSession(a)!==0&&g("Can't release session."),f}finally{r._free(n),s!==0&&r._OrtReleaseSessionOptions(s)!==0&&g("Can't release session options."),u.forEach(f=>r._free(f)),r.unmountExternalData?.()}},Xe=e=>{let t=E(),n=Z.get(e);if(!n)throw new Error(`cannot release session. invalid session id: ${e}`);let[o,r,a,s,i]=n;s&&(i&&t._OrtClearBoundOutputs(s.handle)!==0&&g("Can't clear bound outputs."),t._OrtReleaseBinding(s.handle)!==0&&g("Can't release IO binding.")),t.jsepOnReleaseSession?.(e),t.webnnOnReleaseSession?.(e),t.webgpuOnReleaseSession?.(e),r.forEach(u=>t._OrtFree(u)),a.forEach(u=>t._OrtFree(u)),t._OrtReleaseSession(o)!==0&&g("Can't release session."),Z.delete(e)},qe=async(e,t,n,o,r,a,s=!1)=>{if(!e){t.push(0);return}let i=E(),u=i.PTR_SIZE,l=e[0],w=e[1],f=e[3],c=f,p,S;if(l==="string"&&(f==="gpu-buffer"||f==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(s&&f!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${a} when enableGraphCapture is true.`);if(f==="gpu-buffer"){let m=e[2].gpuBuffer;S=Y(J(l),w);{let b=i.jsepRegisterBuffer;if(!b)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');p=b(o,a,m,S)}}else if(f==="ml-tensor"){let m=e[2].mlTensor;S=Y(J(l),w);let b=i.webnnRegisterMLTensor;if(!b)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');p=b(o,m,J(l),w)}else{let m=e[2];if(Array.isArray(m)){S=u*m.length,p=i._malloc(S),n.push(p);for(let b=0;b<m.length;b++){if(typeof m[b]!="string")throw new TypeError(`tensor data at index ${b} is not a string`);i.setValue(p+b*u,A(m[b],n),"*")}}else{let b=i.webnnIsGraphInput,M=i.webnnIsGraphOutput;if(l!=="string"&&b&&M){let y=i.UTF8ToString(r);if(b(o,y)||M(o,y)){let O=J(l);S=Y(O,w),c="ml-tensor";let _=i.webnnCreateTemporaryTensor,U=i.webnnUploadTensor;if(!_||!U)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');let L=await _(o,O,w);U(L,new Uint8Array(m.buffer,m.byteOffset,m.byteLength)),p=L}else S=m.byteLength,p=i._malloc(S),n.push(p),i.HEAPU8.set(new Uint8Array(m.buffer,m.byteOffset,S),p)}else S=m.byteLength,p=i._malloc(S),n.push(p),i.HEAPU8.set(new Uint8Array(m.buffer,m.byteOffset,S),p)}}let h=i.stackSave(),P=i.stackAlloc(4*w.length);try{w.forEach((b,M)=>i.setValue(P+M*u,b,u===4?"i32":"i64"));let m=i._OrtCreateTensor(J(l),p,S,P,w.length,$e(c));m===0&&g(`Can't create tensor for input/output. session=${o}, index=${a}.`),t.push(m)}finally{i.stackRestore(h)}},Ke=async(e,t,n,o,r,a)=>{let s=E(),i=s.PTR_SIZE,u=Z.get(e);if(!u)throw new Error(`cannot run inference. invalid session id: ${e}`);let l=u[0],w=u[1],f=u[2],c=u[3],p=u[4],S=u[5],h=t.length,P=o.length,m=0,b=[],M=[],y=[],O=[],_=[],U=s.stackSave(),L=s.stackAlloc(h*i),X=s.stackAlloc(h*i),z=s.stackAlloc(P*i),Te=s.stackAlloc(P*i);try{[m,b]=ke(a),ze("wasm prepareInputOutputTensor");for(let d=0;d<h;d++)await qe(n[d],M,O,e,w[t[d]],t[d],p);for(let d=0;d<P;d++)await qe(r[d],y,O,e,f[o[d]],h+o[d],p);He("wasm prepareInputOutputTensor");for(let d=0;d<h;d++)s.setValue(L+d*i,M[d],"*"),s.setValue(X+d*i,w[t[d]],"*");for(let d=0;d<P;d++)s.setValue(z+d*i,y[d],"*"),s.setValue(Te+d*i,f[o[d]],"*");s.jsepOnRunStart?.(l),s.webnnOnRunStart?.(l);let x;x=await s._OrtRun(l,X,L,h,Te,P,z,m),x!==0&&g("failed to call OrtRun().");let F=[],Le=[];ze("wasm ProcessOutputTensor");for(let d=0;d<P;d++){let W=Number(s.getValue(z+d*i,"*"));if(W===y[d]||_.includes(y[d])){F.push(r[d]),W!==y[d]&&s._OrtReleaseTensor(W)!==0&&g("Can't release tensor.");continue}let Be=s.stackSave(),k=s.stackAlloc(4*i),H=!1,T,v=0;try{s._OrtGetTensorData(W,k,k+i,k+2*i,k+3*i)!==0&&g(`Can't access output tensor data on index ${d}.`);let le=i===4?"i32":"i64",te=Number(s.getValue(k,le));v=s.getValue(k+i,"*");let _e=s.getValue(k+i*2,"*"),yt=Number(s.getValue(k+i*3,le)),R=[];for(let B=0;B<yt;B++)R.push(Number(s.getValue(_e+B*i,le)));s._OrtFree(_e)!==0&&g("Can't free memory for tensor dims.");let N=R.reduce((B,I)=>B*I,1);T=ae(te);let K=c?.outputPreferredLocations[o[d]];if(T==="string"){if(K==="gpu-buffer"||K==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let B=[];for(let I=0;I<N;I++){let G=s.getValue(v+I*i,"*"),re=s.getValue(v+(I+1)*i,"*"),Pe=I===N-1?void 0:re-G;B.push(s.UTF8ToString(G,Pe))}F.push([T,R,B,"cpu"])}else if(K==="gpu-buffer"&&N>0){let B=s.jsepGetBuffer;if(!B)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let I=B(v),G=Y(te,N);if(G===void 0||!ie(T))throw new Error(`Unsupported data type: ${T}`);H=!0,F.push([T,R,{gpuBuffer:I,download:s.jsepCreateDownloader(I,G,T),dispose:()=>{s._OrtReleaseTensor(W)!==0&&g("Can't release tensor.")}},"gpu-buffer"])}else if(K==="ml-tensor"&&N>0){let B=s.webnnEnsureTensor,I=s.webnnIsGraphInputOutputTypeSupported;if(!B||!I)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Y(te,N)===void 0||!ue(T))throw new Error(`Unsupported data type: ${T}`);if(!I(e,T,!1))throw new Error(`preferredLocation "ml-tensor" for ${T} output is not supported by current WebNN Context.`);let re=await B(e,v,te,R,!1);H=!0,F.push([T,R,{mlTensor:re,download:s.webnnCreateMLTensorDownloader(v,T),dispose:()=>{s.webnnReleaseTensorId(v),s._OrtReleaseTensor(W)}},"ml-tensor"])}else if(K==="ml-tensor-cpu-output"&&N>0){let B=s.webnnCreateMLTensorDownloader(v,T)(),I=F.length;H=!0,Le.push((async()=>{let G=[I,await B];return s.webnnReleaseTensorId(v),s._OrtReleaseTensor(W),G})()),F.push([T,R,[],"cpu"])}else{let B=Ge(T),I=new B(N);new Uint8Array(I.buffer,I.byteOffset,I.byteLength).set(s.HEAPU8.subarray(v,v+I.byteLength)),F.push([T,R,I,"cpu"])}}finally{s.stackRestore(Be),T==="string"&&v&&s._free(v),H||s._OrtReleaseTensor(W)}}c&&!p&&(s._OrtClearBoundOutputs(c.handle)!==0&&g("Can't clear bound outputs."),Z.set(e,[l,w,f,c,p,!1]));for(let[d,W]of await Promise.all(Le))F[d][2]=W;return He("wasm ProcessOutputTensor"),F}finally{s.webnnOnRunEnd?.(l),s.stackRestore(U),M.forEach(x=>s._OrtReleaseTensor(x)),y.forEach(x=>s._OrtReleaseTensor(x)),O.forEach(x=>s._free(x)),m!==0&&s._OrtReleaseRunOptions(m),b.forEach(x=>s._free(x))}},Qe=e=>{let t=E(),n=Z.get(e);if(!n)throw new Error("invalid session id");let o=n[0],r=t._OrtEndProfiling(o);r===0&&g("Can't get an profile file name."),t._OrtFree(r)}});import{env as he}from"onnxruntime-common";var Se,tt,rt,nt,ot,st,at,it,ut,ct,Oe=C(()=>{"use strict";et();V();me();Se=!1,tt=!1,rt=!1,nt=async()=>{if(!tt){if(Se)throw new Error("multiple calls to 'initWasm()' detected.");if(rt)throw new Error("previous call to 'initWasm()' failed.");Se=!0;try{await We(he.wasm),await Je(he),tt=!0}catch(e){throw rt=!0,e}finally{Se=!1}}},ot=async e=>{await Ye(he,e)},st=async e=>Ee(e),at=async(e,t)=>Ze(e,t),it=async e=>{Xe(e)},ut=async(e,t,n,o,r,a)=>Ke(e,t,n,o,r,a),ct=async e=>{Qe(e)}});import{Tensor as Ie,TRACE_FUNC_BEGIN as ft,TRACE_FUNC_END as lt}from"onnxruntime-common";var pt,Gt,ce,dt=C(()=>{"use strict";Oe();ge();ne();ye();pt=(e,t)=>{switch(e.location){case"cpu":return[e.type,e.dims,e.data,"cpu"];case"gpu-buffer":return[e.type,e.dims,{gpuBuffer:e.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[e.type,e.dims,{mlTensor:e.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${e.location} for ${t()}`)}},Gt=e=>{switch(e[3]){case"cpu":return new Ie(e[0],e[2],e[1]);case"gpu-buffer":{let t=e[0];if(!ie(t))throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);let{gpuBuffer:n,download:o,dispose:r}=e[2];return Ie.fromGpuBuffer(n,{dataType:t,dims:e[1],download:o,dispose:r})}case"ml-tensor":{let t=e[0];if(!ue(t))throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);let{mlTensor:n,download:o,dispose:r}=e[2];return Ie.fromMLTensor(n,{dataType:t,dims:e[1],download:o,dispose:r})}default:throw new Error(`invalid data location: ${e[3]}`)}},ce=class{async fetchModelAndCopyToWasmMemory(t){return st(await ee(t))}async loadModel(t,n){ft();let o;typeof t=="string"?j?o=await ee(t):o=await this.fetchModelAndCopyToWasmMemory(t):o=t,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await at(o,n),lt()}async dispose(){return it(this.sessionId)}async run(t,n,o){ft();let r=[],a=[];Object.entries(t).forEach(c=>{let p=c[0],S=c[1],h=this.inputNames.indexOf(p);if(h===-1)throw new Error(`invalid input '${p}'`);r.push(S),a.push(h)});let s=[],i=[];Object.entries(n).forEach(c=>{let p=c[0],S=c[1],h=this.outputNames.indexOf(p);if(h===-1)throw new Error(`invalid output '${p}'`);s.push(S),i.push(h)});let u=r.map((c,p)=>pt(c,()=>`input "${this.inputNames[a[p]]}"`)),l=s.map((c,p)=>c?pt(c,()=>`output "${this.outputNames[i[p]]}"`):null),w=await ut(this.sessionId,a,u,i,l,o),f={};for(let c=0;c<w.length;c++)f[this.outputNames[i[c]]]=s[c]??Gt(w[c]);return lt(),f}startProfiling(){}endProfiling(){ct(this.sessionId)}}});var bt={};Ot(bt,{OnnxruntimeWebAssemblyBackend:()=>fe,initializeFlags:()=>mt,wasmBackend:()=>jt});import{env as D}from"onnxruntime-common";var mt,fe,jt,wt=C(()=>{"use strict";Oe();dt();mt=()=>{(typeof D.wasm.initTimeout!="number"||D.wasm.initTimeout<0)&&(D.wasm.initTimeout=0);let e=D.wasm.simd;if(typeof e!="boolean"&&e!==void 0&&e!=="fixed"&&e!=="relaxed"&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${e}". Reset it to \`false\` and ignore SIMD feature checking.`),D.wasm.simd=!1),typeof D.wasm.proxy!="boolean"&&(D.wasm.proxy=!1),typeof D.wasm.trace!="boolean"&&(D.wasm.trace=!1),typeof D.wasm.numThreads!="number"||!Number.isInteger(D.wasm.numThreads)||D.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)D.wasm.numThreads=1;else{let t=typeof navigator>"u"?de("node:os").cpus().length:navigator.hardwareConcurrency;D.wasm.numThreads=Math.min(4,Math.ceil((t||1)/2))}},fe=class{async init(t){mt(),await nt(),await ot(t)}async createInferenceSessionHandler(t,n){let o=new ce;return await o.loadModel(t,n),o}},jt=new fe});export*from"onnxruntime-common";import*as $t from"onnxruntime-common";import{registerBackend as gt,env as zt}from"onnxruntime-common";var ve="1.31.0-dev.20260914-8d85527a0";var Hr=$t;{let e=(wt(),Tt(bt)).wasmBackend;gt("cpu",e,10),gt("wasm",e,10)}Object.defineProperty(zt.versions,"web",{value:ve,enumerable:!0});export{Hr as default};
|
|
8
|
+
//# sourceMappingURL=ort.node.min.mjs.map
|