priiisk 0.1.13 → 0.1.15

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.
@@ -3,7 +3,7 @@ const require = __priiiskCreateRequire(import.meta.url);
3
3
  import {
4
4
  FileSystem_exports,
5
5
  PRIIISK_PI_AGENT_DIR_ENV
6
- } from "./chunk-GPJJE2V7.js";
6
+ } from "./chunk-P2XRQCTQ.js";
7
7
  import {
8
8
  CampDeliveryPort,
9
9
  CampFailureCode,
@@ -8,13 +8,13 @@ import {
8
8
  makeDoctorReport,
9
9
  resolveCampSurface,
10
10
  withCampRpc
11
- } from "./chunk-7AGSTD6B.js";
11
+ } from "./chunk-VM4SQU53.js";
12
12
  import {
13
13
  PI_RUNTIME_VERSION,
14
14
  PiModelCatalogIssueCode,
15
15
  inspectPiModelCatalog,
16
16
  makePiOperatorResources
17
- } from "./chunk-TI75FDW3.js";
17
+ } from "./chunk-6VG25ZCJ.js";
18
18
  import {
19
19
  CampHealthComponentStatus,
20
20
  CampHealthOverallStatus,
@@ -48,7 +48,7 @@ import {
48
48
  resolveCredentialsPath,
49
49
  resolveProjectScope,
50
50
  resolveWorkerConfigPath
51
- } from "./chunk-GPJJE2V7.js";
51
+ } from "./chunk-P2XRQCTQ.js";
52
52
  import {
53
53
  Clock_exports,
54
54
  Effect_exports,
@@ -1594,6 +1594,7 @@ var makeCampUiDetailComponent = (context, registry = defaultCampUiDetailBlockRen
1594
1594
  const renderState = /* @__PURE__ */ new Map();
1595
1595
  const detailCache = /* @__PURE__ */ new Map();
1596
1596
  let renderedRanges = [];
1597
+ let maximumScrollOffset = 0;
1597
1598
  let visibleRanges = [];
1598
1599
  return {
1599
1600
  focusable: true,
@@ -1649,6 +1650,7 @@ var makeCampUiDetailComponent = (context, registry = defaultCampUiDetailBlockRen
1649
1650
  lines.length - Math.min(lines.length, focusedRange.start + viewport.height)
1650
1651
  );
1651
1652
  const maximumOffset = Math.max(0, lines.length - viewport.height);
1653
+ maximumScrollOffset = maximumOffset;
1652
1654
  const desiredOffset = focusedOffset ?? (offset > 0 ? offset + growth : 0);
1653
1655
  const lockedOffset = Math.min(maximumOffset, desiredOffset);
1654
1656
  if (lockedOffset !== offset) {
@@ -1669,15 +1671,32 @@ var makeCampUiDetailComponent = (context, registry = defaultCampUiDetailBlockRen
1669
1671
  }));
1670
1672
  return lines.slice(start, end);
1671
1673
  },
1674
+ /*
1675
+ * An arrow first moves the selection between expandable blocks, and then
1676
+ * keeps reading: past the last block it scrolls a line at a time, so a long
1677
+ * history is reachable to its first message. Handing focus away at the last
1678
+ * block left the transcript stuck wherever the blocks happened to end
1679
+ * (priiisk-nss.6.41). Only the end of the content passes the arrow on to
1680
+ * spatial navigation.
1681
+ */
1672
1682
  handleInput: (input) => {
1673
1683
  const delta = matchesKey2(input, Key2.up) ? -1 : matchesKey2(input, Key2.down) ? 1 : void 0;
1674
- if (delta === void 0 || renderedRanges.length === 0) return false;
1675
- const focusedBlockId = context.readModel().state.focusedDetailBlockId;
1684
+ if (delta === void 0) return false;
1685
+ const model = context.readModel();
1686
+ const workerId = model.state.selectedWorkerId;
1687
+ if (workerId === void 0) return false;
1688
+ const focusedBlockId = model.state.focusedDetailBlockId;
1676
1689
  const current = renderedRanges.findIndex((range) => range.id === focusedBlockId);
1677
1690
  const next = current < 0 ? delta < 0 ? renderedRanges.length - 1 : 0 : current + delta;
1678
1691
  const target = renderedRanges[next];
1679
- if (target === void 0) return false;
1680
- context.emit(CampUiIntents.FocusDetailBlock({ blockId: target.id }));
1692
+ if (target !== void 0) {
1693
+ context.emit(CampUiIntents.FocusDetailBlock({ blockId: target.id }));
1694
+ return true;
1695
+ }
1696
+ const offset = model.state.scrollOffsets.get(workerId) ?? 0;
1697
+ const scrolled = delta < 0 ? offset + 1 : offset - 1;
1698
+ if (scrolled < 0 || scrolled > maximumScrollOffset) return false;
1699
+ context.emit(CampUiIntents.ScrollWorker({ workerId, delta: delta < 0 ? 1 : -1 }));
1681
1700
  return true;
1682
1701
  },
1683
1702
  handlePointer: (pointer) => {
@@ -28,7 +28,7 @@ import {
28
28
  makePlatform,
29
29
  makeRunMain,
30
30
  stdin
31
- } from "./chunk-GPJJE2V7.js";
31
+ } from "./chunk-P2XRQCTQ.js";
32
32
  import {
33
33
  BaseProto,
34
34
  __export,
@@ -10670,7 +10670,7 @@ var describeDirectToolSandbox = (sandbox2) => sandbox2.kind === DirectToolSandbo
10670
10670
 
10671
10671
  // packages/protocol/src/domain/protocolVersion.ts
10672
10672
  var PRIIISK_PROTOCOL_VERSION = "12";
10673
- var PRIIISK_PROTOCOL_PACKAGE_VERSION = "0.1.13";
10673
+ var PRIIISK_PROTOCOL_PACKAGE_VERSION = "0.1.15";
10674
10674
  var ProtocolVersionSchema = Schema_exports.String.pipe(Schema_exports.minLength(1));
10675
10675
 
10676
10676
  // packages/protocol/src/domain/protocolIdentifiers.ts
@@ -13564,7 +13564,7 @@ var CampProtocol = class extends RpcGroup_exports.make(
13564
13564
  };
13565
13565
 
13566
13566
  // packages/camp-state/src/bootstrap/campHostVersion.ts
13567
- var PRIIISK_HOST_VERSION = "0.1.13";
13567
+ var PRIIISK_HOST_VERSION = "0.1.15";
13568
13568
 
13569
13569
  // packages/surface/src/domain/surfaceModel.ts
13570
13570
  var NonEmptyString7 = Schema_exports.String.pipe(Schema_exports.minLength(1));
@@ -91,7 +91,7 @@ import {
91
91
  selectCampRun,
92
92
  styleCampUiTone,
93
93
  uniqueCampUiNames
94
- } from "./chunk-XVKL4E3L.js";
94
+ } from "./chunk-GZXZWUNM.js";
95
95
  import "./chunk-RIYKIIGA.js";
96
96
  export {
97
97
  CAMP_UI_BASH_PREVIEW_LINES,
@@ -20,7 +20,7 @@ import {
20
20
  layerNet,
21
21
  makeCampSurfaceName,
22
22
  resolveProjectScopeSync
23
- } from "./chunk-GPJJE2V7.js";
23
+ } from "./chunk-P2XRQCTQ.js";
24
24
  import {
25
25
  Clock_exports,
26
26
  Config_exports,
@@ -112,7 +112,7 @@ var CliSurfaceSelectionError = class extends Data_exports.TaggedError("CliSurfac
112
112
  import { randomUUID } from "node:crypto";
113
113
 
114
114
  // packages/cli/src/domain/cliVersion.ts
115
- var PRIIISK_CLI_VERSION = "0.1.13";
115
+ var PRIIISK_CLI_VERSION = "0.1.15";
116
116
 
117
117
  // packages/cli/src/client/campRpcConnection.ts
118
118
  var reportRetry = (options, diagnostic) => options.onRetry === void 0 ? Console_exports.error(
@@ -4,14 +4,14 @@ const require = __priiiskCreateRequire(import.meta.url);
4
4
  import {
5
5
  NodeContext_exports,
6
6
  NodeRuntime_exports
7
- } from "./chunk-A4K4VHXE.js";
7
+ } from "./chunk-MMIWOGCI.js";
8
8
  import {
9
9
  CampUiBackendError,
10
10
  CampUiHealthStatus,
11
11
  CampUiPlacement,
12
12
  CampUiRuntimeStatus,
13
13
  mountPiCampUi
14
- } from "./chunk-XVKL4E3L.js";
14
+ } from "./chunk-GZXZWUNM.js";
15
15
  import {
16
16
  PiTransport,
17
17
  makePiOperatorResources,
@@ -19,7 +19,7 @@ import {
19
19
  makePiTransportLayer,
20
20
  requirePiModelCatalog,
21
21
  require_undici
22
- } from "./chunk-TI75FDW3.js";
22
+ } from "./chunk-6VG25ZCJ.js";
23
23
  import {
24
24
  AgentRole,
25
25
  AgentRoleSchema,
@@ -101,7 +101,7 @@ import {
101
101
  runningCampManifest,
102
102
  saveCampHealth,
103
103
  saveCampManifest
104
- } from "./chunk-GPJJE2V7.js";
104
+ } from "./chunk-P2XRQCTQ.js";
105
105
  import {
106
106
  CampAskRouter,
107
107
  CampCancellationCode,
@@ -22445,7 +22445,7 @@ var Client = class extends Protocol {
22445
22445
  };
22446
22446
 
22447
22447
  // packages/mcp-backend/src/connections/clientIdentity.ts
22448
- var backendVersion = "0.1.13";
22448
+ var backendVersion = "0.1.15";
22449
22449
 
22450
22450
  // packages/mcp-backend/src/connections/mcpFailure.ts
22451
22451
  var McpFailure = class extends Data_exports.TaggedError("McpFailure") {
@@ -25969,6 +25969,7 @@ var retryableKernelCodes = /* @__PURE__ */ new Set([
25969
25969
  "session_unavailable",
25970
25970
  "admission_rejected"
25971
25971
  ]);
25972
+ var retryableFailure = (error2) => !(error2 instanceof CampEquipmentError) && retryableKernelCodes.has(error2.code);
25972
25973
  var failureReason = (error2) => {
25973
25974
  if (!("details" in error2)) return void 0;
25974
25975
  const reason = error2.details.reason;
@@ -25980,7 +25981,7 @@ var failureFromKernel = (operation, error2) => {
25980
25981
  operation,
25981
25982
  code: error2.code,
25982
25983
  message: error2 instanceof CampEquipmentError ? error2.message : `${error2._tag} (${error2.code}${reason === void 0 ? "" : `: ${reason}`})`,
25983
- retryable: retryableKernelCodes.has(error2.code)
25984
+ retryable: retryableFailure(error2)
25984
25985
  });
25985
25986
  };
25986
25987
  var failureFromHostOperation = (operation, error2) => error2 instanceof CampCheckpointError ? new CampCommandFailure({
package/dist/priiisk.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  fromReadable,
6
6
  layer,
7
7
  runMain
8
- } from "./chunk-A4K4VHXE.js";
8
+ } from "./chunk-MMIWOGCI.js";
9
9
  import {
10
10
  CliCampLifecycleError,
11
11
  CliEquipmentConflict,
@@ -23,7 +23,7 @@ import {
23
23
  resolveCampSurface,
24
24
  withCampRpc,
25
25
  withCampRpcSession
26
- } from "./chunk-7AGSTD6B.js";
26
+ } from "./chunk-VM4SQU53.js";
27
27
  import {
28
28
  CampCommandFailure,
29
29
  CampHostReadiness,
@@ -58,7 +58,7 @@ import {
58
58
  resolveProjectScopeSync,
59
59
  saveCampManifest,
60
60
  startingCampManifest
61
- } from "./chunk-GPJJE2V7.js";
61
+ } from "./chunk-P2XRQCTQ.js";
62
62
  import {
63
63
  Cause_exports,
64
64
  CommitPrototype,
@@ -19969,7 +19969,7 @@ var campResumeListCommand = Command_exports.make(
19969
19969
  )
19970
19970
  ).pipe(Command_exports.withDescription("Lists saved runs of this project that resume can restore."));
19971
19971
  var runIdArgument = Args_exports.text({ name: "runId" }).pipe(Args_exports.optional);
19972
- var selectCampRunOnDemand = (items) => Effect_exports.promise(() => import("./chunk-HK2LW6VV.js")).pipe(
19972
+ var selectCampRunOnDemand = (items) => Effect_exports.promise(() => import("./chunk-QKN5JC3T.js")).pipe(
19973
19973
  Effect_exports.flatMap((ui) => ui.selectCampRun({ items }))
19974
19974
  );
19975
19975
  var selectAndResume = (json) => {
@@ -20042,7 +20042,7 @@ var rootCommand = Command_exports.make(
20042
20042
  ).pipe(Command_exports.withDescription("Runs and observes a camp of collaborating workers."));
20043
20043
 
20044
20044
  // packages/cli/src/commands/doctorCommand.ts
20045
- var runDoctorOnDemand = Effect_exports.promise(() => import("./chunk-M2NR2CXX.js")).pipe(
20045
+ var runDoctorOnDemand = Effect_exports.promise(() => import("./chunk-FGO3XP54.js")).pipe(
20046
20046
  Effect_exports.flatMap((doctor) => doctor.runDoctor)
20047
20047
  );
20048
20048
  var statusLabel = {
@@ -20794,7 +20794,7 @@ var command = rootCommand.pipe(
20794
20794
  );
20795
20795
  var cli = Command_exports.run(command, {
20796
20796
  name: "priiisk camp control",
20797
- version: "0.1.13"
20797
+ version: "0.1.15"
20798
20798
  });
20799
20799
  var quietDiagnostics = (json, effect) => json ? Console_exports.consoleWith(
20800
20800
  (console2) => Console_exports.withConsole({ ...console2, error: () => Effect_exports.void })(effect)
package/package.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "name": "priiisk",
3
- "version": "0.1.13",
3
+ "version": "0.1.15",
4
4
  "description": "CLI for running and observing a camp of collaborating agents",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "priiisk": "./dist/priiisk.js"
8
8
  },
9
9
  "files": [
10
- "dist/chunk-7AGSTD6B.js",
11
- "dist/chunk-A4K4VHXE.js",
12
- "dist/chunk-GPJJE2V7.js",
13
- "dist/chunk-GPJJE2V7.js.LEGAL.txt",
14
- "dist/chunk-HK2LW6VV.js",
15
- "dist/chunk-M2NR2CXX.js",
10
+ "dist/chunk-6VG25ZCJ.js",
11
+ "dist/chunk-6VG25ZCJ.js.LEGAL.txt",
12
+ "dist/chunk-FGO3XP54.js",
13
+ "dist/chunk-GZXZWUNM.js",
14
+ "dist/chunk-MMIWOGCI.js",
15
+ "dist/chunk-P2XRQCTQ.js",
16
+ "dist/chunk-P2XRQCTQ.js.LEGAL.txt",
17
+ "dist/chunk-QKN5JC3T.js",
16
18
  "dist/chunk-RIYKIIGA.js",
17
- "dist/chunk-TI75FDW3.js",
18
- "dist/chunk-TI75FDW3.js.LEGAL.txt",
19
- "dist/chunk-XVKL4E3L.js",
19
+ "dist/chunk-VM4SQU53.js",
20
20
  "dist/priiisk-host.js",
21
21
  "dist/priiisk.js",
22
22
  "profiles",