kaloko 0.12.1 → 0.13.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/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Kaloko
2
2
 
3
- See what your agent built, on one canvas, and sign it off.
3
+ Your AI agents build; Kaloko walks every screen, puts it on one canvas and
4
+ records who approved what.
4
5
 
5
6
  Your coding agent (Claude Code, Codex or any LLM with a shell) walks your
6
7
  acceptance plan with the `kaloko` skill. Kaloko captures every screen and
@@ -169,6 +170,9 @@ messages. Click a row and the video jumps there. Web recordings need nothing
169
170
  but Chrome (WebM with VP9); with ffmpeg installed you also get MP4 for Safari,
170
171
  app recordings (Android `screenrecord`, iOS Simulator, macOS) and the
171
172
  walkthrough export. `npx kaloko video tools` says what this machine has.
173
+ Videos play on: when one ends, the next step's video starts, and replay moves
174
+ to the next step by itself; a step that needs a decision waits for you, and a
175
+ step without video shows its screenshot for three seconds.
172
176
  Recordings stay in the local preview on Free and Team; Business and Enterprise
173
177
  share them with the run.
174
178
 
@@ -219,10 +223,12 @@ Every AI verdict comes with one sentence saying why. Criteria marked
219
223
  `vision: true`, and answers the text evaluator is unsure about, get a second
220
224
  look at the screenshot from a vision model (`ANTHROPIC_API_KEY`, or through
221
225
  Kaloko); `kaloko build` lists what to act on with the score and the reason.
222
- As an experiment you can switch on in Settings, Clef on Cloudflare also names
223
- the kind of problem each screen and its recording show (overlap, cut-off text,
224
- a raw translation key, an endless spinner); reviewers turn the right findings
225
- into comments with one click, and findings never change a verdict.
226
+ As an experiment an admin switches on under Settings → Security → Experiments,
227
+ Clef on Cloudflare also names the kind of problem each screen and its recording
228
+ show (overlap, cut-off text, a raw translation key, an endless spinner);
229
+ reviewers turn the right findings into comments with one click, and findings
230
+ never change a verdict. Triage counts against the hosted-evaluation allowance,
231
+ so it needs the Team plan or higher.
226
232
  The `a11y` pack walks the page with Tab (order, visible focus, traps, skip
227
233
  link) and reads names from the accessibility tree. Pixel diffs skip the
228
234
  regions a step ignores; `kaloko walk --stability 3` and `kaloko stability`
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kaloko",
3
- "version": "0.12.1",
4
- "description": "See what your AI agents built: every screen, language and device walked, assessed and approved on one canvas.",
3
+ "version": "0.13.0",
4
+ "description": "Your AI agents build; Kaloko walks every screen, puts it on one canvas and records who approved what.",
5
5
  "keywords": [
6
6
  "qa",
7
7
  "acceptance-testing",
@@ -20,7 +20,10 @@ description: >
20
20
  trace read (actions, requests, console), and when a user-visible change
21
21
  should land in the visual changelog (CHANGELOG.md with step references,
22
22
  kaloko changelog draft, kaloko release) or a guide should show a step or
23
- be written, translated or checked (kaloko docs check).
23
+ be written, translated or checked (kaloko docs check), when screenshots,
24
+ HTML or recordings must hide personal data (capture masks, pii: redact or
25
+ pseudonymize, kaloko share stopping on unmasked data), and when a run has
26
+ Clef triage findings (experimental) to read, mention or answer.
24
27
  ---
25
28
 
26
29
  # Kaloko
@@ -128,6 +131,12 @@ only when a person says that value may be uploaded.
128
131
  (`--heal`): [reference/execution.md](reference/execution.md)
129
132
  - Evaluation, JEV thresholds, the vision evaluator and its reasons, reading
130
133
  results: [reference/evaluation.md](reference/evaluation.md)
134
+ - Clef triage findings (experimental): what they are, how to report them apart
135
+ from the verdicts, `get_findings` and `answer_finding`:
136
+ [reference/evaluation.md#triage-findings-experimental](reference/evaluation.md#triage-findings-experimental)
137
+ - Hiding personal data in captures (`capture.mask`, `pii: redact`,
138
+ `pseudonymize`, `pii: required` on an environment, the check before sharing):
139
+ [reference/acceptance.md#capture-quality](reference/acceptance.md#capture-quality)
131
140
  - Screenshots, walkthroughs, Playwright reports and traces that an agent or a
132
141
  tool already produced, laid out as a run: [reference/import.md](reference/import.md)
133
142
  - Video of a step or a whole flow, traces (actions, requests, console) and the
@@ -65,6 +65,14 @@ in the newest shared run of the scenario count too, so a fresh CI checkout
65
65
  maps routes as well as a laptop with earlier runs. See
66
66
  [execution.md](execution.md#only-what-changed).
67
67
 
68
+ ## Exit codes
69
+
70
+ Every command exits with `0` when it is done, `1` when checks found problems
71
+ or the command failed, and `2` on a usage error such as an unknown command or
72
+ option or a missing argument. A CI step can tell a broken workflow line (2)
73
+ from a failing check (1). `kaloko help <command>` or `kaloko <command> --help`
74
+ shows the options of one command.
75
+
68
76
  ## Done means
69
77
 
70
78
  The workflow file and the config change are committed after the person agreed,
@@ -47,8 +47,10 @@ scenarios.
47
47
  Settings → Integrations → Webhooks (admin): an https URL and the events
48
48
  `run.accepted` and/or `run.shared`. Each call is a JSON POST
49
49
  `{ id, type, created_at, org, data: { run, steps, steps_url, changes_url } }`
50
- with `QAwalk-Signature: t=<unix time>,v1=<hex HMAC-SHA256 of "<t>.<body>">`
51
- signed with the webhook's secret (copy it from Settings). Verify the
50
+ with `Kaloko-Signature: t=<unix time>,v1=<hex HMAC-SHA256 of "<t>.<body>">`
51
+ signed with the webhook's secret (copy it from Settings). The old
52
+ `QAwalk-Signature` header is still sent with the same value, so existing
53
+ receivers keep working; read `Kaloko-Signature` in new code. Verify the
52
54
  signature and the time (reject older than 5 minutes), answer 2xx within 5
53
55
  seconds, and do the work asynchronously. Also over the API:
54
56
  `GET|POST /api/v1/orgs/<org>/webhooks`, `DELETE …/webhooks/<id>`.
@@ -2,8 +2,9 @@
2
2
 
3
3
  `https://kaloko.app/mcp` speaks MCP over Streamable HTTP (JSON-RPC 2.0,
4
4
  POST only, one message per request). Authenticate with an organization API
5
- token as `Authorization: Bearer qwk_…`; a read-only token is enough, every
6
- tool reads. Nothing binary crosses MCP: summaries carry the URLs of
5
+ token as `Authorization: Bearer qwk_…`. The server is part of the Team plan
6
+ and up. A read-only token is enough to read; tools that write need a token
7
+ with that scope, as noted below. Nothing binary crosses MCP: summaries carry the URLs of
7
8
  screenshots and files, which the same token can fetch over HTTPS.
8
9
 
9
10
  ## Configure
@@ -28,6 +29,7 @@ file.
28
29
  | `list_notifications` | the token owner's inbox (`unread_only`, `limit`) |
29
30
  | `list_projects` | projects of the organization with counts; the slug is the `project` filter of `list_runs` and the value for `project:` in a scenario |
30
31
  | `get_criteria_verdicts` | reviewer verdicts on manual or overridden criteria of a run |
32
+ | `get_stack_items` | the pages of a stack step (`run_id`, `step`; filters `status`, `criterion`, text): path, URL, title, status and failing criteria with evidence, screenshot URLs |
31
33
  | `get_step_recording` | a step's recording and trace (`run_id`, `step`, `locale`, `viewport`, `trace: true` for the full trace): video URLs, duration, its chapter of a flow recording, failed attempts, the trace summary (failed requests, console errors, slowest request); see [recording.md](recording.md). `get_run_summary` lists trace summaries per step too |
32
34
  | `get_review_queue` | what a person still has to decide in a run (`run_id`, or `scenario` / nothing for the newest run): steps in review order with reasons, decisions, approvals carried over unchanged steps with their origin, counts and `review_url` to give the person |
33
35
  | `decide_step` | records your (the agent's) decision on a step: `approve`, or `return` with a `note`; marked as an agent's and not counted as a person's. Never use it to approve for a person |
@@ -37,6 +39,8 @@ file.
37
39
  | `get_changelog` | the visual changelog of a product (`product`, `version`, `resolve: true` for the pictures, `limit`): releases newest first with the entry as written and its groups; see [docs.md](docs.md) |
38
40
  | `draft_changelog_entry` | what accepted runs since the last release (or `since`) show differently, as a Keep a Changelog draft with before/after step references (`product`, `since`) |
39
41
  | `resolve_step_image` | one step reference (`ref` = `kaloko:<scenario>/<step>?…`, `product`, `version`, `locale`, `viewport`) as a signed image URL with its run, how the version was found and canvas links |
42
+ | `get_docs` | a product's published docs (`product`; without `path` the versions, languages and sidebar; with `path` one page with its Markdown, sections, stale sections and, with `resolve: true`, its pictures) |
43
+ | `docs_check` | what needs attention in the published docs of a version: broken step references, references without an accepted picture, stale sections, missing or outdated translations, release items without a picture |
40
44
  | `list_step_changes` | documentation layer: steps whose capture or status changed since the previous accepted run or `since` (`scenario`, `since`, `accepted`); see [documentation.md](documentation.md) |
41
45
  | `get_started` | where the organization stands (`empty`, `sample`, `active`), its sample run, the next steps and a prompt; call it in a new project, see [first-run.md](first-run.md) |
42
46
  | `add_sample_run` | adds the sample run (or returns the one there is); needs an upload or full token and the Developer / Tester role |
@@ -51,6 +55,8 @@ file.
51
55
  | `add_comment` | comment on a step (`run_id` + `step`), the whole run (`run_id`) or the whole flow (`scenario`); `parent_id` replies; optional `pin` `{ x, y, viewport }` or `shape` (box or arrow in fractions, with `viewport` and `size`) |
52
56
  | `list_ignore_regions` | regions people drew to leave out of pixel diffs, per step, with the `ignore:` entry each becomes (`kaloko stability --pull` writes them) |
53
57
  | `add_ignore_region` | suggest such a region (`run_id`, `step`, `viewport`, `rect` in CSS px); Developer / Tester, scope upload or full |
58
+ | `get_findings` | experimental Clef triage findings of a run (`run_id`): the kind of problem on each screen or in recording frames, with probability, severity and box, and the answers testers gave. Findings never change a verdict |
59
+ | `answer_finding` | answers a finding (`run_id`, `node`, `locale`, `viewport`, `finding`, `kind`, `answer`: right, wrong or comment with the `comment_id` from `add_comment`); scope comment |
54
60
  | `get_signoff_record` | the signed acceptance record of an accepted run (Business): approvals with provenance, criteria, capture hashes, signature |
55
61
  | `resolve_comment` | close a thread with a `note` that says what changed (it becomes the last reply) |
56
62
  | `reopen_comment`, `edit_comment`, `delete_comment` | reopen; edit or delete your own comment |
@@ -58,14 +64,16 @@ file.
58
64
  | `list_issues` | issues created from steps with key, URL and state (`run_id`, `scenario`, `state`) |
59
65
  | `list_schedules`, `run_schedule` | hosted runs: schedules of read-only scenarios on Kaloko's browsers with the month's page budget; start one now (`id`) |
60
66
 
61
- Writes need a token with scope full. Follow *Processing feedback* in
67
+ Writes here need a token with the `comment` scope (or full); `add_ignore_region`
68
+ and `run_schedule` need upload or full. Follow *Processing feedback* in
62
69
  [collaboration.md](collaboration.md).
63
70
 
64
71
  Typical loop for an agent that owns a task: `list_runs` with the scenario →
65
72
  `get_feedback` for the latest run → fix what was returned → new run with the
66
73
  CLI (`kaloko start … share`) → post the canvas URL in the issue. Capturing,
67
- evaluating and uploading stay in the CLI; MCP reads, and for design drafts also
68
- publishes versions, sets references and step status, and comments (below).
74
+ evaluating and uploading stay in the CLI; MCP reads, comments, records
75
+ decisions and answers to findings, creates issues, and for design drafts also
76
+ publishes versions and sets references and step status (below).
69
77
 
70
78
  Errors come back as tool results with `isError: true` (unknown run, expired
71
79
  run, missing argument); an invalid token is HTTP 401.
@@ -72,8 +72,10 @@ missing with the install command for the OS.
72
72
  The step detail gets Video next to Screenshot: the poster first, nothing loads
73
73
  until played, markers for the start, the capture, actions and failed requests.
74
74
  Technical shows the trace; a click on a row moves the video there. Cards play
75
- the preview on hover. Replay plays the flow recording with its chapters. The
76
- walkthrough video is in the top bar.
75
+ the preview on hover. Videos play on: after one ends, the next step's video
76
+ starts by itself, and replay with video moves to the next step on its own; a
77
+ step that needs a decision waits, a step without video shows its screenshot for
78
+ three seconds. The walkthrough video is in the top bar.
77
79
 
78
80
  ## Plans and sharing
79
81