@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,84 @@
|
|
|
1
|
+
import type { SessionEntry } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
|
|
3
|
+
export const SUBAGENT_ID_WATERMARK_ENTRY_TYPE = "subagent-id-watermark";
|
|
4
|
+
|
|
5
|
+
export interface SubagentIdCounters {
|
|
6
|
+
readonly modelCounter: number;
|
|
7
|
+
readonly btwCounter: number;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface IdWatermarkData {
|
|
11
|
+
readonly version: 1;
|
|
12
|
+
readonly id: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function record(value: unknown): Record<string, unknown> | undefined {
|
|
16
|
+
return typeof value === "object" && value !== null
|
|
17
|
+
? (value as Record<string, unknown>)
|
|
18
|
+
: undefined;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function idFrom(value: unknown) {
|
|
22
|
+
const candidate = record(value)?.id;
|
|
23
|
+
return typeof candidate === "string" ? candidate : undefined;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function idFromEntry(entry: SessionEntry) {
|
|
27
|
+
if (entry.type === "custom") {
|
|
28
|
+
const data = record(entry.data);
|
|
29
|
+
if (
|
|
30
|
+
entry.customType === SUBAGENT_ID_WATERMARK_ENTRY_TYPE &&
|
|
31
|
+
data?.version === 1
|
|
32
|
+
) {
|
|
33
|
+
return idFrom(data);
|
|
34
|
+
}
|
|
35
|
+
if (
|
|
36
|
+
entry.customType === "subagent-finished" ||
|
|
37
|
+
entry.customType === "btw-result"
|
|
38
|
+
) {
|
|
39
|
+
return idFrom(data);
|
|
40
|
+
}
|
|
41
|
+
if (entry.customType === "subagent-result") {
|
|
42
|
+
return idFrom(data?.details) ?? idFrom(data);
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (entry.type === "custom_message") {
|
|
48
|
+
return entry.customType === "subagent-result"
|
|
49
|
+
? idFrom(entry.details)
|
|
50
|
+
: undefined;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (entry.type !== "message") return undefined;
|
|
54
|
+
const message = record(entry.message);
|
|
55
|
+
return message?.role === "toolResult" && message.toolName === "subagent_spawn"
|
|
56
|
+
? idFrom(message.details)
|
|
57
|
+
: undefined;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function sequence(id: string | undefined, prefix: "sa" | "btw") {
|
|
61
|
+
if (!id) return undefined;
|
|
62
|
+
const match = new RegExp(`^${prefix}-(\\d+)$`, "u").exec(id);
|
|
63
|
+
if (!match) return undefined;
|
|
64
|
+
const value = Number(match[1]);
|
|
65
|
+
return Number.isSafeInteger(value) && value > 0 ? value : undefined;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** Restore branch-local id high-water marks, including sessions from before watermarks existed. */
|
|
69
|
+
export function restoreSubagentIdCounters(
|
|
70
|
+
entries: readonly SessionEntry[],
|
|
71
|
+
): SubagentIdCounters {
|
|
72
|
+
let modelCounter = 0;
|
|
73
|
+
let btwCounter = 0;
|
|
74
|
+
for (const entry of entries) {
|
|
75
|
+
const id = idFromEntry(entry);
|
|
76
|
+
modelCounter = Math.max(modelCounter, sequence(id, "sa") ?? 0);
|
|
77
|
+
btwCounter = Math.max(btwCounter, sequence(id, "btw") ?? 0);
|
|
78
|
+
}
|
|
79
|
+
return { modelCounter, btwCounter };
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export function subagentIdWatermark(id: string): IdWatermarkData {
|
|
83
|
+
return { version: 1, id };
|
|
84
|
+
}
|