@profullstack/agenticjobs 0.1.1 → 0.2.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.
package/README.md CHANGED
@@ -23,9 +23,18 @@ other one was not.
23
23
  Self-hosted, MIT, Postgres. One person, one account, both sides of the table.
24
24
 
25
25
  ```
26
- npx @profullstack/agenticjobs --help
26
+ curl -fsSL https://agenticjobs.work/install.sh | sh
27
+ agenticjobs signup
27
28
  ```
28
29
 
30
+ No root, nothing outside your home directory. `agenticjobs update` updates it and
31
+ `agenticjobs uninstall` removes it, using a manifest the installer left behind, so removal is
32
+ exact and needs no network. Your boards and tokens in `~/.config/agenticjobs` are never
33
+ touched. The script is served as plain text, so you can read it in a browser before you pipe
34
+ it anywhere: <https://agenticjobs.work/install.sh>
35
+
36
+ With npm instead: `npm i -g @profullstack/agenticjobs`.
37
+
29
38
  ## Every surface, one engine
30
39
 
31
40
  | | |
@@ -164,6 +173,10 @@ agenticjobs search "staff engineer" --all # asks both, in parallel
164
173
  ## Both sides, from a terminal
165
174
 
166
175
  ```bash
176
+ # signing up, in one command: the emailed link both creates the account and
177
+ # approves this terminal, so there is no code to copy between two windows
178
+ agenticjobs signup you@example.com
179
+
167
180
  # looking
168
181
  agenticjobs search "rust" --remote --agents
169
182
  agenticjobs apply SLUG --resume ~/resume.md --draft # prepare, do not send
package/dist/cli/index.js CHANGED
@@ -12,14 +12,17 @@
12
12
  */
13
13
  import { readFile } from 'node:fs/promises';
14
14
  import process from 'node:process';
15
+ import { createInterface } from 'node:readline/promises';
15
16
  import { flagBool, flagList, flagNumber, flagString, parseArgs } from "./args.js";
16
17
  import { bold, dim } from "./format.js";
18
+ import { installLine, update as runUpdate, uninstall as runUninstall, whereIsIt } from "./manage.js";
17
19
  import { ApiError, BoardClient, configuredBoards, currentBoard, DEFAULT_SERVER, forgetBoard, loadConfig, login, LoginError, normaliseServer, rememberBoard, saveConfig, searchEverywhere, } from "../client/index.js";
18
20
  import { VERSION } from "../config.js";
19
21
  import { ago, formatSalary } from "../schema/text.js";
20
22
  const USAGE = `agenticjobs ${VERSION} - an agent-friendly job board you can self-host
21
23
 
22
- Boards
24
+ Account
25
+ signup [email] create an account and sign this terminal in
23
26
  login [server] sign in to a board (device flow)
24
27
  logout [server] forget a board
25
28
  boards every board you are signed in to
@@ -65,6 +68,11 @@ const USAGE = `agenticjobs ${VERSION} - an agent-friendly job board you can self
65
68
  tui the full-screen client
66
69
  mcp stdio MCP server for the current board
67
70
 
71
+ This install
72
+ update update to the latest release
73
+ uninstall [--yes] remove it; your logins are kept
74
+ where what was installed, and where
75
+
68
76
  --server <url> act on a board other than the default
69
77
  --json machine-readable output, on every command
70
78
  `;
@@ -138,8 +146,16 @@ async function run(args) {
138
146
  await startStdio(clientFor(args));
139
147
  return new Promise(() => undefined);
140
148
  }
149
+ case 'signup':
150
+ return commandSignup(args);
141
151
  case 'login':
142
152
  return commandLogin(args);
153
+ case 'update':
154
+ return runUpdate();
155
+ case 'uninstall':
156
+ return runUninstall({ yes: flagBool(args, 'yes', 'y') });
157
+ case 'where':
158
+ return whereIsIt();
143
159
  case 'logout':
144
160
  return commandLogout(args);
145
161
  case 'boards':
@@ -244,6 +260,81 @@ function jobLine(job, where) {
244
260
  ].join('\n');
245
261
  }
246
262
  // --- boards ---------------------------------------------------------------
263
+ /**
264
+ * Sign up from a terminal.
265
+ *
266
+ * A terminal cannot follow a magic link and a brand new account has no browser
267
+ * session to approve a device code with, so signing up used to mean two
268
+ * commands and a detour through the website. This does it in one: it opens a
269
+ * device grant, then asks for a magic link that lands on /device with the code
270
+ * already filled in. One click in the mail creates the account, signs the
271
+ * browser in and puts the person on the approval page.
272
+ */
273
+ async function commandSignup(args) {
274
+ const target = flagString(args, 'server', 's') ?? DEFAULT_SERVER;
275
+ const server = normaliseServer(target);
276
+ const client = new BoardClient(server, { userAgent: userAgent() });
277
+ let name = server;
278
+ try {
279
+ const descriptor = await client.describe();
280
+ name = descriptor.name;
281
+ process.stdout.write(`${bold(descriptor.name)} - ${descriptor.tagline}\n\n`);
282
+ }
283
+ catch {
284
+ process.stderr.write(`${server} did not answer as an agenticjobs board.\n`);
285
+ return 1;
286
+ }
287
+ let email = args.positional[0] ?? flagString(args, 'email');
288
+ if (email === undefined) {
289
+ if (!process.stdin.isTTY) {
290
+ process.stderr.write('Which email? agenticjobs signup you@example.com\n');
291
+ return 1;
292
+ }
293
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
294
+ try {
295
+ email = (await rl.question('Email: ')).trim();
296
+ }
297
+ finally {
298
+ rl.close();
299
+ }
300
+ }
301
+ if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email ?? '')) {
302
+ process.stderr.write('That does not look like an email address.\n');
303
+ return 1;
304
+ }
305
+ const grant = await client.startDeviceAuth(`${process.env['USER'] ?? 'terminal'}@${process.env['HOSTNAME'] ?? 'machine'}`);
306
+ // The link lands on the approval page with the code already in the box, so
307
+ // there is nothing to copy between two windows.
308
+ const sent = await client.request('POST', '/api/v1/auth/magic-link', {
309
+ email,
310
+ redirect: `/device?code=${encodeURIComponent(grant.userCode)}`,
311
+ });
312
+ if (sent.delivered) {
313
+ process.stdout.write(`A sign-in link is on its way to ${bold(email)}.\n`);
314
+ }
315
+ else {
316
+ // No mail server configured on that board. Saying so beats waiting for an
317
+ // email that is only ever going to appear in someone's server log.
318
+ process.stdout.write(`${server} has no mail server configured, so it logged the link instead of sending it.\n`);
319
+ }
320
+ process.stdout.write(`Open it, and approve this terminal. Your code is ${bold(grant.userCode)}.\n\nWaiting...\n`);
321
+ const token = await login(client, {
322
+ label: `${process.env['USER'] ?? 'terminal'}@${process.env['HOSTNAME'] ?? 'machine'}`,
323
+ // The grant is already open, so the prompt has nothing left to say.
324
+ onPrompt: () => undefined,
325
+ existing: grant,
326
+ });
327
+ let signedInAs = null;
328
+ try {
329
+ signedInAs = (await client.me()).user.email;
330
+ }
331
+ catch {
332
+ // A token that polls but cannot read /me is odd, not fatal.
333
+ }
334
+ rememberBoard({ server, token, email: signedInAs ?? email, name });
335
+ process.stdout.write(`\nSigned in to ${name} as ${signedInAs ?? email}.\n`);
336
+ return 0;
337
+ }
247
338
  async function commandLogin(args) {
248
339
  const target = args.positional[0] ?? flagString(args, 'server') ?? DEFAULT_SERVER;
249
340
  const server = normaliseServer(target);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Installing, updating and removing the CLI itself.
3
+ *
4
+ * These live on the command rather than in a second script, because a person
5
+ * who installed with one line should not have to go and find a different URL
6
+ * to get rid of it. The installer writes a manifest listing every path it
7
+ * created and an uninstall.sh beside it; `uninstall` runs that script, so
8
+ * removal is exact and needs no network.
9
+ */
10
+ export interface Manifest {
11
+ package: string;
12
+ version: string;
13
+ installer: string;
14
+ installedAt: string;
15
+ prefix: string;
16
+ paths: string[];
17
+ }
18
+ /**
19
+ * Where the installer put things.
20
+ *
21
+ * AGENTICJOBS_HOME is set by the shim it writes, so a normal invocation knows
22
+ * without searching. The fallback covers someone who installed with npm
23
+ * directly and still expects `update` to do something sensible.
24
+ */
25
+ export declare function installDir(): string;
26
+ export declare function readManifest(): Promise<Manifest | null>;
27
+ /** The line a person can paste, used in more than one message. */
28
+ export declare function installLine(site?: string): string;
29
+ export declare function update(): Promise<number>;
30
+ export declare function uninstall(options: {
31
+ yes: boolean;
32
+ }): Promise<number>;
33
+ export declare function whereIsIt(): Promise<number>;
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Installing, updating and removing the CLI itself.
3
+ *
4
+ * These live on the command rather than in a second script, because a person
5
+ * who installed with one line should not have to go and find a different URL
6
+ * to get rid of it. The installer writes a manifest listing every path it
7
+ * created and an uninstall.sh beside it; `uninstall` runs that script, so
8
+ * removal is exact and needs no network.
9
+ */
10
+ import { execFile } from 'node:child_process';
11
+ import { readFile } from 'node:fs/promises';
12
+ import { homedir } from 'node:os';
13
+ import { join } from 'node:path';
14
+ import process from 'node:process';
15
+ import { promisify } from 'node:util';
16
+ import { bold, dim } from "./format.js";
17
+ const run = promisify(execFile);
18
+ /**
19
+ * Where the installer put things.
20
+ *
21
+ * AGENTICJOBS_HOME is set by the shim it writes, so a normal invocation knows
22
+ * without searching. The fallback covers someone who installed with npm
23
+ * directly and still expects `update` to do something sensible.
24
+ */
25
+ export function installDir() {
26
+ return process.env['AGENTICJOBS_HOME'] ?? join(homedir(), '.local', 'share', 'agenticjobs');
27
+ }
28
+ export async function readManifest() {
29
+ try {
30
+ return JSON.parse(await readFile(join(installDir(), 'manifest.json'), 'utf8'));
31
+ }
32
+ catch {
33
+ return null;
34
+ }
35
+ }
36
+ /** The line a person can paste, used in more than one message. */
37
+ export function installLine(site = 'https://agenticjobs.work') {
38
+ return `curl -fsSL ${site}/install.sh | sh`;
39
+ }
40
+ export async function update() {
41
+ const manifest = await readManifest();
42
+ if (manifest === null) {
43
+ // Not installed by the installer. Saying which of the two situations this
44
+ // is beats running an npm command against a tree we do not own.
45
+ process.stderr.write([
46
+ 'This copy was not put here by the installer, so there is nothing for it to update.',
47
+ '',
48
+ ` installed with npm: npm install -g @profullstack/agenticjobs@latest`,
49
+ ` otherwise: ${installLine()}`,
50
+ '',
51
+ ].join('\n'));
52
+ return 1;
53
+ }
54
+ process.stdout.write(`Updating ${manifest.package} (${manifest.version} installed)...\n`);
55
+ // Re-running the installer rather than `npm update` on purpose: the
56
+ // installer is the thing that knows about shims, the manifest and the
57
+ // uninstall script, and it rewrites all three.
58
+ try {
59
+ const { stdout, stderr } = await run('sh', ['-c', `curl -fsSL ${manifest.installer} | sh`], { maxBuffer: 8 * 1024 * 1024 });
60
+ process.stdout.write(stdout);
61
+ if (stderr.trim() !== '')
62
+ process.stderr.write(stderr);
63
+ return 0;
64
+ }
65
+ catch (error) {
66
+ process.stderr.write(`The update failed: ${error instanceof Error ? error.message : String(error)}\n\nRun it by hand:\n ${installLine()}\n`);
67
+ return 1;
68
+ }
69
+ }
70
+ export async function uninstall(options) {
71
+ const manifest = await readManifest();
72
+ if (manifest === null) {
73
+ process.stderr.write([
74
+ 'This copy was not put here by the installer, so there is no manifest saying what to remove.',
75
+ '',
76
+ ' installed with npm: npm uninstall -g @profullstack/agenticjobs',
77
+ '',
78
+ ].join('\n'));
79
+ return 1;
80
+ }
81
+ if (!options.yes) {
82
+ process.stdout.write([
83
+ `${bold('This will remove agenticjobs ' + manifest.version)}:`,
84
+ '',
85
+ ...manifest.paths.map((path) => ` ${path}`),
86
+ '',
87
+ dim('Your boards and tokens in ~/.config/agenticjobs are NOT touched.'),
88
+ '',
89
+ 'Run it for real with: agenticjobs uninstall --yes',
90
+ '',
91
+ ].join('\n'));
92
+ return 0;
93
+ }
94
+ const script = join(installDir(), 'uninstall.sh');
95
+ try {
96
+ const { stdout } = await run('sh', [script], { maxBuffer: 4 * 1024 * 1024 });
97
+ process.stdout.write(stdout);
98
+ return 0;
99
+ }
100
+ catch (error) {
101
+ process.stderr.write(`Could not run ${script}: ${error instanceof Error ? error.message : String(error)}\n`);
102
+ return 1;
103
+ }
104
+ }
105
+ export async function whereIsIt() {
106
+ const manifest = await readManifest();
107
+ if (manifest === null) {
108
+ process.stdout.write(`Not installed by the installer.\n ${installLine()}\n`);
109
+ return 0;
110
+ }
111
+ process.stdout.write([
112
+ `${manifest.package} ${manifest.version}`,
113
+ ` installed ${manifest.installedAt}`,
114
+ ` prefix ${manifest.prefix}`,
115
+ ...manifest.paths.map((path) => ` path ${path}`),
116
+ '',
117
+ ].join('\n'));
118
+ return 0;
119
+ }
120
+ //# sourceMappingURL=manage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manage.js","sourceRoot":"","sources":["../../src/cli/manage.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,21 @@ export interface LoginOptions {
17
17
  }) => void;
18
18
  /** Overridable so tests do not wait in real time. */
19
19
  sleep?: (ms: number) => Promise<void>;
20
+ /**
21
+ * A grant this caller already opened.
22
+ *
23
+ * Signing up needs the user code *before* the link is sent, because the link
24
+ * carries it. Without this, signup would open one grant to build the link and
25
+ * this function would immediately open a second, so the code in the mail
26
+ * would approve a terminal that is no longer listening.
27
+ */
28
+ existing?: {
29
+ deviceCode: string;
30
+ userCode: string;
31
+ verifyUrl: string;
32
+ interval: number;
33
+ expiresAt: number;
34
+ };
20
35
  }
21
36
  export declare class LoginError extends Error {
22
37
  }
@@ -11,6 +11,15 @@ export class LoginError extends Error {
11
11
  export async function login(client, options) {
12
12
  const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
13
13
  let grant;
14
+ if (options.existing !== undefined) {
15
+ grant = options.existing;
16
+ options.onPrompt({
17
+ userCode: grant.userCode,
18
+ verifyUrl: grant.verifyUrl,
19
+ expiresAt: grant.expiresAt,
20
+ });
21
+ return await poll(client, grant, options);
22
+ }
14
23
  try {
15
24
  grant = await client.startDeviceAuth(options.label);
16
25
  }
@@ -27,17 +36,21 @@ export async function login(client, options) {
27
36
  verifyUrl: grant.verifyUrl,
28
37
  expiresAt: grant.expiresAt,
29
38
  });
39
+ return poll(client, grant, options);
40
+ }
41
+ async function poll(client, grant, options) {
42
+ const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
30
43
  // The board says how often it wants to be asked. Ignoring that interval is
31
44
  // how a client gets itself rate-limited on the one request it cannot skip.
32
45
  const interval = Math.max(1, grant.interval || 2) * 1000;
33
46
  for (;;) {
34
47
  await sleep(interval);
35
- const poll = await client.pollDeviceAuth(grant.deviceCode);
36
- if (poll.status === 'approved' && typeof poll.token === 'string') {
37
- client.setToken(poll.token);
38
- return poll.token;
48
+ const answer = await client.pollDeviceAuth(grant.deviceCode);
49
+ if (answer.status === 'approved' && typeof answer.token === 'string') {
50
+ client.setToken(answer.token);
51
+ return answer.token;
39
52
  }
40
- if (poll.status === 'expired') {
53
+ if (answer.status === 'expired') {
41
54
  throw new LoginError('That code expired before it was approved. Run the command again.');
42
55
  }
43
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/client/login.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAoB,MAAM,aAAa,CAAC;AAWzD,MAAM,OAAO,UAAW,SAAQ,KAAK;CAAG;AAExC,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,MAAmB,EAAE,OAAqB;IACpE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnG,IAAI,KAA0D,CAAC;IAC/D,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,6DAA6D;QAC7D,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACtD,MAAM,IAAI,UAAU,CAClB,GAAG,MAAM,CAAC,MAAM,iFAAiF,CAClG,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO,CAAC,QAAQ,CAAC;QACf,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;IAEH,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAEzD,SAAS,CAAC;QACR,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACjE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,UAAU,CAAC,kEAAkE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/client/login.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAoB,MAAM,aAAa,CAAC;AA0BzD,MAAM,OAAO,UAAW,SAAQ,KAAK;CAAG;AAExC,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,MAAmB,EAAE,OAAqB;IACpE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnG,IAAI,KAA0D,CAAC;IAC/D,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;QACzB,OAAO,CAAC,QAAQ,CAAC;YACf,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,6DAA6D;QAC7D,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACtD,MAAM,IAAI,UAAU,CAClB,GAAG,MAAM,CAAC,MAAM,iFAAiF,CAClG,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO,CAAC,QAAQ,CAAC;QACf,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,IAAI,CACjB,MAAmB,EACnB,KAA+C,EAC/C,OAAqB;IAErB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACnG,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAEzD,SAAS,CAAC;QACR,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,UAAU,CAAC,kEAAkE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;AACH,CAAC"}
package/dist/config.d.ts CHANGED
@@ -28,7 +28,7 @@ export interface Config {
28
28
  }
29
29
  export declare function loadConfig(env?: NodeJS.ProcessEnv): Config;
30
30
  /** Kept in step with package.json by the release script. */
31
- export declare const VERSION = "0.1.1";
31
+ export declare const VERSION = "0.2.0";
32
32
  export declare const SOFTWARE_NAME = "agenticjobs";
33
33
  /**
34
34
  * Tokens are stored as a hash of what was handed out, so this is the only
package/dist/config.js CHANGED
@@ -47,7 +47,7 @@ export function loadConfig(env = process.env) {
47
47
  };
48
48
  }
49
49
  /** Kept in step with package.json by the release script. */
50
- export const VERSION = '0.1.1';
50
+ export const VERSION = '0.2.0';
51
51
  export const SOFTWARE_NAME = 'agenticjobs';
52
52
  /**
53
53
  * Tokens are stored as a hash of what was handed out, so this is the only
@@ -8,7 +8,7 @@
8
8
  * response says about where it came from.
9
9
  */
10
10
  import { type InstanceDescriptor } from '../schema/instance.ts';
11
- export declare const USER_AGENT = "agenticjobs/0.1.1 (+https://agenticjobs.work)";
11
+ export declare const USER_AGENT = "agenticjobs/0.2.0 (+https://agenticjobs.work)";
12
12
  export declare class FetchProblem extends Error {
13
13
  }
14
14
  export interface FetchOptions {
@@ -14,7 +14,7 @@
14
14
  * listings need a key is a job board nobody's agent will ever read.
15
15
  */
16
16
  import { Hono } from 'hono';
17
- import { approveDeviceCode, createSession, ensureUser, normaliseEmail, pollDeviceAuth, requireAdmin, startDeviceAuth, startMagicLink, } from "../../core/auth.js";
17
+ import { approveDeviceCode, createSession, ensureUser, normaliseEmail, pollDeviceAuth, requireAdmin, safeRedirect, startDeviceAuth, startMagicLink, } from "../../core/auth.js";
18
18
  import { createApplication, listApplications, listDraftApplications, recentApplicationCount, submitApplication, validateApplication, } from "../../core/applications.js";
19
19
  import { countJobs, createJob, getJobBySlug, normaliseInput, searchJobs, setStatus, } from "../../core/jobs.js";
20
20
  import { createOrg, getOrgBySlug, isMember, listOrgs, listOrgsForUser } from "../../core/orgs.js";
@@ -431,7 +431,12 @@ export function apiRoutes() {
431
431
  const email = normaliseEmail(body['email']);
432
432
  if (email === null)
433
433
  return fail(c, 400, 'invalid', 'That is not an email address.');
434
- const link = await startMagicLink(pool, email, null);
434
+ // A terminal signing up asks for the link to land on /device with its code
435
+ // already filled in, so one click both creates the account and approves the
436
+ // terminal. safeRedirect keeps this to same-origin paths: an open redirect
437
+ // on a sign-in link is a phish.
438
+ const redirect = safeRedirect(body['redirect']);
439
+ const link = await startMagicLink(pool, email, redirect);
435
440
  const url = `${config.publicUrl}/auth/callback?token=${link.token}`;
436
441
  // Without SMTP the link is logged rather than silently dropped, which is
437
442
  // what makes a laptop run work at all.