@tt-a1i/openpi 0.1.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 +643 -0
- package/SETUP.md +74 -0
- package/THIRD_PARTY_NOTICES.md +16 -0
- package/assets/openpi-package.png +0 -0
- package/assets/readme-hero-mobile.svg +72 -0
- package/assets/readme-hero.svg +118 -0
- package/assets/readme-runtime-mobile.svg +91 -0
- package/assets/readme-runtime.svg +111 -0
- package/extensions/ask-user/handoff.ts +205 -0
- package/extensions/ask-user/index.ts +1110 -0
- package/extensions/ask-user/limits.ts +89 -0
- package/extensions/ask-user/prompt.ts +76 -0
- package/extensions/background-terminals/index.ts +653 -0
- package/extensions/background-terminals/src/domain.ts +99 -0
- package/extensions/background-terminals/src/manager.ts +989 -0
- package/extensions/background-terminals/src/output.ts +84 -0
- package/extensions/background-terminals/src/prompt.ts +195 -0
- package/extensions/background-terminals/src/result-delivery.ts +43 -0
- package/extensions/background-terminals/src/runtime.ts +36 -0
- package/extensions/background-terminals/src/ui/output-view.ts +55 -0
- package/extensions/background-terminals/src/ui/ps.ts +642 -0
- package/extensions/background-terminals/src/ui/tool-result.ts +146 -0
- package/extensions/background-terminals/src/watch.ts +192 -0
- package/extensions/context-pivot/index.ts +222 -0
- package/extensions/copy-all/index.ts +65 -0
- package/extensions/cron/index.ts +173 -0
- package/extensions/cron/schedule.ts +127 -0
- package/extensions/file-mutation-display/index.ts +105 -0
- package/extensions/file-mutation-display/render.ts +107 -0
- package/extensions/file-search/index.ts +515 -0
- package/extensions/file-search/src/args.ts +129 -0
- package/extensions/file-search/src/binaries.ts +419 -0
- package/extensions/file-search/src/output.ts +142 -0
- package/extensions/file-search/src/process.ts +309 -0
- package/extensions/file-search/src/prompt.ts +53 -0
- package/extensions/git-info/index.ts +272 -0
- package/extensions/git-info/src/changed-files-view.ts +414 -0
- package/extensions/git-info/src/process.ts +107 -0
- package/extensions/git-info/src/refresh-coordinator.ts +13 -0
- package/extensions/git-info/src/runtime.ts +28 -0
- package/extensions/goal/controller.ts +794 -0
- package/extensions/goal/index.ts +521 -0
- package/extensions/goal/prompts.ts +122 -0
- package/extensions/goal/state.ts +763 -0
- package/extensions/goal/ui.ts +158 -0
- package/extensions/model-info/index.ts +234 -0
- package/extensions/plan-mode/bash-policy.ts +313 -0
- package/extensions/plan-mode/index.ts +539 -0
- package/extensions/post-edit/index.ts +129 -0
- package/extensions/sessions/LICENSE.upstream +21 -0
- package/extensions/sessions/git-stats.ts +226 -0
- package/extensions/sessions/index.ts +1092 -0
- package/extensions/sessions/sessions.ts +385 -0
- package/extensions/setup/index.ts +408 -0
- package/extensions/shared/activity-status.ts +65 -0
- package/extensions/shared/below-editor-navigation.ts +343 -0
- package/extensions/shared/child-session.ts +352 -0
- package/extensions/shared/context-utilization.ts +47 -0
- package/extensions/shared/dashboard-state.ts +102 -0
- package/extensions/shared/plan-mode-state.ts +65 -0
- package/extensions/shared/setup-config.ts +971 -0
- package/extensions/shared/subagent-roles.ts +22 -0
- package/extensions/shared/terminal-text.ts +38 -0
- package/extensions/shared/tool-call-timeout.ts +104 -0
- package/extensions/shared/worktree.ts +526 -0
- package/extensions/subagents/index.ts +1225 -0
- package/extensions/subagents/navigation.ts +121 -0
- package/extensions/subagents/src/agent-types.ts +543 -0
- package/extensions/subagents/src/backend.ts +63 -0
- package/extensions/subagents/src/backends/pi.ts +493 -0
- package/extensions/subagents/src/backends/stub.ts +296 -0
- package/extensions/subagents/src/by-the-way.ts +21 -0
- package/extensions/subagents/src/domain.ts +271 -0
- package/extensions/subagents/src/format.ts +48 -0
- package/extensions/subagents/src/manager.ts +769 -0
- package/extensions/subagents/src/prompt.ts +190 -0
- package/extensions/subagents/src/result-delivery.ts +20 -0
- package/extensions/subagents/src/runtime.ts +51 -0
- package/extensions/subagents/src/ui/takeover.ts +615 -0
- package/extensions/subagents/src/ui/transcript.ts +293 -0
- package/extensions/subagents/src/ui/wait-result.ts +89 -0
- package/extensions/suggestions/index.ts +172 -0
- package/extensions/suggestions/src/config.ts +12 -0
- package/extensions/suggestions/src/predictor.ts +147 -0
- package/extensions/suggestions/src/prompt.ts +20 -0
- package/extensions/suggestions/src/transcript.ts +233 -0
- package/extensions/suggestions/src/ui.ts +224 -0
- package/extensions/tasks/index.ts +512 -0
- package/extensions/tasks/tasks.ts +649 -0
- package/extensions/tasks/ui.ts +421 -0
- package/extensions/turn-time/index.ts +61 -0
- package/extensions/ui-customization/footer.ts +512 -0
- package/extensions/ui-customization/index.ts +217 -0
- package/extensions/workflows/acceptance.ts +298 -0
- package/extensions/workflows/artifacts.ts +225 -0
- package/extensions/workflows/controller.ts +210 -0
- package/extensions/workflows/dashboard.ts +1226 -0
- package/extensions/workflows/index.ts +1884 -0
- package/extensions/workflows/journal.ts +188 -0
- package/extensions/workflows/meta.ts +250 -0
- package/extensions/workflows/model.ts +423 -0
- package/extensions/workflows/navigation.ts +93 -0
- package/extensions/workflows/prompt.ts +212 -0
- package/extensions/workflows/replay-safety.ts +577 -0
- package/extensions/workflows/runner.ts +786 -0
- package/extensions/workflows/sandbox-child.cjs +402 -0
- package/extensions/workflows/sandbox.ts +397 -0
- package/extensions/workflows/serialization.ts +162 -0
- package/extensions/workflows/worktree-handoff.ts +216 -0
- package/package.json +87 -0
- package/scripts/prepare-effect-tsgo.mjs +16 -0
- package/skills/background-terminals/SKILL.md +30 -0
- package/skills/subagents/SKILL.md +15 -0
- package/themes/github-dark-default.json +89 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain model for background terminals.
|
|
3
|
+
*
|
|
4
|
+
* A "terminal" is one long-running shell process started by the model. It
|
|
5
|
+
* receives no stdin (launched with stdin: "ignore"), captures stdout and
|
|
6
|
+
* stderr separately, and settles exactly once into a final state.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { Data } from "effect";
|
|
10
|
+
|
|
11
|
+
export type TerminalStatus =
|
|
12
|
+
"running" | "done" | "failed" | "killed" | "timed_out";
|
|
13
|
+
// "done" = exited with code 0
|
|
14
|
+
// "failed" = exited non-zero, or a spawn-level runtime error after start
|
|
15
|
+
// "killed" = terminated by bg_kill, the /ps UI, or session teardown
|
|
16
|
+
// "timed_out" = exceeded its optional runtime deadline
|
|
17
|
+
|
|
18
|
+
/** Read-only view over one captured output stream (stdout or stderr). */
|
|
19
|
+
export interface OutputView {
|
|
20
|
+
/** Decoded, possibly head-trimmed text (bounded by the in-memory cap). */
|
|
21
|
+
readonly text: string;
|
|
22
|
+
/** True total bytes ever received on this stream. */
|
|
23
|
+
readonly totalBytes: number;
|
|
24
|
+
/** Bytes dropped from the head of the in-memory view (0 = complete). */
|
|
25
|
+
readonly truncatedBytes: number;
|
|
26
|
+
/** On-disk full capture; always the complete stream when spilling works. */
|
|
27
|
+
readonly spillPath?: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface TerminalSnapshot {
|
|
31
|
+
readonly id: string;
|
|
32
|
+
/** Exactly the command line the model asked to run. */
|
|
33
|
+
readonly command: string;
|
|
34
|
+
/** Short model-provided name, shown in listings and the UI. */
|
|
35
|
+
readonly title: string;
|
|
36
|
+
/** Resolved absolute cwd the process runs in. */
|
|
37
|
+
readonly cwd: string;
|
|
38
|
+
/** Undefined only if spawn itself failed before a pid was assigned. */
|
|
39
|
+
readonly pid?: number;
|
|
40
|
+
readonly status: TerminalStatus;
|
|
41
|
+
/** Date.now() at spawn. */
|
|
42
|
+
readonly createdAt: number;
|
|
43
|
+
/** Date.now() at settle (exit/kill/timeout). */
|
|
44
|
+
readonly settledAt?: number;
|
|
45
|
+
/** Optional runtime deadline. Undefined means the process may run indefinitely. */
|
|
46
|
+
readonly timeoutAt?: number;
|
|
47
|
+
/** Set when the process exited via exit code (exactly one of exitCode/signal). */
|
|
48
|
+
readonly exitCode?: number;
|
|
49
|
+
/** Set when the process was terminated by a signal, e.g. "SIGTERM". */
|
|
50
|
+
readonly signal?: string;
|
|
51
|
+
/** Spawn error / kill-escalation notes, bounded. */
|
|
52
|
+
readonly errorText?: string;
|
|
53
|
+
readonly stdout: OutputView;
|
|
54
|
+
readonly stderr: OutputView;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function formatDuration(totalSeconds: number) {
|
|
58
|
+
const bounded = Math.max(0, Math.round(totalSeconds));
|
|
59
|
+
const hours = Math.floor(bounded / 3600);
|
|
60
|
+
const minutes = Math.floor((bounded % 3600) / 60);
|
|
61
|
+
const seconds = bounded % 60;
|
|
62
|
+
if (hours > 0) return `${hours}h${minutes.toString().padStart(2, "0")}m`;
|
|
63
|
+
return minutes > 0
|
|
64
|
+
? `${minutes}m${seconds.toString().padStart(2, "0")}s`
|
|
65
|
+
: `${seconds}s`;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export function formatElapsed(snap: TerminalSnapshot) {
|
|
69
|
+
const end = snap.settledAt ?? Date.now();
|
|
70
|
+
const totalSeconds = Math.max(0, Math.round((end - snap.createdAt) / 1000));
|
|
71
|
+
return formatDuration(totalSeconds);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** "exit 0", "exit 137", "SIGTERM", or "running". */
|
|
75
|
+
export function formatExit(snap: TerminalSnapshot) {
|
|
76
|
+
if (snap.status === "running") return "running";
|
|
77
|
+
if (snap.status === "timed_out") return "timed out";
|
|
78
|
+
if (snap.signal) return snap.signal;
|
|
79
|
+
if (snap.exitCode !== undefined) return `exit ${snap.exitCode}`;
|
|
80
|
+
return snap.status;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// --- Errors -------------------------------------------------------------------
|
|
84
|
+
|
|
85
|
+
export class SpawnError extends Data.TaggedError("SpawnError")<{
|
|
86
|
+
readonly message: string;
|
|
87
|
+
}> {}
|
|
88
|
+
|
|
89
|
+
export class ConcurrencyLimitError extends Data.TaggedError(
|
|
90
|
+
"ConcurrencyLimitError",
|
|
91
|
+
)<{
|
|
92
|
+
readonly message: string;
|
|
93
|
+
}> {}
|
|
94
|
+
|
|
95
|
+
export class UnknownTerminalError extends Data.TaggedError(
|
|
96
|
+
"UnknownTerminalError",
|
|
97
|
+
)<{
|
|
98
|
+
readonly message: string;
|
|
99
|
+
}> {}
|