@danypops/papyrus 0.59.3 → 0.60.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danypops/papyrus",
3
- "version": "0.59.3",
3
+ "version": "0.60.1",
4
4
  "description": "Daemon-backed graph artifacts, evidence-bearing tasks, rules, skills, and native TUI workflows for Pi",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -58,7 +58,7 @@
58
58
  "files": ["src", "README.md"],
59
59
  "dependencies": {
60
60
  "@danypops/vehicle-client": "^0.10.3",
61
- "@danypops/vehicle-core": "^0.17.1",
61
+ "@danypops/vehicle-core": "^0.18.5",
62
62
  "@danypops/vehicle-server": "^0.25.2",
63
63
  "@stricli/core": "^1.3.0"
64
64
  }
package/src/constants.ts CHANGED
@@ -93,7 +93,7 @@ export const RULE_TEXT_HARD_LIMIT_CHARACTERS = 4000;
93
93
  /** Compact task-context limits keep recurring prompt injection bounded. */
94
94
  export const TASK_CONTEXT_CURRENT_LIMIT = 3;
95
95
  export const TASK_CONTEXT_REJECTED_LIMIT = 3;
96
- export const TASK_WIDGET_OPEN_LIMIT = 3;
96
+ export const TASK_WIDGET_OPEN_LIMIT = 9;
97
97
  export const TASK_DETAIL_MIN_VISIBLE_LINES = 8;
98
98
  /**
99
99
  * Event-triggered refresh (tool_execution_end, session_compact/tree) can't see a Task
@@ -103,6 +103,14 @@ export const TASK_DETAIL_MIN_VISIBLE_LINES = 8;
103
103
  export const TASK_WIDGET_POLL_INTERVAL_MS = 20_000;
104
104
  /** Same fallback purpose as TASK_WIDGET_POLL_INTERVAL_MS, for the Notes widget's own count. */
105
105
  export const NOTE_WIDGET_POLL_INTERVAL_MS = 20_000;
106
+ /** Max note titles kept for the Notes widget card. */
107
+ export const NOTE_WIDGET_OPEN_LIMIT = 8;
108
+ /** Visible rows per page in the Notes card. */
109
+ export const NOTE_WIDGET_VISIBLE_ROWS = 3;
110
+ /** Visible rows per page in the Tasks card. */
111
+ export const TASK_WIDGET_VISIBLE_ROWS = 3;
112
+ /** How often a paging widget card advances to its next page. */
113
+ export const WIDGET_CARD_ROTATION_INTERVAL_MS = 6_000;
106
114
  export const TASK_DETAIL_MAX_VISIBLE_LINES = 24;
107
115
  export const TASK_DETAIL_RESERVED_ROWS = 8;
108
116
  export const TASK_DETAIL_HORIZONTAL_PAN_COLUMNS = 4;
@@ -19,7 +19,12 @@
19
19
  *
20
20
  * remove/remove_subtree/restore are not duplicated here -- see ./artifact-trash-vehicle.ts.
21
21
  */
22
- import { VehicleError, type VehicleLimits, type VehicleOperationContext } from "@danypops/vehicle-core";
22
+ import {
23
+ VEHICLE_SCHEMA_PRESENTATION_EXTENSION,
24
+ VehicleError,
25
+ type VehicleLimits,
26
+ type VehicleOperationContext,
27
+ } from "@danypops/vehicle-core";
23
28
  import type { VehicleRegistry } from "@danypops/vehicle-server";
24
29
  import type { ArtifactStore } from "../artifact/artifact-store.ts";
25
30
  import { GATE_TIMEOUT_MAX_MS, TASK_CREATE_IDEMPOTENCY_KEY_MAX_LENGTH, TASK_MUTATION_IDEMPOTENCY_KEY_MAX_LENGTH } from "../constants.ts";
@@ -83,6 +88,7 @@ const GATE_OPERATION_LIMITS: VehicleLimits = {
83
88
  const objectProp = { type: "object" } as const;
84
89
  const arrayProp = { type: "array" } as const;
85
90
  const _boolProp = { type: "boolean" } as const;
91
+ const streamingStringProp = { ...stringProp, [VEHICLE_SCHEMA_PRESENTATION_EXTENSION]: "stream" } as const;
86
92
  const mutationIdempotencyProp = {
87
93
  type: "string",
88
94
  minLength: 1,
@@ -368,7 +374,7 @@ export function registerTasksVehicleOperations(registry: VehicleRegistry, deps:
368
374
  "local-write",
369
375
  {
370
376
  title: stringProp,
371
- body: stringProp,
377
+ body: streamingStringProp,
372
378
  status: stringProp,
373
379
  labels: arrayProp,
374
380
  extra: objectProp,
@@ -418,7 +424,7 @@ export function registerTasksVehicleOperations(registry: VehicleRegistry, deps:
418
424
  id: stringProp,
419
425
  name: stringProp,
420
426
  title: stringProp,
421
- body: stringProp,
427
+ body: streamingStringProp,
422
428
  labels: arrayProp,
423
429
  status: stringProp,
424
430
  reason: stringProp,
@@ -1,4 +1,4 @@
1
- import { basename, isAbsolute, normalize } from "node:path";
1
+ import { isAbsolute, normalize } from "node:path";
2
2
  import { TASK_PROJECT_ROOT_MAX_LENGTH } from "../constants.ts";
3
3
 
4
4
  /** How a project root got attached to a scoped artifact -- shared across Tasks/Docs/Rules/Playbooks, same category as Project in project-registry.ts. */