parasor 0.1.1 → 0.1.3

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 (134) hide show
  1. package/README.md +34 -13
  2. package/node_modules/@parasor/shared/dist/builtin-shell-presets.d.ts +74 -0
  3. package/node_modules/@parasor/shared/dist/builtin-shell-presets.d.ts.map +1 -0
  4. package/node_modules/@parasor/shared/dist/builtin-shell-presets.js +89 -0
  5. package/node_modules/@parasor/shared/dist/builtin-shell-presets.js.map +1 -0
  6. package/node_modules/@parasor/shared/dist/pane-commands.d.ts +1 -0
  7. package/node_modules/@parasor/shared/dist/pane-commands.d.ts.map +1 -1
  8. package/node_modules/@parasor/shared/dist/pane-commands.js +23 -3
  9. package/node_modules/@parasor/shared/dist/pane-commands.js.map +1 -1
  10. package/node_modules/@parasor/shared/dist/runtime.d.ts +21 -0
  11. package/node_modules/@parasor/shared/dist/runtime.d.ts.map +1 -1
  12. package/node_modules/@parasor/shared/dist/shell-presets.d.ts +43 -0
  13. package/node_modules/@parasor/shared/dist/shell-presets.d.ts.map +1 -0
  14. package/node_modules/@parasor/shared/dist/shell-presets.js +82 -0
  15. package/node_modules/@parasor/shared/dist/shell-presets.js.map +1 -0
  16. package/node_modules/@parasor/shared/dist/state.d.ts +41 -3
  17. package/node_modules/@parasor/shared/dist/state.d.ts.map +1 -1
  18. package/node_modules/@parasor/shared/dist/state.js +195 -0
  19. package/node_modules/@parasor/shared/dist/state.js.map +1 -1
  20. package/node_modules/@parasor/shared/dist/types.d.ts +2 -0
  21. package/node_modules/@parasor/shared/dist/types.d.ts.map +1 -1
  22. package/node_modules/@parasor/shared/dist/types.js +2 -0
  23. package/node_modules/@parasor/shared/dist/types.js.map +1 -1
  24. package/node_modules/@parasor/shared/dist/ws-events.d.ts +5 -1
  25. package/node_modules/@parasor/shared/dist/ws-events.d.ts.map +1 -1
  26. package/package.json +1 -1
  27. package/server/agent-detector/event-map.d.ts +1 -1
  28. package/server/agent-detector/event-map.d.ts.map +1 -1
  29. package/server/agent-detector/event-map.js +24 -1
  30. package/server/agent-detector/event-map.js.map +1 -1
  31. package/server/agent-detector/manual-agent-tracker.d.ts.map +1 -1
  32. package/server/agent-detector/manual-agent-tracker.js +2 -16
  33. package/server/agent-detector/manual-agent-tracker.js.map +1 -1
  34. package/server/agent-detector/output-eligibility.d.ts.map +1 -1
  35. package/server/agent-detector/output-eligibility.js +3 -23
  36. package/server/agent-detector/output-eligibility.js.map +1 -1
  37. package/server/agent-detector/runtime-registry.d.ts +7 -0
  38. package/server/agent-detector/runtime-registry.d.ts.map +1 -0
  39. package/server/agent-detector/runtime-registry.js +50 -0
  40. package/server/agent-detector/runtime-registry.js.map +1 -0
  41. package/server/application/integrations/hook-notify.d.ts.map +1 -1
  42. package/server/application/integrations/hook-notify.js +4 -1
  43. package/server/application/integrations/hook-notify.js.map +1 -1
  44. package/server/application/integrations/native-status-integrations.d.ts +90 -0
  45. package/server/application/integrations/native-status-integrations.d.ts.map +1 -0
  46. package/server/application/integrations/native-status-integrations.js +110 -0
  47. package/server/application/integrations/native-status-integrations.js.map +1 -0
  48. package/server/application/workspace/project-queries.d.ts +3 -2
  49. package/server/application/workspace/project-queries.d.ts.map +1 -1
  50. package/server/application/workspace/project-queries.js +13 -3
  51. package/server/application/workspace/project-queries.js.map +1 -1
  52. package/server/application/workspace/session-commands.d.ts +2 -1
  53. package/server/application/workspace/session-commands.d.ts.map +1 -1
  54. package/server/application/workspace/session-commands.js +3 -0
  55. package/server/application/workspace/session-commands.js.map +1 -1
  56. package/server/application/workspace/sidebar-state-commands.d.ts +15 -0
  57. package/server/application/workspace/sidebar-state-commands.d.ts.map +1 -0
  58. package/server/application/workspace/sidebar-state-commands.js +32 -0
  59. package/server/application/workspace/sidebar-state-commands.js.map +1 -0
  60. package/server/application/workspace/worktree-commands.d.ts +17 -2
  61. package/server/application/workspace/worktree-commands.d.ts.map +1 -1
  62. package/server/application/workspace/worktree-commands.js +56 -1
  63. package/server/application/workspace/worktree-commands.js.map +1 -1
  64. package/server/bootstrap/create-app-server.d.ts.map +1 -1
  65. package/server/bootstrap/create-app-server.js +21 -2
  66. package/server/bootstrap/create-app-server.js.map +1 -1
  67. package/server/bootstrap/wire-runtime.d.ts.map +1 -1
  68. package/server/bootstrap/wire-runtime.js +4 -1
  69. package/server/bootstrap/wire-runtime.js.map +1 -1
  70. package/server/cli/shim-installer.d.ts +2 -0
  71. package/server/cli/shim-installer.d.ts.map +1 -1
  72. package/server/cli/shim-installer.js +191 -9
  73. package/server/cli/shim-installer.js.map +1 -1
  74. package/server/debug/terminal-trace-recorder.d.ts +1 -1
  75. package/server/debug/terminal-trace-recorder.d.ts.map +1 -1
  76. package/server/debug/terminal-trace-recorder.js.map +1 -1
  77. package/server/index.d.ts.map +1 -1
  78. package/server/index.js +8 -2
  79. package/server/index.js.map +1 -1
  80. package/server/pty/headless-replay-snapshot.d.ts.map +1 -1
  81. package/server/pty/headless-replay-snapshot.js +40 -3
  82. package/server/pty/headless-replay-snapshot.js.map +1 -1
  83. package/server/pty/host-daemon/daemon.d.ts.map +1 -1
  84. package/server/pty/host-daemon/daemon.js +1 -0
  85. package/server/pty/host-daemon/daemon.js.map +1 -1
  86. package/server/pty/host-protocol/messages.d.ts +3 -2
  87. package/server/pty/host-protocol/messages.d.ts.map +1 -1
  88. package/server/pty/host-protocol/messages.js +6 -1
  89. package/server/pty/host-protocol/messages.js.map +1 -1
  90. package/server/pty/host.d.ts +2 -1
  91. package/server/pty/host.d.ts.map +1 -1
  92. package/server/pty/host.js.map +1 -1
  93. package/server/pty/in-process-host.d.ts +1 -0
  94. package/server/pty/in-process-host.d.ts.map +1 -1
  95. package/server/pty/in-process-host.js +43 -4
  96. package/server/pty/in-process-host.js.map +1 -1
  97. package/server/pty/remote-host.d.ts.map +1 -1
  98. package/server/pty/remote-host.js +1 -0
  99. package/server/pty/remote-host.js.map +1 -1
  100. package/server/routes/debug-terminal-trace.d.ts.map +1 -1
  101. package/server/routes/debug-terminal-trace.js +22 -9
  102. package/server/routes/debug-terminal-trace.js.map +1 -1
  103. package/server/routes/files.d.ts.map +1 -1
  104. package/server/routes/files.js +9 -8
  105. package/server/routes/files.js.map +1 -1
  106. package/server/routes/projects.d.ts +1 -1
  107. package/server/routes/projects.d.ts.map +1 -1
  108. package/server/routes/projects.js +90 -0
  109. package/server/routes/projects.js.map +1 -1
  110. package/server/routes/sessions.d.ts.map +1 -1
  111. package/server/routes/sessions.js +4 -0
  112. package/server/routes/sessions.js.map +1 -1
  113. package/server/state/app-state.d.ts.map +1 -1
  114. package/server/state/app-state.js +49 -1
  115. package/server/state/app-state.js.map +1 -1
  116. package/server/state/project-manager.d.ts.map +1 -1
  117. package/server/state/project-manager.js +3 -1
  118. package/server/state/project-manager.js.map +1 -1
  119. package/web/assets/EditorPane-BBPzKK75.js +123 -0
  120. package/web/assets/TerminalPane-DYSXTHu8.js +68 -0
  121. package/web/assets/file-icons-COR4RKgC.js +6 -0
  122. package/web/assets/index-CvIpZExy.css +2 -0
  123. package/web/assets/index-CvefG2gF.js +34 -0
  124. package/web/assets/session-resume-BtVz3PUc.js +2 -0
  125. package/web/assets/{terminal-trace-PuuFRybC.js → terminal-trace-B9iHKCkB.js} +9 -9
  126. package/web/assets/useVirtualKeyboard-BJO7-jU-.js +1 -0
  127. package/web/index.html +2 -2
  128. package/web/assets/EditorPane-CzzT3iYY.js +0 -123
  129. package/web/assets/TerminalPane-CjbYzePr.js +0 -68
  130. package/web/assets/file-icons-JBi09j0r.js +0 -6
  131. package/web/assets/index-CTTkRpnn.css +0 -2
  132. package/web/assets/index-CmhewzMp.js +0 -34
  133. package/web/assets/session-resume-7f-tB-ZU.js +0 -2
  134. package/web/assets/useVirtualKeyboard-DgJb9u9d.js +0 -1
package/README.md CHANGED
@@ -1,24 +1,27 @@
1
1
  # parasor
2
2
 
3
- > AI-first coding workspace for continuing your desktop development flow from
4
- > anywhere.
3
+ > Open-source, mobile-first workspace for operating your local development
4
+ > environment from a phone.
5
5
 
6
- parasor runs on your development machine and brings the same AI-driven coding
7
- workflow to your desk, phone, or another trusted device. Use a browser to work
8
- with your agents, terminals, Git state, files, and localhost dev servers
9
- without changing the project environment on the host machine.
6
+ parasor runs on your development machine and turns it into a browser workspace
7
+ for your phone or another trusted device. The core is persistent PTY-backed
8
+ terminal control, so the host machine keeps the real project environment while
9
+ you create projects, install dependencies, run CLI tools, drive AI coding
10
+ agents, edit files, review diffs, inspect Git state, and open localhost dev
11
+ servers from mobile.
10
12
 
11
13
  ## Highlights
12
14
 
13
- - **Multi-agent parallel panes** - split the workspace into terminal, file
14
- tree, editor, diff, and browser views while several agents run at once.
15
- - **Desk-to-mobile workflow** - startup QR seeds the session cookie, mobile
16
- controls cover common terminal keys, and clipboard/file upload works in the
17
- on-page terminal.
15
+ - **Agent-independent architecture** - parasor is built around persistent PTY
16
+ terminal control, not a specific agent runtime. Use Codex, Claude Code,
17
+ ordinary shell tools, package managers, or existing project workflows as-is.
18
+ - **All-in-one mobile UI** - terminal, Git state, file tree, editor, diff,
19
+ browser views, localhost dev servers, and agent status are integrated in one
20
+ browser workspace.
21
+ - **Practical mobile development** - QR login, mobile terminal key controls,
22
+ clipboard/file upload, and persistent PTYs keep work usable from a phone.
18
23
  - **Persistent PTYs** - the user-scope service installs a PTY host daemon so
19
24
  scrollback and sessions survive server restarts.
20
- - **Project-scoped file ops** - browse files, edit in CodeMirror, open diffs,
21
- drag files into terminals, and paste images into an upload directory.
22
25
  - **Agent-aware shims** - Claude Code and Codex wrappers add runtime integration
23
26
  hooks without editing user agent configuration files.
24
27
  - **Network port center** - detected localhost dev servers can be opened from
@@ -65,6 +68,22 @@ parasor qr # re-render QR + access URLs over the IPC socket
65
68
  parasor qr --iface=en0 # prefer a specific network interface
66
69
  ```
67
70
 
71
+ ## Update / Uninstall
72
+
73
+ Update a global install:
74
+
75
+ ```bash
76
+ npm install -g parasor@latest
77
+ parasor service restart # if service mode is installed
78
+ ```
79
+
80
+ Uninstall the service before removing the package:
81
+
82
+ ```bash
83
+ parasor service uninstall
84
+ npm uninstall -g parasor
85
+ ```
86
+
68
87
  ## Background Service
69
88
 
70
89
  Keep parasor up after login. On macOS, the LaunchAgent also starts at user
@@ -151,6 +170,8 @@ Requires Node.js 22+ and pnpm. macOS and Linux are primary. WSL is expected to
151
170
  work for foreground use, but service mode requires systemd-enabled WSL. Native
152
171
  Windows is not currently supported.
153
172
 
173
+ Release and beta branch procedures are documented in [docs/release.md](./docs/release.md).
174
+
154
175
  ## Status
155
176
 
156
177
  Pre-1.0. Configuration shape and CLI surface may change before `1.0.0`.
@@ -0,0 +1,74 @@
1
+ import type { SessionLaunchPreset, ShellPreset } from "./shell-presets.js";
2
+ export declare const BUILTIN_SHELL_PRESETS: readonly [{
3
+ readonly id: "builtin:terminal";
4
+ readonly source: "builtin";
5
+ readonly label: "Terminal";
6
+ readonly iconKey: "terminal";
7
+ readonly group: "terminal";
8
+ readonly commandLine: "";
9
+ readonly appendEnter: false;
10
+ readonly runtimeHint: {
11
+ readonly runtimeId: "terminal";
12
+ readonly tier: "generic-terminal";
13
+ readonly expectedProcesses: readonly ["sh", "bash", "zsh", "fish"];
14
+ };
15
+ }, {
16
+ readonly id: "builtin:claude";
17
+ readonly source: "builtin";
18
+ readonly label: "Claude";
19
+ readonly iconKey: "agent";
20
+ readonly group: "agent";
21
+ readonly commandLine: "claude";
22
+ readonly appendEnter: true;
23
+ readonly runtimeHint: {
24
+ readonly runtimeId: "claude";
25
+ readonly tier: "native-managed";
26
+ readonly expectedProcesses: readonly ["claude"];
27
+ readonly detectCommands: readonly ["claude"];
28
+ };
29
+ }, {
30
+ readonly id: "builtin:codex";
31
+ readonly source: "builtin";
32
+ readonly label: "Codex";
33
+ readonly iconKey: "agent";
34
+ readonly group: "agent";
35
+ readonly commandLine: "codex";
36
+ readonly appendEnter: true;
37
+ readonly runtimeHint: {
38
+ readonly runtimeId: "codex";
39
+ readonly tier: "native-managed";
40
+ readonly expectedProcesses: readonly ["codex"];
41
+ readonly detectCommands: readonly ["codex"];
42
+ };
43
+ }, {
44
+ readonly id: "builtin:opencode";
45
+ readonly source: "builtin";
46
+ readonly label: "OpenCode";
47
+ readonly iconKey: "agent";
48
+ readonly group: "agent";
49
+ readonly commandLine: "opencode";
50
+ readonly appendEnter: true;
51
+ readonly runtimeHint: {
52
+ readonly runtimeId: "opencode";
53
+ readonly tier: "native-managed";
54
+ readonly expectedProcesses: readonly ["opencode"];
55
+ readonly detectCommands: readonly ["opencode"];
56
+ };
57
+ }, {
58
+ readonly id: "builtin:gemini";
59
+ readonly source: "builtin";
60
+ readonly label: "Gemini";
61
+ readonly iconKey: "agent";
62
+ readonly group: "agent";
63
+ readonly commandLine: "gemini";
64
+ readonly appendEnter: true;
65
+ readonly runtimeHint: {
66
+ readonly runtimeId: "gemini";
67
+ readonly tier: "process-aware";
68
+ readonly expectedProcesses: readonly ["gemini", "gemini-cli"];
69
+ readonly detectCommands: readonly ["gemini", "gemini-cli"];
70
+ };
71
+ }];
72
+ export declare function shellPresetToLaunchPreset(preset: ShellPreset): SessionLaunchPreset;
73
+ export declare function builtinShellPresetById(id: string): ShellPreset | undefined;
74
+ //# sourceMappingURL=builtin-shell-presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-shell-presets.d.ts","sourceRoot":"","sources":["../src/builtin-shell-presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE3E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2ES,CAAC;AAE5C,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,WAAW,GAClB,mBAAmB,CAQrB;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE1E"}
@@ -0,0 +1,89 @@
1
+ export const BUILTIN_SHELL_PRESETS = [
2
+ {
3
+ id: "builtin:terminal",
4
+ source: "builtin",
5
+ label: "Terminal",
6
+ iconKey: "terminal",
7
+ group: "terminal",
8
+ commandLine: "",
9
+ appendEnter: false,
10
+ runtimeHint: {
11
+ runtimeId: "terminal",
12
+ tier: "generic-terminal",
13
+ expectedProcesses: ["sh", "bash", "zsh", "fish"],
14
+ },
15
+ },
16
+ {
17
+ id: "builtin:claude",
18
+ source: "builtin",
19
+ label: "Claude",
20
+ iconKey: "agent",
21
+ group: "agent",
22
+ commandLine: "claude",
23
+ appendEnter: true,
24
+ runtimeHint: {
25
+ runtimeId: "claude",
26
+ tier: "native-managed",
27
+ expectedProcesses: ["claude"],
28
+ detectCommands: ["claude"],
29
+ },
30
+ },
31
+ {
32
+ id: "builtin:codex",
33
+ source: "builtin",
34
+ label: "Codex",
35
+ iconKey: "agent",
36
+ group: "agent",
37
+ commandLine: "codex",
38
+ appendEnter: true,
39
+ runtimeHint: {
40
+ runtimeId: "codex",
41
+ tier: "native-managed",
42
+ expectedProcesses: ["codex"],
43
+ detectCommands: ["codex"],
44
+ },
45
+ },
46
+ {
47
+ id: "builtin:opencode",
48
+ source: "builtin",
49
+ label: "OpenCode",
50
+ iconKey: "agent",
51
+ group: "agent",
52
+ commandLine: "opencode",
53
+ appendEnter: true,
54
+ runtimeHint: {
55
+ runtimeId: "opencode",
56
+ tier: "native-managed",
57
+ expectedProcesses: ["opencode"],
58
+ detectCommands: ["opencode"],
59
+ },
60
+ },
61
+ {
62
+ id: "builtin:gemini",
63
+ source: "builtin",
64
+ label: "Gemini",
65
+ iconKey: "agent",
66
+ group: "agent",
67
+ commandLine: "gemini",
68
+ appendEnter: true,
69
+ runtimeHint: {
70
+ runtimeId: "gemini",
71
+ tier: "process-aware",
72
+ expectedProcesses: ["gemini", "gemini-cli"],
73
+ detectCommands: ["gemini", "gemini-cli"],
74
+ },
75
+ },
76
+ ];
77
+ export function shellPresetToLaunchPreset(preset) {
78
+ return {
79
+ presetId: preset.id,
80
+ source: preset.source,
81
+ label: preset.label,
82
+ commandLine: preset.commandLine,
83
+ ...(preset.runtimeHint && { runtimeHint: preset.runtimeHint }),
84
+ };
85
+ }
86
+ export function builtinShellPresetById(id) {
87
+ return BUILTIN_SHELL_PRESETS.find((preset) => preset.id === id);
88
+ }
89
+ //# sourceMappingURL=builtin-shell-presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-shell-presets.js","sourceRoot":"","sources":["../src/builtin-shell-presets.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC;QACE,EAAE,EAAE,kBAAkB;QACtB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE;YACX,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,kBAAkB;YACxB,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;SACjD;KACF;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE;YACX,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,gBAAgB;YACtB,iBAAiB,EAAE,CAAC,QAAQ,CAAC;YAC7B,cAAc,EAAE,CAAC,QAAQ,CAAC;SAC3B;KACF;IACD;QACE,EAAE,EAAE,eAAe;QACnB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE;YACX,SAAS,EAAE,OAAO;YAClB,IAAI,EAAE,gBAAgB;YACtB,iBAAiB,EAAE,CAAC,OAAO,CAAC;YAC5B,cAAc,EAAE,CAAC,OAAO,CAAC;SAC1B;KACF;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE;YACX,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,gBAAgB;YACtB,iBAAiB,EAAE,CAAC,UAAU,CAAC;YAC/B,cAAc,EAAE,CAAC,UAAU,CAAC;SAC7B;KACF;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE;YACX,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,eAAe;YACrB,iBAAiB,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;YAC3C,cAAc,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;SACzC;KACF;CACwC,CAAC;AAE5C,MAAM,UAAU,yBAAyB,CACvC,MAAmB;IAEnB,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EAAU;IAC/C,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,CAAC"}
@@ -2,6 +2,7 @@ export interface PaneCommandConfig {
2
2
  id: string;
3
3
  label: string;
4
4
  initialInput: string;
5
+ enabled?: boolean;
5
6
  }
6
7
  export declare function normalizePaneCommands(value: unknown): PaneCommandConfig[];
7
8
  //# sourceMappingURL=pane-commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pane-commands.d.ts","sourceRoot":"","sources":["../src/pane-commands.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAOD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,EAAE,CAwCzE"}
1
+ {"version":3,"file":"pane-commands.d.ts","sourceRoot":"","sources":["../src/pane-commands.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAWD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,EAAE,CA4DzE"}
@@ -1,7 +1,9 @@
1
+ import { BUILTIN_SHELL_PRESETS } from "./builtin-shell-presets.js";
1
2
  const MAX_COMMANDS = 100;
2
3
  const MAX_ID_LENGTH = 128;
3
4
  const MAX_LABEL_LENGTH = 200;
4
5
  const MAX_INITIAL_INPUT_LENGTH = 4000;
6
+ const BUILTIN_PRESETS_BY_ID = new Map(BUILTIN_SHELL_PRESETS.map((preset) => [preset.id, preset]));
5
7
  export function normalizePaneCommands(value) {
6
8
  if (!Array.isArray(value))
7
9
  return [];
@@ -22,9 +24,27 @@ export function normalizePaneCommands(value) {
22
24
  }
23
25
  const normalizedLabel = label.trim();
24
26
  const normalizedInput = initialInput.trim();
25
- if (!id ||
26
- id.startsWith("builtin:") ||
27
- seen.has(id) ||
27
+ if (!id || seen.has(id)) {
28
+ continue;
29
+ }
30
+ const builtinPreset = BUILTIN_PRESETS_BY_ID.get(id);
31
+ if (builtinPreset) {
32
+ if (normalizedInput.length > MAX_INITIAL_INPUT_LENGTH ||
33
+ (builtinPreset.commandLine && !normalizedInput)) {
34
+ continue;
35
+ }
36
+ seen.add(id);
37
+ out.push({
38
+ id,
39
+ label: builtinPreset.label,
40
+ initialInput: normalizedInput,
41
+ enabled: builtinPreset.group === "terminal" ? true : item.enabled !== false,
42
+ });
43
+ if (out.length >= MAX_COMMANDS)
44
+ break;
45
+ continue;
46
+ }
47
+ if (id.startsWith("builtin:") ||
28
48
  !normalizedLabel ||
29
49
  normalizedLabel.length > MAX_LABEL_LENGTH ||
30
50
  !normalizedInput) {
@@ -1 +1 @@
1
- {"version":3,"file":"pane-commands.js","sourceRoot":"","sources":["../src/pane-commands.ts"],"names":[],"mappings":"AAMA,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAEtC,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAAE,SAAS;QACnC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IACE,OAAO,EAAE,KAAK,QAAQ;YACtB,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,YAAY,KAAK,QAAQ;YAChC,EAAE,CAAC,MAAM,GAAG,aAAa;YACzB,YAAY,CAAC,MAAM,GAAG,wBAAwB,EAC9C,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QAC5C,IACE,CAAC,EAAE;YACH,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACZ,CAAC,eAAe;YAChB,eAAe,CAAC,MAAM,GAAG,gBAAgB;YACzC,CAAC,eAAe,EAChB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,GAAG,CAAC,IAAI,CAAC;YACP,EAAE;YACF,KAAK,EAAE,eAAe;YACtB,YAAY,EAAE,eAAe;SAC9B,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,IAAI,YAAY;YAAE,MAAM;IACxC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"pane-commands.js","sourceRoot":"","sources":["../src/pane-commands.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,25 @@ export interface PortInfo {
52
52
  */
53
53
  reachablePort?: number;
54
54
  }
55
+ export type WorktreeCreationSource = "ui" | "cli" | "runtime" | "agent" | "unknown";
56
+ export type WorktreeLineageCaptureSource = "create-worktree-request" | "path-prefix" | "manual";
57
+ export type WorktreeLineageConfidence = "explicit" | "inferred";
58
+ export interface WorktreeLineageMetadata {
59
+ /** Stable identity for this observed worktree instance, independent of path. */
60
+ instanceId: string;
61
+ creationSource: WorktreeCreationSource;
62
+ createdAt: number;
63
+ createdWithAgent?: string;
64
+ createdBySessionId?: string;
65
+ createdByPaneCommandId?: string;
66
+ createdByPaneCommandLabel?: string;
67
+ parentWorktreePath?: string;
68
+ parentWorktreeInstanceId?: string;
69
+ lineageCapture: {
70
+ source: WorktreeLineageCaptureSource;
71
+ confidence: WorktreeLineageConfidence;
72
+ };
73
+ }
55
74
  export interface Worktree {
56
75
  path: string;
57
76
  head: string;
@@ -69,6 +88,8 @@ export interface Worktree {
69
88
  * Surfaced as a sidebar pill so users can spot sub-agent checkouts.
70
89
  */
71
90
  origin?: "agent";
91
+ /** Product-level provenance for explicitly created worktrees. */
92
+ lineage?: WorktreeLineageMetadata;
72
93
  /**
73
94
  * `true` when `git worktree list --porcelain` enumerates the path but the
74
95
  * directory is missing on disk (`git status` returns `ENOENT`). Lets the
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ export type ShellPresetSource = "builtin" | "user";
2
+ export type RuntimeTier = "native-managed" | "process-aware" | "generic-terminal";
3
+ export interface ShellPresetRuntimeHint {
4
+ runtimeId: string;
5
+ tier: RuntimeTier;
6
+ expectedProcesses: readonly string[];
7
+ detectCommands?: readonly string[];
8
+ }
9
+ export interface ShellPreset {
10
+ id: string;
11
+ source: ShellPresetSource;
12
+ label: string;
13
+ iconKey?: string;
14
+ group: "terminal" | "agent" | "custom";
15
+ commandLine: string;
16
+ appendEnter: boolean;
17
+ runtimeHint?: ShellPresetRuntimeHint;
18
+ }
19
+ export interface SessionLaunchPreset {
20
+ presetId: string;
21
+ source: ShellPresetSource;
22
+ label: string;
23
+ commandLine: string;
24
+ runtimeHint?: ShellPresetRuntimeHint;
25
+ }
26
+ export type NativeIntegrationInstallKind = "shim-wrapper" | "managed-config" | "notify-command" | "hook-config" | "plugin-overlay" | "session-log-watcher" | "none";
27
+ export type NativeIntegrationActivation = "preset-launch" | "foreground-process" | "user-enabled";
28
+ export interface NativeIntegrationInstallStrategy {
29
+ kind: NativeIntegrationInstallKind;
30
+ activation: NativeIntegrationActivation;
31
+ writesUserConfig: boolean;
32
+ reversible: boolean;
33
+ }
34
+ export interface NativeStatusIntegration {
35
+ runtimeId: string;
36
+ hookAgent: string;
37
+ installStrategies: readonly NativeIntegrationInstallStrategy[];
38
+ hookEvents?: Record<string, string>;
39
+ notifyEvents?: Record<string, string>;
40
+ environment?: Record<string, string>;
41
+ }
42
+ export declare function normalizeSessionLaunchPreset(value: unknown): SessionLaunchPreset | undefined;
43
+ //# sourceMappingURL=shell-presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-presets.d.ts","sourceRoot":"","sources":["../src/shell-presets.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnD,MAAM,MAAM,WAAW,GACnB,gBAAgB,GAChB,eAAe,GACf,kBAAkB,CAAC;AAEvB,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC;AAED,MAAM,MAAM,4BAA4B,GACpC,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,gBAAgB,GAChB,qBAAqB,GACrB,MAAM,CAAC;AAEX,MAAM,MAAM,2BAA2B,GACnC,eAAe,GACf,oBAAoB,GACpB,cAAc,CAAC;AAEnB,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,4BAA4B,CAAC;IACnC,UAAU,EAAE,2BAA2B,CAAC;IACxC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,SAAS,gCAAgC,EAAE,CAAC;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AASD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,GACb,mBAAmB,GAAG,SAAS,CAmBjC"}
@@ -0,0 +1,82 @@
1
+ const MAX_PRESET_ID_LENGTH = 128;
2
+ const MAX_PRESET_LABEL_LENGTH = 200;
3
+ const MAX_PRESET_COMMAND_LENGTH = 4000;
4
+ const MAX_RUNTIME_ID_LENGTH = 128;
5
+ const MAX_PROCESS_NAME_LENGTH = 128;
6
+ const MAX_PROCESSES = 32;
7
+ export function normalizeSessionLaunchPreset(value) {
8
+ if (!isPlainObject(value))
9
+ return undefined;
10
+ const presetId = stringWithin(value.presetId, MAX_PRESET_ID_LENGTH);
11
+ const label = stringWithin(value.label, MAX_PRESET_LABEL_LENGTH);
12
+ const commandLine = commandLineWithin(value.commandLine, MAX_PRESET_COMMAND_LENGTH);
13
+ const source = value.source;
14
+ if (!presetId || !label || commandLine === null)
15
+ return undefined;
16
+ if (source !== "builtin" && source !== "user")
17
+ return undefined;
18
+ const runtimeHint = normalizeRuntimeHint(value.runtimeHint);
19
+ return {
20
+ presetId,
21
+ source,
22
+ label,
23
+ commandLine,
24
+ ...(runtimeHint && { runtimeHint }),
25
+ };
26
+ }
27
+ function normalizeRuntimeHint(value) {
28
+ if (!isPlainObject(value))
29
+ return undefined;
30
+ const runtimeId = stringWithin(value.runtimeId, MAX_RUNTIME_ID_LENGTH);
31
+ if (!runtimeId)
32
+ return undefined;
33
+ const tier = value.tier;
34
+ if (tier !== "native-managed" &&
35
+ tier !== "process-aware" &&
36
+ tier !== "generic-terminal") {
37
+ return undefined;
38
+ }
39
+ const expectedProcesses = normalizeStringArray(value.expectedProcesses);
40
+ if (expectedProcesses.length === 0)
41
+ return undefined;
42
+ const detectCommands = normalizeStringArray(value.detectCommands);
43
+ return {
44
+ runtimeId,
45
+ tier,
46
+ expectedProcesses,
47
+ ...(detectCommands.length > 0 && { detectCommands }),
48
+ };
49
+ }
50
+ function normalizeStringArray(value) {
51
+ if (!Array.isArray(value))
52
+ return [];
53
+ const out = [];
54
+ const seen = new Set();
55
+ for (const item of value) {
56
+ const normalized = stringWithin(item, MAX_PROCESS_NAME_LENGTH);
57
+ if (!normalized || seen.has(normalized))
58
+ continue;
59
+ seen.add(normalized);
60
+ out.push(normalized);
61
+ if (out.length >= MAX_PROCESSES)
62
+ break;
63
+ }
64
+ return out;
65
+ }
66
+ function stringWithin(value, max) {
67
+ if (typeof value !== "string")
68
+ return null;
69
+ const trimmed = value.trim();
70
+ if (!trimmed || trimmed.length > max)
71
+ return null;
72
+ return trimmed;
73
+ }
74
+ function commandLineWithin(value, max) {
75
+ if (typeof value !== "string")
76
+ return null;
77
+ return value.length <= max ? value : null;
78
+ }
79
+ function isPlainObject(value) {
80
+ return typeof value === "object" && value !== null && !Array.isArray(value);
81
+ }
82
+ //# sourceMappingURL=shell-presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-presets.js","sourceRoot":"","sources":["../src/shell-presets.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import type { IdeCommandConfig } from "./ide-commands.js";
2
2
  import type { PaneCommandConfig } from "./pane-commands.js";
3
3
  import type { WorktreePanes } from "./pane-model.js";
4
4
  import type { PaneNode } from "./panes.js";
5
+ import type { WorktreeLineageMetadata } from "./runtime.js";
6
+ import type { SessionLaunchPreset } from "./shell-presets.js";
5
7
  import type { WorktreeLocalFileCandidate } from "./worktree-local-files.js";
6
8
  export interface AppState {
7
9
  version: 1;
@@ -17,9 +19,9 @@ export interface AppState {
17
19
  sessionRecords: SessionRecord[];
18
20
  serviceConfig: ServiceConfig;
19
21
  /**
20
- * User-defined commands shown by the Open Container terminal launcher.
21
- * The built-in empty-shell Terminal entry is client-owned UI behavior and
22
- * is intentionally not persisted here.
22
+ * Terminal launcher command configuration. User-defined command entries use
23
+ * custom ids; built-in preset ids store only user overrides such as
24
+ * enabled/disabled state or a custom command line.
23
25
  */
24
26
  paneCommands: PaneCommandConfig[];
25
27
  /**
@@ -103,8 +105,43 @@ export interface ProjectState {
103
105
  lastFocusedPaneId: string | null;
104
106
  /** New focus pointer into `worktrees[].panes[].id`. */
105
107
  focusedPaneId: string | null;
108
+ /**
109
+ * Server-owned sidebar preferences shared across browser clients.
110
+ * Optional in the type so old fixtures / persisted state remain readable;
111
+ * state migration and project creation backfill it for runtime data.
112
+ */
113
+ sidebar?: ProjectSidebarState;
114
+ /**
115
+ * Server-owned product metadata keyed by absolute worktree path. The git
116
+ * worktree list remains authoritative for existence; this map only records
117
+ * lineage/provenance for display and context.
118
+ */
119
+ worktreeMetadata?: Record<string, WorktreeLineageMetadata>;
106
120
  lastAccessedAt: number;
107
121
  }
122
+ export interface ProjectSidebarState {
123
+ /**
124
+ * User-defined child ordering by worktree path. Values are pane ids in
125
+ * desired sidebar order; children not listed by the client are appended by
126
+ * the renderer's default ordering.
127
+ */
128
+ paneOrder: Record<string, string[]>;
129
+ /** Disclosure state by worktree path. Missing = open. */
130
+ worktreeOpen: Record<string, boolean>;
131
+ }
132
+ export interface ProjectSidebarStatePatch {
133
+ /**
134
+ * Worktree path -> ordered pane ids. `null` deletes the path override.
135
+ */
136
+ paneOrder?: Record<string, string[] | null>;
137
+ /** Worktree path -> open/closed. `null` deletes the path override. */
138
+ worktreeOpen?: Record<string, boolean | null>;
139
+ }
140
+ export declare function createEmptyProjectSidebarState(): ProjectSidebarState;
141
+ export declare function normalizeProjectSidebarState(value: unknown): ProjectSidebarState;
142
+ export declare function normalizeWorktreeMetadataMap(value: unknown): Record<string, WorktreeLineageMetadata>;
143
+ export declare function normalizeProjectSidebarStatePatch(value: unknown): ProjectSidebarStatePatch | null;
144
+ export declare function applyProjectSidebarStatePatch(state: ProjectSidebarState | undefined, patch: ProjectSidebarStatePatch): ProjectSidebarState;
108
145
  export type SessionCommand = {
109
146
  type: "shell";
110
147
  } | {
@@ -146,6 +183,7 @@ export interface Session {
146
183
  command: SessionCommand;
147
184
  cwd: string;
148
185
  shell: string;
186
+ launchPreset?: SessionLaunchPreset;
149
187
  createdAt: number;
150
188
  endedAt?: number;
151
189
  endReason?: SessionEndReason;
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}