@fungi.computer/parakeet 0.0.0-stage → 0.1.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 (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +186 -2
  3. package/dist/account-commands.d.ts +102 -0
  4. package/dist/account-commands.js +239 -0
  5. package/dist/agent-head.d.ts +4 -0
  6. package/dist/agent-head.js +2 -0
  7. package/dist/client-contributions.d.ts +20 -0
  8. package/dist/client-contributions.js +41 -0
  9. package/dist/commands/advertised.d.ts +23 -0
  10. package/dist/commands/advertised.js +72 -0
  11. package/dist/commands/builtins.d.ts +14 -0
  12. package/dist/commands/builtins.js +91 -0
  13. package/dist/commands/hints.d.ts +36 -0
  14. package/dist/commands/hints.js +64 -0
  15. package/dist/commands/interactions.d.ts +55 -0
  16. package/dist/commands/interactions.js +101 -0
  17. package/dist/commands/run.d.ts +12 -0
  18. package/dist/commands/run.js +64 -0
  19. package/dist/commands/slash.d.ts +126 -0
  20. package/dist/commands/slash.js +190 -0
  21. package/dist/commands/use-slash-commands.d.ts +57 -0
  22. package/dist/commands/use-slash-commands.js +207 -0
  23. package/dist/components/AgentHead.d.ts +22 -0
  24. package/dist/components/AgentHead.js +20 -0
  25. package/dist/components/ChatComposer.d.ts +43 -0
  26. package/dist/components/ChatComposer.js +209 -0
  27. package/dist/components/ChatMessage.d.ts +8 -0
  28. package/dist/components/ChatMessage.js +16 -0
  29. package/dist/components/ClientRows.d.ts +11 -0
  30. package/dist/components/ClientRows.js +46 -0
  31. package/dist/components/CodeBlock.d.ts +11 -0
  32. package/dist/components/CodeBlock.js +38 -0
  33. package/dist/components/InteractionPanel.d.ts +15 -0
  34. package/dist/components/InteractionPanel.js +42 -0
  35. package/dist/components/MarkdownRenderer.d.ts +6 -0
  36. package/dist/components/MarkdownRenderer.js +48 -0
  37. package/dist/components/RunFailureNotice.d.ts +7 -0
  38. package/dist/components/RunFailureNotice.js +13 -0
  39. package/dist/components/ShiitakeAvatar.d.ts +21 -0
  40. package/dist/components/ShiitakeAvatar.js +22 -0
  41. package/dist/components/SlashMenu.d.ts +8 -0
  42. package/dist/components/SlashMenu.js +50 -0
  43. package/dist/components/ThinkingBlock.d.ts +3 -0
  44. package/dist/components/ThinkingBlock.js +18 -0
  45. package/dist/components/TimelineItem.d.ts +15 -0
  46. package/dist/components/TimelineItem.js +35 -0
  47. package/dist/components/ToolGroup.d.ts +12 -0
  48. package/dist/components/ToolGroup.js +90 -0
  49. package/dist/components/WaitingNotice.d.ts +7 -0
  50. package/dist/components/WaitingNotice.js +8 -0
  51. package/dist/components/avatar-presentation.d.ts +16 -0
  52. package/dist/components/avatar-presentation.js +9 -0
  53. package/dist/components/sprite-service.d.ts +2 -0
  54. package/dist/components/sprite-service.js +9 -0
  55. package/dist/conversation.d.ts +165 -0
  56. package/dist/conversation.js +762 -0
  57. package/dist/core/assistant-visibility.d.ts +3 -0
  58. package/dist/core/assistant-visibility.js +4 -0
  59. package/dist/core/author-labels.d.ts +16 -0
  60. package/dist/core/author-labels.js +16 -0
  61. package/dist/core/build-timeline.d.ts +36 -0
  62. package/dist/core/build-timeline.js +328 -0
  63. package/dist/core/client-actions.d.ts +35 -0
  64. package/dist/core/client-actions.js +128 -0
  65. package/dist/core/client-contributions.d.ts +24 -0
  66. package/dist/core/client-contributions.js +115 -0
  67. package/dist/core/client-timeline.d.ts +33 -0
  68. package/dist/core/client-timeline.js +72 -0
  69. package/dist/core/format-context.d.ts +11 -0
  70. package/dist/core/format-context.js +20 -0
  71. package/dist/core/format-tokens.d.ts +2 -0
  72. package/dist/core/format-tokens.js +6 -0
  73. package/dist/core/model-identity.d.ts +3 -0
  74. package/dist/core/model-identity.js +7 -0
  75. package/dist/core/session-projection.d.ts +11 -0
  76. package/dist/core/session-projection.js +191 -0
  77. package/dist/core/session-query.d.ts +118 -0
  78. package/dist/core/session-query.js +187 -0
  79. package/dist/core/session-view-state.d.ts +66 -0
  80. package/dist/core/session-view-state.js +114 -0
  81. package/dist/core/tool-contract.d.ts +15 -0
  82. package/dist/core/tool-contract.js +3 -0
  83. package/dist/core/tool-groups.d.ts +36 -0
  84. package/dist/core/tool-groups.js +151 -0
  85. package/dist/core/tool-view.d.ts +182 -0
  86. package/dist/core/tool-view.js +618 -0
  87. package/dist/headless.d.ts +28 -0
  88. package/dist/headless.js +24 -0
  89. package/dist/index.d.ts +9 -0
  90. package/dist/index.js +4 -0
  91. package/dist/lib/failure.d.ts +2 -0
  92. package/dist/lib/failure.js +9 -0
  93. package/dist/markdown.d.ts +3 -0
  94. package/dist/markdown.js +6 -0
  95. package/dist/model-commands.d.ts +44 -0
  96. package/dist/model-commands.js +232 -0
  97. package/dist/parakeet.d.ts +77 -0
  98. package/dist/parakeet.js +276 -0
  99. package/dist/provider-choices.d.ts +8 -0
  100. package/dist/provider-choices.js +46 -0
  101. package/dist/reload-command.d.ts +43 -0
  102. package/dist/reload-command.js +72 -0
  103. package/dist/session-commands.d.ts +53 -0
  104. package/dist/session-commands.js +259 -0
  105. package/dist/session.d.ts +24 -0
  106. package/dist/session.js +1 -0
  107. package/dist/store/types.d.ts +163 -0
  108. package/dist/store/types.js +1 -0
  109. package/dist/styles.css +19129 -0
  110. package/docs/api/README.md +15 -0
  111. package/docs/api/commands/slash.md +321 -0
  112. package/docs/api/headless.md +2510 -0
  113. package/docs/api/index.md +1249 -0
  114. package/package.json +79 -3
  115. package/src/styles.css +272 -0
package/package.json CHANGED
@@ -1,6 +1,82 @@
1
1
  {
2
2
  "name": "@fungi.computer/parakeet",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.1.0",
4
+ "author": "Levi <levi@technomancy.dev>",
5
+ "private": false,
6
+ "description": "Standalone React composer for a typed Shiitake Session",
7
+ "type": "module",
8
+ "sideEffects": [
9
+ "*.css"
10
+ ],
11
+ "main": "./dist/index.js",
12
+ "types": "./dist/index.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js"
17
+ },
18
+ "./headless": {
19
+ "types": "./dist/headless.d.ts",
20
+ "import": "./dist/headless.js"
21
+ },
22
+ "./agent-head": {
23
+ "types": "./dist/agent-head.d.ts",
24
+ "import": "./dist/agent-head.js"
25
+ },
26
+ "./slash": {
27
+ "types": "./dist/commands/slash.d.ts",
28
+ "import": "./dist/commands/slash.js"
29
+ },
30
+ "./styles.css": "./dist/styles.css",
31
+ "./tailwind.css": "./src/styles.css"
32
+ },
33
+ "files": [
34
+ "dist",
35
+ "README.md",
36
+ "LICENSE",
37
+ "src/styles.css",
38
+ "docs/api"
39
+ ],
40
+ "peerDependencies": {
41
+ "@tanstack/react-query": "^5.102.8",
42
+ "react": "^18.2.0 || ^19.2.0",
43
+ "react-dom": "^18.2.0 || ^19.2.0"
44
+ },
45
+ "dependencies": {
46
+ "@fungi.computer/cairn": "0.0.1",
47
+ "@fungi.computer/caps": "0.1.0",
48
+ "@fungi.computer/knapsack": "0.1.0",
49
+ "@fungi.computer/shiitake": "0.2.0",
50
+ "@fungi.computer/sigils": "0.1.0",
51
+ "@fungi.computer/sprite": "0.1.0",
52
+ "@fungi.computer/sprite-zdog": "0.1.0",
53
+ "@fungi.computer/whistle": "0.0.2",
54
+ "@tanstack/markdown": "0.0.12",
55
+ "@tanstack/react-virtual": "3.14.10",
56
+ "diff": "8.0.4",
57
+ "jotai": "2.20.3",
58
+ "jotai-tanstack-query": "0.11.0",
59
+ "lucide-react": "0.460.0",
60
+ "strip-ansi": "7.2.0",
61
+ "zod": "4.4.3",
62
+ "@fungi.computer/gills": "0.1.0"
63
+ },
64
+ "dependenciesMeta": {
65
+ "@fungi.computer/caps": {
66
+ "injected": true
67
+ }
68
+ },
69
+ "license": "MIT",
70
+ "repository": {
71
+ "type": "git",
72
+ "url": "git+https://github.com/fungi-computer/parakeet.git"
73
+ },
74
+ "fungi": {
75
+ "build": {
76
+ "stylesheet": {
77
+ "input": "src/styles.css",
78
+ "output": "dist/styles.css"
79
+ }
80
+ }
81
+ }
6
82
  }
package/src/styles.css ADDED
@@ -0,0 +1,272 @@
1
+ /*
2
+ * Parakeet retains the Dashboard conversation surface. Caps supplies the
3
+ * shared component vocabulary. This entry compiles the complete foundation
4
+ * and chat composition: consumers load it instead of an additional Caps sheet.
5
+ */
6
+ @import "@fungi.computer/caps/tailwind.css";
7
+
8
+ /* In the workspace Tailwind scans the component source; published, this
9
+ * entry ships without it, and the compiled components in dist carry the same
10
+ * class names. */
11
+ @source "./";
12
+ @source "../dist/**/*.js";
13
+
14
+ @plugin "@tailwindcss/typography";
15
+
16
+ @layer components {
17
+ .chat-composer {
18
+ border-top: 1px solid var(--color-base-300);
19
+ }
20
+ }
21
+
22
+ :root {
23
+ --prose-max-width: 80ch;
24
+ --tool-error-rail: #fff7a0;
25
+ }
26
+
27
+ .prose {
28
+ max-width: var(--prose-max-width);
29
+ }
30
+
31
+ .prose pre,
32
+ .prose table {
33
+ max-width: none;
34
+ }
35
+
36
+ .text-dim {
37
+ color: var(--stipe-fg-muted);
38
+ }
39
+
40
+ .message-body {
41
+ font-family: var(--font-sans);
42
+ line-height: 1.6;
43
+ overflow-wrap: break-word;
44
+ }
45
+
46
+ .chat-composer {
47
+ background: var(--color-base-100);
48
+ flex-shrink: 0;
49
+ }
50
+
51
+ .chat-composer .composer-body {
52
+ display: flex;
53
+ align-items: center;
54
+ gap: 0.5rem;
55
+ padding: 0.5rem;
56
+ }
57
+
58
+ .chat-composer .composer-footer {
59
+ display: flex;
60
+ height: 32px;
61
+ align-items: center;
62
+ gap: 0.5rem;
63
+ padding: 0 0.75rem;
64
+ background: var(--color-base-200);
65
+ color: var(--color-base-content);
66
+ font-family: var(--font-sans);
67
+ font-size: 0.65rem;
68
+ }
69
+
70
+ .chat-composer .parakeet-slash-label {
71
+ min-width: 7rem;
72
+ font-family: var(--font-mono);
73
+ font-weight: 600;
74
+ }
75
+
76
+ .chat-composer .parakeet-slash-match {
77
+ background: none;
78
+ color: var(--color-primary);
79
+ }
80
+
81
+ .chat-composer .parakeet-slash-detail {
82
+ flex: 1;
83
+ min-width: 0;
84
+ overflow: hidden;
85
+ text-overflow: ellipsis;
86
+ white-space: nowrap;
87
+ color: var(--stipe-fg-muted);
88
+ }
89
+
90
+ .chat-composer .parakeet-slash-keys {
91
+ font-family: var(--font-mono);
92
+ font-size: 0.65rem;
93
+ color: var(--stipe-fg-muted);
94
+ }
95
+
96
+ .chat-composer .parakeet-slash-hint {
97
+ margin: 0;
98
+ padding: 0.25rem 0.5rem;
99
+ font-family: var(--font-mono);
100
+ font-size: 0.75rem;
101
+ color: var(--stipe-fg-muted);
102
+ }
103
+
104
+ .chat-composer [data-disabled="true"] {
105
+ opacity: 0.5;
106
+ }
107
+
108
+ .chat-composer .parakeet-command-notice[data-tone="error"] {
109
+ color: var(--color-error);
110
+ }
111
+
112
+ .chat-composer .parakeet-command-notice[data-tone="success"] {
113
+ color: var(--color-success);
114
+ }
115
+
116
+ .chat-composer .parakeet-key-hints {
117
+ margin: 0;
118
+ padding: 0 0.75rem 0.25rem;
119
+ background: var(--color-base-200);
120
+ font-family: var(--font-sans);
121
+ font-size: 0.6rem;
122
+ color: var(--stipe-fg-muted);
123
+ }
124
+
125
+ .chat-composer .footer-divider {
126
+ width: 3px;
127
+ height: 3px;
128
+ border-radius: 50%;
129
+ background: var(--stipe-fg-muted);
130
+ }
131
+
132
+ /* TanStack Highlight's retained Catppuccin theme. The token selectors are
133
+ emitted here with Parakeet's browser CSS instead of injected by a host. */
134
+ html:not([data-theme]),
135
+ [data-theme="latte"] {
136
+ --th-token: #4c4f69;
137
+ --th-attr: #df8e1d;
138
+ --th-code-inline: #ea76cb;
139
+ --th-command: #8839ef;
140
+ --th-comment: #9ca0b0;
141
+ --th-deleted: #d20f39;
142
+ --th-function: #1e66f5;
143
+ --th-heading: #1e66f5;
144
+ --th-inserted: #40a02b;
145
+ --th-keyword: #8839ef;
146
+ --th-link: #1e66f5;
147
+ --th-literal: #fe640b;
148
+ --th-meta: #9ca0b0;
149
+ --th-number: #fe640b;
150
+ --th-operator: #5c5f77;
151
+ --th-property: #179299;
152
+ --th-selector: #7287fd;
153
+ --th-string: #40a02b;
154
+ --th-tag: #d20f39;
155
+ --th-type: #df8e1d;
156
+ --th-variable: #4c4f69;
157
+ }
158
+
159
+ [data-theme="mocha"] {
160
+ --th-token: #cdd6f4;
161
+ --th-attr: #f9e2af;
162
+ --th-code-inline: #f5c2e7;
163
+ --th-command: #cba6f7;
164
+ --th-comment: #6c7086;
165
+ --th-deleted: #f38ba8;
166
+ --th-function: #89b4fa;
167
+ --th-heading: #89b4fa;
168
+ --th-inserted: #a6e3a1;
169
+ --th-keyword: #cba6f7;
170
+ --th-link: #89b4fa;
171
+ --th-literal: #fab387;
172
+ --th-meta: #6c7086;
173
+ --th-number: #fab387;
174
+ --th-operator: #a6adc8;
175
+ --th-property: #94e2d5;
176
+ --th-selector: #b4befe;
177
+ --th-string: #a6e3a1;
178
+ --th-tag: #f38ba8;
179
+ --th-type: #f9e2af;
180
+ --th-variable: #cdd6f4;
181
+ }
182
+
183
+ pre.tm-code,
184
+ pre.th-code {
185
+ overflow-x: auto;
186
+ padding: 0;
187
+ background: var(--stipe-surface);
188
+ color: var(--th-token);
189
+ }
190
+
191
+ .th-token {
192
+ color: var(--th-token);
193
+ }
194
+ .th-keyword {
195
+ color: var(--th-keyword);
196
+ font-style: italic;
197
+ }
198
+ .th-string {
199
+ color: var(--th-string);
200
+ }
201
+ .th-comment {
202
+ color: var(--th-comment);
203
+ }
204
+ .th-function {
205
+ color: var(--th-function);
206
+ }
207
+ .th-type {
208
+ color: var(--th-type);
209
+ }
210
+ .th-property {
211
+ color: var(--th-property);
212
+ }
213
+ .th-tag {
214
+ color: var(--th-tag);
215
+ }
216
+ .th-attr {
217
+ color: var(--th-attr);
218
+ }
219
+ .th-literal {
220
+ color: var(--th-literal);
221
+ }
222
+ .th-number {
223
+ color: var(--th-number);
224
+ }
225
+ .th-variable {
226
+ color: var(--th-variable);
227
+ }
228
+ .th-operator {
229
+ color: var(--th-operator);
230
+ }
231
+ .th-inserted {
232
+ color: var(--th-inserted);
233
+ }
234
+ .th-deleted {
235
+ color: var(--th-deleted);
236
+ }
237
+ .th-meta {
238
+ color: var(--th-meta);
239
+ }
240
+ .th-heading {
241
+ color: var(--th-heading);
242
+ }
243
+ .th-link {
244
+ color: var(--th-link);
245
+ }
246
+ .th-code-inline {
247
+ color: var(--th-code-inline);
248
+ }
249
+ .th-selector {
250
+ color: var(--th-selector);
251
+ }
252
+ .th-command {
253
+ color: var(--th-command);
254
+ }
255
+ .th-line {
256
+ display: inline-block;
257
+ min-width: 100%;
258
+ width: max-content;
259
+ }
260
+
261
+ .markdown-renderer code:not([class^="language-"]) {
262
+ background: var(--stipe-surface-selected);
263
+ border-radius: 3px;
264
+ font-family: var(--font-mono);
265
+ font-size: 0.85em;
266
+ padding: 0 0.2em;
267
+ }
268
+
269
+ .tm-code,
270
+ .th-code {
271
+ font-family: var(--font-mono);
272
+ }