@jinn-network/client 0.1.6-canary.a15d0964 → 0.1.6-canary.a32bdcdf

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 (35) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/api/bootstrap-endpoint.d.ts +15 -0
  3. package/dist/api/bootstrap-endpoint.js +15 -0
  4. package/dist/api/bootstrap-endpoint.js.map +1 -1
  5. package/dist/api/codex-doctor-endpoint.d.ts +51 -0
  6. package/dist/api/codex-doctor-endpoint.js +64 -0
  7. package/dist/api/codex-doctor-endpoint.js.map +1 -0
  8. package/dist/api/server.d.ts +17 -0
  9. package/dist/api/server.js +46 -1
  10. package/dist/api/server.js.map +1 -1
  11. package/dist/api/setup-endpoints.js +49 -3
  12. package/dist/api/setup-endpoints.js.map +1 -1
  13. package/dist/build-info.json +4 -4
  14. package/dist/build-meta.json +1 -1
  15. package/dist/config.d.ts +15 -0
  16. package/dist/config.js +12 -0
  17. package/dist/config.js.map +1 -1
  18. package/dist/dashboard/assets/index-Di5kd6cA.js +140 -0
  19. package/dist/dashboard/index.html +1 -1
  20. package/dist/harnesses/impls/index.d.ts +5 -0
  21. package/dist/harnesses/impls/index.js +11 -0
  22. package/dist/harnesses/impls/index.js.map +1 -1
  23. package/dist/harnesses/impls/learner/harness.d.ts +34 -4
  24. package/dist/harnesses/impls/learner/harness.js +82 -2
  25. package/dist/harnesses/impls/learner/harness.js.map +1 -1
  26. package/dist/harnesses/impls/learner/types.d.ts +11 -0
  27. package/dist/harnesses/impls/stub.d.ts +58 -0
  28. package/dist/harnesses/impls/stub.js +89 -0
  29. package/dist/harnesses/impls/stub.js.map +1 -0
  30. package/dist/harnesses/readiness-registry.js +9 -1
  31. package/dist/harnesses/readiness-registry.js.map +1 -1
  32. package/dist/main.js +48 -21
  33. package/dist/main.js.map +1 -1
  34. package/package.json +27 -11
  35. package/dist/dashboard/assets/index-kBFkWxig.js +0 -140
package/CHANGELOG.md CHANGED
@@ -2,6 +2,37 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ### Embedded agent surface hidden by default (issue #326)
6
+
7
+ - **The embedded Claude agent chat surface no longer renders in the operator
8
+ app by default.** The right-rail agent panel (running mode) and the
9
+ "Ask Claude" panel (onboarding) are hidden. The 2026-05-19 v0.1.6 dogfood
10
+ found the surface isn't robust enough for first-time operators — it is the
11
+ only daemon-side surface that strictly requires Claude auth, and its
12
+ action-authority / plugin-scope shape is still in design (#177 / #178).
13
+ - **Feature flag: `JINN_ENABLE_EMBEDDED_AGENT`.** Set
14
+ `JINN_ENABLE_EMBEDDED_AGENT=1` (also accepts `true`) to re-enable the
15
+ surface for development. Default is off. When off, the daemon does not
16
+ mount the `/api/agent/ws` bridge and the SPA renders no agent panel; when
17
+ on, the dev-time path works end-to-end as before.
18
+ - **Claude-Code-as-a-solver-harness is unaffected.** Operators can still pick
19
+ Claude Code as their SolverNet harness — that path is independent of the
20
+ embedded chat surface and its WebSocket bridge.
21
+
22
+ ### Operator app
23
+
24
+ - **Plug-in builder UI surfaces hidden by default (issue #327).** The `/build`
25
+ route and the Build top-tab no longer appear in the operator app. Hitting
26
+ `/build` by direct URL redirects to `/overview`. The plug-in substrate stays
27
+ fully live — `jinn solver-plugins publish` / `revoke`, the Ponder indexer,
28
+ the Discovery API endpoints, and the `client/docs/build/` tree are
29
+ unchanged, so direct-CLI builders following the docs are not blocked. The
30
+ surfaces are gated to keep the operator-app first-run UX focused; they will
31
+ be re-promoted once that UX is solid and plug-in indexing is end-to-end
32
+ populated. Set `JINN_ENABLE_PLUGIN_BUILDER_UI=1` on the daemon to re-enable
33
+ the full builder surface for development and design work — the daemon injects
34
+ the flag into the SPA via `window.__JINN_FEATURES__`.
35
+
5
36
  ### SWE-rebench v2 admission
6
37
 
7
38
  - **Admission semantics bumped from `'2'` → `'3'`.** Operators running the
@@ -21,5 +21,20 @@ export interface BootstrapEndpointConfig {
21
21
  solverNets?: Record<string, unknown>;
22
22
  joinedSolverNets?: Record<string, unknown>;
23
23
  };
24
+ /**
25
+ * Feature flag for the embedded Claude agent chat surface in the operator
26
+ * SPA. Defaults to false; set via `JINN_ENABLE_EMBEDDED_AGENT=1` for
27
+ * development. When false, the SPA hides the agent rail / "Ask Claude"
28
+ * onboarding panel and the daemon does not mount the `/api/agent/ws`
29
+ * bridge. The Claude-Code-as-solver-harness path is unaffected. See
30
+ * GitHub issue #326.
31
+ */
32
+ embeddedAgentEnabled?: boolean;
24
33
  }
34
+ /**
35
+ * Resolves the JINN_ENABLE_EMBEDDED_AGENT env var. Default off. Anything
36
+ * other than '1' / 'true' (case-insensitive) is treated as off so a stray
37
+ * value can't accidentally re-enable the surface.
38
+ */
39
+ export declare function isEmbeddedAgentEnabled(env?: NodeJS.ProcessEnv): boolean;
25
40
  export declare function addBootstrapRoutes(app: Hono, config: BootstrapEndpointConfig): void;
@@ -2,6 +2,18 @@ import { existsSync, readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import { readBootstrapError } from '../errors/persisted-bootstrap-error.js';
4
4
  import { MIGRATIONS_FILE } from '../earning/store.js';
5
+ /**
6
+ * Resolves the JINN_ENABLE_EMBEDDED_AGENT env var. Default off. Anything
7
+ * other than '1' / 'true' (case-insensitive) is treated as off so a stray
8
+ * value can't accidentally re-enable the surface.
9
+ */
10
+ export function isEmbeddedAgentEnabled(env = process.env) {
11
+ const raw = env['JINN_ENABLE_EMBEDDED_AGENT'];
12
+ if (raw === undefined)
13
+ return false;
14
+ const normalized = raw.trim().toLowerCase();
15
+ return normalized === '1' || normalized === 'true';
16
+ }
5
17
  const STEPS = [
6
18
  'wallet',
7
19
  'safe_predicted',
@@ -63,6 +75,7 @@ function fundingTargetWei(fundingGate) {
63
75
  }
64
76
  export function addBootstrapRoutes(app, config) {
65
77
  app.get('/v1/bootstrap', (c) => {
78
+ const embeddedAgentEnabled = config.embeddedAgentEnabled ?? false;
66
79
  const path = join(config.earningDir, 'earning_state.json');
67
80
  if (!existsSync(path)) {
68
81
  return c.json({
@@ -71,6 +84,7 @@ export function addBootstrapRoutes(app, config) {
71
84
  steps: STEPS,
72
85
  currentStep: STEPS[0],
73
86
  services: [],
87
+ embeddedAgentEnabled,
74
88
  });
75
89
  }
76
90
  let parsed;
@@ -131,6 +145,7 @@ export function addBootstrapRoutes(app, config) {
131
145
  steps: STEPS,
132
146
  currentStep,
133
147
  services,
148
+ embeddedAgentEnabled,
134
149
  master_address: parsed.master_address,
135
150
  chain: parsed.chain,
136
151
  ...(parsed.fleet_agent_id ? { fleet_agent_id: parsed.fleet_agent_id } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-endpoint.js","sourceRoot":"","sources":["../../src/api/bootstrap-endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap-endpoint.js","sourceRoot":"","sources":["../../src/api/bootstrap-endpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * GET /api/codex/doctor
3
+ *
4
+ * Runs `codex --version` via spawnSync and inspects the auth configuration so
5
+ * the operator dashboard can show an install-required / sign-in-required panel
6
+ * before the operator saves a Codex harness selection.
7
+ *
8
+ * Response shape:
9
+ * { installed: boolean, authenticated: boolean, exitCode: number | null,
10
+ * stdout: string, stderr: string }
11
+ *
12
+ * `installed: false` means the binary was not found (ENOENT or equivalent).
13
+ * `exitCode !== 0` (with `installed: true`) means the binary exists but
14
+ * `codex --version` itself failed.
15
+ * `authenticated: false` (with `installed: true`, `exitCode === 0`) means the
16
+ * binary is present and runnable but no credentials are configured — Codex
17
+ * authenticates via the `OPENAI_API_KEY` env var or a `codex login` session
18
+ * persisted under `CODEX_HOME` / `~/.codex/auth.json`.
19
+ *
20
+ * The probe logic is exported as `probeCodexDoctor` so the Codex variant of
21
+ * the `LearnerHarness` can reuse it from `isReady()` — same source of truth
22
+ * for the SPA precheck panel and the daemon's claim-readiness gate (#348,
23
+ * same-shape bug as #330).
24
+ *
25
+ * Codex (unlike Hermes) has no `codex doctor` subcommand, so install
26
+ * detection shells `codex --version` and auth detection is a separate
27
+ * filesystem / env check rather than a probe exit code.
28
+ */
29
+ import type { Hono } from 'hono';
30
+ export interface CodexDoctorResponse {
31
+ installed: boolean;
32
+ authenticated: boolean;
33
+ exitCode: number | null;
34
+ stdout: string;
35
+ stderr: string;
36
+ }
37
+ export interface CodexDoctorConfig {
38
+ codexPath?: string;
39
+ codexDoctorTimeoutMs?: number;
40
+ /** Inject env for testing (defaults to process.env). */
41
+ env?: NodeJS.ProcessEnv;
42
+ /** Override the auth-file existence check (for testing). */
43
+ authFileExists?: boolean;
44
+ }
45
+ /**
46
+ * Synchronously runs `codex --version` and classifies install + auth state.
47
+ * Pure (no Hono dependency) so the harness layer can call it without pulling
48
+ * the API server in.
49
+ */
50
+ export declare function probeCodexDoctor(config?: CodexDoctorConfig): CodexDoctorResponse;
51
+ export declare function addCodexDoctorRoutes(app: Hono, config?: CodexDoctorConfig): void;
@@ -0,0 +1,64 @@
1
+ import { spawnSync } from 'node:child_process';
2
+ import { existsSync } from 'node:fs';
3
+ import { homedir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ /**
6
+ * Whether Codex has usable credentials. Codex authenticates either via the
7
+ * `OPENAI_API_KEY` env var or via a `codex login` session persisted to
8
+ * `auth.json` under `CODEX_HOME` (falling back to `~/.codex`).
9
+ */
10
+ function detectCodexAuth(config) {
11
+ if (config.authFileExists !== undefined) {
12
+ return config.authFileExists || hasApiKey(config);
13
+ }
14
+ if (hasApiKey(config))
15
+ return true;
16
+ const env = config.env ?? process.env;
17
+ const codexHome = env['CODEX_HOME']?.trim();
18
+ const authPath = codexHome
19
+ ? join(codexHome, 'auth.json')
20
+ : join(homedir(), '.codex', 'auth.json');
21
+ return existsSync(authPath);
22
+ }
23
+ function hasApiKey(config) {
24
+ const env = config.env ?? process.env;
25
+ return Boolean(env['OPENAI_API_KEY']?.trim());
26
+ }
27
+ /**
28
+ * Synchronously runs `codex --version` and classifies install + auth state.
29
+ * Pure (no Hono dependency) so the harness layer can call it without pulling
30
+ * the API server in.
31
+ */
32
+ export function probeCodexDoctor(config = {}) {
33
+ const codexBin = config.codexPath ?? 'codex';
34
+ const timeoutMs = config.codexDoctorTimeoutMs ?? 30_000;
35
+ const result = spawnSync(codexBin, ['--version'], {
36
+ timeout: timeoutMs,
37
+ encoding: 'utf8',
38
+ });
39
+ const errorCode = result.error?.code;
40
+ // installed=true means we found the binary on disk. ENOENT is the only
41
+ // definitive not-installed signal. Other errors (EACCES = wrong
42
+ // permissions; ETIMEDOUT = ran but didn't finish in time) indicate the
43
+ // binary exists but couldn't be exercised cleanly — surface those as
44
+ // config-issue, not missing.
45
+ const notFound = errorCode === 'ENOENT';
46
+ const installed = !notFound && (result.status !== null
47
+ || result.signal !== null
48
+ || (errorCode != null && errorCode !== 'ENOENT'));
49
+ // Auth is only meaningful once the binary is present and runnable.
50
+ const authenticated = installed && result.status === 0 && detectCodexAuth(config);
51
+ return {
52
+ installed,
53
+ authenticated,
54
+ exitCode: result.status,
55
+ stdout: (result.stdout ?? '').slice(0, 4000),
56
+ stderr: (result.stderr ?? '').slice(0, 4000),
57
+ };
58
+ }
59
+ export function addCodexDoctorRoutes(app, config = {}) {
60
+ app.get('/api/codex/doctor', (c) => {
61
+ return c.json(probeCodexDoctor(config));
62
+ });
63
+ }
64
+ //# sourceMappingURL=codex-doctor-endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-doctor-endpoint.js","sourceRoot":"","sources":["../../src/api/codex-doctor-endpoint.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAmBjC;;;;GAIG;AACH,SAAS,eAAe,CAAC,MAAyB;IAChD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,cAAc,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACtC,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,SAAS;QACxB,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC3C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,SAAS,CAAC,MAAyB;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACtC,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAA4B,EAAE;IAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,IAAI,MAAM,CAAC;IAExD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE;QAChD,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAI,MAAM,CAAC,KAA2C,EAAE,IAAI,CAAC;IAC5E,uEAAuE;IACvE,gEAAgE;IAChE,uEAAuE;IACvE,qEAAqE;IACrE,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,SAAS,KAAK,QAAQ,CAAC;IACxC,MAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,CAC7B,MAAM,CAAC,MAAM,KAAK,IAAI;WACnB,MAAM,CAAC,MAAM,KAAK,IAAI;WACtB,CAAC,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,QAAQ,CAAC,CACjD,CAAC;IAEF,mEAAmE;IACnE,MAAM,aAAa,GAAG,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IAElF,OAAO;QACL,SAAS;QACT,aAAa;QACb,QAAQ,EAAE,MAAM,CAAC,MAAM;QACvB,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;QAC5C,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAS,EAAE,SAA4B,EAAE;IAC5E,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE;QACjC,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -24,6 +24,7 @@ import { type SetupRoutesConfig } from './setup-endpoints.js';
24
24
  import { type HarnessStatusDeps } from './harness-status-endpoint.js';
25
25
  import type { HarnessReadinessRegistry } from '../harnesses/readiness-registry.js';
26
26
  import { type HermesDoctorConfig } from './hermes-doctor-endpoint.js';
27
+ import { type CodexDoctorConfig } from './codex-doctor-endpoint.js';
27
28
  import { type LauncherRoutesDeps } from './launcher-endpoints.js';
28
29
  import { type OperatorArtifactsRoutesConfig } from './operator-artifacts-endpoint.js';
29
30
  import { type StopHookRoutesDeps } from './stop-hook.js';
@@ -142,6 +143,11 @@ export interface ApiServerConfig {
142
143
  * Powers the dashboard's Hermes install precheck panel in the join flow.
143
144
  */
144
145
  hermesDoctor?: HermesDoctorConfig;
146
+ /**
147
+ * When set, mounts `GET /api/codex/doctor` under the UI token gate.
148
+ * Powers the dashboard's Codex install precheck panel in the join flow.
149
+ */
150
+ codexDoctor?: CodexDoctorConfig;
145
151
  /** Operator-local artifact inventory + future-artifact pricing controls. */
146
152
  operatorArtifacts?: Omit<OperatorArtifactsRoutesConfig, 'store'>;
147
153
  /** Path D local session-end hook endpoint. */
@@ -179,4 +185,15 @@ export interface ApiServer {
179
185
  * See jinn-mono-hqz0. */
180
186
  app: Hono;
181
187
  }
188
+ /**
189
+ * Inject the feature-flag bootstrap script into the SPA `index.html`.
190
+ *
191
+ * The script sets `window.__JINN_FEATURES__` before the SPA module loads, so
192
+ * the first render already sees the flags. Inserted immediately before the
193
+ * SPA's `<script type="module">` tag; if that tag is missing the script is
194
+ * appended before `</head>` (or `</body>`) so the SPA still gets it.
195
+ *
196
+ * Exported for unit testing — the runtime call lives in `readSpaIndex`.
197
+ */
198
+ export declare function injectFeatureFlags(html: string, features: Record<string, boolean>): string;
182
199
  export declare function startApiServer(config: ApiServerConfig): Promise<ApiServer>;
@@ -32,6 +32,7 @@ import { addSetupRoutes } from './setup-endpoints.js';
32
32
  import { addHarnessStatusRoutes } from './harness-status-endpoint.js';
33
33
  import { addHarnessReadinessRoutes } from './harness-readiness-endpoint.js';
34
34
  import { addHermesDoctorRoutes } from './hermes-doctor-endpoint.js';
35
+ import { addCodexDoctorRoutes } from './codex-doctor-endpoint.js';
35
36
  import { addLauncherRoutes } from './launcher-endpoints.js';
36
37
  import { addOperatorArtifactsRoutes, } from './operator-artifacts-endpoint.js';
37
38
  import { addStopHookRoutes } from './stop-hook.js';
@@ -67,9 +68,52 @@ function resolveDashboardDir() {
67
68
  }
68
69
  const dashboardDir = resolveDashboardDir() ?? join(__dirname, '..', 'dashboard');
69
70
  const assetsDir = join(dashboardDir, 'assets');
71
+ /**
72
+ * Resolve the operator-app feature flags from the daemon environment.
73
+ *
74
+ * Each flag is derived from a `JINN_ENABLE_*` env var ("1" enables). The SPA
75
+ * reads the injected `window.__JINN_FEATURES__` via `lib/features.ts`; absent
76
+ * or partial injection is treated as all-off there, so this can stay a flat
77
+ * boolean record.
78
+ *
79
+ * Issue #327: `pluginBuilderUi` gates the operator-app builder surfaces
80
+ * (`/build` route + Build top-tab). Default-off until the first-run UX is
81
+ * solid; the plug-in substrate (CLI verbs, indexer, Discovery API, docs)
82
+ * stays live regardless.
83
+ */
84
+ function resolveFeatureFlags() {
85
+ return {
86
+ pluginBuilderUi: process.env['JINN_ENABLE_PLUGIN_BUILDER_UI'] === '1',
87
+ };
88
+ }
89
+ /**
90
+ * Inject the feature-flag bootstrap script into the SPA `index.html`.
91
+ *
92
+ * The script sets `window.__JINN_FEATURES__` before the SPA module loads, so
93
+ * the first render already sees the flags. Inserted immediately before the
94
+ * SPA's `<script type="module">` tag; if that tag is missing the script is
95
+ * appended before `</head>` (or `</body>`) so the SPA still gets it.
96
+ *
97
+ * Exported for unit testing — the runtime call lives in `readSpaIndex`.
98
+ */
99
+ export function injectFeatureFlags(html, features) {
100
+ const script = `<script>window.__JINN_FEATURES__=${JSON.stringify(features)};</script>`;
101
+ const moduleTagMatch = html.match(/<script\b[^>]*type=["']module["'][^>]*>/i);
102
+ if (moduleTagMatch?.index !== undefined) {
103
+ return html.slice(0, moduleTagMatch.index) + script + html.slice(moduleTagMatch.index);
104
+ }
105
+ if (html.includes('</head>')) {
106
+ return html.replace('</head>', `${script}</head>`);
107
+ }
108
+ if (html.includes('</body>')) {
109
+ return html.replace('</body>', `${script}</body>`);
110
+ }
111
+ return html + script;
112
+ }
70
113
  function readSpaIndex() {
71
114
  try {
72
- return readFileSync(join(dashboardDir, 'index.html'), 'utf-8');
115
+ const html = readFileSync(join(dashboardDir, 'index.html'), 'utf-8');
116
+ return injectFeatureFlags(html, resolveFeatureFlags());
73
117
  }
74
118
  catch {
75
119
  return [
@@ -301,6 +345,7 @@ export async function startApiServer(config) {
301
345
  }
302
346
  if (config.ui) {
303
347
  addHermesDoctorRoutes(app, config.hermesDoctor ?? {});
348
+ addCodexDoctorRoutes(app, config.codexDoctor ?? {});
304
349
  }
305
350
  if (config.ui) {
306
351
  addOperatorArtifactsRoutes(app, {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"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"}
@@ -82,10 +82,16 @@ export function addSetupRoutes(app, config = {}) {
82
82
  return c.json(result, result.ok ? 202 : 500);
83
83
  });
84
84
  // POST /v1/setup/drip — user-triggered Base Sepolia faucet funding for the
85
- // master EOA. One click drains the tiny CDP drip repeatedly until the wallet
86
- // reaches the bootstrap floor, the faucet rate-limits, or the safety cap is
87
- // hit. Mainnet rejects.
85
+ // master EOA. By default ("?singleDrip" absent) one click drains the tiny
86
+ // CDP drip repeatedly until the wallet reaches the bootstrap floor, the
87
+ // faucet rate-limits, or the safety cap is hit this is the bootstrap
88
+ // funding gate (AwaitingFundingCard). With `?singleDrip=true` the endpoint
89
+ // fires the faucet EXACTLY ONCE and returns immediately with txHash +
90
+ // deltaWei — this is the running-mode Dashboard "Top up" button, which must
91
+ // require an explicit click and never auto-fire (jinn-mono #336). Mainnet
92
+ // rejects.
88
93
  app.post('/v1/setup/drip', async (c) => {
94
+ const singleDrip = c.req.query('singleDrip') === 'true';
89
95
  const earningDir = config.earningDir ??
90
96
  process.env['JINN_EARNING_DIR'] ??
91
97
  join(process.env['HOME'] ?? homedir(), '.jinn-client', 'earning');
@@ -157,6 +163,46 @@ export function addSetupRoutes(app, config = {}) {
157
163
  targetWei: targetWei.toString(),
158
164
  });
159
165
  }
166
+ // Single-drip mode (jinn-mono #336): the running-mode Dashboard "Top up"
167
+ // button must fire the faucet EXACTLY ONCE per click — never loop. The
168
+ // multi-drip loop below is for the one-time bootstrap funding gate
169
+ // (AwaitingFundingCard), where the wallet has to clear the entire
170
+ // bootstrap floor. On the running dashboard the operator just wants a
171
+ // single, explicit top-up they can see confirmed (amount + tx hash).
172
+ if (singleDrip) {
173
+ const balanceBefore = balanceWei;
174
+ const result = await requestFunding(address, 'base-sepolia');
175
+ if (!result.ok) {
176
+ return c.json({
177
+ ok: false,
178
+ address,
179
+ txHashes,
180
+ attempts: 0,
181
+ balanceWei: balanceWei?.toString(),
182
+ targetWei: targetWei?.toString(),
183
+ reason: result.reason,
184
+ rateLimited: result.rateLimited,
185
+ }, 200);
186
+ }
187
+ if (result.txHash)
188
+ txHashes.push(result.txHash);
189
+ balanceWei = await getBalance();
190
+ persistFundingGate(balanceWei);
191
+ const deltaWei = balanceBefore !== null && balanceWei !== null && balanceWei > balanceBefore
192
+ ? balanceWei - balanceBefore
193
+ : null;
194
+ return c.json({
195
+ ok: txHashes.length > 0,
196
+ address,
197
+ txHash: result.txHash,
198
+ txHashes,
199
+ attempts: txHashes.length,
200
+ balanceWei: balanceWei?.toString(),
201
+ targetWei: targetWei?.toString(),
202
+ deltaWei: deltaWei !== null ? deltaWei.toString() : undefined,
203
+ reason: txHashes.length > 0 ? undefined : 'faucet_did_not_send',
204
+ }, txHashes.length > 0 ? 202 : 200);
205
+ }
160
206
  const maxFaucetIters = computeFaucetDripCap({
161
207
  override: config.maxFaucetIters,
162
208
  targetWei,