@gojinko/cli 2.22.1 → 2.23.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.
Files changed (71) hide show
  1. package/README.md +21 -6
  2. package/SKILL.md +9 -9
  3. package/dist/commands/agent-pay.d.ts.map +1 -1
  4. package/dist/commands/agent-pay.js +2 -1
  5. package/dist/commands/agent-pay.js.map +1 -1
  6. package/dist/commands/auth/index.d.ts.map +1 -1
  7. package/dist/commands/auth/index.js +51 -83
  8. package/dist/commands/auth/index.js.map +1 -1
  9. package/dist/commands/auth/prompt.d.ts +0 -9
  10. package/dist/commands/auth/prompt.d.ts.map +1 -1
  11. package/dist/commands/auth/prompt.js +0 -18
  12. package/dist/commands/auth/prompt.js.map +1 -1
  13. package/dist/commands/checkout.d.ts.map +1 -1
  14. package/dist/commands/checkout.js +3 -1
  15. package/dist/commands/checkout.js.map +1 -1
  16. package/dist/commands/exchange.d.ts.map +1 -1
  17. package/dist/commands/exchange.js +16 -18
  18. package/dist/commands/exchange.js.map +1 -1
  19. package/dist/commands/find-dates.d.ts.map +1 -1
  20. package/dist/commands/find-dates.js +2 -1
  21. package/dist/commands/find-dates.js.map +1 -1
  22. package/dist/commands/find-destination.d.ts.map +1 -1
  23. package/dist/commands/find-destination.js +2 -1
  24. package/dist/commands/find-destination.js.map +1 -1
  25. package/dist/commands/flight-calendar.d.ts.map +1 -1
  26. package/dist/commands/flight-calendar.js +2 -1
  27. package/dist/commands/flight-calendar.js.map +1 -1
  28. package/dist/commands/flight-search.d.ts.map +1 -1
  29. package/dist/commands/flight-search.js +2 -1
  30. package/dist/commands/flight-search.js.map +1 -1
  31. package/dist/commands/get-booking.d.ts.map +1 -1
  32. package/dist/commands/get-booking.js +2 -1
  33. package/dist/commands/get-booking.js.map +1 -1
  34. package/dist/commands/ground-search.d.ts +62 -0
  35. package/dist/commands/ground-search.d.ts.map +1 -0
  36. package/dist/commands/ground-search.js +236 -0
  37. package/dist/commands/ground-search.js.map +1 -0
  38. package/dist/commands/hotel-cancel.d.ts.map +1 -1
  39. package/dist/commands/hotel-cancel.js +2 -1
  40. package/dist/commands/hotel-cancel.js.map +1 -1
  41. package/dist/commands/hotel-search.d.ts +30 -0
  42. package/dist/commands/hotel-search.d.ts.map +1 -1
  43. package/dist/commands/hotel-search.js +83 -47
  44. package/dist/commands/hotel-search.js.map +1 -1
  45. package/dist/commands/lowest-fare.d.ts.map +1 -1
  46. package/dist/commands/lowest-fare.js +2 -1
  47. package/dist/commands/lowest-fare.js.map +1 -1
  48. package/dist/commands/price-monitoring.d.ts.map +1 -1
  49. package/dist/commands/price-monitoring.js +2 -1
  50. package/dist/commands/price-monitoring.js.map +1 -1
  51. package/dist/commands/refund.d.ts +7 -27
  52. package/dist/commands/refund.d.ts.map +1 -1
  53. package/dist/commands/refund.js +17 -52
  54. package/dist/commands/refund.js.map +1 -1
  55. package/dist/commands/schema.d.ts.map +1 -1
  56. package/dist/commands/schema.js +9 -3
  57. package/dist/commands/schema.js.map +1 -1
  58. package/dist/commands/select-ancillaries.d.ts.map +1 -1
  59. package/dist/commands/select-ancillaries.js +2 -1
  60. package/dist/commands/select-ancillaries.js.map +1 -1
  61. package/dist/commands/shared.d.ts +14 -1
  62. package/dist/commands/shared.d.ts.map +1 -1
  63. package/dist/commands/shared.js +19 -0
  64. package/dist/commands/shared.js.map +1 -1
  65. package/dist/commands/trip.d.ts.map +1 -1
  66. package/dist/commands/trip.js +2 -1
  67. package/dist/commands/trip.js.map +1 -1
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +2 -0
  70. package/dist/index.js.map +1 -1
  71. package/package.json +3 -4
package/README.md CHANGED
@@ -10,21 +10,28 @@ npm install -g @gojinko/cli
10
10
 
11
11
  ## Authentication
12
12
 
13
+ Jinko authenticates with a **tenant API key** (`jnk_...`). Get one from
14
+ **dashboard.gojinko.com → Developers → API keys**.
15
+
13
16
  ```bash
14
- # API key (recommended for agents, CI/CD)
15
- export JINKO_API_KEY=jnk_YOUR_KEY
17
+ # Store an API key (recommended)
18
+ jinko auth login --key jnk_YOUR_KEY
16
19
 
17
- # OAuth (interactive humans — opens a browser)
20
+ # Or interactively — prompts for the key
18
21
  jinko auth login
22
+
23
+ # Or pass it via the environment (agents, CI/CD)
24
+ export JINKO_API_KEY=jnk_YOUR_KEY
19
25
  ```
20
26
 
21
- Create API keys at https://builders.gojinko.com. OAuth tokens auto-refresh.
27
+ > **OAuth sign-in is deprecated** and no longer supported for the data plane.
28
+ > Use an API key.
22
29
 
23
30
  ### Auth commands
24
31
 
25
32
  ```bash
26
- jinko auth login # Interactive login
27
- jinko auth login --key jnk_… # Store an API key
33
+ jinko auth login --key jnk_… # Store an API key (recommended)
34
+ jinko auth login # Interactive — prompts for an API key
28
35
  jinko auth status # Show current method, expiry
29
36
  jinko auth logout # Clear stored credentials
30
37
  ```
@@ -60,6 +67,7 @@ Prod and sandbox keys are stored separately in `~/.jinko/config.yaml`. Resolutio
60
67
  | `price-monitoring` | Cache-only price snapshot for a fixed OD + dates — intended for scheduled polling. Semantically distinct from `flight-search` (one-shot live shopping). |
61
68
  | `hotel-search` | Live hotel search by city / query / geo / hotel-ids. Returns hotels with rooms, rates, `htl_*` offer tokens. |
62
69
  | `hotel-details` | Lazy lookup for a specific hotel — images, amenities, location detail. Pairs with `hotel-search` when the user wants the full picture before booking. |
70
+ | `ground-search` | Live rail / coach / ferry search. Each result's `id` is itself the `trip_item_token` — no prefix. |
63
71
  | `trip` | Create/update a trip, add flight or hotel items, set travelers |
64
72
 
65
73
  ### Legacy
@@ -119,6 +127,13 @@ jinko flight-search --offer-token <offer_token>
119
127
  # Live hotel search (returns htl_* tokens that plug into trip the same way as flight tokens)
120
128
  jinko hotel-search --city-name "Paris" --country-code FR --checkin 2026-07-15 --checkout 2026-07-18 --adults 2
121
129
 
130
+ # Live ground search — rail, coach, ferry. Codes are ISO-country + city (GBLON), NOT IATA (LON).
131
+ jinko ground-search --departure-city GBLON --arrival-city FRPAR --date 2026-08-28 --adults 2 --currency GBP
132
+ # --currency is currently REQUIRED despite the schema marking it optional:
133
+ # without it the provider rejects the search and you get an unhelpful "Please retry."
134
+ # Each connection's id IS the trip item token — pass it through unmodified:
135
+ jinko trip --trip-item-token <connection_id>
136
+
122
137
  # Multi-domain cart: add flight + hotel to the same trip → one Stripe checkout
123
138
  jinko trip --trip-item-token <flight_token> # returns trip_id
124
139
  jinko trip --trip-id <trip_id> --trip-item-token <htl_*>
package/SKILL.md CHANGED
@@ -4,21 +4,21 @@ You are using `jinko`, a CLI for the Jinko developer platform. A trip can be pai
4
4
 
5
5
  ## Authentication
6
6
 
7
- ### Option 1: API Key (recommended for agents and CI/CD)
7
+ Jinko authenticates with a **tenant API key** (`jnk_...`). Get one from
8
+ **dashboard.gojinko.com → Developers → API keys**.
8
9
 
9
10
  ```
11
+ # Store the key (recommended)
12
+ jinko auth login --key jnk_...
13
+
14
+ # Or via the environment (agents, CI/CD)
10
15
  export JINKO_API_KEY=jnk_...
11
16
  ```
12
17
 
13
- Create keys at https://builders.gojinko.com.
14
-
15
- ### Option 2: OAuth (interactive humans)
16
-
17
- ```
18
- jinko auth login
19
- ```
18
+ `jinko auth login` (no flag) prompts for the key interactively and stores it in
19
+ `~/.jinko/config.yaml`.
20
20
 
21
- Opens a browser for WorkOS device flow login. Token is stored in `~/.jinko/config.yaml`.
21
+ > OAuth sign-in is deprecated and no longer supported — use an API key.
22
22
 
23
23
  ## Tools
24
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"agent-pay.d.ts","sourceRoot":"","sources":["../../src/commands/agent-pay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsBnE"}
1
+ {"version":3,"file":"agent-pay.d.ts","sourceRoot":"","sources":["../../src/commands/agent-pay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuBnE"}
@@ -1,4 +1,4 @@
1
- import { withClient, output } from './shared.js';
1
+ import { withClient, output, userIntentOption } from './shared.js';
2
2
  export function registerAgentPaymentCommands(program) {
3
3
  const agent = program
4
4
  .command('agent-pay')
@@ -10,6 +10,7 @@ export function registerAgentPaymentCommands(program) {
10
10
  .description('Present a trip ID and a Shared Payment Token: the BFF schedules the agent fulfillment and redeems the token to authorize the booking server-side, advancing it to fulfillment. If the issuer requires customer action (3DS) the response carries a checkout_url fallback instead of confirming.')
11
11
  .requiredOption('--trip-id <id>', 'trip ID (from the trip command) [required]')
12
12
  .requiredOption('--token <spt>', 'Shared Payment Token (spt_...) [required]')
13
+ .addOption(userIntentOption())
13
14
  .action(withClient(async (client, globals, opts) => {
14
15
  const response = await client.submitAgentPayment(opts.tripId, opts.token);
15
16
  output(response, { format: globals.format });
@@ -1 +1 @@
1
- {"version":3,"file":"agent-pay.js","sourceRoot":"","sources":["../../src/commands/agent-pay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,UAAU,4BAA4B,CAAC,OAAgB;IAC3D,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,WAAW,CAAC;SACpB,OAAO,CAAC,gFAAgF,CAAC;SACzF,WAAW,CACV,0ZAA0Z,CAC3Z,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,OAAO,CAAC,mEAAmE,CAAC;SAC5E,WAAW,CACV,iSAAiS,CAClS;SACA,cAAc,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;SAC9E,cAAc,CAAC,eAAe,EAAE,2CAA2C,CAAC;SAC5E,MAAM,CACL,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"agent-pay.js","sourceRoot":"","sources":["../../src/commands/agent-pay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEnE,MAAM,UAAU,4BAA4B,CAAC,OAAgB;IAC3D,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,WAAW,CAAC;SACpB,OAAO,CAAC,gFAAgF,CAAC;SACzF,WAAW,CACV,0ZAA0Z,CAC3Z,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,OAAO,CAAC,mEAAmE,CAAC;SAC5E,WAAW,CACV,iSAAiS,CAClS;SACA,cAAc,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;SAC9E,cAAc,CAAC,eAAe,EAAE,2CAA2C,CAAC;SAC5E,SAAS,CAAC,gBAAgB,EAAE,CAAC;SAC7B,MAAM,CACL,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6K3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AA0C5C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+G3D"}
@@ -1,100 +1,66 @@
1
- import { resolveAuth, resolveEnvironment, writeEnvAuth, clearAuthConfig, clearCliSession, readConfigFile, CONFIG_FILE, requestDeviceAuthorization, pollForToken, OAuthError, } from '@gojinko/api-client';
1
+ import { Option } from 'commander';
2
+ import { resolveAuth, resolveEnvironment, writeEnvAuth, clearAuthConfig, clearCliSession, readConfigFile, CONFIG_FILE, } from '@gojinko/api-client';
2
3
  import { output, outputError } from '../shared.js';
3
4
  import { getGlobalOptions } from '../../config/config.js';
4
- import { promptChoice, promptText } from './prompt.js';
5
+ import { promptText } from './prompt.js';
6
+ // The single documented way to authenticate the Jinko data plane. OAuth
7
+ // sign-in was retired, so every "how do I authenticate?" message points here.
8
+ const API_KEY_SOURCE = 'dashboard.gojinko.com → Developers → API keys';
9
+ /**
10
+ * Validate a `jnk_` API key and persist it to the environment's credential
11
+ * slot. Exits with code 3 on a missing/malformed key. `writeEnvAuth` deep-merges
12
+ * a fresh config object, so the on-disk config is replaced, never mutated.
13
+ */
14
+ async function saveApiKey(env, token, globals) {
15
+ if (!token) {
16
+ outputError({ code: 'INVALID_TOKEN', message: `No API key provided. Get one from ${API_KEY_SOURCE}.` }, globals);
17
+ process.exit(3);
18
+ }
19
+ if (!token.startsWith('jnk_')) {
20
+ outputError({ code: 'INVALID_TOKEN', message: `API key must start with "jnk_". Get one from ${API_KEY_SOURCE}.` }, globals);
21
+ process.exit(3);
22
+ }
23
+ await writeEnvAuth(env, { api_key: token });
24
+ output({
25
+ status: 'ok',
26
+ method: 'api_key',
27
+ environment: env,
28
+ message: `API key saved to ${CONFIG_FILE} (environment: ${env})`,
29
+ }, { format: globals.format });
30
+ }
5
31
  export function registerAuthCommands(program) {
6
32
  const auth = program
7
33
  .command('auth')
8
34
  .description('Manage authentication.');
9
35
  auth
10
36
  .command('login')
11
- .description('Authenticate with Jinko (OAuth or API key).')
12
- .option('--key <token>', 'API key (jnk_...) — skip interactive prompt')
37
+ .description(`Authenticate with a Jinko API key (jnk_...). Get one from ${API_KEY_SOURCE}.`)
38
+ .option('--key <token>', 'API key (jnk_...) — skip the interactive prompt')
39
+ // Hidden escape hatch. OAuth sign-in is deprecated and no longer works for
40
+ // the data plane; this flag exists only so anyone reaching for the old flow
41
+ // gets a clear signpost to API keys instead of a cryptic "unknown option".
42
+ .addOption(new Option('--oauth', 'Deprecated — OAuth sign-in is no longer supported').hideHelp())
13
43
  .action(async (opts, cmd) => {
14
44
  const globals = getGlobalOptions(cmd);
15
45
  // Credentials are stored per-environment so prod and sandbox keys coexist.
16
46
  const env = await resolveEnvironment(globals.environment);
17
- // Fast path: --key flag → direct API key save
18
- if (opts['key']) {
19
- const token = opts['key'];
20
- if (!token.startsWith('jnk_')) {
21
- outputError({ code: 'INVALID_TOKEN', message: 'API key must start with "jnk_". Get one from the Jinko developer platform.' }, globals);
22
- process.exit(3);
23
- }
24
- await writeEnvAuth(env, { api_key: token });
25
- output({
26
- status: 'ok',
27
- method: 'api_key',
28
- environment: env,
29
- message: `API key saved to ${CONFIG_FILE} (environment: ${env})`,
30
- }, { format: globals.format });
31
- return;
47
+ // Deprecated OAuth path — do not run the device flow; point at API keys.
48
+ if (opts['oauth']) {
49
+ outputError({
50
+ code: 'OAUTH_DEPRECATED',
51
+ message: `OAuth sign-in is deprecated and no longer supported. Get an API key from ${API_KEY_SOURCE}, then run \`jinko auth login --key jnk_...\`.`,
52
+ }, globals);
53
+ process.exit(3);
32
54
  }
33
- // Interactive: choose auth method
34
- const method = await promptChoice('How would you like to authenticate?', [
35
- { label: 'OAuth — sign in with browser (recommended)', value: 'oauth' },
36
- { label: 'API key — paste a jnk_... token', value: 'api_key' },
37
- ]);
38
- if (method === 'api_key') {
39
- const token = await promptText('Enter your Jinko API key (jnk_...): ');
40
- if (!token) {
41
- outputError({ code: 'INVALID_TOKEN', message: 'No API key provided.' }, globals);
42
- process.exit(3);
43
- }
44
- if (!token.startsWith('jnk_')) {
45
- outputError({ code: 'INVALID_TOKEN', message: 'API key must start with "jnk_". Get one from the Jinko developer platform.' }, globals);
46
- process.exit(3);
47
- }
48
- await writeEnvAuth(env, { api_key: token });
49
- output({
50
- status: 'ok',
51
- method: 'api_key',
52
- environment: env,
53
- message: `API key saved to ${CONFIG_FILE} (environment: ${env})`,
54
- }, { format: globals.format });
55
+ // Fast path: --key flag → save without prompting.
56
+ if (opts['key']) {
57
+ await saveApiKey(env, opts['key'], globals);
55
58
  return;
56
59
  }
57
- // OAuth Device Authorization Flow
58
- try {
59
- console.log('Requesting device authorization...\n');
60
- const device = await requestDeviceAuthorization();
61
- console.log(`Visit this URL to authenticate:\n`);
62
- console.log(` ${device.verification_uri_complete}\n`);
63
- console.log(`Or go to ${device.verification_uri} and enter code: ${device.user_code}\n`);
64
- // Try to open browser automatically
65
- try {
66
- const open = await import('open');
67
- await open.default(device.verification_uri_complete);
68
- }
69
- catch {
70
- // Browser open failed — URL is already printed above
71
- }
72
- console.log('Waiting for approval...');
73
- const tokens = await pollForToken(device.device_code, {
74
- intervalSeconds: device.interval,
75
- expiresIn: device.expires_in,
76
- });
77
- await writeEnvAuth(env, {
78
- oauth: {
79
- access_token: tokens.access_token,
80
- refresh_token: tokens.refresh_token,
81
- expires_at: tokens.expires_at,
82
- },
83
- });
84
- output({
85
- status: 'ok',
86
- method: 'oauth',
87
- environment: env,
88
- message: `Authenticated successfully. Credentials saved to ${CONFIG_FILE} (environment: ${env})`,
89
- }, { format: globals.format });
90
- }
91
- catch (error) {
92
- if (error instanceof OAuthError) {
93
- outputError({ code: 'OAUTH_ERROR', message: error.message }, globals);
94
- process.exit(3);
95
- }
96
- throw error;
97
- }
60
+ // Interactive: API keys are the only supported auth, so prompt for one
61
+ // directly — no method-choice menu.
62
+ const token = await promptText('Enter your Jinko API key (jnk_...): ');
63
+ await saveApiKey(env, token, globals);
98
64
  });
99
65
  auth
100
66
  .command('logout')
@@ -143,7 +109,9 @@ export function registerAuthCommands(program) {
143
109
  token: masked,
144
110
  source,
145
111
  };
146
- // Add expiry info for OAuth — prefer the per-env slot, fall back to legacy top-level.
112
+ // Add expiry info for OAuth — prefer the per-env slot, fall back to legacy
113
+ // top-level. OAuth login is deprecated; this branch only fires for
114
+ // pre-existing OAuth credentials still present in ~/.jinko/config.yaml.
147
115
  if (auth.method === 'oauth' && source === 'config') {
148
116
  const config = await readConfigFile();
149
117
  const oauth = config?.environments?.[env]?.oauth ?? config?.oauth;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,5 @@
1
- interface Choice<T> {
2
- readonly label: string;
3
- readonly value: T;
4
- }
5
- /**
6
- * Interactive numbered-menu prompt. Returns selected value.
7
- */
8
- export declare function promptChoice<T>(question: string, choices: ReadonlyArray<Choice<T>>): Promise<T>;
9
1
  /**
10
2
  * Simple text prompt. Returns trimmed input.
11
3
  */
12
4
  export declare function promptText(question: string): Promise<string>;
13
- export {};
14
5
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/prompt.ts"],"names":[],"mappings":"AAEA,UAAU,MAAM,CAAC,CAAC;IAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAgBrG;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlE"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/prompt.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlE"}
@@ -1,22 +1,4 @@
1
1
  import { createInterface } from 'node:readline';
2
- /**
3
- * Interactive numbered-menu prompt. Returns selected value.
4
- */
5
- export async function promptChoice(question, choices) {
6
- const rl = createInterface({ input: process.stdin, output: process.stdout });
7
- const menu = choices.map((c, i) => ` ${i + 1}) ${c.label}`).join('\n');
8
- return new Promise((resolve, reject) => {
9
- rl.question(`${question}\n${menu}\n\nChoice: `, (answer) => {
10
- rl.close();
11
- const index = parseInt(answer.trim(), 10) - 1;
12
- if (isNaN(index) || index < 0 || index >= choices.length) {
13
- reject(new Error('Invalid choice'));
14
- return;
15
- }
16
- resolve(choices[index].value);
17
- });
18
- });
19
- }
20
2
  /**
21
3
  * Simple text prompt. Returns trimmed input.
22
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/commands/auth/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAOhD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,QAAgB,EAAE,OAAiC;IACvF,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE7E,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAExE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,KAAK,IAAI,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE;YACzD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACrC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/commands/auth/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACrC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuB9D"}
1
+ {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyB9D"}
@@ -1,10 +1,11 @@
1
- import { withClient, output } from './shared.js';
1
+ import { withClient, output, userIntentOption } from './shared.js';
2
2
  export function registerCheckoutCommand(program) {
3
3
  program
4
4
  .command('checkout')
5
5
  .summary('Checkout a trip — returns a checkout URL the user opens to pay, plus agent payment params')
6
6
  .description('Finalize a finalized trip. Use it once the trip is set and traveler details are filled in, for example after the user picks a Paris to Tokyo round trip and adds a hotel for the stay. The response carries two payment paths: `checkout_url` is what a human opens in a browser to pay, and `agent_spt_params` (max amount, currency, profile) is what an agent uses to mint a Shared Payment Token and pay programmatically via `agent-pay submit`.')
7
7
  .requiredOption('--trip-id <id>', 'trip ID (from trip command) [required]')
8
+ .addOption(userIntentOption())
8
9
  .action(withClient(async (client, globals, opts) => {
9
10
  const response = await client.checkout(opts.tripId);
10
11
  output(response, { format: globals.format });
@@ -15,6 +16,7 @@ export function registerCheckoutCommand(program) {
15
16
  .command('book', { hidden: true })
16
17
  .summary('DEPRECATED — use `checkout`. Alias retained for backward compatibility.')
17
18
  .requiredOption('--trip-id <id>', 'trip ID (from trip command) [required]')
19
+ .addOption(userIntentOption())
18
20
  .action(withClient(async (client, globals, opts) => {
19
21
  const response = await client.book(opts.tripId);
20
22
  output(response, { format: globals.format });
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,OAAO,CAAC,2FAA2F,CAAC;SACpG,WAAW,CACV,ubAAub,CACxb;SACA,cAAc,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;SAC1E,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC,CAAC;IAEN,0EAA0E;IAC1E,gEAAgE;IAChE,OAAO;SACJ,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SACjC,OAAO,CAAC,yEAAyE,CAAC;SAClF,cAAc,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;SAC1E,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEnE,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,OAAO,CAAC,2FAA2F,CAAC;SACpG,WAAW,CACV,ubAAub,CACxb;SACA,cAAc,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;SAC1E,SAAS,CAAC,gBAAgB,EAAE,CAAC;SAC7B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC,CAAC;IAEN,0EAA0E;IAC1E,gEAAgE;IAChE,OAAO;SACJ,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SACjC,OAAO,CAAC,yEAAyE,CAAC;SAClF,cAAc,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;SAC1E,SAAS,CAAC,gBAAgB,EAAE,CAAC;SAC7B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"exchange.d.ts","sourceRoot":"","sources":["../../src/commands/exchange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuF9D"}
1
+ {"version":3,"file":"exchange.d.ts","sourceRoot":"","sources":["../../src/commands/exchange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqF9D"}
@@ -1,5 +1,5 @@
1
- import { withClient, output } from './shared.js';
2
- import { buildAuthFields, validateAuthFields } from './refund.js';
1
+ import { withClient, output, userIntentOption } from './shared.js';
2
+ import { buildAuthFields } from './refund.js';
3
3
  export function registerExchangeCommand(program) {
4
4
  const exchange = program
5
5
  .command('exchange')
@@ -8,12 +8,12 @@ export function registerExchangeCommand(program) {
8
8
  .command('shop')
9
9
  .summary('Shop for flight exchange alternatives')
10
10
  .description('Shop for flight exchange alternatives.')
11
- .option('--booking-ref <ref>', 'Jinko booking reference (guest auth, requires --last-name) [required: guest mode]')
12
- .option('--last-name <name>', 'Last name of the primary traveler (guest auth) [required: guest mode]')
13
- .option('--order-id <id>', 'DevPlatform order ID (authenticated auth) [required: authenticated mode]')
11
+ .requiredOption('--booking-ref <ref>', 'Jinko booking reference [required]')
12
+ .requiredOption('--last-name <name>', 'Last name of the primary traveler [required]')
14
13
  .option('--provider <provider>', 'override provider hint')
15
14
  .option('--ticket-numbers <numbers...>', 'one or more ticket numbers')
16
15
  .option('--preferred-departure-date <date>', 'preferred departure date (YYYY-MM-DD)')
16
+ .addOption(userIntentOption())
17
17
  .action(withClient(async (client, globals, opts) => {
18
18
  const response = await client.exchangeShop({
19
19
  ...buildAuthFields(opts),
@@ -26,11 +26,11 @@ export function registerExchangeCommand(program) {
26
26
  .summary('Price a specific exchange offer')
27
27
  .description('Price a specific exchange offer.')
28
28
  .requiredOption('--offer-id <id>', 'exchange offer ID from shop response [required]')
29
- .option('--booking-ref <ref>', 'Jinko booking reference (guest auth, requires --last-name) [required: guest mode]')
30
- .option('--last-name <name>', 'Last name of the primary traveler (guest auth) [required: guest mode]')
31
- .option('--order-id <id>', 'DevPlatform order ID (authenticated auth) [required: authenticated mode]')
29
+ .requiredOption('--booking-ref <ref>', 'Jinko booking reference [required]')
30
+ .requiredOption('--last-name <name>', 'Last name of the primary traveler [required]')
32
31
  .option('--provider <provider>', 'override provider hint')
33
32
  .option('--ticket-numbers <numbers...>', 'one or more ticket numbers')
33
+ .addOption(userIntentOption())
34
34
  .action(withClient(async (client, globals, opts) => {
35
35
  const response = await client.exchangePrice({
36
36
  ...buildAuthFields(opts),
@@ -44,11 +44,11 @@ export function registerExchangeCommand(program) {
44
44
  .description('Execute a flight exchange.')
45
45
  .requiredOption('--offer-id <id>', 'exchange offer ID [required]')
46
46
  .requiredOption('--session-reference <ref>', 'session reference from price response [required]')
47
- .option('--booking-ref <ref>', 'Jinko booking reference (guest auth, requires --last-name) [required: guest mode]')
48
- .option('--last-name <name>', 'Last name of the primary traveler (guest auth) [required: guest mode]')
49
- .option('--order-id <id>', 'DevPlatform order ID (authenticated auth) [required: authenticated mode]')
47
+ .requiredOption('--booking-ref <ref>', 'Jinko booking reference [required]')
48
+ .requiredOption('--last-name <name>', 'Last name of the primary traveler [required]')
50
49
  .option('--provider <provider>', 'override provider hint')
51
50
  .option('--ticket-numbers <numbers...>', 'one or more ticket numbers')
51
+ .addOption(userIntentOption())
52
52
  .action(withClient(async (client, globals, opts) => {
53
53
  const response = await client.exchangeCommit({
54
54
  ...buildAuthFields(opts),
@@ -61,16 +61,14 @@ export function registerExchangeCommand(program) {
61
61
  .command('status')
62
62
  .summary('Check the status of an exchange')
63
63
  .description('Poll the status of an in-flight exchange.')
64
- .option('--booking-ref <ref>', 'Jinko booking reference (guest auth, requires --last-name) [required: guest mode]')
65
- .option('--last-name <name>', 'Last name of the primary traveler (guest auth) [required: guest mode]')
66
- .option('--order-id <id>', 'DevPlatform order ID (authenticated auth) [required: authenticated mode]')
64
+ .requiredOption('--booking-ref <ref>', 'Jinko booking reference [required]')
65
+ .requiredOption('--last-name <name>', 'Last name of the primary traveler [required]')
67
66
  .option('--provider <provider>', 'override provider hint')
67
+ .addOption(userIntentOption())
68
68
  .action(withClient(async (client, globals, opts) => {
69
- validateAuthFields(opts);
70
69
  const response = await client.exchangeStatus({
71
- ...(opts.orderId && { order_id: opts.orderId }),
72
- ...(opts.bookingRef && { booking_ref: opts.bookingRef }),
73
- ...(opts.lastName && { last_name: opts.lastName }),
70
+ booking_ref: opts.bookingRef,
71
+ last_name: opts.lastName,
74
72
  ...(opts.provider && { provider: opts.provider }),
75
73
  });
76
74
  output(response, { format: globals.format });
@@ -1 +1 @@
1
- {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/commands/exchange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/commands/exchange.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"find-dates.d.ts","sourceRoot":"","sources":["../../src/commands/find-dates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK7D,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQvC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,GACrB,iBAAiB,CAmBnB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuG/D"}
1
+ {"version":3,"file":"find-dates.d.ts","sourceRoot":"","sources":["../../src/commands/find-dates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK7D,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQvC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,GACrB,iBAAiB,CAmBnB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwG/D"}
@@ -1,4 +1,4 @@
1
- import { withClient, output, resolveDeprecatedFlag } from "./shared.js";
1
+ import { withClient, output, resolveDeprecatedFlag, userIntentOption } from "./shared.js";
2
2
  const DEFAULT_STAY_DAYS = 7;
3
3
  /** Expand a YYYY-MM month into a full-month [start, end] range, or null if malformed. */
4
4
  export function monthToRange(month) {
@@ -50,6 +50,7 @@ export function registerFindDatesCommand(program) {
50
50
  .option("--cabin-class <class>", "cabin class: economy, premium_economy, business, first (default: economy). JSON: `cabin_class`.")
51
51
  .option("--direct-only", "only direct flights. JSON: `direct_only`.")
52
52
  .option("--limit <n>", "max date-pairs to return (1-100, default 20). JSON: `limit`.")
53
+ .addOption(userIntentOption())
53
54
  // Deprecated aliases — Phase 1 transition (JIN-665), remove in next major.
54
55
  .option("--from <origin>", "DEPRECATED: use --origins.")
55
56
  .option("--to <destination>", "DEPRECATED: use --destinations.")
@@ -1 +1 @@
1
- {"version":3,"file":"find-dates.js","sourceRoot":"","sources":["../../src/commands/find-dates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-dates.js","sourceRoot":"","sources":["../../src/commands/find-dates.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"find-destination.d.ts","sourceRoot":"","sources":["../../src/commands/find-destination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,MAAM,WAAW,mBAAmB;IAElC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA8CD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAiCtE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkEnF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyIrE"}
1
+ {"version":3,"file":"find-destination.d.ts","sourceRoot":"","sources":["../../src/commands/find-destination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,MAAM,WAAW,mBAAmB;IAElC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA8CD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAiCtE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkEnF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0IrE"}
@@ -1,4 +1,4 @@
1
- import { withClient, output } from './shared.js';
1
+ import { withClient, output, userIntentOption } from './shared.js';
2
2
  const SUMMARY = 'Discover travel destinations accessible from your departure airports';
3
3
  const DESCRIPTION = 'Surface inspiration when a user knows where they want to leave from but not where they want to go. ' +
4
4
  'Typical prompts include "cheap beach getaways from New York" or "weekend trips out of London under €200". ' +
@@ -199,6 +199,7 @@ export function registerFindDestinationCommand(program) {
199
199
  .option('--offset <n>', 'Pagination offset (default 0). JSON: `offset`.')
200
200
  .option('--flights-per-destination <n>', 'Itineraries per destination (1-10, default 1). JSON: `flights_per_destination`.')
201
201
  .option('--sort-by <strategy>', '`lowest` or `recommendation` (default: `lowest`). JSON: `sort_by`.', 'lowest')
202
+ .addOption(userIntentOption())
202
203
  // Deprecated aliases — Phase 1 transition, remove in next major.
203
204
  .option('--from <origins...>', 'DEPRECATED: use --origins.')
204
205
  .option('--date <date>', 'DEPRECATED: use --departure-dates.')