@hongymagic/q 0.6.1 → 0.7.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 (3) hide show
  1. package/README.md +2 -1
  2. package/dist/q.js +26 -7
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -60,6 +60,7 @@ echo "how do I restart docker" | q
60
60
  | `-p, --provider <name>` | Override the default provider |
61
61
  | `-m, --model <id>` | Override the default model |
62
62
  | `--copy` | Copy answer to clipboard |
63
+ | `--no-copy` | Disable copy (overrides config) |
63
64
  | `-h, --help` | Show help message |
64
65
 
65
66
  ### Commands
@@ -76,7 +77,7 @@ Config is loaded from (later overrides earlier):
76
77
 
77
78
  1. `~/.config/q/config.toml`
78
79
  2. `./config.toml` (project-specific)
79
- 3. Environment: `Q_PROVIDER`, `Q_MODEL`
80
+ 3. Environment: `Q_PROVIDER`, `Q_MODEL`, `Q_COPY`
80
81
 
81
82
  See [config.example.toml](config.example.toml) for all options.
82
83
 
package/dist/q.js CHANGED
@@ -14522,7 +14522,7 @@ import { parseArgs } from "node:util";
14522
14522
  // package.json
14523
14523
  var package_default = {
14524
14524
  name: "@hongymagic/q",
14525
- version: "0.6.1",
14525
+ version: "0.7.0",
14526
14526
  description: "Quick AI answers from the command line",
14527
14527
  main: "dist/q.js",
14528
14528
  type: "module",
@@ -14686,6 +14686,7 @@ OPTIONS:
14686
14686
  -p, --provider <name> Override the default provider
14687
14687
  -m, --model <id> Override the default model
14688
14688
  --copy Copy answer to clipboard
14689
+ --no-copy Disable copy (overrides config)
14689
14690
  --debug Enable debug logging to stderr
14690
14691
  -h, --help Show this help message
14691
14692
  -v, --version Show version
@@ -14693,12 +14694,13 @@ OPTIONS:
14693
14694
  ENVIRONMENT:
14694
14695
  Q_PROVIDER Override default provider
14695
14696
  Q_MODEL Override default model
14697
+ Q_COPY Override default copy behaviour (true/false)
14696
14698
 
14697
14699
  CONFIG:
14698
14700
  Config is loaded from (in order, later overrides earlier):
14699
14701
  1. ~/.config/q/config.toml (or $XDG_CONFIG_HOME/q/config.toml)
14700
14702
  2. ./config.toml (current directory)
14701
- 3. Environment variables (Q_PROVIDER, Q_MODEL)
14703
+ 3. Environment variables (Q_PROVIDER, Q_MODEL, Q_COPY)
14702
14704
 
14703
14705
  EXAMPLES:
14704
14706
  q how do I restart docker
@@ -14713,6 +14715,7 @@ function parseCliArgs(argv = Bun.argv.slice(2)) {
14713
14715
  provider: { type: "string", short: "p" },
14714
14716
  model: { type: "string", short: "m" },
14715
14717
  copy: { type: "boolean", default: false },
14718
+ "no-copy": { type: "boolean", default: false },
14716
14719
  debug: { type: "boolean", default: false },
14717
14720
  help: { type: "boolean", short: "h", default: false },
14718
14721
  version: { type: "boolean", short: "v", default: false }
@@ -14724,6 +14727,7 @@ function parseCliArgs(argv = Bun.argv.slice(2)) {
14724
14727
  provider: values.provider,
14725
14728
  model: values.model,
14726
14729
  copy: values.copy ?? false,
14730
+ noCopy: values["no-copy"] ?? false,
14727
14731
  debug: values.debug ?? false,
14728
14732
  help: values.help ?? false,
14729
14733
  version: values.version ?? false
@@ -28402,10 +28406,21 @@ function createEnv(opts) {
28402
28406
  }
28403
28407
 
28404
28408
  // src/env.ts
28409
+ var booleanString = exports_external.string().optional().transform((val) => {
28410
+ if (val === undefined)
28411
+ return;
28412
+ const lower = val.toLowerCase();
28413
+ if (lower === "true" || lower === "1")
28414
+ return true;
28415
+ if (lower === "false" || lower === "0")
28416
+ return false;
28417
+ throw new Error(`Invalid Q_COPY value: '${val}'. Use 'true', 'false', '1', or '0'.`);
28418
+ });
28405
28419
  var env2 = createEnv({
28406
28420
  server: {
28407
28421
  Q_PROVIDER: exports_external.string().optional(),
28408
- Q_MODEL: exports_external.string().optional()
28422
+ Q_MODEL: exports_external.string().optional(),
28423
+ Q_COPY: booleanString
28409
28424
  },
28410
28425
  runtimeEnv: process.env,
28411
28426
  emptyStringAsUndefined: true
@@ -28438,7 +28453,8 @@ var ProviderConfigSchema = exports_external.object({
28438
28453
  });
28439
28454
  var DefaultConfigSchema = exports_external.object({
28440
28455
  provider: exports_external.string(),
28441
- model: exports_external.string()
28456
+ model: exports_external.string(),
28457
+ copy: exports_external.boolean().optional()
28442
28458
  });
28443
28459
  var ConfigSchema = exports_external.object({
28444
28460
  default: DefaultConfigSchema,
@@ -28492,7 +28508,8 @@ class Config {
28492
28508
  const finalDefault = {
28493
28509
  ...mergedDefault,
28494
28510
  ...env2.Q_PROVIDER ? { provider: env2.Q_PROVIDER } : {},
28495
- ...env2.Q_MODEL ? { model: env2.Q_MODEL } : {}
28511
+ ...env2.Q_MODEL ? { model: env2.Q_MODEL } : {},
28512
+ ...env2.Q_COPY !== undefined ? { copy: env2.Q_COPY } : {}
28496
28513
  };
28497
28514
  const merged = {
28498
28515
  default: finalDefault,
@@ -28609,11 +28626,12 @@ var EXAMPLE_CONFIG = `# q configuration file
28609
28626
  # Config resolution order (later overrides earlier):
28610
28627
  # 1. This file (XDG_CONFIG_HOME/q/config.toml or ~/.config/q/config.toml)
28611
28628
  # 2. ./config.toml in current directory (project-specific)
28612
- # 3. Environment variables: Q_PROVIDER, Q_MODEL
28629
+ # 3. Environment variables: Q_PROVIDER, Q_MODEL, Q_COPY
28613
28630
 
28614
28631
  [default]
28615
28632
  provider = "anthropic"
28616
28633
  model = "claude-sonnet-4-20250514"
28634
+ # copy = true # Always copy answer to clipboard (override with --no-copy)
28617
28635
 
28618
28636
  [providers.anthropic]
28619
28637
  type = "anthropic"
@@ -67404,7 +67422,8 @@ async function main() {
67404
67422
  context: context2,
67405
67423
  systemPrompt: buildSystemPrompt(envInfo)
67406
67424
  });
67407
- if (args.options.copy) {
67425
+ const shouldCopy = !args.options.noCopy && (args.options.copy || config2.default.copy);
67426
+ if (shouldCopy) {
67408
67427
  await clipboardy_default.write(result.text);
67409
67428
  logDebug2("Copied to clipboard", debug);
67410
67429
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hongymagic/q",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "Quick AI answers from the command line",
5
5
  "main": "dist/q.js",
6
6
  "type": "module",