redefine targeting: 'set' (aliases sticky/switch) is the persistent sticky default (~/.claude-active); 'target <name> <command>' is a one-shot override that routes a single command without changing the sticky default. add 'unset' and 'list'. resolution moves to a single target.resolve(one_shot) implementing the order: one-shot -> sticky-if-exists -> only-session auto -> ambiguous/none do nothing (never falls through, never injects into a missing session). grammar.parse now returns ParsedCommand(one_shot, action) and skips optional leading filler words (config behavior.filler_words: select/use/choose), with a filler-before-digit still meaning the select command. CLI gains set/unset/list (switch kept as a set alias). daemon console shows the targeting reason per line. docs updated; no stale 'target = sticky' wording remains. bump to 0.1.1. Signed-off-by: disqualifier <dev@disqualifier.me>
31 lines
653 B
TOML
31 lines
653 B
TOML
[build-system]
|
|
requires = ["setuptools>=61"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "claudedo"
|
|
version = "0.1.1"
|
|
description = "voice-control daemon for claude code (local STT -> tmux send-keys)"
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
license = { text = "Proprietary" }
|
|
authors = [{ name = "dsql" }]
|
|
dependencies = [
|
|
"sounddevice>=0.4.6",
|
|
"numpy>=1.24",
|
|
"faster-whisper>=1.0.0",
|
|
"tomli>=2.0; python_version < '3.11'",
|
|
]
|
|
|
|
[project.scripts]
|
|
claudedo = "claudedo.__main__:main"
|
|
|
|
[tool.setuptools]
|
|
package-dir = { "" = "src" }
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.flake8]
|
|
max-line-length = 120
|