@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.
- package/README.md +13 -1
- package/dist/goal-family.d.ts +4 -0
- package/dist/goal-family.d.ts.map +1 -0
- package/dist/goal-family.js +32 -0
- package/dist/goal-family.js.map +1 -0
- package/dist/model.d.ts +404 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +110 -2
- package/dist/model.js.map +1 -1
- package/dist/projection.d.ts +192 -0
- package/dist/projection.d.ts.map +1 -1
- package/dist/projection.js +7 -2
- package/dist/projection.js.map +1 -1
- package/dist/service.d.ts +192 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/store.d.ts +48 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +20 -18
- package/dist/store.js.map +1 -1
- package/dist/view.d.ts +9 -2
- package/dist/view.d.ts.map +1 -1
- package/dist/view.js +45 -5
- package/dist/view.js.map +1 -1
- package/package.json +5 -3
- package/src/styles.css +46 -3
package/dist/service.d.ts.map
CHANGED
|
@@ -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
|
|
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
|
};
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,
|
|
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
|
|
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
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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:
|
|
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,
|
|
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 (
|
|
161
|
-
return yield*
|
|
162
|
-
if (
|
|
163
|
-
return
|
|
164
|
-
if (
|
|
165
|
-
return yield* storeError("append.insert.count")(
|
|
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":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;
|
|
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
|
package/dist/view.d.ts.map
CHANGED
|
@@ -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,
|
|
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(
|
|
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: "
|
|
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.
|
|
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.
|
|
48
|
-
"@knpkv/rly": "^0.
|
|
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(
|
|
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:
|
|
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:
|
|
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);
|