@tt-a1i/openpi 0.4.0 → 0.6.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 +116 -46
- package/SETUP.md +29 -7
- package/THIRD_PARTY_NOTICES.md +16 -0
- package/assets/openpi-launch-card-v1.webp +0 -0
- package/bin/openpi.js +155 -0
- package/extensions/ai-providers/LICENSE.upstream +23 -0
- package/extensions/ai-providers/README.md +59 -0
- package/extensions/ai-providers/antigravity/credentials.ts +52 -0
- package/extensions/ai-providers/antigravity/discovery.ts +130 -0
- package/extensions/ai-providers/antigravity/google-conversion.ts +455 -0
- package/extensions/ai-providers/antigravity/models.ts +84 -0
- package/extensions/ai-providers/antigravity/oauth.ts +700 -0
- package/extensions/ai-providers/antigravity/provider.ts +1116 -0
- package/extensions/ai-providers/antigravity/routing.ts +340 -0
- package/extensions/ai-providers/antigravity/with-resolvers.d.ts +19 -0
- package/extensions/ai-providers/cursor/constants.ts +5 -0
- package/extensions/ai-providers/cursor/credentials.ts +14 -0
- package/extensions/ai-providers/cursor/discovery.ts +291 -0
- package/extensions/ai-providers/cursor/input-images.ts +106 -0
- package/extensions/ai-providers/cursor/models.ts +45 -0
- package/extensions/ai-providers/cursor/oauth.ts +263 -0
- package/extensions/ai-providers/cursor/proto.ts +1064 -0
- package/extensions/ai-providers/cursor/protobuf.ts +1171 -0
- package/extensions/ai-providers/cursor/provider.ts +1175 -0
- package/extensions/ai-providers/cursor/proxy.ts +213 -0
- package/extensions/ai-providers/cursor/with-resolvers.d.ts +12 -0
- package/extensions/ai-providers/index.ts +86 -0
- package/extensions/ai-providers/oauth-adapter.ts +81 -0
- package/extensions/ai-providers/usage.ts +10 -0
- package/extensions/background-terminals/index.ts +38 -3
- package/extensions/background-terminals/src/domain.ts +2 -0
- package/extensions/background-terminals/src/manager.ts +484 -106
- package/extensions/background-terminals/src/output.ts +33 -0
- package/extensions/background-terminals/src/prompt.ts +13 -5
- package/extensions/background-terminals/src/result-delivery.ts +47 -24
- package/extensions/clear-context/index.ts +83 -0
- package/extensions/context-pivot/index.ts +16 -6
- package/extensions/cron/index.ts +68 -27
- package/extensions/cron/schedule.ts +12 -2
- package/extensions/file-mutation-display/render.ts +17 -257
- package/extensions/file-search/src/binaries.ts +57 -41
- package/extensions/git-read/index.ts +1 -3
- package/extensions/model-info/cache-diagnostics.ts +220 -0
- package/extensions/model-info/index.ts +65 -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 +82 -6
- package/extensions/post-edit/index.ts +16 -6
- package/extensions/sessions/git-stats.ts +258 -72
- package/extensions/sessions/index.ts +153 -86
- 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 +138 -130
- package/extensions/shared/activity-status.ts +30 -0
- 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/capability-intent.ts +1 -1
- package/extensions/shared/child-session.ts +457 -21
- package/extensions/shared/completion-inbox.ts +193 -0
- package/extensions/shared/result-delivery.ts +34 -0
- package/extensions/shared/setup-config.ts +83 -34
- package/extensions/shared/setup-episode-state.ts +1 -1
- package/extensions/shared/structured-output.ts +154 -0
- package/extensions/shared/terminal-text.ts +110 -23
- package/extensions/shared/text-projection.ts +72 -15
- package/extensions/shared/tool-activity.ts +382 -0
- package/extensions/shared/tool-surface.ts +29 -2
- 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 +313 -62
- package/extensions/subagents/navigation.ts +34 -5
- package/extensions/subagents/src/backend.ts +12 -1
- package/extensions/subagents/src/backends/pi.ts +450 -70
- package/extensions/subagents/src/domain.ts +21 -1
- package/extensions/subagents/src/manager.ts +39 -2
- package/extensions/subagents/src/prompt.ts +49 -7
- package/extensions/subagents/src/result-artifact.ts +36 -0
- package/extensions/subagents/src/result-delivery.ts +39 -14
- package/extensions/subagents/src/runtime.ts +15 -1
- package/extensions/subagents/src/ui/takeover.ts +73 -257
- package/extensions/subagents/src/ui/transcript.ts +38 -535
- 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/ui-customization/footer.ts +16 -45
- package/extensions/ui-customization/index.ts +0 -4
- package/extensions/user-input-fold/index.ts +42 -6
- package/extensions/web/index.ts +257 -0
- package/extensions/workflows/acceptance.ts +43 -19
- package/extensions/workflows/artifacts.ts +137 -47
- package/extensions/workflows/completion-projection.ts +459 -0
- package/extensions/workflows/coordinator.ts +8 -10
- package/extensions/workflows/dashboard.ts +175 -228
- package/extensions/workflows/handoff.ts +70 -16
- package/extensions/workflows/index.ts +501 -198
- package/extensions/workflows/journal.ts +148 -13
- package/extensions/workflows/model.ts +79 -5
- package/extensions/workflows/navigation.ts +32 -8
- package/extensions/workflows/progress-projection.ts +306 -0
- package/extensions/workflows/prompt.ts +70 -16
- package/extensions/workflows/replay-safety.ts +42 -21
- package/extensions/workflows/result-delivery.ts +214 -76
- package/extensions/workflows/retention.ts +599 -0
- package/extensions/workflows/runner.ts +389 -345
- package/extensions/workflows/sandbox-child.cjs +25 -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 +34 -14
- package/skills/subagents/REFERENCE.md +190 -0
- package/skills/subagents/SKILL.md +2 -1
- package/skills/workflows/REFERENCE.md +6 -4
- package/skills/workflows/SKILL.md +1 -1
- package/web/adapter/pi-adapter.ts +664 -0
- package/web/host/browser-launcher.ts +20 -0
- package/web/host/pi-coding-agent-entry.ts +162 -0
- package/web/host/static-assets.ts +4 -0
- package/web/host/terminal-status.ts +38 -0
- package/web/host/web-host.ts +1069 -0
- package/web/http-dispatcher.ts +125 -0
- package/web/protocol/types.ts +467 -0
- package/web/runtime/pi-runtime.ts +1206 -0
- package/web/runtime/types.ts +102 -0
- package/web/runtime/web-host-lease.ts +497 -0
- package/web/trace.ts +18 -0
- package/web/ui/app.js +1700 -0
- package/web/ui/index.html +142 -0
- package/web/ui/styles.css +680 -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 -303
|
@@ -19,6 +19,11 @@ export interface SubagentStripEntry {
|
|
|
19
19
|
counts: ActivityCounts;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
/** Changes only when the strip needs an immediate lifecycle repaint. */
|
|
23
|
+
export function subagentStripEntryKey(entry: SubagentStripEntry | undefined) {
|
|
24
|
+
return entry ? `${entry.snapshot.id}:${entry.snapshot.status}` : undefined;
|
|
25
|
+
}
|
|
26
|
+
|
|
22
27
|
function cleanLine(value: string) {
|
|
23
28
|
return sanitizeTerminalText(value).replace(/\s+/g, " ").trim();
|
|
24
29
|
}
|
|
@@ -71,9 +76,11 @@ function statusGlyph(snapshot: SubagentSnapshot, theme: Theme, now: number) {
|
|
|
71
76
|
return theme.fg("error", "✗");
|
|
72
77
|
}
|
|
73
78
|
|
|
79
|
+
const SUBAGENT_STRIP_INTERVAL_MS = 500;
|
|
80
|
+
|
|
74
81
|
/** One-line subagent manager entry with the same affordance as Workflow. */
|
|
75
82
|
export class SubagentStripWidget {
|
|
76
|
-
private
|
|
83
|
+
private timer: ReturnType<typeof setInterval> | undefined;
|
|
77
84
|
private readonly tui: TUI;
|
|
78
85
|
private readonly theme: Theme;
|
|
79
86
|
private readonly strip: BelowEditorStripState;
|
|
@@ -89,17 +96,39 @@ export class SubagentStripWidget {
|
|
|
89
96
|
this.theme = theme;
|
|
90
97
|
this.strip = strip;
|
|
91
98
|
this.getEntry = getEntry;
|
|
92
|
-
this.
|
|
93
|
-
this.timer.unref?.();
|
|
99
|
+
this.syncSpinner();
|
|
94
100
|
}
|
|
95
101
|
|
|
96
102
|
dispose() {
|
|
97
|
-
clearInterval(this.timer);
|
|
103
|
+
if (this.timer) clearInterval(this.timer);
|
|
104
|
+
this.timer = undefined;
|
|
98
105
|
}
|
|
99
106
|
|
|
100
|
-
invalidate() {
|
|
107
|
+
invalidate() {
|
|
108
|
+
this.syncSpinner();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
private syncSpinner() {
|
|
112
|
+
if (this.getEntry()?.snapshot.status === "running") {
|
|
113
|
+
if (this.timer) return;
|
|
114
|
+
const timer = setInterval(() => {
|
|
115
|
+
if (this.timer !== timer) return;
|
|
116
|
+
if (this.getEntry()?.snapshot.status !== "running") {
|
|
117
|
+
clearInterval(timer);
|
|
118
|
+
this.timer = undefined;
|
|
119
|
+
}
|
|
120
|
+
this.tui.requestRender();
|
|
121
|
+
}, SUBAGENT_STRIP_INTERVAL_MS);
|
|
122
|
+
this.timer = timer;
|
|
123
|
+
timer.unref?.();
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (this.timer) clearInterval(this.timer);
|
|
127
|
+
this.timer = undefined;
|
|
128
|
+
}
|
|
101
129
|
|
|
102
130
|
render(width: number) {
|
|
131
|
+
this.syncSpinner();
|
|
103
132
|
const entry = this.getEntry();
|
|
104
133
|
if (!entry || width <= 0) return [];
|
|
105
134
|
const { snapshot, counts } = entry;
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* on it rather than on the pi session directly.
|
|
6
6
|
*
|
|
7
7
|
* - pi (./backends/pi.ts): in-process `createAgentSession()` via the pi SDK.
|
|
8
|
-
* - stub (./backends/stub.ts): scripted sessions, test-only.
|
|
9
8
|
*/
|
|
10
9
|
|
|
11
10
|
import type { Effect, Scope, Stream } from "effect";
|
|
12
11
|
import { Context } from "effect";
|
|
12
|
+
import type { AgentToolRenderer } from "../../shared/agent-tool-renderer.ts";
|
|
13
13
|
import type {
|
|
14
14
|
BackendName,
|
|
15
15
|
SendError,
|
|
@@ -19,6 +19,13 @@ import type {
|
|
|
19
19
|
SubagentMeta,
|
|
20
20
|
} from "./domain.ts";
|
|
21
21
|
|
|
22
|
+
export interface SubagentCleanupReceipt {
|
|
23
|
+
/** True when the session/worktree state could not be proven quiescent. */
|
|
24
|
+
readonly uncertain: boolean;
|
|
25
|
+
/** Bounded operator-facing explanation of the cleanup result. */
|
|
26
|
+
readonly message: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
22
29
|
/**
|
|
23
30
|
* A live subagent session. The manager is the single consumer of `events`;
|
|
24
31
|
* it folds them into the `SubagentSnapshot` everything else reads.
|
|
@@ -42,6 +49,10 @@ export interface SubagentSession {
|
|
|
42
49
|
* this with a timeout and fall back to closing the session scope.
|
|
43
50
|
*/
|
|
44
51
|
readonly interrupt: Effect.Effect<void>;
|
|
52
|
+
/** Ephemeral Pi-native tool projection for the operator-facing child page. */
|
|
53
|
+
readonly toolRenderer?: AgentToolRenderer;
|
|
54
|
+
/** Cleanup receipt populated when scope teardown cannot prove safety. */
|
|
55
|
+
readonly cleanupReceipt?: () => SubagentCleanupReceipt | undefined;
|
|
45
56
|
}
|
|
46
57
|
|
|
47
58
|
export interface SubagentBackend {
|