@jinn-network/client 0.1.0 → 0.1.1

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 (101) hide show
  1. package/README.md +46 -9
  2. package/dist/adapters/mech/adapter.d.ts +1 -0
  3. package/dist/adapters/mech/adapter.js +35 -0
  4. package/dist/adapters/mech/adapter.js.map +1 -1
  5. package/dist/api/gather-status.js +1 -0
  6. package/dist/api/gather-status.js.map +1 -1
  7. package/dist/api/server.js +12 -0
  8. package/dist/api/server.js.map +1 -1
  9. package/dist/api/status-build.d.ts +1 -0
  10. package/dist/api/status-build.js.map +1 -1
  11. package/dist/api/status-rollup-build.d.ts +4 -0
  12. package/dist/api/status-rollup-build.js +4 -0
  13. package/dist/api/status-rollup-build.js.map +1 -1
  14. package/dist/bin/jinn-mcp.d.ts +14 -0
  15. package/dist/bin/jinn-mcp.js +19 -0
  16. package/dist/bin/jinn-mcp.js.map +1 -0
  17. package/dist/build-meta.json +1 -1
  18. package/dist/cli/commands/auth.d.ts +3 -0
  19. package/dist/cli/commands/auth.js +146 -0
  20. package/dist/cli/commands/auth.js.map +1 -0
  21. package/dist/cli/commands/bootstrap.js +1 -0
  22. package/dist/cli/commands/bootstrap.js.map +1 -1
  23. package/dist/cli/commands/doctor.js +43 -11
  24. package/dist/cli/commands/doctor.js.map +1 -1
  25. package/dist/cli/commands/fund-requirements.js +69 -1
  26. package/dist/cli/commands/fund-requirements.js.map +1 -1
  27. package/dist/cli/commands/history.js +1 -0
  28. package/dist/cli/commands/history.js.map +1 -1
  29. package/dist/cli/commands/init.js +31 -7
  30. package/dist/cli/commands/init.js.map +1 -1
  31. package/dist/cli/commands/keys-backup.js +142 -10
  32. package/dist/cli/commands/keys-backup.js.map +1 -1
  33. package/dist/cli/commands/logs.js +28 -13
  34. package/dist/cli/commands/logs.js.map +1 -1
  35. package/dist/cli/commands/plugin-install.d.ts +3 -0
  36. package/dist/cli/commands/plugin-install.js +799 -0
  37. package/dist/cli/commands/plugin-install.js.map +1 -0
  38. package/dist/cli/commands/quickstart.d.ts +3 -0
  39. package/dist/cli/commands/quickstart.js +236 -0
  40. package/dist/cli/commands/quickstart.js.map +1 -0
  41. package/dist/cli/commands/run.js +6 -0
  42. package/dist/cli/commands/run.js.map +1 -1
  43. package/dist/cli/commands/stop.js +1 -0
  44. package/dist/cli/commands/stop.js.map +1 -1
  45. package/dist/cli/commands/submit-intent.js +11 -1
  46. package/dist/cli/commands/submit-intent.js.map +1 -1
  47. package/dist/cli/commands/update.d.ts +3 -0
  48. package/dist/cli/commands/update.js +154 -0
  49. package/dist/cli/commands/update.js.map +1 -0
  50. package/dist/cli/commands/version.js +15 -1
  51. package/dist/cli/commands/version.js.map +1 -1
  52. package/dist/cli/deployment-digest.js +20 -4
  53. package/dist/cli/deployment-digest.js.map +1 -1
  54. package/dist/cli/index.js +8 -0
  55. package/dist/cli/index.js.map +1 -1
  56. package/dist/cli/password.d.ts +15 -0
  57. package/dist/cli/password.js +29 -1
  58. package/dist/cli/password.js.map +1 -1
  59. package/dist/config.d.ts +8 -0
  60. package/dist/config.js +8 -0
  61. package/dist/config.js.map +1 -1
  62. package/dist/daemon/balance-topup-loop.d.ts +40 -0
  63. package/dist/daemon/balance-topup-loop.js +96 -0
  64. package/dist/daemon/balance-topup-loop.js.map +1 -0
  65. package/dist/daemon/daemon.d.ts +7 -0
  66. package/dist/daemon/daemon.js +12 -0
  67. package/dist/daemon/daemon.js.map +1 -1
  68. package/dist/dashboard/index.html +500 -0
  69. package/dist/earning/bootstrap.d.ts +2 -0
  70. package/dist/earning/bootstrap.js +68 -14
  71. package/dist/earning/bootstrap.js.map +1 -1
  72. package/dist/earning/contracts.d.ts +17 -0
  73. package/dist/earning/contracts.js +7 -1
  74. package/dist/earning/contracts.js.map +1 -1
  75. package/dist/earning/faucet.d.ts +15 -0
  76. package/dist/earning/faucet.js +64 -0
  77. package/dist/earning/faucet.js.map +1 -0
  78. package/dist/earning/store.d.ts +5 -0
  79. package/dist/earning/store.js +7 -3
  80. package/dist/earning/store.js.map +1 -1
  81. package/dist/errors/unauthorized-account.d.ts +10 -0
  82. package/dist/errors/unauthorized-account.js +14 -0
  83. package/dist/errors/unauthorized-account.js.map +1 -0
  84. package/dist/main.js +30 -1
  85. package/dist/main.js.map +1 -1
  86. package/dist/mcp/operator-server.d.ts +34 -0
  87. package/dist/mcp/operator-server.js +219 -0
  88. package/dist/mcp/operator-server.js.map +1 -0
  89. package/dist/operator-errors.js +11 -0
  90. package/dist/operator-errors.js.map +1 -1
  91. package/dist/preflight/claude-auth.d.ts +57 -0
  92. package/dist/preflight/claude-auth.js +153 -0
  93. package/dist/preflight/claude-auth.js.map +1 -0
  94. package/dist/runner/claude.js +15 -0
  95. package/dist/runner/claude.js.map +1 -1
  96. package/dist/store/store.js +5 -0
  97. package/dist/store/store.js.map +1 -1
  98. package/dist/tx-retry.js +11 -1
  99. package/dist/tx-retry.js.map +1 -1
  100. package/package.json +12 -3
  101. package/skills/jinn-operator/SKILL.md +213 -0
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Operator-level MCP server for jinn-client.
3
+ *
4
+ * Exposes tools that let an external agent (e.g. Claude Desktop) manage a jinn
5
+ * fleet: read status, bootstrap, submit intents, start/stop the daemon.
6
+ *
7
+ * Entry point: client/src/bin/jinn-mcp.ts calls createOperatorServer().
8
+ *
9
+ * Design: wraps CLI command modules directly (Option B from the research doc).
10
+ * Each command already accepts an injectable { writer, exit } context, so we
11
+ * capture stdout into a string buffer and return it as the MCP tool response.
12
+ */
13
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
14
+ export declare function startDetachedDaemon(env: NodeJS.ProcessEnv): Promise<{
15
+ ok: true;
16
+ payload: {
17
+ pid: number | undefined;
18
+ status: 'already_running' | 'started' | 'starting';
19
+ };
20
+ } | {
21
+ ok: false;
22
+ payload: {
23
+ status: 'failed';
24
+ detail: string;
25
+ };
26
+ }>;
27
+ export declare function stopDetachedDaemon(env: NodeJS.ProcessEnv): Promise<{
28
+ ok: true;
29
+ payload: Record<string, unknown>;
30
+ } | {
31
+ ok: false;
32
+ payload: string;
33
+ }>;
34
+ export declare function createOperatorServer(): McpServer;
@@ -0,0 +1,219 @@
1
+ /**
2
+ * Operator-level MCP server for jinn-client.
3
+ *
4
+ * Exposes tools that let an external agent (e.g. Claude Desktop) manage a jinn
5
+ * fleet: read status, bootstrap, submit intents, start/stop the daemon.
6
+ *
7
+ * Entry point: client/src/bin/jinn-mcp.ts calls createOperatorServer().
8
+ *
9
+ * Design: wraps CLI command modules directly (Option B from the research doc).
10
+ * Each command already accepts an injectable { writer, exit } context, so we
11
+ * capture stdout into a string buffer and return it as the MCP tool response.
12
+ */
13
+ import { spawn } from 'node:child_process';
14
+ import { existsSync, readFileSync, unlinkSync } from 'node:fs';
15
+ import { join } from 'node:path';
16
+ import { fileURLToPath } from 'node:url';
17
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
18
+ import { z } from 'zod';
19
+ // ── Read-only command imports ───────────────────────────────────────────────
20
+ import initCommand from '../cli/commands/init.js';
21
+ import doctorCommand from '../cli/commands/doctor.js';
22
+ import fundRequirementsCommand from '../cli/commands/fund-requirements.js';
23
+ import statusCommand from '../cli/commands/status.js';
24
+ import fleetCommand from '../cli/commands/fleet.js';
25
+ import balanceCommand from '../cli/commands/balance.js';
26
+ import historyCommand from '../cli/commands/history.js';
27
+ // ── Write (mutating) command imports ────────────────────────────────────────
28
+ import bootstrapCommand from '../cli/commands/bootstrap.js';
29
+ import submitIntentCommand from '../cli/commands/submit-intent.js';
30
+ import stopCommand from '../cli/commands/stop.js';
31
+ /**
32
+ * Run a CLI CommandModule in-process, capturing its stdout output as a string.
33
+ *
34
+ * The CLI commands call `ctx.exit()` on completion or error. We intercept that
35
+ * with a no-op so the MCP server process is not terminated. The captured text
36
+ * is always the JSON envelope the command writes.
37
+ */
38
+ async function runCommandResult(command, argv, env) {
39
+ const chunks = [];
40
+ let exitCode = null;
41
+ const writer = {
42
+ write(s) {
43
+ chunks.push(s);
44
+ return true;
45
+ },
46
+ };
47
+ const ctx = {
48
+ argv,
49
+ stdoutIsTty: false,
50
+ writer,
51
+ exit: (code) => { exitCode = code; },
52
+ env,
53
+ };
54
+ await command.run(ctx);
55
+ return { text: chunks.join(''), exitCode };
56
+ }
57
+ async function runToolCommand(command, argv, env) {
58
+ try {
59
+ const result = await runCommandResult(command, argv, env);
60
+ return {
61
+ content: [{ type: 'text', text: result.text }],
62
+ ...(result.exitCode !== null && result.exitCode !== 0 ? { isError: true } : {}),
63
+ };
64
+ }
65
+ catch (err) {
66
+ return {
67
+ content: [{ type: 'text', text: JSON.stringify({ error: String(err) }) }],
68
+ isError: true,
69
+ };
70
+ }
71
+ }
72
+ function sleep(ms) {
73
+ return new Promise(resolve => setTimeout(resolve, ms));
74
+ }
75
+ async function waitForPidfile(pidPath, timeoutMs) {
76
+ const startedAt = Date.now();
77
+ while (Date.now() - startedAt < timeoutMs) {
78
+ if (existsSync(pidPath)) {
79
+ return true;
80
+ }
81
+ await sleep(200);
82
+ }
83
+ return false;
84
+ }
85
+ function parseStopCommandNotRunning(text) {
86
+ try {
87
+ const parsed = JSON.parse(text);
88
+ return parsed.code === 'invalid_invocation' && parsed.details?.field === 'daemon_pidfile';
89
+ }
90
+ catch {
91
+ return false;
92
+ }
93
+ }
94
+ export async function startDetachedDaemon(env) {
95
+ const earningDir = env['JINN_EARNING_DIR'] ??
96
+ join(env['HOME'] ?? '.', '.jinn-client', 'earning');
97
+ const pidPath = join(earningDir, 'daemon.pid');
98
+ if (existsSync(pidPath)) {
99
+ try {
100
+ const existingPid = parseInt(readFileSync(pidPath, 'utf-8').trim(), 10);
101
+ process.kill(existingPid, 0);
102
+ return { ok: true, payload: { pid: existingPid, status: 'already_running' } };
103
+ }
104
+ catch {
105
+ try {
106
+ unlinkSync(pidPath);
107
+ }
108
+ catch {
109
+ /* ignore stale pidfile cleanup failures */
110
+ }
111
+ }
112
+ }
113
+ const jinnBinPath = fileURLToPath(new URL('../bin/jinn.js', import.meta.url));
114
+ const child = spawn(process.execPath, [jinnBinPath, 'run'], {
115
+ detached: true,
116
+ stdio: 'ignore',
117
+ env: { ...env },
118
+ });
119
+ const startResult = await Promise.race([
120
+ new Promise((resolve) => {
121
+ child.once('error', (err) => {
122
+ resolve({ status: 'failed', detail: err instanceof Error ? err.message : String(err) });
123
+ });
124
+ child.once('exit', (code, signal) => {
125
+ resolve({ status: 'failed', detail: `daemon exited during startup (code=${code ?? 'null'}, signal=${signal ?? 'null'})` });
126
+ });
127
+ }),
128
+ (async () => {
129
+ const pidfileReady = await waitForPidfile(pidPath, 5000);
130
+ return {
131
+ status: pidfileReady ? 'started' : 'starting',
132
+ pid: child.pid,
133
+ };
134
+ })(),
135
+ ]);
136
+ child.unref();
137
+ if (startResult.status === 'failed') {
138
+ return { ok: false, payload: { status: 'failed', detail: startResult.detail } };
139
+ }
140
+ return { ok: true, payload: { pid: startResult.pid, status: startResult.status } };
141
+ }
142
+ export async function stopDetachedDaemon(env) {
143
+ const result = await runCommandResult(stopCommand, ['--json'], env);
144
+ if (result.exitCode === null || result.exitCode === 0) {
145
+ return { ok: true, payload: JSON.parse(result.text) };
146
+ }
147
+ if (parseStopCommandNotRunning(result.text)) {
148
+ return { ok: true, payload: { status: 'not_running' } };
149
+ }
150
+ return { ok: false, payload: result.text };
151
+ }
152
+ // ── Server factory ──────────────────────────────────────────────────────────
153
+ export function createOperatorServer() {
154
+ const server = new McpServer({
155
+ name: 'jinn-operator',
156
+ version: '0.1.0',
157
+ });
158
+ // ━━ Read-only tools ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
159
+ server.tool('jinn_init', 'Create the master wallet and write the encrypted keystore. Idempotent.', {}, async () => runToolCommand(initCommand, ['--json'], process.env));
160
+ server.tool('jinn_doctor', 'Preflight checks: node version, claude binary, keystore, deployment config.', {}, async () => runToolCommand(doctorCommand, ['--json'], process.env));
161
+ server.tool('jinn_fund_requirements', 'List addresses that need funding before bootstrap can advance.', {}, async () => runToolCommand(fundRequirementsCommand, ['--json'], process.env));
162
+ server.tool('jinn_status', 'Daemon liveness and fleet health roll-up. Poll this for monitoring.', {}, async () => runToolCommand(statusCommand, ['--json'], process.env));
163
+ server.tool('jinn_fleet', 'Per-service fleet detail: wallets, staking status, activity counts.', {}, async () => runToolCommand(fleetCommand, ['--json'], process.env));
164
+ server.tool('jinn_balance', 'Flat per-wallet balance map across master and service wallets.', {}, async () => runToolCommand(balanceCommand, ['--json'], process.env));
165
+ server.tool('jinn_history', 'Recent protocol activity: intents, claims, deliveries, evaluations, rewards.', {
166
+ limit: z.number().optional().default(50).describe('Max results (default 50)'),
167
+ since: z.string().optional().describe('Only return events after this ISO-8601 timestamp'),
168
+ }, async ({ limit, since }) => {
169
+ const argv = ['--json', '--limit', String(limit)];
170
+ if (since)
171
+ argv.push('--since', since);
172
+ return runToolCommand(historyCommand, argv, process.env);
173
+ });
174
+ // ━━ Write (mutating) tools ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
175
+ server.tool('jinn_bootstrap', 'Advance the fleet state machine. Idempotent. May take several minutes. Returns funding_required if wallet needs ETH.', {}, async () => runToolCommand(bootstrapCommand, ['--json'], process.env));
176
+ server.tool('jinn_submit_intent', 'Post a desired state (restoration job) to the protocol. Idempotent by id.', {
177
+ id: z.string().describe('Unique intent identifier'),
178
+ description: z.string().describe('Human-readable description of the desired state'),
179
+ dry_run: z.boolean().optional().default(false).describe('Preview without posting on-chain'),
180
+ }, async ({ id, description, dry_run }) => {
181
+ const argv = ['--id', id, '--description', description, '--json'];
182
+ if (dry_run)
183
+ argv.push('--dry-run');
184
+ else
185
+ argv.push('--yes'); // implicit confirmation in MCP context
186
+ return runToolCommand(submitIntentCommand, argv, process.env);
187
+ });
188
+ server.tool('jinn_start_daemon', 'Start the jinn daemon as a detached background process. Returns the PID.', {}, async () => {
189
+ const result = await startDetachedDaemon(process.env);
190
+ if (!result.ok) {
191
+ return {
192
+ content: [
193
+ {
194
+ type: 'text',
195
+ text: JSON.stringify(result.payload),
196
+ },
197
+ ],
198
+ isError: true,
199
+ };
200
+ }
201
+ return {
202
+ content: [
203
+ {
204
+ type: 'text',
205
+ text: JSON.stringify(result.payload),
206
+ },
207
+ ],
208
+ };
209
+ });
210
+ server.tool('jinn_stop_daemon', 'Stop the running jinn daemon. Idempotent: returns success even if already stopped.', {}, async () => {
211
+ const result = await stopDetachedDaemon(process.env);
212
+ if (result.ok) {
213
+ return { content: [{ type: 'text', text: JSON.stringify(result.payload) }] };
214
+ }
215
+ return { content: [{ type: 'text', text: result.payload }], isError: true };
216
+ });
217
+ return server;
218
+ }
219
+ //# sourceMappingURL=operator-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-server.js","sourceRoot":"","sources":["../../src/mcp/operator-server.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * User-facing error formatting for operators.
3
3
  * Full stack traces and raw RPC errors are reserved for JINN_DEBUG mode.
4
4
  */
5
+ import { isUnauthorizedAccountError } from './errors/unauthorized-account.js';
5
6
  function envDebugTruthy(value) {
6
7
  if (value === undefined)
7
8
  return false;
@@ -51,6 +52,16 @@ function stringifyUnknown(error) {
51
52
  export function formatBootstrapOperatorMessage(error) {
52
53
  const msg = stringifyUnknown(error);
53
54
  const lower = msg.toLowerCase();
55
+ if (isUnauthorizedAccountError(msg) || msg.includes('curating-agent whitelist')) {
56
+ // Surfaces from `recoverEvictedService` when distributor.reStake reverts
57
+ // because the operator is not in mapCuratingAgents / mapManagingAgents on
58
+ // the stOLAS ExternalStakingDistributor. Keep the full actionable message
59
+ // so `setCuratingAgents` guidance isn't truncated by the 220-char cap.
60
+ return {
61
+ summary: msg.split('reStake revert:')[0]?.trim() ?? msg,
62
+ hint: 'The evicted service cannot self-heal without the distributor owner pre-authorising this operator. See the summary for the setCuratingAgents call, or abandon-and-rebootstrap.',
63
+ };
64
+ }
54
65
  if (msg.includes('GS013')) {
55
66
  return {
56
67
  summary: 'Gnosis Safe could not execute or estimate this transaction (GS013: inner call may have reverted or gas estimation failed).',
@@ -1 +1 @@
1
- {"version":3,"file":"operator-errors.js","sourceRoot":"","sources":["../src/operator-errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operator-errors.js","sourceRoot":"","sources":["../src/operator-errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Preflight: detect Claude auth context and probe authentication status.
3
+ *
4
+ * Three contexts are recognised:
5
+ * - 'container' — running inside a Docker container (/.dockerenv exists)
6
+ * - 'docker-compose' — a docker-compose.yml with a jinn-daemon service lives in cwd
7
+ * - 'bare' — plain host environment (default)
8
+ *
9
+ * Priority: container > docker-compose > bare.
10
+ */
11
+ export type AuthContext = 'container' | 'docker-compose' | 'bare';
12
+ export interface DetectContextOptions {
13
+ cwd: string;
14
+ /** Override the /.dockerenv existence check (for testing). */
15
+ dockerenvExists?: boolean;
16
+ /** Override the docker-compose.yml jinn-daemon check (for testing). */
17
+ composeServiceExists?: boolean;
18
+ }
19
+ export interface SpawnResult {
20
+ status: number | null;
21
+ stdout: string;
22
+ stderr: string;
23
+ }
24
+ export interface AuthProbeResult {
25
+ authenticated: boolean;
26
+ context: AuthContext;
27
+ detail: string;
28
+ email?: string;
29
+ }
30
+ export interface ProbeOptions {
31
+ context: AuthContext;
32
+ cwd: string;
33
+ /** Inject a pre-computed spawn result (for testing). */
34
+ spawnResult?: SpawnResult;
35
+ }
36
+ export interface LoginResult {
37
+ success: boolean;
38
+ detail: string;
39
+ }
40
+ /**
41
+ * Determine which environment Claude is running in.
42
+ * When `dockerenvExists` / `composeServiceExists` are omitted the function
43
+ * inspects the filesystem directly.
44
+ */
45
+ export declare function detectAuthContext(opts: DetectContextOptions): AuthContext;
46
+ /**
47
+ * Probe whether `claude` is authenticated in the given context.
48
+ * When `spawnResult` is provided (testing) no subprocess is created.
49
+ */
50
+ export declare function probeClaudeAuth(opts: ProbeOptions): AuthProbeResult;
51
+ /**
52
+ * Return the command + args needed to interactively log in to Claude.
53
+ */
54
+ export declare function buildLoginCommand(context: AuthContext, cwd: string): {
55
+ command: string;
56
+ args: string[];
57
+ };
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Preflight: detect Claude auth context and probe authentication status.
3
+ *
4
+ * Three contexts are recognised:
5
+ * - 'container' — running inside a Docker container (/.dockerenv exists)
6
+ * - 'docker-compose' — a docker-compose.yml with a jinn-daemon service lives in cwd
7
+ * - 'bare' — plain host environment (default)
8
+ *
9
+ * Priority: container > docker-compose > bare.
10
+ */
11
+ import { existsSync, readFileSync } from 'node:fs';
12
+ import { spawnSync } from 'node:child_process';
13
+ import { join } from 'node:path';
14
+ // ---------------------------------------------------------------------------
15
+ // detectAuthContext
16
+ // ---------------------------------------------------------------------------
17
+ /**
18
+ * Determine which environment Claude is running in.
19
+ * When `dockerenvExists` / `composeServiceExists` are omitted the function
20
+ * inspects the filesystem directly.
21
+ */
22
+ export function detectAuthContext(opts) {
23
+ const { cwd } = opts;
24
+ // Resolve dockerenv — injected override takes precedence over filesystem.
25
+ const inContainer = opts.dockerenvExists !== undefined
26
+ ? opts.dockerenvExists
27
+ : existsSync('/.dockerenv');
28
+ if (inContainer)
29
+ return 'container';
30
+ // Resolve compose service — injected override or parse the file.
31
+ const hasComposeService = opts.composeServiceExists !== undefined
32
+ ? opts.composeServiceExists
33
+ : _composeHasJinnDaemon(cwd);
34
+ if (hasComposeService)
35
+ return 'docker-compose';
36
+ return 'bare';
37
+ }
38
+ function _composeHasJinnDaemon(cwd) {
39
+ const composePath = join(cwd, 'docker-compose.yml');
40
+ if (!existsSync(composePath))
41
+ return false;
42
+ try {
43
+ const content = readFileSync(composePath, 'utf8');
44
+ return content.includes('jinn-daemon');
45
+ }
46
+ catch {
47
+ return false;
48
+ }
49
+ }
50
+ // ---------------------------------------------------------------------------
51
+ // probeClaudeAuth
52
+ // ---------------------------------------------------------------------------
53
+ /**
54
+ * Probe whether `claude` is authenticated in the given context.
55
+ * When `spawnResult` is provided (testing) no subprocess is created.
56
+ */
57
+ export function probeClaudeAuth(opts) {
58
+ const { context, cwd } = opts;
59
+ const sr = opts.spawnResult ?? _spawnAuthStatus(context, cwd);
60
+ if (sr.status !== 0) {
61
+ return {
62
+ authenticated: false,
63
+ context,
64
+ detail: sr.stderr || 'claude auth status exited with non-zero status',
65
+ };
66
+ }
67
+ let parsed;
68
+ try {
69
+ parsed = JSON.parse(sr.stdout);
70
+ }
71
+ catch {
72
+ return {
73
+ authenticated: false,
74
+ context,
75
+ detail: 'claude auth status output is not valid JSON',
76
+ };
77
+ }
78
+ if (parsed === null ||
79
+ typeof parsed !== 'object' ||
80
+ !('loggedIn' in parsed) ||
81
+ parsed.loggedIn !== true) {
82
+ return { authenticated: false, context, detail: 'not logged in' };
83
+ }
84
+ const email = typeof parsed.email === 'string'
85
+ ? parsed.email
86
+ : undefined;
87
+ return {
88
+ authenticated: true,
89
+ context,
90
+ detail: email ? `logged in as ${email}` : 'logged in',
91
+ email,
92
+ };
93
+ }
94
+ function _spawnAuthStatus(context, cwd) {
95
+ let command;
96
+ let args;
97
+ if (context === 'docker-compose') {
98
+ command = 'docker';
99
+ args = [
100
+ 'compose',
101
+ '-f',
102
+ join(cwd, 'docker-compose.yml'),
103
+ 'run',
104
+ '--rm',
105
+ '-T',
106
+ '--no-deps',
107
+ '--entrypoint',
108
+ 'claude',
109
+ 'jinn-daemon',
110
+ 'auth',
111
+ 'status',
112
+ ];
113
+ }
114
+ else {
115
+ command = 'claude';
116
+ args = ['auth', 'status'];
117
+ }
118
+ const result = spawnSync(command, args, { encoding: 'utf8' });
119
+ return {
120
+ status: result.status,
121
+ stdout: result.stdout ?? '',
122
+ stderr: result.stderr ?? '',
123
+ };
124
+ }
125
+ // ---------------------------------------------------------------------------
126
+ // buildLoginCommand
127
+ // ---------------------------------------------------------------------------
128
+ /**
129
+ * Return the command + args needed to interactively log in to Claude.
130
+ */
131
+ export function buildLoginCommand(context, cwd) {
132
+ if (context === 'docker-compose') {
133
+ return {
134
+ command: 'docker',
135
+ args: [
136
+ 'compose',
137
+ '-f',
138
+ join(cwd, 'docker-compose.yml'),
139
+ 'run',
140
+ '--rm',
141
+ '-it',
142
+ '--no-deps',
143
+ '--entrypoint',
144
+ 'claude',
145
+ 'jinn-daemon',
146
+ 'auth',
147
+ 'login',
148
+ ],
149
+ };
150
+ }
151
+ return { command: 'claude', args: ['auth', 'login'] };
152
+ }
153
+ //# sourceMappingURL=claude-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-auth.js","sourceRoot":"","sources":["../../src/preflight/claude-auth.ts"],"names":[],"mappings":"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"}
@@ -112,6 +112,13 @@ Work autonomously. Do not ask questions.`;
112
112
  }
113
113
  // Environment allowlist for agent subprocess — only pass what's needed.
114
114
  // The agent must never see private keys, operator passwords, or secrets.
115
+ //
116
+ // CLAUDE_CODE_OAUTH_TOKEN and ANTHROPIC_API_KEY are explicit auth paths for
117
+ // Claude Code itself (equivalent to `claude auth login` / `claude
118
+ // setup-token`). Headless Docker deployments need them forwarded — without
119
+ // them the spawned agent always fails with "Not logged in". They are Claude
120
+ // credentials, not Jinn operator secrets, so forwarding is scoped and
121
+ // intentional.
115
122
  const ENV_ALLOWLIST = [
116
123
  'PATH',
117
124
  'HOME',
@@ -126,6 +133,14 @@ const ENV_ALLOWLIST = [
126
133
  'NODE_PATH',
127
134
  'NODE_OPTIONS',
128
135
  'NPM_CONFIG_PREFIX',
136
+ // Claude Code auth — needed in Docker where keychain is unavailable.
137
+ // CLAUDE_CODE_OAUTH_TOKEN is the output of `claude setup-token` (subscription
138
+ // path, year-long validity); ANTHROPIC_API_KEY is the pay-per-request fallback.
139
+ // Both are Claude credentials, not Jinn operator secrets, so forwarding is
140
+ // scoped and intentional. Without these the spawned `claude -p …` fails with
141
+ // "Not logged in · Please run /login".
142
+ 'CLAUDE_CODE_OAUTH_TOKEN',
143
+ 'ANTHROPIC_API_KEY',
129
144
  ];
130
145
  const ENV_BLOCKLIST = [
131
146
  'PRIVATE_KEY',
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/runner/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/runner/claude.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import Database from 'better-sqlite3';
2
+ import { mkdirSync } from 'node:fs';
3
+ import { dirname } from 'node:path';
2
4
  const SCHEMA = `
3
5
  CREATE TABLE IF NOT EXISTS own_activity (
4
6
  request_id TEXT PRIMARY KEY,
@@ -35,6 +37,9 @@ export class Store {
35
37
  path;
36
38
  constructor(dbPath) {
37
39
  this.path = dbPath;
40
+ if (dbPath !== ':memory:') {
41
+ mkdirSync(dirname(dbPath), { recursive: true });
42
+ }
38
43
  this.db = new Database(dbPath);
39
44
  this.db.pragma('journal_mode = WAL');
40
45
  this.db.exec(SCHEMA);
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}