@fungi.computer/parakeet 0.0.0-stage → 0.0.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.
Files changed (117) 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 +11 -0
  18. package/dist/commands/run.js +61 -0
  19. package/dist/commands/slash.d.ts +124 -0
  20. package/dist/commands/slash.js +182 -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 +27 -0
  24. package/dist/components/AgentHead.js +53 -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 +19 -0
  40. package/dist/components/ShiitakeAvatar.js +20 -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 +23 -0
  52. package/dist/components/avatar-presentation.js +16 -0
  53. package/dist/components/sprite-service.d.ts +2 -0
  54. package/dist/components/sprite-service.js +9 -0
  55. package/dist/components/still-frame-cache.d.ts +16 -0
  56. package/dist/components/still-frame-cache.js +63 -0
  57. package/dist/conversation.d.ts +164 -0
  58. package/dist/conversation.js +760 -0
  59. package/dist/core/assistant-visibility.d.ts +3 -0
  60. package/dist/core/assistant-visibility.js +4 -0
  61. package/dist/core/author-labels.d.ts +16 -0
  62. package/dist/core/author-labels.js +16 -0
  63. package/dist/core/build-timeline.d.ts +36 -0
  64. package/dist/core/build-timeline.js +328 -0
  65. package/dist/core/client-actions.d.ts +35 -0
  66. package/dist/core/client-actions.js +128 -0
  67. package/dist/core/client-contributions.d.ts +24 -0
  68. package/dist/core/client-contributions.js +115 -0
  69. package/dist/core/client-timeline.d.ts +33 -0
  70. package/dist/core/client-timeline.js +72 -0
  71. package/dist/core/format-context.d.ts +11 -0
  72. package/dist/core/format-context.js +20 -0
  73. package/dist/core/format-tokens.d.ts +2 -0
  74. package/dist/core/format-tokens.js +6 -0
  75. package/dist/core/model-identity.d.ts +3 -0
  76. package/dist/core/model-identity.js +7 -0
  77. package/dist/core/session-projection.d.ts +11 -0
  78. package/dist/core/session-projection.js +191 -0
  79. package/dist/core/session-query.d.ts +118 -0
  80. package/dist/core/session-query.js +187 -0
  81. package/dist/core/session-view-state.d.ts +66 -0
  82. package/dist/core/session-view-state.js +114 -0
  83. package/dist/core/tool-contract.d.ts +15 -0
  84. package/dist/core/tool-contract.js +3 -0
  85. package/dist/core/tool-groups.d.ts +36 -0
  86. package/dist/core/tool-groups.js +151 -0
  87. package/dist/core/tool-view.d.ts +182 -0
  88. package/dist/core/tool-view.js +618 -0
  89. package/dist/headless.d.ts +28 -0
  90. package/dist/headless.js +24 -0
  91. package/dist/index.d.ts +9 -0
  92. package/dist/index.js +4 -0
  93. package/dist/lib/failure.d.ts +2 -0
  94. package/dist/lib/failure.js +9 -0
  95. package/dist/markdown.d.ts +3 -0
  96. package/dist/markdown.js +6 -0
  97. package/dist/model-commands.d.ts +44 -0
  98. package/dist/model-commands.js +232 -0
  99. package/dist/parakeet.d.ts +77 -0
  100. package/dist/parakeet.js +276 -0
  101. package/dist/provider-choices.d.ts +8 -0
  102. package/dist/provider-choices.js +43 -0
  103. package/dist/reload-command.d.ts +43 -0
  104. package/dist/reload-command.js +72 -0
  105. package/dist/session-commands.d.ts +53 -0
  106. package/dist/session-commands.js +259 -0
  107. package/dist/session.d.ts +24 -0
  108. package/dist/session.js +1 -0
  109. package/dist/store/types.d.ts +163 -0
  110. package/dist/store/types.js +1 -0
  111. package/dist/styles.css +19156 -0
  112. package/docs/api/README.md +15 -0
  113. package/docs/api/commands/slash.md +321 -0
  114. package/docs/api/headless.md +2510 -0
  115. package/docs/api/index.md +1253 -0
  116. package/package.json +79 -3
  117. package/src/styles.css +268 -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.0.1",
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.0.2",
48
+ "@fungi.computer/knapsack": "0.0.2",
49
+ "@fungi.computer/shiitake": "0.1.0",
50
+ "@fungi.computer/sigils": "0.0.1",
51
+ "@fungi.computer/sprite": "0.0.1",
52
+ "@fungi.computer/sprite-zdog": "0.0.1",
53
+ "@fungi.computer/whistle": "0.0.1",
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.0.1"
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,268 @@
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
+ @source "./";
9
+
10
+ @plugin "@tailwindcss/typography";
11
+
12
+ @layer components {
13
+ .chat-composer {
14
+ border-top: 1px solid var(--color-base-300);
15
+ }
16
+ }
17
+
18
+ :root {
19
+ --prose-max-width: 80ch;
20
+ --tool-error-rail: #fff7a0;
21
+ }
22
+
23
+ .prose {
24
+ max-width: var(--prose-max-width);
25
+ }
26
+
27
+ .prose pre,
28
+ .prose table {
29
+ max-width: none;
30
+ }
31
+
32
+ .text-dim {
33
+ color: var(--stipe-fg-muted);
34
+ }
35
+
36
+ .message-body {
37
+ font-family: var(--font-sans);
38
+ line-height: 1.6;
39
+ overflow-wrap: break-word;
40
+ }
41
+
42
+ .chat-composer {
43
+ background: var(--color-base-100);
44
+ flex-shrink: 0;
45
+ }
46
+
47
+ .chat-composer .composer-body {
48
+ display: flex;
49
+ align-items: center;
50
+ gap: 0.5rem;
51
+ padding: 0.5rem;
52
+ }
53
+
54
+ .chat-composer .composer-footer {
55
+ display: flex;
56
+ height: 32px;
57
+ align-items: center;
58
+ gap: 0.5rem;
59
+ padding: 0 0.75rem;
60
+ background: var(--color-base-200);
61
+ color: var(--color-base-content);
62
+ font-family: var(--font-sans);
63
+ font-size: 0.65rem;
64
+ }
65
+
66
+ .chat-composer .parakeet-slash-label {
67
+ min-width: 7rem;
68
+ font-family: var(--font-mono);
69
+ font-weight: 600;
70
+ }
71
+
72
+ .chat-composer .parakeet-slash-match {
73
+ background: none;
74
+ color: var(--color-primary);
75
+ }
76
+
77
+ .chat-composer .parakeet-slash-detail {
78
+ flex: 1;
79
+ min-width: 0;
80
+ overflow: hidden;
81
+ text-overflow: ellipsis;
82
+ white-space: nowrap;
83
+ color: var(--stipe-fg-muted);
84
+ }
85
+
86
+ .chat-composer .parakeet-slash-keys {
87
+ font-family: var(--font-mono);
88
+ font-size: 0.65rem;
89
+ color: var(--stipe-fg-muted);
90
+ }
91
+
92
+ .chat-composer .parakeet-slash-hint {
93
+ margin: 0;
94
+ padding: 0.25rem 0.5rem;
95
+ font-family: var(--font-mono);
96
+ font-size: 0.75rem;
97
+ color: var(--stipe-fg-muted);
98
+ }
99
+
100
+ .chat-composer [data-disabled="true"] {
101
+ opacity: 0.5;
102
+ }
103
+
104
+ .chat-composer .parakeet-command-notice[data-tone="error"] {
105
+ color: var(--color-error);
106
+ }
107
+
108
+ .chat-composer .parakeet-command-notice[data-tone="success"] {
109
+ color: var(--color-success);
110
+ }
111
+
112
+ .chat-composer .parakeet-key-hints {
113
+ margin: 0;
114
+ padding: 0 0.75rem 0.25rem;
115
+ background: var(--color-base-200);
116
+ font-family: var(--font-sans);
117
+ font-size: 0.6rem;
118
+ color: var(--stipe-fg-muted);
119
+ }
120
+
121
+ .chat-composer .footer-divider {
122
+ width: 3px;
123
+ height: 3px;
124
+ border-radius: 50%;
125
+ background: var(--stipe-fg-muted);
126
+ }
127
+
128
+ /* TanStack Highlight's retained Catppuccin theme. The token selectors are
129
+ emitted here with Parakeet's browser CSS instead of injected by a host. */
130
+ html:not([data-theme]),
131
+ [data-theme="latte"] {
132
+ --th-token: #4c4f69;
133
+ --th-attr: #df8e1d;
134
+ --th-code-inline: #ea76cb;
135
+ --th-command: #8839ef;
136
+ --th-comment: #9ca0b0;
137
+ --th-deleted: #d20f39;
138
+ --th-function: #1e66f5;
139
+ --th-heading: #1e66f5;
140
+ --th-inserted: #40a02b;
141
+ --th-keyword: #8839ef;
142
+ --th-link: #1e66f5;
143
+ --th-literal: #fe640b;
144
+ --th-meta: #9ca0b0;
145
+ --th-number: #fe640b;
146
+ --th-operator: #5c5f77;
147
+ --th-property: #179299;
148
+ --th-selector: #7287fd;
149
+ --th-string: #40a02b;
150
+ --th-tag: #d20f39;
151
+ --th-type: #df8e1d;
152
+ --th-variable: #4c4f69;
153
+ }
154
+
155
+ [data-theme="mocha"] {
156
+ --th-token: #cdd6f4;
157
+ --th-attr: #f9e2af;
158
+ --th-code-inline: #f5c2e7;
159
+ --th-command: #cba6f7;
160
+ --th-comment: #6c7086;
161
+ --th-deleted: #f38ba8;
162
+ --th-function: #89b4fa;
163
+ --th-heading: #89b4fa;
164
+ --th-inserted: #a6e3a1;
165
+ --th-keyword: #cba6f7;
166
+ --th-link: #89b4fa;
167
+ --th-literal: #fab387;
168
+ --th-meta: #6c7086;
169
+ --th-number: #fab387;
170
+ --th-operator: #a6adc8;
171
+ --th-property: #94e2d5;
172
+ --th-selector: #b4befe;
173
+ --th-string: #a6e3a1;
174
+ --th-tag: #f38ba8;
175
+ --th-type: #f9e2af;
176
+ --th-variable: #cdd6f4;
177
+ }
178
+
179
+ pre.tm-code,
180
+ pre.th-code {
181
+ overflow-x: auto;
182
+ padding: 0;
183
+ background: var(--stipe-surface);
184
+ color: var(--th-token);
185
+ }
186
+
187
+ .th-token {
188
+ color: var(--th-token);
189
+ }
190
+ .th-keyword {
191
+ color: var(--th-keyword);
192
+ font-style: italic;
193
+ }
194
+ .th-string {
195
+ color: var(--th-string);
196
+ }
197
+ .th-comment {
198
+ color: var(--th-comment);
199
+ }
200
+ .th-function {
201
+ color: var(--th-function);
202
+ }
203
+ .th-type {
204
+ color: var(--th-type);
205
+ }
206
+ .th-property {
207
+ color: var(--th-property);
208
+ }
209
+ .th-tag {
210
+ color: var(--th-tag);
211
+ }
212
+ .th-attr {
213
+ color: var(--th-attr);
214
+ }
215
+ .th-literal {
216
+ color: var(--th-literal);
217
+ }
218
+ .th-number {
219
+ color: var(--th-number);
220
+ }
221
+ .th-variable {
222
+ color: var(--th-variable);
223
+ }
224
+ .th-operator {
225
+ color: var(--th-operator);
226
+ }
227
+ .th-inserted {
228
+ color: var(--th-inserted);
229
+ }
230
+ .th-deleted {
231
+ color: var(--th-deleted);
232
+ }
233
+ .th-meta {
234
+ color: var(--th-meta);
235
+ }
236
+ .th-heading {
237
+ color: var(--th-heading);
238
+ }
239
+ .th-link {
240
+ color: var(--th-link);
241
+ }
242
+ .th-code-inline {
243
+ color: var(--th-code-inline);
244
+ }
245
+ .th-selector {
246
+ color: var(--th-selector);
247
+ }
248
+ .th-command {
249
+ color: var(--th-command);
250
+ }
251
+ .th-line {
252
+ display: inline-block;
253
+ min-width: 100%;
254
+ width: max-content;
255
+ }
256
+
257
+ .markdown-renderer code:not([class^="language-"]) {
258
+ background: var(--stipe-surface-selected);
259
+ border-radius: 3px;
260
+ font-family: var(--font-mono);
261
+ font-size: 0.85em;
262
+ padding: 0 0.2em;
263
+ }
264
+
265
+ .tm-code,
266
+ .th-code {
267
+ font-family: var(--font-mono);
268
+ }