twinclaw 1.2.7 → 1.2.9

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.
@@ -109,8 +109,18 @@ function detectActiveFeatures() {
109
109
  * Individual model conditions only generate issues when no model key is available at all.
110
110
  */
111
111
  function hasAnyModelKey() {
112
- const modelKeys = ['MODAL_API_KEY', 'OPENROUTER_API_KEY', 'GEMINI_API_KEY', 'GITHUB_TOKEN'];
113
- return modelKeys.some((key) => getSecretVaultService().readSecret(key) !== null);
112
+ const modelKeys = ['MODAL_API_KEY', 'OPENROUTER_API_KEY', 'GEMINI_API_KEY', 'GITHUB_TOKEN', 'GROQ_API_KEY'];
113
+ // Check secret vault first
114
+ const vaultKeys = modelKeys.some((key) => getSecretVaultService().readSecret(key) !== null);
115
+ if (vaultKeys)
116
+ return true;
117
+ // Also check config file via getConfigValue (sync)
118
+ const modalKey = getConfigValue('MODAL_API_KEY');
119
+ const openRouterKey = getConfigValue('OPENROUTER_API_KEY');
120
+ const geminiKey = getConfigValue('GEMINI_API_KEY');
121
+ const githubKey = getConfigValue('GITHUB_TOKEN');
122
+ const groqKey = getConfigValue('GROQ_API_KEY');
123
+ return !!(modalKey || openRouterKey || geminiKey || githubKey || groqKey);
114
124
  }
115
125
  // ── Public API ───────────────────────────────────────────────────────────────
116
126
  /**
@@ -387,8 +387,8 @@ const ONBOARD_FIELDS = [
387
387
  },
388
388
  {
389
389
  key: 'GITHUB_TOKEN',
390
- label: 'GitHub Token',
391
- hint: "Optional. GitHub token for Copilot/GitHub Models. Type 'device' to authenticate via GitHub device login.",
390
+ label: 'GitHub Token (for Copilot)',
391
+ hint: "Optional. For GitHub Copilot: type 'device' to authenticate via OAuth (uses your existing Copilot subscription). Or enter a GitHub Personal Access Token.",
392
392
  secret: true,
393
393
  },
394
394
  {
@@ -1325,7 +1325,7 @@ Options:
1325
1325
  --config <path> Override twinclaw.json output path
1326
1326
  --api-secret <value> Set API_SECRET
1327
1327
  --primary-model <value> Set PRIMARY_MODEL
1328
- --github-token <value> Set GITHUB_TOKEN (interactive mode also supports typing 'device')
1328
+ --github-token <value> Set GITHUB_TOKEN (for Copilot: use 'device' to authenticate via OAuth)
1329
1329
  --openrouter-api-key <value> Set OPENROUTER_API_KEY
1330
1330
  --modal-api-key <value> Set MODAL_API_KEY
1331
1331
  --gemini-api-key <value> Set GEMINI_API_KEY
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "twinclaw",
3
- "version": "1.2.7",
3
+ "version": "1.2.9",
4
4
  "description": "Eagle-eyed agentic AI gateway with multi-modal hooks and proactive memory.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {