@fungi.computer/parakeet 0.1.0 → 0.2.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.
- package/README.md +45 -6
- package/dist/account-commands.js +3 -11
- package/dist/commands/advertised.d.ts +3 -1
- package/dist/commands/advertised.js +89 -4
- package/dist/commands/interactions.d.ts +22 -7
- package/dist/commands/interactions.js +41 -17
- package/dist/commands/slash.js +3 -5
- package/dist/commands/use-slash-commands.js +2 -2
- package/dist/components/AgentHead.d.ts +2 -0
- package/dist/components/AgentHead.js +5 -4
- package/dist/components/ChatComposer.d.ts +3 -1
- package/dist/components/ChatComposer.js +79 -15
- package/dist/components/ChatMessage.d.ts +4 -0
- package/dist/components/ChatMessage.js +6 -2
- package/dist/components/ClientRows.js +2 -2
- package/dist/components/InteractionPanel.d.ts +2 -4
- package/dist/components/InteractionPanel.js +2 -2
- package/dist/components/TimelineItem.d.ts +2 -0
- package/dist/components/TimelineItem.js +31 -7
- package/dist/conversation-opening.d.ts +47 -0
- package/dist/conversation-opening.js +173 -0
- package/dist/conversation.d.ts +47 -3
- package/dist/conversation.js +584 -86
- package/dist/core/author-labels.d.ts +2 -0
- package/dist/core/build-timeline.d.ts +4 -2
- package/dist/core/build-timeline.js +46 -7
- package/dist/core/client-actions.js +6 -3
- package/dist/core/client-timeline.d.ts +9 -2
- package/dist/core/client-timeline.js +15 -4
- package/dist/core/draft-storage.d.ts +63 -0
- package/dist/core/draft-storage.js +50 -0
- package/dist/core/model-identity.d.ts +2 -0
- package/dist/core/model-identity.js +6 -0
- package/dist/core/queued-recall.d.ts +35 -0
- package/dist/core/queued-recall.js +138 -0
- package/dist/core/session-projection.js +17 -0
- package/dist/core/session-query.d.ts +54 -11
- package/dist/core/session-query.js +38 -12
- package/dist/core/tool-groups.d.ts +1 -1
- package/dist/core/tool-groups.js +3 -1
- package/dist/core/tool-view.js +2 -1
- package/dist/core/use-timeline-item-key.d.ts +8 -0
- package/dist/core/use-timeline-item-key.js +29 -0
- package/dist/headless.d.ts +6 -4
- package/dist/headless.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/model-commands.js +64 -39
- package/dist/parakeet.js +17 -18
- package/dist/session-commands.d.ts +0 -9
- package/dist/session-commands.js +39 -68
- package/dist/session.d.ts +1 -1
- package/dist/store/types.d.ts +10 -4
- package/dist/styles.css +27 -12
- package/docs/api/commands/slash.md +24 -21
- package/docs/api/headless.md +375 -232
- package/docs/api/index.md +157 -45
- package/package.json +16 -10
- package/src/styles.css +0 -9
package/docs/api/index.md
CHANGED
|
@@ -26,11 +26,10 @@ What the head is doing: at rest, working something out, or talking.
|
|
|
26
26
|
type InteractionPanelProps = Readonly<{
|
|
27
27
|
host: WhistleInteractionHost;
|
|
28
28
|
onClose?: () => void;
|
|
29
|
-
onRetry?: () => void;
|
|
30
29
|
}>;
|
|
31
30
|
```
|
|
32
31
|
|
|
33
|
-
The interaction to draw and the page's close
|
|
32
|
+
The interaction to draw and the page's close callback.
|
|
34
33
|
|
|
35
34
|
---
|
|
36
35
|
|
|
@@ -96,8 +95,11 @@ Conversation activity presented by Parakeet.
|
|
|
96
95
|
|
|
97
96
|
```ts
|
|
98
97
|
type TimelineController = Readonly<{
|
|
98
|
+
cancelQueued: (commandId) => Promise<void>;
|
|
99
|
+
cancellingQueued: boolean;
|
|
99
100
|
settled: readonly ParakeetTimelineItem[];
|
|
100
101
|
tail: readonly ParakeetTimelineItem[];
|
|
102
|
+
positionAnchors: ReadonlyMap<number, string | null>;
|
|
101
103
|
commandAnchors: ReadonlyMap<string, string>;
|
|
102
104
|
queued: SessionPendingPrompts;
|
|
103
105
|
pendingHasMore: boolean;
|
|
@@ -117,12 +119,33 @@ Stable history and replaceable work rendered by a conversation client.
|
|
|
117
119
|
|
|
118
120
|
---
|
|
119
121
|
|
|
122
|
+
### ParakeetDraftCheckpoint
|
|
123
|
+
|
|
124
|
+
```ts
|
|
125
|
+
type ParakeetDraftCheckpoint =
|
|
126
|
+
| Readonly<{
|
|
127
|
+
status: "saved";
|
|
128
|
+
}>
|
|
129
|
+
| Readonly<{
|
|
130
|
+
status: "failed";
|
|
131
|
+
reason: string;
|
|
132
|
+
}>;
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
A host may proceed with restart only after the current journal committed.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
120
139
|
### ComposerController
|
|
121
140
|
|
|
122
141
|
```ts
|
|
123
142
|
type ComposerController = Readonly<{
|
|
124
143
|
cancel: () => Promise<void>;
|
|
125
144
|
draft: string;
|
|
145
|
+
images: PromptCommand["images"];
|
|
146
|
+
recallState: QueuedRecallState;
|
|
147
|
+
recall: () => Promise<QueuedRecallOutcome>;
|
|
148
|
+
checkpointDraft: () => ParakeetDraftCheckpoint;
|
|
126
149
|
failure: "admission" | "failed" | "cancelled" | "interrupted" | undefined;
|
|
127
150
|
admissionError: "queue_full" | undefined;
|
|
128
151
|
retry: () => void;
|
|
@@ -160,6 +183,7 @@ Session activity, observation, and Agent-lifetime controls.
|
|
|
160
183
|
type ParakeetAuthor = Readonly<{
|
|
161
184
|
id: string;
|
|
162
185
|
name: string;
|
|
186
|
+
kind?: "agent";
|
|
163
187
|
}>;
|
|
164
188
|
```
|
|
165
189
|
|
|
@@ -188,6 +212,60 @@ Parakeet never interprets metadata itself.
|
|
|
188
212
|
|
|
189
213
|
---
|
|
190
214
|
|
|
215
|
+
### ParakeetDraftIdentity
|
|
216
|
+
|
|
217
|
+
```ts
|
|
218
|
+
type ParakeetDraftIdentity = Readonly<{
|
|
219
|
+
agentId: string;
|
|
220
|
+
sessionId: string;
|
|
221
|
+
}>;
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Durable owner identity, independent of the current service endpoint.
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
### ParakeetDraftStorage
|
|
229
|
+
|
|
230
|
+
```ts
|
|
231
|
+
type ParakeetDraftStorage = Readonly<{
|
|
232
|
+
getItem: (key) => string | null;
|
|
233
|
+
setItem: (key, value) => void;
|
|
234
|
+
}>;
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Hosts must commit a replacement before returning, or throw without changing it.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
### QueuedRecallState
|
|
242
|
+
|
|
243
|
+
```ts
|
|
244
|
+
type QueuedRecallState =
|
|
245
|
+
| Readonly<{
|
|
246
|
+
kind: "idle" | "recalling" | "restored";
|
|
247
|
+
}>
|
|
248
|
+
| Readonly<{
|
|
249
|
+
kind: "too_late" | "uncertain";
|
|
250
|
+
message: string;
|
|
251
|
+
}>;
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Ephemeral composer reservation, never an admission journal or queue.
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
### QueuedRecallOutcome
|
|
259
|
+
|
|
260
|
+
```ts
|
|
261
|
+
type QueuedRecallOutcome =
|
|
262
|
+
"ignored" | "empty" | "restored" | "too_late" | "uncertain";
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
Result of one recall gesture; an empty queue permits local input history.
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
191
269
|
### ParakeetToolArguments
|
|
192
270
|
|
|
193
271
|
```ts
|
|
@@ -481,15 +559,18 @@ type ParakeetSessionCommand = {
|
|
|
481
559
|
status: "accepted";
|
|
482
560
|
commandId: string;
|
|
483
561
|
}>
|
|
562
|
+
| Readonly<{
|
|
563
|
+
status: "recorded";
|
|
564
|
+
}>
|
|
484
565
|
| Readonly<{
|
|
485
566
|
status: "too_late";
|
|
486
567
|
commandId: string;
|
|
487
568
|
}>
|
|
488
569
|
| Readonly<{
|
|
489
|
-
|
|
570
|
+
status: "unknown";
|
|
490
571
|
}>
|
|
491
572
|
| Readonly<{
|
|
492
|
-
|
|
573
|
+
sessionId: string;
|
|
493
574
|
}>
|
|
494
575
|
| undefined
|
|
495
576
|
>;
|
|
@@ -508,9 +589,9 @@ Admit Agent work or record a prompt held for a human reply.
|
|
|
508
589
|
|
|
509
590
|
##### Parameters
|
|
510
591
|
|
|
511
|
-
| Parameter | Type
|
|
512
|
-
| --------- |
|
|
513
|
-
| `input` | \| \{ `delivery`: `"
|
|
592
|
+
| Parameter | Type |
|
|
593
|
+
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
594
|
+
| `input` | \| \{ `delivery`: `Schema.Literals`\<readonly \[`"steer"`, `"followUp"`\]\>; `requestId`: `Schema.String`; `type`: `Schema.Literal`\<`"prompt"`\>; `text`: `Schema.String`; `images?`: `Schema.optionalKey`\<`Schema.$Array`\<`Schema.Struct`\<\{ `type`: `Schema.Literal`\<`"image"`\>; `data`: `Schema.String`; `mimeType`: `Schema.String`; \}\>\>\>; \} \| \{ `type`: `Schema.Literal`\<`"compact"`\>; `requestId`: `Schema.String`; `instructions?`: `Schema.optionalKey`\<`Schema.String`\>; \} |
|
|
514
595
|
|
|
515
596
|
##### Returns
|
|
516
597
|
|
|
@@ -526,12 +607,12 @@ Cancel the named queued or running command.
|
|
|
526
607
|
|
|
527
608
|
##### Parameters
|
|
528
609
|
|
|
529
|
-
| Parameter | Type
|
|
530
|
-
| ---------------------- |
|
|
531
|
-
| `input` | \{ `commandId`: `
|
|
532
|
-
| `input.commandId` | `
|
|
533
|
-
| `input.onlyIfPending?` | `
|
|
534
|
-
| `input.type` | `"cancel"
|
|
610
|
+
| Parameter | Type |
|
|
611
|
+
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
612
|
+
| `input` | \{ `commandId`: `Schema.String`; `onlyIfPending?`: `Schema.optional`\<`Schema.Boolean`\>; `type`: `Schema.Literal`\<`"cancel"`\>; \} |
|
|
613
|
+
| `input.commandId` | `Schema.String` |
|
|
614
|
+
| `input.onlyIfPending?` | `Schema.optional`\<`Schema.Boolean`\> |
|
|
615
|
+
| `input.type` | `Schema.Literal`\<`"cancel"`\> |
|
|
535
616
|
|
|
536
617
|
##### Returns
|
|
537
618
|
|
|
@@ -547,9 +628,9 @@ Forward an owner-supported Session control command.
|
|
|
547
628
|
|
|
548
629
|
##### Parameters
|
|
549
630
|
|
|
550
|
-
| Parameter | Type
|
|
551
|
-
| --------- |
|
|
552
|
-
| `input` | \| \{ `type`: `"
|
|
631
|
+
| Parameter | Type |
|
|
632
|
+
| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
633
|
+
| `input` | \| \{ `type`: `Schema.Literal`\<`"branch"`\>; `entryId`: `Schema.String`; \} \| \{ `type`: `Schema.Literal`\<`"operator"`\>; `requestId`: `Schema.String`; `author`: `Schema.Literals`\<readonly \[`"operator"`, `"party"`\]\>; `text`: `Schema.String`; \} \| \{ `type`: `Schema.Literal`\<`"title"`\>; `title`: `Schema.NullOr`\<`Schema.String`\>; \} \| \{ `type`: `Schema.Literal`\<`"abort"`\>; \} |
|
|
553
634
|
|
|
554
635
|
##### Returns
|
|
555
636
|
|
|
@@ -567,11 +648,11 @@ Return the owner-issued address of a forked Session.
|
|
|
567
648
|
|
|
568
649
|
##### Parameters
|
|
569
650
|
|
|
570
|
-
| Parameter | Type
|
|
571
|
-
| --------------- |
|
|
572
|
-
| `input` | \{ `type`: `"fork"
|
|
573
|
-
| `input.type` | `"fork"
|
|
574
|
-
| `input.entryId` | `
|
|
651
|
+
| Parameter | Type |
|
|
652
|
+
| --------------- | ----------------------------------------------------------------------- |
|
|
653
|
+
| `input` | \{ `type`: `Schema.Literal`\<`"fork"`\>; `entryId`: `Schema.String`; \} |
|
|
654
|
+
| `input.type` | `Schema.Literal`\<`"fork"`\> |
|
|
655
|
+
| `input.entryId` | `Schema.String` |
|
|
575
656
|
|
|
576
657
|
##### Returns
|
|
577
658
|
|
|
@@ -584,16 +665,19 @@ Return the owner-issued address of a forked Session.
|
|
|
584
665
|
| Readonly<{
|
|
585
666
|
status: "accepted";
|
|
586
667
|
commandId: string;
|
|
668
|
+
}>
|
|
669
|
+
| Readonly<{
|
|
670
|
+
status: "recorded";
|
|
587
671
|
}>
|
|
588
672
|
| Readonly<{
|
|
589
673
|
status: "too_late";
|
|
590
674
|
commandId: string;
|
|
591
675
|
}>
|
|
592
676
|
| Readonly<{
|
|
593
|
-
|
|
677
|
+
status: "unknown";
|
|
594
678
|
}>
|
|
595
679
|
| Readonly<{
|
|
596
|
-
|
|
680
|
+
sessionId: string;
|
|
597
681
|
}>
|
|
598
682
|
| undefined>;
|
|
599
683
|
```
|
|
@@ -602,16 +686,16 @@ Dispatch a typed command without inventing an admission result.
|
|
|
602
686
|
|
|
603
687
|
##### Parameters
|
|
604
688
|
|
|
605
|
-
| Parameter | Type
|
|
606
|
-
| --------- |
|
|
607
|
-
| `input` | \| \{ `delivery`: `"
|
|
689
|
+
| Parameter | Type |
|
|
690
|
+
| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
691
|
+
| `input` | \| \{ `delivery`: `Schema.Literals`\<readonly \[`"steer"`, `"followUp"`\]\>; `requestId`: `Schema.String`; `type`: `Schema.Literal`\<`"prompt"`\>; `text`: `Schema.String`; `images?`: `Schema.optionalKey`\<`Schema.$Array`\<`Schema.Struct`\<\{ `type`: `Schema.Literal`\<`"image"`\>; `data`: `Schema.String`; `mimeType`: `Schema.String`; \}\>\>\>; \} \| \{ `type`: `Schema.Literal`\<`"abort"`\>; \} \| \{ `commandId`: `Schema.String`; `onlyIfPending?`: `Schema.optional`\<`Schema.Boolean`\>; `type`: `Schema.Literal`\<`"cancel"`\>; \} \| \{ `type`: `Schema.Literal`\<`"branch"`\>; `entryId`: `Schema.String`; \} \| \{ `type`: `Schema.Literal`\<`"fork"`\>; `entryId`: `Schema.String`; \} \| \{ `type`: `Schema.Literal`\<`"operator"`\>; `requestId`: `Schema.String`; `author`: `Schema.Literals`\<readonly \[`"operator"`, `"party"`\]\>; `text`: `Schema.String`; \} \| \{ `type`: `Schema.Literal`\<`"compact"`\>; `requestId`: `Schema.String`; `instructions?`: `Schema.optionalKey`\<`Schema.String`\>; \} \| \{ `type`: `Schema.Literal`\<`"title"`\>; `title`: `Schema.NullOr`\<`Schema.String`\>; \} |
|
|
608
692
|
|
|
609
693
|
##### Returns
|
|
610
694
|
|
|
611
695
|
`Promise`\< \| `Readonly`\<\{ `status`: `"accepted"`; `commandId`: `string`;
|
|
612
|
-
\}\> \| `Readonly`\<\{ `status`: `"
|
|
613
|
-
`
|
|
614
|
-
`"
|
|
696
|
+
\}\> \| `Readonly`\<\{ `status`: `"recorded"`; \}\> \| `Readonly`\<\{ `status`:
|
|
697
|
+
`"too_late"`; `commandId`: `string`; \}\> \| `Readonly`\<\{ `status`:
|
|
698
|
+
`"unknown"`; \}\> \| `Readonly`\<\{ `sessionId`: `string`; \}\> \| `undefined`\>
|
|
615
699
|
|
|
616
700
|
---
|
|
617
701
|
|
|
@@ -619,7 +703,11 @@ Dispatch a typed command without inventing an admission result.
|
|
|
619
703
|
|
|
620
704
|
```ts
|
|
621
705
|
type ParakeetSession = Readonly<
|
|
622
|
-
Pick<
|
|
706
|
+
Pick<
|
|
707
|
+
ShiitakeSession,
|
|
708
|
+
"address" | "extension" | "read" | "watch" | "withdraw" | "latestPending"
|
|
709
|
+
> &
|
|
710
|
+
object
|
|
623
711
|
>;
|
|
624
712
|
```
|
|
625
713
|
|
|
@@ -681,6 +769,7 @@ type ParakeetToolItem = Readonly<{
|
|
|
681
769
|
kind: "tool";
|
|
682
770
|
name: string;
|
|
683
771
|
result?: ToolResultMessage;
|
|
772
|
+
data?: SessionMessage["data"];
|
|
684
773
|
startedAt?: number;
|
|
685
774
|
status: "completed" | "error" | "running" | "unknown";
|
|
686
775
|
}>;
|
|
@@ -728,7 +817,7 @@ type ParakeetTimelineItem =
|
|
|
728
817
|
kind: "compaction_notice";
|
|
729
818
|
at: number;
|
|
730
819
|
trigger: SessionCompactionTrigger;
|
|
731
|
-
result: "failed" | "nothing_to_compact";
|
|
820
|
+
result: "failed" | "nothing_to_compact" | "stale" | "insufficient";
|
|
732
821
|
diagnostic: string | null;
|
|
733
822
|
}
|
|
734
823
|
| ParakeetToolGroupItem
|
|
@@ -773,19 +862,19 @@ Stable row grammar rendered by Parakeet's timeline.
|
|
|
773
862
|
kind: "compaction_notice";
|
|
774
863
|
at: number;
|
|
775
864
|
trigger: SessionCompactionTrigger;
|
|
776
|
-
result: "failed" | "nothing_to_compact";
|
|
865
|
+
result: "failed" | "nothing_to_compact" | "stale" | "insufficient";
|
|
777
866
|
diagnostic: string | null;
|
|
778
867
|
}
|
|
779
868
|
```
|
|
780
869
|
|
|
781
|
-
| Name | Type
|
|
782
|
-
| ------------ |
|
|
783
|
-
| `id` | `string`
|
|
784
|
-
| `kind` | `"compaction_notice"`
|
|
785
|
-
| `at` | `number`
|
|
786
|
-
| `trigger` | `SessionCompactionTrigger`
|
|
787
|
-
| `result` | `"failed"` \| `"nothing_to_compact"` | What the compaction did: nothing to summarize, or a
|
|
788
|
-
| `diagnostic` | `string` \| `null`
|
|
870
|
+
| Name | Type | Description |
|
|
871
|
+
| ------------ | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
872
|
+
| `id` | `string` | Stable rendered-item identity, from the durable notice entry. |
|
|
873
|
+
| `kind` | `"compaction_notice"` | Compaction-notice timeline discriminator. |
|
|
874
|
+
| `at` | `number` | When it was recorded, in milliseconds since the epoch. |
|
|
875
|
+
| `trigger` | `SessionCompactionTrigger` | What started it: the user, the context threshold, or an overflow. |
|
|
876
|
+
| `result` | `"failed"` \| `"nothing_to_compact"` \| `"stale"` \| `"insufficient"` | What the compaction did: nothing to summarize, a failure, or a summary dropped because its head no longer fit the context (stale) or because placing it would have left the context over the limit (insufficient). |
|
|
877
|
+
| `diagnostic` | `string` \| `null` | A failure's bounded reason; null otherwise. |
|
|
789
878
|
|
|
790
879
|
---
|
|
791
880
|
|
|
@@ -801,6 +890,7 @@ Stable row grammar rendered by Parakeet's timeline.
|
|
|
801
890
|
|
|
802
891
|
```ts
|
|
803
892
|
const AgentHead: NamedExoticComponent<{
|
|
893
|
+
timeMs?: number;
|
|
804
894
|
activity?: AgentHeadActivity;
|
|
805
895
|
avatar: {
|
|
806
896
|
v: 1;
|
|
@@ -909,9 +999,9 @@ Own one renderer-neutral conversation scope over the existing query cache.
|
|
|
909
999
|
|
|
910
1000
|
#### Parameters
|
|
911
1001
|
|
|
912
|
-
| Parameter | Type
|
|
913
|
-
| ------------------- |
|
|
914
|
-
| `__namedParameters` | `Readonly`\<\{ `children`: `ReactNode`; `session`: [`ParakeetSession`](#parakeetsession); `clients?`: readonly `ClientEntryV1`[]; `interactionStore?`: [`ParakeetInteractions`](headless.md#parakeetinteractions); `authorOf?`: [`ParakeetAuthorOf`](#parakeetauthorof); \}\> |
|
|
1002
|
+
| Parameter | Type |
|
|
1003
|
+
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1004
|
+
| `__namedParameters` | `Readonly`\<\{ `children`: `ReactNode`; `session`: [`ParakeetSession`](#parakeetsession); `clients?`: readonly `ClientEntryV1`[]; `interactionStore?`: [`ParakeetInteractions`](headless.md#parakeetinteractions); `onToast?`: (`toast`) => `void`; `draftStorage?`: [`ParakeetDraftStorage`](#parakeetdraftstorage); `draftIdentity?`: [`ParakeetDraftIdentity`](#parakeetdraftidentity); `authorOf?`: [`ParakeetAuthorOf`](#parakeetauthorof); \}\> |
|
|
915
1005
|
|
|
916
1006
|
#### Returns
|
|
917
1007
|
|
|
@@ -1023,6 +1113,28 @@ The durable assistant's provider/model ids, shared by browser and terminal.
|
|
|
1023
1113
|
|
|
1024
1114
|
---
|
|
1025
1115
|
|
|
1116
|
+
### formatModelWithLevel()
|
|
1117
|
+
|
|
1118
|
+
```ts
|
|
1119
|
+
function formatModelWithLevel(model, level): string;
|
|
1120
|
+
```
|
|
1121
|
+
|
|
1122
|
+
The model identity with its thinking level, "provider/model (level)"; no level,
|
|
1123
|
+
no suffix.
|
|
1124
|
+
|
|
1125
|
+
#### Parameters
|
|
1126
|
+
|
|
1127
|
+
| Parameter | Type |
|
|
1128
|
+
| --------- | --------------------------------- |
|
|
1129
|
+
| `model` | [`ParakeetModel`](#parakeetmodel) |
|
|
1130
|
+
| `level` | `string` \| `undefined` |
|
|
1131
|
+
|
|
1132
|
+
#### Returns
|
|
1133
|
+
|
|
1134
|
+
`string`
|
|
1135
|
+
|
|
1136
|
+
---
|
|
1137
|
+
|
|
1026
1138
|
### toolGroupDefaultOpen()
|
|
1027
1139
|
|
|
1028
1140
|
```ts
|
|
@@ -1057,7 +1169,7 @@ function visibleToolCalls(
|
|
|
1057
1169
|
activeVerb: string;
|
|
1058
1170
|
label: string;
|
|
1059
1171
|
paths: readonly string[];
|
|
1060
|
-
status: "error" | "unknown" | "
|
|
1172
|
+
status: "error" | "unknown" | "running" | "completed";
|
|
1061
1173
|
durationMs?: number;
|
|
1062
1174
|
exitCode?: number;
|
|
1063
1175
|
error?: string;
|
|
@@ -1079,7 +1191,7 @@ Even a folded group shows recent calls, rather than hiding all tool work.
|
|
|
1079
1191
|
readonly `Readonly`\<\{ `id`: `string`; `kind`:
|
|
1080
1192
|
[`ParakeetToolKind`](#parakeettoolkind); `name`: `string`; `verb`: `string`;
|
|
1081
1193
|
`activeVerb`: `string`; `label`: `string`; `paths`: readonly `string`[];
|
|
1082
|
-
`status`: `"error"` \| `"unknown"` \| `"
|
|
1194
|
+
`status`: `"error"` \| `"unknown"` \| `"running"` \| `"completed"`;
|
|
1083
1195
|
`durationMs?`: `number`; `exitCode?`: `number`; `error?`: `string`; `sections`:
|
|
1084
1196
|
readonly [`ParakeetToolCallSection`](#parakeettoolcallsection)[]; \}\>[]
|
|
1085
1197
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fungi.computer/parakeet",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"author": "Levi <levi@technomancy.dev>",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Standalone React composer for a typed Shiitake Session",
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
"types": "./dist/headless.d.ts",
|
|
20
20
|
"import": "./dist/headless.js"
|
|
21
21
|
},
|
|
22
|
+
"./conversation-opening": {
|
|
23
|
+
"types": "./dist/conversation-opening.d.ts",
|
|
24
|
+
"import": "./dist/conversation-opening.js"
|
|
25
|
+
},
|
|
22
26
|
"./agent-head": {
|
|
23
27
|
"types": "./dist/agent-head.d.ts",
|
|
24
28
|
"import": "./dist/agent-head.js"
|
|
@@ -43,23 +47,25 @@
|
|
|
43
47
|
"react-dom": "^18.2.0 || ^19.2.0"
|
|
44
48
|
},
|
|
45
49
|
"dependencies": {
|
|
46
|
-
"@fungi.computer/
|
|
47
|
-
"@fungi.computer/
|
|
48
|
-
"@fungi.computer/
|
|
49
|
-
"@fungi.computer/
|
|
50
|
-
"@fungi.computer/
|
|
51
|
-
"@fungi.computer/
|
|
52
|
-
"@fungi.computer/sprite
|
|
53
|
-
"@fungi.computer/
|
|
50
|
+
"@fungi.computer/agar": "0.3.0",
|
|
51
|
+
"@fungi.computer/cairn": "0.1.0",
|
|
52
|
+
"@fungi.computer/caps": "0.2.0",
|
|
53
|
+
"@fungi.computer/knapsack": "0.2.1",
|
|
54
|
+
"@fungi.computer/shiitake": "0.3.1",
|
|
55
|
+
"@fungi.computer/sigils": "0.2.0",
|
|
56
|
+
"@fungi.computer/sprite": "0.2.0",
|
|
57
|
+
"@fungi.computer/sprite-zdog": "0.2.0",
|
|
58
|
+
"@fungi.computer/whistle": "0.1.0",
|
|
54
59
|
"@tanstack/markdown": "0.0.12",
|
|
55
60
|
"@tanstack/react-virtual": "3.14.10",
|
|
56
61
|
"diff": "8.0.4",
|
|
62
|
+
"eventsource": "5.1.1",
|
|
57
63
|
"jotai": "2.20.3",
|
|
58
64
|
"jotai-tanstack-query": "0.11.0",
|
|
59
65
|
"lucide-react": "0.460.0",
|
|
60
66
|
"strip-ansi": "7.2.0",
|
|
61
67
|
"zod": "4.4.3",
|
|
62
|
-
"@fungi.computer/gills": "0.
|
|
68
|
+
"@fungi.computer/gills": "0.2.0"
|
|
63
69
|
},
|
|
64
70
|
"dependenciesMeta": {
|
|
65
71
|
"@fungi.computer/caps": {
|
package/src/styles.css
CHANGED
|
@@ -113,15 +113,6 @@
|
|
|
113
113
|
color: var(--color-success);
|
|
114
114
|
}
|
|
115
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
116
|
.chat-composer .footer-divider {
|
|
126
117
|
width: 3px;
|
|
127
118
|
height: 3px;
|