@hachej/boring-agent 0.1.22 → 0.1.24
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/dist/{agentPluginEvents-zyIvVjsA.d.ts → agentPluginEvents-CF0BGY4D.d.ts} +11 -1
- package/dist/{chunk-6R7O6BHW.js → chunk-FILARC5X.js} +6 -28
- package/dist/chunk-HDOSWEXG.js +29 -0
- package/dist/eval/index.js +33 -1
- package/dist/front/index.d.ts +49 -4
- package/dist/front/index.js +495 -97
- package/dist/front/styles.css +69 -21
- package/dist/{harness-BCit36Ha.d.ts → harness-CQ0uw6xW.d.ts} +5 -0
- package/dist/server/index.d.ts +23 -6
- package/dist/server/index.js +971 -615
- package/dist/shared/index.d.ts +17 -17
- package/dist/shared/index.js +8 -6
- package/docs/ERROR_CODES.md +4 -0
- package/docs/README.md +1 -0
- package/docs/runtime.md +133 -2
- package/package.json +9 -8
package/dist/front/styles.css
CHANGED
|
@@ -322,9 +322,6 @@
|
|
|
322
322
|
.h-4 {
|
|
323
323
|
height: calc(var(--spacing) * 4);
|
|
324
324
|
}
|
|
325
|
-
.h-5 {
|
|
326
|
-
height: calc(var(--spacing) * 5);
|
|
327
|
-
}
|
|
328
325
|
.h-6 {
|
|
329
326
|
height: calc(var(--spacing) * 6);
|
|
330
327
|
}
|
|
@@ -355,6 +352,9 @@
|
|
|
355
352
|
.max-h-48 {
|
|
356
353
|
max-height: calc(var(--spacing) * 48);
|
|
357
354
|
}
|
|
355
|
+
.max-h-\[45vh\] {
|
|
356
|
+
max-height: 45vh;
|
|
357
|
+
}
|
|
358
358
|
.max-h-\[300px\] {
|
|
359
359
|
max-height: 300px;
|
|
360
360
|
}
|
|
@@ -364,12 +364,12 @@
|
|
|
364
364
|
.min-h-6 {
|
|
365
365
|
min-height: calc(var(--spacing) * 6);
|
|
366
366
|
}
|
|
367
|
+
.min-h-11 {
|
|
368
|
+
min-height: calc(var(--spacing) * 11);
|
|
369
|
+
}
|
|
367
370
|
.min-h-16 {
|
|
368
371
|
min-height: calc(var(--spacing) * 16);
|
|
369
372
|
}
|
|
370
|
-
.min-h-\[48px\] {
|
|
371
|
-
min-height: 48px;
|
|
372
|
-
}
|
|
373
373
|
.\!w-full {
|
|
374
374
|
width: 100% !important;
|
|
375
375
|
}
|
|
@@ -409,8 +409,8 @@
|
|
|
409
409
|
.w-\[1\.5ch\] {
|
|
410
410
|
width: 1.5ch;
|
|
411
411
|
}
|
|
412
|
-
.w-\[min\(
|
|
413
|
-
width: min(
|
|
412
|
+
.w-\[min\(92vw\,340px\)\] {
|
|
413
|
+
width: min(92vw, 340px);
|
|
414
414
|
}
|
|
415
415
|
.w-auto {
|
|
416
416
|
width: auto;
|
|
@@ -448,8 +448,8 @@
|
|
|
448
448
|
.max-w-\[680px\] {
|
|
449
449
|
max-width: 680px;
|
|
450
450
|
}
|
|
451
|
-
.max-w-\[min\(52vw\,
|
|
452
|
-
max-width: min(52vw,
|
|
451
|
+
.max-w-\[min\(52vw\,260px\)\] {
|
|
452
|
+
max-width: min(52vw, 260px);
|
|
453
453
|
}
|
|
454
454
|
.max-w-full {
|
|
455
455
|
max-width: 100%;
|
|
@@ -951,12 +951,6 @@
|
|
|
951
951
|
.bg-background {
|
|
952
952
|
background-color: var(--background);
|
|
953
953
|
}
|
|
954
|
-
.bg-background\/50 {
|
|
955
|
-
background-color: var(--background);
|
|
956
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
957
|
-
background-color: color-mix(in oklab, var(--background) 50%, transparent);
|
|
958
|
-
}
|
|
959
|
-
}
|
|
960
954
|
.bg-background\/60 {
|
|
961
955
|
background-color: var(--background);
|
|
962
956
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1032,6 +1026,12 @@
|
|
|
1032
1026
|
background-color: color-mix(in oklab, var(--color-emerald-500) 70%, transparent);
|
|
1033
1027
|
}
|
|
1034
1028
|
}
|
|
1029
|
+
.bg-foreground\/\[0\.06\] {
|
|
1030
|
+
background-color: var(--foreground);
|
|
1031
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1032
|
+
background-color: color-mix(in oklab, var(--foreground) 6%, transparent);
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
1035
|
.bg-muted {
|
|
1036
1036
|
background-color: var(--muted);
|
|
1037
1037
|
}
|
|
@@ -1053,6 +1053,12 @@
|
|
|
1053
1053
|
background-color: color-mix(in oklab, var(--muted) 30%, transparent);
|
|
1054
1054
|
}
|
|
1055
1055
|
}
|
|
1056
|
+
.bg-muted\/40 {
|
|
1057
|
+
background-color: var(--muted);
|
|
1058
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1059
|
+
background-color: color-mix(in oklab, var(--muted) 40%, transparent);
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1056
1062
|
.bg-muted\/50 {
|
|
1057
1063
|
background-color: var(--muted);
|
|
1058
1064
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1065,6 +1071,12 @@
|
|
|
1065
1071
|
background-color: color-mix(in oklab, var(--muted) 60%, transparent);
|
|
1066
1072
|
}
|
|
1067
1073
|
}
|
|
1074
|
+
.bg-muted\/70 {
|
|
1075
|
+
background-color: var(--muted);
|
|
1076
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1077
|
+
background-color: color-mix(in oklab, var(--muted) 70%, transparent);
|
|
1078
|
+
}
|
|
1079
|
+
}
|
|
1068
1080
|
.bg-muted\/80 {
|
|
1069
1081
|
background-color: var(--muted);
|
|
1070
1082
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1330,6 +1342,10 @@
|
|
|
1330
1342
|
--tw-leading: 1.55;
|
|
1331
1343
|
line-height: 1.55;
|
|
1332
1344
|
}
|
|
1345
|
+
.leading-none {
|
|
1346
|
+
--tw-leading: 1;
|
|
1347
|
+
line-height: 1;
|
|
1348
|
+
}
|
|
1333
1349
|
.leading-normal {
|
|
1334
1350
|
--tw-leading: var(--leading-normal);
|
|
1335
1351
|
line-height: var(--leading-normal);
|
|
@@ -1436,9 +1452,6 @@
|
|
|
1436
1452
|
.text-accent {
|
|
1437
1453
|
color: var(--accent);
|
|
1438
1454
|
}
|
|
1439
|
-
.text-accent-foreground {
|
|
1440
|
-
color: var(--accent-foreground);
|
|
1441
|
-
}
|
|
1442
1455
|
.text-accent\/80 {
|
|
1443
1456
|
color: var(--accent);
|
|
1444
1457
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1824,11 +1837,11 @@
|
|
|
1824
1837
|
color: var(--foreground);
|
|
1825
1838
|
}
|
|
1826
1839
|
}
|
|
1827
|
-
.placeholder\:text-muted-foreground\/
|
|
1840
|
+
.placeholder\:text-muted-foreground\/45 {
|
|
1828
1841
|
&::placeholder {
|
|
1829
1842
|
color: var(--muted-foreground);
|
|
1830
1843
|
@supports (color: color-mix(in lab, red, red)) {
|
|
1831
|
-
color: color-mix(in oklab, var(--muted-foreground)
|
|
1844
|
+
color: color-mix(in oklab, var(--muted-foreground) 45%, transparent);
|
|
1832
1845
|
}
|
|
1833
1846
|
}
|
|
1834
1847
|
}
|
|
@@ -2053,6 +2066,16 @@
|
|
|
2053
2066
|
}
|
|
2054
2067
|
}
|
|
2055
2068
|
}
|
|
2069
|
+
.hover\:bg-muted\/70 {
|
|
2070
|
+
&:hover {
|
|
2071
|
+
@media (hover: hover) {
|
|
2072
|
+
background-color: var(--muted);
|
|
2073
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2074
|
+
background-color: color-mix(in oklab, var(--muted) 70%, transparent);
|
|
2075
|
+
}
|
|
2076
|
+
}
|
|
2077
|
+
}
|
|
2078
|
+
}
|
|
2056
2079
|
.hover\:bg-primary\/10 {
|
|
2057
2080
|
&:hover {
|
|
2058
2081
|
@media (hover: hover) {
|
|
@@ -2255,6 +2278,21 @@
|
|
|
2255
2278
|
opacity: 50%;
|
|
2256
2279
|
}
|
|
2257
2280
|
}
|
|
2281
|
+
.data-\[selected\=true\]\:bg-\[color\:oklch\(from_var\(--accent\)_l_c_h\/0\.15\)\] {
|
|
2282
|
+
&[data-selected="true"] {
|
|
2283
|
+
background-color: oklch(from var(--accent) l c h/0.15);
|
|
2284
|
+
}
|
|
2285
|
+
}
|
|
2286
|
+
.data-\[selected\=true\]\:bg-accent {
|
|
2287
|
+
&[data-selected="true"] {
|
|
2288
|
+
background-color: var(--accent);
|
|
2289
|
+
}
|
|
2290
|
+
}
|
|
2291
|
+
.data-\[selected\=true\]\:text-foreground {
|
|
2292
|
+
&[data-selected="true"] {
|
|
2293
|
+
color: var(--foreground);
|
|
2294
|
+
}
|
|
2295
|
+
}
|
|
2258
2296
|
.data-\[state\=active\]\:after\:bg-\[color\:var\(--accent\)\] {
|
|
2259
2297
|
&[data-state="active"] {
|
|
2260
2298
|
&::after {
|
|
@@ -2493,6 +2531,16 @@
|
|
|
2493
2531
|
background-color: transparent;
|
|
2494
2532
|
}
|
|
2495
2533
|
}
|
|
2534
|
+
.\[\&\>p\]\:mx-auto {
|
|
2535
|
+
&>p {
|
|
2536
|
+
margin-inline: auto;
|
|
2537
|
+
}
|
|
2538
|
+
}
|
|
2539
|
+
.\[\&\>span\[aria-hidden\]\]\:hidden {
|
|
2540
|
+
&>span[aria-hidden] {
|
|
2541
|
+
display: none;
|
|
2542
|
+
}
|
|
2543
|
+
}
|
|
2496
2544
|
.\[\&\>svg\]\:size-2\.5 {
|
|
2497
2545
|
&>svg {
|
|
2498
2546
|
width: calc(var(--spacing) * 2.5);
|
|
@@ -42,11 +42,13 @@ declare const noopTelemetry: TelemetrySink;
|
|
|
42
42
|
declare function safeCapture(telemetry: TelemetrySink, event: TelemetryEvent): void;
|
|
43
43
|
|
|
44
44
|
type JSONSchema = Record<string, unknown>;
|
|
45
|
+
type ToolReadinessRequirement = 'workspace-fs' | 'sandbox-exec' | 'ui-bridge';
|
|
45
46
|
interface AgentTool {
|
|
46
47
|
name: string;
|
|
47
48
|
description: string;
|
|
48
49
|
/** Optional one-line prompt entry. Pi-built tools should preserve pi's snippet verbatim. */
|
|
49
50
|
promptSnippet?: string;
|
|
51
|
+
readinessRequirements?: ToolReadinessRequirement[];
|
|
50
52
|
parameters: JSONSchema;
|
|
51
53
|
execute(params: Record<string, unknown>, ctx: ToolExecContext): Promise<ToolResult>;
|
|
52
54
|
}
|
|
@@ -68,7 +70,10 @@ interface ToolResult {
|
|
|
68
70
|
|
|
69
71
|
interface AgentHarnessFactoryInput {
|
|
70
72
|
tools: AgentTool[];
|
|
73
|
+
/** Host/storage cwd used for harness-owned filesystem resources. */
|
|
71
74
|
cwd: string;
|
|
75
|
+
/** Agent-visible cwd used by Pi/system prompt/session metadata. */
|
|
76
|
+
runtimeCwd?: string;
|
|
72
77
|
systemPromptAppend?: string;
|
|
73
78
|
sessionNamespace?: string;
|
|
74
79
|
sessionDir?: string;
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
|
-
import { S as Sandbox, f as SandboxHandleStore, e as SandboxHandleRecord, W as Workspace, F as FileSearch, P as PluginRestartWarning } from '../agentPluginEvents-
|
|
1
|
+
import { i as WorkspaceRuntimeContext, S as Sandbox, f as SandboxHandleStore, e as SandboxHandleRecord, W as Workspace, F as FileSearch, P as PluginRestartWarning } from '../agentPluginEvents-CF0BGY4D.js';
|
|
2
2
|
import { Sandbox as Sandbox$1 } from '@vercel/sandbox';
|
|
3
3
|
import { FastifyInstance, FastifyRequest, FastifyPluginAsync } from 'fastify';
|
|
4
|
-
import { f as TelemetrySink, A as AgentTool, i as AgentHarnessFactory } from '../harness-
|
|
5
|
-
export { j as AgentHarnessFactoryInput } from '../harness-
|
|
4
|
+
import { f as TelemetrySink, A as AgentTool, i as AgentHarnessFactory } from '../harness-CQ0uw6xW.js';
|
|
5
|
+
export { j as AgentHarnessFactoryInput } from '../harness-CQ0uw6xW.js';
|
|
6
6
|
import { PackageSource, ExtensionFactory, SettingsManager } from '@mariozechner/pi-coding-agent';
|
|
7
7
|
import 'ai';
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
interface CreateDirectSandboxOptions {
|
|
10
|
+
runtimeContext?: WorkspaceRuntimeContext;
|
|
11
|
+
}
|
|
12
|
+
declare function createDirectSandbox(opts?: CreateDirectSandboxOptions): Sandbox;
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
interface CreateBwrapSandboxOptions {
|
|
15
|
+
hostWorkspaceRoot?: string;
|
|
16
|
+
runtimeContext?: WorkspaceRuntimeContext;
|
|
17
|
+
}
|
|
18
|
+
declare function createBwrapSandbox(opts?: CreateBwrapSandboxOptions): Sandbox;
|
|
12
19
|
|
|
13
20
|
interface FileHandleStoreOptions {
|
|
14
21
|
storePath?: string;
|
|
@@ -174,7 +181,10 @@ interface VercelDeploymentSnapshotOptions {
|
|
|
174
181
|
declare function createVercelDeploymentSnapshotProvider(opts: Omit<VercelDeploymentSnapshotOptions, 'runtime' | 'setupCommands' | 'pythonPackages' | 'systemPackages'>): DeploymentSnapshotProvider;
|
|
175
182
|
declare function prepareVercelDeploymentSnapshot(opts: VercelDeploymentSnapshotOptions): Promise<SnapshotBakeResult>;
|
|
176
183
|
|
|
177
|
-
|
|
184
|
+
interface CreateNodeWorkspaceOptions {
|
|
185
|
+
runtimeContext?: WorkspaceRuntimeContext;
|
|
186
|
+
}
|
|
187
|
+
declare function createNodeWorkspace(root: string, opts?: CreateNodeWorkspaceOptions): Workspace;
|
|
178
188
|
|
|
179
189
|
declare function fileRoutes(app: FastifyInstance, opts: {
|
|
180
190
|
workspace?: Workspace;
|
|
@@ -393,6 +403,13 @@ interface ModeContext {
|
|
|
393
403
|
telemetry?: TelemetrySink;
|
|
394
404
|
}
|
|
395
405
|
interface RuntimeBundle {
|
|
406
|
+
runtimeContext?: WorkspaceRuntimeContext;
|
|
407
|
+
/**
|
|
408
|
+
* Server-private host/storage root for host-side filesystem work. Do not use
|
|
409
|
+
* this as the agent-visible cwd; Workspace.root remains the public runtime
|
|
410
|
+
* namespace shown to tools/model.
|
|
411
|
+
*/
|
|
412
|
+
storageRoot?: string;
|
|
396
413
|
workspace: Workspace;
|
|
397
414
|
sandbox: Sandbox;
|
|
398
415
|
fileSearch: FileSearch;
|