MCPcopy Create free account

hub / github.com/UfukNode/Noustiny / functions

Functions384 in github.com/UfukNode/Noustiny

↓ 1 callersFunction_index_nodes
Build {id: node} from the tree's node list. Silently skips entries missing an id so partial trees from mid-edit clients still work.
hermes-additions/tools/story_tree_graph.py:62
↓ 1 callersFunction_is_sentence_initial
Best-effort: a token is sentence-initial if it's the first token or the previous token (stripped of casing) ends a sentence. Since we dropped
hermes-additions/tools/motif_tracker.py:136
↓ 1 callersFunction_is_titlecase_like
Treat a token as a possible proper noun if it starts with an upper Unicode letter and contains at least one other letter. We only use this as
hermes-additions/tools/motif_tracker.py:118
↓ 1 callersFunction_is_upper
(ch: str)
hermes-additions/tools/narrative_context_builder.py:94
↓ 1 callersFunction_load_hermes_config
Read the Hermes user config without pulling in PyYAML. The file is small and we only need a couple of strings; a hand-rolled line-walk avoids
hermes-additions/tools/narration_voice_director.py:43
↓ 1 callersFunction_lookup
(body: str, title: str, character_registry: Dict[str, str])
hermes-additions/tools/character_registry_lookup.py:56
↓ 1 callersFunction_lower
(text: str)
hermes-additions/tools/story_copyright_detector.py:143
↓ 1 callersFunction_match_franchise
Return (franchise_slug, matched_tokens) — lowest-token winner is fine because the heuristic is "any hit means known franchise".
hermes-additions/tools/story_copyright_detector.py:147
↓ 1 callersFunction_match_inspired
(seed_lc: str)
hermes-additions/tools/story_copyright_detector.py:163
↓ 1 callersFunction_normalise_beat
(beat: Dict[str, Any])
hermes-additions/tools/narrative_context_builder.py:489
↓ 1 callersFunction_op_ancestors
Walk parentId upward. Excludes the node itself. Root first, target last's parent.
hermes-additions/tools/story_tree_graph.py:112
↓ 1 callersFunction_op_canon_path
Walk canonChildId from root until the spine terminates.
hermes-additions/tools/story_tree_graph.py:98
↓ 1 callersFunction_op_descendants
BFS from node_id. Excludes node_id itself. Respects depth_limit when set.
hermes-additions/tools/story_tree_graph.py:124
↓ 1 callersFunction_op_scene_members
All node ids that share sceneId with node_id. Order follows input order.
hermes-additions/tools/story_tree_graph.py:164
↓ 1 callersFunction_op_siblings
All children of the node's parent, excluding the node itself.
hermes-additions/tools/story_tree_graph.py:149
↓ 1 callersFunction_op_validate
Return a diagnostic report. Never raises.
hermes-additions/tools/story_tree_graph.py:178
↓ 1 callersFunction_post_chat_completion
( base_url: str, api_key: str, model: str, system: str, user: str, *, timeout: flo
hermes-additions/tools/narration_voice_director.py:194
↓ 1 callersFunction_post_render
Synchronous HTTP POST to the FastAPI render service. Uses urllib so the tool stays dependency-free — the hermes-agent venv doesn't need reque
hermes-additions/tools/noustiny_storybook_tool.py:89
↓ 1 callersFunction_probe_mp3_duration
Best-effort duration probe via ffprobe. Returns None if ffprobe is unavailable so consumers without ffmpeg don't crash on this.
hermes-additions/tools/voice_clone_synthesize.py:554
↓ 1 callersFunction_project_dir
()
hermes-additions/tools/noustiny_storybook_tool.py:67
↓ 1 callersFunction_public_dir_candidates
Where Noustiny-style /cache/X paths might be served from. Set NOUSTINY_PUBLIC_DIR to your Next-style /public directory. Generic enough for an
hermes-additions/tools/voice_clone_synthesize.py:173
↓ 1 callersFunction_read_hf_token_file
Read HF token from the canonical ~/.cache/huggingface/token path where `huggingface-cli login` writes it. Stdlib only.
hermes-additions/tools/voice_sample_builder.py:149
↓ 1 callersFunction_read_meta
(cache_path: Path)
hermes-additions/tools/voice_sample_builder.py:399
↓ 1 callersFunction_read_sentinel
(cache_path: Path)
hermes-additions/tools/voice_sample_builder.py:209
↓ 1 callersFunction_read_snapshot
(snapshot_id: str)
hermes-additions/tools/noustiny_storybook_tool.py:75
↓ 1 callersFunction_resolve_alias
Reconcile an LLM-emitted name string with the canonical key under which a character was registered. See `resolveCharacterAlias` in web/lib/ch
hermes-additions/tools/character_registry_lookup.py:138
↓ 1 callersFunction_resolve_endpoint
Return {base_url, api_key, model} for the LLM call. Resolution order: 1. Explicit env vars HERMES_DIRECTOR_BASE_URL / HERMES_DIRECTOR_API_K
hermes-additions/tools/narration_voice_director.py:92
↓ 1 callersFunction_resolve_root_id
Prefer explicit rootId, fall back to the single parentless node.
hermes-additions/tools/story_tree_graph.py:73
↓ 1 callersFunction_scan_beat
Scan one beat's body; update running registries. We scan **body only** because titles are noisy: they capitalise non-proper-noun words (fonts
hermes-additions/tools/narrative_context_builder.py:146
↓ 1 callersFunction_select_dominant_clean_segment
Run diarization on ``audio_path``, pick the dominant speaker's longest contiguous monologue, and return the (start, end, confidence) tuple to
hermes-additions/tools/voice_sample_builder.py:429
↓ 1 callersFunction_story_signals
Compact statistical fingerprint of the canon. The skill uses this to infer *register* (clipped action vs long lyrical prose), *cadence* (what
hermes-additions/tools/narrative_context_builder.py:379
↓ 1 callersFunction_wav_sha
(reference_wav: Path)
hermes-additions/tools/voice_clone_synthesize.py:222
↓ 1 callersFunction_write_meta
(cache_path: Path, meta: Dict[str, Any])
hermes-additions/tools/voice_sample_builder.py:409
↓ 1 callersFunction_ytdlp
()
hermes-additions/tools/voice_sample_builder.py:78
↓ 1 callersFunctionabsoluteCacheUrl
Return an absolute HTTP URL for a ``/cache/refs/...`` or * ``/cache/images/...`` path so Nous Portal image models can fetch it. * Disk paths live
web/app/api/hermes/route.ts:1023
↓ 1 callersFunctionaccentFor
(scene: Scene)
web/components/ScenesList.tsx:70
↓ 1 callersFunctionactRoman
(n: 1 | 2 | 3 | undefined)
web/components/ScenesList.tsx:77
↓ 1 callersFunctionbatchGenerateImagesForChildren
Build N visual prompts for N new sibling beats in a single Haiku call, * then fire N image-gens in parallel. Saves ~60% of the per-Enter * Claude
web/lib/hermes-client.ts:845
↓ 1 callersFunctionbrainstorm
(b: BrainstormBody, reqId: string)
web/app/api/hermes/route.ts:527
↓ 1 callersFunctionbucketOf
(job: RenderJob)
web/components/MediaLibrary.tsx:23
↓ 1 callersFunctionbuildBrainstormHistory
Build the multi-turn chat history that makes `expandNode(nodeId)` read * as a real back-and-forth conversation instead of a stateless single- * sh
web/lib/hermes-client.ts:339
↓ 1 callersFunctionbuildNarrativeContext
( canonBeats: Beat[], focusBeat: Beat, { maxBriefChars = 2400 }: { maxBriefChars?: number } = {}, )
web/lib/context-builder.ts:401
↓ 1 callersFunctionbuildRootTree
(seed: string)
web/lib/demo-seed.ts:201
↓ 1 callersFunctioncache_get
(sha: str)
hermes-additions/tools/voice_clone_synthesize.py:235
↓ 1 callersFunctioncache_list
Return all cached voice records, newest-last by last_used. Used by the cleanup tool's LRU evictor.
hermes-additions/tools/voice_clone_synthesize.py:274
↓ 1 callersFunctioncache_touch
Bump last_used on cache hit so the LRU evictor preserves the most-recently-active voices.
hermes-additions/tools/voice_clone_synthesize.py:255
↓ 1 callersFunctioncanonBeatsUpTo
Walk the canon from root up to (but excluding) ``nodeId`` and return * each ancestor's {id, title, body, mood}. Feeds the narrative * context bui
web/lib/hermes-client.ts:294
↓ 1 callersFunctioncanonPath
( nodes: Map<string, StoryNode>, rootId: string, currentId?: string, )
web/lib/layout.ts:133
↓ 1 callersFunctioncanonScenes
()
web/lib/hermes-client.ts:255
↓ 1 callersFunctioncharacterSheet
Runs the character-sheet-builder skill once per story. Returns a * JSON array `[{name, description, portrait_prompt}, ...]` the client * uses to
web/app/api/hermes/route.ts:721
↓ 1 callersFunctioncheck
()
web/components/DbhBackdrop.tsx:26
↓ 1 callersFunctioncheck
()
web/components/Cursor.tsx:24
↓ 1 callersFunctionclassify
( charCounts: Map<string, Counts>, objectCounts: Map<string, Counts>, )
web/lib/context-builder.ts:216
↓ 1 callersFunctioncollectLowercaseVocab
(beats: Beat[])
web/lib/context-builder.ts:115
↓ 1 callersFunctioncomposeScenes
()
web/lib/hermes-client.ts:1915
↓ 1 callersFunctioncopyrightDetect
Runs the story-copyright-detector skill (Claude reasoning) but falls * back to the deterministic TS mirror if the gateway is slow / down. * Envelo
web/app/api/hermes/route.ts:696
↓ 1 callersFunctioncritic
(b: CriticBody, reqId: string)
web/app/api/hermes/route.ts:596
↓ 1 callersFunctiondefaultPos
()
web/components/ScenesList.tsx:38
↓ 1 callersFunctiondeleteSave
(id: string)
web/lib/save-system.ts:239
↓ 1 callersFunctiondelete_voice
Best-effort cleanup of a stored voice. Returns True on success. Errors are logged but never raised — a leftover slot is annoying but not a re
hermes-additions/tools/voice_clone_synthesize.py:378
↓ 1 callersFunctionderivePrefix
(franchise: string | null, seed: string)
web/lib/save-system.ts:380
↓ 1 callersFunctiondetectStoryPolicy
(seed: string)
web/lib/hermes-client.ts:47
↓ 1 callersFunctiondrawParticle
(p: Particle)
web/components/AmbienceLayer.tsx:179
↓ 1 callersFunctionensureDir
()
web/app/api/voice-upload/route.ts:79
↓ 1 callersFunctionensureSavesDir
()
web/app/api/storybook/route.ts:175
↓ 1 callersFunctionescapeForRegExp
(s: string)
web/lib/save-system.ts:405
↓ 1 callersFunctionescapeRe
(s: string)
web/lib/story-copyright-detector.ts:109
↓ 1 callersFunctionextractImageDataUri
(resp: unknown)
web/app/api/hermes/route.ts:987
↓ 1 callersFunctionextractStorybookUrl
* Walk a chat completion response looking for the noustiny_storybook * tool call result. Hermes's agent loop runs the tool itself, but the * SHAPE
web/app/api/storybook/route.ts:199
↓ 1 callersFunctionfallbackAmbience
Mood-based fallback for the ambience layer while the skill hasn't * shipped its body-aware ambience field yet. Conservative: many * moods default
web/components/ImageLightbox.tsx:43
↓ 1 callersFunctionfileExists
(p: string)
web/app/api/hermes/route.ts:1001
↓ 1 callersFunctionfindSaveByName
(name: string)
web/lib/save-system.ts:343
↓ 1 callersFunctionflush
()
web/lib/hermes-client.ts:651
↓ 1 callersFunctionformatDate
* Grid of saved-story cards. Mounts in two places: * - Landing page, inline section (seed picker alternative) * - Canvas MoreMenu → "Open saved"
web/components/SavedStoriesList.tsx:23
↓ 1 callersFunctionformatTime
(ts: number)
web/components/DecisionLog.tsx:56
↓ 1 callersFunctiongenerateCharacterSheet
(seed: string)
web/lib/hermes-client.ts:100
↓ 1 callersFunctionhermesClient
()
web/app/api/storybook/route.ts:37
↓ 1 callersFunctionimageCacheKey
(prompt: string, style: string, aspect: string)
web/app/api/hermes/route.ts:983
↓ 1 callersFunctionimageGen
(b: ImageGenBody, reqId: string)
web/app/api/hermes/route.ts:1159
↓ 1 callersFunctionimagePromptBatch
Batch variant — sends N beats to visual-prompt-builder in a single skill * call, expects a JSON array back in input order. Halves-plus the Claude
web/app/api/hermes/route.ts:914
↓ 1 callersFunctionimagePromptBuild
(b: ImagePromptBuildBody, reqId: string)
web/app/api/hermes/route.ts:858
↓ 1 callersFunctionjudge
(b: JudgeBody, reqId: string)
web/app/api/hermes/route.ts:635
↓ 1 callersFunctionloadPos
()
web/components/ScenesList.tsx:43
↓ 1 callersFunctionlooksLikePreamble
(s: string)
web/lib/hermes-client.ts:584
↓ 1 callersFunctionmakeId
()
web/lib/toast-store.ts:28
↓ 1 callersFunctionmakeSaveId
()
web/lib/save-system.ts:103
↓ 1 callersFunctionmirrorDeleteFromDisk
(id: string)
web/lib/save-system.ts:330
↓ 1 callersFunctionmirrorWriteToDisk
(meta: SavedStoryMeta, snapshot: StorySnapshot)
web/lib/save-system.ts:315
↓ 1 callersFunctionnarration_voice_director
Pick a narrator persona + YouTube search query for a story. Args: title: Story title (or beat title) — short, ≤120 chars typical. see
hermes-additions/tools/narration_voice_director.py:259
↓ 1 callersFunctionnormaliseBody
(body: string, lowercaseVocab: Set<string>)
web/lib/context-builder.ts:127
↓ 1 callersFunctionnowIso
()
web/app/api/hermes/route.ts:22
↓ 1 callersFunctiononClickLoad
(id: string)
web/components/SavedStoriesList.tsx:55
↓ 1 callersFunctiononFit
(scene: Scene)
web/components/ScenesList.tsx:114
↓ 1 callersFunctiononSubmit
()
web/components/SaveStoryModal.tsx:71
↓ 1 callersFunctionparseBrainstormText
Parse a natural-prose brainstorm reply. The v6 skill doesn't enforce * a format — Gemini can return any of these shapes (all valid): * * 1. LA
web/lib/hermes-client.ts:497
↓ 1 callersFunctionpathRootToNode
Walk parent pointers from `endpointId` back to the root, return * the linear path in root→endpoint order.
web/components/StorybookModal.tsx:227
↓ 1 callersFunctionplaceSubtree
(id: string, nodes: Map<string, StoryNode>, yTop: number)
web/lib/layout.ts:90
↓ 1 callersFunctionpolicyToRegister
Deterministic map from detector policy to a storyRegister string. * Mirrors the fingerprint table in visual-prompt-builder's SKILL.md so * charact
web/lib/hermes-client.ts:214
↓ 1 callersFunctionprefLabel
(p: ImagePolicy['model_preference'])
web/lib/hermes-client.ts:57
↓ 1 callersFunctionpreviewOf
(seed: string)
web/lib/save-system.ts:110
← previousnext →101–200 of 384, ranked by callers