@veilio-inc/cli 0.6.0 → 0.7.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 (60) hide show
  1. package/README.md +63 -24
  2. package/dist/args.d.ts +25 -10
  3. package/dist/args.d.ts.map +1 -1
  4. package/dist/args.js +112 -87
  5. package/dist/args.js.map +1 -1
  6. package/dist/client/index.d.ts +1 -0
  7. package/dist/client/index.d.ts.map +1 -1
  8. package/dist/client/index.js +1 -0
  9. package/dist/client/index.js.map +1 -1
  10. package/dist/client/maps.d.ts +8 -0
  11. package/dist/client/maps.d.ts.map +1 -1
  12. package/dist/client/maps.js +125 -29
  13. package/dist/client/maps.js.map +1 -1
  14. package/dist/client/project-scope.d.ts +87 -0
  15. package/dist/client/project-scope.d.ts.map +1 -0
  16. package/dist/client/project-scope.js +132 -0
  17. package/dist/client/project-scope.js.map +1 -0
  18. package/dist/client/projects.d.ts +31 -1
  19. package/dist/client/projects.d.ts.map +1 -1
  20. package/dist/client/projects.js +71 -10
  21. package/dist/client/projects.js.map +1 -1
  22. package/dist/client/status.d.ts +2 -0
  23. package/dist/client/status.d.ts.map +1 -1
  24. package/dist/client/status.js +16 -7
  25. package/dist/client/status.js.map +1 -1
  26. package/dist/client/wording.d.ts +4 -1
  27. package/dist/client/wording.d.ts.map +1 -1
  28. package/dist/client/wording.js +28 -6
  29. package/dist/client/wording.js.map +1 -1
  30. package/dist/cloud-commands.d.ts +4 -2
  31. package/dist/cloud-commands.d.ts.map +1 -1
  32. package/dist/cloud-commands.js +31 -25
  33. package/dist/cloud-commands.js.map +1 -1
  34. package/dist/cloud.d.ts +1 -1
  35. package/dist/cloud.d.ts.map +1 -1
  36. package/dist/cloud.js +2 -2
  37. package/dist/cloud.js.map +1 -1
  38. package/dist/commands.d.ts +14 -1
  39. package/dist/commands.d.ts.map +1 -1
  40. package/dist/commands.js +12 -59
  41. package/dist/commands.js.map +1 -1
  42. package/dist/credential.d.ts.map +1 -1
  43. package/dist/credential.js +6 -1
  44. package/dist/credential.js.map +1 -1
  45. package/dist/flags.d.ts +211 -0
  46. package/dist/flags.d.ts.map +1 -0
  47. package/dist/flags.js +410 -0
  48. package/dist/flags.js.map +1 -0
  49. package/dist/index.d.ts +6 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +27 -13
  52. package/dist/index.js.map +1 -1
  53. package/dist/team-namespace.d.ts +37 -2
  54. package/dist/team-namespace.d.ts.map +1 -1
  55. package/dist/team-namespace.js +20 -4
  56. package/dist/team-namespace.js.map +1 -1
  57. package/dist/third-party.d.ts.map +1 -1
  58. package/dist/third-party.js +10 -3
  59. package/dist/third-party.js.map +1 -1
  60. package/package.json +2 -2
@@ -1,11 +1,12 @@
1
1
  import { type Outcome } from './wording.js';
2
2
  import type { ClientContext } from './maps.js';
3
+ import { type ProjectOverride } from './project-scope.js';
3
4
  export interface ListedProject {
4
5
  id: string;
5
6
  name: string;
6
7
  /** The team's own maps in it. */
7
8
  maps: number | null;
8
- /** The one this sign-in chose. */
9
+ /** The one in use: VEILIO_PROJECT's when it is set, else the one chosen. */
9
10
  inUse: boolean;
10
11
  /** Where a new team map lands when none is chosen. */
11
12
  isDefault: boolean;
@@ -13,11 +14,40 @@ export interface ListedProject {
13
14
  export declare function listTeamProjects(ctx: ClientContext): Promise<Outcome<{
14
15
  projects: ListedProject[];
15
16
  chosen: string | null;
17
+ override: ProjectOverride | null;
16
18
  }>>;
19
+ /** What `listTeamProjects` found, as the CLI and the MCP server both print it. */
20
+ export interface ProjectsListing {
21
+ projects: ListedProject[];
22
+ chosen: string | null;
23
+ override: ProjectOverride | null;
24
+ }
25
+ /**
26
+ * The listing as text, once for both surfaces: one line per project (the one
27
+ * in use marked `*`, and saying so when the variable chose it), and the note
28
+ * that follows - the variable's sentence, or that none is chosen. The only
29
+ * thing a surface supplies is how it names the way to choose one.
30
+ */
31
+ export declare function formatProjectsList(listing: ProjectsListing, opts: {
32
+ surface: 'cli' | 'mcp';
33
+ }): {
34
+ lines: string[];
35
+ note: string | null;
36
+ };
37
+ /** What `projects use` says on stdout: where the work happens now, or - when
38
+ * the variable overrides the choice just stored - that it does not. */
39
+ export declare function usedSentence(used: {
40
+ id: string;
41
+ name: string;
42
+ overriddenBy: string | null;
43
+ }, opts: {
44
+ surface: 'cli' | 'mcp';
45
+ }): string;
17
46
  /** Choose a project by its id or its name. A name two projects share is
18
47
  * refused rather than guessed: guessing is how two projects' maps meet. */
19
48
  export declare function useProject(ctx: ClientContext, ref: string | null): Promise<Outcome<{
20
49
  id: string;
21
50
  name: string;
51
+ overriddenBy: string | null;
22
52
  }>>;
23
53
  //# sourceMappingURL=projects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/client/projects.ts"],"names":[],"mappings":"AAcA,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE9C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,iCAAiC;IACjC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,kCAAkC;IAClC,KAAK,EAAE,OAAO,CAAA;IACd,sDAAsD;IACtD,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,OAAO,CAAC;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC,CAyBxE;AAED;4EAC4E;AAC5E,wBAAsB,UAAU,CAC9B,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,OAAO,CAAC,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAiBhD"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/client/projects.ts"],"names":[],"mappings":"AAcA,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAI9C,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,iCAAiC;IACjC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,4EAA4E;IAC5E,KAAK,EAAE,OAAO,CAAA;IACd,sDAAsD;IACtD,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,aAAa,GACjB,OAAO,CACR,OAAO,CAAC;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,CAAC,CAChG,CAuCA;AAED,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;CACjC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE;IAAE,OAAO,EAAE,KAAK,GAAG,KAAK,CAAA;CAAE,GAC/B;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAoB1C;AAED;wEACwE;AACxE,wBAAgB,YAAY,CAC1B,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC/D,IAAI,EAAE;IAAE,OAAO,EAAE,KAAK,GAAG,KAAK,CAAA;CAAE,GAC/B,MAAM,CAUR;AAED;4EAC4E;AAC5E,wBAAsB,UAAU,CAC9B,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,OAAO,CAAC,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC,CAsB7E"}
@@ -12,6 +12,10 @@
12
12
  import { listProjects } from '../cloud.js';
13
13
  import { readCredential, writeCredential } from '../credential.js';
14
14
  import { refuse, refusalFromCloudError } from './wording.js';
15
+ // VEILIO_PROJECT, when it is set, as this listing resolves it (FR-012a). The
16
+ // listing is the one command that does not refuse a value that matches
17
+ // nothing: it is how somebody finds the value to set instead.
18
+ import { PROJECT_ENV, matchProject, overrideSentence, projectOverride, } from './project-scope.js';
15
19
  export async function listTeamProjects(ctx) {
16
20
  const credential = readCredential(ctx.home);
17
21
  if (!credential)
@@ -27,20 +31,73 @@ export async function listTeamProjects(ctx) {
27
31
  if (rows.length === 0)
28
32
  return refuse('no_projects');
29
33
  const fallback = answer.defaultProjectId ?? rows[0].id;
34
+ // Resolved against THIS listing - the server's answer, just read - so the
35
+ // mark costs no second request.
36
+ const value = projectOverride(ctx.env);
37
+ let override = null;
38
+ if (value !== null) {
39
+ const found = matchProject(rows, value);
40
+ override = found.ok
41
+ ? { value, id: found.project.id }
42
+ : found.reason === 'ambiguous'
43
+ ? { value, id: null, reason: 'ambiguous', count: found.count }
44
+ : { value, id: null, reason: 'not_found' };
45
+ }
46
+ const inUse = override ? override.id : (credential.project ?? null);
30
47
  return {
31
48
  ok: true,
32
49
  value: {
33
50
  chosen: credential.project ?? null,
51
+ override,
34
52
  projects: rows.map((p) => ({
35
53
  id: p.id,
36
54
  name: p.name,
37
55
  maps: typeof p.maps === 'number' ? p.maps : null,
38
- inUse: p.id === credential.project,
56
+ inUse: p.id === inUse,
39
57
  isDefault: p.id === fallback,
40
58
  })),
41
59
  },
42
60
  };
43
61
  }
62
+ /**
63
+ * The listing as text, once for both surfaces: one line per project (the one
64
+ * in use marked `*`, and saying so when the variable chose it), and the note
65
+ * that follows - the variable's sentence, or that none is chosen. The only
66
+ * thing a surface supplies is how it names the way to choose one.
67
+ */
68
+ export function formatProjectsList(listing, opts) {
69
+ const { projects, chosen, override } = listing;
70
+ const lines = projects.map((p) => {
71
+ const marks = [
72
+ ...(p.inUse ? [override ? `in use, from ${PROJECT_ENV}` : 'in use'] : []),
73
+ ...(p.isDefault ? ['default'] : []),
74
+ ...(p.maps !== null ? [`${p.maps} team map${p.maps === 1 ? '' : 's'}`] : []),
75
+ ];
76
+ return `${p.inUse ? '*' : ' '} ${p.id} ${p.name} (${marks.join(', ')})`;
77
+ });
78
+ if (override)
79
+ return { lines, note: overrideSentence(override, chosen) };
80
+ if (chosen !== null)
81
+ return { lines, note: null };
82
+ return {
83
+ lines,
84
+ note: opts.surface === 'cli'
85
+ ? 'No project is chosen, so team maps from every project are listed and used, and a new ' +
86
+ 'team map lands in the default. Run `veilio projects use <name>` to work in one.'
87
+ : 'No project is chosen, so team maps from every project are used. projects_use chooses one.',
88
+ };
89
+ }
90
+ /** What `projects use` says on stdout: where the work happens now, or - when
91
+ * the variable overrides the choice just stored - that it does not. */
92
+ export function usedSentence(used, opts) {
93
+ if (used.overriddenBy !== null)
94
+ return (`Saved project ${used.name} (${used.id}) for this sign-in. ${PROJECT_ENV} (=${used.overriddenBy}) ` +
95
+ `is in use here, so ${opts.surface === 'cli' ? 'this shell' : 'this server'} keeps working in that project.`);
96
+ return opts.surface === 'cli'
97
+ ? `Now working in project ${used.name} (${used.id}). Team maps, pushes, updates and ` +
98
+ '`scrub --team` use this project only; the MCP server picks it up on its next call.'
99
+ : `Now working in project ${used.name} (${used.id}). Team maps and masking with the team's names use this project only.`;
100
+ }
44
101
  /** Choose a project by its id or its name. A name two projects share is
45
102
  * refused rather than guessed: guessing is how two projects' maps meet. */
46
103
  export async function useProject(ctx, ref) {
@@ -54,15 +111,19 @@ export async function useProject(ctx, ref) {
54
111
  const listed = await listTeamProjects(ctx);
55
112
  if (!listed.ok)
56
113
  return listed;
57
- const projects = listed.value.projects;
58
- const byId = projects.find((p) => p.id === ref);
59
- const byName = projects.filter((p) => p.name === ref);
60
- if (!byId && byName.length > 1)
61
- return refuse('project_ambiguous', { project: ref, count: byName.length });
62
- const chosen = byId ?? byName[0];
63
- if (!chosen)
64
- return refuse('project_not_found', { project: ref });
114
+ const found = matchProject(listed.value.projects, ref);
115
+ if (!found.ok) {
116
+ return found.reason === 'ambiguous'
117
+ ? refuse('project_ambiguous', { project: ref, count: found.count })
118
+ : refuse('project_not_found', { project: ref });
119
+ }
120
+ const chosen = found.project;
65
121
  writeCredential({ ...credential, project: chosen.id }, ctx.home);
66
- return { ok: true, value: { id: chosen.id, name: chosen.name } };
122
+ // Stored all the same - it is what applies once the variable is unset - but
123
+ // whoever chose it must hear that this shell goes on using the variable's.
124
+ return {
125
+ ok: true,
126
+ value: { id: chosen.id, name: chosen.name, overriddenBy: listed.value.override?.value ?? null },
127
+ };
67
128
  }
68
129
  //# sourceMappingURL=projects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/client/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/client/projects.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { PROJECT_ENV } from './project-scope.js';
1
2
  import { type Outcome } from './wording.js';
2
3
  import type { ClientContext } from './maps.js';
3
4
  export interface TeamStatus {
@@ -8,6 +9,7 @@ export interface TeamStatus {
8
9
  project: {
9
10
  id: string;
10
11
  name: string | null;
12
+ from?: typeof PROJECT_ENV;
11
13
  } | null;
12
14
  teamKeyUntil: string | null;
13
15
  personalKeyUntil: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/client/status.ts"],"names":[],"mappings":"AAWA,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE9C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,sEAAsE;IACtE,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;IACnD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B;8DAC0D;IAC1D,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAC7C;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CA+CjF"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/client/status.ts"],"names":[],"mappings":"AAQA,OAAO,EAAsC,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGpF,OAAO,EAAyB,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE9C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,sEAAsE;IACtE,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,WAAW,CAAA;KAAE,GAAG,IAAI,CAAA;IAC9E,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B;8DAC0D;IAC1D,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAC7C;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAuDjF"}
@@ -5,23 +5,32 @@
5
5
  // whether the team owes a key rotation, read from the team's key status; the
6
6
  // rest of that answer names teammates, and stays out of this one.
7
7
  import { getTeamKeyPending, listMaps, listProjects } from '../cloud.js';
8
- import { readCredential } from '../credential.js';
8
+ import { readScopedCredential, refusalScope } from './project-scope.js';
9
9
  import { readTeamUnlock } from '../team-unlock.js';
10
10
  import { personalMapsKeyExpiry } from './personal-maps-key.js';
11
- import { refuse, refusalFromCloudError } from './wording.js';
11
+ import { refusalFromCloudError } from './wording.js';
12
12
  export async function teamStatus(ctx) {
13
- const credential = readCredential(ctx.home);
14
- if (!credential)
15
- return refuse('not_signed_in');
13
+ const scoped = await readScopedCredential(ctx);
14
+ if (!scoped.ok)
15
+ return scoped;
16
+ const credential = scoped.value;
16
17
  let teamId;
17
18
  try {
18
19
  teamId = (await listMaps(credential)).team?.id ?? null;
19
20
  }
20
21
  catch (err) {
21
- return { ok: false, refusal: refusalFromCloudError(err, { project: credential.project }) };
22
+ return { ok: false, refusal: refusalFromCloudError(err, refusalScope(credential)) };
22
23
  }
23
24
  let project = null;
24
- if (credential.project) {
25
+ if (credential.projectFrom) {
26
+ // Named by the listing that resolved VEILIO_PROJECT: no second one.
27
+ project = {
28
+ id: credential.project,
29
+ name: credential.projectName ?? null,
30
+ from: credential.projectFrom,
31
+ };
32
+ }
33
+ else if (credential.project) {
25
34
  let name = null;
26
35
  try {
27
36
  name =
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/client/status.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,+EAA+E;AAC/E,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,kEAAkE;AAElE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAgB,MAAM,cAAc,CAAA;AAgB1E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAkB;IACjD,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC3C,IAAI,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC,eAAe,CAAC,CAAA;IAC/C,IAAI,MAAqB,CAAA;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,CAAA;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAA;IAC5F,CAAC;IAED,IAAI,OAAO,GAA0B,IAAI,CAAA;IACzC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,IAAI,GAAkB,IAAI,CAAA;QAC9B,IAAI,CAAC;YACH,IAAI;gBACF,CAAC,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI;oBACxF,IAAI,CAAA;QACR,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;QACzD,CAAC;QACD,OAAO,GAAG,EAAE,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,CAAA;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAA;IAC9E,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAChD,IAAI,iBAAkD,CAAA;IACtD,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YAC3D,iBAAiB;gBACf,OAAO,OAAO,EAAE,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAA;QACzF,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB,GAAG,SAAS,CAAA;QAC/B,CAAC;IACH,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE;YACL,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,MAAM;YACN,OAAO;YACP,YAAY,EAAE,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YACpF,gBAAgB,EAAE,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC;YAC1D,iBAAiB;SAClB;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/client/status.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const REFUSAL_CODES: readonly ["not_signed_in", "which_map", "map_not_found", "map_not_in_project", "not_yours_remove", "not_yours_update", "no_local_map", "no_vault", "no_passphrase", "wrong_passphrase", "vault_locked", "no_pmk_yet", "pmk_unopenable", "keys_not_set_up", "team_key_waiting", "own_public_key_mismatch", "team_key_readback_mismatch", "team_key_not_startable", "team_key_solo_unavailable", "personal_old_seal", "personal_unopenable", "not_envelope", "team_locked", "team_key_unreadable", "team_key_mismatch", "not_in_team", "team_maps_unreadable", "team_map_unopenable", "clash", "would_drop", "pull_would_drop", "diverged", "stale", "rotation_owed", "too_large", "abuse_limit", "which_project", "project_not_found", "project_ambiguous", "project_gone", "no_projects", "destructive_off", "confirm_name", "confirm_unknown", "session_rejected", "unentitled", "suspended", "forbidden", "unreachable", "server"];
1
+ export declare const REFUSAL_CODES: readonly ["not_signed_in", "which_map", "map_not_found", "map_not_in_project", "not_yours_remove", "not_yours_update", "no_local_map", "no_vault", "no_passphrase", "wrong_passphrase", "vault_locked", "no_pmk_yet", "pmk_unopenable", "keys_not_set_up", "team_key_waiting", "own_public_key_mismatch", "team_key_readback_mismatch", "team_key_not_startable", "team_key_solo_unavailable", "personal_old_seal", "personal_unopenable", "not_envelope", "team_locked", "team_key_unreadable", "team_key_mismatch", "not_in_team", "team_maps_unreadable", "team_map_unopenable", "clash", "would_drop", "pull_would_drop", "diverged", "stale", "rotation_owed", "too_large", "abuse_limit", "which_project", "project_not_found", "project_ambiguous", "project_gone", "project_env_not_found", "project_env_ambiguous", "no_projects", "destructive_off", "confirm_name", "confirm_unknown", "session_rejected", "unentitled", "suspended", "forbidden", "unreachable", "server"];
2
2
  export type RefusalCode = (typeof REFUSAL_CODES)[number];
3
3
  /** What a sentence may be filled with. Every field is optional; each entry
4
4
  * uses the ones it needs. */
@@ -13,6 +13,8 @@ export interface WordingParams {
13
13
  /** A short, already-joined list - placeholders, map names, ids. */
14
14
  list?: string;
15
15
  project?: string;
16
+ /** The project came from VEILIO_PROJECT rather than the stored choice. */
17
+ override?: boolean;
16
18
  }
17
19
  export interface Refusal {
18
20
  code: RefusalCode;
@@ -54,6 +56,7 @@ export declare function renderRefusal(r: Refusal): string;
54
56
  */
55
57
  export declare function refusalFromCloudError(err: unknown, ctx?: {
56
58
  project?: string;
59
+ override?: boolean;
57
60
  }): Refusal;
58
61
  export {};
59
62
  //# sourceMappingURL=wording.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wording.d.ts","sourceRoot":"","sources":["../../src/client/wording.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,aAAa,s4BAmDhB,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD;8BAC8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAA;IACjB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAA;IACf;yCACqC;IACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAA;AAajF,KAAK,KAAK,GAAG,CAAC,CAAC,EAAE,aAAa,KAAK;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAIvE,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAyO9C,CAAA;AAED,gDAAgD;AAChD,wBAAgB,MAAM,CACpB,IAAI,EAAE,WAAW,EACjB,MAAM,GAAE,aAAkB,EAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAEjC;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,WAAW,EACjB,MAAM,GAAE,aAAkB,EAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CAGT;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAGhD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAwB3F"}
1
+ {"version":3,"file":"wording.d.ts","sourceRoot":"","sources":["../../src/client/wording.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,aAAa,w7BAqDhB,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD;8BAC8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAA;IACjB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAA;IACf;yCACqC;IACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAA;AAajF,KAAK,KAAK,GAAG,CAAC,CAAC,EAAE,aAAa,KAAK;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAIvE,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CA8P9C,CAAA;AAED,gDAAgD;AAChD,wBAAgB,MAAM,CACpB,IAAI,EAAE,WAAW,EACjB,MAAM,GAAE,aAAkB,EAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAEjC;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,WAAW,EACjB,MAAM,GAAE,aAAkB,EAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CAGT;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAGhD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,EACZ,GAAG,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACjD,OAAO,CA2BT"}
@@ -61,6 +61,8 @@ export const REFUSAL_CODES = [
61
61
  'project_not_found',
62
62
  'project_ambiguous',
63
63
  'project_gone',
64
+ 'project_env_not_found',
65
+ 'project_env_ambiguous',
64
66
  'no_projects',
65
67
  'destructive_off',
66
68
  'confirm_name',
@@ -96,8 +98,10 @@ export const WORDING = {
96
98
  resolve: 'Run `veilio maps list` for the ids.',
97
99
  }),
98
100
  map_not_in_project: (p) => ({
99
- message: `No map ${p.id} in project ${p.project} (the project in use).`,
100
- resolve: '`veilio projects use <other>` to work in another one.',
101
+ message: `No map ${p.id} in project ${p.project} (${p.override ? 'set by VEILIO_PROJECT' : 'the project in use'}).`,
102
+ resolve: p.override
103
+ ? 'Set VEILIO_PROJECT to another project, or unset it: `veilio projects` lists them.'
104
+ : '`veilio projects use <other>` to work in another one.',
101
105
  }),
102
106
  not_yours_remove: (p) => ({
103
107
  message: `${label(p)} belongs to someone else on your team, so it is theirs to remove.`,
@@ -241,9 +245,24 @@ export const WORDING = {
241
245
  message: `${p.count} projects are called "${p.project}", so nothing was changed.`,
242
246
  resolve: 'Choose one by its id: `veilio projects` lists them.',
243
247
  }),
244
- project_gone: (p) => ({
245
- message: `the project chosen for this sign-in (${p.project}) is not one your team works in any more, so nothing was done. No other project was used instead.`,
246
- resolve: 'Run `veilio projects`, then `veilio projects use <name>`.',
248
+ project_gone: (p) => p.override
249
+ ? {
250
+ message: `the project VEILIO_PROJECT names (${p.project}) is not one your team works in any more, so nothing was done. No other project was used instead.`,
251
+ resolve: 'Run `veilio projects`, then set VEILIO_PROJECT to one of them, or unset it.',
252
+ }
253
+ : {
254
+ message: `the project chosen for this sign-in (${p.project}) is not one your team works in any more, so nothing was done. No other project was used instead.`,
255
+ resolve: 'Run `veilio projects`, then `veilio projects use <name>`.',
256
+ },
257
+ // Somebody typed it, so it is never quietly replaced by the stored choice
258
+ // or the default (FR-012a): the value is named, and so is where it came from.
259
+ project_env_not_found: (p) => ({
260
+ message: `VEILIO_PROJECT is "${p.project}", which is not a project your team works in, so nothing was done. No other project was used instead.`,
261
+ resolve: 'Run `veilio projects` for the ones it does, then set VEILIO_PROJECT to one of them, or unset it.',
262
+ }),
263
+ project_env_ambiguous: (p) => ({
264
+ message: `VEILIO_PROJECT is "${p.project}", and ${p.count} projects are called that, so nothing was done. No other project was used instead.`,
265
+ resolve: "Set VEILIO_PROJECT to the project's id: `veilio projects` lists them.",
247
266
  }),
248
267
  no_projects: () => ({
249
268
  message: "this account's team works in no project yet, so there is none to choose.",
@@ -312,7 +331,10 @@ export function refusalFromCloudError(err, ctx = {}) {
312
331
  return refusal('server', { detail: err instanceof Error ? err.message : String(err) });
313
332
  }
314
333
  if (err.status === 404 && /project not found/i.test(err.message)) {
315
- return refusal('project_gone', { project: ctx.project ?? 'the default' });
334
+ return refusal('project_gone', {
335
+ project: ctx.project ?? 'the default',
336
+ ...(ctx.override ? { override: true } : {}),
337
+ });
316
338
  }
317
339
  switch (err.kind) {
318
340
  case 'unauthenticated':
@@ -1 +1 @@
1
- {"version":3,"file":"wording.js","sourceRoot":"","sources":["../../src/client/wording.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wording.js","sourceRoot":"","sources":["../../src/client/wording.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type TeamLayer } from '@veilio-inc/engine';
2
2
  import { type Io, type TeamNamespaceSource } from './commands.js';
3
+ import { type Env } from './client/project-scope.js';
3
4
  /**
4
5
  * Sign in, and store the credential only if the account can actually use it.
5
6
  *
@@ -121,13 +122,14 @@ export declare function runVaultLock(io: Io): number;
121
122
  * as a callback so that command stays unlinked from the network. Signed out:
122
123
  * no request, no layer - a local restore, as before.
123
124
  */
124
- export declare function teamLayerFor(home: string | undefined, missing: readonly string[]): Promise<{
125
+ export declare function teamLayerFor(home: string | undefined, missing: readonly string[], env?: Env): Promise<{
125
126
  team: TeamLayer | null;
126
127
  note: string | null;
128
+ refused?: string;
127
129
  }>;
128
130
  /** What `veilio scrub` numbers from (spec 030): the team's namespace, or this
129
131
  * project's map with the reason. Signed out or in no team: no request, no note. */
130
- export declare function teamNamespaceForScrub(home: string | undefined): Promise<Awaited<ReturnType<TeamNamespaceSource>>>;
132
+ export declare function teamNamespaceForScrub(home: string | undefined, env?: Env): Promise<Awaited<ReturnType<TeamNamespaceSource>>>;
131
133
  /** Kept importable from here: tests and callers written before spec 052 moved
132
134
  * it into the shared client. */
133
135
  export { conflictsWithTeam } from './client/maps.js';
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-commands.d.ts","sourceRoot":"","sources":["../src/cloud-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-commands.d.ts","sourceRoot":"","sources":["../src/cloud-commands.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,8 @@ import { refusal, renderRefusal } from './client/wording.js';
19
19
  import { bootstrapTeamKey, openOwnKeypair } from './client/team-key-bootstrap.js';
20
20
  import { vaultLock, vaultUnlock } from './client/keys.js';
21
21
  import { vaultKeyFor } from './client/vault-key.js';
22
- import { listTeamProjects, useProject } from './client/projects.js';
22
+ import { formatProjectsList, listTeamProjects, useProject, usedSentence, } from './client/projects.js';
23
+ import { PROJECT_ENV, overriddenSentence, projectOverride, } from './client/project-scope.js';
23
24
  import { personalMapsKeyPath, removePersonalMapsKey } from './client/personal-maps-key.js';
24
25
  import { VERSION } from './version.js';
25
26
  /** The endpoint a sign-in is checked against. See `runLogin`. */
@@ -349,8 +350,15 @@ export function runWhoami(io) {
349
350
  io.stdout('Not signed in. Run `veilio login` to connect a Veilio Cloud account.\n');
350
351
  return EXIT_OK;
351
352
  }
353
+ // Still no request: the variable is reported as set, not resolved - which
354
+ // project it names is `veilio projects`'s question, and needs the network.
355
+ const override = projectOverride(io.env);
352
356
  io.stdout(`${credential.account} on ${credential.instance}` +
353
- (credential.project ? `, project ${credential.project}` : '') +
357
+ (override
358
+ ? `, project ${override} (from ${PROJECT_ENV})`
359
+ : credential.project
360
+ ? `, project ${credential.project}`
361
+ : '') +
354
362
  '\n');
355
363
  return EXIT_OK;
356
364
  }
@@ -413,6 +421,7 @@ function clientContext(io) {
413
421
  return {
414
422
  home: io.home,
415
423
  passphrase: io.password ? () => io.password('Vault passphrase: ') : undefined,
424
+ env: io.env,
416
425
  };
417
426
  }
418
427
  /** A refusal on stderr, and the exit code that goes with it. */
@@ -436,7 +445,7 @@ export async function runMapsList(io) {
436
445
  const listed = await listCloudMaps(clientContext(io));
437
446
  if (!listed.ok)
438
447
  return refused(listed.refusal, io);
439
- const { maps, project } = listed.value;
448
+ const { maps, project, projectFromEnv } = listed.value;
440
449
  if (maps.length === 0) {
441
450
  io.stdout('No maps in Cloud yet. `veilio maps push <name>` uploads the local one.\n');
442
451
  return EXIT_OK;
@@ -449,7 +458,9 @@ export async function runMapsList(io) {
449
458
  // Said on stderr so the listing itself stays parseable: which project's team
450
459
  // maps these are, or that no project was chosen.
451
460
  if (project)
452
- io.stderr(`veilio: team maps of project ${project} (\`veilio projects\` to change)\n`);
461
+ io.stderr(projectFromEnv
462
+ ? `veilio: team maps of project ${project} - ${PROJECT_ENV} chose it, so \`veilio projects use\` does not change it here\n`
463
+ : `veilio: team maps of project ${project} (\`veilio projects\` to change)\n`);
453
464
  return EXIT_OK;
454
465
  }
455
466
  /**
@@ -713,21 +724,11 @@ export async function runProjectsList(io) {
713
724
  const listed = await listTeamProjects(clientContext(io));
714
725
  if (!listed.ok)
715
726
  return refused(listed.refusal, io);
716
- const { projects, chosen } = listed.value;
717
- for (const p of projects) {
718
- const marks = [
719
- ...(p.inUse ? ['in use'] : []),
720
- ...(p.isDefault ? ['default'] : []),
721
- ...(p.maps !== null ? [`${p.maps} team map${p.maps === 1 ? '' : 's'}`] : []),
722
- ];
723
- io.stdout(`${p.inUse ? '*' : ' '} ${p.id} ${p.name} (${marks.join(', ')})\n`);
724
- }
725
- if (chosen === null) {
726
- // Said, because "none" is a real state with a real consequence: team maps
727
- // from every project the team works in are listed and masked with.
728
- io.stderr('veilio: No project is chosen, so team maps from every project are listed and used, and a new ' +
729
- 'team map lands in the default. Run `veilio projects use <name>` to work in one.\n');
730
- }
727
+ const { lines, note } = formatProjectsList(listed.value, { surface: 'cli' });
728
+ for (const line of lines)
729
+ io.stdout(`${line}\n`);
730
+ if (note)
731
+ io.stderr(`veilio: ${note}\n`);
731
732
  return EXIT_OK;
732
733
  }
733
734
  /** Choose the project this sign-in works in. */
@@ -735,8 +736,9 @@ export async function runProjectsUse(ref, io) {
735
736
  const used = await useProject(clientContext(io), ref);
736
737
  if (!used.ok)
737
738
  return refused(used.refusal, io);
738
- io.stdout(`Now working in project ${used.value.name} (${used.value.id}). Team maps, pushes, updates and ` +
739
- '`scrub --team` use this project only; the MCP server picks it up on its next call.\n');
739
+ io.stdout(`${usedSentence(used.value, { surface: 'cli' })}\n`);
740
+ if (used.value.overriddenBy !== null)
741
+ io.stderr(`veilio: ${overriddenSentence(used.value, 'shell')}\n`);
740
742
  return EXIT_OK;
741
743
  }
742
744
  // ─── vault: unlock, lock ─────────────────────────────────────────────────────
@@ -788,10 +790,12 @@ export function runVaultLock(io) {
788
790
  * as a callback so that command stays unlinked from the network. Signed out:
789
791
  * no request, no layer - a local restore, as before.
790
792
  */
791
- export async function teamLayerFor(home, missing) {
793
+ export async function teamLayerFor(home, missing, env) {
792
794
  // Signed out, the resolver answers 'local' without a request. At most 5 s: a
793
795
  // hung instance must not stall a `... | veilio restore > file` pipeline.
794
- const found = await resolveTeamNamespace(home, { deadlineMs: RESTORE_CLOUD_WAIT_MS });
796
+ const found = await resolveTeamNamespace(home, { deadlineMs: RESTORE_CLOUD_WAIT_MS, env });
797
+ if (found.status === 'refused')
798
+ return { team: null, note: null, refused: renderRefusal(found.refusal) };
795
799
  if (found.status === 'team' && found.conflictDetection)
796
800
  return { team: found.analysis, note: null };
797
801
  return { team: null, note: teamLayerNote(found, missing) };
@@ -799,8 +803,10 @@ export async function teamLayerFor(home, missing) {
799
803
  const RESTORE_CLOUD_WAIT_MS = 5000;
800
804
  /** What `veilio scrub` numbers from (spec 030): the team's namespace, or this
801
805
  * project's map with the reason. Signed out or in no team: no request, no note. */
802
- export async function teamNamespaceForScrub(home) {
803
- const found = await resolveTeamNamespace(home, { deadlineMs: RESTORE_CLOUD_WAIT_MS });
806
+ export async function teamNamespaceForScrub(home, env) {
807
+ const found = await resolveTeamNamespace(home, { deadlineMs: RESTORE_CLOUD_WAIT_MS, env });
808
+ if (found.status === 'refused')
809
+ return { team: null, note: null, refused: renderRefusal(found.refusal) };
804
810
  if (found.status === 'team') {
805
811
  const credential = readCredential(home);
806
812
  const teamId = found.teamId;