opencode-openai-codex-auth-multi 4.3.0-multiaccount.1 → 4.5.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 (87) hide show
  1. package/LICENSE +37 -37
  2. package/README.md +463 -80
  3. package/assets/opencode-logo-ornate-dark.svg +18 -18
  4. package/assets/readme-hero.svg +31 -31
  5. package/config/README.md +98 -98
  6. package/config/minimal-opencode.json +11 -11
  7. package/config/opencode-legacy.json +568 -568
  8. package/config/opencode-modern.json +236 -236
  9. package/dist/index.d.ts +2 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +391 -135
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/accounts.d.ts +85 -11
  14. package/dist/lib/accounts.d.ts.map +1 -1
  15. package/dist/lib/accounts.js +352 -62
  16. package/dist/lib/accounts.js.map +1 -1
  17. package/dist/lib/auth/auth.d.ts +9 -1
  18. package/dist/lib/auth/auth.d.ts.map +1 -1
  19. package/dist/lib/auth/auth.js +26 -13
  20. package/dist/lib/auth/auth.js.map +1 -1
  21. package/dist/lib/auth/browser.d.ts.map +1 -1
  22. package/dist/lib/auth/browser.js +9 -2
  23. package/dist/lib/auth/browser.js.map +1 -1
  24. package/dist/lib/auth/server.d.ts.map +1 -1
  25. package/dist/lib/auth/server.js +11 -4
  26. package/dist/lib/auth/server.js.map +1 -1
  27. package/dist/lib/auto-update-checker.d.ts +10 -0
  28. package/dist/lib/auto-update-checker.d.ts.map +1 -0
  29. package/dist/lib/auto-update-checker.js +129 -0
  30. package/dist/lib/auto-update-checker.js.map +1 -0
  31. package/dist/lib/cli.d.ts +1 -0
  32. package/dist/lib/cli.d.ts.map +1 -1
  33. package/dist/lib/cli.js +11 -6
  34. package/dist/lib/cli.js.map +1 -1
  35. package/dist/lib/config.d.ts +5 -7
  36. package/dist/lib/config.d.ts.map +1 -1
  37. package/dist/lib/config.js +49 -6
  38. package/dist/lib/config.js.map +1 -1
  39. package/dist/lib/constants.d.ts +7 -0
  40. package/dist/lib/constants.d.ts.map +1 -1
  41. package/dist/lib/constants.js +7 -0
  42. package/dist/lib/constants.js.map +1 -1
  43. package/dist/lib/index.d.ts +13 -0
  44. package/dist/lib/index.d.ts.map +1 -0
  45. package/dist/lib/index.js +13 -0
  46. package/dist/lib/index.js.map +1 -0
  47. package/dist/lib/logger.d.ts +13 -17
  48. package/dist/lib/logger.d.ts.map +1 -1
  49. package/dist/lib/logger.js +89 -24
  50. package/dist/lib/logger.js.map +1 -1
  51. package/dist/lib/oauth-success.html +712 -712
  52. package/dist/lib/prompts/codex-opencode-bridge.js +121 -121
  53. package/dist/lib/prompts/codex.d.ts +5 -0
  54. package/dist/lib/prompts/codex.d.ts.map +1 -1
  55. package/dist/lib/prompts/codex.js +114 -93
  56. package/dist/lib/prompts/codex.js.map +1 -1
  57. package/dist/lib/refresh-queue.d.ts +100 -0
  58. package/dist/lib/refresh-queue.d.ts.map +1 -0
  59. package/dist/lib/refresh-queue.js +196 -0
  60. package/dist/lib/refresh-queue.js.map +1 -0
  61. package/dist/lib/request/fetch-helpers.d.ts +2 -3
  62. package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
  63. package/dist/lib/request/fetch-helpers.js +26 -29
  64. package/dist/lib/request/fetch-helpers.js.map +1 -1
  65. package/dist/lib/request/rate-limit-backoff.d.ts +17 -0
  66. package/dist/lib/request/rate-limit-backoff.d.ts.map +1 -0
  67. package/dist/lib/request/rate-limit-backoff.js +74 -0
  68. package/dist/lib/request/rate-limit-backoff.js.map +1 -0
  69. package/dist/lib/request/request-transformer.d.ts.map +1 -1
  70. package/dist/lib/request/request-transformer.js +3 -2
  71. package/dist/lib/request/request-transformer.js.map +1 -1
  72. package/dist/lib/request/response-handler.js +1 -1
  73. package/dist/lib/request/response-handler.js.map +1 -1
  74. package/dist/lib/rotation.d.ts +121 -0
  75. package/dist/lib/rotation.d.ts.map +1 -0
  76. package/dist/lib/rotation.js +248 -0
  77. package/dist/lib/rotation.js.map +1 -0
  78. package/dist/lib/storage.d.ts +72 -4
  79. package/dist/lib/storage.d.ts.map +1 -1
  80. package/dist/lib/storage.js +189 -19
  81. package/dist/lib/storage.js.map +1 -1
  82. package/dist/lib/types.d.ts +37 -1
  83. package/dist/lib/types.d.ts.map +1 -1
  84. package/package.json +85 -71
  85. package/scripts/install-opencode-codex-auth.js +191 -191
  86. package/scripts/test-all-models.sh +258 -258
  87. package/scripts/validate-model-map.sh +97 -97
@@ -1,97 +1,97 @@
1
- #!/bin/bash
2
-
3
- # Simple Model Map Validation Script
4
- # Tests that OpenCode correctly uses models from config
5
-
6
- set -e
7
-
8
- # Colors
9
- GREEN='\033[0;32m'
10
- RED='\033[0;31m'
11
- YELLOW='\033[1;33m'
12
- BLUE='\033[0;34m'
13
- NC='\033[0m'
14
-
15
- REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
16
- LOG_DIR="${HOME}/.opencode/logs/codex-plugin"
17
-
18
- echo -e "${BLUE}════════════════════════════════════════════${NC}"
19
- echo -e "${BLUE} Model Map Validation${NC}"
20
- echo -e "${BLUE}════════════════════════════════════════════${NC}"
21
- echo ""
22
-
23
- # Test 1: Model that IS in the config (should work)
24
- echo -e "${YELLOW}Test 1: Model IN config (gpt-5.1-codex-low)${NC}"
25
- rm -rf "${LOG_DIR}"/*
26
-
27
- cd "${REPO_DIR}"
28
- if ENABLE_PLUGIN_REQUEST_LOGGING=1 opencode run "say hello" --model="openai/gpt-5.1-codex-low" > /dev/null 2>&1; then
29
- # Check the log - find the one for gpt-5.1-codex-low specifically
30
- log_file=$(find "${LOG_DIR}" -name "*-after-transform.json" -exec grep -l "gpt-5.1-codex-low" {} \; | head -n 1)
31
-
32
- if [ -f "${log_file}" ]; then
33
- original=$(jq -r '.originalModel // "N/A"' "${log_file}")
34
- normalized=$(jq -r '.normalizedModel // "N/A"' "${log_file}")
35
-
36
- echo -e " Original: ${original}"
37
- echo -e " Normalized: ${normalized}"
38
-
39
- if [ "${normalized}" == "gpt-5.1-codex" ]; then
40
- echo -e " ${GREEN}✓ PASS - Correctly normalized to gpt-5.1-codex${NC}"
41
- else
42
- echo -e " ${RED}✗ FAIL - Expected gpt-5.1-codex, got ${normalized}${NC}"
43
- exit 1
44
- fi
45
- else
46
- echo -e " ${RED}✗ FAIL - No log file found${NC}"
47
- exit 1
48
- fi
49
- else
50
- echo -e " ${RED}✗ FAIL - Command failed${NC}"
51
- exit 1
52
- fi
53
-
54
- echo ""
55
-
56
- # Test 2: Model that is NOT in the config (should error or use fallback)
57
- echo -e "${YELLOW}Test 2: Model NOT in config (fake-model-xyz)${NC}"
58
- rm -rf "${LOG_DIR}"/*
59
-
60
- if ENABLE_PLUGIN_REQUEST_LOGGING=1 opencode run "write test" --model="openai/fake-model-xyz" > /dev/null 2>&1; then
61
- log_file=$(find "${LOG_DIR}" -name "*-after-transform.json" | head -n 1)
62
-
63
- if [ -f "${log_file}" ]; then
64
- original=$(jq -r '.originalModel // "N/A"' "${log_file}")
65
- normalized=$(jq -r '.normalizedModel // "N/A"' "${log_file}")
66
-
67
- echo -e " Original: ${original}"
68
- echo -e " Normalized: ${normalized}"
69
- echo -e " ${GREEN}✓ Command succeeded (using fallback: ${normalized})${NC}"
70
- else
71
- echo -e " ${YELLOW}⚠ No log file (expected - model not in config)${NC}"
72
- fi
73
- else
74
- echo -e " ${YELLOW}⚠ Command failed (expected - model not in config)${NC}"
75
- fi
76
-
77
- echo ""
78
-
79
- # Test 3: Verify config location
80
- echo -e "${YELLOW}Test 3: Verify config file location${NC}"
81
- if [ -f "${REPO_DIR}/opencode.json" ]; then
82
- plugin_path=$(jq -r '.plugin[0]' "${REPO_DIR}/opencode.json")
83
- model_count=$(jq '.provider.openai.models | length' "${REPO_DIR}/opencode.json")
84
-
85
- echo -e " Config file: ${REPO_DIR}/opencode.json"
86
- echo -e " Plugin path: ${plugin_path}"
87
- echo -e " Models defined: ${model_count}"
88
- echo -e " ${GREEN}✓ Config file found and valid${NC}"
89
- else
90
- echo -e " ${RED}✗ No opencode.json in repo directory${NC}"
91
- exit 1
92
- fi
93
-
94
- echo ""
95
- echo -e "${GREEN}════════════════════════════════════════════${NC}"
96
- echo -e "${GREEN} All validation tests passed!${NC}"
97
- echo -e "${GREEN}════════════════════════════════════════════${NC}"
1
+ #!/bin/bash
2
+
3
+ # Simple Model Map Validation Script
4
+ # Tests that OpenCode correctly uses models from config
5
+
6
+ set -e
7
+
8
+ # Colors
9
+ GREEN='\033[0;32m'
10
+ RED='\033[0;31m'
11
+ YELLOW='\033[1;33m'
12
+ BLUE='\033[0;34m'
13
+ NC='\033[0m'
14
+
15
+ REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
16
+ LOG_DIR="${HOME}/.opencode/logs/codex-plugin"
17
+
18
+ echo -e "${BLUE}════════════════════════════════════════════${NC}"
19
+ echo -e "${BLUE} Model Map Validation${NC}"
20
+ echo -e "${BLUE}════════════════════════════════════════════${NC}"
21
+ echo ""
22
+
23
+ # Test 1: Model that IS in the config (should work)
24
+ echo -e "${YELLOW}Test 1: Model IN config (gpt-5.1-codex-low)${NC}"
25
+ rm -rf "${LOG_DIR}"/*
26
+
27
+ cd "${REPO_DIR}"
28
+ if ENABLE_PLUGIN_REQUEST_LOGGING=1 opencode run "say hello" --model="openai/gpt-5.1-codex-low" > /dev/null 2>&1; then
29
+ # Check the log - find the one for gpt-5.1-codex-low specifically
30
+ log_file=$(find "${LOG_DIR}" -name "*-after-transform.json" -exec grep -l "gpt-5.1-codex-low" {} \; | head -n 1)
31
+
32
+ if [ -f "${log_file}" ]; then
33
+ original=$(jq -r '.originalModel // "N/A"' "${log_file}")
34
+ normalized=$(jq -r '.normalizedModel // "N/A"' "${log_file}")
35
+
36
+ echo -e " Original: ${original}"
37
+ echo -e " Normalized: ${normalized}"
38
+
39
+ if [ "${normalized}" == "gpt-5.1-codex" ]; then
40
+ echo -e " ${GREEN}✓ PASS - Correctly normalized to gpt-5.1-codex${NC}"
41
+ else
42
+ echo -e " ${RED}✗ FAIL - Expected gpt-5.1-codex, got ${normalized}${NC}"
43
+ exit 1
44
+ fi
45
+ else
46
+ echo -e " ${RED}✗ FAIL - No log file found${NC}"
47
+ exit 1
48
+ fi
49
+ else
50
+ echo -e " ${RED}✗ FAIL - Command failed${NC}"
51
+ exit 1
52
+ fi
53
+
54
+ echo ""
55
+
56
+ # Test 2: Model that is NOT in the config (should error or use fallback)
57
+ echo -e "${YELLOW}Test 2: Model NOT in config (fake-model-xyz)${NC}"
58
+ rm -rf "${LOG_DIR}"/*
59
+
60
+ if ENABLE_PLUGIN_REQUEST_LOGGING=1 opencode run "write test" --model="openai/fake-model-xyz" > /dev/null 2>&1; then
61
+ log_file=$(find "${LOG_DIR}" -name "*-after-transform.json" | head -n 1)
62
+
63
+ if [ -f "${log_file}" ]; then
64
+ original=$(jq -r '.originalModel // "N/A"' "${log_file}")
65
+ normalized=$(jq -r '.normalizedModel // "N/A"' "${log_file}")
66
+
67
+ echo -e " Original: ${original}"
68
+ echo -e " Normalized: ${normalized}"
69
+ echo -e " ${GREEN}✓ Command succeeded (using fallback: ${normalized})${NC}"
70
+ else
71
+ echo -e " ${YELLOW}⚠ No log file (expected - model not in config)${NC}"
72
+ fi
73
+ else
74
+ echo -e " ${YELLOW}⚠ Command failed (expected - model not in config)${NC}"
75
+ fi
76
+
77
+ echo ""
78
+
79
+ # Test 3: Verify config location
80
+ echo -e "${YELLOW}Test 3: Verify config file location${NC}"
81
+ if [ -f "${REPO_DIR}/opencode.json" ]; then
82
+ plugin_path=$(jq -r '.plugin[0]' "${REPO_DIR}/opencode.json")
83
+ model_count=$(jq '.provider.openai.models | length' "${REPO_DIR}/opencode.json")
84
+
85
+ echo -e " Config file: ${REPO_DIR}/opencode.json"
86
+ echo -e " Plugin path: ${plugin_path}"
87
+ echo -e " Models defined: ${model_count}"
88
+ echo -e " ${GREEN}✓ Config file found and valid${NC}"
89
+ else
90
+ echo -e " ${RED}✗ No opencode.json in repo directory${NC}"
91
+ exit 1
92
+ fi
93
+
94
+ echo ""
95
+ echo -e "${GREEN}════════════════════════════════════════════${NC}"
96
+ echo -e "${GREEN} All validation tests passed!${NC}"
97
+ echo -e "${GREEN}════════════════════════════════════════════${NC}"