pilot-ai 0.2.0 → 0.2.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAID,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAKpD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,CAiBvD;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAK5E;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAOrD"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAG7D,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAID,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAKpD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,CAiBvD;AAiDD,wBAAsB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAK5E;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAOrD"}
@@ -2,6 +2,7 @@ import fs from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import os from 'node:os';
4
4
  import { configSchema } from './schema.js';
5
+ import { getSecret } from './keychain.js';
5
6
  export function getPilotDir() {
6
7
  return path.join(os.homedir(), '.pilot');
7
8
  }
@@ -29,7 +30,46 @@ export async function loadConfig() {
29
30
  if (!result.success) {
30
31
  throw new Error(`Invalid configuration file:\n${result.error.format()._errors.join('\n')}`);
31
32
  }
32
- return result.data;
33
+ return resolveKeychainSecrets(result.data);
34
+ }
35
+ /**
36
+ * Resolves ***keychain*** placeholders with actual values from macOS Keychain.
37
+ */
38
+ async function resolveKeychainSecrets(config) {
39
+ const resolved = structuredClone(config);
40
+ // Slack tokens
41
+ if (resolved.messenger.slack) {
42
+ if (resolved.messenger.slack.botToken === '***keychain***') {
43
+ resolved.messenger.slack.botToken = (await getSecret('slack-bot-token')) ?? '';
44
+ }
45
+ if (resolved.messenger.slack.appToken === '***keychain***') {
46
+ resolved.messenger.slack.appToken = (await getSecret('slack-app-token')) ?? '';
47
+ }
48
+ if (resolved.messenger.slack.signingSecret === '***keychain***') {
49
+ resolved.messenger.slack.signingSecret = (await getSecret('slack-signing-secret')) ?? '';
50
+ }
51
+ }
52
+ // Telegram token
53
+ if (resolved.messenger.telegram?.botToken === '***keychain***') {
54
+ resolved.messenger.telegram.botToken = (await getSecret('telegram-bot-token')) ?? '';
55
+ }
56
+ // Claude API key
57
+ if (resolved.claude.apiKey === '***keychain***') {
58
+ resolved.claude.apiKey = (await getSecret('anthropic-api-key')) ?? null;
59
+ }
60
+ // Notion
61
+ if (resolved.notion?.apiKey === '***keychain***') {
62
+ resolved.notion.apiKey = (await getSecret('notion-api-key')) ?? '';
63
+ }
64
+ // Figma
65
+ if (resolved.figma?.personalAccessToken === '***keychain***') {
66
+ resolved.figma.personalAccessToken = (await getSecret('figma-personal-access-token')) ?? '';
67
+ }
68
+ // Linear
69
+ if (resolved.linear?.apiKey === '***keychain***') {
70
+ resolved.linear.apiKey = (await getSecret('linear-api-key')) ?? '';
71
+ }
72
+ return resolved;
33
73
  }
34
74
  export async function saveConfig(config) {
35
75
  await ensurePilotDir();
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,YAAY,EAAoB,MAAM,aAAa,CAAC;AAE7D,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAExF,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,cAAc,EAAE,CAAC;IAEvB,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5D,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAA4B;IAC3D,MAAM,cAAc,EAAE,CAAC;IAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pilot-ai",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Personal AI agent that controls your macOS via Slack or Telegram",
5
5
  "type": "module",
6
6
  "bin": {