@frockbot/plugin-shell 0.3.18 → 0.3.20
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/package.json +32 -32
- package/src/backend.ts +39 -7
- package/src/client/styles.css +12 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frockbot/plugin-shell",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.20",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -52,42 +52,42 @@
|
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@cordisjs/plugin-webui": "0.8.2",
|
|
55
|
-
"@frockbot/agent-runtime": "0.3.
|
|
56
|
-
"@frockbot/application-foundation": "0.3.
|
|
57
|
-
"@frockbot/catalog-core": "0.3.
|
|
58
|
-
"@frockbot/client-core": "0.3.
|
|
59
|
-
"@frockbot/client-ui": "0.3.
|
|
60
|
-
"@frockbot/computer-core": "0.3.
|
|
61
|
-
"@frockbot/computer-host-protocol": "0.3.
|
|
62
|
-
"@frockbot/configuration-core": "0.3.
|
|
63
|
-
"@frockbot/connection-core": "0.3.
|
|
64
|
-
"@frockbot/kernel-agent-loop": "0.3.
|
|
65
|
-
"@frockbot/kernel-composition": "0.3.
|
|
66
|
-
"@frockbot/kernel-contracts": "0.3.
|
|
67
|
-
"@frockbot/kernel-do": "0.3.
|
|
68
|
-
"@frockbot/machine-protocol": "0.3.
|
|
69
|
-
"@frockbot/plugin-applets": "0.3.
|
|
70
|
-
"@frockbot/plugin-authoring": "0.3.
|
|
71
|
-
"@frockbot/plugin-bot-template": "0.3.
|
|
72
|
-
"@frockbot/plugin-computer": "0.3.
|
|
73
|
-
"@frockbot/plugin-flock": "0.3.
|
|
74
|
-
"@frockbot/plugin-image": "0.3.
|
|
75
|
-
"@frockbot/plugin-machine-messages": "0.3.
|
|
76
|
-
"@frockbot/plugin-mcp": "0.3.
|
|
77
|
-
"@frockbot/plugin-memory": "0.3.
|
|
78
|
-
"@frockbot/plugin-package-catalog": "0.3.
|
|
79
|
-
"@frockbot/plugin-routines": "0.3.
|
|
80
|
-
"@frockbot/plugin-skills": "0.3.
|
|
81
|
-
"@frockbot/plugin-subagents": "0.3.
|
|
82
|
-
"@frockbot/plugin-user-machine": "0.3.
|
|
83
|
-
"@frockbot/protocol": "0.3.
|
|
55
|
+
"@frockbot/agent-runtime": "0.3.20",
|
|
56
|
+
"@frockbot/application-foundation": "0.3.20",
|
|
57
|
+
"@frockbot/catalog-core": "0.3.20",
|
|
58
|
+
"@frockbot/client-core": "0.3.20",
|
|
59
|
+
"@frockbot/client-ui": "0.3.20",
|
|
60
|
+
"@frockbot/computer-core": "0.3.20",
|
|
61
|
+
"@frockbot/computer-host-protocol": "0.3.20",
|
|
62
|
+
"@frockbot/configuration-core": "0.3.20",
|
|
63
|
+
"@frockbot/connection-core": "0.3.20",
|
|
64
|
+
"@frockbot/kernel-agent-loop": "0.3.20",
|
|
65
|
+
"@frockbot/kernel-composition": "0.3.20",
|
|
66
|
+
"@frockbot/kernel-contracts": "0.3.20",
|
|
67
|
+
"@frockbot/kernel-do": "0.3.20",
|
|
68
|
+
"@frockbot/machine-protocol": "0.3.20",
|
|
69
|
+
"@frockbot/plugin-applets": "0.3.20",
|
|
70
|
+
"@frockbot/plugin-authoring": "0.3.20",
|
|
71
|
+
"@frockbot/plugin-bot-template": "0.3.20",
|
|
72
|
+
"@frockbot/plugin-computer": "0.3.20",
|
|
73
|
+
"@frockbot/plugin-flock": "0.3.20",
|
|
74
|
+
"@frockbot/plugin-image": "0.3.20",
|
|
75
|
+
"@frockbot/plugin-machine-messages": "0.3.20",
|
|
76
|
+
"@frockbot/plugin-mcp": "0.3.20",
|
|
77
|
+
"@frockbot/plugin-memory": "0.3.20",
|
|
78
|
+
"@frockbot/plugin-package-catalog": "0.3.20",
|
|
79
|
+
"@frockbot/plugin-routines": "0.3.20",
|
|
80
|
+
"@frockbot/plugin-skills": "0.3.20",
|
|
81
|
+
"@frockbot/plugin-subagents": "0.3.20",
|
|
82
|
+
"@frockbot/plugin-user-machine": "0.3.20",
|
|
83
|
+
"@frockbot/protocol": "0.3.20",
|
|
84
84
|
"cordis": "4.0.0-rc.8",
|
|
85
85
|
"vue": "3.5.41"
|
|
86
86
|
},
|
|
87
87
|
"devDependencies": {
|
|
88
88
|
"@cloudflare/workers-types": "latest",
|
|
89
|
-
"@frockbot/plugin-prompt": "0.3.
|
|
90
|
-
"@frockbot/plugin-tools": "0.3.
|
|
89
|
+
"@frockbot/plugin-prompt": "0.3.20",
|
|
90
|
+
"@frockbot/plugin-tools": "0.3.20",
|
|
91
91
|
"@types/bun": "1.3.6",
|
|
92
92
|
"@types/node": "26.2.0",
|
|
93
93
|
"@vitejs/plugin-vue": "6.0.8",
|
package/src/backend.ts
CHANGED
|
@@ -60,6 +60,7 @@ import {
|
|
|
60
60
|
type BotDurableAuthorityOptions,
|
|
61
61
|
type BotTurnExecutionInput,
|
|
62
62
|
type OwnedBotTurnCommand,
|
|
63
|
+
type StoredRunOriginV1,
|
|
63
64
|
} from "@frockbot/kernel-do";
|
|
64
65
|
import type {
|
|
65
66
|
FoundationAgentPackage,
|
|
@@ -681,6 +682,15 @@ export interface ShellBotBackendHost {
|
|
|
681
682
|
turn: number;
|
|
682
683
|
events: readonly SessionEvent[];
|
|
683
684
|
}): Promise<void>;
|
|
685
|
+
/** A Package-neutral hook for an agent Turn's durable terminal projection. */
|
|
686
|
+
recordSettledAgentOutcome?(input: {
|
|
687
|
+
userId: string;
|
|
688
|
+
botId: string;
|
|
689
|
+
runId: string;
|
|
690
|
+
turn: number;
|
|
691
|
+
origin?: StoredRunOriginV1;
|
|
692
|
+
events: readonly SessionEvent[];
|
|
693
|
+
}): Promise<void>;
|
|
684
694
|
}
|
|
685
695
|
|
|
686
696
|
/** The narrow storage seam the Bot's announcement log is written through. */
|
|
@@ -784,6 +794,7 @@ export class ShellBotBackendContribution {
|
|
|
784
794
|
private readonly hostDeferScheduledWork?: ShellBotBackendHost["deferScheduledWork"];
|
|
785
795
|
private readonly hostSettleScheduledWork?: ShellBotBackendHost["settleScheduledWork"];
|
|
786
796
|
private readonly recordSettledUsage?: ShellBotBackendHost["recordSettledUsage"];
|
|
797
|
+
private readonly recordSettledAgentOutcome?: ShellBotBackendHost["recordSettledAgentOutcome"];
|
|
787
798
|
|
|
788
799
|
constructor(host: ShellBotBackendHost) {
|
|
789
800
|
this.ctx = host.state;
|
|
@@ -800,6 +811,7 @@ export class ShellBotBackendContribution {
|
|
|
800
811
|
this.hostDeferScheduledWork = host.deferScheduledWork;
|
|
801
812
|
this.hostSettleScheduledWork = host.settleScheduledWork;
|
|
802
813
|
this.recordSettledUsage = host.recordSettledUsage;
|
|
814
|
+
this.recordSettledAgentOutcome = host.recordSettledAgentOutcome;
|
|
803
815
|
const routines = createBotRoutines(
|
|
804
816
|
host.state.storage,
|
|
805
817
|
createBotRoutineHookMinter(
|
|
@@ -1759,14 +1771,34 @@ export class ShellBotBackendContribution {
|
|
|
1759
1771
|
input.command.sessionId,
|
|
1760
1772
|
effect,
|
|
1761
1773
|
),
|
|
1762
|
-
...(this.recordSettledUsage
|
|
1774
|
+
...(this.recordSettledUsage || this.recordSettledAgentOutcome
|
|
1763
1775
|
? {
|
|
1764
|
-
onTurnStopping: (settled) =>
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1776
|
+
onTurnStopping: async (settled) => {
|
|
1777
|
+
await Promise.allSettled([
|
|
1778
|
+
...(this.recordSettledUsage
|
|
1779
|
+
? [
|
|
1780
|
+
this.recordSettledUsage({
|
|
1781
|
+
botId: input.identity.botId,
|
|
1782
|
+
runId: input.command.runId,
|
|
1783
|
+
...settled,
|
|
1784
|
+
}),
|
|
1785
|
+
]
|
|
1786
|
+
: []),
|
|
1787
|
+
...(this.recordSettledAgentOutcome
|
|
1788
|
+
? [
|
|
1789
|
+
this.recordSettledAgentOutcome({
|
|
1790
|
+
userId: input.identity.userId,
|
|
1791
|
+
botId: input.identity.botId,
|
|
1792
|
+
runId: input.command.runId,
|
|
1793
|
+
...(input.command.origin
|
|
1794
|
+
? { origin: input.command.origin }
|
|
1795
|
+
: {}),
|
|
1796
|
+
...settled,
|
|
1797
|
+
}),
|
|
1798
|
+
]
|
|
1799
|
+
: []),
|
|
1800
|
+
]);
|
|
1801
|
+
},
|
|
1770
1802
|
}
|
|
1771
1803
|
: {}),
|
|
1772
1804
|
...(isolate ? { isolate } : {}),
|
package/src/client/styles.css
CHANGED
|
@@ -499,9 +499,19 @@
|
|
|
499
499
|
background: var(--frock-action-primary);
|
|
500
500
|
}
|
|
501
501
|
|
|
502
|
+
/*
|
|
503
|
+
* The User's bubble and its "via" line share a column anchored at the end.
|
|
504
|
+
* It spans the whole thread: the bubble's max-width is a percentage, and
|
|
505
|
+
* against a wrapper that shrink-wraps the bubble that percentage resolves to
|
|
506
|
+
* less than the bubble itself, which is how "Hi" came out one letter per
|
|
507
|
+
* line (2026-09-05).
|
|
508
|
+
*/
|
|
502
509
|
.message-user-column {
|
|
503
|
-
display:
|
|
504
|
-
|
|
510
|
+
display: flex;
|
|
511
|
+
width: 100%;
|
|
512
|
+
min-width: 0;
|
|
513
|
+
flex-direction: column;
|
|
514
|
+
align-items: flex-end;
|
|
505
515
|
gap: 4px;
|
|
506
516
|
}
|
|
507
517
|
|