@north-light/crouter 0.3.192 → 0.3.193

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 (167) hide show
  1. package/dist/api/client.d.ts +31 -10
  2. package/dist/api/client.js +83 -24
  3. package/dist/api/dto/bash-jobs.d.ts +22 -0
  4. package/dist/api/dto/bash-jobs.js +9 -0
  5. package/dist/api/dto/human.d.ts +3 -4
  6. package/dist/api/dto/inbox.d.ts +106 -65
  7. package/dist/api/dto/inbox.js +2 -8
  8. package/dist/api/index.d.ts +1 -0
  9. package/dist/api/index.js +1 -0
  10. package/dist/api/routes.d.ts +7 -0
  11. package/dist/api/routes.js +7 -0
  12. package/dist/builtin-memory/internal/storage-tiers.md +1 -1
  13. package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/serial/provider-rotation.test.ts +101 -3
  14. package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.d.ts +6 -2
  15. package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.js +68 -14
  16. package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.ts +87 -13
  17. package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.js +2 -2
  18. package/dist/clients/attach/__tests__/group-activity.test.js +2 -2
  19. package/dist/clients/attach/chrome/canvas-panels.d.ts +1 -1
  20. package/dist/clients/attach/chrome/canvas-panels.js +1 -1
  21. package/dist/clients/attach/input/overlay-owner.js +1 -1
  22. package/dist/clients/attach/overlays/auth.js +34 -8
  23. package/dist/clients/attach/overlays/pickers.d.ts +5 -8
  24. package/dist/clients/attach/overlays/pickers.js +37 -43
  25. package/dist/clients/attach/viewer.js +643 -620
  26. package/dist/clients/inbox/__tests__/serial/inbox-controller.test.js +38 -128
  27. package/dist/clients/inbox/__tests__/serial/mount-panel.test.js +72 -148
  28. package/dist/clients/inbox/controller.d.ts +2 -3
  29. package/dist/clients/inbox/controller.js +41 -42
  30. package/dist/clients/inbox/page-adapter.d.ts +33 -0
  31. package/dist/clients/inbox/page-adapter.js +54 -0
  32. package/dist/clients/inbox/resolve.d.ts +2 -2
  33. package/dist/clients/inbox/resolve.js +1 -1
  34. package/dist/clients/inbox/review-visibility.d.ts +1 -1
  35. package/dist/clients/inbox/review-visibility.js +1 -1
  36. package/dist/clients/inbox/tui/ansi.d.ts +1 -1
  37. package/dist/clients/inbox/tui/ansi.js +2 -2
  38. package/dist/clients/inbox/tui/input.d.ts +1 -3
  39. package/dist/clients/inbox/tui/input.js +242 -553
  40. package/dist/clients/inbox/tui/panel.d.ts +3 -1
  41. package/dist/clients/inbox/tui/panel.js +59 -187
  42. package/dist/clients/inbox/tui/render.d.ts +0 -25
  43. package/dist/clients/inbox/tui/render.js +165 -416
  44. package/dist/clients/inbox/tui/slots.d.ts +32 -0
  45. package/dist/clients/inbox/tui/slots.js +156 -0
  46. package/dist/clients/inbox/tui/types.d.ts +25 -13
  47. package/dist/clients/inbox/tui.js +5 -3
  48. package/dist/commands/attention.js +2 -2
  49. package/dist/commands/human/doc.js +66 -20
  50. package/dist/commands/human/prompts.d.ts +3 -3
  51. package/dist/commands/human/prompts.js +158 -112
  52. package/dist/commands/human/queue.d.ts +0 -1
  53. package/dist/commands/human/queue.js +34 -94
  54. package/dist/commands/human/shared.d.ts +10 -4
  55. package/dist/commands/human/shared.js +62 -13
  56. package/dist/commands/human.js +8 -4
  57. package/dist/commands/memory/read.js +13 -5
  58. package/dist/commands/node/bash.js +15 -28
  59. package/dist/commands/surface/node/focus.js +1 -1
  60. package/dist/core/__tests__/human-deliver.test.js +40 -46
  61. package/dist/core/__tests__/seam/broker-attach-stream.test.js +7 -1
  62. package/dist/core/__tests__/serial/human-deliver-e2e.test.js +40 -31
  63. package/dist/core/__tests__/serial/spawn-root.test.js +3 -1
  64. package/dist/core/__tests__/spawn-worktree-id-conflict.test.js +3 -1
  65. package/dist/core/auth-interaction.d.ts +2 -2
  66. package/dist/core/bash-jobs.d.ts +32 -0
  67. package/dist/core/bash-jobs.js +72 -1
  68. package/dist/core/canvas/__tests__/attention.test.js +16 -10
  69. package/dist/core/canvas/__tests__/render-remote.test.js +9 -3
  70. package/dist/core/canvas/attention.js +1 -1
  71. package/dist/core/canvas/browse/app.js +1 -1
  72. package/dist/core/canvas/nav-model.d.ts +1 -1
  73. package/dist/core/canvas/nav-model.js +1 -1
  74. package/dist/core/canvas/remote-canvas-source.js +1 -1
  75. package/dist/core/config.js +4 -1
  76. package/dist/core/human/__tests__/page-render.test.d.ts +1 -0
  77. package/dist/core/human/__tests__/page-render.test.js +49 -0
  78. package/dist/core/human/__tests__/page-tickets.test.d.ts +1 -0
  79. package/dist/core/human/__tests__/page-tickets.test.js +112 -0
  80. package/dist/core/human/__tests__/page.test.d.ts +1 -0
  81. package/dist/core/human/__tests__/page.test.js +139 -0
  82. package/dist/core/human/__tests__/serial/inbox-core.test.js +42 -32
  83. package/dist/core/human/claim.js +2 -2
  84. package/dist/core/human/convention.d.ts +4 -4
  85. package/dist/core/human/convention.js +6 -13
  86. package/dist/core/human/markdown-html.d.ts +8 -0
  87. package/dist/core/human/markdown-html.js +581 -0
  88. package/dist/core/human/page-catalog.d.ts +6 -0
  89. package/dist/core/human/page-catalog.js +43 -0
  90. package/dist/core/human/page-render.d.ts +3 -0
  91. package/dist/core/human/page-render.js +131 -0
  92. package/dist/core/human/page-schema.d.ts +312 -0
  93. package/dist/core/human/page-schema.js +291 -0
  94. package/dist/core/human/page-synth.d.ts +9 -0
  95. package/dist/core/human/page-synth.js +17 -0
  96. package/dist/core/human/page.d.ts +22 -0
  97. package/dist/core/human/page.js +427 -0
  98. package/dist/core/human/review-schema.d.ts +19 -0
  99. package/dist/core/human/review-schema.js +34 -0
  100. package/dist/core/human/scan.d.ts +12 -3
  101. package/dist/core/human/scan.js +69 -26
  102. package/dist/core/human/summary.d.ts +5 -6
  103. package/dist/core/human/summary.js +54 -37
  104. package/dist/core/human/tickets.d.ts +61 -11
  105. package/dist/core/human/tickets.js +100 -57
  106. package/dist/core/human/types.d.ts +21 -66
  107. package/dist/core/human/types.js +1 -5
  108. package/dist/core/preview-registry.js +0 -1
  109. package/dist/core/review/ticket-filter.d.ts +1 -1
  110. package/dist/core/review/ticket-filter.js +2 -8
  111. package/dist/core/runtime/broker/read-ops.js +3 -0
  112. package/dist/core/runtime/broker.js +19 -10
  113. package/dist/core/runtime/package-health.js +1 -1
  114. package/dist/core/termrender/termrender.d.ts +1 -1
  115. package/dist/core/termrender/termrender.js +2 -2
  116. package/dist/core/tui/page-host.d.ts +1 -1
  117. package/dist/core/tui/page-host.js +2 -2
  118. package/dist/core/user-settings.d.ts +19 -0
  119. package/dist/core/user-settings.js +22 -0
  120. package/dist/daemon/api/handlers/bash-jobs.d.ts +2 -0
  121. package/dist/daemon/api/handlers/bash-jobs.js +89 -0
  122. package/dist/daemon/api/handlers/human.js +16 -14
  123. package/dist/daemon/api/handlers/inbox.js +311 -227
  124. package/dist/daemon/api/router.d.ts +5 -1
  125. package/dist/daemon/api/router.js +5 -0
  126. package/dist/daemon/api/server.js +2 -0
  127. package/dist/daemon/cron-run.js +23 -10
  128. package/dist/daemon/human/finish.d.ts +8 -3
  129. package/dist/daemon/human/finish.js +35 -15
  130. package/dist/pages/bundle.css +1 -0
  131. package/dist/pages/bundle.js +1347 -0
  132. package/dist/pages/comments.d.ts +34 -0
  133. package/dist/pages/comments.js +72 -0
  134. package/dist/pages/elements/cards.d.ts +17 -0
  135. package/dist/pages/elements/cards.js +785 -0
  136. package/dist/pages/elements/chart.d.ts +1 -0
  137. package/dist/pages/elements/chart.js +648 -0
  138. package/dist/pages/elements/options.d.ts +21 -0
  139. package/dist/pages/elements/options.js +604 -0
  140. package/dist/pages/elements/pages.d.ts +24 -0
  141. package/dist/pages/elements/pages.js +355 -0
  142. package/dist/pages/elements/slot.d.ts +21 -0
  143. package/dist/pages/elements/slot.js +105 -0
  144. package/dist/pages/elements/table.d.ts +19 -0
  145. package/dist/pages/elements/table.js +906 -0
  146. package/dist/pages/elements/text.d.ts +25 -0
  147. package/dist/pages/elements/text.js +951 -0
  148. package/dist/pages/entry.d.ts +8 -0
  149. package/dist/pages/entry.js +8 -0
  150. package/dist/pages/host.d.ts +132 -0
  151. package/dist/pages/host.js +149 -0
  152. package/dist/pages/register.d.ts +2 -0
  153. package/dist/pages/register.js +3 -0
  154. package/dist/pages/slot-config.d.ts +36 -0
  155. package/dist/pages/slot-config.js +50 -0
  156. package/dist/pages/types.d.ts +98 -0
  157. package/dist/pages/types.js +23 -0
  158. package/dist/types.d.ts +4 -0
  159. package/dist/types.js +2 -0
  160. package/package.json +8 -8
  161. package/runtime.lock.json +156 -101
  162. package/dist/clients/inbox/deck-adapter.d.ts +0 -29
  163. package/dist/clients/inbox/deck-adapter.js +0 -63
  164. package/dist/core/human/deck-factories.d.ts +0 -8
  165. package/dist/core/human/deck-factories.js +0 -15
  166. package/dist/core/human/deck-schema.d.ts +0 -70
  167. package/dist/core/human/deck-schema.js +0 -92
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Comment list algebra, shared by every element in the bundle so commenting is one
3
+ * behaviour and not five near-identical ones.
4
+ *
5
+ * The editing model is **one comment per anchor**: an option, a row, a column, a card or a
6
+ * range holds at most one comment, and re-commenting edits it. The response type still
7
+ * carries a list with ids, because a `range` anchor on a long document naturally grows
8
+ * several and the contract should not have to change when it does.
9
+ *
10
+ * Every function here is pure over the array it is given — elements hold their own comment
11
+ * list in local state, replace it with the returned one, and hand the whole response to
12
+ * `respond()`.
13
+ */
14
+ import type { Comment, CommentAnchor } from './types.js';
15
+ /** A stable string identity for an anchor, used to find and key comments. */
16
+ export declare function anchorKey(anchor: CommentAnchor): string;
17
+ /** The comment on `anchor`, if the user has left one. */
18
+ export declare function findComment(comments: Comment[], anchor: CommentAnchor): Comment | undefined;
19
+ /**
20
+ * Write a comment at `anchor`, replacing any comment already there. Empty or whitespace-only
21
+ * text removes it — clearing the box is how you delete, so the popover never needs a separate
22
+ * destructive path for "I changed my mind". An edit keeps the existing comment's id, so the
23
+ * response is stable across retyping.
24
+ */
25
+ export declare function setComment(comments: Comment[], anchor: CommentAnchor, text: string): Comment[];
26
+ /**
27
+ * Comment ids are frame-local: the host does not mint them, and nothing downstream keys off
28
+ * their value — `validatePageResponses` only requires a non-empty string. One counter is
29
+ * shared by every element in the bundle, so ids are unique across a whole page and stay
30
+ * legible in a response the human reads.
31
+ */
32
+ export declare function newCommentId(): string;
33
+ /** A short, human label for what a comment is attached to. */
34
+ export declare function anchorLabel(anchor: CommentAnchor): string;
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Comment list algebra, shared by every element in the bundle so commenting is one
3
+ * behaviour and not five near-identical ones.
4
+ *
5
+ * The editing model is **one comment per anchor**: an option, a row, a column, a card or a
6
+ * range holds at most one comment, and re-commenting edits it. The response type still
7
+ * carries a list with ids, because a `range` anchor on a long document naturally grows
8
+ * several and the contract should not have to change when it does.
9
+ *
10
+ * Every function here is pure over the array it is given — elements hold their own comment
11
+ * list in local state, replace it with the returned one, and hand the whole response to
12
+ * `respond()`.
13
+ */
14
+ /** A stable string identity for an anchor, used to find and key comments. */
15
+ export function anchorKey(anchor) {
16
+ switch (anchor.kind) {
17
+ case 'whole':
18
+ return 'whole';
19
+ case 'option':
20
+ return `option:${anchor.optionId}`;
21
+ case 'row':
22
+ return `row:${anchor.rowId}`;
23
+ case 'column':
24
+ return `column:${anchor.columnId}`;
25
+ case 'card':
26
+ return `card:${anchor.cardId}`;
27
+ case 'range':
28
+ return `range:${anchor.start}:${anchor.end}`;
29
+ }
30
+ }
31
+ /** The comment on `anchor`, if the user has left one. */
32
+ export function findComment(comments, anchor) {
33
+ const key = anchorKey(anchor);
34
+ return comments.find((comment) => anchorKey(comment.anchor) === key);
35
+ }
36
+ /**
37
+ * Write a comment at `anchor`, replacing any comment already there. Empty or whitespace-only
38
+ * text removes it — clearing the box is how you delete, so the popover never needs a separate
39
+ * destructive path for "I changed my mind". An edit keeps the existing comment's id, so the
40
+ * response is stable across retyping.
41
+ */
42
+ export function setComment(comments, anchor, text) {
43
+ const key = anchorKey(anchor);
44
+ const rest = comments.filter((comment) => anchorKey(comment.anchor) !== key);
45
+ const trimmed = text.trim();
46
+ if (trimmed === '')
47
+ return rest;
48
+ const existing = comments.find((comment) => anchorKey(comment.anchor) === key);
49
+ return [...rest, { id: existing?.id ?? newCommentId(), anchor, text: trimmed }];
50
+ }
51
+ let counter = 0;
52
+ /**
53
+ * Comment ids are frame-local: the host does not mint them, and nothing downstream keys off
54
+ * their value — `validatePageResponses` only requires a non-empty string. One counter is
55
+ * shared by every element in the bundle, so ids are unique across a whole page and stay
56
+ * legible in a response the human reads.
57
+ */
58
+ export function newCommentId() {
59
+ counter += 1;
60
+ return `c${counter}`;
61
+ }
62
+ /** A short, human label for what a comment is attached to. */
63
+ export function anchorLabel(anchor) {
64
+ switch (anchor.kind) {
65
+ case 'whole':
66
+ return 'this';
67
+ case 'range':
68
+ return `\u201c${anchor.quote}\u201d`;
69
+ default:
70
+ return anchorKey(anchor);
71
+ }
72
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `<crtr-cards>` — the choice `options` makes, when each candidate has enough body to
3
+ * deserve its own surface: a meeting slot, a vendor, a search result.
4
+ *
5
+ * This is a port of the agent interaction kit's `cards` component, not a new design. The
6
+ * selection treatment is the kit's selectable-surface recipe — a hairline surface that
7
+ * answers the pointer and goes accent-toned once chosen — carrying the kit's selection
8
+ * control and the kit's comment affordance. Navigation is the kit's classic list grammar
9
+ * (`j`/`k` move, `x` selects, `c` comments), so a card grid, an option list and a table
10
+ * are all driven the same way.
11
+ *
12
+ * Data arrives one of two ways: inline `cards`, or a `source` the host resolves through
13
+ * `artifactData()`. The element never touches the network, and anything it cannot render —
14
+ * a malformed config, an unreachable source, source data that is not a card list — becomes
15
+ * a named unavailable state rather than an exception.
16
+ */
17
+ export {};