Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/.vitepress/theme/components/HmzArch.vue
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ const BANDS: Band[] = [
label: 'installed from a flowverse',
chips: [
{ text: 'humanize1', href: `${FLOWS}humanize1`, tag: 'official' },
{ text: 'parallel_flame_chase', href: `${FLOWS}parallel-flame-chase`, tag: 'official' },
{ text: 'flame_chasoid:parallel', href: `${FLOWS}parallel-flame-chase`, tag: 'official' },
{ text: 'aot', href: `${FLOWS}aot`, tag: 'official' },
{ text: 'your own', href: '/weaver/flowverses', apart: true },
],
Expand Down
2 changes: 1 addition & 1 deletion docs/.vitepress/theme/components/HmzOrchestra.vue
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ const PLAYS: Play[] = [
after: (lane) => [1 - lane],
},
{
name: 'parallel_flame_chase',
name: 'flame_chasoid:parallel',
shape: 'a coordinator plans, then three lanes run at once',
lanes: [
{ role: 'coordinator', agent: 'claude/claude-opus-5:max', tone: 6 },
Expand Down
8 changes: 4 additions & 4 deletions docs/.vitepress/theme/flows.ts
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ export const SCENES: Record<string, Scene> = {
},

ralph_loop_agent_cleanup: {
of: 'agent_cleanup:ralph_loop',
of: 'flame_chasoid:agent_cleanup_ralph_loop',
beat: 146,
envs: [{ id: 'repo', name: 'your repository — its history rewritten every epoch' }],
roles: [
Expand Down Expand Up @@ -248,7 +248,7 @@ export const SCENES: Record<string, Scene> = {
},

flame_chase_agent_cleanup: {
of: 'agent_cleanup:flame_chase',
of: 'flame_chasoid:agent_cleanup_flame_chase',
beat: 146,
envs: [{ id: 'repo', name: 'your repository — its history rewritten every epoch' }],
roles: [
Expand Down Expand Up @@ -505,7 +505,7 @@ export const SCENES: Record<string, Scene> = {
},

parallel_flame_chase: {
of: 'parallel_flame_chase',
of: 'flame_chasoid:parallel',
depth: 'lanes',
envs: [
{ id: 'plan', name: 'a planning snapshot' },
Expand Down Expand Up @@ -563,7 +563,7 @@ export const SCENES: Record<string, Scene> = {
},

parallel_flame_chase_git_pr: {
of: 'parallel_flame_chase:git_pr',
of: 'flame_chasoid:parallel_git_pr',
depth: 'lanes',
beat: 150,
envs: [
Expand Down
60 changes: 25 additions & 35 deletions docs/public/demo/flowverses.cast

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions docs/reference/flows.md
Original file line number Diff line number Diff line change
Expand Up @@ -1412,7 +1412,7 @@ nothing answers to raises `FlowNotFound` (`<ref>: no flow is called '<name>'`; a

| Listed as | Is |
| --- | --- |
| `chat`, `parallel_flame_chase` | built in, or installed from `official`'s `flows/<flow>/` |
| `chat`, `flame_chasoid` | built in, or installed from `official`'s `flows/<flow>/` |
| `alice/kernel` | installed from `official`'s `flows/alice/kernel/` |
| `@theirs/review` | installed from flowverse `theirs` |
| `@theirs/alice/kernel` | installed from flowverse `theirs`'s `flows/alice/kernel/` |
Expand Down Expand Up @@ -1505,13 +1505,13 @@ on [`/flow`'s Flowverses page](/reference/tui#where-flows-come-from) and with
### Manifests {#manifests}

```yaml
name: parallel_flame_chase
name: recursive_lean_prover
version: 0.1.0
description: Report-driven lanes of alternating agents planned by a coordinator.
repo: humanfia/parallel-flame-chase-flow
description: Recursively plan, prove, compare, review and catalogue Lean theorems.
repo: humanfia/recursive-lean-prover-flow
ref: v0.1.0
commit: <40 hex>
subdir: parallel_flame_chase
subdir: recursive_lean_prover
license: Apache-2.0
dependencies:
humanize1: ">=0.1.0,<0.2.0"
Expand Down Expand Up @@ -1623,10 +1623,10 @@ Read [Security](/user/security) before running any.
| [`humanize1:gen-idea`](https://humanfia.ai/flows/humanize1) | `drafter` | | |
| [`humanize1:gen-plan`](https://humanfia.ai/flows/humanize1) | `planner`, `analyst` | | |
| [`humanize1:rlcr`](https://humanfia.ai/flows/humanize1) | `builder`, `reviewer`, `human` | `builder`: `PermissionRequestHookAgentMixin` | ✓ |
| [`parallel_flame_chase`](https://humanfia.ai/flows/parallel-flame-chase) | `coordinator`, `lane_1_actor_a` … `lane_3_actor_b`, `human` | | ✓ |
| [`parallel_flame_chase:git_pr`](https://humanfia.ai/flows/parallel-flame-chase-git-pr) | `orchestrator`, `lane_1_actor_a` … `lane_3_actor_b`, `human` | | ✓ |
| [`agent_cleanup:ralph_loop`](https://humanfia.ai/flows/ralph-loop-agent-cleanup) | `agent`, `cleaner`, `human` | `SteeringAgentMixin` on both agents | ✓ |
| [`agent_cleanup:flame_chase`](https://humanfia.ai/flows/flame-chase-agent-cleanup) | `first_chaser`, `second_chaser`, `cleaner`, `human` | `SteeringAgentMixin` on all three agents | ✓ |
| [`flame_chasoid:parallel`](https://humanfia.ai/flows/parallel-flame-chase) | `coordinator`, `lane_1_actor_a` … `lane_3_actor_b`, `human` | | ✓ |
| [`flame_chasoid:parallel_git_pr`](https://humanfia.ai/flows/parallel-flame-chase-git-pr) | `orchestrator`, `lane_1_actor_a` … `lane_3_actor_b`, `human` | | ✓ |
| [`flame_chasoid:agent_cleanup_ralph_loop`](https://humanfia.ai/flows/ralph-loop-agent-cleanup) | `agent`, `cleaner`, `human` | `SteeringAgentMixin` on both agents | ✓ |
| [`flame_chasoid:agent_cleanup_flame_chase`](https://humanfia.ai/flows/flame-chase-agent-cleanup) | `first_chaser`, `second_chaser`, `cleaner`, `human` | `SteeringAgentMixin` on all three agents | ✓ |
| [`recursive_lean_prover`](https://humanfia.ai/flows/recursive-lean-prover) | `worker`, `reviewer` | `worker`: `PermissionRequestHookAgentMixin` | ✓ |
| [`aot`](https://humanfia.ai/flows/aot) | `writer`, `critic`, `human` | | |

Expand Down
4 changes: 2 additions & 2 deletions docs/reference/sdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -301,9 +301,9 @@ from hmz.sdk import Hmz

verses = Hmz().verses
verses.fetch("official")
for release in verses.index("official").versions("parallel_flame_chase"):
for release in verses.index("official").versions("flame_chasoid"):
print(release.version, release.commit[:12])
verses.install("parallel_flame_chase")
verses.install("flame_chasoid")
for update in verses.updates():
print(update.installed.called, update.installed.version, "->", update.version)
```
Expand Down
3 changes: 1 addition & 2 deletions docs/tapes/flowverses.tape
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@ Sleep 1600ms

# Into one flow: its releases, newest first. Enter installs the one under the cursor -- here
# the older, to show that what is installed is a version rather than whatever is newest.
Down
Sleep 400ms
# `aot` is the first flow listed, so the cursor is on it already.
Enter
Wait+Screen /Releases of aot/
Sleep 1200ms
Expand Down
8 changes: 2 additions & 6 deletions docs/tapes/stage.py
Original file line number Diff line number Diff line change
Expand Up @@ -584,16 +584,12 @@ def _settings() -> None:
#: What humanize's own flowverse lists, as its index says it, each at a commit nobody cut.
#: `aot` has two releases, so that its page has one to choose; the rest have one apiece.
RELEASES = {
"agent_cleanup": "A Ralph loop or a flame chase whose workspace an agent cleans up as "
"it goes.",
"aot": "Writes a flow from a description, then loads, smoke-runs and reviews it before "
"landing it.",
"fixed_interrupt_flame_chase": "Two fresh sessions alternate at accepted-experiment "
"boundaries.",
"flame_chasoid": "The flame chase and its variants (agent cleanup, fixed interrupt, "
"parallel lanes) as subflows of one flow.",
"humanize1": "RLCR from humanize 1 as three flows (gen-idea, gen-plan, rlcr), each set up "
"before it starts.",
"parallel_flame_chase": "Report-driven lanes of alternating agents planned by a "
"coordinator, plus a git_pr variant.",
"recursive_lean_prover": "Recursively plans, proves, compares, reviews and catalogues "
"Lean theorems.",
}
Expand Down
4 changes: 2 additions & 2 deletions docs/user/ci.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,12 +215,12 @@ Python with `Hmz().accounts` before the run. See the [SDK reference](/reference/
`ralph_loop` ships with humanize, as do `chat` and the other loops
[FlowBench scores](https://humanfia.ai/flows/), so `-f ralph_loop` runs on a fresh runner
as it is. A flow you [install](/weaver/flowverses) from a flowverse is not there: a fresh runner
has fetched no flowverse and installed nothing, so `-f parallel_flame_chase` is refused with
has fetched no flowverse and installed nothing, so `-f flame_chasoid:parallel_git_pr` is refused with
`the official flowverse has not been fetched yet`. Name that release by its repository
instead, which fetches it for the run and installs nothing:

```sh
-f 'git+https://github.com/humanfia/parallel-flame-chase-flow@v0.1.0#parallel_flame_chase'
-f 'git+https://github.com/humanfia/flame-chasoid-flows@v0.1.0#flame_chasoid:parallel_git_pr'
```

The `@v0.1.0` is a tag; a commit pins the flow so that nothing upstream can change what runs at
Expand Down
2 changes: 1 addition & 1 deletion docs/user/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ hmz exec -f chat -a assistant=dsh/deepseek-v4-flash:high "say hello"
```

`chat` and the six loops [FlowBench scores](https://humanfia.ai/flows/) ship with
humanize. A flow from a flowverse, such as `parallel_flame_chase`, runs once you install it
humanize. A flow from a flowverse, such as `flame_chasoid:parallel_git_pr`, runs once you install it
from `/flow`; `hmz exec` installs nothing.

A `dsh` agent works with full access whatever its flow declares. See
Expand Down
4 changes: 2 additions & 2 deletions docs/user/permissions.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ Most roles run at that default. These are the ones that do not:
| Flow | Role | Grant |
| --- | --- | --- |
| [`aot`](https://humanfia.ai/flows/aot) | `critic` | `local=READ`, `online=NONE`: it reads the draft and never writes |
| [`parallel_flame_chase`](https://humanfia.ai/flows/parallel-flame-chase) | every agent | `ALL` in every scope, `online` included |
| [`parallel_flame_chase:git_pr`](https://humanfia.ai/flows/parallel-flame-chase-git-pr) | the lane agents | the default, with `user=ALL` |
| [`flame_chasoid:parallel`](https://humanfia.ai/flows/parallel-flame-chase) | every agent | `ALL` in every scope, `online` included |
| [`flame_chasoid:parallel_git_pr`](https://humanfia.ai/flows/parallel-flame-chase-git-pr) | the lane agents | the default, with `user=ALL` |
| [`recursive_lean_prover`](https://humanfia.ai/flows/recursive-lean-prover) | `worker`, `reviewer` | `local=ALL`, `user=ALL`, `system=READ`, `online=ALL` |

A flow's own page says what its roles are granted.
Expand Down
8 changes: 4 additions & 4 deletions docs/user/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ over: set the flow up again under its new one.

**Verify.** The line is refused for nothing, or for what the flow itself needs.

### `parallel_flame_chase: not installed -- install it from /flow (flowverse official)`
### `flame_chasoid:parallel_git_pr: not installed -- install it from /flow (flowverse official)`

**Symptom.** `hmz exec` refuses a flow by name that a flowverse lists.

Expand All @@ -199,19 +199,19 @@ names, and install the flow. From a script, or on a machine that never opens `hm
CI runner:

```sh
python -c 'from hmz.sdk import Hmz; v = Hmz().verses; v.fetch("official"); v.install("parallel_flame_chase")'
python -c 'from hmz.sdk import Hmz; v = Hmz().verses; v.fetch("official"); v.install("flame_chasoid")'
```

Or name a release by its repository, which runs it without installing anything:

```sh
-f 'git+https://github.com/humanfia/parallel-flame-chase-flow@v0.1.0#parallel_flame_chase'
-f 'git+https://github.com/humanfia/flame-chasoid-flows@v0.1.0#flame_chasoid:parallel_git_pr'
```

**Verify.** `/flow` lists the flow, with its version at the end of its row, and the line gets
past the check.

### `parallel_flame_chase: the official flowverse has not been fetched yet -- fetch it from /flow`
### `flame_chasoid:parallel_git_pr: the official flowverse has not been fetched yet -- fetch it from /flow`

**Symptom.** `hmz exec` refuses a flow by name, on a machine that has not fetched the official
flowverse. Until it is fetched, any name that nothing else offers gets this message, even one
Expand Down
8 changes: 4 additions & 4 deletions docs/weaver/flowverses.md
Original file line number Diff line number Diff line change
Expand Up @@ -331,10 +331,10 @@ installs `review` the same way, under whatever name they chose for it.
**Variants are subflows of one module.** Two takes on one flow go in one directory as two
`@flow`s, released together, not in two repositories or two manifests. The one named after the
directory is `review`, and each other is `review:<name>`, such as `review:quick`.
`parallel_flame_chase` and `parallel_flame_chase:git_pr` are one release of
[humanfia/parallel-flame-chase-flow](https://github.com/humanfia/parallel-flame-chase-flow);
`agent_cleanup:ralph_loop` and `agent_cleanup:flame_chase` are one of
[humanfia/agent-cleanup-flow](https://github.com/humanfia/agent-cleanup-flow).
`flame_chasoid` has no flow named after it, only its variants: `flame_chasoid:parallel`,
`flame_chasoid:parallel_git_pr`, `flame_chasoid:fixed_interrupt` and the two
`flame_chasoid:agent_cleanup_*` flows are one release of
[humanfia/flame-chasoid-flows](https://github.com/humanfia/flame-chasoid-flows).

**Keep a flow's own code in its own directory.** Besides installed packages, a flow can import
only what sits beside its `__init__.py`, and that directory is all that is installed, so a
Expand Down
2 changes: 1 addition & 1 deletion src/hmz/runtime/flowing/finding.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ def offers(one: Flowverse) -> list[Offer]:
One per flow, by directory, alphabetically: `@<flowverse>/<flow>`, except for humanize's
own, which are called as its index lists them, `aot` and `alice/kernel`. Which of the two
places `official` is kept in a flow of humanize's is in makes no difference to what it is
called: the package's `chat` and an installed `parallel_flame_chase` are both humanize's,
called: the package's `chat` and an installed `flame_chasoid` are both humanize's,
so both are said the same way and a flow that moves between the two goes on answering to
the name it had. Yours are named the same way as anybody else's -- `@local/scheduler`,
`@user/scheduler` -- so that a flow of yours sharing a name with one of humanize's is
Expand Down
Loading