@re-cinq/floor-client 0.1.7 → 0.1.10

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
@@ -17,6 +17,8 @@ for await (const frame of floor.runs.watch(run.id)) {
17
17
  }
18
18
  ```
19
19
 
20
+ `repo` is left out for a line with no `git` argument, and the run then has none: `run.repo` is `null`. `floor.runs.list({ withoutRepo: true })` lists those runs.
21
+
20
22
  ## Where this fits
21
23
 
22
24
  The one way anything reaches a floor from outside it. [`apps/cluster-agent`](../../apps/cluster-agent/README.md), [`@re-cinq/floor-station`](../station/README.md), [`@re-cinq/floor-pipeline`](../pipeline/README.md) and the lore converter all talk to a floor through this, and so does lore. It links no part of the floor's own storage — only [`@re-cinq/floor-contracts`](../contracts/README.md), for the shapes — so a floor's database is not reachable through it even by accident.
@@ -52,6 +54,8 @@ Everything else a floor refuses throws a `FloorProblem` carrying the RFC 9457 bo
52
54
 
53
55
  There is no idle timeout here on purpose. A caught-up quiet run legitimately says nothing for minutes; the floor's own ping already finds a dead viewer, and a client-side timer would only reconnect healthy watches.
54
56
 
57
+ A run a start by hand reopened goes on past its `run_settled`: `run_reopened` follows it, and the watch ends only at the settling the journal ends on.
58
+
55
59
  One caveat for a relay: `visit_opened` and `visit_reported` carry the whole visit, `agentSettings` included — the model, the prompt, the image. Filter those before they reach a browser.
56
60
 
57
61
  `runs.watchFloor(options)` follows the whole floor instead of one run: `run_started` and `run_changed`, each with a run's id and nothing else. It has no cursor. The floor opens every connection with `resync`, which means "read your list again", so a watch that drops comes back with nothing to remember. It is refused without the service token and comes back from everything else.
package/dist/filters.d.ts CHANGED
@@ -2,9 +2,11 @@
2
2
  export type OneOf<Fields> = {
3
3
  [Named in keyof Fields]-?: Required<Pick<Fields, Named>> & Partial<Omit<Fields, Named>>;
4
4
  }[keyof Fields];
5
+ /** `withoutRepo` asks for the runs that belong to no repository; a floor refuses it together with `repo`. */
5
6
  export type RunFilter = OneOf<{
6
7
  line: string;
7
8
  repo: string;
9
+ withoutRepo: true;
8
10
  subject: string;
9
11
  open: boolean;
10
12
  since: string;
package/dist/runs.d.ts CHANGED
@@ -4,7 +4,8 @@ import { type Reachable } from "./send.js";
4
4
  import { type FloorWatch, type FloorWatchOptions } from "./floor-live.js";
5
5
  import { type RunWatch, type WatchOptions } from "./live.js";
6
6
  export interface StartRun {
7
- repo: string;
7
+ /** Left out for a line with no `git` argument: the run then belongs to no repository, and its `repo` is null. */
8
+ repo?: string;
8
9
  startItems: Record<string, Item>;
9
10
  /** Starts somewhere other than the line's entry; the node must exist. */
10
11
  entry?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@re-cinq/floor-client",
3
- "version": "0.1.7",
3
+ "version": "0.1.10",
4
4
  "description": "The floor over HTTP and its live socket, typed: definitions, runs, visits, blobs, events, schedules and costs, plus a watch that replays a run from a cursor and reconnects without losing a frame.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -45,7 +45,7 @@
45
45
  "typecheck": "tsc --noEmit"
46
46
  },
47
47
  "dependencies": {
48
- "@re-cinq/floor-contracts": "0.1.7"
48
+ "@re-cinq/floor-contracts": "0.1.10"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@types/node": "^22.20.1",