sisyphi 1.1.18 → 1.1.23
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/README.md +195 -75
- package/deploy/aws/main.tf +121 -0
- package/deploy/aws/outputs.tf +18 -0
- package/deploy/aws/variables.tf +69 -0
- package/deploy/aws/versions.tf +16 -0
- package/deploy/hetzner/.terraform.lock.hcl +23 -0
- package/deploy/hetzner/main.tf +69 -0
- package/deploy/hetzner/outputs.tf +18 -0
- package/deploy/hetzner/variables.tf +57 -0
- package/deploy/hetzner/versions.tf +15 -0
- package/deploy/shared/bin/pbcopy-shim +5 -0
- package/deploy/shared/bin/pbpaste-shim +4 -0
- package/deploy/shared/cloud-init.yaml.tpl +119 -0
- package/deploy/shared/sisyphusd.service.tpl +17 -0
- package/deploy/shared/tmux-osc52.conf +10 -0
- package/dist/cli.js +8406 -1522
- package/dist/cli.js.map +1 -1
- package/dist/daemon.js +7137 -1398
- package/dist/daemon.js.map +1 -1
- package/dist/deploy/aws/main.tf +121 -0
- package/dist/deploy/aws/outputs.tf +18 -0
- package/dist/deploy/aws/variables.tf +69 -0
- package/dist/deploy/aws/versions.tf +16 -0
- package/dist/deploy/hetzner/.terraform.lock.hcl +23 -0
- package/dist/deploy/hetzner/main.tf +69 -0
- package/dist/deploy/hetzner/outputs.tf +18 -0
- package/dist/deploy/hetzner/variables.tf +57 -0
- package/dist/deploy/hetzner/versions.tf +15 -0
- package/dist/deploy/shared/bin/pbcopy-shim +5 -0
- package/dist/deploy/shared/bin/pbpaste-shim +4 -0
- package/dist/deploy/shared/cloud-init.yaml.tpl +119 -0
- package/dist/deploy/shared/sisyphusd.service.tpl +17 -0
- package/dist/deploy/shared/tmux-osc52.conf +10 -0
- package/dist/templates/CLAUDE.md +1 -56
- package/dist/templates/agent-plugin/agents/CLAUDE.md +2 -65
- package/dist/templates/agent-plugin/agents/debug.md +43 -6
- package/dist/templates/agent-plugin/agents/debug.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/explore.md +28 -1
- package/dist/templates/agent-plugin/agents/explore.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/implementor.md +94 -0
- package/dist/templates/agent-plugin/agents/implementor.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/operator.md +43 -1
- package/dist/templates/agent-plugin/agents/operator.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/plan/sub-planner.md +75 -0
- package/dist/templates/agent-plugin/agents/plan.md +176 -86
- package/dist/templates/agent-plugin/agents/plan.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/problem/adversarial.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/contrarian.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/first-principles.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/precedent.md +25 -0
- package/dist/templates/agent-plugin/agents/problem/simplifier.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/systems-thinker.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/time-traveler.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/user-empathy.md +26 -0
- package/dist/templates/agent-plugin/agents/problem.md +334 -79
- package/dist/templates/agent-plugin/agents/problem.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/research-lead/CLAUDE.md +26 -0
- package/dist/templates/agent-plugin/agents/research-lead/critic.md +61 -0
- package/dist/templates/agent-plugin/agents/research-lead/researcher.md +60 -0
- package/dist/templates/agent-plugin/agents/research-lead.md +184 -0
- package/dist/templates/agent-plugin/agents/research-lead.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/review/CLAUDE.md +3 -29
- package/dist/templates/agent-plugin/agents/review/compliance.md +14 -3
- package/dist/templates/agent-plugin/agents/review/efficiency.md +15 -4
- package/dist/templates/agent-plugin/agents/review/quality.md +20 -6
- package/dist/templates/agent-plugin/agents/review/reuse.md +17 -5
- package/dist/templates/agent-plugin/agents/review/security.md +10 -3
- package/dist/templates/agent-plugin/agents/review/tests.md +58 -0
- package/dist/templates/agent-plugin/agents/review-plan/CLAUDE.md +28 -0
- package/dist/templates/agent-plugin/agents/review-plan/code-smells.md +4 -2
- package/dist/templates/agent-plugin/agents/review-plan/pattern-consistency.md +4 -2
- package/dist/templates/agent-plugin/agents/review-plan/requirements-coverage.md +3 -1
- package/dist/templates/agent-plugin/agents/review-plan/security.md +5 -2
- package/dist/templates/agent-plugin/agents/review-plan.md +52 -5
- package/dist/templates/agent-plugin/agents/review-plan.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/review.md +89 -16
- package/dist/templates/agent-plugin/agents/review.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/spec/engineer.md +175 -0
- package/dist/templates/agent-plugin/agents/spec/requirements-writer.md +149 -0
- package/dist/templates/agent-plugin/agents/spec.md +444 -0
- package/dist/templates/agent-plugin/agents/spec.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/test-spec.md +58 -2
- package/dist/templates/agent-plugin/agents/test-spec.settings.json +57 -0
- package/dist/templates/agent-plugin/hooks/CLAUDE.md +9 -57
- package/dist/templates/agent-plugin/hooks/ask-background-guard.sh +57 -0
- package/dist/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
- package/dist/templates/agent-plugin/hooks/plan-user-prompt.sh +8 -7
- package/dist/templates/agent-plugin/hooks/plan-validate.sh +97 -0
- package/dist/templates/agent-plugin/hooks/plan-write-path.sh +55 -0
- package/dist/templates/agent-plugin/hooks/problem-user-prompt.sh +26 -0
- package/dist/templates/agent-plugin/hooks/register-bg-task.sh +37 -0
- package/dist/templates/agent-plugin/hooks/require-submit.sh +51 -42
- package/dist/templates/agent-plugin/hooks/review-user-prompt.sh +6 -2
- package/dist/templates/agent-plugin/hooks/spec-user-prompt.sh +43 -0
- package/dist/templates/agent-plugin/skills/humanloop/SKILL.md +147 -0
- package/dist/templates/agent-plugin/skills/perspective-fanout/SKILL.md +115 -0
- package/dist/templates/agent-plugin/skills/problem-document/SKILL.md +105 -0
- package/dist/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +83 -0
- package/dist/templates/agent-suffix.md +7 -4
- package/dist/templates/baleia.lua +42 -0
- package/dist/templates/companion-plugin/hooks/user-prompt-context.sh +1 -1
- package/dist/templates/dashboard-claude.md +7 -3
- package/dist/templates/orchestrator-base.md +89 -52
- package/dist/templates/orchestrator-completion.md +47 -24
- package/dist/templates/orchestrator-discovery.md +183 -0
- package/dist/templates/orchestrator-impl.md +47 -18
- package/dist/templates/orchestrator-planning.md +109 -20
- package/dist/templates/orchestrator-plugin/commands/sisyphus/scratch.md +19 -0
- package/dist/templates/orchestrator-plugin/commands/sisyphus/spec.md +11 -0
- package/dist/templates/orchestrator-plugin/commands/sisyphus/strategize.md +5 -5
- package/dist/templates/orchestrator-plugin/hooks/hooks.json +0 -10
- package/dist/templates/orchestrator-plugin/skills/humanloop/SKILL.md +149 -0
- package/dist/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +1 -0
- package/dist/templates/orchestrator-plugin/skills/orchestration/SKILL.md +2 -1
- package/dist/templates/orchestrator-plugin/skills/orchestration/strategy.md +160 -0
- package/dist/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +26 -28
- package/dist/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +133 -25
- package/dist/templates/orchestrator-settings.json +55 -0
- package/dist/templates/orchestrator-validation.md +17 -14
- package/dist/templates/sisyphus-init.lua +30 -0
- package/dist/templates/sisyphus-tmux-plugin/hooks/hooks.json +54 -0
- package/dist/templates/sisyphus-tmux-plugin/hooks/tmux-state.sh +19 -0
- package/dist/templates/termrender-haiku-system.md +82 -0
- package/dist/templates/whip-animation.sh +345 -0
- package/dist/tui.js +6711 -2928
- package/dist/tui.js.map +1 -1
- package/native/SisyphusNotify/main.swift +15 -5
- package/native/build-notify.sh +23 -0
- package/package.json +11 -8
- package/templates/CLAUDE.md +1 -56
- package/templates/agent-plugin/agents/CLAUDE.md +2 -65
- package/templates/agent-plugin/agents/debug.md +43 -6
- package/templates/agent-plugin/agents/debug.settings.json +57 -0
- package/templates/agent-plugin/agents/explore.md +28 -1
- package/templates/agent-plugin/agents/explore.settings.json +57 -0
- package/templates/agent-plugin/agents/implementor.md +94 -0
- package/templates/agent-plugin/agents/implementor.settings.json +57 -0
- package/templates/agent-plugin/agents/operator.md +43 -1
- package/templates/agent-plugin/agents/operator.settings.json +57 -0
- package/templates/agent-plugin/agents/plan/sub-planner.md +75 -0
- package/templates/agent-plugin/agents/plan.md +176 -86
- package/templates/agent-plugin/agents/plan.settings.json +57 -0
- package/templates/agent-plugin/agents/problem/adversarial.md +26 -0
- package/templates/agent-plugin/agents/problem/contrarian.md +26 -0
- package/templates/agent-plugin/agents/problem/first-principles.md +26 -0
- package/templates/agent-plugin/agents/problem/precedent.md +25 -0
- package/templates/agent-plugin/agents/problem/simplifier.md +26 -0
- package/templates/agent-plugin/agents/problem/systems-thinker.md +26 -0
- package/templates/agent-plugin/agents/problem/time-traveler.md +26 -0
- package/templates/agent-plugin/agents/problem/user-empathy.md +26 -0
- package/templates/agent-plugin/agents/problem.md +334 -79
- package/templates/agent-plugin/agents/problem.settings.json +57 -0
- package/templates/agent-plugin/agents/research-lead/CLAUDE.md +26 -0
- package/templates/agent-plugin/agents/research-lead/critic.md +61 -0
- package/templates/agent-plugin/agents/research-lead/researcher.md +60 -0
- package/templates/agent-plugin/agents/research-lead.md +184 -0
- package/templates/agent-plugin/agents/research-lead.settings.json +57 -0
- package/templates/agent-plugin/agents/review/CLAUDE.md +3 -29
- package/templates/agent-plugin/agents/review/compliance.md +14 -3
- package/templates/agent-plugin/agents/review/efficiency.md +15 -4
- package/templates/agent-plugin/agents/review/quality.md +20 -6
- package/templates/agent-plugin/agents/review/reuse.md +17 -5
- package/templates/agent-plugin/agents/review/security.md +10 -3
- package/templates/agent-plugin/agents/review/tests.md +58 -0
- package/templates/agent-plugin/agents/review-plan/CLAUDE.md +28 -0
- package/templates/agent-plugin/agents/review-plan/code-smells.md +4 -2
- package/templates/agent-plugin/agents/review-plan/pattern-consistency.md +4 -2
- package/templates/agent-plugin/agents/review-plan/requirements-coverage.md +3 -1
- package/templates/agent-plugin/agents/review-plan/security.md +5 -2
- package/templates/agent-plugin/agents/review-plan.md +52 -5
- package/templates/agent-plugin/agents/review-plan.settings.json +57 -0
- package/templates/agent-plugin/agents/review.md +89 -16
- package/templates/agent-plugin/agents/review.settings.json +57 -0
- package/templates/agent-plugin/agents/spec/engineer.md +175 -0
- package/templates/agent-plugin/agents/spec/requirements-writer.md +149 -0
- package/templates/agent-plugin/agents/spec.md +444 -0
- package/templates/agent-plugin/agents/spec.settings.json +57 -0
- package/templates/agent-plugin/agents/test-spec.md +58 -2
- package/templates/agent-plugin/agents/test-spec.settings.json +57 -0
- package/templates/agent-plugin/hooks/CLAUDE.md +9 -57
- package/templates/agent-plugin/hooks/ask-background-guard.sh +57 -0
- package/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
- package/templates/agent-plugin/hooks/plan-user-prompt.sh +8 -7
- package/templates/agent-plugin/hooks/plan-validate.sh +97 -0
- package/templates/agent-plugin/hooks/plan-write-path.sh +55 -0
- package/templates/agent-plugin/hooks/problem-user-prompt.sh +26 -0
- package/templates/agent-plugin/hooks/register-bg-task.sh +37 -0
- package/templates/agent-plugin/hooks/require-submit.sh +51 -42
- package/templates/agent-plugin/hooks/review-user-prompt.sh +6 -2
- package/templates/agent-plugin/hooks/spec-user-prompt.sh +43 -0
- package/templates/agent-plugin/skills/humanloop/SKILL.md +147 -0
- package/templates/agent-plugin/skills/perspective-fanout/SKILL.md +115 -0
- package/templates/agent-plugin/skills/problem-document/SKILL.md +105 -0
- package/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +83 -0
- package/templates/agent-suffix.md +7 -4
- package/templates/baleia.lua +42 -0
- package/templates/companion-plugin/hooks/user-prompt-context.sh +1 -1
- package/templates/dashboard-claude.md +7 -3
- package/templates/orchestrator-base.md +89 -52
- package/templates/orchestrator-completion.md +47 -24
- package/templates/orchestrator-discovery.md +183 -0
- package/templates/orchestrator-impl.md +47 -18
- package/templates/orchestrator-planning.md +109 -20
- package/templates/orchestrator-plugin/commands/sisyphus/scratch.md +19 -0
- package/templates/orchestrator-plugin/commands/sisyphus/spec.md +11 -0
- package/templates/orchestrator-plugin/commands/sisyphus/strategize.md +5 -5
- package/templates/orchestrator-plugin/hooks/hooks.json +0 -10
- package/templates/orchestrator-plugin/skills/humanloop/SKILL.md +149 -0
- package/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +1 -0
- package/templates/orchestrator-plugin/skills/orchestration/SKILL.md +2 -1
- package/templates/orchestrator-plugin/skills/orchestration/strategy.md +160 -0
- package/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +26 -28
- package/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +133 -25
- package/templates/orchestrator-settings.json +55 -0
- package/templates/orchestrator-validation.md +17 -14
- package/templates/sisyphus-init.lua +30 -0
- package/templates/sisyphus-tmux-plugin/hooks/hooks.json +54 -0
- package/templates/sisyphus-tmux-plugin/hooks/tmux-state.sh +19 -0
- package/templates/termrender-haiku-system.md +82 -0
- package/templates/whip-animation.sh +345 -0
- package/dist/chunk-22ZGZTGY.js +0 -67
- package/dist/chunk-22ZGZTGY.js.map +0 -1
- package/dist/chunk-6PJVJEYQ.js +0 -46
- package/dist/chunk-6PJVJEYQ.js.map +0 -1
- package/dist/chunk-C2XKXERJ.js +0 -1052
- package/dist/chunk-C2XKXERJ.js.map +0 -1
- package/dist/chunk-TMBAVPHH.js +0 -129
- package/dist/chunk-TMBAVPHH.js.map +0 -1
- package/dist/chunk-V36NXMHP.js +0 -299
- package/dist/chunk-V36NXMHP.js.map +0 -1
- package/dist/paths-XRDEEJ5R.js +0 -66
- package/dist/paths-XRDEEJ5R.js.map +0 -1
- package/dist/templates/agent-plugin/agents/design.md +0 -134
- package/dist/templates/agent-plugin/agents/requirements.md +0 -138
- package/dist/templates/begin.md +0 -22
- package/dist/templates/nvim-tutorial.txt +0 -68
- package/dist/templates/orchestrator-plugin/commands/sisyphus/design.md +0 -13
- package/dist/templates/orchestrator-plugin/commands/sisyphus/requirements.md +0 -13
- package/dist/templates/orchestrator-plugin/hooks/idle-notify.sh +0 -71
- package/dist/templates/orchestrator-strategy.md +0 -238
- package/templates/agent-plugin/agents/design.md +0 -134
- package/templates/agent-plugin/agents/requirements.md +0 -138
- package/templates/begin.md +0 -22
- package/templates/nvim-tutorial.txt +0 -68
- package/templates/orchestrator-plugin/commands/sisyphus/design.md +0 -13
- package/templates/orchestrator-plugin/commands/sisyphus/requirements.md +0 -13
- package/templates/orchestrator-plugin/hooks/idle-notify.sh +0 -71
- package/templates/orchestrator-strategy.md +0 -238
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
-- ~/.config/sisyphus/init.lua
|
|
2
|
+
-- Loaded only when nvim is invoked as `NVIM_APPNAME=sisyphus nvim ...` (compose popup).
|
|
3
|
+
|
|
4
|
+
vim.opt.swapfile = false
|
|
5
|
+
vim.opt.backup = false
|
|
6
|
+
vim.opt.writebackup = false
|
|
7
|
+
vim.opt.undofile = false
|
|
8
|
+
vim.opt.signcolumn = 'no'
|
|
9
|
+
vim.opt.number = false
|
|
10
|
+
vim.opt.relativenumber = false
|
|
11
|
+
vim.opt.wrap = true
|
|
12
|
+
vim.opt.linebreak = true
|
|
13
|
+
|
|
14
|
+
-- Force markdown filetype (compose temp files are .md)
|
|
15
|
+
vim.api.nvim_create_autocmd({ 'BufNewFile', 'BufRead' }, {
|
|
16
|
+
pattern = '*',
|
|
17
|
+
callback = function() vim.bo.filetype = 'markdown' end,
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
-- Enter insert mode automatically when the buffer opens.
|
|
21
|
+
vim.api.nvim_create_autocmd({ 'BufWinEnter' }, {
|
|
22
|
+
pattern = '*',
|
|
23
|
+
callback = function() vim.cmd('startinsert') end,
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
-- :w autosaves and quits. :q without :w cancels.
|
|
27
|
+
vim.api.nvim_create_autocmd('BufWritePost', {
|
|
28
|
+
pattern = '*',
|
|
29
|
+
callback = function() vim.cmd('quit!') end,
|
|
30
|
+
})
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"SessionStart": [
|
|
4
|
+
{
|
|
5
|
+
"hooks": [
|
|
6
|
+
{
|
|
7
|
+
"type": "command",
|
|
8
|
+
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/tmux-state.sh idle"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"UserPromptSubmit": [
|
|
14
|
+
{
|
|
15
|
+
"hooks": [
|
|
16
|
+
{
|
|
17
|
+
"type": "command",
|
|
18
|
+
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/tmux-state.sh processing"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"Stop": [
|
|
24
|
+
{
|
|
25
|
+
"hooks": [
|
|
26
|
+
{
|
|
27
|
+
"type": "command",
|
|
28
|
+
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/tmux-state.sh stopped"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"SubagentStop": [
|
|
34
|
+
{
|
|
35
|
+
"hooks": [
|
|
36
|
+
{
|
|
37
|
+
"type": "command",
|
|
38
|
+
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/tmux-state.sh stopped"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"SessionEnd": [
|
|
44
|
+
{
|
|
45
|
+
"hooks": [
|
|
46
|
+
{
|
|
47
|
+
"type": "command",
|
|
48
|
+
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/tmux-state.sh cleanup"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Writes Claude session state to /tmp/claude-tmux-state/<pane_id>
|
|
3
|
+
# Usage: tmux-state.sh <idle|processing|stopped|cleanup>
|
|
4
|
+
|
|
5
|
+
pane_id="${TMUX_PANE}"
|
|
6
|
+
[ -z "$pane_id" ] && exit 0
|
|
7
|
+
|
|
8
|
+
STATE_DIR="/tmp/claude-tmux-state"
|
|
9
|
+
pane_file="${STATE_DIR}/${pane_id#%}"
|
|
10
|
+
|
|
11
|
+
case "$1" in
|
|
12
|
+
idle|processing|stopped)
|
|
13
|
+
mkdir -p "$STATE_DIR"
|
|
14
|
+
echo "$1" > "$pane_file"
|
|
15
|
+
;;
|
|
16
|
+
cleanup)
|
|
17
|
+
rm -f "$pane_file"
|
|
18
|
+
;;
|
|
19
|
+
esac
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Role
|
|
2
|
+
|
|
3
|
+
You generate dense, terminal-width termrender visuals for sisyphus ask questions.
|
|
4
|
+
Your output is exactly one `attach_visual` call with the final markdown.
|
|
5
|
+
Read code or files via `read_file` if needed. Do not speculate about file contents.
|
|
6
|
+
|
|
7
|
+
# Tools
|
|
8
|
+
|
|
9
|
+
**read_file** — `read_file({ path: "relative/path/to/file.ts" })`
|
|
10
|
+
|
|
11
|
+
- Path relative to session cwd. Absolute paths and symlinks rejected.
|
|
12
|
+
- Reads >50 KB truncated with `…[truncated]` marker.
|
|
13
|
+
- Read 0–3 files at most.
|
|
14
|
+
|
|
15
|
+
**attach_visual** — `attach_visual({ content: "<termrender markdown>" })`
|
|
16
|
+
|
|
17
|
+
- Call exactly once with your final markdown.
|
|
18
|
+
- Validated via `termrender --check` before writing — a failed check costs a turn.
|
|
19
|
+
- Do not call it until content is fully composed.
|
|
20
|
+
|
|
21
|
+
# Termrender Directive Reference
|
|
22
|
+
|
|
23
|
+
Each directive opens with `:::name{attrs}` and closes with `:::` (matching colon count).
|
|
24
|
+
|
|
25
|
+
## Panels
|
|
26
|
+
|
|
27
|
+
Open: `:::panel{title="Section Title" color="cyan"}`
|
|
28
|
+
Close: `:::`
|
|
29
|
+
|
|
30
|
+
Colors: `red` `green` `yellow` `blue` `magenta` `cyan` `white` `gray`
|
|
31
|
+
|
|
32
|
+
Content inside panels supports full markdown: **bold**, *italic*, `code`, tables, headings.
|
|
33
|
+
|
|
34
|
+
## Columns
|
|
35
|
+
|
|
36
|
+
Open: `:::columns`, each column: `:::col{width="50%"}`, close each col with `:::`, close columns with `:::`
|
|
37
|
+
|
|
38
|
+
Columns are side-by-side. Widths should sum to ~100%.
|
|
39
|
+
|
|
40
|
+
## Tree Views
|
|
41
|
+
|
|
42
|
+
Open: `:::tree`, list paths with indentation, close with `:::`
|
|
43
|
+
|
|
44
|
+
Use for directory structures, call hierarchies, dependency trees.
|
|
45
|
+
|
|
46
|
+
## Mermaid Diagrams
|
|
47
|
+
|
|
48
|
+
Open: `:::mermaid`, write graph/sequence/state DSL, close with `:::`
|
|
49
|
+
|
|
50
|
+
Renders as ASCII art. Good for flows, decision trees, state machines.
|
|
51
|
+
|
|
52
|
+
Graph example: `graph TD` then `A[Label] --> B{Decision}` then `B -->|yes| C[Action]`
|
|
53
|
+
|
|
54
|
+
## Inline Formatting
|
|
55
|
+
|
|
56
|
+
- `**bold**` — primary emphasis
|
|
57
|
+
- `*italic*` — secondary
|
|
58
|
+
- `` `code` `` — symbols, filenames, types
|
|
59
|
+
- `# H1` / `## H2` / `### H3` — headings
|
|
60
|
+
- `| col | col |` with `|---|---|` row — tables
|
|
61
|
+
- Cite file locations as `path/to/file.ts:42`
|
|
62
|
+
|
|
63
|
+
# Tone
|
|
64
|
+
|
|
65
|
+
- Terminal-width. Dense. Every line earns its place.
|
|
66
|
+
- Prefer structure (panels, columns, tables, trees) over prose paragraphs.
|
|
67
|
+
- No emojis unless the question explicitly requires visual symbols.
|
|
68
|
+
- Labels should be terse: "Input" not "The input to the function".
|
|
69
|
+
|
|
70
|
+
# Process
|
|
71
|
+
|
|
72
|
+
1. Read 0–3 files if the question references specific code or paths.
|
|
73
|
+
2. Compose the visual in one pass: panels for sections, columns for comparisons, tables for options.
|
|
74
|
+
3. Call `attach_visual` once with the complete markdown.
|
|
75
|
+
|
|
76
|
+
# Failure Mode
|
|
77
|
+
|
|
78
|
+
If a useful visual is not possible (no relevant files, ambiguous question), call `attach_visual` with:
|
|
79
|
+
|
|
80
|
+
`:::panel{title="Visual Unavailable" color="yellow"}` + one-sentence reason + `:::`
|
|
81
|
+
|
|
82
|
+
Do not loop trying to fabricate content.
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Generated from scripts/whip-frames.json. Edit the JSON, not this file.
|
|
3
|
+
# Whip crack animation — generated from whip-frames.json.
|
|
4
|
+
# Edit JSON waypoints, regenerate with:
|
|
5
|
+
# python3 scripts/whip-render.py scripts/whip-frames.json --emit bash -o scripts/test-whip-animation.sh
|
|
6
|
+
#
|
|
7
|
+
# Convention: ALL frames use 0.04s. Speed encoded as distance per frame.
|
|
8
|
+
#
|
|
9
|
+
# Arm is shoulder → elbow → hand (two explicit segments). Specify elbow per
|
|
10
|
+
# frame for direct artistic control — IK is a fallback only.
|
|
11
|
+
|
|
12
|
+
HEIGHT=12
|
|
13
|
+
|
|
14
|
+
printf '\033[?25l'
|
|
15
|
+
trap 'printf "\033[?25h"' EXIT
|
|
16
|
+
|
|
17
|
+
frame() {
|
|
18
|
+
printf '\033[2J\033[H'
|
|
19
|
+
local row=1
|
|
20
|
+
for line in "$@"; do
|
|
21
|
+
printf '\033[%d;1H%s' "$row" "$line"
|
|
22
|
+
(( row++ ))
|
|
23
|
+
done
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
# F01 REST — hold
|
|
27
|
+
frame \
|
|
28
|
+
"" \
|
|
29
|
+
"" \
|
|
30
|
+
"" \
|
|
31
|
+
"" \
|
|
32
|
+
"" \
|
|
33
|
+
"" \
|
|
34
|
+
"" \
|
|
35
|
+
"[1m⡄[22m" \
|
|
36
|
+
"[1m⠃[22m" \
|
|
37
|
+
"[1m⢀[22m[1m⡠[22m/⢤⡀" \
|
|
38
|
+
"[1m⠋[22m ⠑⠦⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠄" \
|
|
39
|
+
""
|
|
40
|
+
sleep 0.04
|
|
41
|
+
|
|
42
|
+
# F02 PULL — near-end of whip lifts
|
|
43
|
+
frame \
|
|
44
|
+
"" \
|
|
45
|
+
"" \
|
|
46
|
+
"" \
|
|
47
|
+
"" \
|
|
48
|
+
"" \
|
|
49
|
+
"" \
|
|
50
|
+
"" \
|
|
51
|
+
"[1m⡄[22m" \
|
|
52
|
+
"[1m⠃[22m" \
|
|
53
|
+
"[1m⢀[22m[1m⡠[22m/⠔⠒⠦⠤⣄⣀" \
|
|
54
|
+
"[1m⠋[22m ⠈⠉⠓⠒⠦⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠄" \
|
|
55
|
+
""
|
|
56
|
+
sleep 0.04
|
|
57
|
+
|
|
58
|
+
# F03 PULL — hand rises 1
|
|
59
|
+
frame \
|
|
60
|
+
"" \
|
|
61
|
+
"" \
|
|
62
|
+
"" \
|
|
63
|
+
"" \
|
|
64
|
+
"" \
|
|
65
|
+
"" \
|
|
66
|
+
"" \
|
|
67
|
+
"[1m⣦[22m" \
|
|
68
|
+
"[1m⡟[22m[1m⢀[22m/⠔⠒⠦⠤⣄⣀⡀" \
|
|
69
|
+
"[1m⣧[22m[1m⠎[22m ⠉⠙⠒⠦⠤⣄⣀" \
|
|
70
|
+
"[1m⠏[22m ⠉⠙⠒⠒⠦⠤⠤⠤⠤⠤⠤⠤⠄" \
|
|
71
|
+
""
|
|
72
|
+
sleep 0.04
|
|
73
|
+
|
|
74
|
+
# F04 PULL — whip midbody lifting
|
|
75
|
+
frame \
|
|
76
|
+
"" \
|
|
77
|
+
"" \
|
|
78
|
+
"" \
|
|
79
|
+
"" \
|
|
80
|
+
"" \
|
|
81
|
+
"" \
|
|
82
|
+
"" \
|
|
83
|
+
"[1m⣦[22m ⡤⠤⠤⢤⣀⡀" \
|
|
84
|
+
"[1m⡟[22m[1m⢀[22m/⠜ ⠉⠙⠒⠦⠤⢄⣀⡀" \
|
|
85
|
+
"[1m⣧[22m[1m⠎[22m ⠉⠉⠑⠒⠦⠤⢄⣀⡀" \
|
|
86
|
+
"[1m⠏[22m ⠈⠉⠑⠒⠆" \
|
|
87
|
+
""
|
|
88
|
+
sleep 0.04
|
|
89
|
+
|
|
90
|
+
# F05 PULL — hand row 7
|
|
91
|
+
frame \
|
|
92
|
+
"" \
|
|
93
|
+
"" \
|
|
94
|
+
"" \
|
|
95
|
+
"" \
|
|
96
|
+
"" \
|
|
97
|
+
"" \
|
|
98
|
+
" ⡤⠤⠤⠤⣄⣀" \
|
|
99
|
+
"[1m⣴[22m[1m⢰[22m/⠜ ⠈⠉⠓⠦⢤⣀" \
|
|
100
|
+
"[1m⢿[22m[1m⣼[22m[1m⡇[22m ⠈⠑⠦⣄⡀" \
|
|
101
|
+
"[1m⢸[22m[1m⣿[22m[1m⠃[22m ⠉⠓⠦⠤⣀⣀" \
|
|
102
|
+
"[1m⢸[22m[1m⣿[22m ⠈⠉⠉⠓⠒⠆" \
|
|
103
|
+
" [1m⠛[22m"
|
|
104
|
+
sleep 0.04
|
|
105
|
+
|
|
106
|
+
# F06 PULL — hand row 6
|
|
107
|
+
frame \
|
|
108
|
+
"" \
|
|
109
|
+
"" \
|
|
110
|
+
"" \
|
|
111
|
+
"" \
|
|
112
|
+
"" \
|
|
113
|
+
" ⡤⠤⠤⠤⣄⣀" \
|
|
114
|
+
" [1m⠠[22m/⠜ ⠈⠉⠓⠦⢤⣀" \
|
|
115
|
+
"[1m⢤[22m [1m⣿[22m ⠈⠙⠲⢤⡀" \
|
|
116
|
+
" [1m⢣[22m[1m⢻[22m[1m⡆[22m ⠈⠑⠦⢄⡀" \
|
|
117
|
+
" [1m⢻[22m[1m⡇[22m ⠈⠑⠢⢄⡀" \
|
|
118
|
+
" [1m⠈[22m[1m⠛[22m ⠈⠑⠆" \
|
|
119
|
+
""
|
|
120
|
+
sleep 0.04
|
|
121
|
+
|
|
122
|
+
# F07 PULL — hand row 5
|
|
123
|
+
frame \
|
|
124
|
+
"" \
|
|
125
|
+
"" \
|
|
126
|
+
"" \
|
|
127
|
+
"" \
|
|
128
|
+
" ⡤⠤⠤⠤⣄⣀" \
|
|
129
|
+
" /⠜ ⠈⠉⠓⠦⢤⣀" \
|
|
130
|
+
" [1m⢸[22m[1m⡀[22m ⠈⠙⠲⢤⡀" \
|
|
131
|
+
"[1m⠤[22m[1m⣄[22m [1m⢇[22m ⠈⠑⠦⢄⡀" \
|
|
132
|
+
" [1m⠈[22m[1m⠓[22m[1m⢼[22m[1m⡄[22m ⠈⠑⠢⢄⡀" \
|
|
133
|
+
" ⠈⠑⠆" \
|
|
134
|
+
"" \
|
|
135
|
+
""
|
|
136
|
+
sleep 0.04
|
|
137
|
+
|
|
138
|
+
# F08 PULL — hand holds, whip rising
|
|
139
|
+
frame \
|
|
140
|
+
"" \
|
|
141
|
+
"" \
|
|
142
|
+
"" \
|
|
143
|
+
" ⣀⡠⠤⠤⠤⠤⠤⠤⣄⣀" \
|
|
144
|
+
" ⣠⠔⠚⠉ ⠈⠉⠓⠦⢤⣀" \
|
|
145
|
+
" /⠜⠁ ⠈⠙⠦⣀" \
|
|
146
|
+
" [1m⢸[22m[1m⡀[22m ⠈⢧" \
|
|
147
|
+
"[1m⠤[22m[1m⣄[22m [1m⢇[22m ⡇" \
|
|
148
|
+
" [1m⠈[22m[1m⠓[22m[1m⢼[22m[1m⡄[22m ⡇" \
|
|
149
|
+
" ⠇" \
|
|
150
|
+
"" \
|
|
151
|
+
""
|
|
152
|
+
sleep 0.04
|
|
153
|
+
|
|
154
|
+
# F09 WINDUP — whip arcing up over
|
|
155
|
+
frame \
|
|
156
|
+
"" \
|
|
157
|
+
" ⢀⣠⠤⠤⠤⠤⠤⣄⣀" \
|
|
158
|
+
" ⣠⠔⠊⠁ ⠈⠙⠦⣄" \
|
|
159
|
+
" ⢀⡴⠋ ⠈⢳⡀" \
|
|
160
|
+
" ⣠⠔⠋ ⢧" \
|
|
161
|
+
" /⠜⠁ ⡎" \
|
|
162
|
+
" [1m⢸[22m[1m⡀[22m ⢠⠃" \
|
|
163
|
+
"[1m⠤[22m[1m⣄[22m [1m⢇[22m ⠜" \
|
|
164
|
+
" [1m⠈[22m[1m⠓[22m[1m⢼[22m[1m⡄[22m" \
|
|
165
|
+
"" \
|
|
166
|
+
"" \
|
|
167
|
+
""
|
|
168
|
+
sleep 0.04
|
|
169
|
+
|
|
170
|
+
# F10 WINDUP — whip curling back
|
|
171
|
+
frame \
|
|
172
|
+
" ⣀⡤⠤⢤⡀" \
|
|
173
|
+
" ⣀⡤⠔⠋⠁ ⢧" \
|
|
174
|
+
" ⣠⠔⠋⠁ ⢸" \
|
|
175
|
+
" ⣠⠞⠁ ⡜" \
|
|
176
|
+
" ⢀⠜⠁ ⡼⠁" \
|
|
177
|
+
" [1m⠠[22m/⠔⠁ ⠜⠁" \
|
|
178
|
+
" [1m⣿[22m" \
|
|
179
|
+
"[1m⢤[22m[1m⡀[22m [1m⣿[22m" \
|
|
180
|
+
" [1m⠙[22m[1m⢦[22m[1m⣹[22m[1m⡇[22m" \
|
|
181
|
+
" [1m⠙[22m[1m⠃[22m" \
|
|
182
|
+
"" \
|
|
183
|
+
""
|
|
184
|
+
sleep 0.04
|
|
185
|
+
|
|
186
|
+
# F11 PEAK — whip curled, tip trailing behind
|
|
187
|
+
frame \
|
|
188
|
+
" ⣀⡤⠤⢤⡀" \
|
|
189
|
+
" ⣀⡤⠔⠋⠁ ⡇" \
|
|
190
|
+
" ⣠⣴⠯⠕⠒⠒⠲⠤⠤⠔⠚⠁" \
|
|
191
|
+
" ⢠⠔⠒⠦⠤⠔⣲⠟⠁" \
|
|
192
|
+
" ⠜ ⢀⠜⠁" \
|
|
193
|
+
" [1m⠠[22m/⠔⠁" \
|
|
194
|
+
" [1m⣿[22m" \
|
|
195
|
+
"[1m⢤[22m[1m⡀[22m [1m⣿[22m" \
|
|
196
|
+
" [1m⠙[22m[1m⢦[22m[1m⣹[22m[1m⡇[22m" \
|
|
197
|
+
" [1m⠙[22m[1m⠃[22m" \
|
|
198
|
+
"" \
|
|
199
|
+
""
|
|
200
|
+
sleep 0.04
|
|
201
|
+
|
|
202
|
+
# F12 PEAK — snake-back hold
|
|
203
|
+
frame \
|
|
204
|
+
" ⣀⡤⠤⢤⡀" \
|
|
205
|
+
" ⣀⡤⠔⠋⠁ ⡇" \
|
|
206
|
+
" ⣠⣴⠯⠕⠒⠒⠲⠤⠤⠔⠚⠁" \
|
|
207
|
+
" ⢠⠔⠒⠦⠤⠔⣲⠟⠁" \
|
|
208
|
+
" ⠜ ⢀⠜⠁" \
|
|
209
|
+
" [1m⠠[22m/⠔⠁" \
|
|
210
|
+
" [1m⣿[22m" \
|
|
211
|
+
"[1m⢤[22m[1m⡀[22m [1m⣿[22m" \
|
|
212
|
+
" [1m⠙[22m[1m⢦[22m[1m⣹[22m[1m⡇[22m" \
|
|
213
|
+
" [1m⠙[22m[1m⠃[22m" \
|
|
214
|
+
"" \
|
|
215
|
+
""
|
|
216
|
+
sleep 0.04
|
|
217
|
+
|
|
218
|
+
# F13 SNAP — FAST, hand jumps to crack position
|
|
219
|
+
frame \
|
|
220
|
+
"" \
|
|
221
|
+
"" \
|
|
222
|
+
"" \
|
|
223
|
+
"" \
|
|
224
|
+
"" \
|
|
225
|
+
"" \
|
|
226
|
+
"" \
|
|
227
|
+
"[1m⠤[22m[1m⣄[22m ⢀⣠⠤⠔⠒⠒⠒⠒⠒⠒⠒⠦⠤⠤⠤⠤⠤⠤⠤⠄" \
|
|
228
|
+
" [1m⠈[22m[1m⠓[22m[1m⢤[22m[1m⣀[22m[1m⣀[22m[1m⠤[22m[1m⠤[22m/⠔⠊⠁" \
|
|
229
|
+
"" \
|
|
230
|
+
"" \
|
|
231
|
+
""
|
|
232
|
+
sleep 0.04
|
|
233
|
+
|
|
234
|
+
# F14 CRACK
|
|
235
|
+
frame \
|
|
236
|
+
"" \
|
|
237
|
+
"" \
|
|
238
|
+
"" \
|
|
239
|
+
"" \
|
|
240
|
+
"" \
|
|
241
|
+
"" \
|
|
242
|
+
" \\|/" \
|
|
243
|
+
"[1m⠤[22m[1m⣄[22m ⢀⣠⠤⠔⠒⠒⠒⠒⠒⠒⠒⠦⠤⠤⠤⠤-*-" \
|
|
244
|
+
" [1m⠈[22m[1m⠓[22m[1m⢤[22m[1m⣀[22m[1m⣀[22m[1m⠤[22m[1m⠤[22m/⠔⠊⠁ /|\\" \
|
|
245
|
+
"" \
|
|
246
|
+
"" \
|
|
247
|
+
""
|
|
248
|
+
sleep 0.04
|
|
249
|
+
|
|
250
|
+
# F15 SHOCKWAVE
|
|
251
|
+
frame \
|
|
252
|
+
"" \
|
|
253
|
+
"" \
|
|
254
|
+
"" \
|
|
255
|
+
"" \
|
|
256
|
+
"" \
|
|
257
|
+
"" \
|
|
258
|
+
"" \
|
|
259
|
+
"[1m⢤[22m[1m⡀[22m" \
|
|
260
|
+
" [1m⠳[22m[1m⡀[22m [1m⣠[22m/⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠄ ',." \
|
|
261
|
+
" [1m⠹[22m[1m⣄[22m[1m⡤[22m[1m⠋[22m . ." \
|
|
262
|
+
" [1m⠉[22m" \
|
|
263
|
+
""
|
|
264
|
+
sleep 0.04
|
|
265
|
+
|
|
266
|
+
# F16 RECOIL
|
|
267
|
+
frame \
|
|
268
|
+
"" \
|
|
269
|
+
"" \
|
|
270
|
+
"" \
|
|
271
|
+
"" \
|
|
272
|
+
"" \
|
|
273
|
+
"" \
|
|
274
|
+
"" \
|
|
275
|
+
"[1m⣴[22m" \
|
|
276
|
+
"[1m⢻[22m[1m⡆[22m" \
|
|
277
|
+
"[1m⢸[22m[1m⡇[22m [1m⣠[22m/⠔⠒⠒⠦⠤⣄⣀" \
|
|
278
|
+
" [1m⣿[22m[1m⣠[22m[1m⠞[22m[1m⠁[22m ⠈⠉⠓⠒⠦⠤⠤⠤⠤⠤⠤⠤⠤⠤⠄ . ." \
|
|
279
|
+
" [1m⠛[22m[1m⠁[22m"
|
|
280
|
+
sleep 0.04
|
|
281
|
+
|
|
282
|
+
# F17 SETTLING
|
|
283
|
+
frame \
|
|
284
|
+
"" \
|
|
285
|
+
"" \
|
|
286
|
+
"" \
|
|
287
|
+
"" \
|
|
288
|
+
"" \
|
|
289
|
+
"" \
|
|
290
|
+
"" \
|
|
291
|
+
"[1m⣦[22m" \
|
|
292
|
+
"[1m⡿[22m" \
|
|
293
|
+
"[1m⡇[22m [1m⣠[22m/⢤⡀" \
|
|
294
|
+
"[1m⣧[22m[1m⠞[22m[1m⠁[22m ⠉⠓⠦⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠄" \
|
|
295
|
+
"[1m⠁[22m"
|
|
296
|
+
sleep 0.04
|
|
297
|
+
|
|
298
|
+
# F18 near REST
|
|
299
|
+
frame \
|
|
300
|
+
"" \
|
|
301
|
+
"" \
|
|
302
|
+
"" \
|
|
303
|
+
"" \
|
|
304
|
+
"" \
|
|
305
|
+
"" \
|
|
306
|
+
"" \
|
|
307
|
+
"[1m⡄[22m" \
|
|
308
|
+
"[1m⠃[22m" \
|
|
309
|
+
"[1m⢀[22m[1m⡠[22m/⢤" \
|
|
310
|
+
"[1m⠋[22m ⠈⠓⠦⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠄" \
|
|
311
|
+
""
|
|
312
|
+
sleep 0.04
|
|
313
|
+
|
|
314
|
+
# F19 REST
|
|
315
|
+
frame \
|
|
316
|
+
"" \
|
|
317
|
+
"" \
|
|
318
|
+
"" \
|
|
319
|
+
"" \
|
|
320
|
+
"" \
|
|
321
|
+
"" \
|
|
322
|
+
"" \
|
|
323
|
+
"[1m⡄[22m" \
|
|
324
|
+
"[1m⠃[22m" \
|
|
325
|
+
"[1m⢀[22m[1m⡠[22m/⢤⡀" \
|
|
326
|
+
"[1m⠋[22m ⠑⠦⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠄" \
|
|
327
|
+
""
|
|
328
|
+
sleep 0.04
|
|
329
|
+
|
|
330
|
+
# F20 REST — hold
|
|
331
|
+
frame \
|
|
332
|
+
"" \
|
|
333
|
+
"" \
|
|
334
|
+
"" \
|
|
335
|
+
"" \
|
|
336
|
+
"" \
|
|
337
|
+
"" \
|
|
338
|
+
"" \
|
|
339
|
+
"[1m⡄[22m" \
|
|
340
|
+
"[1m⠃[22m" \
|
|
341
|
+
"[1m⢀[22m[1m⡠[22m/⢤⡀" \
|
|
342
|
+
"[1m⠋[22m ⠑⠦⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠄" \
|
|
343
|
+
""
|
|
344
|
+
sleep 0.04
|
|
345
|
+
|