@tt-a1i/openpi 0.3.1 → 0.5.0
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 +184 -59
- package/SETUP.md +23 -7
- package/assets/openpi-launch-card-v1.webp +0 -0
- package/bin/openpi.js +145 -0
- package/extensions/ask-user/index.ts +30 -14
- package/extensions/background-terminals/index.ts +30 -2
- package/extensions/background-terminals/src/domain.ts +2 -0
- package/extensions/background-terminals/src/manager.ts +486 -106
- package/extensions/background-terminals/src/output.ts +33 -0
- package/extensions/background-terminals/src/prompt.ts +14 -6
- package/extensions/background-terminals/src/result-delivery.ts +4 -1
- package/extensions/background-terminals/src/ui/ps.ts +132 -129
- package/extensions/capabilities/index.ts +30 -42
- package/extensions/capabilities/src/ui.ts +93 -0
- package/extensions/clear-context/index.ts +83 -0
- package/extensions/context-pivot/index.ts +16 -6
- package/extensions/cron/schedule.ts +7 -1
- package/extensions/file-mutation-display/index.ts +34 -76
- package/extensions/file-mutation-display/render.ts +146 -87
- package/extensions/file-search/index.ts +8 -7
- package/extensions/file-search/src/binaries.ts +75 -59
- package/extensions/git-info/src/changed-files-view.ts +47 -14
- package/extensions/git-read/index.ts +328 -0
- package/extensions/git-read/src/args.ts +171 -0
- package/extensions/git-read/src/process.ts +81 -0
- package/extensions/git-read/src/prompt.ts +56 -0
- package/extensions/model-info/index.ts +21 -33
- package/extensions/model-info/session-metrics.ts +96 -0
- package/extensions/plan-mode/bash-policy.ts +54 -9
- package/extensions/plan-mode/index.ts +7 -2
- package/extensions/post-edit/index.ts +16 -6
- package/extensions/sessions/git-stats.ts +258 -72
- package/extensions/sessions/index.ts +222 -140
- package/extensions/sessions/preview-cache.ts +104 -0
- package/extensions/sessions/preview-loader.ts +856 -0
- package/extensions/sessions/sessions.ts +43 -4
- package/extensions/setup/index.ts +127 -131
- package/extensions/shared/activity-status.ts +36 -5
- package/extensions/shared/agent-session-page.ts +319 -0
- package/extensions/shared/agent-tool-renderer.ts +218 -0
- package/extensions/shared/agent-transcript.ts +524 -0
- package/extensions/shared/below-editor-navigation.ts +26 -0
- package/extensions/shared/capability-intent.ts +53 -0
- package/extensions/shared/child-session.ts +444 -22
- package/extensions/shared/result-budget.ts +134 -0
- package/extensions/shared/result-delivery.ts +34 -0
- package/extensions/shared/screen-chrome.ts +133 -0
- package/extensions/shared/setup-config.ts +97 -38
- package/extensions/shared/setup-episode-state.ts +1 -1
- package/extensions/shared/spinner.ts +28 -0
- package/extensions/shared/terminal-text.ts +110 -23
- package/extensions/shared/text-projection.ts +113 -0
- package/extensions/shared/tool-activity.ts +382 -0
- package/extensions/shared/tool-surface.ts +42 -8
- package/extensions/shared/transcript-viewport.ts +46 -0
- package/extensions/shared/web-observer-registry.ts +390 -0
- package/extensions/shared/worktree.ts +11 -0
- package/extensions/subagents/index.ts +461 -186
- package/extensions/subagents/navigation.ts +86 -28
- package/extensions/subagents/src/agent-types.ts +37 -15
- package/extensions/subagents/src/backend.ts +12 -1
- package/extensions/subagents/src/backends/pi.ts +375 -66
- package/extensions/subagents/src/domain.ts +5 -0
- package/extensions/subagents/src/id-sequence.ts +84 -0
- package/extensions/subagents/src/manager.ts +651 -536
- package/extensions/subagents/src/prompt.ts +185 -42
- package/extensions/subagents/src/result-artifact.ts +146 -0
- package/extensions/subagents/src/result-delivery.ts +7 -1
- package/extensions/subagents/src/runtime.ts +23 -6
- package/extensions/subagents/src/ui/takeover.ts +128 -337
- package/extensions/subagents/src/ui/transcript.ts +38 -501
- package/extensions/subagents/src/ui/wait-result.ts +103 -15
- package/extensions/suggestions/src/ui.ts +10 -4
- package/extensions/tasks/index.ts +0 -3
- package/extensions/tasks/ui.ts +79 -62
- package/extensions/ui-customization/footer.ts +7 -44
- package/extensions/ui-customization/index.ts +0 -4
- package/extensions/user-input-fold/index.ts +185 -0
- package/extensions/web/index.ts +234 -0
- package/extensions/workflows/artifacts.ts +147 -22
- package/extensions/workflows/completion-projection.ts +457 -0
- package/extensions/workflows/controller.ts +14 -2
- package/extensions/workflows/coordinator.ts +62 -0
- package/extensions/workflows/dashboard.ts +458 -339
- package/extensions/workflows/handoff.ts +121 -25
- package/extensions/workflows/index.ts +1042 -492
- package/extensions/workflows/journal.ts +148 -13
- package/extensions/workflows/model.ts +131 -19
- package/extensions/workflows/navigation.ts +61 -18
- package/extensions/workflows/progress-projection.ts +306 -0
- package/extensions/workflows/prompt.ts +166 -10
- package/extensions/workflows/replay-safety.ts +58 -27
- package/extensions/workflows/result-delivery.ts +253 -0
- package/extensions/workflows/retention.ts +593 -0
- package/extensions/workflows/runner.ts +388 -279
- package/extensions/workflows/sandbox-child.cjs +36 -3
- package/extensions/workflows/sandbox.ts +62 -8
- package/extensions/workflows/serialization.ts +325 -17
- package/extensions/workflows/tool-renderer.ts +22 -0
- package/extensions/workflows/transcript.ts +149 -0
- package/extensions/workspace-cleanup-guard/index.ts +54 -0
- package/extensions/workspace-cleanup-guard/workspace-provenance.ts +563 -0
- package/package.json +28 -8
- package/skills/subagents/REFERENCE.md +189 -0
- package/skills/subagents/SKILL.md +2 -2
- package/skills/workflows/REFERENCE.md +10 -5
- package/skills/workflows/SKILL.md +53 -10
- package/web/adapter/pi-adapter.ts +661 -0
- package/web/host/browser-launcher.ts +20 -0
- package/web/host/static-assets.ts +4 -0
- package/web/host/terminal-status.ts +38 -0
- package/web/host/web-host.ts +789 -0
- package/web/http-dispatcher.ts +125 -0
- package/web/protocol/types.ts +462 -0
- package/web/runtime/pi-runtime.ts +991 -0
- package/web/runtime/types.ts +71 -0
- package/web/runtime/web-host-lease.ts +497 -0
- package/web/trace.ts +18 -0
- package/web/ui/app.js +1398 -0
- package/web/ui/index.html +139 -0
- package/web/ui/styles.css +598 -0
- package/web/vite.config.mjs +34 -0
- package/extensions/execution-convergence/active-evidence.ts +0 -129
- package/extensions/execution-convergence/index.ts +0 -442
- package/extensions/execution-convergence/workspace-provenance.ts +0 -338
- package/extensions/setup/intercom-fs-helper.cjs +0 -130
- package/extensions/setup/intercom.ts +0 -603
- package/extensions/subagents/src/backends/stub.ts +0 -296
- package/extensions/subagents/src/format.ts +0 -48
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { PreviewFileIdentity } from "./preview-loader.ts";
|
|
2
|
+
import type { SessionPreview } from "./sessions.ts";
|
|
3
|
+
|
|
4
|
+
export const PREVIEW_CACHE_MAX_ENTRIES = 16;
|
|
5
|
+
export const PREVIEW_CACHE_MAX_BYTES = 4 * 1024 * 1024;
|
|
6
|
+
|
|
7
|
+
interface PreviewCacheOptions {
|
|
8
|
+
maxEntries?: number;
|
|
9
|
+
maxBytes?: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface CacheEntry {
|
|
13
|
+
preview: SessionPreview;
|
|
14
|
+
bytes: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function measureSessionPreviewBytes(value: unknown): number {
|
|
18
|
+
if (typeof value === "string") return Buffer.byteLength(value, "utf8");
|
|
19
|
+
if (Array.isArray(value)) {
|
|
20
|
+
return value.reduce(
|
|
21
|
+
(total, nested) => total + measureSessionPreviewBytes(nested),
|
|
22
|
+
0,
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
if (typeof value !== "object" || value === null) return 0;
|
|
26
|
+
return Object.entries(value).reduce(
|
|
27
|
+
(total, [key, nested]) =>
|
|
28
|
+
total +
|
|
29
|
+
Buffer.byteLength(key, "utf8") +
|
|
30
|
+
measureSessionPreviewBytes(nested),
|
|
31
|
+
0,
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function previewCacheKey(identity: PreviewFileIdentity) {
|
|
36
|
+
return [
|
|
37
|
+
identity.path,
|
|
38
|
+
identity.device,
|
|
39
|
+
identity.inode,
|
|
40
|
+
identity.size,
|
|
41
|
+
identity.mtimeNs,
|
|
42
|
+
].join(":");
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function createSessionPreviewCache(options: PreviewCacheOptions = {}) {
|
|
46
|
+
const maxEntries = Math.max(
|
|
47
|
+
1,
|
|
48
|
+
options.maxEntries ?? PREVIEW_CACHE_MAX_ENTRIES,
|
|
49
|
+
);
|
|
50
|
+
const maxBytes = Math.max(1, options.maxBytes ?? PREVIEW_CACHE_MAX_BYTES);
|
|
51
|
+
const cache = new Map<string, CacheEntry>();
|
|
52
|
+
let totalBytes = 0;
|
|
53
|
+
let evictionCount = 0;
|
|
54
|
+
|
|
55
|
+
const remove = (key: string) => {
|
|
56
|
+
const entry = cache.get(key);
|
|
57
|
+
if (!entry) return false;
|
|
58
|
+
cache.delete(key);
|
|
59
|
+
totalBytes -= entry.bytes;
|
|
60
|
+
return true;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const get = (key: string) => {
|
|
64
|
+
const entry = cache.get(key);
|
|
65
|
+
if (!entry) return undefined;
|
|
66
|
+
cache.delete(key);
|
|
67
|
+
cache.set(key, entry);
|
|
68
|
+
return entry.preview;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const set = (key: string, preview: SessionPreview, bytes: number) => {
|
|
72
|
+
remove(key);
|
|
73
|
+
if (!Number.isFinite(bytes) || bytes < 0 || bytes > maxBytes) return false;
|
|
74
|
+
|
|
75
|
+
cache.set(key, { preview, bytes });
|
|
76
|
+
totalBytes += bytes;
|
|
77
|
+
while (cache.size > maxEntries || totalBytes > maxBytes) {
|
|
78
|
+
const oldest = cache.keys().next().value;
|
|
79
|
+
if (oldest === undefined || !remove(oldest)) break;
|
|
80
|
+
evictionCount++;
|
|
81
|
+
}
|
|
82
|
+
return cache.has(key);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const clear = () => {
|
|
86
|
+
cache.clear();
|
|
87
|
+
totalBytes = 0;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
return {
|
|
91
|
+
get,
|
|
92
|
+
set,
|
|
93
|
+
clear,
|
|
94
|
+
get entries() {
|
|
95
|
+
return cache.size;
|
|
96
|
+
},
|
|
97
|
+
get bytes() {
|
|
98
|
+
return totalBytes;
|
|
99
|
+
},
|
|
100
|
+
get evictions() {
|
|
101
|
+
return evictionCount;
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
}
|