@sealant/mend 0.36.0-next.663 → 0.36.0-next.675
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/dist/{chunk-VOP6USOZ.js → chunk-TP4A72RF.js} +43 -2
- package/dist/{dashboard-CEJN6IOO.js → dashboard-RAZDVFR7.js} +8 -2
- package/dist/main.js +1521 -175
- package/man/mend-accounts.1 +1 -1
- package/man/mend-adopt.1 +1 -1
- package/man/mend-attach.1 +1 -1
- package/man/mend-codex.1 +1 -1
- package/man/mend-completions.1 +1 -1
- package/man/mend-connect-pi.1 +1 -1
- package/man/mend-connect.1 +1 -1
- package/man/mend-continue.1 +1 -1
- package/man/mend-doctor.1 +1 -1
- package/man/mend-dotfiles-repo.1 +1 -1
- package/man/mend-dotfiles-sync.1 +1 -1
- package/man/mend-dotfiles.1 +1 -1
- package/man/mend-env-cluster.1 +1 -1
- package/man/mend-env-load.1 +1 -1
- package/man/mend-env-show.1 +1 -1
- package/man/mend-folder-create.1 +1 -1
- package/man/mend-folder-list.1 +1 -1
- package/man/mend-folder-push.1 +1 -1
- package/man/mend-folder-rm.1 +1 -1
- package/man/mend-git-author.1 +1 -1
- package/man/mend-help.1 +1 -1
- package/man/mend-invite.1 +1 -1
- package/man/mend-keys-init.1 +1 -1
- package/man/mend-keys-mode.1 +1 -1
- package/man/mend-keys-share.1 +1 -1
- package/man/mend-keys-show.1 +1 -1
- package/man/mend-land.1 +1 -1
- package/man/mend-login.1 +1 -1
- package/man/mend-logout.1 +1 -1
- package/man/mend-logs.1 +13 -2
- package/man/mend-man.1 +1 -1
- package/man/mend-members.1 +1 -1
- package/man/mend-memory-import.1 +1 -1
- package/man/mend-memory-rm.1 +1 -1
- package/man/mend-memory-show.1 +1 -1
- package/man/mend-memory.1 +1 -1
- package/man/mend-models.1 +1 -1
- package/man/mend-operator-exposure.1 +2 -2
- package/man/mend-operator-gate.1 +1 -1
- package/man/mend-operator-grant-owner.1 +1 -1
- package/man/mend-operator-org-create.1 +1 -1
- package/man/mend-operator-org-invite-owner.1 +1 -1
- package/man/mend-operator-org-list.1 +1 -1
- package/man/mend-operator-org-rename.1 +1 -1
- package/man/mend-operator-reset-link.1 +1 -1
- package/man/mend-pair.1 +1 -1
- package/man/mend-projects.1 +1 -1
- package/man/mend-pull.1 +1 -1
- package/man/mend-refresh.1 +1 -1
- package/man/mend-rejoin.1 +1 -1
- package/man/mend-resume.1 +1 -1
- package/man/mend-run.1 +2 -2
- package/man/mend-secrets-add.1 +1 -1
- package/man/mend-secrets-rm.1 +1 -1
- package/man/mend-secrets.1 +1 -1
- package/man/mend-server-logs.1 +1 -1
- package/man/mend-server-restart.1 +1 -1
- package/man/mend-server-setup.1 +42 -2
- package/man/mend-server-start.1 +1 -1
- package/man/mend-server-status.1 +4 -2
- package/man/mend-server-stop.1 +2 -2
- package/man/mend-server-upgrade.1 +1 -1
- package/man/mend-server.1 +1 -1
- package/man/mend-service-add.1 +1 -1
- package/man/mend-service-connect.1 +1 -1
- package/man/mend-service-init.1 +1 -1
- package/man/mend-service-list.1 +10 -4
- package/man/mend-service-logs.1 +1 -1
- package/man/mend-service-restart.1 +1 -1
- package/man/mend-service-run.1 +13 -6
- package/man/mend-service-stop.1 +1 -1
- package/man/mend-session-share.1 +1 -1
- package/man/mend-sessions.1 +1 -1
- package/man/mend-shell.1 +1 -1
- package/man/mend-skills-push.1 +1 -1
- package/man/mend-skills.1 +1 -1
- package/man/mend-snake.1 +1 -1
- package/man/mend-ssh-setup.1 +1 -1
- package/man/mend-ssh.1 +1 -1
- package/man/mend-stop.1 +1 -1
- package/man/mend-ui.1 +1 -1
- package/man/mend-uninstall.1 +1 -1
- package/man/mend-version.1 +1 -1
- package/man/mend-wait.1 +5 -5
- package/man/mend-workspace-replace.1 +1 -1
- package/man/mend-worktrees-rm.1 +1 -1
- package/man/mend-worktrees.1 +1 -1
- package/man/mend.1 +3 -3
- package/package.json +2 -2
|
@@ -27627,6 +27627,7 @@ var AgentEvent = Schema_exports.Union([
|
|
|
27627
27627
|
var CaptureDrainReason = Schema_exports.Literals(["stop", "relaunch", "replacement"]);
|
|
27628
27628
|
var FALLBACK_REPLACEMENT_AGE_SECONDS = 7 * 60 * 60 + 30 * 60;
|
|
27629
27629
|
var CAPTURE_EXECUTOR_RETAINED = "retained";
|
|
27630
|
+
var CAPTURE_SEAL_UNRESTORABLE = "unrestorable";
|
|
27630
27631
|
var CAPTURE_COMPLETION_UNREPORTED = "unreported";
|
|
27631
27632
|
var captureDurationWords = (ms) => {
|
|
27632
27633
|
const seconds2 = Math.max(0, Math.floor(ms / 1e3));
|
|
@@ -27686,6 +27687,8 @@ var captureIncompleteWords = (reason) => {
|
|
|
27686
27687
|
return "executor error";
|
|
27687
27688
|
case CAPTURE_EXECUTOR_RETAINED:
|
|
27688
27689
|
return "executor kept for recovery";
|
|
27690
|
+
case CAPTURE_SEAL_UNRESTORABLE:
|
|
27691
|
+
return "final seal refused \xB7 git section failed verification";
|
|
27689
27692
|
default:
|
|
27690
27693
|
return reason;
|
|
27691
27694
|
}
|
|
@@ -27788,6 +27791,18 @@ var CheckpointTrigger = Schema_exports.Literals([
|
|
|
27788
27791
|
"review-open",
|
|
27789
27792
|
"user-mark"
|
|
27790
27793
|
]);
|
|
27794
|
+
var CheckpointSourceKind = Schema_exports.Literals(["stop-final", "stop-reading"]);
|
|
27795
|
+
var CheckpointSource = class extends Schema_exports.Class("CheckpointSource")({
|
|
27796
|
+
kind: CheckpointSourceKind,
|
|
27797
|
+
captureN: Schema_exports.NullOr(Schema_exports.Int),
|
|
27798
|
+
observedAt: Timestamp
|
|
27799
|
+
}) {
|
|
27800
|
+
};
|
|
27801
|
+
var checkpointSourceWords = (source, at) => [
|
|
27802
|
+
source.kind === "stop-final" ? "from the Stop's final save" : "from a Stop reading that did not save",
|
|
27803
|
+
...source.captureN === null ? [] : [`capture ${source.captureN}`],
|
|
27804
|
+
at
|
|
27805
|
+
].join(" \xB7 ");
|
|
27791
27806
|
var Checkpoint = class extends Schema_exports.Class("Checkpoint")({
|
|
27792
27807
|
id: CheckpointId,
|
|
27793
27808
|
worktreeId: WorktreeId,
|
|
@@ -27810,7 +27825,9 @@ var Checkpoint = class extends Schema_exports.Class("Checkpoint")({
|
|
|
27810
27825
|
/** Record sequence the supervisor had seen when the snapshot was taken. */
|
|
27811
27826
|
seq: SequenceNumber,
|
|
27812
27827
|
trigger: CheckpointTrigger,
|
|
27813
|
-
createdAt: Timestamp
|
|
27828
|
+
createdAt: Timestamp,
|
|
27829
|
+
/** Absent when the checkpoint observed the executor itself (`CheckpointSource`). */
|
|
27830
|
+
source: Schema_exports.optionalKey(CheckpointSource)
|
|
27814
27831
|
}) {
|
|
27815
27832
|
};
|
|
27816
27833
|
|
|
@@ -28227,6 +28244,19 @@ var Session = class extends Schema_exports.Class("Session")({
|
|
|
28227
28244
|
Schema_exports.withDecodingDefaultKey(Effect_exports.succeed(null)),
|
|
28228
28245
|
Schema_exports.withConstructorDefault(Effect_exports.succeed(null))
|
|
28229
28246
|
),
|
|
28247
|
+
/**
|
|
28248
|
+
* Who launched the session's executor: the owner of the session whose own launch made it
|
|
28249
|
+
* (`SessionsRepo.executorSessionOf`), which a joined session is not. Remote-SSH into the workspace
|
|
28250
|
+
* admits that person only (docs/adr/0016), in either harness layout, so an editor asks before it
|
|
28251
|
+
* opens. Filled on every API read that hands sessions out (the session list, retained additions
|
|
28252
|
+
* included, the session view and the project view): the view reads in their own statement, the
|
|
28253
|
+
* plain reads from one batched read (`SessionsRepo.launchersOf`). Null with no executor, on the
|
|
28254
|
+
* repository's other reads, and from older servers.
|
|
28255
|
+
*/
|
|
28256
|
+
workspaceLauncherUserId: Schema_exports.NullOr(Schema_exports.String).pipe(
|
|
28257
|
+
Schema_exports.withDecodingDefaultKey(Effect_exports.succeed(null)),
|
|
28258
|
+
Schema_exports.withConstructorDefault(Effect_exports.succeed(null))
|
|
28259
|
+
),
|
|
28230
28260
|
/**
|
|
28231
28261
|
* Whether the harness left a conversation behind — a transcript Mend captured at settle or
|
|
28232
28262
|
* found in the live harness home. False is a dead end: nothing to resume, nothing to hand
|
|
@@ -28371,6 +28401,7 @@ var HotWorkspaceEnvironment = Schema_exports.Struct({
|
|
|
28371
28401
|
clusterBindingNames: Schema_exports.optional(Schema_exports.Array(Schema_exports.String)),
|
|
28372
28402
|
clusterServiceAccount: Schema_exports.optional(Schema_exports.NullOr(Schema_exports.String))
|
|
28373
28403
|
});
|
|
28404
|
+
var RemoteSsh = Schema_exports.Literals(["owner", "unbound", "not-taken"]);
|
|
28374
28405
|
var HotWorkspace = class extends Schema_exports.Class("HotWorkspace")({
|
|
28375
28406
|
id: SessionId,
|
|
28376
28407
|
projectId: ProjectId,
|
|
@@ -28397,6 +28428,13 @@ var HotWorkspace = class extends Schema_exports.Class("HotWorkspace")({
|
|
|
28397
28428
|
* `shared`.
|
|
28398
28429
|
*/
|
|
28399
28430
|
harnessLayout: HarnessLayout,
|
|
28431
|
+
/**
|
|
28432
|
+
* Who Remote-SSH into the standby runs as (docs/adr/0016, decision 10), decided at its create and
|
|
28433
|
+
* kept for its claim: `owner` its owner's own user; `unbound` root, because Core could not bind
|
|
28434
|
+
* the owner's person; `not-taken` root, because Core runs no SSH session as a user. Rows from
|
|
28435
|
+
* before it are `not-taken`.
|
|
28436
|
+
*/
|
|
28437
|
+
remoteSsh: RemoteSsh,
|
|
28400
28438
|
/** Worktree directory name inside the project's store (derived from `id`). */
|
|
28401
28439
|
worktree: Schema_exports.NullOr(Schema_exports.String),
|
|
28402
28440
|
/** The pre-created session branch the worktree is on. */
|
|
@@ -28544,7 +28582,7 @@ var ProjectClusterBindingsSnapshot = class extends Schema_exports.Class(
|
|
|
28544
28582
|
}) {
|
|
28545
28583
|
};
|
|
28546
28584
|
|
|
28547
|
-
// ../../node_modules/.pnpm/@sealant+api-contracts-next@0.39.0-next.
|
|
28585
|
+
// ../../node_modules/.pnpm/@sealant+api-contracts-next@0.39.0-next.712_effect@4.0.0-beta.93/node_modules/@sealant/api-contracts-next/dist/workspace-environment.js
|
|
28548
28586
|
var RESERVED_NAMES = new Map([
|
|
28549
28587
|
// Identity/process roots the daemon and shells own.
|
|
28550
28588
|
...[
|
|
@@ -29013,6 +29051,7 @@ var ServiceView = class extends Schema_exports.Class("ServiceView")({
|
|
|
29013
29051
|
previousEndpoints: Schema_exports.Array(ServiceEndpoint)
|
|
29014
29052
|
}) {
|
|
29015
29053
|
};
|
|
29054
|
+
var serviceStartCorrelation = (serviceId, startId) => `service-start:${serviceId}:${startId}`;
|
|
29016
29055
|
|
|
29017
29056
|
// ../../packages/domain/src/workbench/session-control.ts
|
|
29018
29057
|
var SessionControlKind = Schema_exports.Literals([
|
|
@@ -29875,6 +29914,7 @@ export {
|
|
|
29875
29914
|
AGENT_MEMORY_MAX_FILE_BYTES,
|
|
29876
29915
|
AGENT_MEMORY_MAX_DATABASE_BYTES,
|
|
29877
29916
|
agentMemoryNameOf,
|
|
29917
|
+
checkpointSourceWords,
|
|
29878
29918
|
narrowCredential,
|
|
29879
29919
|
claudeGrantFacts,
|
|
29880
29920
|
sameGrant,
|
|
@@ -29891,6 +29931,7 @@ export {
|
|
|
29891
29931
|
validatePiProfile,
|
|
29892
29932
|
servicesHoldLine,
|
|
29893
29933
|
validateSecretFilePath,
|
|
29934
|
+
serviceStartCorrelation,
|
|
29894
29935
|
terminalReadOnlyLine,
|
|
29895
29936
|
sharedControlLine,
|
|
29896
29937
|
sharedControlConfirm,
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
agentIsLive,
|
|
6
6
|
agentOutcome,
|
|
7
7
|
captureLineOf,
|
|
8
|
+
checkpointSourceWords,
|
|
8
9
|
createSseParser,
|
|
9
10
|
cwdFacts,
|
|
10
11
|
eventFamilies,
|
|
@@ -23,7 +24,7 @@ import {
|
|
|
23
24
|
workspaceReadsOf,
|
|
24
25
|
worktreeJoinLine,
|
|
25
26
|
wrapWords
|
|
26
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-TP4A72RF.js";
|
|
27
28
|
|
|
28
29
|
// src/dashboard.tsx
|
|
29
30
|
import { CliRenderEvents, createCliRenderer } from "@opentui/core";
|
|
@@ -1120,6 +1121,7 @@ var SYNTAX_FUNCTION = "#ffcd66";
|
|
|
1120
1121
|
|
|
1121
1122
|
// src/review.tsx
|
|
1122
1123
|
import { Fragment, jsx, jsxs } from "@opentui/react/jsx-runtime";
|
|
1124
|
+
var clockOf = (iso) => new Date(iso).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit", hour12: false });
|
|
1123
1125
|
var REVIEW_KEY = (changeId) => ["review", changeId];
|
|
1124
1126
|
var EDITOR_KEY_BINDINGS = [{ name: "return", ctrl: true, action: "submit" }];
|
|
1125
1127
|
var syntaxStyle = SyntaxStyle.fromStyles({
|
|
@@ -1165,6 +1167,7 @@ var fetchReview = async (ctx, changeId) => {
|
|
|
1165
1167
|
sliceId: pinned.slice.id,
|
|
1166
1168
|
checkpointAId: pinned.checkpointA.id,
|
|
1167
1169
|
checkpointBId: pinned.checkpointB.id,
|
|
1170
|
+
checkpointSource: pinned.checkpointB.source ?? null,
|
|
1168
1171
|
diffDigest: pinned.slice.diffDigest,
|
|
1169
1172
|
anchorFiles: pinned.anchorFiles,
|
|
1170
1173
|
files: buildReviewFiles(wire.diff, wire.files),
|
|
@@ -1998,7 +2001,10 @@ function ReviewScreen({
|
|
|
1998
2001
|
session.id.slice(0, 8)
|
|
1999
2002
|
] }),
|
|
2000
2003
|
isFetching ? /* @__PURE__ */ jsx("span", { fg: FAINT, children: " \xB7 syncing" }) : null,
|
|
2001
|
-
/* @__PURE__ */ jsx("span", { fg: checkpointState === "failed" ? MUTED : FAINT, children: checkpointState === "recording" ? " \xB7 checkpointing" : checkpointState === "failed" ? " \xB7 checkpoint incomplete" : " \xB7 checkpoint recorded"
|
|
2004
|
+
/* @__PURE__ */ jsx("span", { fg: checkpointState === "failed" ? MUTED : FAINT, children: checkpointState === "recording" ? " \xB7 checkpointing" : checkpointState === "failed" ? " \xB7 checkpoint incomplete" : data.checkpointSource === null ? " \xB7 checkpoint recorded" : ` \xB7 checkpoint ${checkpointSourceWords(
|
|
2005
|
+
data.checkpointSource,
|
|
2006
|
+
clockOf(data.checkpointSource.observedAt)
|
|
2007
|
+
)}` })
|
|
2002
2008
|
] }),
|
|
2003
2009
|
/* @__PURE__ */ jsxs("text", { height: 1, bg: "transparent", children: [
|
|
2004
2010
|
/* @__PURE__ */ jsxs("span", { fg: FAINT, children: [
|