@aligndottech/cli 0.41.0 → 0.43.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 +5 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +20 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/mcp.d.ts +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +57 -23
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +200 -4
- package/dist/commands/setup.js.map +1 -1
- package/dist/lib/access-capability.d.ts +33 -0
- package/dist/lib/access-capability.d.ts.map +1 -0
- package/dist/lib/access-capability.js +41 -0
- package/dist/lib/access-capability.js.map +1 -0
- package/dist/lib/as-of.d.ts +80 -0
- package/dist/lib/as-of.d.ts.map +1 -0
- package/dist/lib/as-of.js +305 -0
- package/dist/lib/as-of.js.map +1 -0
- package/dist/lib/config.d.ts +32 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +64 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/decision-relations.d.ts +9 -7
- package/dist/lib/decision-relations.d.ts.map +1 -1
- package/dist/lib/decision-relations.js +9 -7
- package/dist/lib/decision-relations.js.map +1 -1
- package/dist/lib/gateway-client.d.ts +10 -1
- package/dist/lib/gateway-client.d.ts.map +1 -1
- package/dist/lib/gateway-client.js +9 -2
- package/dist/lib/gateway-client.js.map +1 -1
- package/dist/lib/local-db.d.ts +43 -0
- package/dist/lib/local-db.d.ts.map +1 -1
- package/dist/lib/local-db.js +46 -2
- package/dist/lib/local-db.js.map +1 -1
- package/dist/lib/local-gateway-client.d.ts +40 -4
- package/dist/lib/local-gateway-client.d.ts.map +1 -1
- package/dist/lib/local-gateway-client.js +151 -19
- package/dist/lib/local-gateway-client.js.map +1 -1
- package/dist/lib/local-llm.d.ts +9 -2
- package/dist/lib/local-llm.d.ts.map +1 -1
- package/dist/lib/local-llm.js +33 -5
- package/dist/lib/local-llm.js.map +1 -1
- package/dist/lib/value-rollup.d.ts.map +1 -1
- package/dist/lib/value-rollup.js +3 -1
- package/dist/lib/value-rollup.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -106,9 +106,10 @@ That is the whole of `align --help`. Every other command (`search`, `decisions`,
|
|
|
106
106
|
[docs/commands.md](docs/commands.md).
|
|
107
107
|
|
|
108
108
|
`align ask` needs an AI provider to write prose. Without one it returns the matching decisions
|
|
109
|
-
as a ranked list, which needs no key.
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
as a ranked list, which needs no key. `align setup` offers a free Groq key (no card, ever) as
|
|
110
|
+
the guided default, with Gemini as a backup for when Groq's daily limit is hit - or bring your
|
|
111
|
+
own: Anthropic, OpenAI, Gemini, Groq, Mistral, Grok, any OpenAI-compatible endpoint, or a local
|
|
112
|
+
Ollama. [Setting one up](docs/configuration.md#ai-provider).
|
|
112
113
|
|
|
113
114
|
## Docs
|
|
114
115
|
|
|
@@ -122,6 +123,7 @@ Grok, any OpenAI-compatible endpoint, or a local Ollama.
|
|
|
122
123
|
| [MCP server](docs/mcp.md) | Editor config, the tools your assistant gets |
|
|
123
124
|
| [Configuration](docs/configuration.md) | AI providers, env vars, auth, self-hosting |
|
|
124
125
|
| [Agent hooks](docs/agent-hooks.md) | Per-host capability matrix |
|
|
126
|
+
| [Choosing an access path](docs/access-capability.md) | API vs CLI JSON vs MCP, and why |
|
|
125
127
|
| [All commands](docs/commands.md) | Full reference |
|
|
126
128
|
|
|
127
129
|
## Why bother
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,WAAW,CAAC;AAQ1C,oGAAoG;AACpG,eAAO,MAAM,gBAAgB,yEAAyE,CAAC;AAEvG;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAqBvD;AAED,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;uEACmE;IACnE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CAC7E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CA8EvE"}
|
package/dist/cli.js
CHANGED
|
@@ -2,6 +2,7 @@ import { Command, Help } from 'commander';
|
|
|
2
2
|
import pkg from '../package.json' with { type: 'json' };
|
|
3
3
|
import { COMMAND_REGISTRY, ROOT_SUMMARY, visibleEntries } from './commands/registry.js';
|
|
4
4
|
import { runDefaultAction } from './commands/default-action.js';
|
|
5
|
+
import { createConfigStore, hydrateProviderKeyEnv } from './lib/config.js';
|
|
5
6
|
const { version } = pkg;
|
|
6
7
|
/** Where every hidden command is documented; `align --help` points here instead of listing them. */
|
|
7
8
|
export const COMMANDS_DOC_URL = 'https://github.com/aligndottech/align-cli/blob/main/docs/commands.md';
|
|
@@ -59,6 +60,25 @@ export function buildProgram(options = {}) {
|
|
|
59
60
|
const { invocationCommandPath, recordInstallBeacon } = await import('./lib/usage-telemetry.js');
|
|
60
61
|
void recordInstallBeacon(invocationCommandPath(actionCommand));
|
|
61
62
|
});
|
|
63
|
+
// ALI-1284: a provider key `align setup`'s guided free-tier path collected on a
|
|
64
|
+
// previous run, read back into process.env before the command's own action runs so
|
|
65
|
+
// `align ask`/local relationship typing see it exactly as if the user had exported it
|
|
66
|
+
// themselves. `preAction` only, never module scope in index.ts: it fires for every real
|
|
67
|
+
// command but never for `--version`/`--help`, which Commander short-circuits without
|
|
68
|
+
// calling any hook - so a fresh-machine `align --version` still creates no config.json
|
|
69
|
+
// (startup-migration.test.ts pins exactly that for the module-scope migrations above
|
|
70
|
+
// it, and constructing a Conf store is not the pure operation those keep themselves to -
|
|
71
|
+
// see createConfigStore's own comment on migrateConfigDirectory for why that split
|
|
72
|
+
// exists). Non-fatal: an unreadable config must never stop the command the user asked for.
|
|
73
|
+
program.hook('preAction', () => {
|
|
74
|
+
try {
|
|
75
|
+
hydrateProviderKeyEnv(createConfigStore());
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
if (process.env['ALIGN_DEBUG'])
|
|
79
|
+
console.error('align: provider key hydration failed (non-fatal):', e);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
62
82
|
// ALI-403/ALI-618/ALI-954: one usage event per invocation, so CLI activation and weekly
|
|
63
83
|
// retention are countable in both cloud mode (opt-out) and local-embedded mode (with the
|
|
64
84
|
// stored consent - a no-op until the setup prompt or `align telemetry on` grants it). No-op
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/mcp.d.ts
CHANGED
|
@@ -314,6 +314,6 @@ export declare const TOOL_SCHEMAS: ({
|
|
|
314
314
|
required: string[];
|
|
315
315
|
};
|
|
316
316
|
})[];
|
|
317
|
-
export declare function validateCreatedBeforeFlag(value: string,
|
|
317
|
+
export declare function validateCreatedBeforeFlag(value: string, _env: EnvironmentConfig): void;
|
|
318
318
|
export declare function registerMcpCommand(program: Command): void;
|
|
319
319
|
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,OAAO,EAAqB,KAAK,iBAAiB,EAAgB,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,OAAO,EAAqB,KAAK,iBAAiB,EAAgB,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAyC/D,eAAO,MAAM,sBAAsB,QAGlC,CAAC;AA+CF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAS9D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,YAAY,CAkC1E;AAOD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAE1D;AAMD,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,MAAM,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAC9C,GAAG,EAAE,iBAAiB,EACtB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC,CAwIlB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAU9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAC9C,GAAG,EAAE,iBAAiB,EACtB,aAAa,CAAC,EAAE,MAAM,GACrB,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;CAAE,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAS7I;AAmBD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+JxB,CAAC;AAkDF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAWtF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoEzD"}
|
package/dist/commands/mcp.js
CHANGED
|
@@ -14,6 +14,7 @@ import { recordFunnelStage } from '../lib/usage-telemetry.js';
|
|
|
14
14
|
import { inviteNudgeLine } from '../lib/invite-prompt.js';
|
|
15
15
|
import { renderMcpInstructions } from '../lib/mcp-instructions.shared.js';
|
|
16
16
|
import { withDecisionRelationContract } from '../lib/decision-relations.js';
|
|
17
|
+
import { createAsOfGuard, filterAlignmentAsOf, filterConflictsAsOf, filterDecisionTimelineAsOf, filterImpactAsOf, filterTopicTimelineAsOf, notInGraphAsOf, } from '../lib/as-of.js';
|
|
17
18
|
import { DECISION_RATIONALE_TOOL, DECISION_TIMELINE_TOOL, shapeDecisionRationale, shapeTopicTimeline, STORY_GATE, TOPIC_TIMELINE_TOOL, } from '../lib/mcp-timeline-tools.js';
|
|
18
19
|
// Server-level instructions (ALI-120): surfaced to the agent so it reaches for Align
|
|
19
20
|
// proactively - without the user prompting - the moment this MCP server is connected.
|
|
@@ -156,6 +157,13 @@ export async function dispatchTool(name, args, client, env, createdBefore) {
|
|
|
156
157
|
throw new Error(`${name} requires ${names}. Call it again with ${missing.length > 1 ? 'those arguments' : 'that argument'} ` +
|
|
157
158
|
'set to a non-empty value.');
|
|
158
159
|
}
|
|
160
|
+
// ALI-1411: every READ tool honours the as-of cutoff, not just the three built on
|
|
161
|
+
// searchDecisions. Only smart-search and the decision-links cursor bound it server-side;
|
|
162
|
+
// the rest are filtered by lib/as-of.ts, which says what that cannot cover. With no cutoff
|
|
163
|
+
// the guard is never built, so every arm below calls and returns exactly what it did before.
|
|
164
|
+
const asOf = createdBefore
|
|
165
|
+
? createAsOfGuard(createdBefore, (id) => client.getDecision(id))
|
|
166
|
+
: undefined;
|
|
159
167
|
switch (name) {
|
|
160
168
|
// ONE arm for both names (ALI-952). align_search is the alias of align_ask: they were two
|
|
161
169
|
// entries for the same gateway call with two dispatch arms that had already drifted
|
|
@@ -196,14 +204,27 @@ export async function dispatchTool(name, args, client, env, createdBefore) {
|
|
|
196
204
|
}
|
|
197
205
|
return client.captureDecision(input, platform);
|
|
198
206
|
}
|
|
199
|
-
case 'align_check_alignment':
|
|
200
|
-
|
|
207
|
+
case 'align_check_alignment': {
|
|
208
|
+
const result = await client.checkAlignment(args?.['diff'], args?.['context']);
|
|
209
|
+
return asOf ? filterAlignmentAsOf(result, asOf) : result;
|
|
210
|
+
}
|
|
201
211
|
case 'align_check_drift':
|
|
212
|
+
// Drift against a decision that did not exist yet is not an as-of answer.
|
|
213
|
+
if (asOf)
|
|
214
|
+
await asOf.assertDecision(args?.['decision_id']);
|
|
202
215
|
return client.checkDrift(args?.['decision_id'], args?.['content'], args?.['source_type']);
|
|
203
|
-
case 'align_get_impact':
|
|
204
|
-
|
|
216
|
+
case 'align_get_impact': {
|
|
217
|
+
if (asOf)
|
|
218
|
+
await asOf.assertDecision(args?.['decision_id']);
|
|
219
|
+
const result = await client.getImpact(args?.['decision_id']);
|
|
220
|
+
return asOf ? filterImpactAsOf(result, asOf) : result;
|
|
221
|
+
}
|
|
205
222
|
case 'align_get_conflicts':
|
|
206
|
-
|
|
223
|
+
// The cutoff bounds the link query server-side (the endpoint's timestamp cursor); the
|
|
224
|
+
// filter then bounds both endpoints and recounts. No cutoff keeps the no-argument call.
|
|
225
|
+
return asOf
|
|
226
|
+
? filterConflictsAsOf(await client.getConflicts({ createdBefore: asOf.cutoff }), asOf)
|
|
227
|
+
: client.getConflicts();
|
|
207
228
|
// Same shape, same agent, same contract - a row reaching an agent through this tool must not
|
|
208
229
|
// say "no conflict exists" where the other two say nothing.
|
|
209
230
|
case 'align_get_related_decisions':
|
|
@@ -218,8 +239,10 @@ export async function dispatchTool(name, args, client, env, createdBefore) {
|
|
|
218
239
|
* `limit` is passed through undefined when the agent omitted it: the default lives in the
|
|
219
240
|
* client, so there is one writer of it.
|
|
220
241
|
*/
|
|
221
|
-
case TOPIC_TIMELINE_TOOL:
|
|
222
|
-
|
|
242
|
+
case TOPIC_TIMELINE_TOOL: {
|
|
243
|
+
const raw = await client.getTopicTimeline(args?.['topic'], args?.['limit']);
|
|
244
|
+
return shapeTopicTimeline(asOf ? filterTopicTimelineAsOf(raw, asOf) : raw, args?.['topic']);
|
|
245
|
+
}
|
|
223
246
|
/**
|
|
224
247
|
* Reuses getDecision - the hosted connector's getDecisionRationale is the same
|
|
225
248
|
* `GET /snapshots/:id`, so a second client method would be two writers of one call. It
|
|
@@ -234,10 +257,17 @@ export async function dispatchTool(name, args, client, env, createdBefore) {
|
|
|
234
257
|
// and silently dropped the rationale. The raw id goes to the client (local mode does a
|
|
235
258
|
// database lookup with it); encoding is the HTTP boundary's job.
|
|
236
259
|
const row = await client.getDecision(args?.['decision_id']);
|
|
260
|
+
// The row carries its own created_at, so the as-of check needs no second lookup.
|
|
261
|
+
if (asOf && !asOf.isBefore(row?.created_at))
|
|
262
|
+
throw notInGraphAsOf(args?.['decision_id'], asOf.cutoff);
|
|
237
263
|
return shapeDecisionRationale(row, args?.['decision_id']);
|
|
238
264
|
}
|
|
239
|
-
case DECISION_TIMELINE_TOOL:
|
|
240
|
-
|
|
265
|
+
case DECISION_TIMELINE_TOOL: {
|
|
266
|
+
if (asOf)
|
|
267
|
+
await asOf.assertDecision(args?.['decision_id']);
|
|
268
|
+
const result = await client.getDecisionTimeline(args?.['decision_id']);
|
|
269
|
+
return asOf ? filterDecisionTimelineAsOf(result, asOf) : result;
|
|
270
|
+
}
|
|
241
271
|
default:
|
|
242
272
|
throw new Error(`Unknown tool: ${name}`);
|
|
243
273
|
}
|
|
@@ -454,19 +484,26 @@ export const TOOL_SCHEMAS = [
|
|
|
454
484
|
},
|
|
455
485
|
];
|
|
456
486
|
/**
|
|
457
|
-
* ALI-1082: --created-before is a harness/audit-only bound (AlignBench's align arm
|
|
458
|
-
* it so it cannot see decisions the graph captured after a corpus item's frozen
|
|
459
|
-
*
|
|
487
|
+
* ALI-1082/ALI-1087: --created-before is a harness/audit-only bound (AlignBench's align arm
|
|
488
|
+
* passes it so it cannot see decisions the graph captured after a corpus item's frozen
|
|
489
|
+
* `asOf`), and every deployment mode - cloud, self-host, and true local-embedded - carries
|
|
490
|
+
* the same as-of correctness guarantee. Fail closed at startup rather than silently
|
|
491
|
+
* accepting a value that does nothing:
|
|
460
492
|
*
|
|
461
|
-
* - Local-embedded mode has no server-side query to attach the bound to (the local graph
|
|
462
|
-
* answers from SQLite directly, not through the gateway route that enforces it), so a
|
|
463
|
-
* flag that appeared to work there would be lying.
|
|
464
493
|
* - Anything that is not an offset-bearing ISO-8601 instant is rejected the same way the
|
|
465
494
|
* gateway's own `created_before` filter rejects it (services/gateway/src/routes/
|
|
466
495
|
* decisions/smartSearchFilters.ts) - a bare calendar date (the shape the benchmark
|
|
467
496
|
* corpus's `asOf` field itself carries) is refused rather than coerced, because the
|
|
468
|
-
* caller must decide the instant in UTC, not have Postgres
|
|
469
|
-
* against
|
|
497
|
+
* caller must decide the instant in UTC, not have Postgres (or, locally, a string
|
|
498
|
+
* comparison against SQLite's `created_at`) resolve a date-only literal against the
|
|
499
|
+
* session TimeZone.
|
|
500
|
+
*
|
|
501
|
+
* ALI-1087 removed the local-embedded rejection that used to sit here: "there is no cutoff
|
|
502
|
+
* concept locally" described the implementation of the day, not a reason. The local graph
|
|
503
|
+
* stores every decision and edge with a real `created_at`, so `createLocalGatewayClient`
|
|
504
|
+
* now honours the bound the same way the cloud query does (see its `searchDecisions` and
|
|
505
|
+
* `relationFieldsFor`) - a local-only user, the most privacy-sensitive path in the product,
|
|
506
|
+
* no longer gets the weakest correctness guarantee.
|
|
470
507
|
*/
|
|
471
508
|
const OFFSET_ISO_PATTERN = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/;
|
|
472
509
|
// Copilot (#302, mcp.ts:514): the pattern above checks SHAPE, not that the digits form a
|
|
@@ -488,12 +525,9 @@ function isRealCalendarInstant(value, match) {
|
|
|
488
525
|
asUtc.getUTCMinutes() === minute &&
|
|
489
526
|
asUtc.getUTCSeconds() === second);
|
|
490
527
|
}
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
`server-side query to enforce the bound against, so accepting it would silently do ` +
|
|
495
|
-
`nothing. Got: ${value}`);
|
|
496
|
-
}
|
|
528
|
+
// `_env` stays in the signature for call-site compatibility (the one call site below, and
|
|
529
|
+
// every test, passes it) even though the format check no longer branches on the mode.
|
|
530
|
+
export function validateCreatedBeforeFlag(value, _env) {
|
|
497
531
|
const match = OFFSET_ISO_PATTERN.exec(value);
|
|
498
532
|
// The offset's own range (e.g. +99:99) and an out-of-range hour/minute/second (25:00,
|
|
499
533
|
// 00:61) are already rejected by Date.parse below - only the calendar-day case needs
|
package/dist/commands/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,OAAO,EAAE,iBAAiB,EAAE,KAAK,OAAO,EAAkB,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAS/D,OAAO,EAAE,sBAAsB,EAAmB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,OAAO,EAAE,iBAAiB,EAAE,KAAK,OAAO,EAAkB,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAS/D,OAAO,EAAE,sBAAsB,EAAmB,MAAM,0BAA0B,CAAC;AA0XnF;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAE1E;AAkaD;;;;;;;GAOG;AACH,kGAAkG;AAClG,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC7C,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC7E,WAAW,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IACpD,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kGAAkG;IAClG,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,iGAAiG;IACjG,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,iGAAiG;AACjG,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAK5C;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAuNzG;AAqFD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAS3D;AAED;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAChF,OAAO,CAAC,IAAI,CAAC,CAmEf"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -32,6 +32,7 @@ import { setupSummaryLine, unresolvedGaps } from '../lib/connect-prompt.js';
|
|
|
32
32
|
import { createSetupFunnel } from '../lib/setup-funnel.js';
|
|
33
33
|
import { agentAskLine, agentConnectedLine, orderAgents, projectAgentsFromWritten } from '../lib/next-step.js';
|
|
34
34
|
import { firstDecision } from '../lib/first-decision.js';
|
|
35
|
+
import { hasConfiguredProvider } from '../lib/local-llm.js';
|
|
35
36
|
const TIER_ORDER = { personal: 0, site: 1, workspace: 2 };
|
|
36
37
|
// How many connectors import concurrently after auth. Each import is itself
|
|
37
38
|
// batch-parallel (runPersonalImport), so this bounds total gateway load.
|
|
@@ -357,6 +358,184 @@ function writeAgentAlignment(envName) {
|
|
|
357
358
|
return [];
|
|
358
359
|
}
|
|
359
360
|
}
|
|
361
|
+
// ---------------------------------------------------------------------------
|
|
362
|
+
// Guided free-tier AI provider key (ALI-1284)
|
|
363
|
+
// ---------------------------------------------------------------------------
|
|
364
|
+
/**
|
|
365
|
+
* ALI-1283 made BYOK mandatory for every tenant, including free/solo, retiring the
|
|
366
|
+
* Align-managed LLM fallback. Before this, `align ask` without a provider key just
|
|
367
|
+
* returned a ranked list with no guidance toward getting one - "bring any key" with
|
|
368
|
+
* nothing pointing at where to get one fast. That is a cliff against this project's own
|
|
369
|
+
* target (a useful first answer within an hour), so the guided default is Groq (no card,
|
|
370
|
+
* ever; fastest free-tier inference) with Gemini Flash-Lite offered as a second key for
|
|
371
|
+
* when Groq's daily request cap is hit. Both DECIDED 2026-09-24 - see the ALI-1284 ticket
|
|
372
|
+
* for the free-tier limits that were checked before picking Groq+Gemini over Cerebras
|
|
373
|
+
* (now needs a card for its trial) and OpenRouter's `:free` tier (tighter, weaker models).
|
|
374
|
+
*
|
|
375
|
+
* Skipped entirely, in order:
|
|
376
|
+
* - under --approve: a scripted run has no terminal to paste a key into.
|
|
377
|
+
* - when a DIFFERENT provider is already configured via env: nothing to fix, with or
|
|
378
|
+
* without --reset - this wizard only ever owns Groq and Gemini, so it must never
|
|
379
|
+
* re-open itself over someone's genuinely separate ANTHROPIC_API_KEY (Copilot review,
|
|
380
|
+
* PR #322: hasConfiguredProvider(['groq', 'gemini']) is what makes this true under
|
|
381
|
+
* --reset too, since the plain no-argument form would also count a --reset'd Groq/
|
|
382
|
+
* Gemini key hydrateProviderKeyEnv already wrote into process.env before this ran).
|
|
383
|
+
* - when a key from a PREVIOUS run of this offer is already stored, UNLESS --reset: do not
|
|
384
|
+
* re-ask every time, but give `--reset` the same "clear and redo" meaning here it already
|
|
385
|
+
* has for OAuth connectors - without this there was no way to act on the Gemini-backup
|
|
386
|
+
* documentation once Groq was stored: hydration restores the stored Groq key on every
|
|
387
|
+
* later invocation regardless of what the user unsets in their shell, so
|
|
388
|
+
* `align setup --reset` is the real (and now the documented) remedy. Declining either
|
|
389
|
+
* re-offered key under --reset CLEARS it (clearProviderKey), not just skips re-asking -
|
|
390
|
+
* otherwise a stale stored Gemini key could never actually be removed.
|
|
391
|
+
*
|
|
392
|
+
* Declining costs nothing - `align ask` still returns a ranked list - so every question
|
|
393
|
+
* here defaults to a plain confirm the user can say no to without losing anything.
|
|
394
|
+
*/
|
|
395
|
+
/**
|
|
396
|
+
* The non-interactive half of --reset for the Groq/Gemini pair: drop whichever of them is
|
|
397
|
+
* stored, so hydrateProviderKeyEnv has nothing left to re-apply on the next invocation.
|
|
398
|
+
* Called unconditionally and EARLY in runSetup (Copilot review, PR #323) - not from inside
|
|
399
|
+
* offerFreeProviderKey, which is reached too late and too conditionally to guarantee this:
|
|
400
|
+
* runLocalConnectorPhase only calls that function when `interactive` (always false under
|
|
401
|
+
* --approve, by construction - no TTY), so `align setup --local --reset --approve` never
|
|
402
|
+
* reached it at all; a cloud --approve run that is not yet logged in exits even earlier.
|
|
403
|
+
* Calling this before mode selection means neither path matters.
|
|
404
|
+
*/
|
|
405
|
+
function clearStoredProviderKeys(config) {
|
|
406
|
+
// Clears the STORED (on-disk) value only, and never touches process.env (Copilot review,
|
|
407
|
+
// PR #323, "previously missed" - deeper than an earlier fix here). The earlier version
|
|
408
|
+
// deleted the env var when it equalled the stored value, reasoning that equality meant
|
|
409
|
+
// hydration had put it there. It does not: hydrateProviderKeyEnv never overwrites a real
|
|
410
|
+
// shell-exported value, so a shell that happens to export the SAME string the stored
|
|
411
|
+
// value holds (set up once, then also added to a shell profile, say) is indistinguishable
|
|
412
|
+
// from "hydration injected it" by equality alone - there is no way to tell the two apart
|
|
413
|
+
// from process.env state. Clearing the stored value is what actually matters: it is what
|
|
414
|
+
// future invocations hydrate from, so this is enough to make the backup take over on the
|
|
415
|
+
// NEXT run. The cost is that THIS run may still see the old value in its own process.env
|
|
416
|
+
// for its own remaining work - a stale-for-one-run concession, not a destroyed credential.
|
|
417
|
+
config.clearProviderKey('groq');
|
|
418
|
+
config.clearProviderKey('gemini');
|
|
419
|
+
}
|
|
420
|
+
async function offerFreeProviderKey(config, opts) {
|
|
421
|
+
// --approve never prompts, full stop. The non-prompting --reset clear it still needs
|
|
422
|
+
// (Copilot review, PR #323) runs unconditionally in runSetup, BEFORE mode selection -
|
|
423
|
+
// not here, because this function is reached late and conditionally: runLocalConnectorPhase
|
|
424
|
+
// only calls it when `interactive` (false under --approve by construction, so --local
|
|
425
|
+
// --reset --approve never reached it at all), and an unauthenticated cloud --approve run
|
|
426
|
+
// exits earlier still. clearStoredProviderKeys running up front means neither path matters.
|
|
427
|
+
if (opts.approve)
|
|
428
|
+
return;
|
|
429
|
+
if (!opts.reset) {
|
|
430
|
+
if (hasConfiguredProvider())
|
|
431
|
+
return;
|
|
432
|
+
if (config.getProviderKey('groq') || config.getProviderKey('gemini'))
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
else if (hasConfiguredProvider(['groq', 'gemini'])) {
|
|
436
|
+
// --reset only concerns the Groq/Gemini pair THIS wizard manages, so skip only the
|
|
437
|
+
// stored-key guard, not the real-env one (Copilot review, PR #322): --reset must not
|
|
438
|
+
// re-open the wizard for someone who genuinely configured a DIFFERENT provider
|
|
439
|
+
// (ANTHROPIC_API_KEY, say) - that still means "nothing to fix" regardless of the flag.
|
|
440
|
+
// hydrateProviderKeyEnv (cli.ts's preAction) already wrote any stored Groq/Gemini key
|
|
441
|
+
// into process.env before this command's action started, so the plain
|
|
442
|
+
// hasConfiguredProvider() the non-reset branch uses would read a --reset'd stored
|
|
443
|
+
// value as "already configured" and never reach the re-offer at all - hence the
|
|
444
|
+
// exclusion rather than reusing that call directly.
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
console.log('');
|
|
448
|
+
const wantGroq = await p.confirm({
|
|
449
|
+
message: `${chalk.bold('align ask')} needs an AI provider key to write prose answers ` +
|
|
450
|
+
`(without one it still returns a ranked list of matching decisions). ` +
|
|
451
|
+
`Set up a free Groq key now? No card, ever - and it's the fastest free tier.`,
|
|
452
|
+
initialValue: true,
|
|
453
|
+
});
|
|
454
|
+
// Cancel (Ctrl-C) and an explicit "no" are NOT the same thing (Copilot review, PR #322):
|
|
455
|
+
// cancelling means "stop asking me", and must never have the side effect of deleting a
|
|
456
|
+
// saved credential - unaffected by round-4's fix moving the --reset clear to the top of
|
|
457
|
+
// runSetup, which runs unconditionally before this prompt is ever reached. Round 4
|
|
458
|
+
// (Copilot review): a bare `return` here let the wizard fall through to the normal
|
|
459
|
+
// outro and report `setup_completed`, silently swallowing the cancel - inconsistent with
|
|
460
|
+
// every other top-level prompt in this file (`p.cancel(...)` + `process.exit(0)`, lines
|
|
461
|
+
// ~1208/1260). Matched here too, so Ctrl-C at this LAST step aborts the wizard rather than
|
|
462
|
+
// reporting success for a run the user explicitly cut short.
|
|
463
|
+
if (p.isCancel(wantGroq)) {
|
|
464
|
+
p.cancel('Cancelled.');
|
|
465
|
+
process.exit(0);
|
|
466
|
+
}
|
|
467
|
+
if (!wantGroq) {
|
|
468
|
+
// --reset declining Groq is the one way to make a previously stored Gemini key (or no
|
|
469
|
+
// key at all) actually take over: hydration re-applies whatever is stored on every
|
|
470
|
+
// invocation regardless of what the shell does, so "decline" has to mean "forget it",
|
|
471
|
+
// not merely "don't re-ask".
|
|
472
|
+
if (opts.reset && config.getProviderKey('groq')) {
|
|
473
|
+
// Clears only the STORED value, deliberately never process.env - see
|
|
474
|
+
// clearStoredProviderKeys's comment: equality with the stored value does not prove
|
|
475
|
+
// the current env value came from hydration rather than the user's own shell.
|
|
476
|
+
config.clearProviderKey('groq');
|
|
477
|
+
p.log.info('Cleared the saved Groq key.');
|
|
478
|
+
}
|
|
479
|
+
return;
|
|
480
|
+
}
|
|
481
|
+
p.log.info(`Get one free: ${chalk.bold('https://console.groq.com/keys')}`);
|
|
482
|
+
const groqKey = await guardedPrompt('Groq API key', () => p.password({ message: ' Groq API key:' }));
|
|
483
|
+
// Cancel here needs the same abort as the confirm above it (Copilot review, PR #323,
|
|
484
|
+
// "previously missed" - the confirm fix alone left this prompt's own Ctrl-C still
|
|
485
|
+
// falling through to the outro). `null` (guardedPrompt already warned about a crashed
|
|
486
|
+
// prompt) and an empty paste are not cancellation and keep the softer skip-and-continue.
|
|
487
|
+
if (p.isCancel(groqKey)) {
|
|
488
|
+
p.cancel('Cancelled.');
|
|
489
|
+
process.exit(0);
|
|
490
|
+
}
|
|
491
|
+
if (groqKey === null || !groqKey) {
|
|
492
|
+
// Under --reset, a plain re-run would hydrate the still-stored key and skip this offer
|
|
493
|
+
// entirely (Copilot review, PR #323, "previously missed") - pointing back at plain
|
|
494
|
+
// `align setup` here repeats the exact documentation bug this PR exists to fix.
|
|
495
|
+
const retryHint = opts.reset ? 'align setup --reset' : 'align setup';
|
|
496
|
+
p.log.warn(`No key entered - skipping. Set ${chalk.bold('GROQ_API_KEY')} yourself any time, or run ${chalk.bold(retryHint)} again.`);
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
499
|
+
config.setProviderKey('groq', groqKey);
|
|
500
|
+
process.env['GROQ_API_KEY'] = groqKey; // usable immediately, this run
|
|
501
|
+
p.log.success(`Saved - ${chalk.bold('align ask')} will use it on this machine from now on.`);
|
|
502
|
+
const wantGemini = await p.confirm({
|
|
503
|
+
message: `Also add a Gemini key as backup for when Groq's daily limit is hit? (also free, no card)`,
|
|
504
|
+
initialValue: true,
|
|
505
|
+
});
|
|
506
|
+
// Same cancel/decline split as Groq above, including round 4's fix: terminate rather
|
|
507
|
+
// than fall through to the outro.
|
|
508
|
+
if (p.isCancel(wantGemini)) {
|
|
509
|
+
p.cancel('Cancelled.');
|
|
510
|
+
process.exit(0);
|
|
511
|
+
}
|
|
512
|
+
if (!wantGemini) {
|
|
513
|
+
// Symmetric with the Groq decline above: without this, clearProviderKey('gemini') had
|
|
514
|
+
// no caller anywhere, and `--reset` could remove a stored Groq key but never a stored
|
|
515
|
+
// Gemini one - so "clears saved AI provider keys" (the option's own help text) was not
|
|
516
|
+
// actually true for Gemini.
|
|
517
|
+
if (opts.reset && config.getProviderKey('gemini')) {
|
|
518
|
+
// Same reasoning as the Groq decline above: clears only the stored value.
|
|
519
|
+
config.clearProviderKey('gemini');
|
|
520
|
+
p.log.info('Cleared the saved Gemini key.');
|
|
521
|
+
}
|
|
522
|
+
return;
|
|
523
|
+
}
|
|
524
|
+
p.log.info(`Get one free: ${chalk.bold('https://aistudio.google.com/apikey')}`);
|
|
525
|
+
const geminiKey = await guardedPrompt('Gemini API key', () => p.password({ message: ' Gemini API key:' }));
|
|
526
|
+
// Same split as the Groq password prompt above.
|
|
527
|
+
if (p.isCancel(geminiKey)) {
|
|
528
|
+
p.cancel('Cancelled.');
|
|
529
|
+
process.exit(0);
|
|
530
|
+
}
|
|
531
|
+
if (geminiKey === null || !geminiKey) {
|
|
532
|
+
p.log.warn('No key entered - skipping the backup.');
|
|
533
|
+
return;
|
|
534
|
+
}
|
|
535
|
+
config.setProviderKey('gemini', geminiKey);
|
|
536
|
+
process.env['GEMINI_API_KEY'] = geminiKey;
|
|
537
|
+
p.log.success('Saved as backup.');
|
|
538
|
+
}
|
|
360
539
|
/** Thrown inside the docs block to leave it without starting a read; never surfaces. */
|
|
361
540
|
class SkipDocs extends Error {
|
|
362
541
|
}
|
|
@@ -824,6 +1003,12 @@ async function runLocalConnectorPhase(ctx) {
|
|
|
824
1003
|
const gaps = unresolvedGaps(refsDb.getAllRefs(), isConnected);
|
|
825
1004
|
refsDb.close();
|
|
826
1005
|
const gapLine = setupSummaryLine(gaps);
|
|
1006
|
+
// ALI-1284: the same guided free-tier key as the cloud path - local mode needs one too,
|
|
1007
|
+
// `align ask` resolves providers identically either way. Gated on `interactive` like
|
|
1008
|
+
// every other prompt in this phase, rather than only on `opts.approve`, since local mode
|
|
1009
|
+
// (unlike cloud) is routinely run non-interactively with no terminal to paste a key into.
|
|
1010
|
+
if (interactive)
|
|
1011
|
+
await offerFreeProviderKey(config, opts);
|
|
827
1012
|
// ALI-950: the last line is the next step, and it happens in the agent - named, with a
|
|
828
1013
|
// question about a decision the wizard just found, and no CLI verb. This used to end on
|
|
829
1014
|
// `align ask "why <a thing you decided>"`, a prompt verb on the one screen whose job is to
|
|
@@ -852,7 +1037,7 @@ export function registerSetupCommand(program) {
|
|
|
852
1037
|
.option('--env <env>', 'Environment')
|
|
853
1038
|
.option('--approve', 'Skip confirmation prompts (for scripted use)')
|
|
854
1039
|
.option('--local', 'Set up local-only mode (no account, no cloud)')
|
|
855
|
-
.option('--reset', 'Clear cached OAuth tokens and
|
|
1040
|
+
.option('--reset', 'Clear cached OAuth tokens and saved AI provider keys, and redo their setup')
|
|
856
1041
|
.action(runSetup);
|
|
857
1042
|
}
|
|
858
1043
|
/**
|
|
@@ -869,6 +1054,15 @@ export async function runSetup(opts = {}) {
|
|
|
869
1054
|
const envName = resolveEnv(opts.env);
|
|
870
1055
|
const env = config.getEnvironment(envName);
|
|
871
1056
|
const client = createGatewayClient(env);
|
|
1057
|
+
// --reset --approve: clear unconditionally, before mode selection and before any
|
|
1058
|
+
// auth/TTY-gated exit can skip it (Copilot review, PR #323). Gated on BOTH flags,
|
|
1059
|
+
// deliberately: a plain interactive `--reset` (no --approve) must NOT wipe the stored
|
|
1060
|
+
// key here, or offerFreeProviderKey's re-offer below would find nothing to re-offer and
|
|
1061
|
+
// the user would never get the chance to choose - only the non-prompting --approve case
|
|
1062
|
+
// needs this early, unconditional clear. See clearStoredProviderKeys's own comment for
|
|
1063
|
+
// why this cannot live inside offerFreeProviderKey instead.
|
|
1064
|
+
if (opts.approve && opts.reset)
|
|
1065
|
+
clearStoredProviderKeys(config);
|
|
872
1066
|
// The one place a full brand moment belongs: first run, before any questions.
|
|
873
1067
|
printBanner({ version });
|
|
874
1068
|
p.intro(commandIntro('align setup'));
|
|
@@ -917,7 +1111,7 @@ export async function runSetup(opts = {}) {
|
|
|
917
1111
|
mode = choice;
|
|
918
1112
|
}
|
|
919
1113
|
if (mode === 'local') {
|
|
920
|
-
await runLocalSetup({ approve: opts.approve, funnel });
|
|
1114
|
+
await runLocalSetup({ approve: opts.approve, reset: opts.reset, funnel });
|
|
921
1115
|
return;
|
|
922
1116
|
}
|
|
923
1117
|
await runCloudSetup({ opts, config, env, client, envName, funnel });
|
|
@@ -933,7 +1127,7 @@ export async function runSetup(opts = {}) {
|
|
|
933
1127
|
* provisional state (component 1's "nothing about the cloud path changes once chosen").
|
|
934
1128
|
*/
|
|
935
1129
|
async function runFreshSetup(ctx) {
|
|
936
|
-
const phase = await runLocalValuePhase({ approve: ctx.opts.approve, funnel: ctx.funnel });
|
|
1130
|
+
const phase = await runLocalValuePhase({ approve: ctx.opts.approve, reset: ctx.opts.reset, funnel: ctx.funnel });
|
|
937
1131
|
// The value phase's capture report is printed by runLocalConnectorPhase, so choosing
|
|
938
1132
|
// cloud below drops it - deliberately: runCloudSetup re-imports git and docs into the
|
|
939
1133
|
// cloud tenant and prints its own report, which is the one that describes that graph.
|
|
@@ -1007,7 +1201,7 @@ async function runCloudSetup(ctx) {
|
|
|
1007
1201
|
// Declined cloud login: offer the local escape hatch instead of failing.
|
|
1008
1202
|
const wantLocal = await p.confirm({ message: 'Set up local-only mode instead? (no account, stays on this machine)' });
|
|
1009
1203
|
if (!p.isCancel(wantLocal) && wantLocal) {
|
|
1010
|
-
await runLocalSetup({ approve: opts.approve, funnel });
|
|
1204
|
+
await runLocalSetup({ approve: opts.approve, reset: opts.reset, funnel });
|
|
1011
1205
|
return;
|
|
1012
1206
|
}
|
|
1013
1207
|
p.log.warn(`Run ${chalk.bold('align login')} when ready, then ${chalk.bold('align setup')}.`);
|
|
@@ -1302,6 +1496,8 @@ async function runCloudSetup(ctx) {
|
|
|
1302
1496
|
console.log(captureText);
|
|
1303
1497
|
console.log('');
|
|
1304
1498
|
}
|
|
1499
|
+
// ---- Step 7b: guided free-tier AI provider key (ALI-1284) ----
|
|
1500
|
+
await offerFreeProviderKey(config, opts);
|
|
1305
1501
|
// ---- Outro ----
|
|
1306
1502
|
const decisionsLine = totalDecisions > 0
|
|
1307
1503
|
? ` ${totalDecisions} decisions in your graph`
|