@tt-a1i/openpi 0.4.0 → 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.
Files changed (109) hide show
  1. package/README.md +102 -40
  2. package/SETUP.md +22 -6
  3. package/assets/openpi-launch-card-v1.webp +0 -0
  4. package/bin/openpi.js +145 -0
  5. package/extensions/background-terminals/index.ts +30 -2
  6. package/extensions/background-terminals/src/domain.ts +2 -0
  7. package/extensions/background-terminals/src/manager.ts +486 -106
  8. package/extensions/background-terminals/src/output.ts +33 -0
  9. package/extensions/background-terminals/src/prompt.ts +13 -5
  10. package/extensions/background-terminals/src/result-delivery.ts +4 -1
  11. package/extensions/clear-context/index.ts +83 -0
  12. package/extensions/context-pivot/index.ts +16 -6
  13. package/extensions/cron/schedule.ts +7 -1
  14. package/extensions/file-mutation-display/render.ts +17 -257
  15. package/extensions/file-search/src/binaries.ts +57 -41
  16. package/extensions/git-read/index.ts +1 -3
  17. package/extensions/model-info/index.ts +21 -33
  18. package/extensions/model-info/session-metrics.ts +96 -0
  19. package/extensions/plan-mode/bash-policy.ts +54 -9
  20. package/extensions/plan-mode/index.ts +7 -2
  21. package/extensions/post-edit/index.ts +16 -6
  22. package/extensions/sessions/git-stats.ts +258 -72
  23. package/extensions/sessions/index.ts +153 -86
  24. package/extensions/sessions/preview-cache.ts +104 -0
  25. package/extensions/sessions/preview-loader.ts +856 -0
  26. package/extensions/sessions/sessions.ts +43 -4
  27. package/extensions/setup/index.ts +123 -127
  28. package/extensions/shared/activity-status.ts +30 -0
  29. package/extensions/shared/agent-session-page.ts +319 -0
  30. package/extensions/shared/agent-tool-renderer.ts +218 -0
  31. package/extensions/shared/agent-transcript.ts +524 -0
  32. package/extensions/shared/capability-intent.ts +1 -1
  33. package/extensions/shared/child-session.ts +437 -21
  34. package/extensions/shared/result-delivery.ts +34 -0
  35. package/extensions/shared/setup-config.ts +73 -33
  36. package/extensions/shared/setup-episode-state.ts +1 -1
  37. package/extensions/shared/terminal-text.ts +110 -23
  38. package/extensions/shared/text-projection.ts +72 -15
  39. package/extensions/shared/tool-activity.ts +382 -0
  40. package/extensions/shared/tool-surface.ts +29 -2
  41. package/extensions/shared/transcript-viewport.ts +46 -0
  42. package/extensions/shared/web-observer-registry.ts +390 -0
  43. package/extensions/shared/worktree.ts +11 -0
  44. package/extensions/subagents/index.ts +270 -59
  45. package/extensions/subagents/navigation.ts +34 -5
  46. package/extensions/subagents/src/backend.ts +12 -1
  47. package/extensions/subagents/src/backends/pi.ts +375 -66
  48. package/extensions/subagents/src/domain.ts +5 -0
  49. package/extensions/subagents/src/manager.ts +34 -2
  50. package/extensions/subagents/src/prompt.ts +32 -4
  51. package/extensions/subagents/src/result-artifact.ts +4 -0
  52. package/extensions/subagents/src/result-delivery.ts +7 -1
  53. package/extensions/subagents/src/runtime.ts +15 -1
  54. package/extensions/subagents/src/ui/takeover.ts +73 -257
  55. package/extensions/subagents/src/ui/transcript.ts +38 -535
  56. package/extensions/subagents/src/ui/wait-result.ts +103 -15
  57. package/extensions/suggestions/src/ui.ts +10 -4
  58. package/extensions/tasks/index.ts +0 -3
  59. package/extensions/ui-customization/footer.ts +0 -40
  60. package/extensions/ui-customization/index.ts +0 -4
  61. package/extensions/user-input-fold/index.ts +1 -1
  62. package/extensions/web/index.ts +234 -0
  63. package/extensions/workflows/artifacts.ts +137 -47
  64. package/extensions/workflows/completion-projection.ts +457 -0
  65. package/extensions/workflows/coordinator.ts +8 -10
  66. package/extensions/workflows/dashboard.ts +167 -228
  67. package/extensions/workflows/handoff.ts +70 -16
  68. package/extensions/workflows/index.ts +488 -198
  69. package/extensions/workflows/journal.ts +148 -13
  70. package/extensions/workflows/model.ts +74 -4
  71. package/extensions/workflows/navigation.ts +32 -8
  72. package/extensions/workflows/progress-projection.ts +306 -0
  73. package/extensions/workflows/prompt.ts +66 -6
  74. package/extensions/workflows/replay-safety.ts +42 -21
  75. package/extensions/workflows/result-delivery.ts +128 -64
  76. package/extensions/workflows/retention.ts +593 -0
  77. package/extensions/workflows/runner.ts +388 -279
  78. package/extensions/workflows/sandbox-child.cjs +25 -3
  79. package/extensions/workflows/sandbox.ts +62 -8
  80. package/extensions/workflows/serialization.ts +325 -17
  81. package/extensions/workflows/tool-renderer.ts +22 -0
  82. package/extensions/workflows/transcript.ts +149 -0
  83. package/extensions/workspace-cleanup-guard/index.ts +54 -0
  84. package/extensions/workspace-cleanup-guard/workspace-provenance.ts +563 -0
  85. package/package.json +28 -8
  86. package/skills/subagents/REFERENCE.md +189 -0
  87. package/skills/subagents/SKILL.md +1 -1
  88. package/skills/workflows/REFERENCE.md +4 -2
  89. package/web/adapter/pi-adapter.ts +661 -0
  90. package/web/host/browser-launcher.ts +20 -0
  91. package/web/host/static-assets.ts +4 -0
  92. package/web/host/terminal-status.ts +38 -0
  93. package/web/host/web-host.ts +789 -0
  94. package/web/http-dispatcher.ts +125 -0
  95. package/web/protocol/types.ts +462 -0
  96. package/web/runtime/pi-runtime.ts +991 -0
  97. package/web/runtime/types.ts +71 -0
  98. package/web/runtime/web-host-lease.ts +497 -0
  99. package/web/trace.ts +18 -0
  100. package/web/ui/app.js +1398 -0
  101. package/web/ui/index.html +139 -0
  102. package/web/ui/styles.css +598 -0
  103. package/web/vite.config.mjs +34 -0
  104. package/extensions/execution-convergence/active-evidence.ts +0 -129
  105. package/extensions/execution-convergence/index.ts +0 -442
  106. package/extensions/execution-convergence/workspace-provenance.ts +0 -338
  107. package/extensions/setup/intercom-fs-helper.cjs +0 -130
  108. package/extensions/setup/intercom.ts +0 -603
  109. package/extensions/subagents/src/backends/stub.ts +0 -303
@@ -0,0 +1,139 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <meta name="color-scheme" content="light" />
7
+ <title>OpenPI</title>
8
+ <link rel="stylesheet" href="/styles.css" />
9
+ <script src="/marked.js"></script>
10
+ <script src="/app.js" defer></script>
11
+ </head>
12
+ <body>
13
+ <div class="app-shell">
14
+ <aside class="session-sidebar" aria-label="Session navigation">
15
+ <div class="sidebar-brand">
16
+ <strong><span class="brand-word">Open</span><span class="pixel-mark" aria-label="OpenPI"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></strong>
17
+ <button id="collapse-sidebar" class="collapse-button" type="button" aria-label="Collapse sidebar" title="Collapse sidebar">
18
+ <svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg>
19
+ </button>
20
+ </div>
21
+
22
+ <button class="new-session-button" type="button" data-i18n-aria="newSession" data-i18n-title="newSession">
23
+ <svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="9"></circle><path d="M8 12h8M12 8v8"></path></svg>
24
+ <span data-i18n="newSession">New session</span>
25
+ </button>
26
+
27
+ <div class="workspace-heading">
28
+ <span class="workspace-heading-label" data-i18n="workspaces">Workspaces</span>
29
+ <div class="session-search">
30
+ <span class="visually-hidden" data-i18n="searchConversations">Search conversations</span>
31
+ <svg class="session-search-icon icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="10.8" cy="10.8" r="6.8"></circle><path d="m16 16 4.5 4.5"></path></svg>
32
+ <input id="search" type="search" data-i18n-aria="searchConversations" placeholder="搜索会话..." autocomplete="off" />
33
+ <button id="search-clear" class="session-search-clear" type="button" data-i18n-aria="closeSearch" data-i18n-title="closeSearch">
34
+ <svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="m6 6 12 12M18 6 6 18"></path></svg>
35
+ </button>
36
+ </div>
37
+ <div class="workspace-actions">
38
+ <button id="search-toggle" class="icon-button" type="button" data-i18n-aria="searchConversations" data-i18n-title="searchConversations">
39
+ <svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="10.8" cy="10.8" r="6.8"></circle><path d="m16 16 4.5 4.5"></path></svg>
40
+ </button>
41
+ <button id="import-workspace" class="icon-button" type="button" aria-label="Add workspace" title="Add workspace" data-i18n-aria="addWorkspace" data-i18n-title="addWorkspace">
42
+ <svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 10v6M9 13h6"></path><path d="M22 18a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4a2 2 0 0 1 1.6.8l1.8 2.4H20a2 2 0 0 1 2 2z"></path></svg>
43
+ </button>
44
+ </div>
45
+ </div>
46
+
47
+ <div id="workspaces" class="workspace-tree" role="tree" data-empty="No sessions">No sessions</div>
48
+ <dialog id="workspace-menu" class="workspace-menu">
49
+ <button type="button" data-action="rename">Rename workspace</button>
50
+ <button type="button" data-action="delete" class="danger-action">Remove from sidebar</button>
51
+ </dialog>
52
+ <dialog id="workspace-rename-dialog" class="workspace-rename-dialog">
53
+ <form method="dialog" id="workspace-rename-form">
54
+ <strong>Rename workspace</strong>
55
+ <input id="workspace-name-input" type="text" maxlength="80" autocomplete="off" aria-label="Workspace name" />
56
+ <div class="dialog-actions">
57
+ <button type="submit" value="cancel">Cancel</button>
58
+ <button id="save-workspace-name" type="submit" value="save">Save</button>
59
+ </div>
60
+ </form>
61
+ </dialog>
62
+ <dialog id="session-menu" class="workspace-menu">
63
+ <button type="button" data-action="rename" data-i18n="renameConversation">Rename conversation</button>
64
+ <button type="button" data-action="archive" data-i18n="archiveConversation">Archive conversation</button>
65
+ </dialog>
66
+ <dialog id="session-rename-dialog" class="workspace-rename-dialog">
67
+ <form method="dialog" id="session-rename-form">
68
+ <strong data-i18n="renameConversation">Rename conversation</strong>
69
+ <input id="session-name-input" type="text" maxlength="80" autocomplete="off" data-i18n-aria="conversationName" aria-label="Conversation name" />
70
+ <div class="dialog-actions">
71
+ <button type="submit" value="cancel">Cancel</button>
72
+ <button id="save-session-name" type="submit" value="save">Save</button>
73
+ </div>
74
+ </form>
75
+ </dialog>
76
+
77
+ </aside>
78
+
79
+ <main class="conversation-shell landing">
80
+ <header class="workbench-header">
81
+ <button id="mobile-sidebar" class="mobile-sidebar-button" type="button" aria-label="Open sidebar" title="Open sidebar">
82
+ <svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 6h16M4 12h16M4 18h16"></path></svg>
83
+ </button>
84
+ <div id="session-header" class="session-header">
85
+ <strong data-i18n="newSession">New session</strong>
86
+ <small data-i18n="chooseWorkspaceHint">Choose a workspace and describe the work</small>
87
+ </div>
88
+ <span id="connection-state" class="connection-state" aria-live="polite">Connecting</span>
89
+ </header>
90
+
91
+ <section id="conversation" class="conversation" aria-label="Conversation">
92
+ <div class="landing-welcome">
93
+ <div class="landing-brand">
94
+ <strong>Open<span class="pixel-mark" aria-label="OpenPI"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></strong>
95
+ </div>
96
+ </div>
97
+ </section>
98
+
99
+ <div class="composer-dock">
100
+ <div class="workspace-picker-row">
101
+ <button id="select-workspace" class="workspace-picker" type="button" data-i18n-aria="selectWorkspace">
102
+ <svg class="workspace-symbol icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M3.5 7.5a2 2 0 0 1 2-2h5l2 2h6a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2z"></path></svg>
103
+ <span id="selected-workspace" data-i18n="selectWorkspace">Select workspace</span>
104
+ <svg class="context-chevron icon" viewBox="0 0 24 24" aria-hidden="true"><path d="m8 10 4 4 4-4"></path></svg>
105
+ </button>
106
+ <div id="workspace-picker-menu" class="workspace-picker-menu" hidden role="listbox"></div>
107
+ </div>
108
+ <form id="composer" class="composer dormant">
109
+ <textarea id="prompt-input" rows="1" readonly data-i18n-placeholder="promptStart" data-i18n-aria="describeTask" placeholder="Describe a task to start with this workspace"></textarea>
110
+ <div class="composer-toolbar">
111
+ <div class="model-picker-wrap">
112
+ <button id="model-picker" class="model-picker" type="button" aria-haspopup="listbox" aria-expanded="false" aria-label="Select model" disabled>
113
+ <span id="model-picker-value" class="model-picker-value">Loading models...</span>
114
+ <svg class="model-picker-chevron icon" viewBox="0 0 24 24" aria-hidden="true"><path d="m7 10 5 5 5-5"></path></svg>
115
+ </button>
116
+ <div id="model-menu" class="model-menu" role="listbox" hidden></div>
117
+ </div>
118
+ <button id="send-prompt" class="send-button" type="submit" aria-label="Send" title="Send">
119
+ <svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 19V5"></path><path d="m6 11 6-6 6 6"></path></svg>
120
+ </button>
121
+ </div>
122
+ <div id="composer-hint" class="composer-hint" aria-live="polite"></div>
123
+ </form>
124
+ </div>
125
+ </main>
126
+ <dialog id="workspace-delete-dialog" class="workspace-delete-dialog">
127
+ <form method="dialog" id="workspace-delete-form">
128
+ <strong data-i18n="deleteWorkspace">删除工作区</strong>
129
+ <p id="workspace-delete-message"></p>
130
+ <div class="dialog-actions">
131
+ <button type="submit" value="cancel" data-i18n="cancel">取消</button>
132
+ <button type="submit" value="delete" class="danger-action" data-i18n="deleteWorkspace">删除工作区</button>
133
+ </div>
134
+ </form>
135
+ </dialog>
136
+ </div>
137
+ <button class="sidebar-scrim" type="button" aria-label="Close sidebar"></button>
138
+ </body>
139
+ </html>