@raidiant/notifai 0.5.0 → 1.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 (74) hide show
  1. package/CHANGELOG.md +165 -0
  2. package/README.md +11 -4
  3. package/dist/claude-wake.d.ts +101 -0
  4. package/dist/claude-wake.js +397 -0
  5. package/dist/claude-wake.js.map +1 -0
  6. package/dist/codex-wake.d.ts +84 -0
  7. package/dist/codex-wake.js +238 -0
  8. package/dist/codex-wake.js.map +1 -0
  9. package/dist/commands.d.ts +31 -11
  10. package/dist/commands.js +679 -232
  11. package/dist/commands.js.map +1 -1
  12. package/dist/config-schema.d.ts +3 -3
  13. package/dist/config-schema.js +11 -49
  14. package/dist/config-schema.js.map +1 -1
  15. package/dist/config.d.ts +23 -45
  16. package/dist/config.js +61 -39
  17. package/dist/config.js.map +1 -1
  18. package/dist/harnesses.d.ts +4 -13
  19. package/dist/harnesses.js +12 -17
  20. package/dist/harnesses.js.map +1 -1
  21. package/dist/hook-adapter.d.ts +10 -1
  22. package/dist/hook-adapter.js +79 -10
  23. package/dist/hook-adapter.js.map +1 -1
  24. package/dist/hooks.d.ts +119 -65
  25. package/dist/hooks.js +330 -285
  26. package/dist/hooks.js.map +1 -1
  27. package/dist/install-hooks.d.ts +76 -24
  28. package/dist/install-hooks.js +301 -125
  29. package/dist/install-hooks.js.map +1 -1
  30. package/dist/interactive.d.ts +32 -1
  31. package/dist/interactive.js +165 -51
  32. package/dist/interactive.js.map +1 -1
  33. package/dist/main.js +14 -21
  34. package/dist/main.js.map +1 -1
  35. package/dist/native-skills.d.ts +1 -1
  36. package/dist/native-skills.js +23 -58
  37. package/dist/native-skills.js.map +1 -1
  38. package/dist/pack-feedback-slice.d.ts +35 -0
  39. package/dist/pack-feedback-slice.js +126 -0
  40. package/dist/pack-feedback-slice.js.map +1 -0
  41. package/dist/readiness.d.ts +20 -0
  42. package/dist/readiness.js +24 -0
  43. package/dist/readiness.js.map +1 -1
  44. package/dist/release.d.ts +31 -0
  45. package/dist/release.js +52 -0
  46. package/dist/release.js.map +1 -0
  47. package/dist/ui/theme.d.ts +1 -1
  48. package/package.json +11 -10
  49. package/src/commands.test.ts +386 -36
  50. package/src/commands.ts +473 -182
  51. package/src/config-schema.ts +2 -17
  52. package/src/config.test.ts +29 -4
  53. package/src/config.ts +67 -11
  54. package/src/harnesses.ts +7 -0
  55. package/src/hook-adapter.test.ts +43 -1
  56. package/src/hook-adapter.ts +83 -11
  57. package/src/hooks.test.ts +4 -5
  58. package/src/install-hooks.test.ts +154 -2
  59. package/src/install-hooks.ts +231 -44
  60. package/src/interactive.test.ts +338 -0
  61. package/src/interactive.ts +221 -49
  62. package/src/main.ts +14 -20
  63. package/src/native-skills.test.ts +75 -0
  64. package/src/native-skills.ts +31 -75
  65. package/src/pack-feedback-slice.test.ts +212 -0
  66. package/src/pack-feedback-slice.ts +187 -0
  67. package/src/readiness.test.ts +25 -0
  68. package/src/readiness.ts +38 -0
  69. package/src/release.ts +51 -0
  70. package/src/skill.test.ts +43 -0
  71. package/src/ui/config-view.test.ts +5 -4
  72. package/dist/idle.d.ts +0 -16
  73. package/dist/idle.js +0 -44
  74. package/dist/idle.js.map +0 -1
package/dist/main.js CHANGED
@@ -1,10 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { readFileSync } from 'node:fs';
3
- import path from 'node:path';
4
- import { fileURLToPath } from 'node:url';
5
3
  import { Command } from 'commander';
6
4
  import { askCommand, accessStatusCommand, authStatusCommand, capabilitiesCommand, closeCommand, configExplainCommand, configSetCommand, configShowCommand, configUnsetCommand, devicesCommand, doctorCommand, hookDefersDiagnosticsUntilAfterCleanup, hookRunCommand, hooksInstallCommand, hooksUninstallCommand, initCommand, loginCommand, logoutCommand, logsCommand, realIo, repliesCommand, sendCommand, statusCommand, } from './commands.js';
7
5
  import { defaultCredentialStore } from './credentials.js';
6
+ import { packageVersion } from './release.js';
8
7
  import { HARNESSES } from './install-hooks.js';
9
8
  import { nativeSkills } from './native-skills.js';
10
9
  import { GROUP, SEND_GROUP, helpConfiguration, rootHelpFooter } from './ui/help.js';
@@ -34,19 +33,13 @@ const deps = {
34
33
  * does not hold — `package.json` moved and `notifai --version` kept reporting
35
34
  * the old number, which is exactly the string someone pastes into a bug report
36
35
  * to say what they are running.
36
+ *
37
+ * `unknown` is the display form of "this build cannot tell"; the skill pin
38
+ * derived from the same source refuses instead, because a wrong ref installs
39
+ * the wrong thing while a wrong version string only misinforms.
37
40
  */
38
41
  function version() {
39
- try {
40
- const manifest = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'package.json');
41
- const parsed = JSON.parse(readFileSync(manifest, 'utf8'));
42
- if (typeof parsed === 'object' && parsed !== null && typeof parsed.version === 'string') {
43
- return parsed.version;
44
- }
45
- }
46
- catch {
47
- // Fall through: an unreadable manifest must not stop the CLI running.
48
- }
49
- return 'unknown';
42
+ return packageVersion() ?? 'unknown';
50
43
  }
51
44
  /**
52
45
  * The full command path, e.g. `config set`, so a filter on `cmd` distinguishes
@@ -165,7 +158,7 @@ program
165
158
  .summary('Sign in and pair this machine')
166
159
  .description('Pair this machine with your Notifai account via browser approval')
167
160
  .option('--name <name>', 'machine name shown in the dashboard (default: hostname)')
168
- .option('--base-url <url>', 'Notifai server URL')
161
+ .option('--base-url <url>', 'developer override for the service origin (also NOTIFAI_BASE_URL)')
169
162
  .option('--no-open', 'do not open the approval page in a browser')
170
163
  .action(async (opts) => {
171
164
  process.exit(await loginCommand(deps, opts));
@@ -236,8 +229,6 @@ const send = program
236
229
  .option('--session <id>', 'session identity (env: NOTIFAI_SESSION); presentation varies by surface')
237
230
  .option('--event <event>', 'agent event name, e.g. tests_passed')
238
231
  .optionsGroup(SEND_GROUP.presentation)
239
- .option('--sound <sound>', 'default | done | attention | alert | none')
240
- .option('--level <level>', 'interruption level: passive | active | time_sensitive')
241
232
  .option('--collapse-key <key>', 'replace earlier notifications with the same key')
242
233
  .option('--thread-id <id>', 'group related notifications')
243
234
  .option('--ttl <seconds>', 'delivery window in seconds', (v) => Number(v))
@@ -252,11 +243,13 @@ const send = program
252
243
  // a message pointing at `ask` instead of "unknown option".
253
244
  .option('--no-block', 'rejected with --reply; use `notifai ask` to ask and end the turn')
254
245
  .optionsGroup(SEND_GROUP.advanced)
246
+ .option('--sound <sound>', 'override kind profile / saved config: default | done | attention | alert | none')
247
+ .option('--level <level>', 'override kind profile / saved config: passive | active | time_sensitive')
255
248
  .option('--wait <seconds>', 'how long to wait for provider outcomes', (v) => Number(v))
256
249
  .option('--no-wait', 'return immediately after acceptance')
257
250
  .option('--data <key=value>', 'custom data (repeatable)', (v, all) => [...all, v], [])
258
251
  .option('--idempotency-key <key>', 'safe-retry key (default: random)')
259
- .option('--base-url <url>', 'Notifai server URL')
252
+ .option('--base-url <url>', 'developer override for the service origin (also NOTIFAI_BASE_URL)')
260
253
  .option('--json', 'print the full submission receipt as JSON')
261
254
  .action(async (opts) => {
262
255
  // commander maps --no-wait onto the same "wait" flag; disentangle.
@@ -293,7 +286,7 @@ const send = program
293
286
  flags.wait = wait;
294
287
  process.exit(await sendCommand(deps, flags));
295
288
  });
296
- send.addHelpText('after', `\nKind profiles (used unless --sound, --level, or saved user config overrides them):\n update sound none level passive\n done sound done level passive\n question sound attention level active (--reply)\n`);
289
+ send.addHelpText('after', `\nKind profiles apply automatically. Pass --sound or --level only to override them or saved user config:\n update sound none level passive\n done sound done level passive\n question sound attention level active (--reply)\n`);
297
290
  program
298
291
  .command('replies [request_id]')
299
292
  .helpGroup(GROUP.agent)
@@ -392,7 +385,7 @@ const hooks = program
392
385
  hooks
393
386
  .command('install')
394
387
  .description('Wire this harness to route registered questions to your devices')
395
- .option('--harness <name>', 'claude-code | codex | cursor | opencode (default: detected)')
388
+ .option('--harness <name>', 'claude-code | codex | cursor | opencode (default: every detected harness)')
396
389
  .option('--global', 'install for every project instead of just this one')
397
390
  .action((opts) => {
398
391
  process.exit(hooksInstallCommand(deps, opts));
@@ -456,7 +449,7 @@ config
456
449
  .command('set <key> <value>')
457
450
  .description('Set a configuration value (choose a layer interactively; unattended defaults machine-global and requires --yes)')
458
451
  .option('--project', 'write to the shared .notifai/config.toml instead')
459
- .option('--local', 'write to personal .notifai/config.local.toml (keep it gitignored)')
452
+ .option('--local', 'write a personal project preference on this machine (not in the repo)')
460
453
  .option('--session <id>', 'apply only to one session')
461
454
  .option('--yes', 'skip the confirmation gate')
462
455
  .action(async (key, value, opts) => {
@@ -466,7 +459,7 @@ config
466
459
  .command('unset <key>')
467
460
  .description('Remove a configuration value so the next layer or shipped default applies (choose a layer interactively; unattended defaults machine-global and requires --yes)')
468
461
  .option('--project', 'remove from the shared .notifai/config.toml instead')
469
- .option('--local', 'remove from personal .notifai/config.local.toml')
462
+ .option('--local', 'remove a personal project preference stored on this machine')
470
463
  .option('--session <id>', 'remove from one session')
471
464
  .option('--yes', 'skip the confirmation gate')
472
465
  .action(async (key, opts) => {
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export interface SkillsAddOptions {
24
24
  export interface NativeSkills {
25
25
  /** Launch the native interactive `npx skills add` flow. */
26
26
  add(options: SkillsAddOptions): Promise<number>;
27
- /** Ask the native installer for its managed install inventory. */
27
+ /** Read installer-managed inventory from lock files. Does not spawn npx. */
28
28
  list(scope: SkillScope, cwd: string, env: NodeJS.ProcessEnv): Promise<SkillsListResult>;
29
29
  }
30
30
  /** The only process/filesystem adapter Notifai needs for the external installer. */
@@ -23,51 +23,28 @@ function readLock(scope, cwd, env) {
23
23
  return {};
24
24
  }
25
25
  }
26
- function lockEntryFor(lock, name) {
27
- const direct = lock.skills?.[name];
28
- if (direct)
29
- return direct;
30
- const normalized = name.toLowerCase().replace(/[\s_]+/g, '-');
31
- const key = Object.keys(lock.skills ?? {}).find((candidate) => candidate.toLowerCase().replace(/[\s_]+/g, '-') === normalized);
32
- return key === undefined ? undefined : lock.skills?.[key];
33
- }
34
- function jsonArray(stdout) {
35
- const start = stdout.indexOf('[');
36
- const end = stdout.lastIndexOf(']');
37
- if (start < 0 || end < start)
38
- return null;
39
- try {
40
- const parsed = JSON.parse(stdout.slice(start, end + 1));
41
- return Array.isArray(parsed) ? parsed : null;
42
- }
43
- catch {
44
- return null;
45
- }
26
+ function conventionalSkillPath(scope, name, cwd, env) {
27
+ if (scope === 'project')
28
+ return path.join(cwd, '.agents', 'skills', name);
29
+ const home = env['HOME'] ?? env['USERPROFILE'] ?? os.homedir();
30
+ return path.join(home, '.agents', 'skills', name);
46
31
  }
47
- function managedSkills(stdout, scope, cwd, env) {
48
- const entries = jsonArray(stdout);
49
- if (entries === null)
50
- return null;
32
+ function skillsFromLock(scope, cwd, env) {
51
33
  const lock = readLock(scope, cwd, env);
52
- return entries.flatMap((entry) => {
34
+ return Object.entries(lock.skills ?? {}).flatMap(([name, entry]) => {
53
35
  if (entry === null || typeof entry !== 'object')
54
36
  return [];
55
- const value = entry;
56
- if (typeof value.name !== 'string' ||
57
- typeof value.path !== 'string' ||
58
- value.scope !== scope) {
59
- return [];
60
- }
61
- const lockEntry = lockEntryFor(lock, value.name);
62
37
  return [
63
38
  {
64
- name: value.name,
39
+ name,
65
40
  scope,
66
- path: value.path,
67
- source: typeof value.source === 'string' ? value.source : null,
68
- sourceType: typeof value.sourceType === 'string' ? value.sourceType : null,
69
- sourceUrl: typeof value.sourceUrl === 'string' ? value.sourceUrl : null,
70
- ref: typeof lockEntry?.ref === 'string' ? lockEntry.ref : null,
41
+ path: typeof entry.skillPath === 'string' && entry.skillPath !== ''
42
+ ? entry.skillPath
43
+ : conventionalSkillPath(scope, name, cwd, env),
44
+ source: typeof entry.source === 'string' ? entry.source : null,
45
+ sourceType: typeof entry.sourceType === 'string' ? entry.sourceType : null,
46
+ sourceUrl: typeof entry.sourceUrl === 'string' ? entry.sourceUrl : null,
47
+ ref: typeof entry.ref === 'string' ? entry.ref : null,
71
48
  },
72
49
  ];
73
50
  });
@@ -77,19 +54,10 @@ function run(args, options) {
77
54
  const child = spawn('npx', args, {
78
55
  cwd: options.cwd,
79
56
  env: options.env,
80
- stdio: options.stdio === 'inherit' ? 'inherit' : ['ignore', 'pipe', 'ignore'],
57
+ stdio: 'inherit',
81
58
  });
82
- if (options.stdio === 'capture') {
83
- let stdout = '';
84
- child.stdout?.on('data', (chunk) => {
85
- stdout += chunk.toString();
86
- });
87
- child.on('error', () => resolve({ code: 1, stdout }));
88
- child.on('exit', (code) => resolve({ code: code ?? 1, stdout }));
89
- return;
90
- }
91
- child.on('error', () => resolve({ code: 1, stdout: '' }));
92
- child.on('exit', (code) => resolve({ code: code ?? 1, stdout: '' }));
59
+ child.on('error', () => resolve(1));
60
+ child.on('exit', (code) => resolve(code ?? 1));
93
61
  });
94
62
  }
95
63
  /** The only process/filesystem adapter Notifai needs for the external installer. */
@@ -102,16 +70,13 @@ export const nativeSkills = {
102
70
  // remaining installer prompts non-interactive after the scope is chosen.
103
71
  if (options.scope !== undefined)
104
72
  args.push('--yes');
105
- return (await run(args, { cwd: options.cwd, env: options.env, stdio: 'inherit' })).code;
73
+ return run(args, { cwd: options.cwd, env: options.env });
106
74
  },
107
75
  async list(scope, cwd, env) {
108
- const result = await run(['-y', 'skills', 'list', '--json', ...(scope === 'global' ? ['--global'] : [])], { cwd, env, stdio: 'capture' });
109
- if (result.code !== 0)
110
- return { skills: [], error: `npx skills list exited with code ${result.code}` };
111
- const skills = managedSkills(result.stdout, scope, cwd, env);
112
- return skills === null
113
- ? { skills: [], error: 'npx skills list returned invalid JSON' }
114
- : { skills };
76
+ // Presence is already on disk. `npx skills list` takes seconds and cannot
77
+ // change whether the notifai skill is installed — the lock file is what
78
+ // the installer itself consults.
79
+ return { skills: skillsFromLock(scope, cwd, env) };
115
80
  },
116
81
  };
117
82
  //# sourceMappingURL=native-skills.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"native-skills.js","sourceRoot":"","sources":["../src/native-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAwD5B,SAAS,aAAa,CAAC,KAAiB,EAAE,GAAW,EAAE,GAAsB;IAC3E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;IAClE,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IAC9D,OAAO,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE;QAChD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,kBAAkB,CAAC;QACpD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAA;AACpD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB,EAAE,GAAW,EAAE,GAAsB;IACtE,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAa,CAAA;QACjE,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAc,EAAE,IAAY;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC7D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAC7C,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,UAAU,CAC9E,CAAA;IACD,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAA;AAC3D,CAAC;AAED,SAAS,SAAS,CAAC,MAAc;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK;QAAE,OAAO,IAAI,CAAA;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAChE,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,KAAiB,EAAE,GAAW,EAAE,GAAsB;IAC3F,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IACjC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACtC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAiB,EAAE;QAC9C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAA;QAC1D,MAAM,KAAK,GAAG,KAAkB,CAAA;QAChC,IACE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,KAAK,CAAC,KAAK,KAAK,KAAK,EACrB,CAAC;YACD,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAChD,OAAO;YACL;gBACE,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;gBAC9D,UAAU,EAAE,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;gBAC1E,SAAS,EAAE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;gBACvE,GAAG,EAAE,OAAO,SAAS,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;aAC/D;SACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,GAAG,CACV,IAAc,EACd,OAA8E;IAE9E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE;YAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SAC9E,CAAC,CAAA;QACF,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,MAAM,GAAG,EAAE,CAAA;YACf,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;gBAClD,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAA;YAC5B,CAAC,CAAC,CAAA;YACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;YACrD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;YAChE,OAAM;QACR,CAAC;QACD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;QACzD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAC9E,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACrD,yEAAyE;QACzE,yEAAyE;QACzE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACnD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACzF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG;QACxB,MAAM,MAAM,GAAG,MAAM,GAAG,CACtB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/E,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAC/B,CAAA;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,oCAAoC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAA;QACtG,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAC5D,OAAO,MAAM,KAAK,IAAI;YACpB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,uCAAuC,EAAE;YAChE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"native-skills.js","sourceRoot":"","sources":["../src/native-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAgD5B,SAAS,aAAa,CAAC,KAAiB,EAAE,GAAW,EAAE,GAAsB;IAC3E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;IAClE,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IAC9D,OAAO,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE;QAChD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,kBAAkB,CAAC;QACpD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAA;AACpD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB,EAAE,GAAW,EAAE,GAAsB;IACtE,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAa,CAAA;QACjE,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAiB,EACjB,IAAY,EACZ,GAAW,EACX,GAAsB;IAEtB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IACzE,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,cAAc,CAAC,KAAiB,EAAE,GAAW,EAAE,GAAsB;IAC5E,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACtC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAiB,EAAE;QAChF,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAA;QAC1D,OAAO;YACL;gBACE,IAAI;gBACJ,KAAK;gBACL,IAAI,EACF,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,EAAE;oBAC3D,CAAC,CAAC,KAAK,CAAC,SAAS;oBACjB,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;gBAClD,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;gBAC9D,UAAU,EAAE,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;gBAC1E,SAAS,EAAE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;gBACvE,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;aACtD;SACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,IAAc,EAAE,OAAgD;IAC3E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE;YAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAA;QACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QACnC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAC9E,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACrD,yEAAyE;QACzE,yEAAyE;QACzE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACnD,OAAO,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG;QACxB,0EAA0E;QAC1E,wEAAwE;QACxE,iCAAiC;QACjC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IACpD,CAAC;CACF,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { type LogQuery, type LogRecord } from './logging.js';
2
+ export declare const FEEDBACK_SLICE_UNCOMPRESSED_CAP: number;
3
+ export declare const FEEDBACK_SLICE_COMPRESSED_CAP: number;
4
+ export declare const FEEDBACK_SLICE_DEFAULT_WINDOW_MS: number;
5
+ export interface PackFeedbackSliceOptions extends LogQuery {
6
+ /** Epoch ms. Defaults to now. Tests freeze the window with this. */
7
+ now?: number;
8
+ }
9
+ export interface PackedFeedbackSlice {
10
+ records: LogRecord[];
11
+ jsonl: string;
12
+ gzip?: Buffer;
13
+ uncompressed_bytes: number;
14
+ compressed_bytes: number;
15
+ record_count: number;
16
+ truncated: boolean;
17
+ since: number;
18
+ until: number;
19
+ schema_version: number;
20
+ consentSummary: string;
21
+ }
22
+ export interface FeedbackSliceWire {
23
+ encoding: 'gzip+base64';
24
+ bytes: string;
25
+ uncompressed_bytes: number;
26
+ compressed_bytes: number;
27
+ record_count: number;
28
+ truncated: boolean;
29
+ since: string;
30
+ until: string;
31
+ schema_version: number;
32
+ }
33
+ /** Wire form. Empty slices have nothing to encode. */
34
+ export declare function encodeFeedbackSlice(slice: PackedFeedbackSlice): FeedbackSliceWire | undefined;
35
+ export declare function packFeedbackSlice(env?: NodeJS.ProcessEnv, options?: PackFeedbackSliceOptions): PackedFeedbackSlice;
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Consented, bounded slice of the local log for a later feedback send.
3
+ *
4
+ * This module packs. It does not upload. A caller that wants a report on
5
+ * the wire asks here for the bytes and the consent copy, then decides
6
+ * whether to send them.
7
+ */
8
+ import { gzipSync } from 'node:zlib';
9
+ import { LOG_SCHEMA_VERSION, readLogRecords, } from './logging.js';
10
+ export const FEEDBACK_SLICE_UNCOMPRESSED_CAP = 256 * 1024;
11
+ export const FEEDBACK_SLICE_COMPRESSED_CAP = 128 * 1024;
12
+ export const FEEDBACK_SLICE_DEFAULT_WINDOW_MS = 24 * 60 * 60 * 1000;
13
+ /** High enough that on-disk rotation, not this number, bounds a full-window read. */
14
+ const FULL_WINDOW_READ_LIMIT = 1_000_000;
15
+ /** Wire form. Empty slices have nothing to encode. */
16
+ export function encodeFeedbackSlice(slice) {
17
+ if (slice.gzip === undefined)
18
+ return undefined;
19
+ return {
20
+ encoding: 'gzip+base64',
21
+ bytes: slice.gzip.toString('base64'),
22
+ uncompressed_bytes: slice.uncompressed_bytes,
23
+ compressed_bytes: slice.compressed_bytes,
24
+ record_count: slice.record_count,
25
+ truncated: slice.truncated,
26
+ since: new Date(slice.since).toISOString(),
27
+ until: new Date(slice.until).toISOString(),
28
+ schema_version: slice.schema_version,
29
+ };
30
+ }
31
+ export function packFeedbackSlice(env = process.env, options = {}) {
32
+ const { now, since: sinceOption, limit, ...filters } = options;
33
+ const until = now ?? Date.now();
34
+ const since = sinceOption ?? until - FEEDBACK_SLICE_DEFAULT_WINDOW_MS;
35
+ const { records } = readLogRecords(env, {
36
+ ...filters,
37
+ since,
38
+ limit: limit ?? FULL_WINDOW_READ_LIMIT,
39
+ });
40
+ if (records.length === 0) {
41
+ return emptySlice(since, until);
42
+ }
43
+ const packed = fitToCaps(records);
44
+ if (packed === null) {
45
+ return emptySlice(since, until);
46
+ }
47
+ return {
48
+ records: packed.records,
49
+ jsonl: packed.jsonl,
50
+ gzip: packed.gzip,
51
+ uncompressed_bytes: packed.uncompressedBytes,
52
+ compressed_bytes: packed.gzip.length,
53
+ record_count: packed.records.length,
54
+ truncated: packed.truncated,
55
+ since,
56
+ until,
57
+ schema_version: LOG_SCHEMA_VERSION,
58
+ consentSummary: consentSummary({
59
+ since,
60
+ until,
61
+ recordCount: packed.records.length,
62
+ uncompressedBytes: packed.uncompressedBytes,
63
+ compressedBytes: packed.gzip.length,
64
+ }),
65
+ };
66
+ }
67
+ function fitToCaps(records) {
68
+ const lines = records.map((record) => JSON.stringify(record));
69
+ let start = 0;
70
+ let truncated = false;
71
+ while (start < lines.length) {
72
+ const jsonl = toJsonl(lines.slice(start));
73
+ const uncompressedBytes = Buffer.byteLength(jsonl);
74
+ if (uncompressedBytes > FEEDBACK_SLICE_UNCOMPRESSED_CAP) {
75
+ start += 1;
76
+ truncated = true;
77
+ continue;
78
+ }
79
+ const gzip = gzipSync(jsonl);
80
+ if (gzip.length <= FEEDBACK_SLICE_COMPRESSED_CAP) {
81
+ return {
82
+ records: records.slice(start),
83
+ jsonl,
84
+ gzip,
85
+ uncompressedBytes,
86
+ truncated,
87
+ };
88
+ }
89
+ start += 1;
90
+ truncated = true;
91
+ }
92
+ return null;
93
+ }
94
+ function emptySlice(since, until) {
95
+ return {
96
+ records: [],
97
+ jsonl: '',
98
+ uncompressed_bytes: 0,
99
+ compressed_bytes: 0,
100
+ record_count: 0,
101
+ truncated: false,
102
+ since,
103
+ until,
104
+ schema_version: LOG_SCHEMA_VERSION,
105
+ consentSummary: consentSummary({
106
+ since,
107
+ until,
108
+ recordCount: 0,
109
+ uncompressedBytes: 0,
110
+ compressedBytes: 0,
111
+ }),
112
+ };
113
+ }
114
+ function toJsonl(lines) {
115
+ if (lines.length === 0)
116
+ return '';
117
+ return `${lines.join('\n')}\n`;
118
+ }
119
+ function consentSummary(input) {
120
+ const from = new Date(input.since).toISOString();
121
+ const to = new Date(input.until).toISOString();
122
+ return (`About to send ${String(input.recordCount)} log records from ${from} to ${to} ` +
123
+ `(${String(input.uncompressedBytes)} bytes uncompressed, ${String(input.compressedBytes)} bytes compressed). ` +
124
+ 'Credentials are already removed. Notification titles and the user\'s answers are in the log.');
125
+ }
126
+ //# sourceMappingURL=pack-feedback-slice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-feedback-slice.js","sourceRoot":"","sources":["../src/pack-feedback-slice.ts"],"names":[],"mappings":"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"}
@@ -85,3 +85,23 @@ export declare function firstBlocker(readiness: Readiness): ReadinessState | nul
85
85
  export declare function isReady(readiness: Readiness): boolean;
86
86
  /** Everything that could still be done, blocking or not, in dependency order. */
87
87
  export declare function openItems(readiness: Readiness): ReadinessState[];
88
+ /**
89
+ * Work an assessment can do.
90
+ *
91
+ * `local` is this machine's files: project config, hook installs, skill lock
92
+ * files. `remote` is everything that leaves the process — the keychain, the
93
+ * service, the account, devices, and delivery evidence. The split exists so a
94
+ * redraw after a settings change does not pay for a health check.
95
+ */
96
+ export type ReadinessRefresh = 'local' | 'remote';
97
+ /**
98
+ * After a menu action, which readiness work is worth doing.
99
+ *
100
+ * `null` means keep the assessment already in hand. Doctor is the report, not
101
+ * a mutation: the check it just ran is the redraw. A test send and a device
102
+ * list cannot change setup. Settings and hook wiring stay on this machine
103
+ * unless the caller says the service URL itself moved.
104
+ */
105
+ export declare function refreshAfterMenuAction(action: 'setup' | 'account' | 'test' | 'devices' | 'settings' | 'routing' | 'doctor', changed: boolean, options?: {
106
+ remote?: boolean;
107
+ }): readonly ReadinessRefresh[] | null;
package/dist/readiness.js CHANGED
@@ -37,4 +37,28 @@ export function isReady(readiness) {
37
37
  export function openItems(readiness) {
38
38
  return readiness.states.filter((s) => s.status === 'gap' || s.status === 'optional-gap');
39
39
  }
40
+ /**
41
+ * After a menu action, which readiness work is worth doing.
42
+ *
43
+ * `null` means keep the assessment already in hand. Doctor is the report, not
44
+ * a mutation: the check it just ran is the redraw. A test send and a device
45
+ * list cannot change setup. Settings and hook wiring stay on this machine
46
+ * unless the caller says the service URL itself moved.
47
+ */
48
+ export function refreshAfterMenuAction(action, changed, options = {}) {
49
+ switch (action) {
50
+ case 'doctor':
51
+ case 'test':
52
+ case 'devices':
53
+ return null;
54
+ case 'setup':
55
+ case 'account':
56
+ return changed ? ['local', 'remote'] : null;
57
+ case 'settings':
58
+ case 'routing':
59
+ if (!changed)
60
+ return null;
61
+ return options.remote === true ? ['local', 'remote'] : ['local'];
62
+ }
63
+ }
40
64
  //# sourceMappingURL=readiness.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readiness.js","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAgDH,oEAAoE;AACpE,MAAM,UAAU,YAAY,CAAC,SAAoB;IAC/C,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,IAAI,CAAA;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,SAAoB;IAC1C,OAAO,YAAY,CAAC,SAAS,CAAC,KAAK,IAAI,CAAA;AACzC,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,SAAS,CAAC,SAAoB;IAC5C,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,CAAA;AAC1F,CAAC"}
1
+ {"version":3,"file":"readiness.js","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAgDH,oEAAoE;AACpE,MAAM,UAAU,YAAY,CAAC,SAAoB;IAC/C,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,IAAI,CAAA;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,SAAoB;IAC1C,OAAO,YAAY,CAAC,SAAS,CAAC,KAAK,IAAI,CAAA;AACzC,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,SAAS,CAAC,SAAoB;IAC5C,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,CAAA;AAC1F,CAAC;AAYD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAoF,EACpF,OAAgB,EAChB,UAAgC,EAAE;IAElC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO,IAAI,CAAA;QACb,KAAK,OAAO,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC7C,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS;YACZ,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAA;YACzB,OAAO,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACpE,CAAC;AACH,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * What this build is, according to the manifest npm actually shipped.
3
+ *
4
+ * Read from disk rather than compiled in, because a constant baked into
5
+ * `dist/` is only ever as fresh as the last build. A stale `dist/` sitting
6
+ * next to a newer `package.json` is a real failure mode — it produces a CLI
7
+ * that reports the new version perfectly while running the old code — and the
8
+ * only defence that survives it is refusing to carry a second copy of the
9
+ * number at all.
10
+ *
11
+ * The manifest sits one level above both `src/` and `dist/`, so a single
12
+ * relative path resolves in a source checkout and in a published install.
13
+ *
14
+ * Returns null rather than guessing: a build that cannot establish its own
15
+ * identity has to say so, so callers can degrade honestly instead of
16
+ * asserting something they do not know.
17
+ */
18
+ export declare function packageVersion(): string | null;
19
+ /**
20
+ * Where `npx skills add` fetches the agent skill from, as printed to users.
21
+ *
22
+ * Always an immutable tag naming this exact build. The skill and the CLI ship
23
+ * from one repository at one version, and the skill describes how to drive the
24
+ * CLI — so a moving ref would hand someone guidance for a tool they do not
25
+ * have. Deriving it from the version is what keeps the two from disagreeing;
26
+ * it used to be maintained by hand in three places, and the copies drifted.
27
+ *
28
+ * In the skills CLI grammar `owner/repo#ref` selects a Git ref, while
29
+ * `owner/repo@name` selects a skill — so the `#` here is load-bearing.
30
+ */
31
+ export declare function skillsSource(): string | null;