@aligndottech/cli 0.31.1 → 0.32.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.
- package/README.md +1 -0
- package/dist/commands/decisions/index.d.ts.map +1 -1
- package/dist/commands/decisions/index.js +10 -0
- package/dist/commands/decisions/index.js.map +1 -1
- package/dist/commands/import/docs.d.ts +3 -0
- package/dist/commands/import/docs.d.ts.map +1 -0
- package/dist/commands/import/docs.js +36 -0
- package/dist/commands/import/docs.js.map +1 -0
- package/dist/commands/import/git.d.ts.map +1 -1
- package/dist/commands/import/git.js +12 -3
- package/dist/commands/import/git.js.map +1 -1
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +2 -0
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/local.d.ts.map +1 -1
- package/dist/commands/local.js +29 -2
- package/dist/commands/local.js.map +1 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +12 -2
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +255 -53
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +7 -2
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/why.d.ts.map +1 -1
- package/dist/commands/why.js +52 -4
- package/dist/commands/why.js.map +1 -1
- package/dist/lib/commit-cite.d.ts +3 -2
- package/dist/lib/commit-cite.d.ts.map +1 -1
- package/dist/lib/commit-cite.js +18 -3
- package/dist/lib/commit-cite.js.map +1 -1
- package/dist/lib/config.d.ts +22 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +69 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/connect-prompt.d.ts +53 -0
- package/dist/lib/connect-prompt.d.ts.map +1 -0
- package/dist/lib/connect-prompt.js +102 -0
- package/dist/lib/connect-prompt.js.map +1 -0
- package/dist/lib/decision-refs.d.ts +18 -1
- package/dist/lib/decision-refs.d.ts.map +1 -1
- package/dist/lib/decision-refs.js +60 -1
- package/dist/lib/decision-refs.js.map +1 -1
- package/dist/lib/fetchers/docs.d.ts +6 -0
- package/dist/lib/fetchers/docs.d.ts.map +1 -0
- package/dist/lib/fetchers/docs.js +180 -0
- package/dist/lib/fetchers/docs.js.map +1 -0
- package/dist/lib/found-summary.d.ts +34 -0
- package/dist/lib/found-summary.d.ts.map +1 -0
- package/dist/lib/found-summary.js +63 -0
- package/dist/lib/found-summary.js.map +1 -0
- package/dist/lib/gateway-client.d.ts +15 -1
- package/dist/lib/gateway-client.d.ts.map +1 -1
- package/dist/lib/gateway-client.js +7 -1
- package/dist/lib/gateway-client.js.map +1 -1
- package/dist/lib/git.d.ts +57 -5
- package/dist/lib/git.d.ts.map +1 -1
- package/dist/lib/git.js +114 -17
- package/dist/lib/git.js.map +1 -1
- package/dist/lib/local-db.d.ts +81 -3
- package/dist/lib/local-db.d.ts.map +1 -1
- package/dist/lib/local-db.js +163 -14
- package/dist/lib/local-db.js.map +1 -1
- package/dist/lib/local-gateway-client.d.ts +9 -2
- package/dist/lib/local-gateway-client.d.ts.map +1 -1
- package/dist/lib/local-gateway-client.js +91 -10
- package/dist/lib/local-gateway-client.js.map +1 -1
- package/dist/lib/repo-identity.d.ts +47 -0
- package/dist/lib/repo-identity.d.ts.map +1 -0
- package/dist/lib/repo-identity.js +110 -0
- package/dist/lib/repo-identity.js.map +1 -0
- package/dist/lib/setup-ux.d.ts +12 -0
- package/dist/lib/setup-ux.d.ts.map +1 -1
- package/dist/lib/setup-ux.js +18 -0
- package/dist/lib/setup-ux.js.map +1 -1
- package/dist/lib/value-rollup.d.ts +19 -1
- package/dist/lib/value-rollup.d.ts.map +1 -1
- package/dist/lib/value-rollup.js +39 -11
- package/dist/lib/value-rollup.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/why.js
CHANGED
|
@@ -8,6 +8,8 @@ import { localCitationFor } from '../lib/commit-cite.js';
|
|
|
8
8
|
import { noProviderHintLines, RECOMMENDED_OLLAMA_PULL, synthesiseDetailed } from '../lib/local-llm.js';
|
|
9
9
|
import { recordFunnelStage } from '../lib/usage-telemetry.js';
|
|
10
10
|
import { formatWhen } from '../lib/format-date.js';
|
|
11
|
+
import { resolveScopeOpts } from '../lib/repo-identity.js';
|
|
12
|
+
import { askTrailingLine } from '../lib/connect-prompt.js';
|
|
11
13
|
function wrapText(text, indent, maxWidth) {
|
|
12
14
|
const words = text.split(' ');
|
|
13
15
|
const lines = [];
|
|
@@ -52,6 +54,17 @@ function sourceLine(d) {
|
|
|
52
54
|
function sourceLink(d) {
|
|
53
55
|
return d.source_url ? chalk.dim(` ${d.source_url}`) : null;
|
|
54
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* The trailing gap line under a source (ALI-796): only when this decision's own refs
|
|
59
|
+
* carry something the graph cannot read yet. Absent for a cloud result, which carries
|
|
60
|
+
* no external_references (the hosted gateway does not store decision_refs yet).
|
|
61
|
+
*/
|
|
62
|
+
function gapLine(d, isConnected) {
|
|
63
|
+
if (!d.external_references?.length)
|
|
64
|
+
return null;
|
|
65
|
+
const line = askTrailingLine(d.external_references, isConnected);
|
|
66
|
+
return line ? chalk.dim(` ${line}`) : null;
|
|
67
|
+
}
|
|
55
68
|
/**
|
|
56
69
|
* "5 decisions across github, linear, slack" - printed only when results
|
|
57
70
|
* genuinely span more than one platform. The claim is earned, never decorative:
|
|
@@ -69,10 +82,19 @@ export function registerAskCommand(program) {
|
|
|
69
82
|
.description('Ask a question about your decision graph, or pass a file path to find related decisions')
|
|
70
83
|
.option('--env <env>', 'Environment')
|
|
71
84
|
.option('--limit <n>', 'Max answers', '8')
|
|
85
|
+
.option('--repo <name>', 'Scope to one repo - short name, owner/repo, or full identity (local mode only)')
|
|
86
|
+
.option('--all', 'Search every repo, not just the current one (local mode only)')
|
|
72
87
|
.action(async (query, opts) => {
|
|
73
88
|
const config = createConfigStore();
|
|
74
89
|
const envName = resolveEnv(opts.env, { preferLocalEmbedded: true });
|
|
75
90
|
const client = createGatewayClient(config.getEnvironment(envName));
|
|
91
|
+
// ALI-798: undefined means "no opinion" - searchDecisions applies its own default
|
|
92
|
+
// (current repo, or everywhere outside one) exactly as if neither flag were typed.
|
|
93
|
+
const scope = resolveScopeOpts({ repo: opts.repo, all: opts.all }, envName, (m) => console.log(chalk.yellow(` ${m}`)));
|
|
94
|
+
// ALI-796: same "does local mode hold a saved token" check status.ts and local.ts
|
|
95
|
+
// use. Only ever consulted when a result carries external_references, which today
|
|
96
|
+
// means local mode - a cloud result has none.
|
|
97
|
+
const isConnected = (id) => config.getConnectorFields(envName, id) !== null;
|
|
76
98
|
// Pass the query through unchanged: the gateway's smart-search strategy
|
|
77
99
|
// selector routes natural-language questions to semantic search. Stripping
|
|
78
100
|
// the question word turned questions into keyword phrases that matched
|
|
@@ -81,7 +103,7 @@ export function registerAskCommand(program) {
|
|
|
81
103
|
const searchQuery = query;
|
|
82
104
|
const spinner = ora('').start();
|
|
83
105
|
try {
|
|
84
|
-
const results = await client.searchDecisions(searchQuery, parseInt(opts.limit, 10));
|
|
106
|
+
const results = await client.searchDecisions(searchQuery, parseInt(opts.limit, 10), scope);
|
|
85
107
|
spinner.stop();
|
|
86
108
|
if (!results.results.length) {
|
|
87
109
|
console.log('');
|
|
@@ -99,9 +121,16 @@ export function registerAskCommand(program) {
|
|
|
99
121
|
// Sending someone to re-import a full graph is the worse of the two errors: it
|
|
100
122
|
// reads as the import never having worked. So ask the graph before saying it is
|
|
101
123
|
// empty. One extra call, only on the path that was already returning nothing.
|
|
124
|
+
//
|
|
125
|
+
// ALI-798: `{ all: true }` here is NOT the user's scope choice - it is always
|
|
126
|
+
// unscoped, because the question this check answers is "does the GRAPH have
|
|
127
|
+
// anything in it", not "does this repo". Without it, being inside a repo with
|
|
128
|
+
// zero decisions (while another repo holds hundreds) would answer "no decisions
|
|
129
|
+
// found, build your graph first" - false, and the exact failure this ticket
|
|
130
|
+
// exists to prevent, just moved from retrieval into this diagnostic.
|
|
102
131
|
let graphHasDecisions;
|
|
103
132
|
try {
|
|
104
|
-
const some = await client.listDecisions({ limit: 1 });
|
|
133
|
+
const some = await client.listDecisions({ limit: 1, all: true });
|
|
105
134
|
graphHasDecisions = Array.isArray(some) && some.length > 0;
|
|
106
135
|
}
|
|
107
136
|
catch {
|
|
@@ -114,8 +143,16 @@ export function registerAskCommand(program) {
|
|
|
114
143
|
// way ask, search and import do, so the bare command is the right one to print
|
|
115
144
|
// for every user. It carried `--env ${envName}` while that was not true.
|
|
116
145
|
const listCmd = 'align decisions list';
|
|
117
|
-
|
|
118
|
-
|
|
146
|
+
if (results.scope) {
|
|
147
|
+
// Named because it is the reason nothing matched here, and distinguishes
|
|
148
|
+
// "not in THIS repo" from "not anywhere" (ALI-771's lesson, extended to scope).
|
|
149
|
+
console.log(chalk.dim(` Nothing matched "${query}" in ${results.scope}.`));
|
|
150
|
+
console.log(chalk.dim(' Try --all to search your whole graph, or list what is in this repo:'));
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
console.log(chalk.dim(` Nothing matched "${query}", but your graph is not empty.`));
|
|
154
|
+
console.log(chalk.dim(' Try different words, or list what is in there:'));
|
|
155
|
+
}
|
|
119
156
|
console.log(chalk.dim(` ${listCmd}`));
|
|
120
157
|
console.log('');
|
|
121
158
|
return;
|
|
@@ -127,6 +164,11 @@ export function registerAskCommand(program) {
|
|
|
127
164
|
console.log('');
|
|
128
165
|
return;
|
|
129
166
|
}
|
|
167
|
+
// ALI-798: named up front so a reader knows what was searched before reading an
|
|
168
|
+
// answer that might be missing something they know exists in another repo.
|
|
169
|
+
if (results.scope) {
|
|
170
|
+
console.log(chalk.dim(` Answering from ${results.scope} (--all searches every repo)`));
|
|
171
|
+
}
|
|
130
172
|
// ALI-795: a non-empty answer is the funnel's activation moment - emitted here,
|
|
131
173
|
// before rendering branches (the synthesized-answer path returns early). The
|
|
132
174
|
// once-per-install guard lives inside recordFunnelStage. Fired without await
|
|
@@ -162,6 +204,9 @@ export function registerAskCommand(program) {
|
|
|
162
204
|
const link = sourceLink(d);
|
|
163
205
|
if (link)
|
|
164
206
|
console.log(link);
|
|
207
|
+
const gap = gapLine(d, isConnected);
|
|
208
|
+
if (gap)
|
|
209
|
+
console.log(gap);
|
|
165
210
|
}
|
|
166
211
|
console.log('');
|
|
167
212
|
if (results.count >= 5) {
|
|
@@ -210,6 +255,9 @@ export function registerAskCommand(program) {
|
|
|
210
255
|
console.log(chalk.dim(` id: ${d.id}`) + citeLabel + platformLabel + statusLabel + (when ? chalk.dim(` · ${when}`) : ''));
|
|
211
256
|
if (d.source_url)
|
|
212
257
|
console.log(chalk.dim(` ${d.source_url}`));
|
|
258
|
+
const gap = gapLine(d, isConnected);
|
|
259
|
+
if (gap)
|
|
260
|
+
console.log(gap);
|
|
213
261
|
// Who to talk to (ALI-118).
|
|
214
262
|
if (d.author?.name)
|
|
215
263
|
console.log(chalk.cyan(` talk to: ${d.author.name}`));
|
package/dist/commands/why.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"why.js","sourceRoot":"","sources":["../../src/commands/why.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"why.js","sourceRoot":"","sources":["../../src/commands/why.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
/** "cli@abc1234" for a hosted commit, "
|
|
2
|
-
* the shared reader says (repo#N, ticket key, or
|
|
1
|
+
/** "cli@abc1234" for a hosted commit, "cli#78" for a GitLab MR/issue, "abc1234" for a
|
|
2
|
+
* remoteless commit, else whatever the shared reader says (repo#N, ticket key, or
|
|
3
|
+
* undefined). */
|
|
3
4
|
export declare function localCitationFor(sourceUrl: string | null | undefined): string | undefined;
|
|
4
5
|
//# sourceMappingURL=commit-cite.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit-cite.d.ts","sourceRoot":"","sources":["../../src/lib/commit-cite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commit-cite.d.ts","sourceRoot":"","sources":["../../src/lib/commit-cite.ts"],"names":[],"mappings":"AA+BA;;kBAEkB;AAClB,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAUzF"}
|
package/dist/lib/commit-cite.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The CLI-local citation reader: everything the shared `citationFor` cites, plus
|
|
3
|
-
* commit URLs (ALI-792).
|
|
3
|
+
* commit URLs (ALI-792) and GitLab merge requests/issues (ALI-796).
|
|
4
4
|
*
|
|
5
5
|
* A wrapper rather than an edit to decision-links.ts, deliberately: that file is
|
|
6
6
|
* byte-identical to mcp-align's copy in align-stack and documents that parity as
|
|
@@ -16,8 +16,20 @@ import { citationFor } from './decision-links.js';
|
|
|
16
16
|
// subgroup remotes (review finding, 2026-09-01).
|
|
17
17
|
const HOSTED_COMMIT = /^https?:\/\/[^/\s]+\/(?:[^/\s]+\/)*?([^/\s]+?)(?:\/-)?\/commit\/([0-9a-f]{7,40})(?:[/?#]|$)/;
|
|
18
18
|
const LOCAL_COMMIT = /^git:\/\/commit\/([0-9a-f]{7,40})(?:[/?#]|$)/;
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
19
|
+
/**
|
|
20
|
+
* GitLab merge requests and issues route through `/merge_requests/N` and `/issues/N`,
|
|
21
|
+
* with an optional `/-/` marker (required on gitlab.com since ~2019, still optional on
|
|
22
|
+
* older self-managed instances) - a shape the shared CODE_REF cannot see at all, since
|
|
23
|
+
* it only recognises "pull" and "issues" with no separator in between (ALI-796 review
|
|
24
|
+
* finding: refIdentityFor('gitlab', ...) silently returned [] for every real GitLab
|
|
25
|
+
* source, so a pre-existing gap could be marked "connected" and never actually
|
|
26
|
+
* resolved into a link). Subgroup-aware the same way HOSTED_COMMIT is, for the same
|
|
27
|
+
* reason: the repo is the last segment before the marker, not the first after the host.
|
|
28
|
+
*/
|
|
29
|
+
const GITLAB_MR_OR_ISSUE = /^https?:\/\/[^/\s]+\/(?:[^/\s]+\/)*?([^/\s]+?)(?:\/-)?\/(?:merge_requests|issues)\/(\d+)(?:[/?#]|$)/;
|
|
30
|
+
/** "cli@abc1234" for a hosted commit, "cli#78" for a GitLab MR/issue, "abc1234" for a
|
|
31
|
+
* remoteless commit, else whatever the shared reader says (repo#N, ticket key, or
|
|
32
|
+
* undefined). */
|
|
21
33
|
export function localCitationFor(sourceUrl) {
|
|
22
34
|
const shared = citationFor(sourceUrl);
|
|
23
35
|
if (shared)
|
|
@@ -27,6 +39,9 @@ export function localCitationFor(sourceUrl) {
|
|
|
27
39
|
const hosted = HOSTED_COMMIT.exec(sourceUrl);
|
|
28
40
|
if (hosted)
|
|
29
41
|
return `${hosted[1]}@${hosted[2].slice(0, 7)}`;
|
|
42
|
+
const gitlab = GITLAB_MR_OR_ISSUE.exec(sourceUrl);
|
|
43
|
+
if (gitlab)
|
|
44
|
+
return `${gitlab[1]}#${gitlab[2]}`;
|
|
30
45
|
const local = LOCAL_COMMIT.exec(sourceUrl);
|
|
31
46
|
return local ? local[1].slice(0, 7) : undefined;
|
|
32
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit-cite.js","sourceRoot":"","sources":["../../src/lib/commit-cite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,wFAAwF;AACxF,wFAAwF;AACxF,sFAAsF;AACtF,iDAAiD;AACjD,MAAM,aAAa,GAAG,6FAA6F,CAAC;AACpH,MAAM,YAAY,GAAG,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"commit-cite.js","sourceRoot":"","sources":["../../src/lib/commit-cite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,wFAAwF;AACxF,wFAAwF;AACxF,sFAAsF;AACtF,iDAAiD;AACjD,MAAM,aAAa,GAAG,6FAA6F,CAAC;AACpH,MAAM,YAAY,GAAG,8CAA8C,CAAC;AACpE;;;;;;;;;GASG;AACH,MAAM,kBAAkB,GAAG,qGAAqG,CAAC;AAEjI;;kBAEkB;AAClB,MAAM,UAAU,gBAAgB,CAAC,SAAoC;IACnE,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,MAAM;QAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC3D,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,MAAM;QAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -7,6 +7,16 @@ export interface EnvironmentConfig {
|
|
|
7
7
|
mode: 'demo' | 'auth' | 'local-embedded';
|
|
8
8
|
localDbPath?: string;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* The fork point for ALI-794's value-first onboarding order: nothing configured
|
|
12
|
+
* yet on this machine, in either mode. A returning user (they already have a
|
|
13
|
+
* local graph, or they are logged in to cloud) keeps the existing
|
|
14
|
+
* mode-question-first `align setup` flow - this only widens the door for a
|
|
15
|
+
* genuinely first run.
|
|
16
|
+
*/
|
|
17
|
+
export declare function isFreshInstall(config: {
|
|
18
|
+
getEnvironment(env: EnvName): EnvironmentConfig;
|
|
19
|
+
}): boolean;
|
|
10
20
|
/**
|
|
11
21
|
* ALI-618: local-embedded mode never makes an HTTP call for its own operations (it reads a
|
|
12
22
|
* local embedded DB - see gateway-client.ts's `createLocalGatewayClient` branch), so the
|
|
@@ -28,6 +38,18 @@ export declare function createConfigStore(): {
|
|
|
28
38
|
getDefaultEnv(): EnvName;
|
|
29
39
|
getConnectorToken(env: EnvName, connectorKey: string): string | null;
|
|
30
40
|
setConnectorToken(env: EnvName, connectorKey: string, token: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* Everything local mode collected for one connector: the token plus whatever extra fields
|
|
43
|
+
* that connector asks for. `null` means nothing is stored, which is what setup uses to tell
|
|
44
|
+
* "never connected" from "connected with a token and no extras" - GitHub is the second case,
|
|
45
|
+
* and reading it as the first is how it ended up re-asking on every run (ALI-802).
|
|
46
|
+
*/
|
|
47
|
+
getConnectorFields(env: EnvName, connectorKey: string): Record<string, string> | null;
|
|
48
|
+
saveConnectorFields(env: EnvName, connectorKey: string, fields: Record<string, string>): void;
|
|
49
|
+
/** Drops every key this connector owns - token, extra fields, and any OAuth cloudId/siteBase. */
|
|
50
|
+
forgetConnector(env: EnvName, connectorKey: string): void;
|
|
51
|
+
/** Every connector in one environment. The other environments' credentials are untouched. */
|
|
52
|
+
forgetAllConnectors(env: EnvName): void;
|
|
31
53
|
getConnectorCloudId(env: EnvName, connectorKey: string): string | null;
|
|
32
54
|
setConnectorCloudId(env: EnvName, connectorKey: string, cloudId: string): void;
|
|
33
55
|
getConnectorSiteBase(env: EnvName, connectorKey: string): string | null;
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAQD;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,QAA2B,CAAC;AAEjE,sGAAsG;AACtG,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtD,wBAAgB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAAC;CACjD,GAAG,OAAO,CASV;AAQD;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,QAA2B,CAAC;AAEjE,sGAAsG;AACtG,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtD,wBAAgB,iBAAiB;wBAyBT,OAAO,GAAG,iBAAiB;sBAc7B,OAAO,SAAS,MAAM;qBAIvB,OAAO,YAAY,MAAM;qBAIzB,MAAM;uBAIJ,OAAO;qBACT,OAAO;2BACD,OAAO,gBAAgB,MAAM,GAAG,MAAM,GAAG,IAAI;2BAI7C,OAAO,gBAAgB,MAAM,SAAS,MAAM;IAInE;;;;;OAKG;4BACqB,OAAO,gBAAgB,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;6BAY5D,OAAO,gBAAgB,MAAM,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAYtF,iGAAiG;yBAC5E,OAAO,gBAAgB,MAAM;IAOlD,6FAA6F;6BACpE,OAAO;6BAMP,OAAO,gBAAgB,MAAM,GAAG,MAAM,GAAG,IAAI;6BAI7C,OAAO,gBAAgB,MAAM,WAAW,MAAM;8BAI7C,OAAO,gBAAgB,MAAM,GAAG,MAAM,GAAG,IAAI;8BAI7C,OAAO,gBAAgB,MAAM,YAAY,MAAM;yBAIpD,MAAM;;eAWhB,OAAO;oBAQF,MAAM;2BAOC,gBAAgB,GAAG,SAAS;+BAGxB,gBAAgB;kCAMb,MAAM,GAAG,OAAO;mCAGf,MAAM,GAAG,IAAI;EAK/C"}
|
package/dist/lib/config.js
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
import Conf from 'conf';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
|
+
/**
|
|
4
|
+
* The fork point for ALI-794's value-first onboarding order: nothing configured
|
|
5
|
+
* yet on this machine, in either mode. A returning user (they already have a
|
|
6
|
+
* local graph, or they are logged in to cloud) keeps the existing
|
|
7
|
+
* mode-question-first `align setup` flow - this only widens the door for a
|
|
8
|
+
* genuinely first run.
|
|
9
|
+
*/
|
|
10
|
+
export function isFreshInstall(config) {
|
|
11
|
+
const hasLocal = config.getEnvironment('local').mode === 'local-embedded';
|
|
12
|
+
// Every env, not just the default one (Copilot, PR #224): a user who logged into a
|
|
13
|
+
// non-default env (e.g. `align login --env preview`) while defaultEnv is still 'prod'
|
|
14
|
+
// is a returning user, and checking only getDefaultEnv() would misclassify them as
|
|
15
|
+
// fresh and route them into the value-first flow a second time.
|
|
16
|
+
const ALL_ENVS = ['local', 'preview', 'prod'];
|
|
17
|
+
const hasCloud = ALL_ENVS.some((e) => Boolean(config.getEnvironment(e).authToken));
|
|
18
|
+
return !hasLocal && !hasCloud;
|
|
19
|
+
}
|
|
3
20
|
const DEFAULTS = {
|
|
4
21
|
local: { gatewayUrl: 'http://localhost:8080', authToken: null, tenantId: null, mode: 'demo' },
|
|
5
22
|
preview: { gatewayUrl: 'https://api.preview.align.tech', authToken: null, tenantId: null, mode: 'auth' },
|
|
@@ -19,8 +36,16 @@ export function createConfigStore() {
|
|
|
19
36
|
const store = new Conf({
|
|
20
37
|
projectName: 'align-cli',
|
|
21
38
|
defaults: { environments: {}, defaultEnv: 'prod', connectorTokens: {} },
|
|
39
|
+
// This file holds the read-only tokens local mode asks for, so it is a credential file
|
|
40
|
+
// rather than ordinary config. 0600 is also what the setup copy promises the user.
|
|
41
|
+
configFileMode: 0o600,
|
|
22
42
|
});
|
|
23
43
|
const getEnvs = () => store.get('environments');
|
|
44
|
+
const getTokens = () => store.get('connectorTokens');
|
|
45
|
+
// Extra fields (an Atlassian email, a GitLab domain) live beside the token under a `field:`
|
|
46
|
+
// segment. The OAuth path already writes `<env>:<key>:cloudId` and `:siteBase` in this same
|
|
47
|
+
// map, and the segment is what stops a connector field of either name colliding with them.
|
|
48
|
+
const fieldPrefix = (env, connectorKey) => `${env}:${connectorKey}:field:`;
|
|
24
49
|
return {
|
|
25
50
|
getEnvironment(env) {
|
|
26
51
|
const base = { ...DEFAULTS[env], ...(getEnvs()[env] ?? {}) };
|
|
@@ -58,6 +83,50 @@ export function createConfigStore() {
|
|
|
58
83
|
const tokens = store.get('connectorTokens');
|
|
59
84
|
store.set('connectorTokens', { ...tokens, [`${env}:${connectorKey}`]: token });
|
|
60
85
|
},
|
|
86
|
+
/**
|
|
87
|
+
* Everything local mode collected for one connector: the token plus whatever extra fields
|
|
88
|
+
* that connector asks for. `null` means nothing is stored, which is what setup uses to tell
|
|
89
|
+
* "never connected" from "connected with a token and no extras" - GitHub is the second case,
|
|
90
|
+
* and reading it as the first is how it ended up re-asking on every run (ALI-802).
|
|
91
|
+
*/
|
|
92
|
+
getConnectorFields(env, connectorKey) {
|
|
93
|
+
const tokens = getTokens();
|
|
94
|
+
const token = tokens[`${env}:${connectorKey}`];
|
|
95
|
+
if (token === undefined)
|
|
96
|
+
return null;
|
|
97
|
+
const prefix = fieldPrefix(env, connectorKey);
|
|
98
|
+
const fields = { token };
|
|
99
|
+
for (const [key, value] of Object.entries(tokens)) {
|
|
100
|
+
if (key.startsWith(prefix))
|
|
101
|
+
fields[key.slice(prefix.length)] = value;
|
|
102
|
+
}
|
|
103
|
+
return fields;
|
|
104
|
+
},
|
|
105
|
+
saveConnectorFields(env, connectorKey, fields) {
|
|
106
|
+
const { token, ...extras } = fields;
|
|
107
|
+
// An empty token would be stored as a connector that reads as saved and cannot be used:
|
|
108
|
+
// setup's reuse check is truthy so it would ask again, while getConnectorFields and
|
|
109
|
+
// `local forget` would both report a credential that is not there. Refuse it here, where
|
|
110
|
+
// there is one writer, rather than teaching every reader to distrust the value.
|
|
111
|
+
if (!token)
|
|
112
|
+
throw new Error(`saveConnectorFields: ${connectorKey} needs a non-empty token`);
|
|
113
|
+
const prefix = fieldPrefix(env, connectorKey);
|
|
114
|
+
const updated = { ...getTokens(), [`${env}:${connectorKey}`]: token };
|
|
115
|
+
for (const [name, value] of Object.entries(extras))
|
|
116
|
+
updated[`${prefix}${name}`] = value;
|
|
117
|
+
store.set('connectorTokens', updated);
|
|
118
|
+
},
|
|
119
|
+
/** Drops every key this connector owns - token, extra fields, and any OAuth cloudId/siteBase. */
|
|
120
|
+
forgetConnector(env, connectorKey) {
|
|
121
|
+
const owned = `${env}:${connectorKey}`;
|
|
122
|
+
const kept = Object.fromEntries(Object.entries(getTokens()).filter(([key]) => key !== owned && !key.startsWith(`${owned}:`)));
|
|
123
|
+
store.set('connectorTokens', kept);
|
|
124
|
+
},
|
|
125
|
+
/** Every connector in one environment. The other environments' credentials are untouched. */
|
|
126
|
+
forgetAllConnectors(env) {
|
|
127
|
+
const kept = Object.fromEntries(Object.entries(getTokens()).filter(([key]) => !key.startsWith(`${env}:`)));
|
|
128
|
+
store.set('connectorTokens', kept);
|
|
129
|
+
},
|
|
61
130
|
getConnectorCloudId(env, connectorKey) {
|
|
62
131
|
const tokens = store.get('connectorTokens');
|
|
63
132
|
return tokens[`${env}:${connectorKey}:cloudId`] ?? null;
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAazC,MAAM,QAAQ,GAAuC;IACnD,KAAK,EAAI,EAAE,UAAU,EAAE,uBAAuB,EAAW,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IACxG,OAAO,EAAE,EAAE,UAAU,EAAE,gCAAgC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IACxG,IAAI,EAAK,EAAE,UAAU,EAAE,wBAAwB,EAAW,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;CAC1G,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AAKjE,MAAM,UAAU,iBAAiB;IAC/B,MAAM,KAAK,GAAG,IAAI,IAAI,CAOnB;QACD,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gap-driven pull (ALI-796): once `decision_refs` (ALI-792) knows what a decision's
|
|
3
|
+
* text points at, the graph can name its own gaps - a ref whose platform has no
|
|
4
|
+
* connected source. Surfaced as pull, never gate: one line, a real number, the exact
|
|
5
|
+
* command that fills it in.
|
|
6
|
+
*
|
|
7
|
+
* Local-only for now: `decision_refs` lives in the local SQLite graph
|
|
8
|
+
* (local-db.ts). The hosted gateway does not store refs yet, so a cloud rollup
|
|
9
|
+
* carries no gaps - see value-rollup.ts's `mode` split, which already draws this
|
|
10
|
+
* line for similarDecisions.
|
|
11
|
+
*/
|
|
12
|
+
import type { DecisionRef } from './decision-refs.js';
|
|
13
|
+
export interface UnresolvedGap {
|
|
14
|
+
/** The ref's platform bucket, exactly as decision_refs stores it - 'tracker' and
|
|
15
|
+
* 'code' cover more than one connector by construction (decision-refs.ts). */
|
|
16
|
+
platform: DecisionRef['platform'];
|
|
17
|
+
/** Distinct decisions carrying at least one unresolved ref of this platform - the
|
|
18
|
+
* number the pull copy states ("12 decisions cite..."), not the total ref count.
|
|
19
|
+
* One decision citing the same Jira key five times must not read as five gaps. */
|
|
20
|
+
decisions: number;
|
|
21
|
+
/** Connector ids that would resolve at least one ref in this bucket. Length 2 for
|
|
22
|
+
* 'tracker' (jira or linear) and 'code' (github or gitlab) - a bare KEY-123 or #N
|
|
23
|
+
* cannot say which tool it came from. */
|
|
24
|
+
connectors: string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The gaps a graph can name for itself: unresolved-ref counts per platform, for
|
|
28
|
+
* platforms with no connected source. Pure - the caller supplies both the refs
|
|
29
|
+
* (each carrying which decision cited it) and how to check a connector, so this
|
|
30
|
+
* has no I/O and needs no fixture beyond plain objects.
|
|
31
|
+
*/
|
|
32
|
+
export declare function unresolvedGaps(refs: Array<{
|
|
33
|
+
decisionId: string;
|
|
34
|
+
platform: string;
|
|
35
|
+
}>, isConnected: (connectorId: string) => boolean): UnresolvedGap[];
|
|
36
|
+
/**
|
|
37
|
+
* The end-of-setup pull line - ONE gap, the biggest, never a wall of platforms.
|
|
38
|
+
* "12 of your decisions reference Jira keys I can't read - align import jira when
|
|
39
|
+
* you want them filled in." Null when the graph has no gap to name.
|
|
40
|
+
*/
|
|
41
|
+
export declare function setupSummaryLine(gaps: UnresolvedGap[]): string | null;
|
|
42
|
+
/** `align status`'s per-platform readout line. */
|
|
43
|
+
export declare function statusGapLine(gap: UnresolvedGap): string;
|
|
44
|
+
/**
|
|
45
|
+
* The trailing line under one `align ask` result - only when THIS decision's own
|
|
46
|
+
* refs carry a gap, not the graph-wide count. Reports the first unresolved ref
|
|
47
|
+
* found; a decision citing several missing platforms still gets one line, matching
|
|
48
|
+
* the "one line" restraint the setup summary uses.
|
|
49
|
+
*/
|
|
50
|
+
export declare function askTrailingLine(refs: Array<{
|
|
51
|
+
platform: string;
|
|
52
|
+
}>, isConnected: (connectorId: string) => boolean): string | null;
|
|
53
|
+
//# sourceMappingURL=connect-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-prompt.d.ts","sourceRoot":"","sources":["../../src/lib/connect-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B;mFAC+E;IAC/E,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAClC;;uFAEmF;IACnF,SAAS,EAAE,MAAM,CAAC;IAClB;;8CAE0C;IAC1C,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAgCD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,EACrD,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,GAC5C,aAAa,EAAE,CAkBjB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,GAAG,IAAI,CASrE;AAED,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAKxD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,EACjC,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,GAC5C,MAAM,GAAG,IAAI,CASf"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gap-driven pull (ALI-796): once `decision_refs` (ALI-792) knows what a decision's
|
|
3
|
+
* text points at, the graph can name its own gaps - a ref whose platform has no
|
|
4
|
+
* connected source. Surfaced as pull, never gate: one line, a real number, the exact
|
|
5
|
+
* command that fills it in.
|
|
6
|
+
*
|
|
7
|
+
* Local-only for now: `decision_refs` lives in the local SQLite graph
|
|
8
|
+
* (local-db.ts). The hosted gateway does not store refs yet, so a cloud rollup
|
|
9
|
+
* carries no gaps - see value-rollup.ts's `mode` split, which already draws this
|
|
10
|
+
* line for similarDecisions.
|
|
11
|
+
*/
|
|
12
|
+
/** Which connector(s) could fill in a ref of each platform. */
|
|
13
|
+
const CANDIDATE_CONNECTORS = {
|
|
14
|
+
github: ['github'],
|
|
15
|
+
jira: ['jira'],
|
|
16
|
+
confluence: ['confluence'],
|
|
17
|
+
linear: ['linear'],
|
|
18
|
+
slack: ['slack'],
|
|
19
|
+
tracker: ['jira', 'linear'],
|
|
20
|
+
code: ['github', 'gitlab'],
|
|
21
|
+
};
|
|
22
|
+
const PLATFORM_LABEL = {
|
|
23
|
+
jira: 'Jira',
|
|
24
|
+
confluence: 'Confluence',
|
|
25
|
+
linear: 'Linear',
|
|
26
|
+
slack: 'Slack',
|
|
27
|
+
github: 'GitHub',
|
|
28
|
+
tracker: 'ticket-tracker',
|
|
29
|
+
code: 'issue-tracker',
|
|
30
|
+
};
|
|
31
|
+
function connectCommands(connectors) {
|
|
32
|
+
return connectors.map((c) => `align import ${c}`).join(' or ');
|
|
33
|
+
}
|
|
34
|
+
/** "a" or "an", by the label's first letter - "a Jira ref" but "an issue-tracker ref". */
|
|
35
|
+
function articleFor(label) {
|
|
36
|
+
return /^[aeiou]/i.test(label) ? 'an' : 'a';
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The gaps a graph can name for itself: unresolved-ref counts per platform, for
|
|
40
|
+
* platforms with no connected source. Pure - the caller supplies both the refs
|
|
41
|
+
* (each carrying which decision cited it) and how to check a connector, so this
|
|
42
|
+
* has no I/O and needs no fixture beyond plain objects.
|
|
43
|
+
*/
|
|
44
|
+
export function unresolvedGaps(refs, isConnected) {
|
|
45
|
+
const decisionsByPlatform = new Map();
|
|
46
|
+
for (const r of refs) {
|
|
47
|
+
let set = decisionsByPlatform.get(r.platform);
|
|
48
|
+
if (!set) {
|
|
49
|
+
set = new Set();
|
|
50
|
+
decisionsByPlatform.set(r.platform, set);
|
|
51
|
+
}
|
|
52
|
+
set.add(r.decisionId);
|
|
53
|
+
}
|
|
54
|
+
const gaps = [];
|
|
55
|
+
for (const [platform, decisionIds] of decisionsByPlatform) {
|
|
56
|
+
const connectors = CANDIDATE_CONNECTORS[platform];
|
|
57
|
+
if (!connectors || connectors.some(isConnected))
|
|
58
|
+
continue;
|
|
59
|
+
gaps.push({ platform: platform, decisions: decisionIds.size, connectors });
|
|
60
|
+
}
|
|
61
|
+
return gaps.sort((a, b) => b.decisions - a.decisions);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The end-of-setup pull line - ONE gap, the biggest, never a wall of platforms.
|
|
65
|
+
* "12 of your decisions reference Jira keys I can't read - align import jira when
|
|
66
|
+
* you want them filled in." Null when the graph has no gap to name.
|
|
67
|
+
*/
|
|
68
|
+
export function setupSummaryLine(gaps) {
|
|
69
|
+
if (!gaps.length)
|
|
70
|
+
return null;
|
|
71
|
+
const top = gaps[0];
|
|
72
|
+
const label = PLATFORM_LABEL[top.platform] ?? top.platform;
|
|
73
|
+
const plural = top.decisions === 1 ? '' : 's';
|
|
74
|
+
const verb = top.decisions === 1 ? 'references' : 'reference';
|
|
75
|
+
const them = top.decisions === 1 ? 'it' : 'them';
|
|
76
|
+
return `${top.decisions} decision${plural} ${verb} ${label} keys I can't read - `
|
|
77
|
+
+ `${connectCommands(top.connectors)} when you want ${them} filled in.`;
|
|
78
|
+
}
|
|
79
|
+
/** `align status`'s per-platform readout line. */
|
|
80
|
+
export function statusGapLine(gap) {
|
|
81
|
+
const label = PLATFORM_LABEL[gap.platform] ?? gap.platform;
|
|
82
|
+
const plural = gap.decisions === 1 ? '' : 's';
|
|
83
|
+
const verb = gap.decisions === 1 ? 'cites' : 'cite';
|
|
84
|
+
return ` ${gap.decisions} decision${plural} ${verb} ${label} I can't read - ${connectCommands(gap.connectors)}`;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The trailing line under one `align ask` result - only when THIS decision's own
|
|
88
|
+
* refs carry a gap, not the graph-wide count. Reports the first unresolved ref
|
|
89
|
+
* found; a decision citing several missing platforms still gets one line, matching
|
|
90
|
+
* the "one line" restraint the setup summary uses.
|
|
91
|
+
*/
|
|
92
|
+
export function askTrailingLine(refs, isConnected) {
|
|
93
|
+
for (const r of refs) {
|
|
94
|
+
const connectors = CANDIDATE_CONNECTORS[r.platform];
|
|
95
|
+
if (connectors && !connectors.some(isConnected)) {
|
|
96
|
+
const label = PLATFORM_LABEL[r.platform] ?? r.platform;
|
|
97
|
+
return `cites ${articleFor(label)} ${label} ref I can't read - ${connectCommands(connectors)}`;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=connect-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-prompt.js","sourceRoot":"","sources":["../../src/lib/connect-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* tools where the rest of the story lives (ALI-792).
|
|
4
4
|
*
|
|
5
5
|
* These refs are the foundation of the gap-driven connect prompt ("12 decisions cite
|
|
6
|
-
* Jira keys I can't read - `align
|
|
6
|
+
* Jira keys I can't read - `align import jira`"): a ref whose platform has no
|
|
7
7
|
* connected source is a gap the graph can name. Until this module, the git import
|
|
8
8
|
* discarded the commit body, so every one of these shapes died before ingest.
|
|
9
9
|
*
|
|
@@ -11,10 +11,27 @@
|
|
|
11
11
|
* for a bare KEY-123 that cannot distinguish Jira from Linear, and 'code' for a #N
|
|
12
12
|
* pull/issue number that belongs to whichever forge hosts the repo. Only shapes a
|
|
13
13
|
* connect prompt can act on are extracted - an arbitrary web URL is not a gap.
|
|
14
|
+
*
|
|
15
|
+
* `refIdentityFor` at the bottom of this file is the inverse: given a decision's OWN
|
|
16
|
+
* (platform, sourceUrl), what shape would ANOTHER decision's text have cited it as.
|
|
17
|
+
* That is the ALI-796 payoff - resolving a pre-existing gap into a real link once the
|
|
18
|
+
* missing source is imported.
|
|
14
19
|
*/
|
|
15
20
|
export interface DecisionRef {
|
|
16
21
|
ref: string;
|
|
17
22
|
platform: 'github' | 'jira' | 'confluence' | 'linear' | 'slack' | 'tracker' | 'code';
|
|
18
23
|
}
|
|
19
24
|
export declare function extractRefs(text: string): DecisionRef[];
|
|
25
|
+
/**
|
|
26
|
+
* The inverse of extractRefs: what THIS decision's own identity would be recorded as,
|
|
27
|
+
* if some other decision's text cited it. Used at ingest to resolve a pre-existing gap
|
|
28
|
+
* into a real link the moment the missing source is imported (ALI-796) - "Jira key ->
|
|
29
|
+
* imported Jira decision".
|
|
30
|
+
*
|
|
31
|
+
* Deliberately narrow, matching extractRefs' own restraint: only jira/linear/github/
|
|
32
|
+
* gitlab source items have a citable identity. A slack message or a bare `cli` capture
|
|
33
|
+
* can be POINTED AT (via extractRefs) but nothing else could plausibly cite one by a
|
|
34
|
+
* short key, so there is no second candidate shape to check.
|
|
35
|
+
*/
|
|
36
|
+
export declare function refIdentityFor(platform: string, sourceUrl: string | null | undefined): DecisionRef[];
|
|
20
37
|
//# sourceMappingURL=decision-refs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision-refs.d.ts","sourceRoot":"","sources":["../../src/lib/decision-refs.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"decision-refs.d.ts","sourceRoot":"","sources":["../../src/lib/decision-refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACtF;AAkDD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAgCvD;AAGD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,EAAE,CAuBpG"}
|