@aligndottech/cli 0.37.0 → 0.38.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 (202) hide show
  1. package/README.md +16 -10
  2. package/dist/cli.d.ts +28 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +98 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/check.d.ts +1 -1
  7. package/dist/commands/check.d.ts.map +1 -1
  8. package/dist/commands/check.js +44 -2
  9. package/dist/commands/check.js.map +1 -1
  10. package/dist/commands/connect-agents.d.ts +1 -0
  11. package/dist/commands/connect-agents.d.ts.map +1 -1
  12. package/dist/commands/connect-agents.js +10 -6
  13. package/dist/commands/connect-agents.js.map +1 -1
  14. package/dist/commands/connect.d.ts +31 -0
  15. package/dist/commands/connect.d.ts.map +1 -0
  16. package/dist/commands/connect.js +92 -0
  17. package/dist/commands/connect.js.map +1 -0
  18. package/dist/commands/context.d.ts.map +1 -1
  19. package/dist/commands/context.js +52 -10
  20. package/dist/commands/context.js.map +1 -1
  21. package/dist/commands/decisions/index.d.ts.map +1 -1
  22. package/dist/commands/decisions/index.js +5 -0
  23. package/dist/commands/decisions/index.js.map +1 -1
  24. package/dist/commands/default-action.d.ts +3 -1
  25. package/dist/commands/default-action.d.ts.map +1 -1
  26. package/dist/commands/default-action.js +29 -27
  27. package/dist/commands/default-action.js.map +1 -1
  28. package/dist/commands/export.d.ts.map +1 -1
  29. package/dist/commands/export.js +3 -0
  30. package/dist/commands/export.js.map +1 -1
  31. package/dist/commands/import/sessions.d.ts +10 -2
  32. package/dist/commands/import/sessions.d.ts.map +1 -1
  33. package/dist/commands/import/sessions.js +98 -3
  34. package/dist/commands/import/sessions.js.map +1 -1
  35. package/dist/commands/import.d.ts +7 -0
  36. package/dist/commands/import.d.ts.map +1 -1
  37. package/dist/commands/import.js +42 -2
  38. package/dist/commands/import.js.map +1 -1
  39. package/dist/commands/invite.d.ts +25 -0
  40. package/dist/commands/invite.d.ts.map +1 -0
  41. package/dist/commands/invite.js +68 -0
  42. package/dist/commands/invite.js.map +1 -0
  43. package/dist/commands/links.d.ts.map +1 -1
  44. package/dist/commands/links.js +5 -0
  45. package/dist/commands/links.js.map +1 -1
  46. package/dist/commands/mcp.d.ts +64 -35
  47. package/dist/commands/mcp.d.ts.map +1 -1
  48. package/dist/commands/mcp.js +85 -40
  49. package/dist/commands/mcp.js.map +1 -1
  50. package/dist/commands/ratify.d.ts.map +1 -1
  51. package/dist/commands/ratify.js +21 -0
  52. package/dist/commands/ratify.js.map +1 -1
  53. package/dist/commands/registry.d.ts +30 -0
  54. package/dist/commands/registry.d.ts.map +1 -0
  55. package/dist/commands/registry.js +70 -0
  56. package/dist/commands/registry.js.map +1 -0
  57. package/dist/commands/setup.d.ts +45 -1
  58. package/dist/commands/setup.d.ts.map +1 -1
  59. package/dist/commands/setup.js +197 -88
  60. package/dist/commands/setup.js.map +1 -1
  61. package/dist/commands/status.d.ts.map +1 -1
  62. package/dist/commands/status.js +10 -22
  63. package/dist/commands/status.js.map +1 -1
  64. package/dist/commands/telemetry.d.ts +7 -3
  65. package/dist/commands/telemetry.d.ts.map +1 -1
  66. package/dist/commands/telemetry.js +12 -7
  67. package/dist/commands/telemetry.js.map +1 -1
  68. package/dist/commands/why.d.ts.map +1 -1
  69. package/dist/commands/why.js +54 -12
  70. package/dist/commands/why.js.map +1 -1
  71. package/dist/index.js +4 -90
  72. package/dist/index.js.map +1 -1
  73. package/dist/lib/agent-rules.d.ts +1 -0
  74. package/dist/lib/agent-rules.d.ts.map +1 -1
  75. package/dist/lib/agent-rules.js +60 -0
  76. package/dist/lib/agent-rules.js.map +1 -1
  77. package/dist/lib/capture-report.d.ts +4 -0
  78. package/dist/lib/capture-report.d.ts.map +1 -1
  79. package/dist/lib/capture-report.js +18 -1
  80. package/dist/lib/capture-report.js.map +1 -1
  81. package/dist/lib/commands-doc.d.ts +15 -0
  82. package/dist/lib/commands-doc.d.ts.map +1 -0
  83. package/dist/lib/commands-doc.js +85 -0
  84. package/dist/lib/commands-doc.js.map +1 -0
  85. package/dist/lib/config.d.ts +14 -2
  86. package/dist/lib/config.d.ts.map +1 -1
  87. package/dist/lib/config.js +7 -0
  88. package/dist/lib/config.js.map +1 -1
  89. package/dist/lib/connect-prompt.d.ts +1 -1
  90. package/dist/lib/connect-prompt.js +2 -2
  91. package/dist/lib/connect-prompt.js.map +1 -1
  92. package/dist/lib/decision-links.d.ts +39 -0
  93. package/dist/lib/decision-links.d.ts.map +1 -1
  94. package/dist/lib/decision-links.js +51 -0
  95. package/dist/lib/decision-links.js.map +1 -1
  96. package/dist/lib/fetchers/linear.d.ts.map +1 -1
  97. package/dist/lib/fetchers/linear.js +27 -1
  98. package/dist/lib/fetchers/linear.js.map +1 -1
  99. package/dist/lib/fetchers/slack.d.ts +12 -1
  100. package/dist/lib/fetchers/slack.d.ts.map +1 -1
  101. package/dist/lib/fetchers/slack.js +12 -1
  102. package/dist/lib/fetchers/slack.js.map +1 -1
  103. package/dist/lib/first-decision.d.ts +22 -0
  104. package/dist/lib/first-decision.d.ts.map +1 -0
  105. package/dist/lib/first-decision.js +22 -0
  106. package/dist/lib/first-decision.js.map +1 -0
  107. package/dist/lib/gateway-client.d.ts +13 -0
  108. package/dist/lib/gateway-client.d.ts.map +1 -1
  109. package/dist/lib/gateway-client.js +38 -0
  110. package/dist/lib/gateway-client.js.map +1 -1
  111. package/dist/lib/git.d.ts +28 -0
  112. package/dist/lib/git.d.ts.map +1 -1
  113. package/dist/lib/git.js +42 -0
  114. package/dist/lib/git.js.map +1 -1
  115. package/dist/lib/hook-context.d.ts +7 -0
  116. package/dist/lib/hook-context.d.ts.map +1 -0
  117. package/dist/lib/hook-context.js +37 -0
  118. package/dist/lib/hook-context.js.map +1 -0
  119. package/dist/lib/hook-payload.d.ts +7 -0
  120. package/dist/lib/hook-payload.d.ts.map +1 -1
  121. package/dist/lib/hook-payload.js +56 -8
  122. package/dist/lib/hook-payload.js.map +1 -1
  123. package/dist/lib/invite-prompt.d.ts +46 -0
  124. package/dist/lib/invite-prompt.d.ts.map +1 -0
  125. package/dist/lib/invite-prompt.js +63 -0
  126. package/dist/lib/invite-prompt.js.map +1 -0
  127. package/dist/lib/local-db.d.ts +32 -2
  128. package/dist/lib/local-db.d.ts.map +1 -1
  129. package/dist/lib/local-db.js +80 -5
  130. package/dist/lib/local-db.js.map +1 -1
  131. package/dist/lib/local-embeddings.d.ts +14 -0
  132. package/dist/lib/local-embeddings.d.ts.map +1 -1
  133. package/dist/lib/local-embeddings.js +16 -2
  134. package/dist/lib/local-embeddings.js.map +1 -1
  135. package/dist/lib/local-gateway-client.d.ts.map +1 -1
  136. package/dist/lib/local-gateway-client.js +23 -3
  137. package/dist/lib/local-gateway-client.js.map +1 -1
  138. package/dist/lib/local-llm.d.ts +60 -5
  139. package/dist/lib/local-llm.d.ts.map +1 -1
  140. package/dist/lib/local-llm.js +92 -10
  141. package/dist/lib/local-llm.js.map +1 -1
  142. package/dist/lib/mcp-instructions.shared.d.ts +40 -0
  143. package/dist/lib/mcp-instructions.shared.d.ts.map +1 -0
  144. package/dist/lib/mcp-instructions.shared.js +56 -0
  145. package/dist/lib/mcp-instructions.shared.js.map +1 -0
  146. package/dist/lib/mcp-setup.d.ts +32 -2
  147. package/dist/lib/mcp-setup.d.ts.map +1 -1
  148. package/dist/lib/mcp-setup.js +92 -6
  149. package/dist/lib/mcp-setup.js.map +1 -1
  150. package/dist/lib/next-step.d.ts +92 -0
  151. package/dist/lib/next-step.d.ts.map +1 -0
  152. package/dist/lib/next-step.js +97 -0
  153. package/dist/lib/next-step.js.map +1 -0
  154. package/dist/lib/personal-email-domains.d.ts +8 -0
  155. package/dist/lib/personal-email-domains.d.ts.map +1 -0
  156. package/dist/lib/personal-email-domains.js +39 -0
  157. package/dist/lib/personal-email-domains.js.map +1 -0
  158. package/dist/lib/personal-import.d.ts +2 -0
  159. package/dist/lib/personal-import.d.ts.map +1 -1
  160. package/dist/lib/personal-import.js +4 -1
  161. package/dist/lib/personal-import.js.map +1 -1
  162. package/dist/lib/read-value-rollup.d.ts +18 -0
  163. package/dist/lib/read-value-rollup.d.ts.map +1 -0
  164. package/dist/lib/read-value-rollup.js +33 -0
  165. package/dist/lib/read-value-rollup.js.map +1 -0
  166. package/dist/lib/sessions/import-summary.d.ts +39 -0
  167. package/dist/lib/sessions/import-summary.d.ts.map +1 -0
  168. package/dist/lib/sessions/import-summary.js +41 -0
  169. package/dist/lib/sessions/import-summary.js.map +1 -0
  170. package/dist/lib/sessions/memory-files.d.ts +85 -0
  171. package/dist/lib/sessions/memory-files.d.ts.map +1 -0
  172. package/dist/lib/sessions/memory-files.js +235 -0
  173. package/dist/lib/sessions/memory-files.js.map +1 -0
  174. package/dist/lib/sessions/source-url.d.ts +11 -0
  175. package/dist/lib/sessions/source-url.d.ts.map +1 -1
  176. package/dist/lib/sessions/source-url.js +15 -0
  177. package/dist/lib/sessions/source-url.js.map +1 -1
  178. package/dist/lib/setup-funnel.d.ts +41 -0
  179. package/dist/lib/setup-funnel.d.ts.map +1 -0
  180. package/dist/lib/setup-funnel.js +28 -0
  181. package/dist/lib/setup-funnel.js.map +1 -0
  182. package/dist/lib/telemetry-consent.d.ts +17 -8
  183. package/dist/lib/telemetry-consent.d.ts.map +1 -1
  184. package/dist/lib/telemetry-consent.js +21 -6
  185. package/dist/lib/telemetry-consent.js.map +1 -1
  186. package/dist/lib/telemetry-env.d.ts +19 -0
  187. package/dist/lib/telemetry-env.d.ts.map +1 -0
  188. package/dist/lib/telemetry-env.js +13 -0
  189. package/dist/lib/telemetry-env.js.map +1 -0
  190. package/dist/lib/usage-telemetry.d.ts +108 -13
  191. package/dist/lib/usage-telemetry.d.ts.map +1 -1
  192. package/dist/lib/usage-telemetry.js +227 -55
  193. package/dist/lib/usage-telemetry.js.map +1 -1
  194. package/dist/lib/user-hooks.d.ts +15 -0
  195. package/dist/lib/user-hooks.d.ts.map +1 -0
  196. package/dist/lib/user-hooks.js +144 -0
  197. package/dist/lib/user-hooks.js.map +1 -0
  198. package/dist/lib/value-rollup.d.ts +10 -3
  199. package/dist/lib/value-rollup.d.ts.map +1 -1
  200. package/dist/lib/value-rollup.js +11 -4
  201. package/dist/lib/value-rollup.js.map +1 -1
  202. package/package.json +2 -1
@@ -0,0 +1,144 @@
1
+ import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ // The hook budget on every host is <=10s (check.ts); the same number Claude Code's hook uses.
4
+ const HOOK_TIMEOUT_SECONDS = 10;
5
+ const OURS = 'align check --advisory';
6
+ export function advisoryHookCommand(host, env) {
7
+ // prod is the default env, so leave it off - the same rule agent-rules.ts follows.
8
+ const envArg = env && env !== 'prod' ? ` --env ${env}` : '';
9
+ return `${OURS} --format ${host}${envArg}`;
10
+ }
11
+ // Every field name here comes from the host's published hook schema:
12
+ // Codex ~/.codex/hooks.json {hooks:{PreToolUse:[{matcher, hooks:[{type,command,timeout}]}]}}
13
+ // Claude Code's shape. matcher is a regex on tool_name; file edits go through
14
+ // apply_patch, for which Edit|Write are documented aliases. PreToolUse has an
15
+ // additionalContext channel, so one event carries the non-blocking finding.
16
+ // Cursor ~/.cursor/hooks.json {version:1, hooks:{preToolUse:[{command,matcher,timeout}]}}
17
+ // matcher is the tool type (Write covers file edits). preToolUse reads only
18
+ // permission/user_message/agent_message, so the finding rides postToolUse's
19
+ // additional_context - the Gemini split.
20
+ // Copilot ~/.copilot/hooks/*.json {version:1, hooks:{preToolUse:[{type,bash,matcher,timeoutSec}]}}
21
+ // matcher is a regex on toolName; edit/str_replace_editor/apply_patch/create are
22
+ // its file-editing tools. Same pre/post split as Cursor. Note: a non-timeout
23
+ // non-zero exit DENIES the tool call there, which is why the check exits 0 always.
24
+ const HOSTS = {
25
+ codex: {
26
+ events: ['PreToolUse'],
27
+ entry: (command) => ({
28
+ matcher: 'apply_patch|Edit|Write',
29
+ hooks: [{ type: 'command', command, timeout: HOOK_TIMEOUT_SECONDS }],
30
+ }),
31
+ commandsOf: (entry) => {
32
+ const hooks = entry?.hooks;
33
+ return Array.isArray(hooks) ? hooks.map((h) => String(h?.command ?? '')) : [];
34
+ },
35
+ },
36
+ cursor: {
37
+ version: 1,
38
+ events: ['preToolUse', 'postToolUse'],
39
+ entry: (command) => ({ command, matcher: 'Write', timeout: HOOK_TIMEOUT_SECONDS }),
40
+ commandsOf: (entry) => [String(entry?.command ?? '')],
41
+ },
42
+ copilot: {
43
+ version: 1,
44
+ events: ['preToolUse', 'postToolUse'],
45
+ entry: (command) => ({
46
+ type: 'command',
47
+ matcher: 'edit|str_replace_editor|apply_patch|create',
48
+ bash: command,
49
+ timeoutSec: HOOK_TIMEOUT_SECONDS,
50
+ }),
51
+ commandsOf: (entry) => [String(entry?.bash ?? '')],
52
+ },
53
+ };
54
+ function isOurs(spec, entry) {
55
+ return spec.commandsOf(entry).some((c) => c.includes(OURS));
56
+ }
57
+ // Throws on a file we cannot parse rather than rewriting it - the same rule every JSON
58
+ // writer in mcp-setup.ts follows, for the same reason: a rewrite destroys whatever the user
59
+ // was part-way through editing.
60
+ function readHooksFile(file) {
61
+ let raw;
62
+ try {
63
+ raw = readFileSync(file, 'utf8');
64
+ }
65
+ catch (err) {
66
+ if (err.code === 'ENOENT')
67
+ return null;
68
+ throw err;
69
+ }
70
+ if (!raw.trim())
71
+ return null;
72
+ try {
73
+ return JSON.parse(raw);
74
+ }
75
+ catch {
76
+ throw new Error(`${file} contains invalid JSON - fix it manually before running align mcp --setup`);
77
+ }
78
+ }
79
+ // The `hooks` map, validated (Copilot, #282). `"hooks": []` is valid JSON, and setting an
80
+ // event key on an array adds a non-index property that JSON.stringify drops - so the write
81
+ // would succeed and produce a file with no hook in it, a no-op that reads as done. Anything
82
+ // parseable but not an object is the same rule as invalid JSON: refuse, name the file.
83
+ function hooksOf(config, file) {
84
+ const hooks = config['hooks'];
85
+ if (hooks === undefined)
86
+ return {};
87
+ if (hooks === null || typeof hooks !== 'object' || Array.isArray(hooks)) {
88
+ throw new Error(`${file}: "hooks" is not an object - fix it manually before running align mcp --setup`);
89
+ }
90
+ return hooks;
91
+ }
92
+ export function writeUserHooks(target, env) {
93
+ const spec = HOSTS[target.host];
94
+ const command = advisoryHookCommand(target.host, env);
95
+ const config = readHooksFile(target.path) ?? {};
96
+ const hooks = hooksOf(config, target.path);
97
+ for (const event of spec.events) {
98
+ const existing = (Array.isArray(hooks[event]) ? hooks[event] : []);
99
+ const preserved = existing.filter((e) => !isOurs(spec, e));
100
+ preserved.push(spec.entry(command));
101
+ hooks[event] = preserved;
102
+ }
103
+ config['hooks'] = hooks;
104
+ if (spec.version !== undefined && config['version'] === undefined)
105
+ config['version'] = spec.version;
106
+ const dir = path.dirname(target.path);
107
+ if (!existsSync(dir))
108
+ mkdirSync(dir, { recursive: true });
109
+ writeFileSync(target.path, `${JSON.stringify(config, null, 2)}\n`, 'utf8');
110
+ }
111
+ /**
112
+ * Take our entries back out. Returns whether there was anything of ours to remove.
113
+ * Deletes the file only when nothing but what we wrote (plus the version we added) is left,
114
+ * so a file the user pre-populated survives with their hooks in it.
115
+ */
116
+ export function removeUserHooks(target) {
117
+ const spec = HOSTS[target.host];
118
+ const config = readHooksFile(target.path);
119
+ if (!config)
120
+ return false;
121
+ const hooks = hooksOf(config, target.path);
122
+ let removed = false;
123
+ for (const event of spec.events) {
124
+ const existing = (Array.isArray(hooks[event]) ? hooks[event] : []);
125
+ const preserved = existing.filter((e) => !isOurs(spec, e));
126
+ if (preserved.length !== existing.length)
127
+ removed = true;
128
+ if (preserved.length)
129
+ hooks[event] = preserved;
130
+ else
131
+ delete hooks[event];
132
+ }
133
+ if (!removed)
134
+ return false;
135
+ const otherKeys = Object.keys(config).filter((k) => k !== 'hooks' && k !== 'version');
136
+ if (Object.keys(hooks).length === 0 && otherKeys.length === 0) {
137
+ unlinkSync(target.path);
138
+ return true;
139
+ }
140
+ config['hooks'] = hooks;
141
+ writeFileSync(target.path, `${JSON.stringify(config, null, 2)}\n`, 'utf8');
142
+ return true;
143
+ }
144
+ //# sourceMappingURL=user-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-hooks.js","sourceRoot":"","sources":["../../src/lib/user-hooks.ts"],"names":[],"mappings":"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"}
@@ -40,14 +40,14 @@ export interface ValueRollupClient {
40
40
  getStats(): Promise<{
41
41
  snapshots?: number;
42
42
  }>;
43
- getConflictImpact(): Promise<{
43
+ getConflictImpact(days?: number): Promise<{
44
44
  total?: number;
45
45
  }>;
46
46
  getLinkCounts(): Promise<{
47
47
  duplicates_count?: number;
48
48
  supersessions_count?: number;
49
49
  }>;
50
- getReuseRate(): Promise<{
50
+ getReuseRate(days?: number): Promise<{
51
51
  rate: number | null;
52
52
  }>;
53
53
  getHealth(): Promise<{
@@ -56,7 +56,14 @@ export interface ValueRollupClient {
56
56
  };
57
57
  }>;
58
58
  }
59
- export declare function fetchValueRollup(client: ValueRollupClient): Promise<ValueRollup>;
59
+ /**
60
+ * `days` is the window the impact and reuse-rate endpoints measure over. Undefined keeps
61
+ * each endpoint's own default (30), which is what `align status` has always read; the
62
+ * second-run card passes 7 so it can honestly say "this week" (ALI-950).
63
+ */
64
+ export declare function fetchValueRollup(client: ValueRollupClient, opts?: {
65
+ days?: number;
66
+ }): Promise<ValueRollup>;
60
67
  /**
61
68
  * Render the value rollup as a terminal readout. Pure string builder (no I/O) so it's
62
69
  * unit-testable. Names value units - conflicts caught / duplicates / superseded / reuse -
@@ -1 +1 @@
1
- {"version":3,"file":"value-rollup.d.ts","sourceRoot":"","sources":["../../src/lib/value-rollup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAiB,KAAK,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AAExF,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;;OAKG;IACH,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,IAAI,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,iBAAiB,IAAI,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,aAAa,IAAI,OAAO,CAAC;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtF,YAAY,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACjD,SAAS,IAAI,OAAO,CAAC;QAAE,cAAc,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CAC/D;AAUD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAqBtF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;CAAE,GAAG,MAAM,CA8C5F;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,IAAI;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,SAAS,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,EAAE,CAAC;IACrD,sEAAsE;IACtE,UAAU,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,aAAa,EACjB,WAAW,GAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAqB,GAC1D,WAAW,CAeb"}
1
+ {"version":3,"file":"value-rollup.d.ts","sourceRoot":"","sources":["../../src/lib/value-rollup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAiB,KAAK,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AAGxF,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;;OAKG;IACH,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,IAAI,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,aAAa,IAAI,OAAO,CAAC;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtF,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC9D,SAAS,IAAI,OAAO,CAAC;QAAE,cAAc,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CAC/D;AAUD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAqBpH;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;CAAE,GAAG,MAAM,CA+C5F;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,IAAI;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,SAAS,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,EAAE,CAAC;IACrD,sEAAsE;IACtE,UAAU,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,aAAa,EACjB,WAAW,GAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAqB,GAC1D,WAAW,CAeb"}
@@ -5,6 +5,7 @@
5
5
  * missing /decisions/reuse-rate must not blank the whole readout.
6
6
  */
7
7
  import { statusGapLine, unresolvedGaps } from './connect-prompt.js';
8
+ import { inviteNudgeLine } from './invite-prompt.js';
8
9
  /**
9
10
  * Decisions in a local graph before the sharing prompt is earned (ALI-503).
10
11
  *
@@ -23,12 +24,17 @@ async function settle(p) {
23
24
  return null;
24
25
  }
25
26
  }
26
- export async function fetchValueRollup(client) {
27
+ /**
28
+ * `days` is the window the impact and reuse-rate endpoints measure over. Undefined keeps
29
+ * each endpoint's own default (30), which is what `align status` has always read; the
30
+ * second-run card passes 7 so it can honestly say "this week" (ALI-950).
31
+ */
32
+ export async function fetchValueRollup(client, opts = {}) {
27
33
  const [stats, impact, links, reuse, health] = await Promise.all([
28
34
  settle(client.getStats()),
29
- settle(client.getConflictImpact()),
35
+ settle(client.getConflictImpact(opts.days)),
30
36
  settle(client.getLinkCounts()),
31
- settle(client.getReuseRate()),
37
+ settle(client.getReuseRate(opts.days)),
32
38
  settle(client.getHealth()),
33
39
  ]);
34
40
  return {
@@ -99,7 +105,8 @@ export function renderValueReadout(r, opts) {
99
105
  || r.conflictsCaught > 0 || r.duplicates > 0 || r.supersessions > 0;
100
106
  if (hasValue) {
101
107
  lines.push('');
102
- lines.push(' Share this graph with your team: https://app.align.tech/pricing');
108
+ // ALI-938: a command someone can run right there, not a URL to go figure out later.
109
+ lines.push(` ${inviteNudgeLine('value')}`);
103
110
  }
104
111
  return lines.join('\n');
105
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"value-rollup.js","sourceRoot":"","sources":["../../src/lib/value-rollup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAsB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAwBxF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAUvC,KAAK,UAAU,MAAM,CAAI,CAAa;IACpC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAyB;IAC9D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;KAC3B,CAAC,CAAC;IAEH,OAAO;QACL,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC;QAChC,eAAe,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;QACnC,mFAAmF;QACnF,gBAAgB,EAAE,CAAC;QACnB,UAAU,EAAE,KAAK,EAAE,gBAAgB,IAAI,CAAC;QACxC,aAAa,EAAE,KAAK,EAAE,mBAAmB,IAAI,CAAC;QAC9C,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QACpC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,IAAI,IAAI;QAClD,yEAAyE;QACzE,IAAI,EAAE,EAAE;KACT,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAc,EAAE,IAAiC;IAClF,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC;IACjF,0FAA0F;IAC1F,wFAAwF;IACxF,uDAAuD;IACvD,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,qFAAqF;QACrF,oFAAoF;QACpF,qFAAqF;QACrF,sFAAsF;QACtF,8EAA8E;QAC9E,iDAAiD;QACjD,IAAI,CAAC,CAAC,gBAAgB,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,0BAA0B,CAAC,CAAC;QAC1F,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,mBAAmB,CAAC,CAAC;QACvE,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,uBAAuB,CAAC,CAAC;IACnF,CAAC;SAAM,CAAC;QACN,qFAAqF;QACrF,iEAAiE;QACjE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,mBAAmB,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,mBAAmB,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,uBAAuB,CAAC,CAAC;IAC1D,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAC9F,CAAC;IACD,oFAAoF;IACpF,yEAAyE;IACzE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,uFAAuF;IACvF,kFAAkF;IAClF,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,SAAS,IAAI,qBAAqB,CAAC;WAC3E,CAAC,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;IACtE,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AASD;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,EAAiB,EACjB,cAAgD,GAAG,EAAE,CAAC,KAAK;IAE3D,MAAM,KAAK,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;IACtE,OAAO;QACL,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS;QAClC,kFAAkF;QAClF,oFAAoF;QACpF,yFAAyF;QACzF,eAAe,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC;QAC/D,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC;QAClC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC;QAC/B,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;QAClC,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC;KACnD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"value-rollup.js","sourceRoot":"","sources":["../../src/lib/value-rollup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aligndottech/cli",
3
- "version": "0.37.0",
3
+ "version": "0.38.0",
4
4
  "mcpName": "io.github.aligndottech/cli",
5
5
  "type": "module",
6
6
  "description": "Align CLI - capture decisions, check alignment, and manage connectors",
@@ -27,6 +27,7 @@
27
27
  "build": "tsc -p tsconfig.json",
28
28
  "prepublishOnly": "npm run build",
29
29
  "dev": "tsx src/index.ts",
30
+ "docs:commands": "tsx scripts/gen-commands-doc.ts",
30
31
  "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.bun.json",
31
32
  "lint": "eslint .",
32
33
  "test": "vitest run",