Centralize all path management via src/config/paths.ts
- Add getPaths() with workspace, scripts, ppt skin/template paths - Export getWorkspacePath(args?) helper — removes duplicate local functions and stale process.cwd()/workspace fallbacks from sqlite, pdf, excel, image, pubmed, email, audio-transcribe (7 files) - weather.ts: replace __dirname-relative scripts path with getPaths().scripts - Move ppt/ to .smallclaw/skills/presenter/ppt/; update server-v2.ts, pptx.ts, pptx_gen.py (argparse --skin-dir/--template-dir) - Fix PPT skin thumbnail serving: res.sendFile → fs.createReadStream (bypasses send module dotfiles restriction for .smallclaw/ paths) - Fix workspace default: .smallclaw/workspace (was project root workspace/) - Fix subagent paths to use SMALLCLAW_DATA_DIR env var - Fix Monaco marked module load failure: restore define.amd on DOMContentLoaded after deferred UMD libs (tone, magenta) have loaded - Add AudioContext resume on first user click (Chrome autoplay policy) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+15
-3
@@ -27,10 +27,22 @@
|
||||
<script src="https://cdn.jsdelivr.net/combine/npm/tone@14,npm/@magenta/music@1.23.1/es6/core.js,npm/html-midi-player@1.6.0" defer></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/monaco-editor@0.45.0/min/vs/loader.js"></script>
|
||||
<script>
|
||||
// Prevent deferred UMD libs (tone, @magenta/music, html-midi-player) from
|
||||
// using Monaco's AMD define() — multiple anonymous define() calls in one
|
||||
// combined script cause "Can only have one anonymous define call per script".
|
||||
// Hide AMD from deferred UMD libs (tone, @magenta/music, html-midi-player) so they
|
||||
// don't call Monaco's anonymous define() — that would cause "Can only have one
|
||||
// anonymous define call per script". Restore define.amd on DOMContentLoaded (after
|
||||
// deferred scripts have run as globals) so Monaco's lazy modules like
|
||||
// vs/base/common/marked/marked can register themselves via AMD as expected.
|
||||
var _savedDefineAmd = window.define ? window.define.amd : undefined;
|
||||
if (window.define) window.define.amd = false;
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
if (window.define && _savedDefineAmd !== undefined) window.define.amd = _savedDefineAmd;
|
||||
}, { once: true });
|
||||
|
||||
// Resume Tone.js AudioContext on first user gesture (Chrome autoplay policy)
|
||||
document.addEventListener('click', function() {
|
||||
if (window.Tone && Tone.context && Tone.context.state !== 'running') Tone.context.resume();
|
||||
}, { once: true });
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
Reference in New Issue
Block a user