frizz 0.0.1 → 0.2.0
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/LICENSE +21 -0
- package/README.md +276 -0
- package/dist/claude-agent-broker.js +21714 -0
- package/dist/codex-app-server-daemon.js +354 -0
- package/dist/dev-child.js +39342 -0
- package/dist/frizz.js +10517 -0
- package/package.json +54 -20
- package/runtime/board/agent-bindings.mjs +287 -0
- package/runtime/board/agent-liveness.mjs +367 -0
- package/runtime/board/agent-status.mjs +178 -0
- package/runtime/board/config.mjs +982 -0
- package/runtime/board/decisions.mjs +97 -0
- package/runtime/board/index.mjs +699 -0
- package/runtime/board/notify-shared.mjs +90 -0
- package/runtime/board/notify.mjs +81 -0
- package/runtime/board/ownership.mjs +120 -0
- package/runtime/board/rest-detect.mjs +213 -0
- package/runtime/board/thread-excerpt.mjs +162 -0
- package/runtime/board/thread-update.mjs +285 -0
- package/runtime/cc-worker/.claude-plugin/plugin.json +10 -0
- package/runtime/cc-worker/DECISIONS.md +1025 -0
- package/runtime/cc-worker/LICENSE +21 -0
- package/runtime/cc-worker/agents/fable-high.md +8 -0
- package/runtime/cc-worker/agents/fable-low.md +8 -0
- package/runtime/cc-worker/agents/fable-max.md +8 -0
- package/runtime/cc-worker/agents/fable-medium.md +8 -0
- package/runtime/cc-worker/agents/fable-xhigh.md +8 -0
- package/runtime/cc-worker/agents/haiku.md +7 -0
- package/runtime/cc-worker/agents/opus-high.md +8 -0
- package/runtime/cc-worker/agents/opus-low.md +8 -0
- package/runtime/cc-worker/agents/opus-max.md +8 -0
- package/runtime/cc-worker/agents/opus-medium.md +8 -0
- package/runtime/cc-worker/agents/opus-xhigh.md +8 -0
- package/runtime/cc-worker/agents/sonnet-high.md +8 -0
- package/runtime/cc-worker/agents/sonnet-low.md +8 -0
- package/runtime/cc-worker/agents/sonnet-max.md +8 -0
- package/runtime/cc-worker/agents/sonnet-medium.md +8 -0
- package/runtime/cc-worker/agents/sonnet-xhigh.md +8 -0
- package/runtime/cc-worker/bin/frizz +17 -0
- package/runtime/cc-worker/bin/frizz-mcp.mjs +564 -0
- package/runtime/cc-worker/bin/frizz-update +18 -0
- package/runtime/cc-worker/hooks/agent-bind.mjs +40 -0
- package/runtime/cc-worker/hooks/agent-dispatch.mjs +98 -0
- package/runtime/cc-worker/hooks/bash-background.d.mts +6 -0
- package/runtime/cc-worker/hooks/bash-background.mjs +236 -0
- package/runtime/cc-worker/hooks/deny-ask.mjs +38 -0
- package/runtime/cc-worker/hooks/deny-plan.mjs +61 -0
- package/runtime/cc-worker/hooks/hooks.json +111 -0
- package/runtime/cc-worker/hooks/perm-policy.mjs +211 -0
- package/runtime/cc-worker/hooks/precompact-instructions.mjs +122 -0
- package/runtime/cc-worker/hooks/scratchpad-stop.mjs +125 -0
- package/runtime/cc-worker/hooks/scratchpad.mjs +446 -0
- package/runtime/cc-worker/hooks/session-seed.mjs +106 -0
- package/runtime/cc-worker/scripts/frizz/agent-bindings.mjs +9 -0
- package/runtime/cc-worker/scripts/frizz/config.mjs +12 -0
- package/runtime/cc-worker/skills/gh/SKILL.md +154 -0
- package/runtime/cc-worker/skills/gh/scripts/ci-watch.mjs +60 -0
- package/runtime/cc-worker/skills/gh/scripts/github-watch.mjs +130 -0
- package/runtime/cc-worker/skills/gh/scripts/review-watch.mjs +54 -0
- package/runtime/cc-worker/skills/handoff/SKILL.md +209 -0
- package/runtime/cc-worker/skills/waits/SKILL.md +83 -0
- package/web-dist/apple-touch-icon.png +0 -0
- package/web-dist/assets/TerminalPane-ROKHp1ib.js +7 -0
- package/web-dist/assets/abnfDiagram-VRR7QNED-DcpdhBs3.js +1 -0
- package/web-dist/assets/arc-BSyeo0Gb.js +1 -0
- package/web-dist/assets/architecture-TIHT7OUA-CAviNivx.js +1 -0
- package/web-dist/assets/architectureDiagram-ZJ3FMSHR-CUAKf0mn.js +36 -0
- package/web-dist/assets/array-BifhSqXX.js +1 -0
- package/web-dist/assets/blockDiagram-677ZJIJ3-BPwpJIzx.js +132 -0
- package/web-dist/assets/c4Diagram-LMCZKHZV-1lptuHzZ.js +10 -0
- package/web-dist/assets/channel-CqKDIFQF.js +1 -0
- package/web-dist/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/web-dist/assets/chunk-32BRIVSS-CFR9AKjY.js +1 -0
- package/web-dist/assets/chunk-52WLFC77-CM9uct7m.js +10 -0
- package/web-dist/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/web-dist/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
- package/web-dist/assets/chunk-C7G6YPKG-DiveJARw.js +1 -0
- package/web-dist/assets/chunk-EX3LRPZG-BE1CBw8F.js +231 -0
- package/web-dist/assets/chunk-FWX5IMBZ-DL42uXiO.js +2 -0
- package/web-dist/assets/chunk-HOUHSVGY-DPhJWgDw.js +1 -0
- package/web-dist/assets/chunk-ICXQ74PX-CwYy-6AP.js +2 -0
- package/web-dist/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/web-dist/assets/chunk-KEIR6QF5-BfrZ3jm6.js +161 -0
- package/web-dist/assets/chunk-MOJQB5TN-Ds5I9wxq.js +88 -0
- package/web-dist/assets/chunk-OGEWGWER-DHiZJwQD.js +1 -0
- package/web-dist/assets/chunk-PUDLZKDR-B-eyQTsF.js +156 -0
- package/web-dist/assets/chunk-Q4XR5HBZ-DK7dB3Ti.js +70 -0
- package/web-dist/assets/chunk-RYQCIY6F-Cu_KplZW.js +1 -0
- package/web-dist/assets/chunk-V7JOEXUC-Dn59m74L.js +206 -0
- package/web-dist/assets/chunk-VAUOI2AC-DK7x36hd.js +1 -0
- package/web-dist/assets/chunk-VR4S4FIN-D7-CI3Yl.js +1 -0
- package/web-dist/assets/chunk-WYO6CB5R-B3l-mLCs.js +127 -0
- package/web-dist/assets/chunk-XXDRQBXY-DYlTP5J-.js +1 -0
- package/web-dist/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/web-dist/assets/chunk-ZGVPDNZ5-Dobxlxie.js +62 -0
- package/web-dist/assets/chunk-ZIRB5QZD-C6fEPe3t.js +32 -0
- package/web-dist/assets/classDiagram-OUVF2IWQ-B_-6iXYY.js +1 -0
- package/web-dist/assets/classDiagram-v2-EOCWNBFH-B_-6iXYY.js +1 -0
- package/web-dist/assets/cose-bilkent-JH36ORCC-BUIsLrGc.js +1 -0
- package/web-dist/assets/cynefin-VYW2F7L2-Dh7RuEUJ.js +1 -0
- package/web-dist/assets/cynefinDiagram-TSTJHNR4-ClPi2mZZ.js +62 -0
- package/web-dist/assets/cytoscape.esm-B3I8pqwA.js +321 -0
- package/web-dist/assets/dagre-CXRCoUWR.js +1 -0
- package/web-dist/assets/dagre-VKFMJZFB-52_WP1QV.js +4 -0
- package/web-dist/assets/defaultLocale-C8Fc0cco.js +1 -0
- package/web-dist/assets/diagram-FQU43EPY-D_1zVsTL.js +3 -0
- package/web-dist/assets/diagram-G47NLZAW-CdZxuGUy.js +24 -0
- package/web-dist/assets/diagram-NH7WQ7WH-C8pSFu0P.js +24 -0
- package/web-dist/assets/diagram-OA4YK3LP-C5bjZLre.js +30 -0
- package/web-dist/assets/diagram-WEI45ONY-Bxzhiuzn.js +41 -0
- package/web-dist/assets/dist-DoH_9pyS.js +1 -0
- package/web-dist/assets/ebnfDiagram-CCIWWBDH-g-Z0J2wP.js +1 -0
- package/web-dist/assets/erDiagram-Q63AITRT-DVNkgIHp.js +85 -0
- package/web-dist/assets/eventmodeling-45OFAUF4-MpmeH5YZ.js +1 -0
- package/web-dist/assets/flowDiagram-23GEKE2U-D-QgjjhF.js +1 -0
- package/web-dist/assets/ganttDiagram-NO4QXBWP-_71pQYEK.js +292 -0
- package/web-dist/assets/gitGraph-TEB2WS4Q-ChIZiGZS.js +1 -0
- package/web-dist/assets/gitGraphDiagram-IHSO6WYX-DCHAFI0l.js +106 -0
- package/web-dist/assets/graphlib-B8gBHxth.js +1 -0
- package/web-dist/assets/index-w4v-GZEc.js +358 -0
- package/web-dist/assets/index-zyi22LPz.css +1 -0
- package/web-dist/assets/info-DKCQHKI2-BW-n_T1j.js +1 -0
- package/web-dist/assets/infoDiagram-FWYZ7A6U-CgDYsKi9.js +2 -0
- package/web-dist/assets/init-D6jRqBbL.js +1 -0
- package/web-dist/assets/ishikawaDiagram-FXEZZL3T-ClzGNt9N.js +70 -0
- package/web-dist/assets/journeyDiagram-5HDEW3XC-DSCQxkHC.js +139 -0
- package/web-dist/assets/kanban-definition-HUTT4EX6-CdrdX9N8.js +89 -0
- package/web-dist/assets/katex-CddkPoXu.js +257 -0
- package/web-dist/assets/line-ha38Dc-1.js +1 -0
- package/web-dist/assets/linear-z2V0wJk9.js +1 -0
- package/web-dist/assets/map-DsCK-0Cs.js +1 -0
- package/web-dist/assets/mermaid-parser.core-Z4uMcpip.js +7 -0
- package/web-dist/assets/mermaid.core-iZRq3hbu.js +11 -0
- package/web-dist/assets/mindmap-definition-LN4V7U3C-DmhInJO_.js +96 -0
- package/web-dist/assets/ordinal-hYBb2elL.js +1 -0
- package/web-dist/assets/packet-7NZHBO7P-DBPB36Kl.js +1 -0
- package/web-dist/assets/path-BWPyau1x.js +1 -0
- package/web-dist/assets/pegDiagram-2B236MQR-CAH3ljfj.js +1 -0
- package/web-dist/assets/pie-RZYD4A2V-_h_eX4Ca.js +1 -0
- package/web-dist/assets/pieDiagram-ENE6RG2P-DFBPus8j.js +39 -0
- package/web-dist/assets/quadrantDiagram-ABIIQ3AL-DMvOCjt8.js +7 -0
- package/web-dist/assets/radar-I7S5WNFK-2EzoPHEZ.js +1 -0
- package/web-dist/assets/railroad-3IZDKUUU-BPJnn-hm.js +1 -0
- package/web-dist/assets/railroad-abnf-AHOZXSZD-YeUoiySk.js +1 -0
- package/web-dist/assets/railroad-ebnf-EBAXGLYW-Ddw1SuGG.js +1 -0
- package/web-dist/assets/railroad-peg-LSFZ7HO6-Dd8BOGeW.js +1 -0
- package/web-dist/assets/railroadDiagram-RFXS5EU6-DKq5FagA.js +1 -0
- package/web-dist/assets/requirementDiagram-TGXJPOKE-BJ5tGazp.js +84 -0
- package/web-dist/assets/rolldown-runtime-Bh1tDfsg.js +1 -0
- package/web-dist/assets/rough.esm-CSKSodPl.js +1 -0
- package/web-dist/assets/sankeyDiagram-HTMAVEWB-XSJjcBhX.js +40 -0
- package/web-dist/assets/sequenceDiagram-DBY2YBRQ-CBb8emSe.js +162 -0
- package/web-dist/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
- package/web-dist/assets/src-C4XfhTaE.js +1 -0
- package/web-dist/assets/stateDiagram-2N3HPSRC-DDfRW94V.js +1 -0
- package/web-dist/assets/stateDiagram-v2-6OUMAXLB-hc41W5Lx.js +1 -0
- package/web-dist/assets/swimlanes-5IMT3BWC-DvRYbkZi.js +2 -0
- package/web-dist/assets/swimlanesDiagram-G3AALYLV-BZyGdgSG.js +8 -0
- package/web-dist/assets/timeline-definition-FHXFAJF6-BNUa_DwI.js +120 -0
- package/web-dist/assets/treeView-QDETBFTQ-I6-IW6nJ.js +1 -0
- package/web-dist/assets/treemap-6X3UGDF4-CWWmEUYJ.js +1 -0
- package/web-dist/assets/vennDiagram-L72KCM5P-DTDrPGLk.js +34 -0
- package/web-dist/assets/wardley-OPB4EBWU-CNsdgXXA.js +1 -0
- package/web-dist/assets/wardleyDiagram-EHGQE667-YE0tq3Kh.js +78 -0
- package/web-dist/assets/xychartDiagram-FW5EYKEG-D0ofMX8C.js +7 -0
- package/web-dist/favicon-16.png +0 -0
- package/web-dist/favicon-32.png +0 -0
- package/web-dist/favicon.svg +78 -0
- package/web-dist/icon-192.png +0 -0
- package/web-dist/icon-512.png +0 -0
- package/web-dist/icon-maskable-512.png +0 -0
- package/web-dist/index.html +33 -0
- package/web-dist/manifest.webmanifest +16 -0
- package/index.d.ts +0 -1
- package/index.js +0 -2
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: waits
|
|
3
|
+
description: How a frizz worker waits on something without going silent or falling out of the board's Active state (invoke as frizz:waits) — choosing between a wait-owning sub-agent, background Bash, native Monitor, and a durable timer fence; frizz's portable monitor scripts; and the CI/PR/release recipes. Load this when your effort needs to wait on CI, a release, a deploy, a merge, or another long-running condition.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Waiting, without going silent
|
|
7
|
+
|
|
8
|
+
Your system prompt carries the one rule that decides the mechanism. This is the playbook.
|
|
9
|
+
|
|
10
|
+
## The rule
|
|
11
|
+
|
|
12
|
+
**Only a live dispatched sub-agent keeps a rested thread out of the human's queue.** A background
|
|
13
|
+
`Bash`/`Monitor` does not: `run_in_background` means "don't block my turn", and frizz cannot tell a CI
|
|
14
|
+
watcher that ends in minutes from a `vite` dev server that runs forever, so neither holds a rested
|
|
15
|
+
thread in Active.
|
|
16
|
+
|
|
17
|
+
| You will… | Use |
|
|
18
|
+
|---|---|
|
|
19
|
+
| REST until the condition is met (the usual CI / PR / release wait) | a **sub-agent** that owns the wait |
|
|
20
|
+
| KEEP WORKING alongside a process you launched (dev server, log tail) | `Bash` + `run_in_background: true` |
|
|
21
|
+
| stream events into the turn you are actively working in | `Monitor` |
|
|
22
|
+
| re-check at a named wall-clock instant, across a process exit | `timer:` awaiting fence |
|
|
23
|
+
|
|
24
|
+
Never fake a wait with `echo waiting`, repeated foreground sleeps, or an `awaiting` fence for CI, bots,
|
|
25
|
+
releases, or merge progression.
|
|
26
|
+
|
|
27
|
+
Never fake Claude's native background mechanism with shell job control (`cmd &`, `nohup … &`, or
|
|
28
|
+
`disown`). The child may survive after Bash returns, but it has no Claude task id, output-file
|
|
29
|
+
lifecycle, completion notification, or wake. Use `run_in_background: true` with the long command
|
|
30
|
+
itself in the foreground. Shell-level concurrency is only self-contained: explicitly `wait` for its
|
|
31
|
+
children or own cleanup with an EXIT trap before that Bash call returns.
|
|
32
|
+
|
|
33
|
+
## Choosing a monitor implementation
|
|
34
|
+
|
|
35
|
+
1. **Look for project-declared tooling first** — `AGENTS.md`, project skills, docs, package scripts.
|
|
36
|
+
Prefer it only after validating its absolute command and its terminal event/exit semantics. Invalid
|
|
37
|
+
declared tooling is a visible configuration error to report, not something to silently shadow. Never
|
|
38
|
+
select a monitor merely by filename.
|
|
39
|
+
2. **Otherwise use frizz's portable Node scripts** in `monitors/` (zero-dep, NDJSON on stdout, they exit
|
|
40
|
+
at a terminal verdict).
|
|
41
|
+
3. **Native `Monitor`** is the Claude adapter for a changing condition — a quiet
|
|
42
|
+
`until ...; do sleep ...; done`, emitting one event per meaningful transition. `persistent: true`
|
|
43
|
+
runs until `TaskStop` or session end.
|
|
44
|
+
|
|
45
|
+
## The sub-agent-owns-the-wait pattern
|
|
46
|
+
|
|
47
|
+
This is the prescribed way to wait while you rest. Dispatch with the plain Agent tool +
|
|
48
|
+
`run_in_background: true`, no `name` field. The child runs the watcher in **its own foreground** and
|
|
49
|
+
returns the verdict; you stay Active, and its return re-invokes you so you can act on the result.
|
|
50
|
+
|
|
51
|
+
Foreground Bash is timeout-capped at ~10 minutes, so for a longer wait the child must loop until its
|
|
52
|
+
terminal condition rather than issuing one long call. A helper must not hand back its final report
|
|
53
|
+
while its own watcher is still live — the wait IS its work.
|
|
54
|
+
|
|
55
|
+
Give the child, literally, in the prompt:
|
|
56
|
+
|
|
57
|
+
- the exact command to run and the terminal condition to stop on;
|
|
58
|
+
- the repo path and the scratchpad path;
|
|
59
|
+
- what to return: the verdict plus enough detail to act on a failure (job name, failing step, log tail);
|
|
60
|
+
- an instruction not to fix anything — it observes and reports; you decide.
|
|
61
|
+
|
|
62
|
+
## Recipes
|
|
63
|
+
|
|
64
|
+
**GitHub CI on a PR head.** `gh run watch <run-id> --exit-status` blocks to completion, or loop
|
|
65
|
+
`gh pr checks <n> --json name,state,link`. A partial `gh pr checks` rollup is **not** a green verdict:
|
|
66
|
+
also inspect the workflow runs for the exact PR head, and treat `ACTION_REQUIRED` fork gates as pending,
|
|
67
|
+
not passing.
|
|
68
|
+
|
|
69
|
+
**PR review activity.** Do not build a watcher — emit `awaiting` with `pr-watch: owner/repo#N` and frizz
|
|
70
|
+
polls it for you, waking on any new review, approval, or comment, bot or human. See `frizz:handoff`.
|
|
71
|
+
|
|
72
|
+
**A release or deploy.** Poll the artifact that proves it, not the pipeline that promises it — the
|
|
73
|
+
published version on the registry, the health endpoint, the deployed asset hash.
|
|
74
|
+
|
|
75
|
+
**Another long-running local process.** Read its output path with `Read` for diagnostics (`TaskOutput`
|
|
76
|
+
is deprecated). `TaskStop` is only for your own monitor after its terminal handoff — never to cut off a
|
|
77
|
+
sub-agent or a writer.
|
|
78
|
+
|
|
79
|
+
## Liveness caveats
|
|
80
|
+
|
|
81
|
+
Live tasks do not survive the Claude process or session ending. A durable `timer:` fence is the only
|
|
82
|
+
wait that survives a restart, so use it when the next meaningful check genuinely belongs at a later
|
|
83
|
+
instant rather than continuously monitored now.
|
|
Binary file
|