@knpkv/herdr-work 0.2.0 → 0.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,KAAK,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACnG,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,CACf,KAAK,EAAE,kBAAkB,KACtB,MAAM,CAAC,MAAM,CAChB,kBAAkB,EAClB,2BAA2B,GAAG,mBAAmB,GAAG,cAAc,CACnE,CAAA;IACD,QAAQ,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,GAAG,mBAAmB,CAAC,CAAA;CAChH;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAO1B,CAAA"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,KAAK,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACnG,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,CACf,KAAK,EAAE,kBAAkB,KACtB,MAAM,CAAC,MAAM,CAChB,kBAAkB,EAClB,2BAA2B,GAAG,mBAAmB,GAAG,cAAc,CACnE,CAAA;IACD,QAAQ,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,GAAG,mBAAmB,CAAC,CAAA;CAChH;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAO1B,CAAA"}
package/dist/store.d.ts CHANGED
@@ -43,6 +43,54 @@ export declare class WorkStore implements WorkStoreService {
43
43
  readonly agentId: string;
44
44
  readonly url: string;
45
45
  } | null;
46
+ readonly goalFamily?: {
47
+ readonly canonicalGoalId: string;
48
+ readonly role: "canonical" | "superseded";
49
+ };
50
+ readonly agentHierarchy?: {
51
+ readonly agent: {
52
+ readonly host: string;
53
+ readonly agentId: string;
54
+ readonly name: string;
55
+ readonly paneId: string;
56
+ readonly relationship?: {
57
+ readonly parentAgentId: string;
58
+ readonly relation: "delegated" | "pair" | "review";
59
+ };
60
+ };
61
+ } | null;
62
+ readonly activity?: readonly {
63
+ readonly id: string;
64
+ readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
65
+ readonly summary: string;
66
+ readonly occurredAt: number;
67
+ }[];
68
+ readonly blockers?: readonly {
69
+ readonly summary: string;
70
+ readonly since: number;
71
+ }[];
72
+ readonly requests?: readonly {
73
+ readonly id: string;
74
+ readonly summary: string;
75
+ readonly state: "approved" | "fulfilled" | "open" | "rejected";
76
+ readonly requestedAt: number;
77
+ readonly approvalTarget: {
78
+ readonly host: string;
79
+ readonly jobId: string;
80
+ readonly url: string;
81
+ } | null;
82
+ }[];
83
+ readonly review?: {
84
+ readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
85
+ readonly summary: string | null;
86
+ readonly updatedAt: number;
87
+ readonly url: string | null;
88
+ } | null;
89
+ readonly approvalTarget?: {
90
+ readonly host: string;
91
+ readonly jobId: string;
92
+ readonly url: string;
93
+ } | null;
46
94
  readonly createdAt: number;
47
95
  readonly updatedAt: number;
48
96
  };
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAU,MAAM,QAAQ,CAAA;AAEzD,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC9F,OAAO,EACL,kBAAkB,EAClB,KAAK,kBAAkB,IAAI,sBAAsB,EAGlD,MAAM,YAAY,CAAA;AAyDnB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,CACf,KAAK,EAAE,sBAAsB,KAC1B,MAAM,CAAC,MAAM,CAChB,sBAAsB,EACtB,2BAA2B,GAAG,mBAAmB,GAAG,cAAc,CACnE,CAAA;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,sBAAsB,CAAC,EAAE,cAAc,CAAC,CAAA;CAC1F;AAED,qBAAa,SAAU,YAAW,gBAAgB;;IAGhD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB,OAAO,eAmBN;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,gGAgBlB;IAEF,QAAQ,CAAC,MAAM,+JA4Hb;IAEF,QAAQ,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCASX;IAEF,OAAO,CAAC,WAAW;IAiBnB,KAAK,IAAI,IAAI,CAEZ;CACF"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAS,UAAU,EAAE,IAAI,EAAU,MAAM,QAAQ,CAAA;AAEhE,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE9F,OAAO,EACL,kBAAkB,EAClB,KAAK,kBAAkB,IAAI,sBAAsB,EAGlD,MAAM,YAAY,CAAA;AAsDnB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,CACf,KAAK,EAAE,sBAAsB,KAC1B,MAAM,CAAC,MAAM,CAChB,sBAAsB,EACtB,2BAA2B,GAAG,mBAAmB,GAAG,cAAc,CACnE,CAAA;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,sBAAsB,CAAC,EAAE,cAAc,CAAC,CAAA;CAC1F;AAED,qBAAa,SAAU,YAAW,gBAAgB;;IAGhD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB,OAAO,eAmBN;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,gGAgBlB;IAEF,QAAQ,CAAC,MAAM,+JA6Hb;IAEF,QAAQ,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCASX;IAEF,OAAO,CAAC,WAAW;IAiBnB,KAAK,IAAI,IAAI,CAEZ;CACF"}
package/dist/store.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { fleetResponseBodyMaxBytes } from "@knpkv/herdr-fleet";
2
- import { Effect, FileSystem, Path, Schema } from "effect";
2
+ import { Effect, Equal, FileSystem, Path, Schema } from "effect";
3
3
  import { DatabaseSync } from "node:sqlite";
4
4
  import { WorkCheckpointConflictError, WorkProjectionError, WorkStoreError } from "./errors.js";
5
+ import { validateGoalFamilyHistory } from "./goal-family.js";
5
6
  import { WorkGoalCheckpoint, workHistoryMaxEvents, workSnapshotMaxGoals } from "./model.js";
6
7
  const StoredEventRow = Schema.Struct({ record: Schema.String });
7
8
  const StoredEventRows = Schema.Array(StoredEventRow);
@@ -31,7 +32,6 @@ const decodeRow = (row) => Schema.decodeUnknownEffect(StoredEventRow)(row).pipe(
31
32
  try: () => Schema.decodeUnknownSync(WorkGoalCheckpoint)(JSON.parse(record)),
32
33
  catch: storeError("decode.event")
33
34
  })));
34
- const encodeEvent = (event) => JSON.stringify(Schema.encodeSync(WorkGoalCheckpoint)(event));
35
35
  export class WorkStore {
36
36
  #database;
37
37
  #fileSystem;
@@ -72,7 +72,7 @@ export class WorkStore {
72
72
  });
73
73
  append = Effect.fn("WorkStore.append")(function* (event) {
74
74
  const decoded = yield* Schema.decodeUnknownEffect(WorkGoalCheckpoint)(event).pipe(Effect.mapError(storeError("append.decode")));
75
- const inserted = yield* Effect.try({
75
+ const decision = yield* Effect.try({
76
76
  try: () => {
77
77
  let transaction = false;
78
78
  try {
@@ -83,16 +83,15 @@ export class WorkStore {
83
83
  transaction = false;
84
84
  return { _tag: "rejected", error };
85
85
  };
86
- const existingRows = this.#database.prepare(`SELECT record FROM work_goal_events
87
- WHERE event_id = ? OR (goal_id = ? AND occurred_at = ?)`).all(decoded.eventId, decoded.goal.id, decoded.occurredAt);
88
- if (existingRows.length > 0) {
89
- const encoded = encodeEvent(decoded);
90
- const existingEvents = Schema.decodeUnknownSync(StoredEventRows)(existingRows).map(({ record }) => Schema.decodeUnknownSync(WorkGoalCheckpoint)(JSON.parse(record)));
91
- const existingEvent = existingEvents[0];
92
- if (existingEvents.length === 1 && existingEvent !== undefined && encodeEvent(existingEvent) === encoded) {
86
+ const collisions = Schema.decodeUnknownSync(StoredEventRows)(this.#database
87
+ .prepare(`SELECT record FROM work_goal_events
88
+ WHERE event_id = ? OR (goal_id = ? AND occurred_at = ?)`)
89
+ .all(decoded.eventId, decoded.goal.id, decoded.occurredAt)).map(({ record }) => Schema.decodeUnknownSync(WorkGoalCheckpoint)(JSON.parse(record)));
90
+ if (collisions.length > 0) {
91
+ if (collisions.every((existing) => Equal.equals(existing, decoded))) {
93
92
  this.#database.exec("ROLLBACK");
94
93
  transaction = false;
95
- return { _tag: "replayed", event: existingEvent };
94
+ return { _tag: "replayed", event: decoded };
96
95
  }
97
96
  return reject(new WorkCheckpointConflictError({
98
97
  eventId: decoded.eventId,
@@ -109,6 +108,9 @@ export class WorkStore {
109
108
  }));
110
109
  }
111
110
  const history = Schema.decodeUnknownSync(StoredEventRows)(this.#database.prepare("SELECT record FROM work_goal_events").all()).map(({ record }) => Schema.decodeUnknownSync(WorkGoalCheckpoint)(JSON.parse(record)));
111
+ const familyError = validateGoalFamilyHistory([...history, decoded]);
112
+ if (familyError !== undefined)
113
+ return reject(familyError);
112
114
  if (maximumSnapshotBytes(history, decoded) > fleetResponseBodyMaxBytes) {
113
115
  return reject(new WorkProjectionError({
114
116
  cause: decoded,
@@ -144,7 +146,7 @@ export class WorkStore {
144
146
  }));
145
147
  }
146
148
  }
147
- const result = this.#database.prepare("INSERT INTO work_goal_events (event_id, goal_id, occurred_at, record) VALUES (?, ?, ?, ?)").run(decoded.eventId, decoded.goal.id, decoded.occurredAt, encodeEvent(decoded));
149
+ const result = this.#database.prepare("INSERT INTO work_goal_events (event_id, goal_id, occurred_at, record) VALUES (?, ?, ?, ?)").run(decoded.eventId, decoded.goal.id, decoded.occurredAt, JSON.stringify(decoded));
148
150
  this.#database.exec("COMMIT");
149
151
  transaction = false;
150
152
  return { _tag: "inserted", changes: result.changes };
@@ -157,12 +159,12 @@ export class WorkStore {
157
159
  },
158
160
  catch: storeError("append.insert")
159
161
  });
160
- if (inserted._tag === "rejected")
161
- return yield* inserted.error;
162
- if (inserted._tag === "replayed")
163
- return inserted.event;
164
- if (inserted.changes !== 1 && inserted.changes !== 1n) {
165
- return yield* storeError("append.insert.count")(inserted.changes);
162
+ if (decision._tag === "rejected")
163
+ return yield* decision.error;
164
+ if (decision._tag === "replayed")
165
+ return decision.event;
166
+ if (decision.changes !== 1 && decision.changes !== 1n) {
167
+ return yield* storeError("append.insert.count")(decision.changes);
166
168
  }
167
169
  yield* this.secureFiles();
168
170
  return decoded;
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/view.d.ts CHANGED
@@ -1,6 +1,13 @@
1
1
  import { type ReactElement } from "react";
2
- import type { WorkSnapshots } from "./model.js";
3
- export declare const WorkBoard: ({ snapshots }: {
2
+ import type { WorkSnapshots, WorkSnapshotWindow } from "./model.js";
3
+ export declare const WorkBoard: ({ externalLinks, initialGoalId, initialWindow, navigation, snapshots }: {
4
4
  readonly snapshots: WorkSnapshots;
5
+ readonly externalLinks?: "disabled" | "enabled";
6
+ readonly initialGoalId?: string | null;
7
+ readonly initialWindow?: WorkSnapshotWindow;
8
+ readonly navigation?: (selection: {
9
+ readonly goalId: string | null;
10
+ readonly window: WorkSnapshotWindow;
11
+ }) => string;
5
12
  }) => ReactElement;
6
13
  //# sourceMappingURL=view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,KAAK,EAAyC,aAAa,EAAsB,MAAM,YAAY,CAAA;AAqE1G,eAAO,MAAM,SAAS,kBAAmB;IAAE,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;CAAE,KAAG,YA4KhF,CAAA"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,KAAK,EAQV,aAAa,EACb,kBAAkB,EAEnB,MAAM,YAAY,CAAA;AA6HnB,eAAO,MAAM,SAAS,2EAMnB;IACD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAA;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;KAAE,KAAK,MAAM,CAAA;CACrH,KAAG,YAuVH,CAAA"}
package/dist/view.js CHANGED
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button, Divider, StateLabel, Surface, Text } from "@knpkv/rly/primitives";
3
3
  import { StageRail } from "@knpkv/rly/patterns";
4
4
  import { useState } from "react";
@@ -25,6 +25,18 @@ const deliveryLabel = {
25
25
  merged: "Merged",
26
26
  deployed: "Deployed"
27
27
  };
28
+ const reviewPresentation = {
29
+ not_requested: { label: "Not requested", tone: "neutral" },
30
+ requested: { label: "Requested", tone: "caution" },
31
+ changes_requested: { label: "Changes requested", tone: "critical" },
32
+ approved: { label: "Approved", tone: "positive" }
33
+ };
34
+ const requestPresentation = {
35
+ open: { label: "Open", tone: "caution" },
36
+ approved: { label: "Approved", tone: "positive" },
37
+ rejected: { label: "Rejected", tone: "critical" },
38
+ fulfilled: { label: "Fulfilled", tone: "positive" }
39
+ };
28
40
  const formatTimestamp = (timestamp) => new Intl.DateTimeFormat("en-GB", {
29
41
  dateStyle: "medium",
30
42
  timeStyle: "short"
@@ -35,6 +47,29 @@ const formatSpend = (goal) => goal.spend === null
35
47
  style: "currency",
36
48
  currency: goal.spend.currency
37
49
  }).format(goal.spend.minorUnits / 100);
50
+ const blockersFor = (goal) => {
51
+ if (goal.blockers !== undefined)
52
+ return goal.blockers;
53
+ return goal.blocker === null ? [] : [goal.blocker];
54
+ };
55
+ const activityFor = (goal) => goal.activity ?? [];
56
+ const requestsFor = (goal) => goal.requests ?? [];
57
+ const hierarchyLabel = (goal) => {
58
+ const hierarchy = goal.agentHierarchy;
59
+ if (hierarchy === undefined || hierarchy === null)
60
+ return "No agent hierarchy recorded";
61
+ return `${hierarchy.agent.host} / ${hierarchy.agent.name}`;
62
+ };
63
+ /** Renders the persisted approval deep link after its origin is bound at ingress. */
64
+ const exactLink = (target, label) => (_jsxs("a", { className: "work-exact-link", href: target.url, children: [label, " \u2192"] }));
65
+ /** Renders the persisted review destination without rewriting its credential-free URL. */
66
+ const reviewLink = (url) => (_jsx("a", { className: "work-exact-link", href: url, children: "Open review \u2192" }));
67
+ const reviewLabel = (review) => {
68
+ if (review === undefined || review === null) {
69
+ return _jsx(Text, { tone: "secondary", children: "No review recorded." });
70
+ }
71
+ return (_jsx(StateLabel, { label: reviewPresentation[review.state].label, size: "compact", tone: reviewPresentation[review.state].tone }));
72
+ };
38
73
  const stagesFor = (goal) => {
39
74
  const current = stageOrder.indexOf(goal.delivery);
40
75
  return stageOrder.map((stage, index) => {
@@ -49,17 +84,22 @@ const stagesFor = (goal) => {
49
84
  };
50
85
  const SummaryCell = ({ label, value }) => (_jsxs(Surface, { className: "work-summary-cell", padding: "compact", tone: "secondary", children: [_jsx(Text, { tone: "secondary", variant: "meta", children: label }), _jsx(Text, { as: "span", variant: "card-title", children: value })] }));
51
86
  const snapshotFor = (snapshots, window) => snapshots[window];
52
- export const WorkBoard = ({ snapshots }) => {
53
- const [window, setWindow] = useState("now");
87
+ export const WorkBoard = ({ externalLinks = "enabled", initialGoalId, initialWindow = "now", navigation, snapshots }) => {
88
+ const [window, setWindow] = useState(initialWindow);
54
89
  const snapshot = snapshotFor(snapshots, window);
55
- const [selectedId, setSelectedId] = useState(snapshot.goals[0]?.id ?? null);
90
+ const [selectedId, setSelectedId] = useState(initialGoalId ?? snapshot.goals[0]?.id ?? null);
56
91
  const selected = snapshot.goals.find(({ id }) => id === selectedId) ?? null;
57
92
  const counts = {
58
93
  blocked: snapshot.goals.filter(({ state }) => state === "blocked").length,
59
94
  deployed: snapshot.goals.filter(({ state }) => state === "deployed").length,
95
+ openRequests: snapshot.goals.reduce((count, goal) => count + requestsFor(goal).filter(({ state }) => state === "open").length, 0),
60
96
  review: snapshot.goals.filter(({ state }) => state === "review").length,
61
97
  working: snapshot.goals.filter(({ state }) => state === "working").length
62
98
  };
63
- return (_jsxs("section", { className: "work-page", "aria-labelledby": "work-board-title", children: [_jsxs("header", { className: "work-page-intro", children: [_jsxs("div", { children: [_jsx(Text, { as: "h1", id: "work-board-title", variant: "page-title", children: "Fleet departure board" }), _jsx(Text, { tone: "secondary", variant: "body-large", children: "Exceptions first. Delivery evidence and exact agent context stay one click away." })] }), _jsxs("div", { className: "work-snapshot-stamp", children: [_jsx(Text, { tone: "secondary", variant: "meta", children: "Durable snapshot" }), _jsx(Text, { variant: "code", children: formatTimestamp(snapshot.asOf) })] })] }), _jsxs(Surface, { className: "work-time-travel", padding: "compact", tone: "secondary", children: [_jsxs("div", { className: "work-time-heading", children: [_jsxs("div", { children: [_jsx(Text, { as: "h2", variant: "card-title", children: "Time travel" }), _jsx(Text, { tone: "secondary", variant: "meta", children: "Checkpoint events only. Missing history stays absent." })] }), _jsx(StateLabel, { label: window === "now" ? "Live" : "Historical", tone: window === "now" ? "positive" : "neutral" })] }), _jsx("div", { "aria-label": "Choose work snapshot", className: "work-time-controls", role: "group", children: windows.map((option) => (_jsx(Button, { "aria-pressed": window === option, onClick: () => setWindow(option), variant: window === option ? "primary" : "secondary", children: windowLabel[option] }, option))) })] }), _jsxs("div", { className: "work-summary-grid", "aria-label": "Work summary", children: [_jsx(SummaryCell, { label: "Goals", value: String(snapshot.goals.length) }), _jsx(SummaryCell, { label: "Working", value: String(counts.working) }), _jsx(SummaryCell, { label: "Blocked", value: String(counts.blocked) }), _jsx(SummaryCell, { label: "In review", value: String(counts.review) }), _jsx(SummaryCell, { label: "Deployed", value: String(counts.deployed) })] }), snapshot.goals.length === 0 ? (_jsxs(Surface, { padding: "spacious", tone: "secondary", children: [_jsx(Text, { as: "h2", variant: "card-title", children: "No goals at this checkpoint" }), _jsx(Text, { tone: "secondary", children: "Record a WorkGoalCheckpoint to add durable work state." })] })) : (_jsxs("div", { className: "work-board-layout", children: [_jsxs(Surface, { className: "work-departure-board", padding: "none", tone: "secondary", children: [_jsxs("div", { className: "work-board-head", "aria-hidden": "true", children: [_jsx("span", { children: "Status" }), _jsx("span", { children: "Work" }), _jsx("span", { children: "Owner" }), _jsx("span", { children: "Repository" }), _jsx("span", { children: "Delivery" }), _jsx("span", { children: "Spend" })] }), snapshot.goals.map((goal) => (_jsxs("button", { "aria-pressed": selected?.id === goal.id, className: "work-board-row", onClick: () => setSelectedId(goal.id), type: "button", children: [_jsx(StateLabel, { label: statePresentation[goal.state].label, size: "compact", tone: statePresentation[goal.state].tone }), _jsxs("span", { className: "work-board-copy", children: [_jsx(Text, { as: "strong", variant: "label", children: goal.title }), _jsx(Text, { tone: "secondary", variant: "meta", children: goal.summary })] }), _jsx(Text, { "data-label": "Owner", children: goal.owner.name }), _jsxs("span", { className: "work-board-copy", "data-label": "Repository", children: [_jsx(Text, { variant: "code", children: goal.repository.repository }), _jsx(Text, { tone: "secondary", variant: "meta", children: goal.repository.branch })] }), _jsx(Text, { "data-label": "Delivery", children: deliveryLabel[goal.delivery] }), _jsx(Text, { "data-label": "Spend", variant: "code", children: formatSpend(goal) })] }, goal.id)))] }), selected === null ? null : (_jsxs(Surface, { as: "aside", className: "work-inspector", padding: "spacious", children: [_jsx(StateLabel, { label: statePresentation[selected.state].label, tone: statePresentation[selected.state].tone }), _jsx(Text, { as: "h2", variant: "section-title", children: selected.title }), _jsx(Text, { tone: "secondary", children: selected.detail }), selected.blocker === null ? null : (_jsxs(Surface, { padding: "compact", tone: "secondary", children: [_jsxs(Text, { variant: "meta", tone: "secondary", children: ["Blocked since ", formatTimestamp(selected.blocker.since)] }), _jsx(Text, { children: selected.blocker.summary })] })), _jsx(Divider, {}), _jsxs("dl", { className: "work-facts", children: [_jsxs("div", { children: [_jsx("dt", { children: "Owner" }), _jsx("dd", { children: selected.owner.name })] }), _jsxs("div", { children: [_jsx("dt", { children: "Repository" }), _jsx("dd", { children: selected.repository.repository })] }), _jsxs("div", { children: [_jsx("dt", { children: "Branch" }), _jsx("dd", { children: selected.repository.branch })] }), _jsxs("div", { children: [_jsx("dt", { children: "Spend" }), _jsx("dd", { children: formatSpend(selected) })] })] }), selected.connectTarget === null ? (_jsx(Text, { tone: "secondary", children: "No worker has started for this goal." })) : (_jsx("a", { className: "work-connect-link", href: selected.connectTarget.url, children: "Open exact agent in Connect \u2192" }))] }))] })), selected === null ? null : (_jsx(Surface, { className: "work-delivery-evidence", padding: "spacious", children: _jsx(StageRail, { heading: `Delivery path · ${selected.title}`, stages: stagesFor(selected) }) }))] }));
99
+ return (_jsxs("section", { className: "work-page", "aria-labelledby": "work-board-title", children: [_jsxs("header", { className: "work-page-intro", children: [_jsxs("div", { children: [_jsx(Text, { as: "h1", id: "work-board-title", variant: "page-title", children: "Daily fleet Work" }), _jsx(Text, { tone: "secondary", variant: "body-large", children: "One durable view of who owns the work, what is blocked, and what ships next." })] }), _jsxs("div", { className: "work-snapshot-stamp", children: [_jsx(Text, { tone: "secondary", variant: "meta", children: "Durable snapshot" }), _jsx(Text, { variant: "code", children: formatTimestamp(snapshot.asOf) })] })] }), _jsxs(Surface, { className: "work-time-travel", padding: "compact", tone: "secondary", children: [_jsxs("div", { className: "work-time-heading", children: [_jsxs("div", { children: [_jsx(Text, { as: "h2", variant: "card-title", children: "Time travel" }), _jsx(Text, { tone: "secondary", variant: "meta", children: "Checkpoint events only. Missing history stays absent." })] }), _jsx(StateLabel, { label: window === "now" ? "Live" : "Historical", tone: window === "now" ? "positive" : "neutral" })] }), _jsx("div", { "aria-label": "Choose work snapshot", className: "work-time-controls", role: "group", children: windows.map((option) => navigation === undefined ? (_jsx(Button, { "aria-pressed": window === option, onClick: () => setWindow(option), variant: window === option ? "primary" : "secondary", children: windowLabel[option] }, option)) : (_jsx("a", { "aria-current": window === option ? "page" : undefined, className: "work-time-link", href: navigation({ goalId: null, window: option }), children: windowLabel[option] }, option))) })] }), _jsxs("div", { className: "work-summary-grid", "aria-label": "Work summary", children: [_jsx(SummaryCell, { label: "Goals", value: String(snapshot.goals.length) }), _jsx(SummaryCell, { label: "Working", value: String(counts.working) }), _jsx(SummaryCell, { label: "Blocked", value: String(counts.blocked) }), _jsx(SummaryCell, { label: "Open requests", value: String(counts.openRequests) }), _jsx(SummaryCell, { label: "In review", value: String(counts.review) }), _jsx(SummaryCell, { label: "Deployed", value: String(counts.deployed) })] }), snapshot.goals.length === 0 ? (_jsxs(Surface, { padding: "spacious", tone: "secondary", children: [_jsx(Text, { as: "h2", variant: "card-title", children: "No goals at this checkpoint" }), _jsx(Text, { tone: "secondary", children: "Record a WorkGoalCheckpoint to add durable work state." })] })) : (_jsxs("div", { className: "work-board-layout", children: [_jsxs(Surface, { className: "work-departure-board", padding: "none", tone: "secondary", children: [_jsxs("div", { className: "work-board-head", "aria-hidden": "true", children: [_jsx("span", { children: "Status" }), _jsx("span", { children: "Work" }), _jsx("span", { children: "Owner" }), _jsx("span", { children: "Agent / host" }), _jsx("span", { children: "Repository" }), _jsx("span", { children: "Shipment" }), _jsx("span", { children: "Spend" })] }), snapshot.goals.map((goal) => {
100
+ const row = (_jsxs(_Fragment, { children: [_jsx(StateLabel, { label: statePresentation[goal.state].label, size: "compact", tone: statePresentation[goal.state].tone }), _jsxs("span", { className: "work-board-copy", children: [_jsx(Text, { as: "strong", variant: "label", children: goal.title }), _jsx(Text, { tone: "secondary", variant: "meta", children: goal.summary })] }), _jsx(Text, { "data-label": "Owner", children: goal.owner.name }), _jsxs("span", { className: "work-board-copy", "data-label": "Agent / host", children: [_jsx(Text, { children: hierarchyLabel(goal) }), goal.agentHierarchy?.agent.relationship === undefined ? null : (_jsxs(Text, { tone: "secondary", variant: "meta", children: [goal.agentHierarchy.agent.relationship.relation, " \u00B7", " ", goal.agentHierarchy.agent.relationship.parentAgentId] }))] }), _jsxs("span", { className: "work-board-copy", "data-label": "Repository", children: [_jsx(Text, { variant: "code", children: goal.repository.repository }), _jsx(Text, { tone: "secondary", variant: "meta", children: goal.repository.branch })] }), _jsx(Text, { "data-label": "Shipment", children: deliveryLabel[goal.delivery] }), _jsx(Text, { "data-label": "Spend", variant: "code", children: formatSpend(goal) })] }));
101
+ return navigation === undefined ? (_jsx("button", { "aria-pressed": selected?.id === goal.id, className: "work-board-row", onClick: () => setSelectedId(goal.id), type: "button", children: row }, goal.id)) : (_jsx("a", { "aria-current": selected?.id === goal.id ? "true" : undefined, className: "work-board-row", href: navigation({ goalId: goal.id, window }), children: row }, goal.id));
102
+ })] }), selected === null ? null : (_jsxs(Surface, { as: "aside", className: "work-inspector", padding: "spacious", children: [_jsx(StateLabel, { label: statePresentation[selected.state].label, tone: statePresentation[selected.state].tone }), _jsx(Text, { as: "h2", variant: "section-title", children: selected.title }), _jsx(Text, { tone: "secondary", children: selected.detail }), _jsxs("div", { className: "work-inspector-section", children: [_jsx(Text, { as: "h3", variant: "label", children: "Agent hierarchy" }), selected.agentHierarchy === undefined || selected.agentHierarchy === null ? (_jsx(Text, { tone: "secondary", children: "No authoritative agent assignment recorded." })) : (_jsxs(_Fragment, { children: [_jsxs(Text, { children: [selected.agentHierarchy.agent.host, " / ", selected.agentHierarchy.agent.name] }), _jsx(Text, { tone: "secondary", variant: "code", children: selected.agentHierarchy.agent.agentId }), selected.agentHierarchy.agent.relationship === undefined ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "Fleet root agent" })) : (_jsxs(Text, { tone: "secondary", variant: "meta", children: [selected.agentHierarchy.agent.relationship.relation, " from", " ", selected.agentHierarchy.agent.relationship.parentAgentId] }))] }))] }), _jsx(Divider, {}), _jsxs("dl", { className: "work-facts", children: [_jsxs("div", { children: [_jsx("dt", { children: "Owner" }), _jsx("dd", { children: selected.owner.name })] }), _jsxs("div", { children: [_jsx("dt", { children: "Repository" }), _jsx("dd", { children: selected.repository.repository })] }), _jsxs("div", { children: [_jsx("dt", { children: "Branch" }), _jsx("dd", { children: selected.repository.branch })] }), _jsxs("div", { children: [_jsx("dt", { children: "Shipment stage" }), _jsx("dd", { children: deliveryLabel[selected.delivery] })] }), _jsxs("div", { children: [_jsx("dt", { children: "Spend" }), _jsx("dd", { children: formatSpend(selected) })] })] }), _jsxs("div", { className: "work-inspector-section", children: [_jsx(Text, { as: "h3", variant: "label", children: "Blockers" }), blockersFor(selected).length === 0 ? (_jsx(Text, { tone: "secondary", children: "No blockers recorded." })) : (blockersFor(selected).map((blocker) => (_jsxs(Surface, { padding: "compact", tone: "secondary", children: [_jsxs(Text, { variant: "meta", tone: "secondary", children: ["Since ", formatTimestamp(blocker.since)] }), _jsx(Text, { children: blocker.summary })] }, `${blocker.since}-${blocker.summary}`))))] }), _jsxs("div", { className: "work-inspector-section", children: [_jsx(Text, { as: "h3", variant: "label", children: "Activity" }), selected.activity === undefined ? (_jsx(Text, { tone: "secondary", children: "No activity recorded." })) : activityFor(selected).length === 0 ? (_jsx(Text, { tone: "secondary", children: "Activity is clear." })) : (_jsx("ul", { className: "work-detail-list", children: activityFor(selected).map((entry) => (_jsxs("li", { children: [_jsxs(Text, { variant: "meta", tone: "secondary", children: [entry.kind, " \u00B7 ", formatTimestamp(entry.occurredAt)] }), _jsx(Text, { children: entry.summary })] }, entry.id))) }))] }), _jsxs("div", { className: "work-inspector-section", children: [_jsx(Text, { as: "h3", variant: "label", children: "Requests" }), selected.requests === undefined ? (_jsx(Text, { tone: "secondary", children: "No requests recorded." })) : requestsFor(selected).length === 0 ? (_jsx(Text, { tone: "secondary", children: "No outstanding requests." })) : (_jsx("ul", { className: "work-detail-list", children: requestsFor(selected).map((request) => (_jsxs("li", { children: [_jsxs("div", { className: "work-request-heading", children: [_jsx(Text, { children: request.summary }), _jsx(StateLabel, { label: requestPresentation[request.state].label, size: "compact", tone: requestPresentation[request.state].tone })] }), request.approvalTarget === null ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "No approval link recorded." })) : externalLinks === "disabled" ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "Approval target recorded." })) : (exactLink(request.approvalTarget, `Open ${request.approvalTarget.host} approval`))] }, request.id))) }))] }), _jsxs("div", { className: "work-inspector-section", children: [_jsx(Text, { as: "h3", variant: "label", children: "Review" }), _jsxs("div", { className: "work-review-heading", children: [reviewLabel(selected.review), selected.review?.url === null || selected.review?.url === undefined ? null : externalLinks ===
103
+ "disabled" ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "Review target recorded." })) : (reviewLink(selected.review.url))] }), selected.review?.summary === null || selected.review?.summary === undefined ? null : (_jsx(Text, { tone: "secondary", children: selected.review.summary }))] }), selected.connectTarget === null ? (_jsx(Text, { tone: "secondary", children: "No exact Connect target recorded." })) : externalLinks === "disabled" ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "Connect target recorded." })) : (_jsx("a", { className: "work-connect-link", href: selected.connectTarget.url, children: "Open exact agent in Connect \u2192" })), selected.approvalTarget === undefined || selected.approvalTarget === null ? (_jsx(Text, { tone: "secondary", children: "No exact approval target recorded." })) : externalLinks === "disabled" ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "Approval target recorded." })) : (exactLink(selected.approvalTarget, `Open ${selected.approvalTarget.host} approval`))] }))] })), selected === null ? null : (_jsx(Surface, { className: "work-delivery-evidence", padding: "spacious", children: _jsx(StageRail, { heading: `Shipment path · ${selected.title}`, stages: stagesFor(selected) }) }))] }));
64
104
  };
65
105
  //# sourceMappingURL=view.js.map
package/dist/view.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knpkv/herdr-work",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Durable fleet work checkpoints and departure-board projections",
5
5
  "license": "MIT",
6
6
  "author": "knpkv",
@@ -44,15 +44,17 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "effect": "4.0.0-rc.109",
47
- "@knpkv/herdr-fleet": "^0.2.0",
48
- "@knpkv/rly": "^0.4.1"
47
+ "@knpkv/herdr-fleet": "^0.3.0",
48
+ "@knpkv/rly": "^0.5.1"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@effect/platform-node": "4.0.0-rc.109",
52
52
  "@effect/vitest": "4.0.0-rc.109",
53
53
  "@types/node": "^26.2.0",
54
54
  "@types/react": "^19.2.18",
55
+ "@types/react-dom": "^19.2.4",
55
56
  "react": "^19.2.8",
57
+ "react-dom": "^19.2.8",
56
58
  "rimraf": "^6.1.3",
57
59
  "typescript": "npm:@typescript/typescript6@^6.0.2",
58
60
  "vitest": "^4.1.10"
package/src/styles.css CHANGED
@@ -45,7 +45,7 @@
45
45
  .work-summary-grid {
46
46
  display: grid;
47
47
  gap: var(--rly-space-8);
48
- grid-template-columns: repeat(5, minmax(0, 1fr));
48
+ grid-template-columns: repeat(6, minmax(0, 1fr));
49
49
  }
50
50
  .work-summary-cell {
51
51
  display: flex;
@@ -59,14 +59,17 @@
59
59
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.32fr);
60
60
  }
61
61
  .work-departure-board {
62
- overflow: hidden;
62
+ overflow-x: auto;
63
+ overflow-y: hidden;
63
64
  }
64
65
  .work-board-head,
65
66
  .work-board-row {
66
67
  align-items: center;
67
68
  display: grid;
68
69
  gap: var(--rly-space-16);
69
- grid-template-columns: 7.5rem minmax(15rem, 1.4fr) minmax(8.75rem, 0.6fr) minmax(10.5rem, 0.7fr) 6rem 7rem;
70
+ grid-template-columns:
71
+ 7.5rem minmax(15rem, 1.4fr) minmax(8.75rem, 0.6fr) minmax(13rem, 0.9fr) minmax(10.5rem, 0.7fr)
72
+ 6rem 7rem;
70
73
  padding: var(--rly-space-12) var(--rly-space-16);
71
74
  }
72
75
  .work-board-head {
@@ -111,6 +114,46 @@
111
114
  text-align: center;
112
115
  text-decoration: none;
113
116
  }
117
+ .work-exact-link {
118
+ color: var(--rly-color-action-foreground);
119
+ font: var(--rly-type-label-weight) var(--rly-type-label-size) / var(--rly-type-label-line-height)
120
+ var(--rly-type-label-font);
121
+ text-decoration: underline;
122
+ text-decoration-color: color-mix(in srgb, var(--rly-color-action-foreground) 45%, transparent);
123
+ text-underline-offset: 0.2em;
124
+ }
125
+ .work-exact-link:focus-visible,
126
+ .work-exact-link:hover {
127
+ text-decoration-color: currentColor;
128
+ }
129
+ .work-inspector-section {
130
+ display: grid;
131
+ gap: var(--rly-space-8);
132
+ }
133
+ .work-inspector-section h3 {
134
+ margin: 0;
135
+ }
136
+ .work-detail-list {
137
+ display: grid;
138
+ gap: var(--rly-space-8);
139
+ list-style: none;
140
+ margin: 0;
141
+ padding: 0;
142
+ }
143
+ .work-detail-list li {
144
+ border-block-start: 1px solid var(--rly-color-border-1);
145
+ display: grid;
146
+ gap: var(--rly-space-6);
147
+ padding-block-start: var(--rly-space-8);
148
+ }
149
+ .work-request-heading,
150
+ .work-review-heading {
151
+ align-items: center;
152
+ display: flex;
153
+ flex-wrap: wrap;
154
+ gap: var(--rly-space-8);
155
+ justify-content: space-between;
156
+ }
114
157
  .work-facts {
115
158
  display: grid;
116
159
  gap: var(--rly-space-8);