@frockbot/plugin-shell 0.1.3 → 0.1.4

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.
@@ -2,7 +2,6 @@
2
2
  import { clientSurfaceRegistryKey } from "@frockbot/client-core";
3
3
  import {
4
4
  announceUiAnchor,
5
- UiButton,
6
5
  UiIcon,
7
6
  UiIconButton,
8
7
  UiMarkdown,
@@ -168,33 +167,6 @@ const botName = computed(
168
167
  );
169
168
  const isRunning = computed(() => Boolean(state.value.activeRunId));
170
169
  const isConnecting = computed(() => state.value.connection !== "ready");
171
- const needsModel = computed(() => state.value.modelSource === "none");
172
- const hasConnectedModelProvider = computed(() => {
173
- const user = state.value.userSettings;
174
- if (!user) return false;
175
- return user.connections.some((connection) => {
176
- if (connection.state !== "ready") return false;
177
- const installed = user.packages.some(
178
- (pkg) =>
179
- pkg.packageId === connection.packageId && pkg.state === "installed",
180
- );
181
- const pkg = state.value.pluginCatalog.find(
182
- (candidate) => candidate.packageId === connection.packageId,
183
- );
184
- const connectionType = pkg?.connectionTypes.find(
185
- (candidate) => candidate.id === connection.connectionTypeId,
186
- );
187
- return Boolean(
188
- installed &&
189
- pkg?.capabilities.some(
190
- (capability) =>
191
- capability.kind === "model" &&
192
- connectionType?.capabilities.includes(capability.id) &&
193
- capability.connectionTypes.includes(connectionType.id),
194
- ),
195
- );
196
- });
197
- });
198
170
  const canSend = computed(
199
171
  () =>
200
172
  state.value.connection === "ready" &&
@@ -380,17 +352,6 @@ const applySettingsDeepLink = (): void => {
380
352
  if (anchor) void nextTick(() => announceUiAnchor(anchor));
381
353
  };
382
354
 
383
- function openModelSetup(): void {
384
- const registry = surfaces;
385
- if (!registry) return;
386
- if (hasConnectedModelProvider.value && registry.has("user-settings")) {
387
- registry.open("user-settings");
388
- void nextTick(() => announceUiAnchor("user-default-model"));
389
- return;
390
- }
391
- if (registry.has("plugins")) registry.open("plugins");
392
- }
393
-
394
355
  onMounted(() => {
395
356
  void web.value.loadPluginCatalog();
396
357
  void scrollToLatest("auto");
@@ -665,15 +626,7 @@ function handleComposerKeydown(event: KeyboardEvent): void {
665
626
  /></span>
666
627
  <div class="workspace-title">
667
628
  <strong>{{ botName }}</strong>
668
- <small v-if="!needsModel">{{ state.modelLabel }}</small>
669
- <button
670
- v-else
671
- type="button"
672
- class="model-setup-link"
673
- @click="openModelSetup"
674
- >
675
- Choose a model
676
- </button>
629
+ <small>{{ state.modelLabel }}</small>
677
630
  </div>
678
631
  <k-slot name="frockbot.header-actions" />
679
632
  </header>
@@ -690,27 +643,16 @@ function handleComposerKeydown(event: KeyboardEvent): void {
690
643
  {{
691
644
  state.modelReady
692
645
  ? `${botName} is ready.`
693
- : needsModel
694
- ? `${botName} needs a model.`
695
- : `${botName} isn't ready.`
646
+ : `${botName} isn't ready.`
696
647
  }}
697
648
  </h1>
698
649
  <p>
699
650
  {{
700
651
  state.modelReady
701
652
  ? "Start with a conversation. Cordis plugins can add the rest."
702
- : needsModel
703
- ? "Pick a default to start chatting."
704
- : "Check this Bot's model Connection."
653
+ : "Check this Bot's model Connection."
705
654
  }}
706
655
  </p>
707
- <UiButton
708
- v-if="needsModel"
709
- variant="primary"
710
- @click="openModelSetup"
711
- >
712
- Choose a model
713
- </UiButton>
714
656
  </div>
715
657
  <article
716
658
  v-for="message in messages"
@@ -746,7 +688,7 @@ function handleComposerKeydown(event: KeyboardEvent): void {
746
688
  <UiMarkdown :text="message.text" />
747
689
  </div>
748
690
  <!--
749
- A binary a tool filed in a durable root, drawn from the
691
+ A binary a tool filed in the Workspace, drawn from the
750
692
  Workspace read route. The thread carries the path, never the
751
693
  bytes, so a long conversation costs paths and the image is
752
694
  fetched only when it is on screen.
@@ -894,16 +836,7 @@ function handleComposerKeydown(event: KeyboardEvent): void {
894
836
  </span>
895
837
  </li>
896
838
  </ul>
897
- <UiButton
898
- v-if="!isRunning && !isConnecting && needsModel"
899
- type="button"
900
- class="composer-model-setup"
901
- variant="primary"
902
- @click="openModelSetup"
903
- >
904
- Choose a model
905
- </UiButton>
906
- <div v-else class="composer-body">
839
+ <div class="composer-body">
907
840
  <ul v-if="attachedSkills.length > 0" class="skill-chips">
908
841
  <li v-for="entry in attachedSkills" :key="entry.ref">
909
842
  <button
@@ -950,7 +883,7 @@ function handleComposerKeydown(event: KeyboardEvent): void {
950
883
  @click="web.stopRun()"
951
884
  />
952
885
  <UiIconButton
953
- v-else-if="!needsModel || isConnecting"
886
+ v-else
954
887
  type="submit"
955
888
  icon="arrow-up"
956
889
  label="Send message"