Commit Graph
14 Commits
Author SHA1 Message Date
Denton Social bb97a09caa fix codegen timeout 2026-09-24 03:39:48 -05:00
Denton Social 300c20714b deterministically execute create_skill from create_category, execute skill after creation 2026-09-24 02:31:12 -05:00
Denton Social 9e365446a3 Drop max_tokens cap on codegen; qwen3 reasoning truncation left content empty
qwen38-iq3s reasons extensively before emitting the skill body. A max_tokens
cap truncated the hidden reasoning (finish_reason: length) leaving content
empty, so the body write failed with 'skill body is empty'. Omit max_tokens
so the model runs to completion (~7 min); reasoning is filtered automatically
since only content is read. Client timeout default raised to 1200s.
2026-09-24 01:20:18 -05:00
Denton Social 440e49e76e Author runnable skill bodies via OpenAI-compatible codegen model
create_skill now writes a real predict/act body: the small decision model
still authors title + description (engine.generate), then a larger
OpenAI-compatible model (default qwen38-iq3s) writes the runnable code
against the SKILL.md contract. Bodies persist to data/skills/<cat>/<name>.py,
are hot-loaded via importlib, merged into the running tree, and the request
re-dispatches to the new leaf. The dashboard decision-flow view shows the
title/description with a writing badge while the body is being written.
Codegen failure degrades to a navigable stub.
2026-09-24 00:36:35 -05:00
Denton Social 789ed4ae25 Allow dotted skill titles (category.skill) in create_skill drafts
The model follows the repo's existing dotted naming (email.compose,
tracking.check) and proposed titles like tracking.status_lookup, which the
strict alnum-only check rejected. Accept dotted snake_case names.
2026-09-23 23:45:52 -05:00
Denton Social e68c56dca4 Fix create_skill wedge: short-circuit single-option navigation, never leave scheduler busy
An empty category produced a one-option SemIf leaf decision; the backend rejects
<2 options, the ValueError unwound past the current-process reset, and every
later request queued forever behind a phantom current. Navigation now
short-circuits empty trees/categories straight to the create branch (no SemIf
decision when there's nothing to choose), and the scheduler clears its current
process even when dispatch raises. Authoring generation is capped at 128 tokens.
2026-09-23 23:41:38 -05:00
Denton Social 225b4df959 Make create_skill author a skill leaf stub like create_category 2026-09-23 23:02:59 -05:00
Denton Social f5419183bc Encode generation prompt via tokenizer.encode (apply_chat_template returns Encodings) 2026-09-23 22:36:08 -05:00
Denton Social fcefb971f8 Fix SemIfEngine.generate: sample from the low-level llama.cpp backend 2026-09-23 22:32:48 -05:00
Denton Social ea2e5b8045 Automate create_category via normal-mode generation of the decision model 2026-09-23 20:45:28 -05:00
Denton Social 147b6cba5f Replace create_skill branches with category/skill suggestion events
Navigation now offers create_category at the category level and create_skill
at the leaf. Both are stubs that log a suggestion event (state, question,
SemIf output) to the trace instead of returning an authoring sentinel.
2026-09-23 18:24:13 -05:00
Denton Social 98d6e09730 Make dashboard host configurable (LAN reachable via dashboard.host / --host) 2026-09-23 14:36:15 -05:00
Denton Social 0db41241be Add browser dashboard, run tracing, and logged navigation decisions
- dashboard.py: stdlib http.server + JSON API (tree/trace/dream/status,
  POST submit/relabel); static/ single-page Redux-DevTools-style inspector
- trace.py: runs.jsonl lifecycle events keyed by run_id
- scheduler/skills/skill: every decision carries run_id; navigation choices
  now logged (navigate:category/leaf); requeues stamp meta.parent_run
- cli: 'dashboard' subcommand; config.json untracked per-machine (see
  config.example.json)
2026-09-23 13:43:39 -05:00
semif-agent 4e0e0534c4 Add basic version: SemIf decision engine, urgency queue, skill tree, skill loop, decision log, dream pass, CLI 2026-09-23 03:01:45 -05:00