pomljs
Version:
Prompt Orchestration Markup Language
1 lines • 8.56 kB
Source Map (JSON)
{"version":3,"file":"trace.cjs","sources":["../../.build/util/trace.js"],"sourcesContent":["import { mkdirSync, writeFileSync, openSync, closeSync, writeSync, symlinkSync, readdirSync } from './fs';\nimport path from 'path';\nfunction replaceBuffers(value) {\n if (Buffer.isBuffer(value)) {\n const wrapper = { __base64__: value.toString('base64') };\n return wrapper;\n }\n else if (Array.isArray(value)) {\n return value.map(replaceBuffers);\n }\n else if (value && typeof value === 'object') {\n const result = {};\n for (const k of Object.keys(value)) {\n result[k] = replaceBuffers(value[k]);\n }\n return result;\n }\n return value;\n}\nexport function parseJsonWithBuffers(text) {\n return JSON.parse(text, (_key, value) => {\n if (value && typeof value === 'object' && value.__base64__) {\n return Buffer.from(value.__base64__, 'base64');\n }\n return value;\n });\n}\nlet traceEnabled = false;\nlet traceDir;\nexport function setTrace(enabled = true, dir) {\n traceEnabled = enabled;\n if (!enabled) {\n traceDir = undefined;\n return undefined;\n }\n const envDir = process.env.POML_TRACE;\n if (dir) {\n const base = path.resolve(dir);\n mkdirSync(base, { recursive: true });\n traceDir = base;\n }\n else if (envDir) {\n mkdirSync(envDir, { recursive: true });\n traceDir = envDir;\n }\n else {\n traceDir = undefined;\n }\n return traceDir;\n}\nexport function clearTrace() {\n traceEnabled = false;\n traceDir = undefined;\n}\nexport function isTracing() {\n return traceEnabled && !!traceDir;\n}\nfunction nextIndex(sourcePath) {\n if (!traceDir) {\n return [0, '', -1];\n }\n const fileName = sourcePath ? path.basename(sourcePath, '.poml') : '';\n for (let i = 1;; i++) {\n const idxStr = i.toString().padStart(4, '0');\n // 1) If ANY file in traceDir starts with this index, skip it.\n // This makes the sequence independent of fileName.\n const entries = readdirSync(traceDir);\n const indexTaken = entries.some((entry) => entry.startsWith(idxStr));\n if (indexTaken) {\n continue;\n }\n // 2) Build our own target using the (possibly present) fileName.\n const prefix = path.join(traceDir, idxStr) + (fileName ? `.${fileName}` : '');\n const filePath = `${prefix}.poml`;\n try {\n // 3) Atomically create our file. If it races and now exists, loop again.\n const fd = openSync(filePath, 'wx');\n return [i, prefix, fd];\n }\n catch (err) {\n if (err.code === 'EEXIST') {\n // Someone created a file with this index between steps (1) and (3); try next i.\n continue;\n }\n throw err;\n }\n }\n}\nexport function dumpTrace(markup, context, stylesheet, result, sourcePath, prettyResult) {\n if (!isTracing()) {\n return;\n }\n const [_idx, prefix, fd] = nextIndex(sourcePath);\n try {\n writeSync(fd, markup);\n }\n finally {\n closeSync(fd);\n }\n if (sourcePath) {\n const envFile = `${prefix}.env`;\n writeFileSync(envFile, `SOURCE_PATH=${sourcePath}\\n`);\n const linkPath = `${prefix}.source.poml`;\n try {\n symlinkSync(sourcePath, linkPath);\n }\n catch {\n console.warn(`Failed to create symlink for source path: ${sourcePath}`);\n }\n }\n if (context && Object.keys(context).length > 0) {\n writeFileSync(`${prefix}.context.json`, JSON.stringify(replaceBuffers(context), null, 2));\n }\n if (stylesheet && Object.keys(stylesheet).length > 0) {\n writeFileSync(`${prefix}.stylesheet.json`, JSON.stringify(replaceBuffers(stylesheet), null, 2));\n }\n if (result !== undefined) {\n writeFileSync(`${prefix}.result.json`, JSON.stringify(replaceBuffers(result), null, 2));\n if (prettyResult !== undefined) {\n writeFileSync(`${prefix}.result.txt`, prettyResult);\n }\n }\n}\nif (process.env.POML_TRACE) {\n setTrace(true, process.env.POML_TRACE);\n}\n//# sourceMappingURL=trace.js.map"],"names":["mkdirSync","readdirSync","openSync","writeSync","closeSync","writeFileSync","symlinkSync"],"mappings":"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"}