@sagmans/dsh-tui 0.7.0 → 0.8.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.
Files changed (59) hide show
  1. package/.agents/skills/dsh-tui-update-models/SKILL.md +95 -17
  2. package/.agents/skills/dsh-tui-update-models/references/model-wiring.md +158 -28
  3. package/.agents/skills/dsh-tui-update-models/scripts/dump-model-catalog.mjs +152 -16
  4. package/README.md +55 -22
  5. package/lib/herdr/client.d.ts +8 -0
  6. package/lib/herdr/client.d.ts.map +1 -1
  7. package/lib/herdr/client.js +13 -1
  8. package/lib/herdr/client.js.map +1 -1
  9. package/lib/herdr/constants.d.ts +18 -0
  10. package/lib/herdr/constants.d.ts.map +1 -1
  11. package/lib/herdr/constants.js +18 -0
  12. package/lib/herdr/constants.js.map +1 -1
  13. package/lib/herdr/reporter.d.ts +20 -4
  14. package/lib/herdr/reporter.d.ts.map +1 -1
  15. package/lib/herdr/reporter.js +70 -20
  16. package/lib/herdr/reporter.js.map +1 -1
  17. package/lib/herdr/state.d.ts +10 -0
  18. package/lib/herdr/state.d.ts.map +1 -1
  19. package/lib/herdr/state.js +21 -4
  20. package/lib/herdr/state.js.map +1 -1
  21. package/lib/index.d.ts.map +1 -1
  22. package/lib/index.js +5 -0
  23. package/lib/index.js.map +1 -1
  24. package/lib/install-skills.d.ts +20 -1
  25. package/lib/install-skills.d.ts.map +1 -1
  26. package/lib/install-skills.js +84 -9
  27. package/lib/install-skills.js.map +1 -1
  28. package/lib/surface/background-work.d.ts +2 -0
  29. package/lib/surface/background-work.d.ts.map +1 -1
  30. package/lib/surface/background-work.js +28 -2
  31. package/lib/surface/background-work.js.map +1 -1
  32. package/lib/surface/commands.d.ts +2 -0
  33. package/lib/surface/commands.d.ts.map +1 -1
  34. package/lib/surface/commands.js +6 -0
  35. package/lib/surface/commands.js.map +1 -1
  36. package/lib/surface/modal-input.d.ts +3 -2
  37. package/lib/surface/modal-input.d.ts.map +1 -1
  38. package/lib/surface/modal-input.js +14 -8
  39. package/lib/surface/modal-input.js.map +1 -1
  40. package/lib/surface/session-lifecycle.d.ts.map +1 -1
  41. package/lib/surface/session-lifecycle.js +3 -0
  42. package/lib/surface/session-lifecycle.js.map +1 -1
  43. package/lib/theme-files.d.ts +1 -1
  44. package/lib/theme-files.d.ts.map +1 -1
  45. package/lib/theme-files.js +1 -1
  46. package/lib/theme-files.js.map +1 -1
  47. package/lib/theme-settings.d.ts.map +1 -1
  48. package/lib/theme-settings.js +10 -2
  49. package/lib/theme-settings.js.map +1 -1
  50. package/lib/ui/view/tool-card.d.ts +13 -2
  51. package/lib/ui/view/tool-card.d.ts.map +1 -1
  52. package/lib/ui/view/tool-card.js +19 -3
  53. package/lib/ui/view/tool-card.js.map +1 -1
  54. package/lib/ui/view.d.ts +25 -3
  55. package/lib/ui/view.d.ts.map +1 -1
  56. package/lib/ui/view.js +54 -7
  57. package/lib/ui/view.js.map +1 -1
  58. package/package.json +1 -1
  59. package/themes/violet-orbit.yaml +7 -5
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/herdr/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wEAAwE;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;AAEjC,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAA;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAA;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAA;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAA;AAElD,iFAAiF;AACjF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAA;AAEhC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAA;AAE5C,gDAAgD;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAW,CAAA;AAG7F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAW,CAAA;AAGtH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,EAAW,CAAA;AAElF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAA;AACjC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAErC,wEAAwE;AACxE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAE1C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;AAEhC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAA;AAEjC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAA;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAA;AAE1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/herdr/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wEAAwE;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;AAEjC,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAA;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAA;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAA;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAA;AAElD,iFAAiF;AACjF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAA;AAEhC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAA;AAE5C,gDAAgD;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAW,CAAA;AAG7F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAW,CAAA;AAGtH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,EAAW,CAAA;AAElF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAA;AACjC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAErC,wEAAwE;AACxE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAE1C,gFAAgF;AAChF,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAA;AAEzC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;AAEhC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAA;AAEjC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAA;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAA;AAE1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAA;AAE5C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAEvC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAA;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAA"}
@@ -33,10 +33,20 @@ export interface HerdrReporter {
33
33
  * read as done between two turns of an agent that is still working.
34
34
  */
35
35
  driver(status: DriverStatus): void;
36
- /** A decision is waiting on the reader; waits stack, so they are counted. */
37
- block(message: string): void;
38
- /** One waiting decision was settled, answered, or abandoned. */
39
- unblock(): void;
36
+ /** Work the driven session still owns after its foreground driver settles. */
37
+ background(running: boolean): void;
38
+ /**
39
+ * A decision is waiting on the reader, under the key of the slot holding it.
40
+ *
41
+ * Reporting a wait is what makes Herdr raise a needs-attention notification,
42
+ * so only a decision the agent owes the reader is one: a menu the reader
43
+ * opened themselves is navigation, not a wait. The title is offered to Herdr
44
+ * twice, as the state's message and as its display label, because the message
45
+ * is stored without being drawn and the label is what its sidebar renders.
46
+ */
47
+ block(key: string, message: string): void;
48
+ /** The wait held under that key was settled, answered, or abandoned. */
49
+ unblock(key: string): void;
40
50
  /** The pane opened, resumed, forked, or switched to a session. */
41
51
  session(input: HerdrSessionInput): void;
42
52
  /** Send the current facts, or resend them with `force`. */
@@ -60,6 +70,12 @@ export declare function createHerdrReporter(options?: HerdrReporterOptions): Her
60
70
  * `seq` is what makes the release land, so it is required rather than optional:
61
71
  * Herdr sequences reports per source and treats a release that cannot beat them
62
72
  * as stale, which would leave the row of a process that is already gone.
73
+ *
74
+ * The binary Herdr exported is tried first and the one on `PATH` second: the
75
+ * exported path names the release that started this pane, and a multiplexer
76
+ * upgraded while the pane ran can take that file away. A release that could not
77
+ * spawn is silent by design, so the fallback is the only thing standing between
78
+ * an exit and a row that reads as a live agent forever.
63
79
  */
64
80
  export declare function releaseAgentSync(env: HerdrEnvironment, seq: number): void;
65
81
  //# sourceMappingURL=reporter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/herdr/reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAqB,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,EAYL,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAKL,KAAK,YAAY,EAElB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,6EAA6E;IAC7E,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,gEAAgE;IAChE,OAAO,IAAI,IAAI,CAAA;IACf,kEAAkE;IAClE,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACvC,2DAA2D;IAC3D,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAC9B,gEAAgE;IAChE,WAAW,IAAI,IAAI,CAAA;IACnB,sEAAsE;IACtE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,gEAAgE;IAChE,mBAAmB,IAAI,MAAM,IAAI,CAAA;CAClC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa,CA4KrF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CASzE"}
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/herdr/reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAqB,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,EAaL,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAML,KAAK,YAAY,EAElB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,8EAA8E;IAC9E,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAClC;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACzC,wEAAwE;IACxE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,kEAAkE;IAClE,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACvC,2DAA2D;IAC3D,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAC9B,gEAAgE;IAChE,WAAW,IAAI,IAAI,CAAA;IACnB,sEAAsE;IACtE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,gEAAgE;IAChE,mBAAmB,IAAI,MAAM,IAAI,CAAA;CAClC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa,CAkNrF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAczE"}
@@ -9,8 +9,8 @@
9
9
  */
10
10
  import { spawnSync } from 'node:child_process';
11
11
  import { createHerdrClient } from "./client.js";
12
- import { EXIT_RELEASE_TIMEOUT_MS, HERDR_AGENT, HERDR_BIN_PATH_VAR, HERDR_ENV_FLAG, HERDR_ENV_VAR, HERDR_PANE_ID_VAR, HERDR_SOCKET_PATH_VAR, HERDR_SOURCE, METADATA_TOKENS, RETRY_BASE_MS, RETRY_MAX_MS, } from "./constants.js";
13
- import { boundedMessage, createReportSequence, isReportChange, lifecycleReport, } from "./state.js";
12
+ import { EXIT_RELEASE_TIMEOUT_MS, FALLBACK_HERDR_BIN, HERDR_AGENT, HERDR_BIN_PATH_VAR, HERDR_ENV_FLAG, HERDR_ENV_VAR, HERDR_PANE_ID_VAR, HERDR_SOCKET_PATH_VAR, HERDR_SOURCE, METADATA_TOKENS, RETRY_BASE_MS, RETRY_MAX_MS, } from "./constants.js";
13
+ import { boundedMessage, createReportSequence, isReportChange, lifecycleReport, stateLabelFor, } from "./state.js";
14
14
  export function createHerdrReporter(options = {}) {
15
15
  const env = options.env ?? process.env;
16
16
  const client = options.client ?? createHerdrClient(env);
@@ -19,23 +19,41 @@ export function createHerdrReporter(options = {}) {
19
19
  // drops a release that cannot beat the reports this pane already sent.
20
20
  const release = options.releaseSync ?? (() => releaseAgentSync(env, nextSeq()));
21
21
  const retryBaseMs = Math.max(1, options.retryBaseMs ?? RETRY_BASE_MS);
22
- let blockedCount = 0;
23
- let blockedMessage;
22
+ /**
23
+ * The waits still owed, oldest first.
24
+ *
25
+ * A map keyed by the slot that opened the wait, so a slot taken over twice
26
+ * holds one entry and gives it back once; the newest remaining wait is the one
27
+ * that names the row, because the older ones are behind it in the reader's
28
+ * queue rather than in front of it.
29
+ */
30
+ const waits = new Map();
24
31
  let driverRunning = false;
32
+ let backgroundRunning = false;
25
33
  let sessionId;
26
34
  let wantedState;
27
35
  let wantedSession;
28
36
  let wantedMetadata;
37
+ /**
38
+ * The label Herdr should be showing for a blocked row, if any.
39
+ *
40
+ * It starts settled rather than owed: a pane that has never held a wait has
41
+ * nothing for Herdr to forget, and clearing a label it never received would be
42
+ * a report spent on nothing.
43
+ */
44
+ let wantedLabel;
29
45
  let stateSent = false;
30
46
  let sessionSent = false;
31
47
  let metadataSent = false;
48
+ let labelSent = true;
32
49
  let released = false;
33
50
  let retryTimer;
34
51
  let retryAttempt = 0;
35
52
  let releasing;
36
53
  const owed = () => (wantedState !== undefined && !stateSent) ||
37
54
  (wantedSession !== undefined && !sessionSent) ||
38
- (wantedMetadata !== undefined && !metadataSent);
55
+ (wantedMetadata !== undefined && !metadataSent) ||
56
+ !labelSent;
39
57
  const cancelRetry = () => {
40
58
  if (retryTimer !== undefined)
41
59
  clearTimeout(retryTimer);
@@ -101,6 +119,17 @@ export function createHerdrReporter(options = {}) {
101
119
  afterDelivery(delivered);
102
120
  });
103
121
  }
122
+ if (!labelSent) {
123
+ // Ahead of the state so the row is named by the time it reads as blocked:
124
+ // a reader glancing at the sidebar should not catch it without its title.
125
+ const label = wantedLabel;
126
+ labelSent = true;
127
+ void client.reportStateLabel(label).then(delivered => {
128
+ if (!delivered)
129
+ labelSent = false;
130
+ afterDelivery(delivered);
131
+ });
132
+ }
104
133
  if (wantedState !== undefined && !stateSent) {
105
134
  const next = wantedState;
106
135
  stateSent = true;
@@ -118,17 +147,18 @@ export function createHerdrReporter(options = {}) {
118
147
  driverRunning = status === 'running';
119
148
  reporter.publish();
120
149
  },
121
- block(message) {
122
- blockedCount += 1;
123
- blockedMessage = boundedMessage(message);
150
+ background(running) {
151
+ backgroundRunning = running;
152
+ reporter.publish();
153
+ },
154
+ block(key, message) {
155
+ waits.set(key, boundedMessage(message));
124
156
  reporter.publish();
125
157
  },
126
- unblock() {
127
- blockedCount = Math.max(0, blockedCount - 1);
128
- // The last wait settled, so the message it was named by is stale; a later
129
- // wait brings its own.
130
- if (blockedCount === 0)
131
- blockedMessage = undefined;
158
+ unblock(key) {
159
+ // A key nothing holds is not a wait that ended: dropping it keeps a slot
160
+ // that was taken over from clearing the row the new owner still needs.
161
+ waits.delete(key);
132
162
  reporter.publish();
133
163
  },
134
164
  session(input) {
@@ -142,11 +172,19 @@ export function createHerdrReporter(options = {}) {
142
172
  reporter.publish(true);
143
173
  },
144
174
  publish(force = false) {
145
- const next = lifecycleReport({ blockedCount, blockedMessage, driverRunning });
175
+ const next = lifecycleReport({ blockedCount: waits.size, blockedMessage: [...waits.values()].at(-1), driverRunning, backgroundRunning });
146
176
  if (force || isReportChange(wantedState, next)) {
147
177
  wantedState = next;
148
178
  stateSent = false;
149
179
  }
180
+ const label = stateLabelFor(next);
181
+ // Not forced with the state: a session switch changes what the pane is
182
+ // called, never which decision it owes, so re-sending a label Herdr
183
+ // already holds would be noise on the wire.
184
+ if (label !== wantedLabel) {
185
+ wantedLabel = label;
186
+ labelSent = false;
187
+ }
150
188
  flush();
151
189
  },
152
190
  releaseSync() {
@@ -198,16 +236,28 @@ export function createHerdrReporter(options = {}) {
198
236
  * `seq` is what makes the release land, so it is required rather than optional:
199
237
  * Herdr sequences reports per source and treats a release that cannot beat them
200
238
  * as stale, which would leave the row of a process that is already gone.
239
+ *
240
+ * The binary Herdr exported is tried first and the one on `PATH` second: the
241
+ * exported path names the release that started this pane, and a multiplexer
242
+ * upgraded while the pane ran can take that file away. A release that could not
243
+ * spawn is silent by design, so the fallback is the only thing standing between
244
+ * an exit and a row that reads as a live agent forever.
201
245
  */
202
246
  export function releaseAgentSync(env, seq) {
203
247
  const paneId = env[HERDR_PANE_ID_VAR];
204
248
  if (env[HERDR_ENV_VAR] !== HERDR_ENV_FLAG || paneId === undefined || env[HERDR_SOCKET_PATH_VAR] === undefined)
205
249
  return;
206
250
  const argv = ['pane', 'release-agent', paneId, '--source', HERDR_SOURCE, '--agent', HERDR_AGENT, '--seq', String(seq)];
207
- spawnSync(env[HERDR_BIN_PATH_VAR] ?? 'herdr', argv, {
208
- env: { ...process.env, ...env },
209
- stdio: 'ignore',
210
- timeout: EXIT_RELEASE_TIMEOUT_MS,
211
- });
251
+ const exported = env[HERDR_BIN_PATH_VAR];
252
+ for (const bin of exported === undefined || exported === FALLBACK_HERDR_BIN ? [FALLBACK_HERDR_BIN] : [exported, FALLBACK_HERDR_BIN]) {
253
+ // Only a spawn that could not start the binary at all is worth a second try:
254
+ // a CLI that ran and refused the release would refuse it the same way again.
255
+ if (spawnSync(bin, argv, {
256
+ env: { ...process.env, ...env },
257
+ stdio: 'ignore',
258
+ timeout: EXIT_RELEASE_TIMEOUT_MS,
259
+ }).error === undefined)
260
+ return;
261
+ }
212
262
  }
213
263
  //# sourceMappingURL=reporter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/herdr/reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/herdr/reporter.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,7 @@ export interface LifecycleFacts {
48
48
  readonly blockedCount: number;
49
49
  readonly blockedMessage: string | undefined;
50
50
  readonly driverRunning: boolean;
51
+ readonly backgroundRunning: boolean;
51
52
  }
52
53
  export interface LifecycleReport {
53
54
  readonly state: HerdrState;
@@ -68,6 +69,15 @@ export declare function lifecycleReport(facts: LifecycleFacts): LifecycleReport;
68
69
  * pending, which is the only job the message has.
69
70
  */
70
71
  export declare function boundedMessage(message: string): string;
72
+ /**
73
+ * What Herdr can render for the row's state.
74
+ *
75
+ * A wait's title reaches Herdr as a message, and 0.9.1 stores that message
76
+ * without drawing it anywhere, so the same text is offered again as the blocked
77
+ * state's display label — the one its sidebar's `state_text` token reads. A row
78
+ * that is not blocked has no decision to name.
79
+ */
80
+ export declare function stateLabelFor(report: LifecycleReport): string | undefined;
71
81
  /**
72
82
  * The reason Herdr is told a session opened.
73
83
  *
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/herdr/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAA;AAEvB,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AACD;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAA;AAE7C;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAEvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQ7F;AAED,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAItE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAG/E;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,SAAS,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEhG;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,MAAM,GAAG,MAAM,MAAM,CAMpE"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/herdr/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAML,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAA;AAEvB,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AACD;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAA;AAE7C;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAEvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQ7F;AAED,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAItE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAGzE;AAQD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAG/E;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,SAAS,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEhG;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,MAAM,GAAG,MAAM,MAAM,CAMpE"}
@@ -5,7 +5,7 @@
5
5
  * surface knows facts about itself, Herdr wants one of three words, and the
6
6
  * translation between them is the part worth pinning down.
7
7
  */
8
- import { HERDR_STATES, MAX_BLOCKED_MESSAGE_CHARS, SEQ_TIME_SCALE, SESSION_START_REASONS, } from "./constants.js";
8
+ import { HERDR_STATES, MAX_BLOCKED_MESSAGE_CHARS, MAX_STATE_LABEL_CHARS, SEQ_TIME_SCALE, SESSION_START_REASONS, } from "./constants.js";
9
9
  /**
10
10
  * The driver status an agent/status payload carries, when it carries one
11
11
  * this surface knows.
@@ -49,7 +49,7 @@ export function driverReportFor(payload, sessionId) {
49
49
  export function lifecycleReport(facts) {
50
50
  if (facts.blockedCount > 0)
51
51
  return { state: HERDR_STATES.blocked, message: facts.blockedMessage };
52
- if (facts.driverRunning)
52
+ if (facts.driverRunning || facts.backgroundRunning)
53
53
  return { state: HERDR_STATES.working, message: undefined };
54
54
  return { state: HERDR_STATES.idle, message: undefined };
55
55
  }
@@ -60,8 +60,25 @@ export function lifecycleReport(facts) {
60
60
  * pending, which is the only job the message has.
61
61
  */
62
62
  export function boundedMessage(message) {
63
- const trimmed = message.replace(/\s+/gu, ' ').trim();
64
- return trimmed.length <= MAX_BLOCKED_MESSAGE_CHARS ? trimmed : `${trimmed.slice(0, MAX_BLOCKED_MESSAGE_CHARS - 1)}…`;
63
+ return bounded(message, MAX_BLOCKED_MESSAGE_CHARS);
64
+ }
65
+ /**
66
+ * What Herdr can render for the row's state.
67
+ *
68
+ * A wait's title reaches Herdr as a message, and 0.9.1 stores that message
69
+ * without drawing it anywhere, so the same text is offered again as the blocked
70
+ * state's display label — the one its sidebar's `state_text` token reads. A row
71
+ * that is not blocked has no decision to name.
72
+ */
73
+ export function stateLabelFor(report) {
74
+ if (report.state !== HERDR_STATES.blocked || report.message === undefined)
75
+ return undefined;
76
+ return bounded(report.message, MAX_STATE_LABEL_CHARS);
77
+ }
78
+ /** One line of text, cut where this surface decides rather than where Herdr does. */
79
+ function bounded(text, limit) {
80
+ const trimmed = text.replace(/\s+/gu, ' ').trim();
81
+ return trimmed.length <= limit ? trimmed : `${trimmed.slice(0, limit - 1)}…`;
65
82
  }
66
83
  /**
67
84
  * The reason Herdr is told a session opened.
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/herdr/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,cAAc,EACd,qBAAqB,GAGtB,MAAM,gBAAgB,CAAA;AAiBvB;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACpE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,SAAiB;IACjE,MAAM,MAAM,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAE,OAAmC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjH,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,CAAA;IAC3B,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAE,KAAiC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/G,4EAA4E;IAC5E,oDAAoD;IACpD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC1E,OAAO,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AACvC,CAAC;AAeD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAqB;IACnD,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,cAAc,EAAE,CAAA;IACjG,IAAI,KAAK,CAAC,aAAa;QAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;IACnF,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACpD,OAAO,OAAO,CAAC,MAAM,IAAI,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,GAAG,CAAC,CAAC,GAAG,CAAA;AACtH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;IACzD,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,qBAAqB,CAAC,IAAI,CAAA;IACnD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAA;AACrF,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,cAAc,CAAC,IAAiC,EAAE,IAAqB;IACrF,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAA;AACzF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAiB;IACpD,IAAI,QAAQ,GAAG,GAAG,EAAE,GAAG,cAAc,CAAA;IACrC,OAAO,GAAG,EAAE;QACV,QAAQ,IAAI,CAAC,CAAA;QACb,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/herdr/state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAQlD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AA6BpC,eAAO,MAAM,IAAI,QAAQ,CAAA;AAEzB;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,UAAsB,CAAA;AAoBzC;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,GAAE;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC1B,GAAG,IAAI,CAMZ;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAuZzD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAQlD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AA8BpC,eAAO,MAAM,IAAI,QAAQ,CAAA;AAEzB;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,UAAsB,CAAA;AAoBzC;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,GAAE;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC1B,GAAG,IAAI,CAMZ;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CA2ZzD"}
package/lib/index.js CHANGED
@@ -5,6 +5,7 @@ import { createStatusFacts } from "./agent/status.js";
5
5
  import { describeMissingOptional, describeMissingRequired, probeComposition } from "./compat/probe.js";
6
6
  import { hasLiveRowSettings, readRowSettings, resolveConfig } from "./config.js";
7
7
  export { Config } from "./config.js";
8
+ import { describeSkillDrift } from "./install-skills.js";
8
9
  import { windowTitle } from "./terminal/title.js";
9
10
  import { toolDisplayFor } from "./tool-display.js";
10
11
  import { runModelList } from "./model-list.js";
@@ -245,6 +246,7 @@ export function apply(ctx, config) {
245
246
  navigate: id => {
246
247
  void sessionView.show(SessionId(id));
247
248
  },
249
+ backgroundChanged: running => herdr.background(running),
248
250
  });
249
251
  const markdown = new MarkdownRenderer(theme.markdown, createMermaidTransform({ theme, mode: () => appearance.mermaidMode() }));
250
252
  const terminalLifecycle = createTerminalLifecycle(ctx, {
@@ -412,6 +414,9 @@ export function apply(ctx, config) {
412
414
  preset: resolved.preset,
413
415
  presetRoster: agentPresets,
414
416
  missingOptional: () => describeMissingOptional(probe),
417
+ // Read at start rather than at mount: the copy a reader installed can lag
418
+ // this build, and the surface is the only place left that can say so.
419
+ skillDrift: () => describeSkillDrift(),
415
420
  session: sessionLifecycle,
416
421
  transcript: sessionView,
417
422
  route: modelChoice,
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ /** The command a drift notice names, so the line it prints is the line that runs. */
2
+ export declare const SKILL_UPDATE_COMMAND = "dsh --profile tui install-skills --update";
1
3
  export declare class SkillAlreadyExistsError extends Error {
2
4
  readonly destination: string;
3
5
  constructor(destination: string);
@@ -7,7 +9,24 @@ export declare class SkillAlreadyExistsError extends Error {
7
9
  * listed: a skill a reader can see here is one `install-skills` installs, and
8
10
  * adding another never means editing the installer.
9
11
  */
10
- export declare function bundledSkillNames(): string[];
12
+ export declare function bundledSkillNames(bundled?: string): string[];
13
+ /**
14
+ * The installed copies that no longer match what this package ships.
15
+ *
16
+ * Content only, over the bundled file set. The installer chmods its own
17
+ * helpers, so a mode difference is its doing rather than drift, and a file a
18
+ * reader added beside a skill is theirs: one startup line can explain neither,
19
+ * and a line that cries wolf gets read past when it matters.
20
+ */
21
+ export declare function driftedSkillNames(home?: string, bundled?: string): string[];
22
+ /**
23
+ * The one line a startup can spare for an installed skill this build has moved
24
+ * past, or `undefined` when every installed copy still matches.
25
+ *
26
+ * Silence on any failure: a notice is a courtesy, and an unreadable home must
27
+ * not cost a reader the session they launched.
28
+ */
29
+ export declare function describeSkillDrift(home?: string, bundled?: string): string | undefined;
11
30
  /** Install one bundled skill, or replace the installed copy when `update`. */
12
31
  export declare function installBundledSkill(name: string, home?: string, update?: boolean): string;
13
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"install-skills.d.ts","sourceRoot":"","sources":["../src/install-skills.ts"],"names":[],"mappings":"AAWA,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM;gBAAnB,WAAW,EAAE,MAAM;CAGzC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAS5C;AA8GD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,EAAE,MAAM,UAAQ,GAAG,MAAM,CAElG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,MAAkB,EAAE,MAAM,UAAQ,EAAE,KAAK,GAAE,SAAS,MAAM,EAAwB,GAAG,MAAM,EAAE,CA0BvI"}
1
+ {"version":3,"file":"install-skills.d.ts","sourceRoot":"","sources":["../src/install-skills.ts"],"names":[],"mappings":"AAaA,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,8CAA8C,CAAA;AAQ/E,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM;gBAAnB,WAAW,EAAE,MAAM;CAGzC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAAoB,GAAG,MAAM,EAAE,CASzE;AAuBD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,MAAkB,EAAE,OAAO,GAAE,MAAoB,GAAG,MAAM,EAAE,CAenG;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAkB,EAAE,OAAO,GAAE,MAAoB,GAAG,MAAM,GAAG,SAAS,CAS9G;AA8GD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,EAAE,MAAM,UAAQ,GAAG,MAAM,CAElG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,MAAkB,EAAE,MAAM,UAAQ,EAAE,KAAK,GAAE,SAAS,MAAM,EAAwB,GAAG,MAAM,EAAE,CAyBvI"}
@@ -1,12 +1,22 @@
1
- import { chmodSync, cpSync, lstatSync, mkdirSync, mkdtempSync, readdirSync, renameSync, rmSync } from 'node:fs';
1
+ import { chmodSync, cpSync, lstatSync, mkdirSync, mkdtempSync, readdirSync, readFileSync, renameSync, rmSync } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
3
  import { dirname, join } from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
5
  const PACKAGE_ROOT = dirname(dirname(fileURLToPath(import.meta.url)));
6
6
  const SKILLS_ROOT = join(PACKAGE_ROOT, '.agents', 'skills');
7
+ /** The user skill root, spelled once: the installer writes it and the drift check reads it. */
8
+ const AGENTS_DIRECTORY = '.agents';
9
+ const SKILLS_DIRECTORY = 'skills';
7
10
  /** A bundled helper must keep its execute bit once the archive has stripped it. */
8
11
  const HELPER_EXTENSIONS = ['.sh', '.mjs'];
9
12
  const EXECUTABLE_MODE = 0o755;
13
+ /** The command a drift notice names, so the line it prints is the line that runs. */
14
+ export const SKILL_UPDATE_COMMAND = 'dsh --profile tui install-skills --update';
15
+ /** Separator the surface's own notices use, so a drift line reads like the rest. */
16
+ const NOTICE_SEPARATOR = ' · ';
17
+ function installedSkillsRoot(home) {
18
+ return join(home, AGENTS_DIRECTORY, SKILLS_DIRECTORY);
19
+ }
10
20
  export class SkillAlreadyExistsError extends Error {
11
21
  destination;
12
22
  constructor(destination) {
@@ -19,18 +29,84 @@ export class SkillAlreadyExistsError extends Error {
19
29
  * listed: a skill a reader can see here is one `install-skills` installs, and
20
30
  * adding another never means editing the installer.
21
31
  */
22
- export function bundledSkillNames() {
23
- const root = lstatSync(SKILLS_ROOT);
32
+ export function bundledSkillNames(bundled = SKILLS_ROOT) {
33
+ const root = lstatSync(bundled);
24
34
  if (!root.isDirectory() || root.isSymbolicLink())
25
- throw new Error(`invalid bundled skills: ${SKILLS_ROOT}`);
26
- const names = readdirSync(SKILLS_ROOT, { withFileTypes: true })
35
+ throw new Error(`invalid bundled skills: ${bundled}`);
36
+ const names = readdirSync(bundled, { withFileTypes: true })
27
37
  .filter(entry => entry.isDirectory() && !entry.isSymbolicLink())
28
38
  .map(entry => entry.name)
29
39
  .sort();
30
40
  if (names.length === 0)
31
- throw new Error(`no bundled skills: ${SKILLS_ROOT}`);
41
+ throw new Error(`no bundled skills: ${bundled}`);
32
42
  return names;
33
43
  }
44
+ /** Every regular file a skill directory carries, keyed by its relative path. */
45
+ function skillFiles(root) {
46
+ const files = new Map();
47
+ const walk = (directory, prefix) => {
48
+ for (const entry of readdirSync(directory, { withFileTypes: true })) {
49
+ const relative = prefix === '' ? entry.name : prefix + '/' + entry.name;
50
+ const path = join(directory, entry.name);
51
+ if (entry.isDirectory()) {
52
+ walk(path, relative);
53
+ continue;
54
+ }
55
+ // A symlinked member is not content this package shipped, and following
56
+ // one would read whatever it happens to point at.
57
+ if (!entry.isFile())
58
+ continue;
59
+ files.set(relative, readFileSync(path));
60
+ }
61
+ };
62
+ walk(root, '');
63
+ return files;
64
+ }
65
+ /**
66
+ * The installed copies that no longer match what this package ships.
67
+ *
68
+ * Content only, over the bundled file set. The installer chmods its own
69
+ * helpers, so a mode difference is its doing rather than drift, and a file a
70
+ * reader added beside a skill is theirs: one startup line can explain neither,
71
+ * and a line that cries wolf gets read past when it matters.
72
+ */
73
+ export function driftedSkillNames(home = homedir(), bundled = SKILLS_ROOT) {
74
+ const skills = installedSkillsRoot(home);
75
+ return bundledSkillNames(bundled).filter(name => {
76
+ const destination = join(skills, name);
77
+ const entry = lstatSync(destination, { throwIfNoEntry: false });
78
+ // Never installed is not drift - a first install is that command's own
79
+ // prompt - and a symlinked copy is one the installer refuses to replace.
80
+ if (entry === undefined || entry.isSymbolicLink() || !entry.isDirectory())
81
+ return false;
82
+ const installed = skillFiles(destination);
83
+ for (const [path, content] of skillFiles(join(bundled, name))) {
84
+ const current = installed.get(path);
85
+ if (current === undefined || !current.equals(content))
86
+ return true;
87
+ }
88
+ return false;
89
+ });
90
+ }
91
+ /**
92
+ * The one line a startup can spare for an installed skill this build has moved
93
+ * past, or `undefined` when every installed copy still matches.
94
+ *
95
+ * Silence on any failure: a notice is a courtesy, and an unreadable home must
96
+ * not cost a reader the session they launched.
97
+ */
98
+ export function describeSkillDrift(home = homedir(), bundled = SKILLS_ROOT) {
99
+ try {
100
+ const drifted = driftedSkillNames(home, bundled);
101
+ if (drifted.length === 0)
102
+ return undefined;
103
+ return `bundled skills changed since they were installed: ${drifted.join(NOTICE_SEPARATOR)}`
104
+ + `${NOTICE_SEPARATOR}run ${SKILL_UPDATE_COMMAND}`;
105
+ }
106
+ catch {
107
+ return undefined;
108
+ }
109
+ }
34
110
  /** Avoid writing through a pre-existing symlink into an unexpected directory. */
35
111
  function ensureDirectory(path) {
36
112
  try {
@@ -166,9 +242,8 @@ export function installBundledSkill(name, home = homedir(), update = false) {
166
242
  */
167
243
  export function installBundledSkills(home = homedir(), update = false, names = bundledSkillNames()) {
168
244
  ensureDirectory(home);
169
- const agents = join(home, '.agents');
170
- ensureDirectory(agents);
171
- const skills = join(agents, 'skills');
245
+ ensureDirectory(join(home, AGENTS_DIRECTORY));
246
+ const skills = installedSkillsRoot(home);
172
247
  ensureDirectory(skills);
173
248
  const destinations = names.map(name => join(skills, name));
174
249
  for (const destination of destinations) {