slidemind 0.3.13 → 0.3.14
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/AGENTS.md +86 -21
- package/README.md +14 -17
- package/bin/slidemind.mjs +65 -4969
- package/package.json +1 -1
- package/skills/create-slides/SKILL.md +113 -74
- package/skills/search/SKILL.md +25 -7
- package/src/bridge/build-and-push.mjs +108 -15
- package/src/bridge/bundle.mjs +69 -0
- package/src/bridge/capture.mjs +19 -0
- package/src/bridge/client/brands.mjs +622 -0
- package/src/bridge/client/engine-routing.mjs +237 -0
- package/src/bridge/client/engine-search.mjs +310 -0
- package/src/bridge/client/engine-slides.mjs +435 -0
- package/src/bridge/client/pane-ops.mjs +335 -0
- package/src/bridge/client/presentations.mjs +587 -0
- package/src/bridge/client/render.mjs +317 -0
- package/src/bridge/client/transport.mjs +695 -0
- package/src/bridge/client.mjs +80 -3452
- package/src/bridge/config.mjs +1 -1
- package/src/bridge/engine-download.mjs +15 -2
- package/src/builders/build.mjs +11 -804
- package/src/builders/draft-check.mjs +376 -0
- package/src/builders/lint.mjs +38 -2
- package/src/builders/preview.html +799 -0
- package/src/builders/review.mjs +23 -4
- package/src/builders/visual-families.mjs +6 -8
- package/src/cli/common.mjs +179 -0
- package/src/cli/concepts.mjs +310 -0
- package/src/cli/connection.mjs +147 -0
- package/src/cli/deck.mjs +608 -0
- package/src/cli/designs.mjs +113 -0
- package/src/cli/diagnose.mjs +141 -0
- package/src/cli/download-bundle.mjs +144 -0
- package/src/cli/engine-helpers.mjs +429 -0
- package/src/cli/engine-results.mjs +320 -0
- package/src/cli/help.mjs +201 -0
- package/src/cli/install.mjs +257 -0
- package/src/cli/read.mjs +120 -0
- package/src/cli/ready.mjs +805 -0
- package/src/cli/search.mjs +608 -0
- package/src/cli/session.mjs +177 -0
- package/src/cli/setup.mjs +282 -0
- package/src/cli/slide-reuse.mjs +334 -0
- package/src/cli/status.mjs +118 -0
- package/src/cli/workspace.mjs +302 -0
- package/src/installers/codex.mjs +1 -1
- package/src/update-check.mjs +231 -0
package/src/bridge/config.mjs
CHANGED
|
@@ -54,7 +54,7 @@ export function sessionConfigPath() {
|
|
|
54
54
|
|
|
55
55
|
// A short, human env label for a backend URL: localhost → "local", a hostname
|
|
56
56
|
// containing "dev"/"staging" → that word, otherwise the bare hostname. Used in
|
|
57
|
-
// listings and to let `--backend <env>`
|
|
57
|
+
// listings and to let `--backend <env>` (also SLIDEMIND_BACKEND) match by name.
|
|
58
58
|
export function deriveEnvLabel(backendURL) {
|
|
59
59
|
let host;
|
|
60
60
|
try {
|
|
@@ -201,9 +201,12 @@ async function streamOneResult({
|
|
|
201
201
|
// Set when the pane-free route refused the TINT (not the asset): the download
|
|
202
202
|
// then repeats without a colour so the caller still gets the icon, and the
|
|
203
203
|
// recolour is reported as not applied instead of silently claimed.
|
|
204
|
-
|
|
204
|
+
// The pane-free route never bakes a tint (its classifier is DOM-based and
|
|
205
|
+
// lives in the add-in) — so don't ask it to: fetch the plain bytes once and
|
|
206
|
+
// bake locally below. Only a pane relay carries the colour.
|
|
207
|
+
let recolorRefused = !presId && iconColor ? iconColor : null;
|
|
205
208
|
try {
|
|
206
|
-
res = await fetchOnce(iconColor);
|
|
209
|
+
res = await fetchOnce(recolorRefused ? null : iconColor);
|
|
207
210
|
} catch (err) {
|
|
208
211
|
fs.rmSync(tempPath, { force: true });
|
|
209
212
|
// Route absent → this add-in predates streaming; let the caller fall back.
|
|
@@ -236,6 +239,16 @@ async function streamOneResult({
|
|
|
236
239
|
markup = local.markup;
|
|
237
240
|
recolorRefused = null;
|
|
238
241
|
}
|
|
242
|
+
} else if (!iconColor && describeRecolor(markup, res.mimeType).mode === "mono") {
|
|
243
|
+
// No colour asked for and the glyph is a single fixed paint: make it
|
|
244
|
+
// TINTABLE instead of shipping it black. With `currentColor` the slide's
|
|
245
|
+
// own `color: var(--token)` on the <img> drives the fill in the preview
|
|
246
|
+
// and in the .pptx alike, so one file serves a white glyph on an accent
|
|
247
|
+
// medallion and an accent glyph on white. Every sim builder that baked
|
|
248
|
+
// one hex at download time later lost either the glyph (blue on blue)
|
|
249
|
+
// or the medallion fill; a baked colour stays available via --icon-color.
|
|
250
|
+
const tintable = applyLocalRecolor(markup, "currentColor");
|
|
251
|
+
if (tintable.applied) markup = tintable.markup;
|
|
239
252
|
}
|
|
240
253
|
const filename = `engine-${searchId}-${selection}.svg`;
|
|
241
254
|
const target = path.join(assetsDir, filename);
|