gestalt-mobile 0.33.0 → 0.34.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.
@@ -16,8 +16,8 @@ SPDX-License-Identifier: AGPL-3.0-or-later
16
16
  <link rel="icon" href="/icons/gestalt-mobile-192.png" />
17
17
  <link rel="apple-touch-icon" href="/icons/gestalt-mobile-180.png" />
18
18
  <title>Gestalt Mobile</title>
19
- <script type="module" crossorigin src="/assets/index-ClFAZNxC.js"></script>
20
- <link rel="stylesheet" crossorigin href="/assets/index-Jem9eobi.css">
19
+ <script type="module" crossorigin src="/assets/index-nivA6-l4.js"></script>
20
+ <link rel="stylesheet" crossorigin href="/assets/index-CPQBJDsg.css">
21
21
  </head>
22
22
  <body>
23
23
  <div id="app"></div>
@@ -28,6 +28,30 @@ Options:
28
28
  --skills list List saved global skill profiles without starting the server
29
29
  --help Show this help
30
30
  --version Show the installed version`;
31
+ function managedVersion(value) {
32
+ return value && /^[A-Za-z0-9][A-Za-z0-9.+_-]{0,99}$/.test(value) ? value : null;
33
+ }
34
+ export function componentVersions(mobileVersion, codexVersion, environment = process.env) {
35
+ return [
36
+ {
37
+ id: 'gestalt',
38
+ label: 'Gestalt manager',
39
+ version: managedVersion(environment.GESTALT_MANAGER_VERSION),
40
+ },
41
+ { id: 'gestalt-mobile', label: 'Gestalt Mobile', version: mobileVersion },
42
+ {
43
+ id: 'gestalt-agents',
44
+ label: 'Gestalt Agents',
45
+ version: managedVersion(environment.GESTALT_AGENTS_VERSION),
46
+ },
47
+ {
48
+ id: 'context-mode',
49
+ label: 'Context Mode',
50
+ version: managedVersion(environment.GESTALT_CONTEXT_MODE_VERSION),
51
+ },
52
+ { id: 'codex', label: 'Codex CLI', version: codexVersion },
53
+ ];
54
+ }
31
55
  export async function runStartupDoctor(cwd) {
32
56
  if (process.env.GESTALT_STARTUP_DIAGNOSTICS_DONE === '1')
33
57
  return { ok: true, report: '' };
@@ -180,6 +204,8 @@ export async function runCli(dependencies = {}) {
180
204
  stderr.write(diagnosis.report);
181
205
  if (!diagnosis.ok)
182
206
  stderr.write('WARNING: Startup diagnostics reported a problem; Gestalt Mobile will continue so it can show recovery controls.\n');
207
+ const installedCodexVersion = await (dependencies.probeCodexVersion ?? probeCodexVersion)();
208
+ const mobileVersion = await packageVersion(moduleUrl);
183
209
  const app = await (dependencies.compose ?? composeRelayApp)({
184
210
  root: config.root,
185
211
  dataDir: config.dataDir,
@@ -187,7 +213,8 @@ export async function runCli(dependencies = {}) {
187
213
  passkeyAuthEnabled: config.passkeyAuthEnabled,
188
214
  staticDir: packagedClientDir(moduleUrl),
189
215
  profiles: new LauncherProfileCatalog(),
190
- installedCodexVersion: await (dependencies.probeCodexVersion ?? probeCodexVersion)(),
216
+ installedCodexVersion,
217
+ componentVersions: componentVersions(mobileVersion, installedCodexVersion, dependencies.environment),
191
218
  startAppServers: true,
192
219
  homeDirectory: dependencies.homeDirectory,
193
220
  explicitSkillProfile,
@@ -711,6 +711,7 @@ export async function composeRelayApp(options) {
711
711
  };
712
712
  }),
713
713
  },
714
+ versions: options.componentVersions,
714
715
  protocolCompatible: protocol.compatible,
715
716
  },
716
717
  sessionRoutes: {
@@ -3,8 +3,8 @@
3
3
  * Designed by Denis Roio <jaromil@dyne.org>
4
4
  * SPDX-License-Identifier: AGPL-3.0-or-later
5
5
  */
6
- export const AUTOPILOT_PROMPT_VERSION = 'v6';
7
- export const AUTOPILOT_CONTINUATION_PROMPT = 'Inspect the active supervised Org Plan. Refer to every L1 as L<a> and each nested L2 as L<a>.<b>, using one-based positions. For a subagent dedicated to that position, use the collaboration-safe task_name l<a> or l<a>_<b> and refer to it by its canonical L label. If the active L1 is still WIP and its executor stopped or is idle after a partial report or L2 checkpoint, call followup_task on that same executor before sending any response. Treat a status question as an interruption: answer briefly, then perform that continuation in the same turn. Invoke gestalt_org_plan_attention only for a decision-table blocker. When the Autopilot probe is active, register gestalt_autopilot_wait_lease with an observable wake condition, declare genuine attention, or immediately do actionable work; never acknowledge waiting in prose. Do not send a status-only response.';
6
+ export const AUTOPILOT_PROMPT_VERSION = 'v7';
7
+ export const AUTOPILOT_CONTINUATION_PROMPT = 'Inspect the active supervised Org Plan. Refer to every L1 as L<a> and each nested L2 as L<a>.<b>, using one-based positions. For a subagent dedicated to that position, use the collaboration-safe task_name l<a> or l<a>_<b> and refer to it by its canonical L label. If the active L1 is still WIP and its executor stopped or is idle after a partial report or L2 checkpoint, call followup_task on that same executor before sending any response. Treat a status question as an interruption: answer briefly, then perform that continuation in the same turn. Before sending any blocker response or yielding because progress cannot continue safely, call gestalt_org_plan_attention for the matching decision-table blocker; never rely on blocker prose as the signal. Do not call it for routine progress or a recoverable failure. When the Autopilot probe is active, register gestalt_autopilot_wait_lease with an observable wake condition, declare genuine attention, or immediately do actionable work; never acknowledge waiting in prose. Do not send a status-only response.';
8
8
  export const AUTOPILOT_EXECUTOR_CONTINUATION_PROMPT = 'Continue the same assigned Org L1 from its durable state. A prior turn ending did not complete the objective. Consume any supplied process result, take the next legal L2 action, and report only at the L1 review boundary or through structured attention.';
9
9
  /** Builds a physical launch instruction while keeping durable L1 identity canonical. */
10
10
  export function autopilotExecutorLaunchPrompt(identity) {
@@ -14,6 +14,7 @@ export async function getBootstrap(deps) {
14
14
  profiles,
15
15
  models,
16
16
  sessions: deps.sessions.list(),
17
+ versions: deps.versions ?? [],
17
18
  capabilities: {
18
19
  approvals: true,
19
20
  userInput: true,
@@ -0,0 +1,6 @@
1
+ /*
2
+ * Copyright (C) 2026 Dyne.org foundation
3
+ * Designed by Denis Roio <jaromil@dyne.org>
4
+ * SPDX-License-Identifier: AGPL-3.0-or-later
5
+ */
6
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gestalt-mobile",
3
- "version": "0.33.0",
3
+ "version": "0.34.0",
4
4
  "description": "Mobile-first web relay for durable Codex development sessions",
5
5
  "keywords": [
6
6
  "codex",