@poodle64/librarian 2026.9.1 → 2026.9.2

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 (2) hide show
  1. package/README.md +25 -2
  2. package/package.json +5 -2
package/README.md CHANGED
@@ -39,6 +39,17 @@ pnpm add @poodle64/librarian @poodle64/ui @lucide/svelte
39
39
  and `shiki` are peer dependencies: declare them yourself so Renovate tracks
40
40
  their versions and `pnpm ls` shows them.
41
41
 
42
+ The components style themselves with Tailwind utility classes, same as
43
+ `@poodle64/ui`, so the same line is needed in the app's `app.css`:
44
+
45
+ ```css
46
+ @source '../node_modules/@poodle64/librarian/dist'; /* Tailwind content scan */
47
+ ```
48
+
49
+ Without it the classes ship in `dist` but Tailwind's default content scan
50
+ never sees `node_modules`, so nothing compiles for them — no build error, no
51
+ lint hit, just an unstyled transcript.
52
+
42
53
  ## Consuming the package
43
54
 
44
55
  Every export is its own subpath, matching `@poodle64/ui`'s convention:
@@ -53,6 +64,7 @@ Every export is its own subpath, matching `@poodle64/ui`'s convention:
53
64
  let question = $state('');
54
65
  let running = $state(false);
55
66
  const transcript = new Transcript();
67
+ let controller: AbortController | null = null;
56
68
 
57
69
  async function submit() {
58
70
  const asked = question.trim();
@@ -61,16 +73,27 @@ Every export is its own subpath, matching `@poodle64/ui`'s convention:
61
73
  question = '';
62
74
  running = true;
63
75
  transcript.reset();
76
+ controller = new AbortController();
64
77
 
65
78
  try {
66
- for await (const event of ask({ question: asked, endpoint: '/api/caller/ask' })) {
79
+ for await (const event of ask({
80
+ question: asked,
81
+ endpoint: '/api/caller/ask',
82
+ signal: controller.signal
83
+ })) {
67
84
  transcript.apply(event);
68
85
  if (event.type === 'result' || event.type === 'library_error') running = false;
69
86
  }
70
87
  } finally {
71
88
  running = false;
89
+ controller = null;
72
90
  }
73
91
  }
92
+
93
+ function stop() {
94
+ controller?.abort();
95
+ running = false;
96
+ }
74
97
  </script>
75
98
 
76
99
  <AgentTranscript {question} blocks={transcript.blocks} outcome={transcript.outcome} {running} />
@@ -81,7 +104,7 @@ Every export is its own subpath, matching `@poodle64/ui`'s convention:
81
104
  scope="library"
82
105
  onscope={() => {}}
83
106
  onsubmit={submit}
84
- onstop={() => {}}
107
+ onstop={stop}
85
108
  />
86
109
  ```
87
110
 
package/package.json CHANGED
@@ -1,10 +1,13 @@
1
1
  {
2
2
  "name": "@poodle64/librarian",
3
- "version": "2026.9.1",
3
+ "version": "2026.9.2",
4
4
  "description": "Milton's conversation surface as a consumable Svelte 5 package: the stream client, transcript state and chat components (transcript, composer, markdown) every household app renders instead of rebuilding.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
- "repository": "github:radar-hooves/design-system",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/radar-hooves/design-system.git"
10
+ },
8
11
  "publishConfig": {
9
12
  "registry": "https://registry.npmjs.org",
10
13
  "access": "public",