@raidiant/notifai 7.0.2 → 9.0.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 (157) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/README.md +20 -13
  3. package/dist/atomic-file.d.ts +14 -0
  4. package/dist/atomic-file.js +27 -2
  5. package/dist/atomic-file.js.map +1 -1
  6. package/dist/cli-bin.d.ts +4 -0
  7. package/dist/cli-bin.js +62 -0
  8. package/dist/cli-bin.js.map +1 -0
  9. package/dist/cli-release.d.ts +10 -0
  10. package/dist/cli-release.js +75 -0
  11. package/dist/cli-release.js.map +1 -0
  12. package/dist/client.d.ts +1 -0
  13. package/dist/client.js +13 -3
  14. package/dist/client.js.map +1 -1
  15. package/dist/commands-auth.d.ts +6 -0
  16. package/dist/commands-auth.js +28 -3
  17. package/dist/commands-auth.js.map +1 -1
  18. package/dist/commands-config.js +22 -3
  19. package/dist/commands-config.js.map +1 -1
  20. package/dist/commands-core.d.ts +12 -0
  21. package/dist/commands-core.js +27 -3
  22. package/dist/commands-core.js.map +1 -1
  23. package/dist/commands-devices.d.ts +2 -1
  24. package/dist/commands-devices.js +20 -8
  25. package/dist/commands-devices.js.map +1 -1
  26. package/dist/commands-doctor.d.ts +1 -0
  27. package/dist/commands-doctor.js +85 -27
  28. package/dist/commands-doctor.js.map +1 -1
  29. package/dist/commands-guidance.d.ts +27 -0
  30. package/dist/commands-guidance.js +163 -0
  31. package/dist/commands-guidance.js.map +1 -0
  32. package/dist/commands-hooks.d.ts +16 -5
  33. package/dist/commands-hooks.js +433 -38
  34. package/dist/commands-hooks.js.map +1 -1
  35. package/dist/commands-init.d.ts +10 -18
  36. package/dist/commands-init.js +139 -54
  37. package/dist/commands-init.js.map +1 -1
  38. package/dist/commands-send-support.d.ts +17 -2
  39. package/dist/commands-send-support.js +66 -8
  40. package/dist/commands-send-support.js.map +1 -1
  41. package/dist/commands-send.d.ts +0 -1
  42. package/dist/commands-send.js +105 -39
  43. package/dist/commands-send.js.map +1 -1
  44. package/dist/commands-setup-proof.d.ts +8 -0
  45. package/dist/commands-setup-proof.js +31 -2
  46. package/dist/commands-setup-proof.js.map +1 -1
  47. package/dist/commands-skill.d.ts +11 -1
  48. package/dist/commands-skill.js +61 -11
  49. package/dist/commands-skill.js.map +1 -1
  50. package/dist/commands.d.ts +2 -1
  51. package/dist/commands.js +1 -0
  52. package/dist/commands.js.map +1 -1
  53. package/dist/config-schema.d.ts +1 -1
  54. package/dist/config-schema.js +30 -14
  55. package/dist/config-schema.js.map +1 -1
  56. package/dist/config.d.ts +24 -5
  57. package/dist/config.js +37 -8
  58. package/dist/config.js.map +1 -1
  59. package/dist/credentials.d.ts +10 -1
  60. package/dist/credentials.js +25 -12
  61. package/dist/credentials.js.map +1 -1
  62. package/dist/guidance-content.d.ts +50 -0
  63. package/dist/guidance-content.js +240 -0
  64. package/dist/guidance-content.js.map +1 -0
  65. package/dist/guidance.d.ts +69 -0
  66. package/dist/guidance.js +173 -0
  67. package/dist/guidance.js.map +1 -0
  68. package/dist/hook-adapter.js +37 -3
  69. package/dist/hook-adapter.js.map +1 -1
  70. package/dist/hooks.d.ts +68 -7
  71. package/dist/hooks.js +238 -92
  72. package/dist/hooks.js.map +1 -1
  73. package/dist/install-hooks.d.ts +10 -18
  74. package/dist/install-hooks.js +110 -23
  75. package/dist/install-hooks.js.map +1 -1
  76. package/dist/interactive.d.ts +1 -1
  77. package/dist/interactive.js +14 -9
  78. package/dist/interactive.js.map +1 -1
  79. package/dist/logging.d.ts +8 -1
  80. package/dist/logging.js +43 -2
  81. package/dist/logging.js.map +1 -1
  82. package/dist/main.js +5 -487
  83. package/dist/main.js.map +1 -1
  84. package/dist/native-skills.d.ts +19 -0
  85. package/dist/native-skills.js +30 -8
  86. package/dist/native-skills.js.map +1 -1
  87. package/dist/opencode-plugin.js +14 -1
  88. package/dist/opencode-plugin.js.map +1 -1
  89. package/dist/program.d.ts +49 -0
  90. package/dist/program.js +576 -0
  91. package/dist/program.js.map +1 -0
  92. package/dist/send.d.ts +12 -10
  93. package/dist/send.js +65 -29
  94. package/dist/send.js.map +1 -1
  95. package/dist/session-activation.d.ts +15 -0
  96. package/dist/session-activation.js +35 -0
  97. package/dist/session-activation.js.map +1 -0
  98. package/dist/session-labels.d.ts +9 -3
  99. package/dist/session-labels.js +38 -7
  100. package/dist/session-labels.js.map +1 -1
  101. package/dist/url-policy.d.ts +85 -0
  102. package/dist/url-policy.js +369 -0
  103. package/dist/url-policy.js.map +1 -0
  104. package/package.json +6 -4
  105. package/src/atomic-file.ts +36 -2
  106. package/src/cli-bin.test.ts +38 -0
  107. package/src/cli-bin.ts +67 -0
  108. package/src/cli-release.test.ts +46 -0
  109. package/src/cli-release.ts +78 -0
  110. package/src/client.test.ts +95 -0
  111. package/src/client.ts +16 -3
  112. package/src/commands-auth.ts +32 -3
  113. package/src/commands-config.ts +25 -2
  114. package/src/commands-core.ts +38 -3
  115. package/src/commands-devices.ts +28 -9
  116. package/src/commands-doctor.ts +116 -25
  117. package/src/commands-guidance.ts +216 -0
  118. package/src/commands-hooks.ts +513 -42
  119. package/src/commands-init.ts +170 -60
  120. package/src/commands-send-support.test.ts +156 -0
  121. package/src/commands-send-support.ts +72 -8
  122. package/src/commands-send.ts +123 -38
  123. package/src/commands-setup-proof.ts +36 -2
  124. package/src/commands-skill.ts +78 -15
  125. package/src/commands.test.ts +1490 -197
  126. package/src/commands.ts +6 -0
  127. package/src/config-schema.ts +32 -16
  128. package/src/config.test.ts +57 -2
  129. package/src/config.ts +49 -10
  130. package/src/credentials.test.ts +71 -3
  131. package/src/credentials.ts +29 -15
  132. package/src/guidance-content.ts +256 -0
  133. package/src/guidance.test.ts +299 -0
  134. package/src/guidance.ts +233 -0
  135. package/src/hook-adapter.test.ts +113 -1
  136. package/src/hook-adapter.ts +37 -3
  137. package/src/hooks.test.ts +783 -170
  138. package/src/hooks.ts +306 -131
  139. package/src/install-hooks.test.ts +135 -16
  140. package/src/install-hooks.ts +113 -25
  141. package/src/interactive.ts +14 -9
  142. package/src/logging.test.ts +66 -3
  143. package/src/logging.ts +45 -2
  144. package/src/main.ts +6 -614
  145. package/src/native-skills.test.ts +41 -1
  146. package/src/native-skills.ts +40 -6
  147. package/src/opencode-plugin.ts +14 -1
  148. package/src/program.test.ts +237 -0
  149. package/src/program.ts +751 -0
  150. package/src/send.test.ts +28 -0
  151. package/src/send.ts +81 -34
  152. package/src/session-activation.ts +45 -0
  153. package/src/session-labels.test.ts +120 -3
  154. package/src/session-labels.ts +38 -7
  155. package/src/skill.test.ts +153 -12
  156. package/src/trust-policy.test.ts +701 -0
  157. package/src/url-policy.ts +399 -0
@@ -1 +1 @@
1
- {"version":3,"file":"commands-auth.js","sourceRoot":"","sources":["../src/commands-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands-auth.js","sourceRoot":"","sources":["../src/commands-auth.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync, } from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { parse as parseToml, stringify as stringifyToml } from 'smol-toml';
4
+ import { ensurePrivateDirectory } from './atomic-file.js';
4
5
  import { acceptedValues, configInfo } from './config-schema.js';
5
- import { BOOLEAN_CONFIG_KEYS, CONFIG_KEYS, NUMERIC_CONFIG_KEYS, configBounds, configDefaultValue, findProjectConfigPath, globalConfigPath, personalProjectConfigPath, sessionConfigPath, } from './config.js';
6
+ import { BOOLEAN_CONFIG_KEYS, CONFIG_KEYS, NUMERIC_CONFIG_KEYS, ORIGIN_LIST_CONFIG_KEYS, USER_OWNED_CONFIG_KEYS, configBounds, configDefaultValue, findProjectConfigPath, globalConfigPath, personalProjectConfigPath, sessionConfigPath, } from './config.js';
7
+ import { normalizeOrigin } from './url-policy.js';
6
8
  import { renderConfigExplain, renderConfigList, renderConfigPlain } from './ui/config-view.js';
7
9
  import { EXIT, loadLoggedConfig } from './commands-core.js';
8
10
  // ---------------------------------------------------------------------------
@@ -143,11 +145,25 @@ export async function configSetCommand(deps, key, rawValue, flags) {
143
145
  deps.io.err(`${key} takes one of: ${info.choices.join(', ')} — not "${rawValue}".`);
144
146
  return EXIT.usage;
145
147
  }
146
- if (key === 'devices')
148
+ if (info.kind === 'list')
147
149
  value = rawValue.split(',').map((s) => s.trim()).filter(Boolean);
150
+ if (ORIGIN_LIST_CONFIG_KEYS.includes(configKey)) {
151
+ const origins = value.map((entry) => normalizeOrigin(entry));
152
+ const rejected = value.filter((_, index) => origins[index] === null);
153
+ if (rejected.length > 0) {
154
+ deps.io.err(`${key} entries must be bare http(s) origins like "https://host" or "http://host:8080" — not ${rejected.map((entry) => `"${entry}"`).join(', ')}.`);
155
+ return EXIT.usage;
156
+ }
157
+ value = origins;
158
+ }
148
159
  const target = await configMutationTarget(deps, flags);
149
160
  if (target === null)
150
161
  return EXIT.usage;
162
+ if (target.layer === 'project' && USER_OWNED_CONFIG_KEYS.includes(configKey)) {
163
+ deps.io.err(`${key} widens which origins this machine trusts, so it is never read from the repository's shared config — a cloned repository must not be able to set it.`);
164
+ deps.io.err('Store it on this machine (no flag) or for this project personally (--local).');
165
+ return EXIT.usage;
166
+ }
151
167
  if (target.layer === 'global' && Object.is(value, configDefaultValue(configKey))) {
152
168
  deps.io.err(`${key} is already the shipped default (${JSON.stringify(value)}).`);
153
169
  deps.io.err(`Run \`notifai config unset ${key} --yes\` to remove a redundant override instead of creating one.`);
@@ -164,7 +180,10 @@ export async function configSetCommand(deps, key, rawValue, flags) {
164
180
  ? parseToml(readFileSync(target.path, 'utf8'))
165
181
  : {};
166
182
  existing[key] = value;
167
- mkdirSync(path.dirname(target.path), { recursive: true });
183
+ if (target.layer === 'project')
184
+ mkdirSync(path.dirname(target.path), { recursive: true });
185
+ else
186
+ ensurePrivateDirectory(path.dirname(target.path));
168
187
  writeFileSync(target.path, `${stringifyToml(existing)}\n`);
169
188
  deps.io.out(`Wrote ${key} to ${target.path}`);
170
189
  return EXIT.ok;
@@ -1 +1 @@
1
- {"version":3,"file":"commands-config.js","sourceRoot":"","sources":["../src/commands-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands-config.js","sourceRoot":"","sources":["../src/commands-config.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,8 @@ export interface CommandDeps {
77
77
  nativeSkills?: NativeSkills;
78
78
  /** Test seam for Orca's exact-worktree semantic title lookup. */
79
79
  orcaSessionTitle?: OrcaSessionTitleLookup;
80
+ /** Test seam for registry reads; production uses fetch. */
81
+ fetchImpl?: typeof fetch;
80
82
  /**
81
83
  * The local record of what this invocation did. Optional so a test fake need
82
84
  * not carry one; `log(deps)` supplies a logger that records nothing.
@@ -96,6 +98,16 @@ export declare const EXIT: {
96
98
  };
97
99
  export declare function makeClient(deps: CommandDeps, baseUrl: string, bearer: string | null, options?: ClientOptions): ApiClient;
98
100
  export declare function resolvedBaseUrl(config: CliConfig, credential: MachineCredential | null): string;
101
+ /**
102
+ * Whether a flag or env origin would send signed-in traffic somewhere other
103
+ * than the origin stored with this machine's credential.
104
+ *
105
+ * Login still honours those overrides: pairing has no credential to pin to.
106
+ * Returning the source (not the override URL, and never the bearer) is what
107
+ * lets callers diagnose the ignore without leaking either.
108
+ */
109
+ export declare function ignoredOriginOverride(config: CliConfig, credential: MachineCredential): CliConfig['base_url']['source'] | null;
110
+ export declare function diagnoseIgnoredOriginOverride(io: Pick<CommandIo, 'err'>, config: CliConfig, credential: MachineCredential): void;
99
111
  export declare function authedClient(deps: CommandDeps, config: CliConfig): {
100
112
  client: ApiClient;
101
113
  baseUrl: string;
@@ -35,7 +35,28 @@ export function makeClient(deps, baseUrl, bearer, options) {
35
35
  });
36
36
  }
37
37
  export function resolvedBaseUrl(config, credential) {
38
- return config.base_url.source === 'default' && credential ? credential.baseUrl : config.base_url.value;
38
+ return credential ? credential.baseUrl : config.base_url.value;
39
+ }
40
+ /**
41
+ * Whether a flag or env origin would send signed-in traffic somewhere other
42
+ * than the origin stored with this machine's credential.
43
+ *
44
+ * Login still honours those overrides: pairing has no credential to pin to.
45
+ * Returning the source (not the override URL, and never the bearer) is what
46
+ * lets callers diagnose the ignore without leaking either.
47
+ */
48
+ export function ignoredOriginOverride(config, credential) {
49
+ if (config.base_url.source === 'default')
50
+ return null;
51
+ if (config.base_url.value === credential.baseUrl)
52
+ return null;
53
+ return config.base_url.source;
54
+ }
55
+ export function diagnoseIgnoredOriginOverride(io, config, credential) {
56
+ const source = ignoredOriginOverride(config, credential);
57
+ if (source === null)
58
+ return;
59
+ io.err(`Ignoring base_url from ${source}; authenticated traffic uses the origin stored with this machine's credential. Run \`notifai login\` to pair with a different origin.`);
39
60
  }
40
61
  export function authedClient(deps, config) {
41
62
  const credential = deps.store.load();
@@ -44,9 +65,10 @@ export function authedClient(deps, config) {
44
65
  // trace: it returns before any request is made, so without this the log
45
66
  // shows an exit code and no cause.
46
67
  log(deps).error('cli.error', { kind: 'auth', message: 'not signed in', store: deps.store.describe() });
47
- deps.io.err('Not signed in. Run `notifai login` first.');
68
+ deps.io.err('Not signed in. Run `notifai init`; it will coordinate machine login and device setup.');
48
69
  return null;
49
70
  }
71
+ diagnoseIgnoredOriginOverride(deps.io, config, credential);
50
72
  const baseUrl = resolvedBaseUrl(config, credential);
51
73
  return {
52
74
  client: makeClient(deps, baseUrl, `Bearer nfm_${credential.machineId}.${credential.secret}`),
@@ -125,7 +147,9 @@ export function reportError(deps, err, context = {}) {
125
147
  deps.io.err('this build sent a field the server did not accept — the CLI and server ' +
126
148
  'disagree about the contract; check with `notifai doctor`');
127
149
  }
128
- const recovery = localRecovery(err.recoveryAction, err.details);
150
+ const recovery = err.code === 'no_active_devices'
151
+ ? 'next: Run `notifai init` to connect an active Companion App; it will complete machine setup and identify any human-only device step.'
152
+ : localRecovery(err.recoveryAction, err.details);
129
153
  if (recovery !== null)
130
154
  deps.io.err(recovery);
131
155
  else if (err.recoveryAction === null && err.nextAction)
@@ -1 +1 @@
1
- {"version":3,"file":"commands-core.js","sourceRoot":"","sources":["../src/commands-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAuB,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAA2B,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,GAGb,MAAM,aAAa,CAAA;AACpB,OAAO,EAA0B,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAA;AAExD,OAAO,EAA0B,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAe,MAAM,cAAc,CAAA;AAG1F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AA6E7C,gEAAgE;AAChE,MAAM,UAAU,GAAG,CAAC,IAAiB;IACnC,OAAO,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAiB,EACjB,OAAyC;IAEzC,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;IACxB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAA;IACrC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IAC9C,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,EAAE,EAAE,CAAC;IACL,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;CACF,CAAA;AAEV,MAAM,UAAU,UAAU,CACxB,IAAiB,EACjB,OAAe,EACf,MAAqB,EACrB,OAAuB;IAEvB,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE;QAC3D,GAAG,OAAO;QACV,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;QACjB,UAAU,EAAE,cAAc,EAAE;QAC5B,YAAY,EAAE,wBAAwB;KACvC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,UAAoC;IACrF,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAA;AACxG,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAiB,EAAE,MAAiB;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,4EAA4E;QAC5E,wEAAwE;QACxE,mCAAmC;QACnC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QACtG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;QACxD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACnD,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAC5F,OAAO;KACR,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,kCAAkC,CAAA;AAEpE,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,CAAA;IAC9F,MAAM,KAAK,GAAI,OAAsC,CAAC,YAAY,CAAA;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACpC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;AAC7G,CAAC;AAED,SAAS,WAAW,CAAC,MAAyB;IAC5C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/D,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAClE,CAAC;AAED,SAAS,aAAa,CAAC,MAA6B,EAAE,OAAgB;IACpE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY;YACf,OAAO,SAAS,kBAAkB,EAAE,CAAA;QACtC,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAC1C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC;gBACrB,CAAC,CAAC,2BAA2B,WAAW,CAAC,KAAK,CAAC,GAAG;gBAClD,CAAC,CAAC,+CAA+C,CAAA;QACrD,CAAC;QACD,KAAK,kBAAkB;YACrB,OAAO,sDAAsD,CAAA;QAC/D;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAAiB,EACjB,GAAY,EACZ,UAAmC,EAAE;IAErC,4EAA4E;IAC5E,8EAA8E;IAC9E,2CAA2C;IAC3C,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE;QAC3B,GAAG,OAAO;QACV,GAAG,CAAC,GAAG,YAAY,YAAY;YAC7B,CAAC,CAAC;gBACE,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,WAAW,EAAE,GAAG,CAAC,UAAU;gBAC3B,eAAe,EAAE,GAAG,CAAC,cAAc;gBACnC,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB;YACH,CAAC,CAAC,GAAG,YAAY,YAAY;gBAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;gBAC3C,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;KACjD,CAAC,CAAA;IACF,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC,GAAG,CACT,IAAI,CAAC,EAAE,CAAC,WAAW,KAAK,IAAI,IAAI,GAAG,CAAC,cAAc,KAAK,IAAI;YACzD,CAAC,CAAC,GAAG,CAAC,OAAO;YACb,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAClC,CAAA;QACD,wEAAwE;QACxE,yEAAyE;QACzE,mEAAmE;QACnE,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7E,uEAAuE;QACvE,4EAA4E;QAC5E,qEAAqE;QACrE,+DAA+D;QAC/D,IACE,GAAG,CAAC,MAAM,KAAK,GAAG;YAClB,GAAG,CAAC,IAAI,KAAK,+BAA+B;YAC5C,GAAG,CAAC,IAAI,KAAK,qBAAqB,EAClC,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,GAAG,CACT,yEAAyE;gBACvE,0DAA0D,CAC7D,CAAA;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;QAC/D,IAAI,QAAQ,KAAK,IAAI;YAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;aACvC,IAAI,GAAG,CAAC,cAAc,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU;YAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;QAC9F,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB;YAAE,OAAO,IAAI,CAAC,IAAI,CAAA;QACpF,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;IACvD,CAAC;IACD,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACxB,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IACxB,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAA;IACtC,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ;QACnG,CAAC,CAAE,KAA0B,CAAC,IAAI;QAClC,CAAC,CAAC,IAAI,CACT;SACA,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;SAC9D,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"commands-core.js","sourceRoot":"","sources":["../src/commands-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAuB,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAA2B,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,GAGb,MAAM,aAAa,CAAA;AACpB,OAAO,EAA0B,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAA;AAExD,OAAO,EAA0B,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAe,MAAM,cAAc,CAAA;AAG1F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AA+E7C,gEAAgE;AAChE,MAAM,UAAU,GAAG,CAAC,IAAiB;IACnC,OAAO,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAiB,EACjB,OAAyC;IAEzC,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;IACxB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAA;IACrC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IAC9C,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,EAAE,EAAE,CAAC;IACL,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;CACF,CAAA;AAEV,MAAM,UAAU,UAAU,CACxB,IAAiB,EACjB,OAAe,EACf,MAAqB,EACrB,OAAuB;IAEvB,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE;QAC3D,GAAG,OAAO;QACV,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;QACjB,UAAU,EAAE,cAAc,EAAE;QAC5B,YAAY,EAAE,wBAAwB;KACvC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,UAAoC;IACrF,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAA;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,UAA6B;IAE7B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACrD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,UAAU,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAC7D,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,EAA0B,EAC1B,MAAiB,EACjB,UAA6B;IAE7B,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACxD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAM;IAC3B,EAAE,CAAC,GAAG,CACJ,0BAA0B,MAAM,uIAAuI,CACxK,CAAA;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAiB,EAAE,MAAiB;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,4EAA4E;QAC5E,wEAAwE;QACxE,mCAAmC;QACnC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QACtG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAA;QACpG,OAAO,IAAI,CAAA;IACb,CAAC;IACD,6BAA6B,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACnD,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAC5F,OAAO;KACR,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,kCAAkC,CAAA;AAEpE,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,CAAA;IAC9F,MAAM,KAAK,GAAI,OAAsC,CAAC,YAAY,CAAA;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACpC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;AAC7G,CAAC;AAED,SAAS,WAAW,CAAC,MAAyB;IAC5C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/D,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAClE,CAAC;AAED,SAAS,aAAa,CAAC,MAA6B,EAAE,OAAgB;IACpE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY;YACf,OAAO,SAAS,kBAAkB,EAAE,CAAA;QACtC,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAC1C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC;gBACrB,CAAC,CAAC,2BAA2B,WAAW,CAAC,KAAK,CAAC,GAAG;gBAClD,CAAC,CAAC,+CAA+C,CAAA;QACrD,CAAC;QACD,KAAK,kBAAkB;YACrB,OAAO,sDAAsD,CAAA;QAC/D;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAAiB,EACjB,GAAY,EACZ,UAAmC,EAAE;IAErC,4EAA4E;IAC5E,8EAA8E;IAC9E,2CAA2C;IAC3C,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE;QAC3B,GAAG,OAAO;QACV,GAAG,CAAC,GAAG,YAAY,YAAY;YAC7B,CAAC,CAAC;gBACE,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,WAAW,EAAE,GAAG,CAAC,UAAU;gBAC3B,eAAe,EAAE,GAAG,CAAC,cAAc;gBACnC,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB;YACH,CAAC,CAAC,GAAG,YAAY,YAAY;gBAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;gBAC3C,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;KACjD,CAAC,CAAA;IACF,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC,GAAG,CACT,IAAI,CAAC,EAAE,CAAC,WAAW,KAAK,IAAI,IAAI,GAAG,CAAC,cAAc,KAAK,IAAI;YACzD,CAAC,CAAC,GAAG,CAAC,OAAO;YACb,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAClC,CAAA;QACD,wEAAwE;QACxE,yEAAyE;QACzE,mEAAmE;QACnE,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7E,uEAAuE;QACvE,4EAA4E;QAC5E,qEAAqE;QACrE,+DAA+D;QAC/D,IACE,GAAG,CAAC,MAAM,KAAK,GAAG;YAClB,GAAG,CAAC,IAAI,KAAK,+BAA+B;YAC5C,GAAG,CAAC,IAAI,KAAK,qBAAqB,EAClC,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,GAAG,CACT,yEAAyE;gBACvE,0DAA0D,CAC7D,CAAA;QACH,CAAC;QACD,MAAM,QAAQ,GACZ,GAAG,CAAC,IAAI,KAAK,mBAAmB;YAC9B,CAAC,CAAC,sIAAsI;YACxI,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;QACpD,IAAI,QAAQ,KAAK,IAAI;YAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;aACvC,IAAI,GAAG,CAAC,cAAc,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU;YAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;QAC9F,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB;YAAE,OAAO,IAAI,CAAC,IAAI,CAAA;QACpF,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;IACvD,CAAC;IACD,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACxB,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IACxB,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAA;IACtC,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ;QACnG,CAAC,CAAE,KAA0B,CAAC,IAAI;QAClC,CAAC,CAAC,IAAI,CACT;SACA,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;SAC9D,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAChB,CAAC"}
@@ -2,6 +2,7 @@ import { type Platform, type RoutableDevice } from '@raidiant/notifai-protocol';
2
2
  import { type CommandDeps } from './commands-core.js';
3
3
  export declare function devicesCommand(deps: CommandDeps, flags: {
4
4
  json?: boolean;
5
+ platform?: string;
5
6
  }): Promise<number>;
6
7
  /**
7
8
  * Devices as data, for surfaces that render them themselves.
@@ -28,4 +29,4 @@ export declare function deviceInstallRemedy(options: {
28
29
  devices: readonly RoutableDevice[];
29
30
  }): string;
30
31
  export declare function deviceCanReceive(device: RoutableDevice): boolean;
31
- export declare function readyIosDevices(devices: readonly RoutableDevice[]): RoutableDevice[];
32
+ export declare function readyCompanionDevices(devices: readonly RoutableDevice[]): RoutableDevice[];
@@ -4,17 +4,29 @@ import { EXIT, authedClient, loadLoggedConfig, makeClient, reportError, resolved
4
4
  // devices / capabilities
5
5
  // ---------------------------------------------------------------------------
6
6
  export async function devicesCommand(deps, flags) {
7
+ if (flags.platform !== undefined && !PLATFORMS.includes(flags.platform)) {
8
+ deps.io.err(`Unknown platform "${flags.platform}" — use ${PLATFORMS.join(' or ')}.`);
9
+ return EXIT.usage;
10
+ }
11
+ const platform = flags.platform;
7
12
  const config = loadLoggedConfig(deps, { cwd: deps.cwd, env: deps.env });
8
13
  const authed = authedClient(deps, config);
9
14
  if (!authed)
10
15
  return EXIT.auth;
11
16
  try {
12
17
  const result = await authed.client.listDevices();
18
+ const devices = platform === undefined
19
+ ? result.devices
20
+ : result.devices.filter((device) => device.platform === platform);
13
21
  if (flags.json) {
14
- deps.io.out(JSON.stringify(result, null, 2));
22
+ deps.io.out(JSON.stringify({ ...result, devices }, null, 2));
15
23
  return EXIT.ok;
16
24
  }
17
- if (result.devices.length === 0) {
25
+ if (devices.length === 0) {
26
+ if (platform !== undefined) {
27
+ deps.io.out(`No ${platform} devices registered.`);
28
+ return EXIT.ok;
29
+ }
18
30
  const supportUrl = supportPageUrl(authed.baseUrl);
19
31
  let email = null;
20
32
  try {
@@ -26,7 +38,7 @@ export async function devicesCommand(deps, flags) {
26
38
  deps.io.out(`No devices yet. Install Notifai from ${supportUrl}, ${sameAccountSignInLine(email)}, and allow notifications.`);
27
39
  return EXIT.ok;
28
40
  }
29
- for (const d of result.devices) {
41
+ for (const d of devices) {
30
42
  deps.io.out(`${d.device_id} ${d.display_name} ${d.platform} ${d.status_message ?? 'Working'}`);
31
43
  }
32
44
  return EXIT.ok;
@@ -103,13 +115,13 @@ export function deviceInstallRemedy(options) {
103
115
  const support = supportPageUrl(options.baseUrl);
104
116
  const sameEmail = sameAccountSignInLine(options.email);
105
117
  if (options.devices.length === 0) {
106
- return (`open the install steps at ${support} on your iPhone, ` +
118
+ return (`open the Companion App install steps at ${support} on a supported device, ` +
107
119
  `install Notifai, ${sameEmail}, and allow notifications`);
108
120
  }
109
121
  if (options.devices.some((d) => d.permission_status === 'denied')) {
110
- return 'allow notifications for Notifai in iPhone Settings';
122
+ return "allow notifications for Notifai in the device's Settings";
111
123
  }
112
- return 'open Notifai on your iPhone and allow its notification prompt';
124
+ return 'open Notifai on the device and allow its notification prompt';
113
125
  }
114
126
  export function deviceCanReceive(device) {
115
127
  const receiveIsFloored = device.support?.state === 'must_update' &&
@@ -118,7 +130,7 @@ export function deviceCanReceive(device) {
118
130
  device.registration_healthy &&
119
131
  (device.permission_status === 'authorized' || device.permission_status === 'provisional'));
120
132
  }
121
- export function readyIosDevices(devices) {
122
- return devices.filter((device) => device.platform === 'ios' && deviceCanReceive(device));
133
+ export function readyCompanionDevices(devices) {
134
+ return devices.filter((device) => (device.platform === 'ios' || device.platform === 'android') && deviceCanReceive(device));
123
135
  }
124
136
  //# sourceMappingURL=commands-devices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands-devices.js","sourceRoot":"","sources":["../src/commands-devices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands-devices.js","sourceRoot":"","sources":["../src/commands-devices.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare function assessReadiness(deps: CommandDeps, options?: {
14
14
  skillScope?: SkillScope;
15
15
  previous?: Readiness;
16
16
  refresh?: readonly ReadinessRefresh[];
17
+ json?: boolean;
17
18
  }): Promise<Readiness>;
18
19
  export declare function doctorCommand(deps: CommandDeps, flags: {
19
20
  json?: boolean;
@@ -12,12 +12,14 @@ import { BLOCKING_STOP_TIMEOUT_SECONDS, CLAUDE_ASYNC_STOP_TIMEOUT_SECONDS, codex
12
12
  import { inferInvocationContext } from './invocation-context.js';
13
13
  import { firstBlocker, } from './readiness.js';
14
14
  import { packageVersion } from './release.js';
15
- import { EXIT, UPDATE_CLI_COMMAND, loadLoggedConfig, makeClient, resolvedBaseUrl, } from './commands-core.js';
16
- import { deviceInstallRemedy, readyIosDevices, supportPageUrl } from './commands-devices.js';
15
+ import { EXIT, UPDATE_CLI_COMMAND, diagnoseIgnoredOriginOverride, loadLoggedConfig, makeClient, resolvedBaseUrl, } from './commands-core.js';
16
+ import { deviceInstallRemedy, readyCompanionDevices, supportPageUrl } from './commands-devices.js';
17
17
  import { activeHarnessSession, claudeSessionPid, resolveActiveHarness, } from './commands-harness-context.js';
18
18
  import { stopShapeProblems } from './commands-hook-shape.js';
19
- import { HOOK_EVENTS, activeQuestionRouteProblems, hookActivationAdvice } from './commands-hooks.js';
20
- import { observedCompanionReceipt, readSetupProof } from './commands-setup-proof.js';
19
+ import { HOOK_EVENTS, activeQuestionRouteProblems, hookActivationAdvice, requiredHookEvents, } from './commands-hooks.js';
20
+ import { cliBinReadiness } from './cli-bin.js';
21
+ import { latestPublishedCliVersion, newerPublishedCli, shouldConsultCliRegistry, thisCliVersion, } from './cli-release.js';
22
+ import { SETUP_PROOF_STALE_MS, observedCompanionReceipt, readSetupProof, setupProofIsStale, } from './commands-setup-proof.js';
21
23
  import { skillReadiness } from './commands-skill.js';
22
24
  // ---------------------------------------------------------------------------
23
25
  // doctor
@@ -181,11 +183,10 @@ function remoteStatesFrom(previous) {
181
183
  }
182
184
  return { credential, server, contract, auth, devices, proof };
183
185
  }
184
- function remoteInvalidatedByConfig(previous, config) {
185
- if (config.base_url.source === 'default')
186
- return false;
186
+ function remoteInvalidatedByConfig(previous, config, credential) {
187
+ const origin = resolvedBaseUrl(config, credential);
187
188
  const server = previous.states.find((state) => state.id === 'server');
188
- return server === undefined || !server.detail.includes(config.base_url.value);
189
+ return server === undefined || !server.detail.includes(origin);
189
190
  }
190
191
  /**
191
192
  * Read the whole setup once, in dependency order.
@@ -198,6 +199,9 @@ function remoteInvalidatedByConfig(previous, config) {
198
199
  */
199
200
  export async function assessReadiness(deps, options = {}) {
200
201
  const config = loadLoggedConfig(deps, { cwd: deps.cwd, env: deps.env });
202
+ const credential = deps.store.load();
203
+ if (credential)
204
+ diagnoseIgnoredOriginOverride(deps.io, config, credential);
201
205
  const previous = options.previous;
202
206
  const refresh = options.refresh;
203
207
  if (previous !== undefined && refresh !== undefined && refresh.length === 0)
@@ -205,12 +209,13 @@ export async function assessReadiness(deps, options = {}) {
205
209
  const reuseRemote = previous !== undefined &&
206
210
  refresh !== undefined &&
207
211
  !refresh.includes('remote') &&
208
- !remoteInvalidatedByConfig(previous, config);
212
+ !remoteInvalidatedByConfig(previous, config, credential);
209
213
  if (reuseRemote) {
210
214
  const reused = remoteStatesFrom(previous);
211
215
  if (reused !== null) {
212
216
  return {
213
217
  states: [
218
+ cliBinReadiness(deps.env, deps.hookPlatform ?? process.platform),
214
219
  projectReadiness(deps, config),
215
220
  reused.credential,
216
221
  reused.server,
@@ -227,8 +232,8 @@ export async function assessReadiness(deps, options = {}) {
227
232
  const states = [];
228
233
  let accountClient = null;
229
234
  let accountDevices = null;
235
+ states.push(cliBinReadiness(deps.env, deps.hookPlatform ?? process.platform));
230
236
  states.push(projectReadiness(deps, config));
231
- const credential = deps.store.load();
232
237
  states.push(credential
233
238
  ? {
234
239
  id: 'credential',
@@ -345,14 +350,14 @@ export async function assessReadiness(deps, options = {}) {
345
350
  }
346
351
  else {
347
352
  const devices = accountDevices;
348
- const iphoneDevices = devices.filter((device) => device.platform === 'ios');
349
- const ready = readyIosDevices(iphoneDevices);
353
+ const companionDevices = devices.filter((device) => device.platform === 'ios' || device.platform === 'android');
354
+ const ready = readyCompanionDevices(companionDevices);
350
355
  states.push(ready.length > 0
351
356
  ? {
352
357
  id: 'devices',
353
358
  title: 'Your devices',
354
359
  status: 'ready',
355
- detail: `${ready.map((d) => d.display_name).join(', ')} ready to receive`,
360
+ detail: `${ready.map((d) => `${d.display_name} (${d.platform})`).join(', ')} ready to receive`,
356
361
  }
357
362
  : {
358
363
  id: 'devices',
@@ -364,22 +369,46 @@ export async function assessReadiness(deps, options = {}) {
364
369
  // useless advice to someone who installed it and denied the
365
370
  // permission prompt. The live bridge is /support on the
366
371
  // dashboard origin — not a placeholder, and not typed by hand.
367
- detail: iphoneDevices.length === 0
368
- ? `no iPhone registered yet; install Notifai on iPhone via ${supportPageUrl(baseUrl)}`
369
- : `${iphoneDevices.map((d) => `${d.display_name} (${d.permission_status})`).join(', ')} — registered but not able to receive`,
372
+ detail: companionDevices.length === 0
373
+ ? `no active Companion device registered yet; install Notifai via ${supportPageUrl(baseUrl)}`
374
+ : `${companionDevices.map((d) => `${d.display_name} (${d.platform}, ${d.permission_status})`).join(', ')} — registered but not able to receive`,
370
375
  remedy: {
371
376
  by: 'user-elsewhere',
372
377
  summary: deviceInstallRemedy({
373
378
  baseUrl,
374
379
  email: accountEmail,
375
- devices: iphoneDevices,
380
+ devices: companionDevices,
376
381
  }),
377
382
  },
378
383
  });
379
384
  }
380
385
  states.push(await setupProofState(deps, config, accountClient, accountDevices));
386
+ await applyRegistryRecommendation(deps, options.json === true, states);
381
387
  return { states };
382
388
  }
389
+ async function applyRegistryRecommendation(deps, json, states) {
390
+ if (!shouldConsultCliRegistry({
391
+ ...(deps.io.interactive === undefined ? {} : { interactive: deps.io.interactive }),
392
+ json,
393
+ env: deps.env,
394
+ })) {
395
+ return;
396
+ }
397
+ const latest = await latestPublishedCliVersion(deps.fetchImpl);
398
+ const newer = newerPublishedCli(thisCliVersion(), latest);
399
+ if (newer === null)
400
+ return;
401
+ const contract = states.find((state) => state.id === 'contract');
402
+ if (contract === undefined || contract.status === 'gap')
403
+ return;
404
+ contract.status = 'optional-gap';
405
+ contract.detail = 'A newer Notifai is available.';
406
+ contract.remedy = {
407
+ by: 'user-here',
408
+ summary: 'update Notifai',
409
+ command: UPDATE_CLI_COMMAND,
410
+ };
411
+ }
383
412
  async function setupProofState(deps, config, client, devices) {
384
413
  if (client === null || devices === null) {
385
414
  return {
@@ -389,17 +418,19 @@ async function setupProofState(deps, config, client, devices) {
389
418
  detail: 'not checked — account and device readiness must be established first',
390
419
  };
391
420
  }
392
- const ios = readyIosDevices(devices);
393
- if (ios.length === 0) {
421
+ const companions = readyCompanionDevices(devices);
422
+ if (companions.length === 0) {
394
423
  return {
395
424
  id: 'proof',
396
425
  title: 'Delivery proof',
397
426
  status: 'unknown',
398
- detail: 'not checked — no iPhone is ready',
427
+ detail: 'not checked — no iPhone or Android Companion App is ready',
399
428
  };
400
429
  }
401
430
  const proof = readSetupProof(deps);
402
- const target = proof === null ? null : ios.find((device) => device.device_id === proof.device_id);
431
+ const target = proof === null
432
+ ? null
433
+ : companions.find((device) => device.device_id === proof.device_id);
403
434
  if (proof === null || proof.project !== config.project.value || target === undefined) {
404
435
  return {
405
436
  id: 'proof',
@@ -424,6 +455,20 @@ async function setupProofState(deps, config, client, devices) {
424
455
  detail: `Companion Receipt (the app's delivery confirmation) observed from ${observed.delivery.device_name} at ${observed.observedAt} (${proof.request_id})`,
425
456
  };
426
457
  }
458
+ const now = (deps.now ?? Date.now)();
459
+ if (setupProofIsStale(proof, now)) {
460
+ return {
461
+ id: 'proof',
462
+ title: 'Delivery proof',
463
+ status: 'gap',
464
+ detail: `${proof.request_id} is older than ${SETUP_PROOF_STALE_MS / 36e5}h with no Companion Receipt; init will send a replacement`,
465
+ remedy: {
466
+ by: 'cli',
467
+ summary: 'replace the stale verification notification',
468
+ command: 'notifai init',
469
+ },
470
+ };
471
+ }
427
472
  return {
428
473
  id: 'proof',
429
474
  title: 'Delivery proof',
@@ -451,7 +496,7 @@ async function setupProofState(deps, config, client, devices) {
451
496
  }
452
497
  }
453
498
  export async function doctorCommand(deps, flags, options = {}) {
454
- const readiness = options.readiness ?? (await assessReadiness(deps));
499
+ const readiness = options.readiness ?? (await assessReadiness(deps, flags.json === true ? { json: true } : {}));
455
500
  const blocker = firstBlocker(readiness);
456
501
  const ok = blocker === null;
457
502
  // A human fallback exists only at a real terminal. Pipes, harnesses and
@@ -737,12 +782,22 @@ function hookChecks(deps) {
737
782
  return event !== null && !HOOK_EVENTS.includes(event);
738
783
  })
739
784
  .map((h) => `${h.event} -> ${handlerEvent(h.command)} in ${i.file}`));
785
+ const missing = installations.flatMap((installation) => {
786
+ const required = requiredHookEvents(installation.harness);
787
+ const installed = new Set(installation.handlers
788
+ .map((handler) => handlerEvent(handler.command))
789
+ .filter((event) => event !== null));
790
+ const absent = required.filter((event) => !installed.has(event));
791
+ return absent.length === 0
792
+ ? []
793
+ : [`${installation.file} is missing ${absent.join(', ')}`];
794
+ });
740
795
  checks.push({
741
796
  name: 'hooks (stale)',
742
- ok: stale.length === 0,
743
- detail: stale.length === 0
744
- ? 'every installed handler names an event this build serves'
745
- : `${stale.join('; ')} — rerun \`notifai hooks install\` to drop ${stale.length === 1 ? 'it' : 'them'}`,
797
+ ok: stale.length === 0 && missing.length === 0,
798
+ detail: stale.length === 0 && missing.length === 0
799
+ ? 'every installed handler names an event this build serves, and every required lifecycle handler is present'
800
+ : `${[...stale, ...missing].join('; ')} — rerun \`notifai hooks install\` to refresh the complete lifecycle set`,
746
801
  });
747
802
  const adapterProblems = installations.flatMap((installation) => (installation.problems ?? []).map((problem) => `${installation.file}: ${problem}`));
748
803
  const sharedAdapter = inspectHookAdapter(deps.hookAdapterHome, deps.hookPlatform);
@@ -784,7 +839,10 @@ function hookChecks(deps) {
784
839
  // Project and global definitions for one harness both fire. Stable adapter
785
840
  // identity deliberately makes their command bytes equal, so comparing
786
841
  // command targets would now hide this duplicate rather than diagnose it.
787
- // Different harnesses remain independent: only the active one runs.
842
+ // Cursor is the exception to harness independence because it may also load
843
+ // Claude's user hook file. The shared adapter detects Cursor's hook-only
844
+ // environment and makes that compatibility copy a no-op; the native Cursor
845
+ // definition remains the single routing owner.
788
846
  const duplicated = [...new Set(installations.map((i) => i.harness))]
789
847
  .map((harness) => ({
790
848
  harness,