@dipertq/dsh-openviking-status 0.2.1 → 0.3.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/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.3/node_modules/@deepseek-ai/cosmokit/lib/index.js","../node_modules/.pnpm/@deepseek-ai+schemastery@3.18.2/node_modules/@deepseek-ai/schemastery/lib/index.mjs","../src/credentials.ts","../src/index.ts"],"sourcesContent":["//#region lib/types/misc.js\n/** No-op callback returning `undefined` at runtime and `any` at type level. */\nfunction noop() {}\n/** Return true when a value is `null` or `undefined`. */\nfunction isNullable(value) {\n\treturn value === null || value === void 0;\n}\n/** Return true when a value is neither `null` nor `undefined`. */\nfunction isNonNullable(value) {\n\treturn !isNullable(value);\n}\n/** Return true for non-array object values. */\nfunction isPlainObject(data) {\n\treturn data && typeof data === \"object\" && !Array.isArray(data);\n}\n/** Filter object entries and return a new object. */\nfunction filterKeys(object, filter) {\n\treturn Object.fromEntries(Object.entries(object).filter(([key, value]) => filter(key, value)));\n}\n/** Map object values while preserving the original key set. */\nfunction mapValues(object, transform) {\n\treturn Object.fromEntries(Object.entries(object).map(([key, value]) => [key, transform(value, key)]));\n}\n/** Pick selected keys from an object, optionally including `undefined` values. */\nfunction pick(source, keys, forced) {\n\tif (!keys) return { ...source };\n\tconst result = {};\n\tfor (const key of keys) if (forced || source[key] !== void 0) result[key] = source[key];\n\treturn result;\n}\n/** Omit selected keys from a shallow object copy. */\nfunction omit(source, keys) {\n\tif (!keys) return { ...source };\n\tconst result = { ...source };\n\tfor (const key of keys) Reflect.deleteProperty(result, key);\n\treturn result;\n}\n/** Define a non-enumerable writable property and return the object. */\nfunction defineProperty(object, key, value) {\n\treturn Object.defineProperty(object, key, {\n\t\twritable: true,\n\t\tvalue,\n\t\tenumerable: false\n\t});\n}\n//#endregion\n//#region lib/types/array.js\n/** Return true when every item in `array2` is present in `array1`. */\nfunction contain(array1, array2) {\n\treturn array2.every((item) => array1.includes(item));\n}\n/** Return items that appear in both arrays. */\nfunction intersection(array1, array2) {\n\treturn array1.filter((item) => array2.includes(item));\n}\n/** Return items from `array1` that do not appear in `array2`. */\nfunction difference(array1, array2) {\n\treturn array1.filter((item) => !array2.includes(item));\n}\n/** Return the set-union of two arrays while preserving first occurrence order. */\nfunction union(array1, array2) {\n\treturn Array.from(new Set([...array1, ...array2]));\n}\n/** Remove duplicate values while preserving first occurrence order. */\nfunction deduplicate(array) {\n\treturn [...new Set(array)];\n}\n/** Remove one item from an array and report whether it was found. */\nfunction remove(list, item) {\n\tconst index = list?.indexOf(item);\n\tif (index >= 0) {\n\t\tlist.splice(index, 1);\n\t\treturn true;\n\t} else return false;\n}\n/** Normalize nullish, scalar, or array input to an array. */\nfunction makeArray(source) {\n\treturn Array.isArray(source) ? source : isNullable(source) ? [] : [source];\n}\n//#endregion\n//#region lib/types/types.js\n/** Test values using `instanceof` with a `toStringTag` fallback. */\nfunction is(type, value) {\n\tif (arguments.length === 1) return (value) => is(type, value);\n\treturn type in globalThis && value instanceof globalThis[type] || Object.prototype.toString.call(value).slice(8, -1) === type;\n}\nfunction isArrayBufferLike(value) {\n\treturn is(\"ArrayBuffer\", value) || is(\"SharedArrayBuffer\", value);\n}\nfunction isArrayBufferSource(value) {\n\treturn isArrayBufferLike(value) || ArrayBuffer.isView(value);\n}\n/** Binary source detection and base64/hex conversion helpers. */\nvar Binary;\n(function(Binary) {\n\tBinary.is = isArrayBufferLike;\n\tBinary.isSource = isArrayBufferSource;\n\tfunction fromSource(source) {\n\t\tif (ArrayBuffer.isView(source)) return source.buffer.slice(source.byteOffset, source.byteOffset + source.byteLength);\n\t\telse return source;\n\t}\n\tBinary.fromSource = fromSource;\n\tfunction toBase64(source) {\n\t\tsource = fromSource(source);\n\t\tif (typeof Buffer !== \"undefined\") return Buffer.from(source).toString(\"base64\");\n\t\tlet binary = \"\";\n\t\tconst bytes = new Uint8Array(source);\n\t\tfor (let i = 0; i < bytes.byteLength; i++) binary += String.fromCharCode(bytes[i]);\n\t\treturn btoa(binary);\n\t}\n\tBinary.toBase64 = toBase64;\n\tfunction fromBase64(source) {\n\t\tif (typeof Buffer !== \"undefined\") return fromSource(Buffer.from(source, \"base64\"));\n\t\treturn Uint8Array.from(atob(source), (c) => c.charCodeAt(0));\n\t}\n\tBinary.fromBase64 = fromBase64;\n\tfunction toHex(source) {\n\t\tsource = fromSource(source);\n\t\tif (typeof Buffer !== \"undefined\") return Buffer.from(source).toString(\"hex\");\n\t\treturn Array.from(new Uint8Array(source), (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n\t}\n\tBinary.toHex = toHex;\n\tfunction fromHex(source) {\n\t\tif (typeof Buffer !== \"undefined\") return fromSource(Buffer.from(source, \"hex\"));\n\t\tconst hex = source.length % 2 === 0 ? source : source.slice(0, source.length - 1);\n\t\tconst buffer = [];\n\t\tfor (let i = 0; i < hex.length; i += 2) buffer.push(parseInt(`${hex[i]}${hex[i + 1]}`, 16));\n\t\treturn Uint8Array.from(buffer).buffer;\n\t}\n\tBinary.fromHex = fromHex;\n})(Binary || (Binary = {}));\n/** Decode a base64 string into binary data. */\nconst base64ToArrayBuffer = Binary.fromBase64;\n/** Encode binary data as base64. */\nconst arrayBufferToBase64 = Binary.toBase64;\n/** Decode a hex string into binary data. */\nconst hexToArrayBuffer = Binary.fromHex;\n/** Encode binary data as hex. */\nconst arrayBufferToHex = Binary.toHex;\n/** Deep-clone common JavaScript values while preserving prototypes and cycles. */\nfunction clone(source, refs = /* @__PURE__ */ new Map()) {\n\tif (!source || typeof source !== \"object\") return source;\n\tif (is(\"Date\", source)) return new Date(source.valueOf());\n\tif (is(\"RegExp\", source)) return new RegExp(source.source, source.flags);\n\tif (isArrayBufferLike(source)) return source.slice(0);\n\tif (ArrayBuffer.isView(source)) return source.buffer.slice(source.byteOffset, source.byteOffset + source.byteLength);\n\tconst cached = refs.get(source);\n\tif (cached) return cached;\n\tif (Array.isArray(source)) {\n\t\tconst result = [];\n\t\trefs.set(source, result);\n\t\tsource.forEach((value, index) => {\n\t\t\tresult[index] = Reflect.apply(clone, null, [value, refs]);\n\t\t});\n\t\treturn result;\n\t}\n\tconst result = Object.create(Object.getPrototypeOf(source));\n\trefs.set(source, result);\n\tfor (const key of Reflect.ownKeys(source)) {\n\t\tconst descriptor = { ...Reflect.getOwnPropertyDescriptor(source, key) };\n\t\tif (\"value\" in descriptor) descriptor.value = Reflect.apply(clone, null, [descriptor.value, refs]);\n\t\tReflect.defineProperty(result, key, descriptor);\n\t}\n\treturn result;\n}\n/** Deeply compare arrays, dates, regexps, buffers, and plain object fields. */\nfunction deepEqual(a, b, strict) {\n\tif (a === b) return true;\n\tif (!strict && isNullable(a) && isNullable(b)) return true;\n\tif (typeof a !== typeof b) return false;\n\tif (typeof a !== \"object\") return false;\n\tif (!a || !b) return false;\n\tfunction check(test, then) {\n\t\treturn test(a) ? test(b) ? then(a, b) : false : test(b) ? false : void 0;\n\t}\n\treturn check(Array.isArray, (a, b) => a.length === b.length && a.every((item, index) => deepEqual(item, b[index]))) ?? check(is(\"Date\"), (a, b) => a.valueOf() === b.valueOf()) ?? check(is(\"RegExp\"), (a, b) => a.source === b.source && a.flags === b.flags) ?? check(isArrayBufferLike, (a, b) => {\n\t\tif (a.byteLength !== b.byteLength) return false;\n\t\tconst viewA = new Uint8Array(a);\n\t\tconst viewB = new Uint8Array(b);\n\t\tfor (let i = 0; i < viewA.length; i++) if (viewA[i] !== viewB[i]) return false;\n\t\treturn true;\n\t}) ?? Object.keys({\n\t\t...a,\n\t\t...b\n\t}).every((key) => deepEqual(a[key], b[key], strict));\n}\n//#endregion\n//#region lib/types/string.js\n/** Uppercase the first character of a string. */\nfunction capitalize(source) {\n\treturn source.charAt(0).toUpperCase() + source.slice(1);\n}\n/** Lowercase the first character of a string. */\nfunction uncapitalize(source) {\n\treturn source.charAt(0).toLowerCase() + source.slice(1);\n}\n/** Convert dash or underscore delimited text to camelCase. */\nfunction camelCase(source) {\n\treturn source.replace(/[_-][a-z]/g, (str) => str.slice(1).toUpperCase());\n}\nfunction tokenize(source, delimiters, delimiter) {\n\tconst output = [];\n\tlet state = 0;\n\tfor (let i = 0; i < source.length; i++) {\n\t\tconst code = source.charCodeAt(i);\n\t\tif (code >= 65 && code <= 90) {\n\t\t\tif (state === 1) {\n\t\t\t\tconst next = source.charCodeAt(i + 1);\n\t\t\t\tif (next >= 97 && next <= 122) output.push(delimiter);\n\t\t\t\toutput.push(code + 32);\n\t\t\t} else {\n\t\t\t\tif (state !== 0) output.push(delimiter);\n\t\t\t\toutput.push(code + 32);\n\t\t\t}\n\t\t\tstate = 1;\n\t\t} else if (code >= 97 && code <= 122) {\n\t\t\toutput.push(code);\n\t\t\tstate = 2;\n\t\t} else if (delimiters.includes(code)) {\n\t\t\tif (state !== 0) output.push(delimiter);\n\t\t\tstate = 0;\n\t\t} else output.push(code);\n\t}\n\treturn String.fromCharCode(...output);\n}\n/** Convert text to dash-delimited parameter case. */\nfunction paramCase(source) {\n\treturn tokenize(source, [45, 95], 45);\n}\n/** Convert text to underscore-delimited snake case. */\nfunction snakeCase(source) {\n\treturn tokenize(source, [45, 95], 95);\n}\n/** Runtime alias for `camelCase`. */\nconst camelize = camelCase;\n/** Runtime alias for `paramCase`. */\nconst hyphenate = paramCase;\n/** Format a property key as a JavaScript member access suffix. */\nfunction formatProperty(key) {\n\tif (typeof key !== \"string\") return `[${key.toString()}]`;\n\treturn /^[a-z_$][\\w$]*$/i.test(key) ? `.${key}` : `[${JSON.stringify(key)}]`;\n}\n/** Remove one trailing slash from a path string. */\nfunction trimSlash(source) {\n\treturn source.replace(/\\/$/, \"\");\n}\n/** Ensure a path starts with `/` and has no trailing slash. */\nfunction sanitize(source) {\n\tif (!source.startsWith(\"/\")) source = \"/\" + source;\n\treturn trimSlash(source);\n}\n//#endregion\n//#region lib/types/time.js\n/** Time constants plus parsing and formatting helpers. */\nvar Time;\n(function(Time) {\n\tTime.millisecond = 1;\n\tTime.second = 1e3;\n\tTime.minute = Time.second * 60;\n\tTime.hour = Time.minute * 60;\n\tTime.day = Time.hour * 24;\n\tTime.week = Time.day * 7;\n\tlet timezoneOffset = (/* @__PURE__ */ new Date()).getTimezoneOffset();\n\tfunction setTimezoneOffset(offset) {\n\t\ttimezoneOffset = offset;\n\t}\n\tTime.setTimezoneOffset = setTimezoneOffset;\n\tfunction getTimezoneOffset() {\n\t\treturn timezoneOffset;\n\t}\n\tTime.getTimezoneOffset = getTimezoneOffset;\n\tfunction getDateNumber(date = /* @__PURE__ */ new Date(), offset) {\n\t\tif (typeof date === \"number\") date = new Date(date);\n\t\tif (offset === void 0) offset = timezoneOffset;\n\t\treturn Math.floor((date.valueOf() / Time.minute - offset) / 1440);\n\t}\n\tTime.getDateNumber = getDateNumber;\n\tfunction fromDateNumber(value, offset) {\n\t\tconst date = new Date(value * Time.day);\n\t\tif (offset === void 0) offset = timezoneOffset;\n\t\treturn new Date(+date + offset * Time.minute);\n\t}\n\tTime.fromDateNumber = fromDateNumber;\n\tconst numeric = /\\d+(?:\\.\\d+)?/.source;\n\tconst timeRegExp = new RegExp(`^${[\n\t\t\"w(?:eek(?:s)?)?\",\n\t\t\"d(?:ay(?:s)?)?\",\n\t\t\"h(?:our(?:s)?)?\",\n\t\t\"m(?:in(?:ute)?(?:s)?)?\",\n\t\t\"s(?:ec(?:ond)?(?:s)?)?\"\n\t].map((unit) => `(${numeric}${unit})?`).join(\"\")}$`);\n\tfunction parseTime(source) {\n\t\tconst capture = timeRegExp.exec(source);\n\t\tif (!capture) return 0;\n\t\treturn (parseFloat(capture[1]) * Time.week || 0) + (parseFloat(capture[2]) * Time.day || 0) + (parseFloat(capture[3]) * Time.hour || 0) + (parseFloat(capture[4]) * Time.minute || 0) + (parseFloat(capture[5]) * Time.second || 0);\n\t}\n\tTime.parseTime = parseTime;\n\tfunction parseDate(date) {\n\t\tconst parsed = parseTime(date);\n\t\tif (parsed) date = Date.now() + parsed;\n\t\telse if (/^\\d{1,2}(:\\d{1,2}){1,2}$/.test(date)) date = `${(/* @__PURE__ */ new Date()).toLocaleDateString()}-${date}`;\n\t\telse if (/^\\d{1,2}-\\d{1,2}-\\d{1,2}(:\\d{1,2}){1,2}$/.test(date)) date = `${(/* @__PURE__ */ new Date()).getFullYear()}-${date}`;\n\t\treturn date ? new Date(date) : /* @__PURE__ */ new Date();\n\t}\n\tTime.parseDate = parseDate;\n\tfunction format(ms) {\n\t\tconst abs = Math.abs(ms);\n\t\tif (abs >= Time.day - Time.hour / 2) return Math.round(ms / Time.day) + \"d\";\n\t\telse if (abs >= Time.hour - Time.minute / 2) return Math.round(ms / Time.hour) + \"h\";\n\t\telse if (abs >= Time.minute - Time.second / 2) return Math.round(ms / Time.minute) + \"m\";\n\t\telse if (abs >= Time.second) return Math.round(ms / Time.second) + \"s\";\n\t\treturn ms + \"ms\";\n\t}\n\tTime.format = format;\n\tfunction toDigits(source, length = 2) {\n\t\treturn source.toString().padStart(length, \"0\");\n\t}\n\tTime.toDigits = toDigits;\n\tfunction template(template, time = /* @__PURE__ */ new Date()) {\n\t\treturn template.replace(\"yyyy\", time.getFullYear().toString()).replace(\"yy\", time.getFullYear().toString().slice(2)).replace(\"MM\", toDigits(time.getMonth() + 1)).replace(\"dd\", toDigits(time.getDate())).replace(\"hh\", toDigits(time.getHours())).replace(\"mm\", toDigits(time.getMinutes())).replace(\"ss\", toDigits(time.getSeconds())).replace(\"SSS\", toDigits(time.getMilliseconds(), 3));\n\t}\n\tTime.template = template;\n})(Time || (Time = {}));\n//#endregion\nexport { Binary, Time, arrayBufferToBase64, arrayBufferToHex, base64ToArrayBuffer, camelCase, camelize, capitalize, clone, contain, deduplicate, deepEqual, defineProperty, difference, filterKeys, formatProperty, hexToArrayBuffer, hyphenate, intersection, is, isNonNullable, isNullable, isPlainObject, makeArray, mapValues, mapValues as valueMap, noop, omit, paramCase, pick, remove, sanitize, snakeCase, trimSlash, uncapitalize, union };\n","import { Binary, clone, deepEqual, filterKeys, isNullable, isPlainObject, pick, valueMap } from \"@deepseek-ai/cosmokit\";\n//#region lib/types/index.js\nconst kSchema = Symbol.for(\"schemastery\");\nconst kValidationError = Symbol.for(\"ValidationError\");\nglobalThis.__schemastery_index__ ??= 0;\nglobalThis.__schemastery_refs__ = void 0;\nvar ValidationError = class extends TypeError {\n\toptions;\n\tname = \"ValidationError\";\n\tconstructor(message, options) {\n\t\tlet prefix = \"$\";\n\t\tfor (const segment of options.path || []) if (typeof segment === \"string\") prefix += \".\" + segment;\n\t\telse if (typeof segment === \"number\") prefix += \"[\" + segment + \"]\";\n\t\telse if (typeof segment === \"symbol\") prefix += `[Symbol(${segment.toString()})]`;\n\t\tif (prefix.startsWith(\".\")) prefix = prefix.slice(1);\n\t\tsuper((prefix === \"$\" ? \"\" : `${prefix} `) + message);\n\t\tthis.options = options;\n\t}\n\tstatic is(error) {\n\t\treturn !!error?.[kValidationError];\n\t}\n};\nObject.defineProperty(ValidationError.prototype, kValidationError, { value: true });\nconst Schema = function(options) {\n\tconst schema = function(data, options = {}) {\n\t\treturn Schema.resolve(data, schema, options)[0];\n\t};\n\tif (options.refs) {\n\t\tconst refs = valueMap(options.refs, (options) => new Schema(options));\n\t\tconst getRef = (uid) => refs[uid];\n\t\tfor (const key in refs) {\n\t\t\tconst options = refs[key];\n\t\t\toptions.sKey = getRef(options.sKey);\n\t\t\toptions.inner = getRef(options.inner);\n\t\t\toptions.list = options.list && options.list.map(getRef);\n\t\t\toptions.dict = options.dict && valueMap(options.dict, getRef);\n\t\t}\n\t\treturn refs[options.uid];\n\t}\n\tObject.assign(schema, options);\n\tif (typeof schema.callback === \"string\") try {\n\t\tschema.callback = new Function(\"return \" + schema.callback)();\n\t} catch {}\n\tObject.defineProperty(schema, \"uid\", { value: globalThis.__schemastery_index__++ });\n\tObject.setPrototypeOf(schema, Schema.prototype);\n\tschema.meta ||= {};\n\tschema.toString = schema.toString.bind(schema);\n\treturn schema;\n};\nSchema.prototype = Object.create(Function.prototype);\nSchema.prototype[kSchema] = true;\nObject.defineProperty(Schema.prototype, \"~standard\", { get() {\n\treturn {\n\t\tversion: 1,\n\t\tvendor: \"schemastery\",\n\t\tvalidate: (value) => {\n\t\t\ttry {\n\t\t\t\treturn { value: Schema.resolve(value, this, {})[0] };\n\t\t\t} catch (error) {\n\t\t\t\tif (ValidationError.is(error)) return { issues: [{\n\t\t\t\t\tmessage: error.message,\n\t\t\t\t\tpath: error.options.path\n\t\t\t\t}] };\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t};\n} });\nSchema.ValidationError = ValidationError;\nSchema.prototype.toJSON = function toJSON() {\n\tif (globalThis.__schemastery_refs__) {\n\t\tglobalThis.__schemastery_refs__[this.uid] ??= JSON.parse(JSON.stringify({ ...this }));\n\t\treturn this.uid;\n\t}\n\tglobalThis.__schemastery_refs__ = { [this.uid]: { ...this } };\n\tglobalThis.__schemastery_refs__[this.uid] = JSON.parse(JSON.stringify({ ...this }));\n\tconst result = {\n\t\tuid: this.uid,\n\t\trefs: globalThis.__schemastery_refs__\n\t};\n\tglobalThis.__schemastery_refs__ = void 0;\n\treturn result;\n};\nSchema.prototype.set = function set(key, value) {\n\tthis.dict[key] = value;\n\treturn this;\n};\nSchema.prototype.push = function push(value) {\n\tthis.list.push(value);\n\treturn this;\n};\nfunction mergeDesc(original, messages) {\n\tconst result = typeof original === \"string\" ? { \"\": original } : { ...original };\n\tfor (const locale in messages) {\n\t\tconst value = messages[locale];\n\t\tif (value?.$description || value?.$desc) result[locale] = value.$description || value.$desc;\n\t\telse if (typeof value === \"string\") result[locale] = value;\n\t}\n\treturn result;\n}\nfunction getInner(value) {\n\treturn value?.$value ?? value?.$inner;\n}\nfunction extractKeys(data) {\n\treturn filterKeys(data ?? {}, (key) => !key.startsWith(\"$\"));\n}\nSchema.prototype.i18n = function i18n(messages) {\n\tconst schema = Schema(this);\n\tconst desc = mergeDesc(schema.meta.description, messages);\n\tif (Object.keys(desc).length) schema.meta.description = desc;\n\tif (schema.dict) schema.dict = valueMap(schema.dict, (inner, key) => {\n\t\treturn inner.i18n(valueMap(messages, (data) => getInner(data)?.[key] ?? data?.[key]));\n\t});\n\tif (schema.list) schema.list = schema.list.map((inner, index) => {\n\t\treturn inner.i18n(valueMap(messages, (data = {}) => {\n\t\t\tif (Array.isArray(getInner(data))) return getInner(data)[index];\n\t\t\tif (Array.isArray(data)) return data[index];\n\t\t\treturn extractKeys(data);\n\t\t}));\n\t});\n\tif (schema.inner) schema.inner = schema.inner.i18n(valueMap(messages, (data) => {\n\t\tif (getInner(data)) return getInner(data);\n\t\treturn extractKeys(data);\n\t}));\n\tif (schema.sKey) schema.sKey = schema.sKey.i18n(valueMap(messages, (data) => data?.$key));\n\treturn schema;\n};\nSchema.prototype.extra = function extra(key, value) {\n\tconst schema = Schema(this);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\t[key]: value\n\t};\n\treturn schema;\n};\nfor (const key of [\n\t\"required\",\n\t\"disabled\",\n\t\"collapse\",\n\t\"hidden\",\n\t\"loose\"\n]) Object.assign(Schema.prototype, { [key](value = true) {\n\tconst schema = Schema(this);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\t[key]: value\n\t};\n\treturn schema;\n} });\nSchema.prototype.deprecated = function deprecated() {\n\tconst schema = Schema(this);\n\tschema.meta.badges ||= [];\n\tschema.meta.badges.push({\n\t\ttext: \"deprecated\",\n\t\ttype: \"danger\"\n\t});\n\treturn schema;\n};\nSchema.prototype.experimental = function experimental() {\n\tconst schema = Schema(this);\n\tschema.meta.badges ||= [];\n\tschema.meta.badges.push({\n\t\ttext: \"experimental\",\n\t\ttype: \"warning\"\n\t});\n\treturn schema;\n};\nSchema.prototype.pattern = function pattern(regexp) {\n\tconst schema = Schema(this);\n\tconst pattern = pick(regexp, [\"source\", \"flags\"]);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\tpattern\n\t};\n\treturn schema;\n};\nSchema.prototype.simplify = function simplify(value) {\n\tif (deepEqual(value, this.meta.default, this.type === \"dict\")) return null;\n\tif (isNullable(value)) return value;\n\tif (this.type === \"object\" || this.type === \"dict\") {\n\t\tconst result = {};\n\t\tfor (const key in value) {\n\t\t\tconst item = (this.type === \"object\" ? this.dict[key] : this.inner)?.simplify(value[key]);\n\t\t\tif (this.type === \"dict\" || !isNullable(item)) result[key] = item;\n\t\t}\n\t\tif (deepEqual(result, this.meta.default, this.type === \"dict\")) return null;\n\t\treturn result;\n\t} else if (this.type === \"array\" || this.type === \"tuple\") {\n\t\tconst result = [];\n\t\tvalue.forEach((value, index) => {\n\t\t\tconst schema = this.type === \"array\" ? this.inner : this.list[index];\n\t\t\tconst item = schema ? schema.simplify(value) : value;\n\t\t\tresult.push(item);\n\t\t});\n\t\treturn result;\n\t} else if (this.type === \"intersect\") {\n\t\tconst result = {};\n\t\tfor (const item of this.list) Object.assign(result, item.simplify(value));\n\t\treturn result;\n\t} else if (this.type === \"union\") for (const schema of this.list) try {\n\t\tSchema.resolve(value, schema, {});\n\t\treturn schema.simplify(value);\n\t} catch {}\n\treturn value;\n};\nSchema.prototype.toString = function toString(inline) {\n\treturn formatters[this.type]?.(this, inline) ?? `Schema<${this.type}>`;\n};\nSchema.prototype.role = function role(role, extra) {\n\tconst schema = Schema(this);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\trole,\n\t\textra\n\t};\n\treturn schema;\n};\nfor (const key of [\n\t\"default\",\n\t\"link\",\n\t\"comment\",\n\t\"description\",\n\t\"max\",\n\t\"min\",\n\t\"step\"\n]) Object.assign(Schema.prototype, { [key](value) {\n\tconst schema = Schema(this);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\t[key]: value\n\t};\n\treturn schema;\n} });\nconst resolvers = {};\nSchema.extend = function extend(type, resolve) {\n\tresolvers[type] = resolve;\n};\nSchema.resolve = function resolve(data, schema, options = {}, strict = false) {\n\tif (!schema) return [data];\n\tif (options.ignore?.(data, schema)) return [data];\n\tif (isNullable(data) && schema.type !== \"lazy\") {\n\t\tif (schema.meta.required) throw new ValidationError(`missing required value`, options);\n\t\tlet current = schema;\n\t\tlet fallback = schema.meta.default;\n\t\twhile (current?.type === \"intersect\" && isNullable(fallback)) {\n\t\t\tcurrent = current.list[0];\n\t\t\tfallback = current?.meta.default;\n\t\t}\n\t\tif (isNullable(fallback)) return [data];\n\t\tdata = clone(fallback);\n\t}\n\tconst callback = resolvers[schema.type];\n\tif (!callback) throw new ValidationError(`unsupported type \"${schema.type}\"`, options);\n\ttry {\n\t\treturn callback(data, schema, options, strict);\n\t} catch (error) {\n\t\tif (!schema.meta.loose) throw error;\n\t\treturn [schema.meta.default];\n\t}\n};\nSchema.from = function from(source) {\n\tif (isNullable(source)) return Schema.any();\n\telse if ([\n\t\t\"string\",\n\t\t\"number\",\n\t\t\"boolean\"\n\t].includes(typeof source)) return Schema.const(source).required();\n\telse if (source[kSchema]) return source;\n\telse if (typeof source === \"function\") switch (source) {\n\t\tcase String: return Schema.string().required();\n\t\tcase Number: return Schema.number().required();\n\t\tcase Boolean: return Schema.boolean().required();\n\t\tcase Function: return Schema.function().required();\n\t\tdefault: return Schema.is(source).required();\n\t}\n\telse throw new TypeError(`cannot infer schema from ${source}`);\n};\nSchema.lazy = function lazy(builder) {\n\tconst toJSON = () => {\n\t\tif (!schema.inner[kSchema]) {\n\t\t\tschema.inner = schema.builder();\n\t\t\tschema.inner.meta = {\n\t\t\t\t...schema.meta,\n\t\t\t\t...schema.inner.meta\n\t\t\t};\n\t\t}\n\t\treturn schema.inner.toJSON();\n\t};\n\tconst schema = new Schema({\n\t\ttype: \"lazy\",\n\t\tbuilder,\n\t\tinner: { toJSON }\n\t});\n\treturn schema;\n};\nSchema.natural = function natural() {\n\treturn Schema.number().step(1).min(0);\n};\nSchema.percent = function percent() {\n\treturn Schema.number().step(.01).min(0).max(1).role(\"slider\");\n};\nSchema.date = function date() {\n\treturn Schema.union([Schema.is(Date), Schema.transform(Schema.string().role(\"datetime\"), (value, options) => {\n\t\tconst date = new Date(value);\n\t\tif (isNaN(+date)) throw new ValidationError(`invalid date \"${value}\"`, options);\n\t\treturn date;\n\t}, true)]);\n};\nSchema.regExp = function regExp(flag = \"\") {\n\treturn Schema.union([Schema.is(RegExp), Schema.transform(Schema.string().role(\"regexp\", { flag }), (value, options) => {\n\t\ttry {\n\t\t\treturn new RegExp(value, flag);\n\t\t} catch (e) {\n\t\t\tthrow new ValidationError(e.message, options);\n\t\t}\n\t}, true)]);\n};\nSchema.arrayBuffer = function arrayBuffer(encoding) {\n\treturn Schema.union([\n\t\tSchema.is(ArrayBuffer),\n\t\tSchema.is(SharedArrayBuffer),\n\t\tSchema.transform(Schema.any(), (value, options) => {\n\t\t\tif (Binary.isSource(value)) return Binary.fromSource(value);\n\t\t\tthrow new ValidationError(`expected ArrayBufferSource but got ${value}`, options);\n\t\t}, true),\n\t\t...encoding ? [Schema.transform(Schema.string(), (value, options) => {\n\t\t\ttry {\n\t\t\t\treturn encoding === \"base64\" ? Binary.fromBase64(value) : Binary.fromHex(value);\n\t\t\t} catch (e) {\n\t\t\t\tthrow new ValidationError(e.message, options);\n\t\t\t}\n\t\t}, true)] : []\n\t]);\n};\nSchema.extend(\"lazy\", (data, schema, options, strict) => {\n\tif (!schema.inner[kSchema]) {\n\t\tschema.inner = schema.builder();\n\t\tschema.inner.meta = {\n\t\t\t...schema.meta,\n\t\t\t...schema.inner.meta\n\t\t};\n\t}\n\treturn Schema.resolve(data, schema.inner, options, strict);\n});\nSchema.extend(\"any\", (data) => {\n\treturn [data];\n});\nSchema.extend(\"never\", (data, _, options) => {\n\tthrow new ValidationError(`expected nullable but got ${data}`, options);\n});\nSchema.extend(\"const\", (data, { value }, options) => {\n\tif (deepEqual(data, value)) return [value];\n\tthrow new ValidationError(`expected ${value} but got ${data}`, options);\n});\nfunction checkWithinRange(data, meta, description, options, skipMin = false) {\n\tconst { max = Infinity, min = -Infinity } = meta;\n\tif (data > max) throw new ValidationError(`expected ${description} <= ${max} but got ${data}`, options);\n\tif (data < min && !skipMin) throw new ValidationError(`expected ${description} >= ${min} but got ${data}`, options);\n}\nSchema.extend(\"string\", (data, { meta }, options) => {\n\tif (typeof data !== \"string\") throw new ValidationError(`expected string but got ${data}`, options);\n\tif (meta.pattern) {\n\t\tconst regexp = new RegExp(meta.pattern.source, meta.pattern.flags);\n\t\tif (!regexp.test(data)) throw new ValidationError(`expect string to match regexp ${regexp}`, options);\n\t}\n\tcheckWithinRange(data.length, meta, \"string length\", options);\n\treturn [data];\n});\nfunction decimalShift(data, digits) {\n\tconst str = data.toString();\n\tif (str.includes(\"e\")) return data * Math.pow(10, digits);\n\tconst index = str.indexOf(\".\");\n\tif (index === -1) return data * Math.pow(10, digits);\n\tconst frac = str.slice(index + 1);\n\tconst integer = str.slice(0, index);\n\tif (frac.length <= digits) return +(integer + frac.padEnd(digits, \"0\"));\n\treturn +(integer + frac.slice(0, digits) + \".\" + frac.slice(digits));\n}\nfunction isMultipleOf(data, min, step) {\n\tstep = Math.abs(step);\n\tif (!/^\\d+\\.\\d+$/.test(step.toString())) return (data - min) % step === 0;\n\tconst index = step.toString().indexOf(\".\");\n\tconst digits = step.toString().slice(index + 1).length;\n\treturn Math.abs(decimalShift(data, digits) - decimalShift(min, digits)) % decimalShift(step, digits) === 0;\n}\nSchema.extend(\"number\", (data, { meta }, options) => {\n\tif (typeof data !== \"number\") throw new ValidationError(`expected number but got ${data}`, options);\n\tcheckWithinRange(data, meta, \"number\", options);\n\tconst { step } = meta;\n\tif (step && !isMultipleOf(data, meta.min ?? 0, step)) throw new ValidationError(`expected number multiple of ${step} but got ${data}`, options);\n\treturn [data];\n});\nSchema.extend(\"boolean\", (data, _, options) => {\n\tif (typeof data === \"boolean\") return [data];\n\tthrow new ValidationError(`expected boolean but got ${data}`, options);\n});\nSchema.extend(\"bitset\", (data, { bits, meta }, options) => {\n\tlet value = 0, keys = [];\n\tif (typeof data === \"number\") {\n\t\tvalue = data;\n\t\tfor (const key in bits) if (data & bits[key]) keys.push(key);\n\t} else if (Array.isArray(data)) {\n\t\tkeys = data;\n\t\tfor (const key of keys) {\n\t\t\tif (typeof key !== \"string\") throw new ValidationError(`expected string but got ${key}`, options);\n\t\t\tif (key in bits) value |= bits[key];\n\t\t}\n\t} else throw new ValidationError(`expected number or array but got ${data}`, options);\n\tif (value === meta.default) return [value];\n\treturn [value, keys];\n});\nSchema.extend(\"function\", (data, _, options) => {\n\tif (typeof data === \"function\") return [data];\n\tthrow new ValidationError(`expected function but got ${data}`, options);\n});\nSchema.extend(\"is\", (data, { constructor }, options) => {\n\tif (typeof constructor === \"function\") {\n\t\tif (data instanceof constructor) return [data];\n\t\tthrow new ValidationError(`expected ${constructor.name} but got ${data}`, options);\n\t} else {\n\t\tif (isNullable(data)) throw new ValidationError(`expected ${constructor} but got ${data}`, options);\n\t\tlet prototype = Object.getPrototypeOf(data);\n\t\twhile (prototype) {\n\t\t\tif (prototype.constructor?.name === constructor) return [data];\n\t\t\tprototype = Object.getPrototypeOf(prototype);\n\t\t}\n\t\tthrow new ValidationError(`expected ${constructor} but got ${data}`, options);\n\t}\n});\nfunction property(data, key, schema, options) {\n\ttry {\n\t\tconst [value, adapted] = Schema.resolve(data[key], schema, {\n\t\t\t...options,\n\t\t\tpath: [...options.path || [], key]\n\t\t});\n\t\tif (adapted !== void 0) data[key] = adapted;\n\t\treturn value;\n\t} catch (e) {\n\t\tif (!options?.autofix) throw e;\n\t\tdelete data[key];\n\t\treturn schema.meta.default;\n\t}\n}\nSchema.extend(\"array\", (data, { inner, meta }, options) => {\n\tif (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options);\n\tcheckWithinRange(data.length, meta, \"array length\", options, !isNullable(inner.meta.default));\n\treturn [data.map((_, index) => property(data, index, inner, options))];\n});\nSchema.extend(\"dict\", (data, { inner, sKey }, options, strict) => {\n\tif (!isPlainObject(data)) throw new ValidationError(`expected object but got ${data}`, options);\n\tconst result = {};\n\tfor (const key in data) {\n\t\tlet rKey;\n\t\ttry {\n\t\t\trKey = Schema.resolve(key, sKey, options)[0];\n\t\t} catch (error) {\n\t\t\tif (strict) continue;\n\t\t\tthrow error;\n\t\t}\n\t\tresult[rKey] = property(data, key, inner, options);\n\t\tdata[rKey] = data[key];\n\t\tif (key !== rKey) delete data[key];\n\t}\n\treturn [result];\n});\nSchema.extend(\"tuple\", (data, { list }, options, strict) => {\n\tif (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options);\n\tconst result = list.map((inner, index) => property(data, index, inner, options));\n\tif (strict) return [result];\n\tresult.push(...data.slice(list.length));\n\treturn [result];\n});\nfunction merge(result, data) {\n\tfor (const key in data) {\n\t\tif (key in result) continue;\n\t\tresult[key] = data[key];\n\t}\n}\nSchema.extend(\"object\", (data, { dict }, options, strict) => {\n\tif (!isPlainObject(data)) throw new ValidationError(`expected object but got ${data}`, options);\n\tconst result = {};\n\tfor (const key in dict) {\n\t\tconst value = property(data, key, dict[key], options);\n\t\tif (!isNullable(value) || key in data) result[key] = value;\n\t}\n\tif (!strict) merge(result, data);\n\treturn [result];\n});\nSchema.extend(\"union\", (data, { list, toString }, options, strict) => {\n\tconst messages = [];\n\tfor (const inner of list) try {\n\t\treturn Schema.resolve(data, inner, options, strict);\n\t} catch (error) {\n\t\tmessages.push(error);\n\t}\n\tthrow new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);\n});\nSchema.extend(\"intersect\", (data, { list, toString }, options, strict) => {\n\tif (!list.length) return [data];\n\tlet result;\n\tfor (const inner of list) {\n\t\tconst value = Schema.resolve(data, inner, options, true)[0];\n\t\tif (isNullable(value)) continue;\n\t\tif (isNullable(result)) result = value;\n\t\telse if (typeof result !== typeof value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);\n\t\telse if (typeof value === \"object\") merge(result ??= {}, value);\n\t\telse if (result !== value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);\n\t}\n\tif (!strict && isPlainObject(data)) merge(result, data);\n\treturn [result];\n});\nSchema.extend(\"transform\", (data, { inner, callback, preserve }, options) => {\n\tconst [result, adapted = data] = Schema.resolve(data, inner, options, true);\n\tif (preserve) return [callback(result)];\n\telse return [callback(result), callback(adapted)];\n});\nconst formatters = {};\nfunction defineMethod(name, keys, format) {\n\tformatters[name] = format;\n\tObject.assign(Schema, { [name](...args) {\n\t\tconst schema = new Schema({ type: name });\n\t\tkeys.forEach((key, index) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase \"sKey\":\n\t\t\t\t\tschema.sKey = args[index] ?? Schema.string();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"inner\":\n\t\t\t\t\tschema.inner = Schema.from(args[index]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"list\":\n\t\t\t\t\tschema.list = args[index].map(Schema.from);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"dict\":\n\t\t\t\t\tschema.dict = valueMap(args[index], Schema.from);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"bits\":\n\t\t\t\t\tschema.bits = {};\n\t\t\t\t\tfor (const key in args[index]) {\n\t\t\t\t\t\tif (typeof args[index][key] !== \"number\") continue;\n\t\t\t\t\t\tschema.bits[key] = args[index][key];\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"callback\": {\n\t\t\t\t\tconst callback = schema.callback = args[index];\n\t\t\t\t\tcallback[\"toJSON\"] ||= () => callback.toString();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"constructor\": {\n\t\t\t\t\tconst constructor = schema.constructor = args[index];\n\t\t\t\t\tif (typeof constructor === \"function\") constructor[\"toJSON\"] ||= () => constructor[\"name\"];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault: schema[key] = args[index];\n\t\t\t}\n\t\t});\n\t\tif (name === \"object\" || name === \"dict\") schema.meta.default = {};\n\t\telse if (name === \"array\" || name === \"tuple\") schema.meta.default = [];\n\t\telse if (name === \"bitset\") schema.meta.default = 0;\n\t\treturn schema;\n\t} });\n}\ndefineMethod(\"is\", [\"constructor\"], ({ constructor }) => {\n\tif (typeof constructor === \"function\") return constructor.name;\n\telse return constructor;\n});\ndefineMethod(\"any\", [], () => \"any\");\ndefineMethod(\"never\", [], () => \"never\");\ndefineMethod(\"const\", [\"value\"], ({ value }) => typeof value === \"string\" ? JSON.stringify(value) : value);\ndefineMethod(\"string\", [], () => \"string\");\ndefineMethod(\"number\", [], () => \"number\");\ndefineMethod(\"boolean\", [], () => \"boolean\");\ndefineMethod(\"bitset\", [\"bits\"], () => \"bitset\");\ndefineMethod(\"function\", [], () => \"function\");\ndefineMethod(\"array\", [\"inner\"], ({ inner }) => `${inner.toString(true)}[]`);\ndefineMethod(\"dict\", [\"inner\", \"sKey\"], ({ inner, sKey }) => `{ [key: ${sKey.toString()}]: ${inner.toString()} }`);\ndefineMethod(\"tuple\", [\"list\"], ({ list }) => `[${list.map((inner) => inner.toString()).join(\", \")}]`);\ndefineMethod(\"object\", [\"dict\"], ({ dict }) => {\n\tif (Object.keys(dict).length === 0) return \"{}\";\n\treturn `{ ${Object.entries(dict).map(([key, inner]) => {\n\t\treturn `${key}${inner.meta.required ? \"\" : \"?\"}: ${inner.toString()}`;\n\t}).join(\", \")} }`;\n});\ndefineMethod(\"union\", [\"list\"], ({ list }, inline) => {\n\tconst result = list.map(({ toString: format }) => format()).join(\" | \");\n\treturn inline ? `(${result})` : result;\n});\ndefineMethod(\"intersect\", [\"list\"], ({ list }) => {\n\treturn `${list.map((inner) => inner.toString(true)).join(\" & \")}`;\n});\ndefineMethod(\"transform\", [\n\t\"inner\",\n\t\"callback\",\n\t\"preserve\"\n], ({ inner }, isInner) => inner.toString(isInner));\n//#endregion\nexport { Schema as default };\n","import { readFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\n\nexport interface HostCredentials {\n endpoint: string;\n apiKey?: string;\n source: \"env\" | \"ovcli\" | \"ov\" | \"default\";\n}\n\nexport interface ResolveOptions {\n cliConfigPath?: string;\n ovConfigPath?: string;\n}\n\nconst DEFAULT_ENDPOINT = \"http://127.0.0.1:1933\";\n\nfunction cleanStr(val: unknown): string | undefined {\n if (typeof val === \"string\" && val.trim().length > 0) {\n return val.trim();\n }\n return undefined;\n}\n\nfunction cleanUrl(val: unknown): string | undefined {\n const s = cleanStr(val);\n return s ? s.replace(/\\/+$/, \"\") : undefined;\n}\n\nfunction tryReadJson(path: string): Record<string, unknown> | null {\n try {\n const raw = readFileSync(path, \"utf-8\");\n return JSON.parse(raw);\n } catch {\n return null;\n }\n}\n\n/**\n * Resolves OpenViking connection credentials on the host side:\n * 1. Environment variables (OPENVIKING_URL / OPENVIKING_BASE_URL, OPENVIKING_API_KEY / OPENVIKING_BEARER_TOKEN)\n * 2. ~/.openviking/ovcli.conf (url, api_key)\n * 3. ~/.openviking/ov.conf (server.url or server.host:server.port, server.root_api_key)\n * 4. Default fallback: http://127.0.0.1:1933\n */\nexport function resolveHostCredentials(\n env: NodeJS.ProcessEnv | Record<string, string | undefined> = process.env,\n options?: ResolveOptions\n): HostCredentials {\n let endpoint = cleanUrl(env.OPENVIKING_URL || env.OPENVIKING_BASE_URL);\n let apiKey = cleanStr(env.OPENVIKING_API_KEY || env.OPENVIKING_BEARER_TOKEN);\n let source: \"env\" | \"ovcli\" | \"ov\" | \"default\" =\n endpoint || apiKey ? \"env\" : \"default\";\n\n // Check ~/.openviking/ovcli.conf if endpoint or apiKey missing\n if (!endpoint || !apiKey) {\n const cliPath =\n options?.cliConfigPath ||\n env.OPENVIKING_CLI_CONFIG_FILE ||\n join(homedir(), \".openviking\", \"ovcli.conf\");\n\n const cliData = tryReadJson(cliPath);\n if (cliData) {\n if (!endpoint && cleanUrl(cliData.url)) {\n endpoint = cleanUrl(cliData.url);\n if (source === \"default\") source = \"ovcli\";\n }\n if (!apiKey && cleanStr(cliData.api_key)) {\n apiKey = cleanStr(cliData.api_key);\n if (source === \"default\") source = \"ovcli\";\n }\n }\n }\n\n // Check ~/.openviking/ov.conf if endpoint or apiKey still missing\n if (!endpoint || !apiKey) {\n const ovPath =\n options?.ovConfigPath ||\n env.OPENVIKING_CONFIG_FILE ||\n join(homedir(), \".openviking\", \"ov.conf\");\n\n const ovData = tryReadJson(ovPath);\n if (ovData) {\n const server = (ovData.server as Record<string, unknown>) || {};\n if (!endpoint) {\n let ovUrl = cleanUrl(server.url);\n if (!ovUrl && server.port) {\n const host = cleanStr(server.host) || \"127.0.0.1\";\n ovUrl = `http://${host.replace(\"0.0.0.0\", \"127.0.0.1\")}:${server.port}`;\n }\n if (ovUrl) {\n endpoint = ovUrl;\n if (source === \"default\") source = \"ov\";\n }\n }\n if (!apiKey && cleanStr(server.root_api_key)) {\n apiKey = cleanStr(server.root_api_key);\n if (source === \"default\") source = \"ov\";\n }\n }\n }\n\n return {\n endpoint: endpoint || DEFAULT_ENDPOINT,\n apiKey,\n source,\n };\n}\n","import z from \"@deepseek-ai/schemastery\";\nimport { resolveHostCredentials } from \"./credentials.js\";\n\nexport * from \"./credentials.js\";\nexport const name = \"@dipertq/dsh-openviking-status\";\nexport const inject = [\"webServer\"];\n\nconst NS = \"openviking-status\";\nconst API_PREFIX = \"/openviking-status/api\";\n\nexport const Config = z.object({\n endpoint: z.string().default(\"http://127.0.0.1:1933\"),\n apiKey: z.string().role(\"secret\").default(\"\"),\n});\n\nexport type OpenVikingConfig = {\n endpoint?: string;\n apiKey?: string;\n};\n\nasync function readJson(req: any): Promise<Record<string, any>> {\n let data = \"\";\n for await (const chunk of req) {\n data += chunk;\n }\n try {\n return data ? JSON.parse(data) : {};\n } catch {\n return {};\n }\n}\n\nfunction sendJson(res: any, status: number, body: any): void {\n res.writeHead(status, {\n \"Content-Type\": \"application/json; charset=utf-8\",\n \"Cache-Control\": \"no-store\",\n });\n res.end(JSON.stringify(body));\n}\n\nfunction getCandidateSessionIds(sessionId: string): string[] {\n const raw = sessionId.trim();\n const candidates: string[] = [];\n\n if (raw.startsWith(\"dsh-session-\")) {\n const suffix = raw.slice(\"dsh-session-\".length);\n candidates.push(raw, `dsh-${suffix}`);\n } else if (raw.startsWith(\"dsh-\")) {\n const suffix = raw.slice(\"dsh-\".length);\n candidates.push(raw, `dsh-session-${suffix}`);\n } else if (raw.startsWith(\"session-\")) {\n candidates.push(`dsh-${raw}`, raw);\n } else {\n candidates.push(`dsh-session-${raw}`, `dsh-${raw}`, raw);\n }\n\n return Array.from(new Set(candidates));\n}\n\nexport function apply(ctx: any, config?: OpenVikingConfig) {\n let currentSettings = () => config ?? {};\n let settingsService: any = null;\n\n // Attach to DSH settings if available\n ctx.inject?.([\"settings\"], (settingsCtx: any) => {\n settingsService = settingsCtx.settings;\n settingsCtx.settings?.installSection(\n ctx,\n NS,\n Config,\n config ?? { endpoint: \"http://127.0.0.1:1933\", apiKey: \"\" },\n {\n setSource: (src: () => OpenVikingConfig) => {\n currentSettings = src;\n },\n onChange: () => {},\n }\n );\n });\n\n function resolveEffective(): {\n endpoint: string;\n apiKey?: string;\n source: \"env\" | \"ovcli\" | \"ov\" | \"settings\" | \"default\";\n } {\n const saved = currentSettings() as Record<string, any>;\n const auto = resolveHostCredentials();\n\n const hasSavedEndpoint =\n typeof saved?.endpoint === \"string\" && saved.endpoint.trim().length > 0;\n const hasSavedKey =\n typeof saved?.apiKey === \"string\" && saved.apiKey.trim().length > 0;\n\n const endpoint = (\n hasSavedEndpoint ? saved.endpoint.trim() : auto.endpoint\n ).replace(/\\/+$/, \"\");\n const apiKey = hasSavedKey ? saved.apiKey.trim() : auto.apiKey;\n const source = hasSavedEndpoint || hasSavedKey ? \"settings\" : auto.source;\n\n return { endpoint, apiKey, source };\n }\n\n function getHeaders(\n apiKey?: string,\n extra: Record<string, string> = {}\n ): Record<string, string> {\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n ...extra,\n };\n if (apiKey) {\n headers[\"Authorization\"] = `Bearer ${apiKey}`;\n }\n return headers;\n }\n\n // GET & POST /openviking-status/api/config\n ctx.effect?.(() => {\n return ctx.webServer?.register({\n kind: \"exact\",\n path: `${API_PREFIX}/config`,\n handler: async (req: any, res: any) => {\n try {\n if (req.method === \"POST\") {\n const body = await readJson(req);\n const settings =\n settingsService || ctx.get?.(\"settings\") || ctx.settings;\n\n if (!settings) {\n sendJson(res, 503, { error: \"Settings service unavailable\" });\n return;\n }\n\n if (body.reset) {\n await settings.mutate(NS, [\n { op: \"unset\", path: [\"endpoint\"] },\n { op: \"unset\", path: [\"apiKey\"] },\n ]);\n sendJson(res, 200, { ok: true, reset: true });\n return;\n }\n\n const ops: any[] = [];\n if (\n typeof body.endpoint === \"string\" &&\n body.endpoint.trim().length > 0\n ) {\n const ep = body.endpoint.trim();\n if (!ep.startsWith(\"http://\") && !ep.startsWith(\"https://\")) {\n sendJson(res, 400, {\n error: \"Endpoint must start with http:// or https://\",\n });\n return;\n }\n ops.push({\n op: \"set\",\n path: [\"endpoint\"],\n value: ep.replace(/\\/+$/, \"\"),\n });\n }\n if (typeof body.apiKey === \"string\") {\n ops.push({\n op: \"set\",\n path: [\"apiKey\"],\n value: body.apiKey.trim(),\n });\n }\n\n if (ops.length > 0) {\n await settings.mutate(NS, ops);\n }\n\n sendJson(res, 200, { ok: true, config: resolveEffective() });\n return;\n }\n\n // GET /openviking-status/api/config\n const effective = resolveEffective();\n const maskedApiKey = effective.apiKey\n ? effective.apiKey.length > 8\n ? `${effective.apiKey.slice(0, 4)}••••${effective.apiKey.slice(-4)}`\n : \"••••••••\"\n : undefined;\n\n sendJson(res, 200, {\n endpoint: effective.endpoint,\n hasApiKey: Boolean(effective.apiKey),\n maskedApiKey,\n source: effective.source,\n });\n } catch (err) {\n sendJson(res, 500, { error: String(err) });\n }\n },\n });\n }, \"openviking-status: config route\");\n\n // POST /openviking-status/api/test-connection\n ctx.effect?.(() => {\n return ctx.webServer?.register({\n kind: \"exact\",\n path: `${API_PREFIX}/test-connection`,\n handler: async (req: any, res: any) => {\n try {\n const body = await readJson(req);\n const effective = resolveEffective();\n const targetUrl =\n (body.endpoint &&\n String(body.endpoint).trim().replace(/\\/+$/, \"\")) ||\n effective.endpoint;\n const targetKey =\n typeof body.apiKey === \"string\"\n ? body.apiKey.trim()\n : effective.apiKey;\n\n const healthRes = await fetch(`${targetUrl}/health`, {\n method: \"GET\",\n headers: getHeaders(targetKey),\n }).catch(\n (err) => ({ ok: false, status: 0, statusText: err.message }) as any\n );\n\n if (!healthRes.ok) {\n sendJson(res, 200, {\n ok: false,\n authenticated: false,\n error:\n healthRes.status === 0\n ? `Connection failed: ${healthRes.statusText}`\n : `HTTP ${healthRes.status}: ${healthRes.statusText}`,\n });\n return;\n }\n\n const healthData = (await healthRes\n .json()\n .catch(() => ({}))) as Record<string, unknown>;\n\n // Probe authorization against session endpoint\n const probeCandidate = \"dsh-session-test-probe\";\n const authProbe = await fetch(\n `${targetUrl}/api/v1/sessions/${probeCandidate}`,\n {\n method: \"GET\",\n headers: getHeaders(targetKey),\n }\n ).catch(() => null);\n\n let authenticated = true;\n if (\n authProbe &&\n (authProbe.status === 401 || authProbe.status === 403)\n ) {\n authenticated = false;\n }\n\n sendJson(res, 200, {\n ok: true,\n version:\n typeof healthData.version === \"string\"\n ? healthData.version\n : undefined,\n storage:\n typeof healthData.storage === \"string\"\n ? healthData.storage\n : undefined,\n authenticated,\n error: authenticated\n ? undefined\n : \"Daemon reachable, but API key is missing or invalid (HTTP 401)\",\n });\n } catch (err) {\n sendJson(res, 500, { ok: false, error: String(err) });\n }\n },\n });\n }, \"openviking-status: test connection route\");\n\n // GET /openviking-status/api/health\n ctx.effect?.(() => {\n return ctx.webServer?.register({\n kind: \"exact\",\n path: `${API_PREFIX}/health`,\n handler: async (_req: any, res: any) => {\n try {\n const effective = resolveEffective();\n const daemonRes = await fetch(`${effective.endpoint}/health`, {\n method: \"GET\",\n headers: getHeaders(effective.apiKey),\n }).catch(\n (err) =>\n ({ ok: false, status: 502, statusText: err.message }) as any\n );\n\n if (!daemonRes.ok) {\n sendJson(res, daemonRes.status || 502, {\n ok: false,\n healthy: false,\n error: `Daemon returned ${daemonRes.status}: ${daemonRes.statusText}`,\n });\n return;\n }\n\n const body = await daemonRes.json().catch(() => ({}));\n sendJson(res, 200, body);\n } catch (err) {\n sendJson(res, 502, { ok: false, healthy: false, error: String(err) });\n }\n },\n });\n }, \"openviking-status: health proxy route\");\n\n // GET /openviking-status/api/session\n ctx.effect?.(() => {\n return ctx.webServer?.register({\n kind: \"exact\",\n path: `${API_PREFIX}/session`,\n handler: async (req: any, res: any) => {\n try {\n const url = new URL(req.url || \"/\", \"http://localhost\");\n const sessionId = url.searchParams.get(\"id\");\n\n if (!sessionId || !sessionId.trim()) {\n sendJson(res, 400, {\n status: \"missing\",\n error: \"Missing session id\",\n });\n return;\n }\n\n const effective = resolveEffective();\n const candidates = getCandidateSessionIds(sessionId);\n\n for (const candidateId of candidates) {\n const daemonRes = await fetch(\n `${effective.endpoint}/api/v1/sessions/${encodeURIComponent(candidateId)}`,\n {\n method: \"GET\",\n headers: getHeaders(effective.apiKey),\n }\n ).catch(() => null);\n\n if (!daemonRes) continue;\n if (daemonRes.status === 404) continue;\n\n if (daemonRes.status === 401 || daemonRes.status === 403) {\n sendJson(res, 200, { status: \"unauthorized\" });\n return;\n }\n\n if (!daemonRes.ok) {\n sendJson(res, 200, {\n status: \"error\",\n detail: `HTTP ${daemonRes.status}`,\n });\n return;\n }\n\n const data = (await daemonRes.json().catch(() => ({}))) as Record<\n string,\n unknown\n >;\n const raw = (data?.result ?? data?.data ?? data) as Record<\n string,\n unknown\n >;\n\n sendJson(res, 200, {\n status: \"ok\",\n session: {\n session_id:\n typeof raw.session_id === \"string\"\n ? raw.session_id\n : candidateId,\n peer_id:\n typeof raw.peer_id === \"string\" ? raw.peer_id : undefined,\n pending_tokens:\n typeof raw.pending_tokens === \"number\"\n ? raw.pending_tokens\n : 0,\n message_count:\n typeof raw.message_count === \"number\"\n ? raw.message_count\n : undefined,\n commit_count:\n typeof raw.commit_count === \"number\"\n ? raw.commit_count\n : undefined,\n last_commit_at:\n typeof raw.last_commit_at === \"string\"\n ? raw.last_commit_at\n : undefined,\n created_at:\n typeof raw.created_at === \"string\"\n ? raw.created_at\n : undefined,\n updated_at:\n typeof raw.updated_at === \"string\"\n ? raw.updated_at\n : undefined,\n },\n });\n return;\n }\n\n sendJson(res, 200, { status: \"missing\" });\n } catch (err) {\n sendJson(res, 200, { status: \"unreachable\", detail: String(err) });\n }\n },\n });\n }, \"openviking-status: session proxy route\");\n\n // POST /openviking-status/api/session/commit\n ctx.effect?.(() => {\n return ctx.webServer?.register({\n kind: \"exact\",\n path: `${API_PREFIX}/session/commit`,\n handler: async (req: any, res: any) => {\n try {\n const body = await readJson(req);\n const sessionId = body.sessionId;\n\n if (!sessionId || typeof sessionId !== \"string\") {\n sendJson(res, 400, { ok: false, error: \"Missing sessionId\" });\n return;\n }\n\n const effective = resolveEffective();\n const candidates = getCandidateSessionIds(sessionId);\n const payload = JSON.stringify({\n keep_recent_count: body.keep_recent_count ?? 10,\n });\n\n for (const candidateId of candidates) {\n const daemonRes = await fetch(\n `${effective.endpoint}/api/v1/sessions/${encodeURIComponent(candidateId)}/commit`,\n {\n method: \"POST\",\n headers: getHeaders(effective.apiKey),\n body: payload,\n }\n ).catch(() => null);\n\n if (!daemonRes) continue;\n if (daemonRes.status === 404) continue;\n\n if (!daemonRes.ok) {\n const errBody = (await daemonRes\n .json()\n .catch(() => null)) as Record<string, unknown> | null;\n const errorMsg =\n (errBody?.error as Record<string, unknown>)?.message ||\n errBody?.message ||\n errBody?.error ||\n `HTTP ${daemonRes.status}`;\n sendJson(res, 200, { ok: false, error: String(errorMsg) });\n return;\n }\n\n sendJson(res, 200, { ok: true });\n return;\n }\n\n sendJson(res, 200, {\n ok: false,\n error: \"Session not found on commit\",\n });\n } catch (err) {\n sendJson(res, 500, { ok: false, error: String(err) });\n }\n },\n });\n }, \"openviking-status: session commit proxy route\");\n}\n"],"mappings":"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","names":["value","Binary","result","a","b","Time","date","template","options","pattern","value","extra","resolve","toJSON","date","toString","name","key","extra"]}
1
+ {"version":3,"sources":["../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.3/node_modules/@deepseek-ai/cosmokit/lib/index.js","../node_modules/.pnpm/@deepseek-ai+schemastery@3.18.2/node_modules/@deepseek-ai/schemastery/lib/index.mjs","../src/credentials.ts","../src/index.ts"],"sourcesContent":["//#region lib/types/misc.js\n/** No-op callback returning `undefined` at runtime and `any` at type level. */\nfunction noop() {}\n/** Return true when a value is `null` or `undefined`. */\nfunction isNullable(value) {\n\treturn value === null || value === void 0;\n}\n/** Return true when a value is neither `null` nor `undefined`. */\nfunction isNonNullable(value) {\n\treturn !isNullable(value);\n}\n/** Return true for non-array object values. */\nfunction isPlainObject(data) {\n\treturn data && typeof data === \"object\" && !Array.isArray(data);\n}\n/** Filter object entries and return a new object. */\nfunction filterKeys(object, filter) {\n\treturn Object.fromEntries(Object.entries(object).filter(([key, value]) => filter(key, value)));\n}\n/** Map object values while preserving the original key set. */\nfunction mapValues(object, transform) {\n\treturn Object.fromEntries(Object.entries(object).map(([key, value]) => [key, transform(value, key)]));\n}\n/** Pick selected keys from an object, optionally including `undefined` values. */\nfunction pick(source, keys, forced) {\n\tif (!keys) return { ...source };\n\tconst result = {};\n\tfor (const key of keys) if (forced || source[key] !== void 0) result[key] = source[key];\n\treturn result;\n}\n/** Omit selected keys from a shallow object copy. */\nfunction omit(source, keys) {\n\tif (!keys) return { ...source };\n\tconst result = { ...source };\n\tfor (const key of keys) Reflect.deleteProperty(result, key);\n\treturn result;\n}\n/** Define a non-enumerable writable property and return the object. */\nfunction defineProperty(object, key, value) {\n\treturn Object.defineProperty(object, key, {\n\t\twritable: true,\n\t\tvalue,\n\t\tenumerable: false\n\t});\n}\n//#endregion\n//#region lib/types/array.js\n/** Return true when every item in `array2` is present in `array1`. */\nfunction contain(array1, array2) {\n\treturn array2.every((item) => array1.includes(item));\n}\n/** Return items that appear in both arrays. */\nfunction intersection(array1, array2) {\n\treturn array1.filter((item) => array2.includes(item));\n}\n/** Return items from `array1` that do not appear in `array2`. */\nfunction difference(array1, array2) {\n\treturn array1.filter((item) => !array2.includes(item));\n}\n/** Return the set-union of two arrays while preserving first occurrence order. */\nfunction union(array1, array2) {\n\treturn Array.from(new Set([...array1, ...array2]));\n}\n/** Remove duplicate values while preserving first occurrence order. */\nfunction deduplicate(array) {\n\treturn [...new Set(array)];\n}\n/** Remove one item from an array and report whether it was found. */\nfunction remove(list, item) {\n\tconst index = list?.indexOf(item);\n\tif (index >= 0) {\n\t\tlist.splice(index, 1);\n\t\treturn true;\n\t} else return false;\n}\n/** Normalize nullish, scalar, or array input to an array. */\nfunction makeArray(source) {\n\treturn Array.isArray(source) ? source : isNullable(source) ? [] : [source];\n}\n//#endregion\n//#region lib/types/types.js\n/** Test values using `instanceof` with a `toStringTag` fallback. */\nfunction is(type, value) {\n\tif (arguments.length === 1) return (value) => is(type, value);\n\treturn type in globalThis && value instanceof globalThis[type] || Object.prototype.toString.call(value).slice(8, -1) === type;\n}\nfunction isArrayBufferLike(value) {\n\treturn is(\"ArrayBuffer\", value) || is(\"SharedArrayBuffer\", value);\n}\nfunction isArrayBufferSource(value) {\n\treturn isArrayBufferLike(value) || ArrayBuffer.isView(value);\n}\n/** Binary source detection and base64/hex conversion helpers. */\nvar Binary;\n(function(Binary) {\n\tBinary.is = isArrayBufferLike;\n\tBinary.isSource = isArrayBufferSource;\n\tfunction fromSource(source) {\n\t\tif (ArrayBuffer.isView(source)) return source.buffer.slice(source.byteOffset, source.byteOffset + source.byteLength);\n\t\telse return source;\n\t}\n\tBinary.fromSource = fromSource;\n\tfunction toBase64(source) {\n\t\tsource = fromSource(source);\n\t\tif (typeof Buffer !== \"undefined\") return Buffer.from(source).toString(\"base64\");\n\t\tlet binary = \"\";\n\t\tconst bytes = new Uint8Array(source);\n\t\tfor (let i = 0; i < bytes.byteLength; i++) binary += String.fromCharCode(bytes[i]);\n\t\treturn btoa(binary);\n\t}\n\tBinary.toBase64 = toBase64;\n\tfunction fromBase64(source) {\n\t\tif (typeof Buffer !== \"undefined\") return fromSource(Buffer.from(source, \"base64\"));\n\t\treturn Uint8Array.from(atob(source), (c) => c.charCodeAt(0));\n\t}\n\tBinary.fromBase64 = fromBase64;\n\tfunction toHex(source) {\n\t\tsource = fromSource(source);\n\t\tif (typeof Buffer !== \"undefined\") return Buffer.from(source).toString(\"hex\");\n\t\treturn Array.from(new Uint8Array(source), (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n\t}\n\tBinary.toHex = toHex;\n\tfunction fromHex(source) {\n\t\tif (typeof Buffer !== \"undefined\") return fromSource(Buffer.from(source, \"hex\"));\n\t\tconst hex = source.length % 2 === 0 ? source : source.slice(0, source.length - 1);\n\t\tconst buffer = [];\n\t\tfor (let i = 0; i < hex.length; i += 2) buffer.push(parseInt(`${hex[i]}${hex[i + 1]}`, 16));\n\t\treturn Uint8Array.from(buffer).buffer;\n\t}\n\tBinary.fromHex = fromHex;\n})(Binary || (Binary = {}));\n/** Decode a base64 string into binary data. */\nconst base64ToArrayBuffer = Binary.fromBase64;\n/** Encode binary data as base64. */\nconst arrayBufferToBase64 = Binary.toBase64;\n/** Decode a hex string into binary data. */\nconst hexToArrayBuffer = Binary.fromHex;\n/** Encode binary data as hex. */\nconst arrayBufferToHex = Binary.toHex;\n/** Deep-clone common JavaScript values while preserving prototypes and cycles. */\nfunction clone(source, refs = /* @__PURE__ */ new Map()) {\n\tif (!source || typeof source !== \"object\") return source;\n\tif (is(\"Date\", source)) return new Date(source.valueOf());\n\tif (is(\"RegExp\", source)) return new RegExp(source.source, source.flags);\n\tif (isArrayBufferLike(source)) return source.slice(0);\n\tif (ArrayBuffer.isView(source)) return source.buffer.slice(source.byteOffset, source.byteOffset + source.byteLength);\n\tconst cached = refs.get(source);\n\tif (cached) return cached;\n\tif (Array.isArray(source)) {\n\t\tconst result = [];\n\t\trefs.set(source, result);\n\t\tsource.forEach((value, index) => {\n\t\t\tresult[index] = Reflect.apply(clone, null, [value, refs]);\n\t\t});\n\t\treturn result;\n\t}\n\tconst result = Object.create(Object.getPrototypeOf(source));\n\trefs.set(source, result);\n\tfor (const key of Reflect.ownKeys(source)) {\n\t\tconst descriptor = { ...Reflect.getOwnPropertyDescriptor(source, key) };\n\t\tif (\"value\" in descriptor) descriptor.value = Reflect.apply(clone, null, [descriptor.value, refs]);\n\t\tReflect.defineProperty(result, key, descriptor);\n\t}\n\treturn result;\n}\n/** Deeply compare arrays, dates, regexps, buffers, and plain object fields. */\nfunction deepEqual(a, b, strict) {\n\tif (a === b) return true;\n\tif (!strict && isNullable(a) && isNullable(b)) return true;\n\tif (typeof a !== typeof b) return false;\n\tif (typeof a !== \"object\") return false;\n\tif (!a || !b) return false;\n\tfunction check(test, then) {\n\t\treturn test(a) ? test(b) ? then(a, b) : false : test(b) ? false : void 0;\n\t}\n\treturn check(Array.isArray, (a, b) => a.length === b.length && a.every((item, index) => deepEqual(item, b[index]))) ?? check(is(\"Date\"), (a, b) => a.valueOf() === b.valueOf()) ?? check(is(\"RegExp\"), (a, b) => a.source === b.source && a.flags === b.flags) ?? check(isArrayBufferLike, (a, b) => {\n\t\tif (a.byteLength !== b.byteLength) return false;\n\t\tconst viewA = new Uint8Array(a);\n\t\tconst viewB = new Uint8Array(b);\n\t\tfor (let i = 0; i < viewA.length; i++) if (viewA[i] !== viewB[i]) return false;\n\t\treturn true;\n\t}) ?? Object.keys({\n\t\t...a,\n\t\t...b\n\t}).every((key) => deepEqual(a[key], b[key], strict));\n}\n//#endregion\n//#region lib/types/string.js\n/** Uppercase the first character of a string. */\nfunction capitalize(source) {\n\treturn source.charAt(0).toUpperCase() + source.slice(1);\n}\n/** Lowercase the first character of a string. */\nfunction uncapitalize(source) {\n\treturn source.charAt(0).toLowerCase() + source.slice(1);\n}\n/** Convert dash or underscore delimited text to camelCase. */\nfunction camelCase(source) {\n\treturn source.replace(/[_-][a-z]/g, (str) => str.slice(1).toUpperCase());\n}\nfunction tokenize(source, delimiters, delimiter) {\n\tconst output = [];\n\tlet state = 0;\n\tfor (let i = 0; i < source.length; i++) {\n\t\tconst code = source.charCodeAt(i);\n\t\tif (code >= 65 && code <= 90) {\n\t\t\tif (state === 1) {\n\t\t\t\tconst next = source.charCodeAt(i + 1);\n\t\t\t\tif (next >= 97 && next <= 122) output.push(delimiter);\n\t\t\t\toutput.push(code + 32);\n\t\t\t} else {\n\t\t\t\tif (state !== 0) output.push(delimiter);\n\t\t\t\toutput.push(code + 32);\n\t\t\t}\n\t\t\tstate = 1;\n\t\t} else if (code >= 97 && code <= 122) {\n\t\t\toutput.push(code);\n\t\t\tstate = 2;\n\t\t} else if (delimiters.includes(code)) {\n\t\t\tif (state !== 0) output.push(delimiter);\n\t\t\tstate = 0;\n\t\t} else output.push(code);\n\t}\n\treturn String.fromCharCode(...output);\n}\n/** Convert text to dash-delimited parameter case. */\nfunction paramCase(source) {\n\treturn tokenize(source, [45, 95], 45);\n}\n/** Convert text to underscore-delimited snake case. */\nfunction snakeCase(source) {\n\treturn tokenize(source, [45, 95], 95);\n}\n/** Runtime alias for `camelCase`. */\nconst camelize = camelCase;\n/** Runtime alias for `paramCase`. */\nconst hyphenate = paramCase;\n/** Format a property key as a JavaScript member access suffix. */\nfunction formatProperty(key) {\n\tif (typeof key !== \"string\") return `[${key.toString()}]`;\n\treturn /^[a-z_$][\\w$]*$/i.test(key) ? `.${key}` : `[${JSON.stringify(key)}]`;\n}\n/** Remove one trailing slash from a path string. */\nfunction trimSlash(source) {\n\treturn source.replace(/\\/$/, \"\");\n}\n/** Ensure a path starts with `/` and has no trailing slash. */\nfunction sanitize(source) {\n\tif (!source.startsWith(\"/\")) source = \"/\" + source;\n\treturn trimSlash(source);\n}\n//#endregion\n//#region lib/types/time.js\n/** Time constants plus parsing and formatting helpers. */\nvar Time;\n(function(Time) {\n\tTime.millisecond = 1;\n\tTime.second = 1e3;\n\tTime.minute = Time.second * 60;\n\tTime.hour = Time.minute * 60;\n\tTime.day = Time.hour * 24;\n\tTime.week = Time.day * 7;\n\tlet timezoneOffset = (/* @__PURE__ */ new Date()).getTimezoneOffset();\n\tfunction setTimezoneOffset(offset) {\n\t\ttimezoneOffset = offset;\n\t}\n\tTime.setTimezoneOffset = setTimezoneOffset;\n\tfunction getTimezoneOffset() {\n\t\treturn timezoneOffset;\n\t}\n\tTime.getTimezoneOffset = getTimezoneOffset;\n\tfunction getDateNumber(date = /* @__PURE__ */ new Date(), offset) {\n\t\tif (typeof date === \"number\") date = new Date(date);\n\t\tif (offset === void 0) offset = timezoneOffset;\n\t\treturn Math.floor((date.valueOf() / Time.minute - offset) / 1440);\n\t}\n\tTime.getDateNumber = getDateNumber;\n\tfunction fromDateNumber(value, offset) {\n\t\tconst date = new Date(value * Time.day);\n\t\tif (offset === void 0) offset = timezoneOffset;\n\t\treturn new Date(+date + offset * Time.minute);\n\t}\n\tTime.fromDateNumber = fromDateNumber;\n\tconst numeric = /\\d+(?:\\.\\d+)?/.source;\n\tconst timeRegExp = new RegExp(`^${[\n\t\t\"w(?:eek(?:s)?)?\",\n\t\t\"d(?:ay(?:s)?)?\",\n\t\t\"h(?:our(?:s)?)?\",\n\t\t\"m(?:in(?:ute)?(?:s)?)?\",\n\t\t\"s(?:ec(?:ond)?(?:s)?)?\"\n\t].map((unit) => `(${numeric}${unit})?`).join(\"\")}$`);\n\tfunction parseTime(source) {\n\t\tconst capture = timeRegExp.exec(source);\n\t\tif (!capture) return 0;\n\t\treturn (parseFloat(capture[1]) * Time.week || 0) + (parseFloat(capture[2]) * Time.day || 0) + (parseFloat(capture[3]) * Time.hour || 0) + (parseFloat(capture[4]) * Time.minute || 0) + (parseFloat(capture[5]) * Time.second || 0);\n\t}\n\tTime.parseTime = parseTime;\n\tfunction parseDate(date) {\n\t\tconst parsed = parseTime(date);\n\t\tif (parsed) date = Date.now() + parsed;\n\t\telse if (/^\\d{1,2}(:\\d{1,2}){1,2}$/.test(date)) date = `${(/* @__PURE__ */ new Date()).toLocaleDateString()}-${date}`;\n\t\telse if (/^\\d{1,2}-\\d{1,2}-\\d{1,2}(:\\d{1,2}){1,2}$/.test(date)) date = `${(/* @__PURE__ */ new Date()).getFullYear()}-${date}`;\n\t\treturn date ? new Date(date) : /* @__PURE__ */ new Date();\n\t}\n\tTime.parseDate = parseDate;\n\tfunction format(ms) {\n\t\tconst abs = Math.abs(ms);\n\t\tif (abs >= Time.day - Time.hour / 2) return Math.round(ms / Time.day) + \"d\";\n\t\telse if (abs >= Time.hour - Time.minute / 2) return Math.round(ms / Time.hour) + \"h\";\n\t\telse if (abs >= Time.minute - Time.second / 2) return Math.round(ms / Time.minute) + \"m\";\n\t\telse if (abs >= Time.second) return Math.round(ms / Time.second) + \"s\";\n\t\treturn ms + \"ms\";\n\t}\n\tTime.format = format;\n\tfunction toDigits(source, length = 2) {\n\t\treturn source.toString().padStart(length, \"0\");\n\t}\n\tTime.toDigits = toDigits;\n\tfunction template(template, time = /* @__PURE__ */ new Date()) {\n\t\treturn template.replace(\"yyyy\", time.getFullYear().toString()).replace(\"yy\", time.getFullYear().toString().slice(2)).replace(\"MM\", toDigits(time.getMonth() + 1)).replace(\"dd\", toDigits(time.getDate())).replace(\"hh\", toDigits(time.getHours())).replace(\"mm\", toDigits(time.getMinutes())).replace(\"ss\", toDigits(time.getSeconds())).replace(\"SSS\", toDigits(time.getMilliseconds(), 3));\n\t}\n\tTime.template = template;\n})(Time || (Time = {}));\n//#endregion\nexport { Binary, Time, arrayBufferToBase64, arrayBufferToHex, base64ToArrayBuffer, camelCase, camelize, capitalize, clone, contain, deduplicate, deepEqual, defineProperty, difference, filterKeys, formatProperty, hexToArrayBuffer, hyphenate, intersection, is, isNonNullable, isNullable, isPlainObject, makeArray, mapValues, mapValues as valueMap, noop, omit, paramCase, pick, remove, sanitize, snakeCase, trimSlash, uncapitalize, union };\n","import { Binary, clone, deepEqual, filterKeys, isNullable, isPlainObject, pick, valueMap } from \"@deepseek-ai/cosmokit\";\n//#region lib/types/index.js\nconst kSchema = Symbol.for(\"schemastery\");\nconst kValidationError = Symbol.for(\"ValidationError\");\nglobalThis.__schemastery_index__ ??= 0;\nglobalThis.__schemastery_refs__ = void 0;\nvar ValidationError = class extends TypeError {\n\toptions;\n\tname = \"ValidationError\";\n\tconstructor(message, options) {\n\t\tlet prefix = \"$\";\n\t\tfor (const segment of options.path || []) if (typeof segment === \"string\") prefix += \".\" + segment;\n\t\telse if (typeof segment === \"number\") prefix += \"[\" + segment + \"]\";\n\t\telse if (typeof segment === \"symbol\") prefix += `[Symbol(${segment.toString()})]`;\n\t\tif (prefix.startsWith(\".\")) prefix = prefix.slice(1);\n\t\tsuper((prefix === \"$\" ? \"\" : `${prefix} `) + message);\n\t\tthis.options = options;\n\t}\n\tstatic is(error) {\n\t\treturn !!error?.[kValidationError];\n\t}\n};\nObject.defineProperty(ValidationError.prototype, kValidationError, { value: true });\nconst Schema = function(options) {\n\tconst schema = function(data, options = {}) {\n\t\treturn Schema.resolve(data, schema, options)[0];\n\t};\n\tif (options.refs) {\n\t\tconst refs = valueMap(options.refs, (options) => new Schema(options));\n\t\tconst getRef = (uid) => refs[uid];\n\t\tfor (const key in refs) {\n\t\t\tconst options = refs[key];\n\t\t\toptions.sKey = getRef(options.sKey);\n\t\t\toptions.inner = getRef(options.inner);\n\t\t\toptions.list = options.list && options.list.map(getRef);\n\t\t\toptions.dict = options.dict && valueMap(options.dict, getRef);\n\t\t}\n\t\treturn refs[options.uid];\n\t}\n\tObject.assign(schema, options);\n\tif (typeof schema.callback === \"string\") try {\n\t\tschema.callback = new Function(\"return \" + schema.callback)();\n\t} catch {}\n\tObject.defineProperty(schema, \"uid\", { value: globalThis.__schemastery_index__++ });\n\tObject.setPrototypeOf(schema, Schema.prototype);\n\tschema.meta ||= {};\n\tschema.toString = schema.toString.bind(schema);\n\treturn schema;\n};\nSchema.prototype = Object.create(Function.prototype);\nSchema.prototype[kSchema] = true;\nObject.defineProperty(Schema.prototype, \"~standard\", { get() {\n\treturn {\n\t\tversion: 1,\n\t\tvendor: \"schemastery\",\n\t\tvalidate: (value) => {\n\t\t\ttry {\n\t\t\t\treturn { value: Schema.resolve(value, this, {})[0] };\n\t\t\t} catch (error) {\n\t\t\t\tif (ValidationError.is(error)) return { issues: [{\n\t\t\t\t\tmessage: error.message,\n\t\t\t\t\tpath: error.options.path\n\t\t\t\t}] };\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t};\n} });\nSchema.ValidationError = ValidationError;\nSchema.prototype.toJSON = function toJSON() {\n\tif (globalThis.__schemastery_refs__) {\n\t\tglobalThis.__schemastery_refs__[this.uid] ??= JSON.parse(JSON.stringify({ ...this }));\n\t\treturn this.uid;\n\t}\n\tglobalThis.__schemastery_refs__ = { [this.uid]: { ...this } };\n\tglobalThis.__schemastery_refs__[this.uid] = JSON.parse(JSON.stringify({ ...this }));\n\tconst result = {\n\t\tuid: this.uid,\n\t\trefs: globalThis.__schemastery_refs__\n\t};\n\tglobalThis.__schemastery_refs__ = void 0;\n\treturn result;\n};\nSchema.prototype.set = function set(key, value) {\n\tthis.dict[key] = value;\n\treturn this;\n};\nSchema.prototype.push = function push(value) {\n\tthis.list.push(value);\n\treturn this;\n};\nfunction mergeDesc(original, messages) {\n\tconst result = typeof original === \"string\" ? { \"\": original } : { ...original };\n\tfor (const locale in messages) {\n\t\tconst value = messages[locale];\n\t\tif (value?.$description || value?.$desc) result[locale] = value.$description || value.$desc;\n\t\telse if (typeof value === \"string\") result[locale] = value;\n\t}\n\treturn result;\n}\nfunction getInner(value) {\n\treturn value?.$value ?? value?.$inner;\n}\nfunction extractKeys(data) {\n\treturn filterKeys(data ?? {}, (key) => !key.startsWith(\"$\"));\n}\nSchema.prototype.i18n = function i18n(messages) {\n\tconst schema = Schema(this);\n\tconst desc = mergeDesc(schema.meta.description, messages);\n\tif (Object.keys(desc).length) schema.meta.description = desc;\n\tif (schema.dict) schema.dict = valueMap(schema.dict, (inner, key) => {\n\t\treturn inner.i18n(valueMap(messages, (data) => getInner(data)?.[key] ?? data?.[key]));\n\t});\n\tif (schema.list) schema.list = schema.list.map((inner, index) => {\n\t\treturn inner.i18n(valueMap(messages, (data = {}) => {\n\t\t\tif (Array.isArray(getInner(data))) return getInner(data)[index];\n\t\t\tif (Array.isArray(data)) return data[index];\n\t\t\treturn extractKeys(data);\n\t\t}));\n\t});\n\tif (schema.inner) schema.inner = schema.inner.i18n(valueMap(messages, (data) => {\n\t\tif (getInner(data)) return getInner(data);\n\t\treturn extractKeys(data);\n\t}));\n\tif (schema.sKey) schema.sKey = schema.sKey.i18n(valueMap(messages, (data) => data?.$key));\n\treturn schema;\n};\nSchema.prototype.extra = function extra(key, value) {\n\tconst schema = Schema(this);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\t[key]: value\n\t};\n\treturn schema;\n};\nfor (const key of [\n\t\"required\",\n\t\"disabled\",\n\t\"collapse\",\n\t\"hidden\",\n\t\"loose\"\n]) Object.assign(Schema.prototype, { [key](value = true) {\n\tconst schema = Schema(this);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\t[key]: value\n\t};\n\treturn schema;\n} });\nSchema.prototype.deprecated = function deprecated() {\n\tconst schema = Schema(this);\n\tschema.meta.badges ||= [];\n\tschema.meta.badges.push({\n\t\ttext: \"deprecated\",\n\t\ttype: \"danger\"\n\t});\n\treturn schema;\n};\nSchema.prototype.experimental = function experimental() {\n\tconst schema = Schema(this);\n\tschema.meta.badges ||= [];\n\tschema.meta.badges.push({\n\t\ttext: \"experimental\",\n\t\ttype: \"warning\"\n\t});\n\treturn schema;\n};\nSchema.prototype.pattern = function pattern(regexp) {\n\tconst schema = Schema(this);\n\tconst pattern = pick(regexp, [\"source\", \"flags\"]);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\tpattern\n\t};\n\treturn schema;\n};\nSchema.prototype.simplify = function simplify(value) {\n\tif (deepEqual(value, this.meta.default, this.type === \"dict\")) return null;\n\tif (isNullable(value)) return value;\n\tif (this.type === \"object\" || this.type === \"dict\") {\n\t\tconst result = {};\n\t\tfor (const key in value) {\n\t\t\tconst item = (this.type === \"object\" ? this.dict[key] : this.inner)?.simplify(value[key]);\n\t\t\tif (this.type === \"dict\" || !isNullable(item)) result[key] = item;\n\t\t}\n\t\tif (deepEqual(result, this.meta.default, this.type === \"dict\")) return null;\n\t\treturn result;\n\t} else if (this.type === \"array\" || this.type === \"tuple\") {\n\t\tconst result = [];\n\t\tvalue.forEach((value, index) => {\n\t\t\tconst schema = this.type === \"array\" ? this.inner : this.list[index];\n\t\t\tconst item = schema ? schema.simplify(value) : value;\n\t\t\tresult.push(item);\n\t\t});\n\t\treturn result;\n\t} else if (this.type === \"intersect\") {\n\t\tconst result = {};\n\t\tfor (const item of this.list) Object.assign(result, item.simplify(value));\n\t\treturn result;\n\t} else if (this.type === \"union\") for (const schema of this.list) try {\n\t\tSchema.resolve(value, schema, {});\n\t\treturn schema.simplify(value);\n\t} catch {}\n\treturn value;\n};\nSchema.prototype.toString = function toString(inline) {\n\treturn formatters[this.type]?.(this, inline) ?? `Schema<${this.type}>`;\n};\nSchema.prototype.role = function role(role, extra) {\n\tconst schema = Schema(this);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\trole,\n\t\textra\n\t};\n\treturn schema;\n};\nfor (const key of [\n\t\"default\",\n\t\"link\",\n\t\"comment\",\n\t\"description\",\n\t\"max\",\n\t\"min\",\n\t\"step\"\n]) Object.assign(Schema.prototype, { [key](value) {\n\tconst schema = Schema(this);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\t[key]: value\n\t};\n\treturn schema;\n} });\nconst resolvers = {};\nSchema.extend = function extend(type, resolve) {\n\tresolvers[type] = resolve;\n};\nSchema.resolve = function resolve(data, schema, options = {}, strict = false) {\n\tif (!schema) return [data];\n\tif (options.ignore?.(data, schema)) return [data];\n\tif (isNullable(data) && schema.type !== \"lazy\") {\n\t\tif (schema.meta.required) throw new ValidationError(`missing required value`, options);\n\t\tlet current = schema;\n\t\tlet fallback = schema.meta.default;\n\t\twhile (current?.type === \"intersect\" && isNullable(fallback)) {\n\t\t\tcurrent = current.list[0];\n\t\t\tfallback = current?.meta.default;\n\t\t}\n\t\tif (isNullable(fallback)) return [data];\n\t\tdata = clone(fallback);\n\t}\n\tconst callback = resolvers[schema.type];\n\tif (!callback) throw new ValidationError(`unsupported type \"${schema.type}\"`, options);\n\ttry {\n\t\treturn callback(data, schema, options, strict);\n\t} catch (error) {\n\t\tif (!schema.meta.loose) throw error;\n\t\treturn [schema.meta.default];\n\t}\n};\nSchema.from = function from(source) {\n\tif (isNullable(source)) return Schema.any();\n\telse if ([\n\t\t\"string\",\n\t\t\"number\",\n\t\t\"boolean\"\n\t].includes(typeof source)) return Schema.const(source).required();\n\telse if (source[kSchema]) return source;\n\telse if (typeof source === \"function\") switch (source) {\n\t\tcase String: return Schema.string().required();\n\t\tcase Number: return Schema.number().required();\n\t\tcase Boolean: return Schema.boolean().required();\n\t\tcase Function: return Schema.function().required();\n\t\tdefault: return Schema.is(source).required();\n\t}\n\telse throw new TypeError(`cannot infer schema from ${source}`);\n};\nSchema.lazy = function lazy(builder) {\n\tconst toJSON = () => {\n\t\tif (!schema.inner[kSchema]) {\n\t\t\tschema.inner = schema.builder();\n\t\t\tschema.inner.meta = {\n\t\t\t\t...schema.meta,\n\t\t\t\t...schema.inner.meta\n\t\t\t};\n\t\t}\n\t\treturn schema.inner.toJSON();\n\t};\n\tconst schema = new Schema({\n\t\ttype: \"lazy\",\n\t\tbuilder,\n\t\tinner: { toJSON }\n\t});\n\treturn schema;\n};\nSchema.natural = function natural() {\n\treturn Schema.number().step(1).min(0);\n};\nSchema.percent = function percent() {\n\treturn Schema.number().step(.01).min(0).max(1).role(\"slider\");\n};\nSchema.date = function date() {\n\treturn Schema.union([Schema.is(Date), Schema.transform(Schema.string().role(\"datetime\"), (value, options) => {\n\t\tconst date = new Date(value);\n\t\tif (isNaN(+date)) throw new ValidationError(`invalid date \"${value}\"`, options);\n\t\treturn date;\n\t}, true)]);\n};\nSchema.regExp = function regExp(flag = \"\") {\n\treturn Schema.union([Schema.is(RegExp), Schema.transform(Schema.string().role(\"regexp\", { flag }), (value, options) => {\n\t\ttry {\n\t\t\treturn new RegExp(value, flag);\n\t\t} catch (e) {\n\t\t\tthrow new ValidationError(e.message, options);\n\t\t}\n\t}, true)]);\n};\nSchema.arrayBuffer = function arrayBuffer(encoding) {\n\treturn Schema.union([\n\t\tSchema.is(ArrayBuffer),\n\t\tSchema.is(SharedArrayBuffer),\n\t\tSchema.transform(Schema.any(), (value, options) => {\n\t\t\tif (Binary.isSource(value)) return Binary.fromSource(value);\n\t\t\tthrow new ValidationError(`expected ArrayBufferSource but got ${value}`, options);\n\t\t}, true),\n\t\t...encoding ? [Schema.transform(Schema.string(), (value, options) => {\n\t\t\ttry {\n\t\t\t\treturn encoding === \"base64\" ? Binary.fromBase64(value) : Binary.fromHex(value);\n\t\t\t} catch (e) {\n\t\t\t\tthrow new ValidationError(e.message, options);\n\t\t\t}\n\t\t}, true)] : []\n\t]);\n};\nSchema.extend(\"lazy\", (data, schema, options, strict) => {\n\tif (!schema.inner[kSchema]) {\n\t\tschema.inner = schema.builder();\n\t\tschema.inner.meta = {\n\t\t\t...schema.meta,\n\t\t\t...schema.inner.meta\n\t\t};\n\t}\n\treturn Schema.resolve(data, schema.inner, options, strict);\n});\nSchema.extend(\"any\", (data) => {\n\treturn [data];\n});\nSchema.extend(\"never\", (data, _, options) => {\n\tthrow new ValidationError(`expected nullable but got ${data}`, options);\n});\nSchema.extend(\"const\", (data, { value }, options) => {\n\tif (deepEqual(data, value)) return [value];\n\tthrow new ValidationError(`expected ${value} but got ${data}`, options);\n});\nfunction checkWithinRange(data, meta, description, options, skipMin = false) {\n\tconst { max = Infinity, min = -Infinity } = meta;\n\tif (data > max) throw new ValidationError(`expected ${description} <= ${max} but got ${data}`, options);\n\tif (data < min && !skipMin) throw new ValidationError(`expected ${description} >= ${min} but got ${data}`, options);\n}\nSchema.extend(\"string\", (data, { meta }, options) => {\n\tif (typeof data !== \"string\") throw new ValidationError(`expected string but got ${data}`, options);\n\tif (meta.pattern) {\n\t\tconst regexp = new RegExp(meta.pattern.source, meta.pattern.flags);\n\t\tif (!regexp.test(data)) throw new ValidationError(`expect string to match regexp ${regexp}`, options);\n\t}\n\tcheckWithinRange(data.length, meta, \"string length\", options);\n\treturn [data];\n});\nfunction decimalShift(data, digits) {\n\tconst str = data.toString();\n\tif (str.includes(\"e\")) return data * Math.pow(10, digits);\n\tconst index = str.indexOf(\".\");\n\tif (index === -1) return data * Math.pow(10, digits);\n\tconst frac = str.slice(index + 1);\n\tconst integer = str.slice(0, index);\n\tif (frac.length <= digits) return +(integer + frac.padEnd(digits, \"0\"));\n\treturn +(integer + frac.slice(0, digits) + \".\" + frac.slice(digits));\n}\nfunction isMultipleOf(data, min, step) {\n\tstep = Math.abs(step);\n\tif (!/^\\d+\\.\\d+$/.test(step.toString())) return (data - min) % step === 0;\n\tconst index = step.toString().indexOf(\".\");\n\tconst digits = step.toString().slice(index + 1).length;\n\treturn Math.abs(decimalShift(data, digits) - decimalShift(min, digits)) % decimalShift(step, digits) === 0;\n}\nSchema.extend(\"number\", (data, { meta }, options) => {\n\tif (typeof data !== \"number\") throw new ValidationError(`expected number but got ${data}`, options);\n\tcheckWithinRange(data, meta, \"number\", options);\n\tconst { step } = meta;\n\tif (step && !isMultipleOf(data, meta.min ?? 0, step)) throw new ValidationError(`expected number multiple of ${step} but got ${data}`, options);\n\treturn [data];\n});\nSchema.extend(\"boolean\", (data, _, options) => {\n\tif (typeof data === \"boolean\") return [data];\n\tthrow new ValidationError(`expected boolean but got ${data}`, options);\n});\nSchema.extend(\"bitset\", (data, { bits, meta }, options) => {\n\tlet value = 0, keys = [];\n\tif (typeof data === \"number\") {\n\t\tvalue = data;\n\t\tfor (const key in bits) if (data & bits[key]) keys.push(key);\n\t} else if (Array.isArray(data)) {\n\t\tkeys = data;\n\t\tfor (const key of keys) {\n\t\t\tif (typeof key !== \"string\") throw new ValidationError(`expected string but got ${key}`, options);\n\t\t\tif (key in bits) value |= bits[key];\n\t\t}\n\t} else throw new ValidationError(`expected number or array but got ${data}`, options);\n\tif (value === meta.default) return [value];\n\treturn [value, keys];\n});\nSchema.extend(\"function\", (data, _, options) => {\n\tif (typeof data === \"function\") return [data];\n\tthrow new ValidationError(`expected function but got ${data}`, options);\n});\nSchema.extend(\"is\", (data, { constructor }, options) => {\n\tif (typeof constructor === \"function\") {\n\t\tif (data instanceof constructor) return [data];\n\t\tthrow new ValidationError(`expected ${constructor.name} but got ${data}`, options);\n\t} else {\n\t\tif (isNullable(data)) throw new ValidationError(`expected ${constructor} but got ${data}`, options);\n\t\tlet prototype = Object.getPrototypeOf(data);\n\t\twhile (prototype) {\n\t\t\tif (prototype.constructor?.name === constructor) return [data];\n\t\t\tprototype = Object.getPrototypeOf(prototype);\n\t\t}\n\t\tthrow new ValidationError(`expected ${constructor} but got ${data}`, options);\n\t}\n});\nfunction property(data, key, schema, options) {\n\ttry {\n\t\tconst [value, adapted] = Schema.resolve(data[key], schema, {\n\t\t\t...options,\n\t\t\tpath: [...options.path || [], key]\n\t\t});\n\t\tif (adapted !== void 0) data[key] = adapted;\n\t\treturn value;\n\t} catch (e) {\n\t\tif (!options?.autofix) throw e;\n\t\tdelete data[key];\n\t\treturn schema.meta.default;\n\t}\n}\nSchema.extend(\"array\", (data, { inner, meta }, options) => {\n\tif (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options);\n\tcheckWithinRange(data.length, meta, \"array length\", options, !isNullable(inner.meta.default));\n\treturn [data.map((_, index) => property(data, index, inner, options))];\n});\nSchema.extend(\"dict\", (data, { inner, sKey }, options, strict) => {\n\tif (!isPlainObject(data)) throw new ValidationError(`expected object but got ${data}`, options);\n\tconst result = {};\n\tfor (const key in data) {\n\t\tlet rKey;\n\t\ttry {\n\t\t\trKey = Schema.resolve(key, sKey, options)[0];\n\t\t} catch (error) {\n\t\t\tif (strict) continue;\n\t\t\tthrow error;\n\t\t}\n\t\tresult[rKey] = property(data, key, inner, options);\n\t\tdata[rKey] = data[key];\n\t\tif (key !== rKey) delete data[key];\n\t}\n\treturn [result];\n});\nSchema.extend(\"tuple\", (data, { list }, options, strict) => {\n\tif (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options);\n\tconst result = list.map((inner, index) => property(data, index, inner, options));\n\tif (strict) return [result];\n\tresult.push(...data.slice(list.length));\n\treturn [result];\n});\nfunction merge(result, data) {\n\tfor (const key in data) {\n\t\tif (key in result) continue;\n\t\tresult[key] = data[key];\n\t}\n}\nSchema.extend(\"object\", (data, { dict }, options, strict) => {\n\tif (!isPlainObject(data)) throw new ValidationError(`expected object but got ${data}`, options);\n\tconst result = {};\n\tfor (const key in dict) {\n\t\tconst value = property(data, key, dict[key], options);\n\t\tif (!isNullable(value) || key in data) result[key] = value;\n\t}\n\tif (!strict) merge(result, data);\n\treturn [result];\n});\nSchema.extend(\"union\", (data, { list, toString }, options, strict) => {\n\tconst messages = [];\n\tfor (const inner of list) try {\n\t\treturn Schema.resolve(data, inner, options, strict);\n\t} catch (error) {\n\t\tmessages.push(error);\n\t}\n\tthrow new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);\n});\nSchema.extend(\"intersect\", (data, { list, toString }, options, strict) => {\n\tif (!list.length) return [data];\n\tlet result;\n\tfor (const inner of list) {\n\t\tconst value = Schema.resolve(data, inner, options, true)[0];\n\t\tif (isNullable(value)) continue;\n\t\tif (isNullable(result)) result = value;\n\t\telse if (typeof result !== typeof value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);\n\t\telse if (typeof value === \"object\") merge(result ??= {}, value);\n\t\telse if (result !== value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);\n\t}\n\tif (!strict && isPlainObject(data)) merge(result, data);\n\treturn [result];\n});\nSchema.extend(\"transform\", (data, { inner, callback, preserve }, options) => {\n\tconst [result, adapted = data] = Schema.resolve(data, inner, options, true);\n\tif (preserve) return [callback(result)];\n\telse return [callback(result), callback(adapted)];\n});\nconst formatters = {};\nfunction defineMethod(name, keys, format) {\n\tformatters[name] = format;\n\tObject.assign(Schema, { [name](...args) {\n\t\tconst schema = new Schema({ type: name });\n\t\tkeys.forEach((key, index) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase \"sKey\":\n\t\t\t\t\tschema.sKey = args[index] ?? Schema.string();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"inner\":\n\t\t\t\t\tschema.inner = Schema.from(args[index]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"list\":\n\t\t\t\t\tschema.list = args[index].map(Schema.from);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"dict\":\n\t\t\t\t\tschema.dict = valueMap(args[index], Schema.from);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"bits\":\n\t\t\t\t\tschema.bits = {};\n\t\t\t\t\tfor (const key in args[index]) {\n\t\t\t\t\t\tif (typeof args[index][key] !== \"number\") continue;\n\t\t\t\t\t\tschema.bits[key] = args[index][key];\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"callback\": {\n\t\t\t\t\tconst callback = schema.callback = args[index];\n\t\t\t\t\tcallback[\"toJSON\"] ||= () => callback.toString();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"constructor\": {\n\t\t\t\t\tconst constructor = schema.constructor = args[index];\n\t\t\t\t\tif (typeof constructor === \"function\") constructor[\"toJSON\"] ||= () => constructor[\"name\"];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault: schema[key] = args[index];\n\t\t\t}\n\t\t});\n\t\tif (name === \"object\" || name === \"dict\") schema.meta.default = {};\n\t\telse if (name === \"array\" || name === \"tuple\") schema.meta.default = [];\n\t\telse if (name === \"bitset\") schema.meta.default = 0;\n\t\treturn schema;\n\t} });\n}\ndefineMethod(\"is\", [\"constructor\"], ({ constructor }) => {\n\tif (typeof constructor === \"function\") return constructor.name;\n\telse return constructor;\n});\ndefineMethod(\"any\", [], () => \"any\");\ndefineMethod(\"never\", [], () => \"never\");\ndefineMethod(\"const\", [\"value\"], ({ value }) => typeof value === \"string\" ? JSON.stringify(value) : value);\ndefineMethod(\"string\", [], () => \"string\");\ndefineMethod(\"number\", [], () => \"number\");\ndefineMethod(\"boolean\", [], () => \"boolean\");\ndefineMethod(\"bitset\", [\"bits\"], () => \"bitset\");\ndefineMethod(\"function\", [], () => \"function\");\ndefineMethod(\"array\", [\"inner\"], ({ inner }) => `${inner.toString(true)}[]`);\ndefineMethod(\"dict\", [\"inner\", \"sKey\"], ({ inner, sKey }) => `{ [key: ${sKey.toString()}]: ${inner.toString()} }`);\ndefineMethod(\"tuple\", [\"list\"], ({ list }) => `[${list.map((inner) => inner.toString()).join(\", \")}]`);\ndefineMethod(\"object\", [\"dict\"], ({ dict }) => {\n\tif (Object.keys(dict).length === 0) return \"{}\";\n\treturn `{ ${Object.entries(dict).map(([key, inner]) => {\n\t\treturn `${key}${inner.meta.required ? \"\" : \"?\"}: ${inner.toString()}`;\n\t}).join(\", \")} }`;\n});\ndefineMethod(\"union\", [\"list\"], ({ list }, inline) => {\n\tconst result = list.map(({ toString: format }) => format()).join(\" | \");\n\treturn inline ? `(${result})` : result;\n});\ndefineMethod(\"intersect\", [\"list\"], ({ list }) => {\n\treturn `${list.map((inner) => inner.toString(true)).join(\" & \")}`;\n});\ndefineMethod(\"transform\", [\n\t\"inner\",\n\t\"callback\",\n\t\"preserve\"\n], ({ inner }, isInner) => inner.toString(isInner));\n//#endregion\nexport { Schema as default };\n","import { readFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\n\nexport interface HostCredentials {\n endpoint: string;\n apiKey?: string;\n source: \"env\" | \"ovcli\" | \"ov\" | \"default\";\n}\n\nexport interface ResolveOptions {\n cliConfigPath?: string;\n ovConfigPath?: string;\n}\n\nconst DEFAULT_ENDPOINT = \"http://127.0.0.1:1933\";\n\nfunction cleanStr(val: unknown): string | undefined {\n if (typeof val === \"string\" && val.trim().length > 0) {\n return val.trim();\n }\n return undefined;\n}\n\nfunction cleanUrl(val: unknown): string | undefined {\n const s = cleanStr(val);\n return s ? s.replace(/\\/+$/, \"\") : undefined;\n}\n\nfunction tryReadJson(path: string): Record<string, unknown> | null {\n try {\n const raw = readFileSync(path, \"utf-8\");\n return JSON.parse(raw);\n } catch {\n return null;\n }\n}\n\n/**\n * Resolves OpenViking connection credentials on the host side:\n * 1. Environment variables (OPENVIKING_URL / OPENVIKING_BASE_URL, OPENVIKING_API_KEY / OPENVIKING_BEARER_TOKEN)\n * 2. ~/.openviking/ovcli.conf (url, api_key)\n * 3. ~/.openviking/ov.conf (server.url or server.host:server.port, server.root_api_key)\n * 4. Default fallback: http://127.0.0.1:1933\n */\nexport function resolveHostCredentials(\n env: NodeJS.ProcessEnv | Record<string, string | undefined> = process.env,\n options?: ResolveOptions\n): HostCredentials {\n let endpoint = cleanUrl(env.OPENVIKING_URL || env.OPENVIKING_BASE_URL);\n let apiKey = cleanStr(env.OPENVIKING_API_KEY || env.OPENVIKING_BEARER_TOKEN);\n let source: \"env\" | \"ovcli\" | \"ov\" | \"default\" =\n endpoint || apiKey ? \"env\" : \"default\";\n\n // Check ~/.openviking/ovcli.conf if endpoint or apiKey missing\n if (!endpoint || !apiKey) {\n const cliPath =\n options?.cliConfigPath ||\n env.OPENVIKING_CLI_CONFIG_FILE ||\n join(homedir(), \".openviking\", \"ovcli.conf\");\n\n const cliData = tryReadJson(cliPath);\n if (cliData) {\n if (!endpoint && cleanUrl(cliData.url)) {\n endpoint = cleanUrl(cliData.url);\n if (source === \"default\") source = \"ovcli\";\n }\n if (!apiKey && cleanStr(cliData.api_key)) {\n apiKey = cleanStr(cliData.api_key);\n if (source === \"default\") source = \"ovcli\";\n }\n }\n }\n\n // Check ~/.openviking/ov.conf if endpoint or apiKey still missing\n if (!endpoint || !apiKey) {\n const ovPath =\n options?.ovConfigPath ||\n env.OPENVIKING_CONFIG_FILE ||\n join(homedir(), \".openviking\", \"ov.conf\");\n\n const ovData = tryReadJson(ovPath);\n if (ovData) {\n const server = (ovData.server as Record<string, unknown>) || {};\n if (!endpoint) {\n let ovUrl = cleanUrl(server.url);\n if (!ovUrl && server.port) {\n const host = cleanStr(server.host) || \"127.0.0.1\";\n ovUrl = `http://${host.replace(\"0.0.0.0\", \"127.0.0.1\")}:${server.port}`;\n }\n if (ovUrl) {\n endpoint = ovUrl;\n if (source === \"default\") source = \"ov\";\n }\n }\n if (!apiKey && cleanStr(server.root_api_key)) {\n apiKey = cleanStr(server.root_api_key);\n if (source === \"default\") source = \"ov\";\n }\n }\n }\n\n return {\n endpoint: endpoint || DEFAULT_ENDPOINT,\n apiKey,\n source,\n };\n}\n","import z from \"@deepseek-ai/schemastery\";\nimport { resolveHostCredentials } from \"./credentials.js\";\n\nexport * from \"./credentials.js\";\nexport const name = \"@dipertq/dsh-openviking-status\";\nexport const inject = [\"webServer\"];\n\nconst NS = \"openviking-status\";\nconst API_PREFIX = \"/openviking-status/api\";\n\nexport const Config = z.object({\n endpoint: z.string().default(\"http://127.0.0.1:1933\"),\n apiKey: z.string().role(\"secret\").default(\"\"),\n});\n\nexport type OpenVikingConfig = {\n endpoint?: string;\n apiKey?: string;\n};\n\nasync function readJson(req: any): Promise<Record<string, any>> {\n let data = \"\";\n for await (const chunk of req) {\n data += chunk;\n }\n try {\n return data ? JSON.parse(data) : {};\n } catch {\n return {};\n }\n}\n\nfunction sendJson(res: any, status: number, body: any): void {\n res.writeHead(status, {\n \"Content-Type\": \"application/json; charset=utf-8\",\n \"Cache-Control\": \"no-store\",\n });\n res.end(JSON.stringify(body));\n}\n\nfunction getCandidateSessionIds(sessionId: string): string[] {\n const raw = sessionId.trim();\n const candidates: string[] = [];\n\n if (raw.startsWith(\"dsh-session-\")) {\n const suffix = raw.slice(\"dsh-session-\".length);\n candidates.push(raw, `dsh-${suffix}`);\n } else if (raw.startsWith(\"dsh-\")) {\n const suffix = raw.slice(\"dsh-\".length);\n candidates.push(raw, `dsh-session-${suffix}`);\n } else if (raw.startsWith(\"session-\")) {\n candidates.push(`dsh-${raw}`, raw);\n } else {\n candidates.push(`dsh-session-${raw}`, `dsh-${raw}`, raw);\n }\n\n return Array.from(new Set(candidates));\n}\n\n/** Верхняя граница `limit` у демона (`INVALID_ARGUMENT` за пределом). */\nconst TASKS_LIMIT_CAP = 200;\n\n/** Тип фоновой задачи Phase 2, извлекающей память из архива сессии. */\nconst SESSION_COMMIT_TASK_TYPE = \"session_commit\";\n\n/**\n * Прижать `limit` к диапазону `[1, 200]`. Демон отвергает более крупные\n * значения с `INVALID_ARGUMENT`, поэтому клэмп делает прокси, а не клиент.\n */\nfunction clampLimit(raw: unknown, fallback = TASKS_LIMIT_CAP): number {\n const n = typeof raw === \"string\" ? Number.parseInt(raw, 10) : Number(raw);\n if (!Number.isFinite(n) || n <= 0) return fallback;\n return Math.min(TASKS_LIMIT_CAP, Math.max(1, Math.floor(n)));\n}\n\n/**\n * Достать идентификатор задачи из ответа демона на коммит.\n *\n * Демон кладёт его то в корень (`task_id`), то во вложенный `result`/`data`,\n * поэтому проверяем оба уровня и обе формы имени (`task_id` / `id`).\n */\nfunction extractTaskId(body: Record<string, unknown> | null): string | null {\n if (!body || typeof body !== \"object\") return null;\n const containers = [\n body,\n body.result as Record<string, unknown> | undefined,\n body.data as Record<string, unknown> | undefined,\n ];\n for (const c of containers) {\n if (!c || typeof c !== \"object\") continue;\n const id = c.task_id ?? c.id;\n if (typeof id === \"string\" && id.trim()) return id.trim();\n }\n return null;\n}\n\n/**\n * Разрешить идентификатор сессии в существующий `resource_id` формы\n * `dsh-session-<uuid>`.\n *\n * Фильтр задач по `resource_id` — exact match, поэтому берём первый кандидат,\n * который демон подтверждает через `GET /sessions/{id}`. Переиспользует ту же\n * логику кандидатов, что и чтение сессии.\n */\nasync function resolveResourceId(\n endpoint: string,\n headers: Record<string, string>,\n sessionId: string,\n cache?: Map<string, string>\n): Promise<string | null> {\n const key = sessionId.trim();\n const cached = cache?.get(key);\n if (cached) return cached;\n\n for (const candidateId of getCandidateSessionIds(sessionId)) {\n const daemonRes = await fetch(\n `${endpoint}/api/v1/sessions/${encodeURIComponent(candidateId)}`,\n { method: \"GET\", headers }\n ).catch(() => null);\n if (!daemonRes) continue;\n if (daemonRes.status === 404) continue;\n if (daemonRes.ok) {\n cache?.set(key, candidateId);\n return candidateId;\n }\n }\n return null;\n}\n\nexport function apply(ctx: any, config?: OpenVikingConfig) {\n let currentSettings = () => config ?? {};\n let settingsService: any = null;\n\n // Кэш разрешения sessionId → resource_id (dsh-session-*). Опрос задач идёт\n // каждые ~2.5с в активной фазе, а форма id стабильна на всю сессию — без\n // кэша прокси делал бы лишний session-probe на каждый тик.\n const resourceIdCache = new Map<string, string>();\n\n // Attach to DSH settings if available\n ctx.inject?.([\"settings\"], (settingsCtx: any) => {\n settingsService = settingsCtx.settings;\n settingsCtx.settings?.installSection(\n ctx,\n NS,\n Config,\n config ?? { endpoint: \"http://127.0.0.1:1933\", apiKey: \"\" },\n {\n setSource: (src: () => OpenVikingConfig) => {\n currentSettings = src;\n },\n onChange: () => {},\n }\n );\n });\n\n function resolveEffective(): {\n endpoint: string;\n apiKey?: string;\n source: \"env\" | \"ovcli\" | \"ov\" | \"settings\" | \"default\";\n } {\n const saved = currentSettings() as Record<string, any>;\n const auto = resolveHostCredentials();\n\n const hasSavedEndpoint =\n typeof saved?.endpoint === \"string\" && saved.endpoint.trim().length > 0;\n const hasSavedKey =\n typeof saved?.apiKey === \"string\" && saved.apiKey.trim().length > 0;\n\n const endpoint = (\n hasSavedEndpoint ? saved.endpoint.trim() : auto.endpoint\n ).replace(/\\/+$/, \"\");\n const apiKey = hasSavedKey ? saved.apiKey.trim() : auto.apiKey;\n const source = hasSavedEndpoint || hasSavedKey ? \"settings\" : auto.source;\n\n return { endpoint, apiKey, source };\n }\n\n function getHeaders(\n apiKey?: string,\n extra: Record<string, string> = {}\n ): Record<string, string> {\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n ...extra,\n };\n if (apiKey) {\n headers[\"Authorization\"] = `Bearer ${apiKey}`;\n }\n return headers;\n }\n\n // GET & POST /openviking-status/api/config\n ctx.effect?.(() => {\n return ctx.webServer?.register({\n kind: \"exact\",\n path: `${API_PREFIX}/config`,\n handler: async (req: any, res: any) => {\n try {\n if (req.method === \"POST\") {\n const body = await readJson(req);\n const settings =\n settingsService || ctx.get?.(\"settings\") || ctx.settings;\n\n if (!settings) {\n sendJson(res, 503, { error: \"Settings service unavailable\" });\n return;\n }\n\n if (body.reset) {\n await settings.mutate(NS, [\n { op: \"unset\", path: [\"endpoint\"] },\n { op: \"unset\", path: [\"apiKey\"] },\n ]);\n sendJson(res, 200, { ok: true, reset: true });\n return;\n }\n\n const ops: any[] = [];\n if (\n typeof body.endpoint === \"string\" &&\n body.endpoint.trim().length > 0\n ) {\n const ep = body.endpoint.trim();\n if (!ep.startsWith(\"http://\") && !ep.startsWith(\"https://\")) {\n sendJson(res, 400, {\n error: \"Endpoint must start with http:// or https://\",\n });\n return;\n }\n ops.push({\n op: \"set\",\n path: [\"endpoint\"],\n value: ep.replace(/\\/+$/, \"\"),\n });\n }\n if (typeof body.apiKey === \"string\") {\n ops.push({\n op: \"set\",\n path: [\"apiKey\"],\n value: body.apiKey.trim(),\n });\n }\n\n if (ops.length > 0) {\n await settings.mutate(NS, ops);\n }\n\n sendJson(res, 200, { ok: true, config: resolveEffective() });\n return;\n }\n\n // GET /openviking-status/api/config\n const effective = resolveEffective();\n const maskedApiKey = effective.apiKey\n ? effective.apiKey.length > 8\n ? `${effective.apiKey.slice(0, 4)}••••${effective.apiKey.slice(-4)}`\n : \"••••••••\"\n : undefined;\n\n sendJson(res, 200, {\n endpoint: effective.endpoint,\n hasApiKey: Boolean(effective.apiKey),\n maskedApiKey,\n source: effective.source,\n });\n } catch (err) {\n sendJson(res, 500, { error: String(err) });\n }\n },\n });\n }, \"openviking-status: config route\");\n\n // POST /openviking-status/api/test-connection\n ctx.effect?.(() => {\n return ctx.webServer?.register({\n kind: \"exact\",\n path: `${API_PREFIX}/test-connection`,\n handler: async (req: any, res: any) => {\n try {\n const body = await readJson(req);\n const effective = resolveEffective();\n const targetUrl =\n (body.endpoint &&\n String(body.endpoint).trim().replace(/\\/+$/, \"\")) ||\n effective.endpoint;\n const targetKey =\n typeof body.apiKey === \"string\"\n ? body.apiKey.trim()\n : effective.apiKey;\n\n const healthRes = await fetch(`${targetUrl}/health`, {\n method: \"GET\",\n headers: getHeaders(targetKey),\n }).catch(\n (err) => ({ ok: false, status: 0, statusText: err.message }) as any\n );\n\n if (!healthRes.ok) {\n sendJson(res, 200, {\n ok: false,\n authenticated: false,\n error:\n healthRes.status === 0\n ? `Connection failed: ${healthRes.statusText}`\n : `HTTP ${healthRes.status}: ${healthRes.statusText}`,\n });\n return;\n }\n\n const healthData = (await healthRes\n .json()\n .catch(() => ({}))) as Record<string, unknown>;\n\n // Probe authorization against session endpoint\n const probeCandidate = \"dsh-session-test-probe\";\n const authProbe = await fetch(\n `${targetUrl}/api/v1/sessions/${probeCandidate}`,\n {\n method: \"GET\",\n headers: getHeaders(targetKey),\n }\n ).catch(() => null);\n\n let authenticated = true;\n if (\n authProbe &&\n (authProbe.status === 401 || authProbe.status === 403)\n ) {\n authenticated = false;\n }\n\n sendJson(res, 200, {\n ok: true,\n version:\n typeof healthData.version === \"string\"\n ? healthData.version\n : undefined,\n storage:\n typeof healthData.storage === \"string\"\n ? healthData.storage\n : undefined,\n authenticated,\n error: authenticated\n ? undefined\n : \"Daemon reachable, but API key is missing or invalid (HTTP 401)\",\n });\n } catch (err) {\n sendJson(res, 500, { ok: false, error: String(err) });\n }\n },\n });\n }, \"openviking-status: test connection route\");\n\n // GET /openviking-status/api/health\n ctx.effect?.(() => {\n return ctx.webServer?.register({\n kind: \"exact\",\n path: `${API_PREFIX}/health`,\n handler: async (_req: any, res: any) => {\n try {\n const effective = resolveEffective();\n const daemonRes = await fetch(`${effective.endpoint}/health`, {\n method: \"GET\",\n headers: getHeaders(effective.apiKey),\n }).catch(\n (err) =>\n ({ ok: false, status: 502, statusText: err.message }) as any\n );\n\n if (!daemonRes.ok) {\n sendJson(res, daemonRes.status || 502, {\n ok: false,\n healthy: false,\n error: `Daemon returned ${daemonRes.status}: ${daemonRes.statusText}`,\n });\n return;\n }\n\n const body = await daemonRes.json().catch(() => ({}));\n sendJson(res, 200, { ...body, endpoint: effective.endpoint });\n } catch (err) {\n sendJson(res, 502, { ok: false, healthy: false, error: String(err) });\n }\n },\n });\n }, \"openviking-status: health proxy route\");\n\n // GET /openviking-status/api/session\n ctx.effect?.(() => {\n return ctx.webServer?.register({\n kind: \"exact\",\n path: `${API_PREFIX}/session`,\n handler: async (req: any, res: any) => {\n try {\n const url = new URL(req.url || \"/\", \"http://localhost\");\n const sessionId = url.searchParams.get(\"id\");\n\n if (!sessionId || !sessionId.trim()) {\n sendJson(res, 400, {\n status: \"missing\",\n error: \"Missing session id\",\n });\n return;\n }\n\n const effective = resolveEffective();\n const candidates = getCandidateSessionIds(sessionId);\n\n for (const candidateId of candidates) {\n const daemonRes = await fetch(\n `${effective.endpoint}/api/v1/sessions/${encodeURIComponent(candidateId)}`,\n {\n method: \"GET\",\n headers: getHeaders(effective.apiKey),\n }\n ).catch(() => null);\n\n if (!daemonRes) continue;\n if (daemonRes.status === 404) continue;\n\n if (daemonRes.status === 401 || daemonRes.status === 403) {\n sendJson(res, 200, { status: \"unauthorized\" });\n return;\n }\n\n if (!daemonRes.ok) {\n sendJson(res, 200, {\n status: \"error\",\n detail: `HTTP ${daemonRes.status}`,\n });\n return;\n }\n\n const data = (await daemonRes.json().catch(() => ({}))) as Record<\n string,\n unknown\n >;\n const raw = (data?.result ?? data?.data ?? data) as Record<\n string,\n unknown\n >;\n\n sendJson(res, 200, {\n status: \"ok\",\n session: {\n session_id:\n typeof raw.session_id === \"string\"\n ? raw.session_id\n : candidateId,\n peer_id:\n typeof raw.peer_id === \"string\" ? raw.peer_id : undefined,\n pending_tokens:\n typeof raw.pending_tokens === \"number\"\n ? raw.pending_tokens\n : 0,\n message_count:\n typeof raw.message_count === \"number\"\n ? raw.message_count\n : undefined,\n commit_count:\n typeof raw.commit_count === \"number\"\n ? raw.commit_count\n : undefined,\n last_commit_at:\n typeof raw.last_commit_at === \"string\"\n ? raw.last_commit_at\n : undefined,\n created_at:\n typeof raw.created_at === \"string\"\n ? raw.created_at\n : undefined,\n updated_at:\n typeof raw.updated_at === \"string\"\n ? raw.updated_at\n : undefined,\n },\n });\n return;\n }\n\n sendJson(res, 200, { status: \"missing\" });\n } catch (err) {\n sendJson(res, 200, { status: \"unreachable\", detail: String(err) });\n }\n },\n });\n }, \"openviking-status: session proxy route\");\n\n // POST /openviking-status/api/session/commit\n ctx.effect?.(() => {\n return ctx.webServer?.register({\n kind: \"exact\",\n path: `${API_PREFIX}/session/commit`,\n handler: async (req: any, res: any) => {\n try {\n const body = await readJson(req);\n const sessionId = body.sessionId;\n\n if (!sessionId || typeof sessionId !== \"string\") {\n sendJson(res, 400, { ok: false, error: \"Missing sessionId\" });\n return;\n }\n\n const effective = resolveEffective();\n const candidates = getCandidateSessionIds(sessionId);\n const payload = JSON.stringify({\n keep_recent_count: body.keep_recent_count ?? 10,\n });\n\n for (const candidateId of candidates) {\n const daemonRes = await fetch(\n `${effective.endpoint}/api/v1/sessions/${encodeURIComponent(candidateId)}/commit`,\n {\n method: \"POST\",\n headers: getHeaders(effective.apiKey),\n body: payload,\n }\n ).catch(() => null);\n\n if (!daemonRes) continue;\n if (daemonRes.status === 404) continue;\n\n if (!daemonRes.ok) {\n const errBody = (await daemonRes\n .json()\n .catch(() => null)) as Record<string, unknown> | null;\n const errorMsg =\n (errBody?.error as Record<string, unknown>)?.message ||\n errBody?.message ||\n errBody?.error ||\n `HTTP ${daemonRes.status}`;\n sendJson(res, 200, { ok: false, error: String(errorMsg) });\n return;\n }\n\n // Commit демона двухфазный: тело ответа несёт `task_id` фоновой\n // задачи извлечения (Phase 2). Пробрасываем его, чтобы чип мог\n // мгновенно привязаться к задаче, не дожидаясь следующего опроса.\n const okBody = (await daemonRes.json().catch(() => null)) as Record<\n string,\n unknown\n > | null;\n const taskId = extractTaskId(okBody);\n sendJson(res, 200, {\n ok: true,\n ...(taskId ? { task_id: taskId } : {}),\n resource_id: candidateId,\n });\n return;\n }\n\n sendJson(res, 200, {\n ok: false,\n error: \"Session not found on commit\",\n });\n } catch (err) {\n sendJson(res, 500, { ok: false, error: String(err) });\n }\n },\n });\n }, \"openviking-status: session commit proxy route\");\n\n // GET /openviking-status/api/tasks?session=<id>&limit=<n>\n // Разрешает id в resource_id (dsh-session-*) и отдаёт список задач Phase 2\n // одним запросом. Разбивка по статусам считается на клиенте.\n ctx.effect?.(() => {\n return ctx.webServer?.register({\n kind: \"exact\",\n path: `${API_PREFIX}/tasks`,\n handler: async (req: any, res: any) => {\n try {\n const url = new URL(req.url || \"/\", \"http://localhost\");\n const sessionId = url.searchParams.get(\"session\");\n if (!sessionId || !sessionId.trim()) {\n sendJson(res, 400, { status: \"missing\", error: \"Missing session\" });\n return;\n }\n\n const effective = resolveEffective();\n const headers = getHeaders(effective.apiKey);\n const resourceId = await resolveResourceId(\n effective.endpoint,\n headers,\n sessionId.trim(),\n resourceIdCache\n );\n\n if (!resourceId) {\n sendJson(res, 200, { status: \"missing\", tasks: [] });\n return;\n }\n\n const limit = clampLimit(url.searchParams.get(\"limit\"));\n const query = new URLSearchParams({\n resource_id: resourceId,\n task_type: SESSION_COMMIT_TASK_TYPE,\n limit: String(limit),\n });\n\n const daemonRes = await fetch(\n `${effective.endpoint}/api/v1/tasks?${query.toString()}`,\n { method: \"GET\", headers }\n ).catch(() => null);\n\n if (!daemonRes) {\n sendJson(res, 200, { status: \"unreachable\", tasks: [] });\n return;\n }\n if (daemonRes.status === 401 || daemonRes.status === 403) {\n sendJson(res, 200, { status: \"unauthorized\", tasks: [] });\n return;\n }\n if (!daemonRes.ok) {\n sendJson(res, 200, {\n status: \"error\",\n detail: `HTTP ${daemonRes.status}`,\n tasks: [],\n });\n return;\n }\n\n const data = (await daemonRes.json().catch(() => ({}))) as Record<\n string,\n unknown\n >;\n const items =\n (data?.items as unknown[]) ??\n (data?.tasks as unknown[]) ??\n ((data?.result as Record<string, unknown>)?.items as unknown[]) ??\n (Array.isArray(data) ? (data as unknown[]) : []);\n\n sendJson(res, 200, {\n status: \"ok\",\n resource_id: resourceId,\n tasks: Array.isArray(items) ? items : [],\n });\n } catch (err) {\n sendJson(res, 200, { status: \"unreachable\", detail: String(err) });\n }\n },\n });\n }, \"openviking-status: tasks proxy route\");\n\n // GET /openviking-status/api/task?id=<id>&events=1\n // Лениво тянет одну задачу с лентой execution_events для «Show log».\n ctx.effect?.(() => {\n return ctx.webServer?.register({\n kind: \"exact\",\n path: `${API_PREFIX}/task`,\n handler: async (req: any, res: any) => {\n try {\n const url = new URL(req.url || \"/\", \"http://localhost\");\n const taskId = url.searchParams.get(\"id\");\n if (!taskId || !taskId.trim()) {\n sendJson(res, 400, { status: \"missing\", error: \"Missing id\" });\n return;\n }\n const withEvents =\n url.searchParams.get(\"events\") === \"1\" ||\n url.searchParams.get(\"events\") === \"true\";\n\n const effective = resolveEffective();\n const query = withEvents ? \"?include_events=true\" : \"\";\n const daemonRes = await fetch(\n `${effective.endpoint}/api/v1/tasks/${encodeURIComponent(\n taskId.trim()\n )}${query}`,\n { method: \"GET\", headers: getHeaders(effective.apiKey) }\n ).catch(() => null);\n\n if (!daemonRes) {\n sendJson(res, 200, { status: \"unreachable\" });\n return;\n }\n if (daemonRes.status === 404) {\n sendJson(res, 200, { status: \"missing\" });\n return;\n }\n if (daemonRes.status === 401 || daemonRes.status === 403) {\n sendJson(res, 200, { status: \"unauthorized\" });\n return;\n }\n if (!daemonRes.ok) {\n sendJson(res, 200, {\n status: \"error\",\n detail: `HTTP ${daemonRes.status}`,\n });\n return;\n }\n\n const data = (await daemonRes.json().catch(() => ({}))) as Record<\n string,\n unknown\n >;\n const task = (data?.result ?? data?.data ?? data) as Record<\n string,\n unknown\n >;\n sendJson(res, 200, { status: \"ok\", task });\n } catch (err) {\n sendJson(res, 200, { status: \"unreachable\", detail: String(err) });\n }\n },\n });\n }, \"openviking-status: task detail proxy route\");\n}\n"],"mappings":"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","names":["value","Binary","result","a","b","Time","date","template","options","pattern","value","extra","resolve","toJSON","date","toString","name","key","extra"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dipertq/dsh-openviking-status",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "Minimalist OpenViking status chip and popover for DeepSeek Harness composer",
5
5
  "type": "module",
6
6
  "repository": {