@veilio-inc/cli 0.5.4 → 0.6.1

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 (69) hide show
  1. package/README.md +62 -15
  2. package/dist/args.d.ts +20 -2
  3. package/dist/args.d.ts.map +1 -1
  4. package/dist/args.js +48 -3
  5. package/dist/args.js.map +1 -1
  6. package/dist/client/index.d.ts +9 -0
  7. package/dist/client/index.d.ts.map +1 -0
  8. package/dist/client/index.js +13 -0
  9. package/dist/client/index.js.map +1 -0
  10. package/dist/client/keys.d.ts +22 -0
  11. package/dist/client/keys.d.ts.map +1 -0
  12. package/dist/client/keys.js +170 -0
  13. package/dist/client/keys.js.map +1 -0
  14. package/dist/client/maps.d.ts +115 -0
  15. package/dist/client/maps.d.ts.map +1 -0
  16. package/dist/client/maps.js +798 -0
  17. package/dist/client/maps.js.map +1 -0
  18. package/dist/client/personal-maps-key.d.ts +42 -0
  19. package/dist/client/personal-maps-key.d.ts.map +1 -0
  20. package/dist/client/personal-maps-key.js +168 -0
  21. package/dist/client/personal-maps-key.js.map +1 -0
  22. package/dist/client/project-scope.d.ts +87 -0
  23. package/dist/client/project-scope.d.ts.map +1 -0
  24. package/dist/client/project-scope.js +132 -0
  25. package/dist/client/project-scope.js.map +1 -0
  26. package/dist/client/projects.d.ts +53 -0
  27. package/dist/client/projects.d.ts.map +1 -0
  28. package/dist/client/projects.js +129 -0
  29. package/dist/client/projects.js.map +1 -0
  30. package/dist/client/status.d.ts +21 -0
  31. package/dist/client/status.d.ts.map +1 -0
  32. package/dist/client/status.js +71 -0
  33. package/dist/client/status.js.map +1 -0
  34. package/dist/client/team-key-bootstrap.d.ts +55 -0
  35. package/dist/client/team-key-bootstrap.d.ts.map +1 -0
  36. package/dist/client/team-key-bootstrap.js +127 -0
  37. package/dist/client/team-key-bootstrap.js.map +1 -0
  38. package/dist/client/vault-key.d.ts +5 -0
  39. package/dist/client/vault-key.d.ts.map +1 -0
  40. package/dist/client/vault-key.js +35 -0
  41. package/dist/client/vault-key.js.map +1 -0
  42. package/dist/client/wording.d.ts +62 -0
  43. package/dist/client/wording.d.ts.map +1 -0
  44. package/dist/client/wording.js +358 -0
  45. package/dist/client/wording.js.map +1 -0
  46. package/dist/cloud-commands.d.ts +34 -43
  47. package/dist/cloud-commands.d.ts.map +1 -1
  48. package/dist/cloud-commands.js +282 -466
  49. package/dist/cloud-commands.js.map +1 -1
  50. package/dist/cloud.d.ts +101 -2
  51. package/dist/cloud.d.ts.map +1 -1
  52. package/dist/cloud.js +91 -7
  53. package/dist/cloud.js.map +1 -1
  54. package/dist/commands.d.ts +14 -1
  55. package/dist/commands.d.ts.map +1 -1
  56. package/dist/commands.js +24 -0
  57. package/dist/commands.js.map +1 -1
  58. package/dist/credential.d.ts +7 -0
  59. package/dist/credential.d.ts.map +1 -1
  60. package/dist/credential.js +10 -1
  61. package/dist/credential.js.map +1 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +24 -5
  64. package/dist/index.js.map +1 -1
  65. package/dist/team-namespace.d.ts +74 -2
  66. package/dist/team-namespace.d.ts.map +1 -1
  67. package/dist/team-namespace.js +78 -18
  68. package/dist/team-namespace.js.map +1 -1
  69. package/package.json +4 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maps.js","sourceRoot":"","sources":["../../src/client/maps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { type CryptoKeyLike } from '@veilio-inc/engine';
2
+ export declare const PMK_FILE = "personal-maps-key.json";
3
+ export declare const PMK_BYTES = 32;
4
+ export interface StoredPersonalMapsKey {
5
+ v: 1;
6
+ instance: string;
7
+ account: string;
8
+ /** ISO-8601. Past this, reads return null. */
9
+ expiresAt: string;
10
+ /** The raw PMK, base64. Never the vault key. */
11
+ key: string;
12
+ }
13
+ export declare function personalMapsKeyPath(home?: string): string;
14
+ /** A fresh PMK, as raw bytes. */
15
+ export declare function newPersonalMapsKey(): Uint8Array;
16
+ /** The raw bytes as a key that can seal and open a vault envelope. */
17
+ export declare function importPersonalMapsKey(raw: Uint8Array): Promise<CryptoKeyLike>;
18
+ /** Wrap the PMK under the vault key. `iv` is for the test vector only. */
19
+ export declare function wrapPersonalMapsKey(vaultKey: CryptoKeyLike, raw: Uint8Array, iv?: Uint8Array): Promise<string>;
20
+ /** Unwrap it. Throws when the vault key is wrong or the blob was altered -
21
+ * AES-GCM authenticates, so a wrong key never yields a garbage key. */
22
+ export declare function unwrapPersonalMapsKey(vaultKey: CryptoKeyLike, wrapped: string): Promise<Uint8Array>;
23
+ /**
24
+ * The PMK this machine holds for this sign-in, as raw bytes, or null.
25
+ */
26
+ export declare function readPersonalMapsKey(binding: {
27
+ instance: string;
28
+ account: string;
29
+ }, home?: string, now?: Date): Uint8Array | null;
30
+ /** Until when the key on disk for this sign-in lasts, or null when there is
31
+ * none to use. Never the key itself: this is for saying "unlocked until". */
32
+ export declare function personalMapsKeyExpiry(binding: {
33
+ instance: string;
34
+ account: string;
35
+ }, home?: string, now?: Date): string | null;
36
+ /** Write it, readable only by this user. `chmod` after, as `writeCredential`
37
+ * does, because `mode` applies only to a file being created. */
38
+ export declare function writePersonalMapsKey(stored: StoredPersonalMapsKey, home?: string): void;
39
+ /** Remove it. Whether there was one. A failure to delete throws: reporting
40
+ * "nothing to remove" while key material sits there inverts the call. */
41
+ export declare function removePersonalMapsKey(home?: string): boolean;
42
+ //# sourceMappingURL=personal-maps-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personal-maps-key.d.ts","sourceRoot":"","sources":["../../src/client/personal-maps-key.ts"],"names":[],"mappings":"AA+BA,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAA;AAE3B,eAAO,MAAM,QAAQ,2BAA2B,CAAA;AAChD,eAAO,MAAM,SAAS,KAAK,CAAA;AAW3B,MAAM,WAAW,qBAAqB;IACpC,CAAC,EAAE,CAAC,CAAA;IACJ,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAA;IACjB,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAEpE;AAED,iCAAiC;AACjC,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,sEAAsE;AACtE,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAQnF;AAqBD,0EAA0E;AAC1E,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,UAAU,EACf,EAAE,GAAE,UAA4B,GAC/B,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;wEACwE;AACxE,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAoBrB;AAYD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC9C,IAAI,GAAE,MAAkB,EACxB,GAAG,GAAE,IAAiB,GACrB,UAAU,GAAG,IAAI,CAkBnB;AAED;8EAC8E;AAC9E,wBAAgB,qBAAqB,CACnC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC9C,IAAI,GAAE,MAAkB,EACxB,GAAG,GAAE,IAAiB,GACrB,MAAM,GAAG,IAAI,CAQf;AAED;iEACiE;AACjE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,qBAAqB,EAC7B,IAAI,GAAE,MAAkB,GACvB,IAAI,CAYN;AAED;0EAC0E;AAC1E,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,MAAkB,GAAG,OAAO,CASvE"}
@@ -0,0 +1,168 @@
1
+ // The personal-maps key (PMK), wrapped and unwrapped, and kept on this machine
2
+ // (spec 052 FR-011, research §1).
3
+ //
4
+ // WHY A SECOND KEY
5
+ //
6
+ // An MCP server has nobody to type a vault passphrase, and the founder ruled
7
+ // out storing the vault key: it also unwraps the account's private key, which
8
+ // opens every team key ever granted to it. So personal maps get a key of their
9
+ // own - 32 random bytes, AES-256-GCM - that opens personal maps and nothing
10
+ // else. The server keeps it wrapped under the vault key, where it can no more
11
+ // read it than it can read the private key; a terminal unwraps it once with the
12
+ // passphrase (`veilio vault unlock`) and keeps ONLY this key, 0600, for 7 days.
13
+ //
14
+ // THE WRAP IS THE BROWSER’S, BYTE FOR BYTE
15
+ //
16
+ // `JSON.stringify({ v: 1, alg: 'AES-GCM', iv, data })`, a 12-byte IV, the raw
17
+ // 32 key bytes as plaintext, and the additional data "veilio-pmk-wrap-v1": the
18
+ // envelope shape the web app wraps the private key in (frontend `userKeys.ts`),
19
+ // bound to this purpose so neither blob can stand in for the other. The web app
20
+ // writes the same bytes; `vault-unlock.test.ts` pins one shared vector, and a
21
+ // second built with WebCrypto called directly, not through this file.
22
+ //
23
+ // THE FILE
24
+ //
25
+ // Like `team-unlock.ts`: bound to the instance and account that unlocked it,
26
+ // with an expiry, and every read tolerates everything - missing, corrupt,
27
+ // expired and somebody else's all read as "not unlocked".
28
+ import { chmodSync, mkdirSync, readFileSync, rmSync, statSync, writeFileSync } from 'node:fs';
29
+ import { dirname, join } from 'node:path';
30
+ import { homedir } from 'node:os';
31
+ import { STORE_DIR, fromBase64, randomBytes, toBase64, webCryptoSubtle, } from '@veilio-inc/engine';
32
+ export const PMK_FILE = 'personal-maps-key.json';
33
+ export const PMK_BYTES = 32;
34
+ const WRAP_ALG = 'AES-GCM';
35
+ /**
36
+ * Additional authenticated data on the wrap: it binds the blob to its purpose.
37
+ * The vault key also wraps the account's private key, in the same envelope
38
+ * shape; without this, a blob wrapped for one purpose would open as the other
39
+ * (key confusion, cloud security review 2026-10-25). The web app's suite pins
40
+ * the same bytes with the same vector.
41
+ */
42
+ const WRAP_AAD = new TextEncoder().encode('veilio-pmk-wrap-v1');
43
+ export function personalMapsKeyPath(home = homedir()) {
44
+ return join(home, STORE_DIR, PMK_FILE);
45
+ }
46
+ /** A fresh PMK, as raw bytes. */
47
+ export function newPersonalMapsKey() {
48
+ return randomBytes(PMK_BYTES);
49
+ }
50
+ /** The raw bytes as a key that can seal and open a vault envelope. */
51
+ export async function importPersonalMapsKey(raw) {
52
+ if (raw.byteLength !== PMK_BYTES) {
53
+ throw new Error(`a personal-maps key must be ${PMK_BYTES} bytes (got ${raw.byteLength})`);
54
+ }
55
+ return webCryptoSubtle().importKey('raw', raw, { name: WRAP_ALG, length: 256 }, false, [
56
+ 'encrypt',
57
+ 'decrypt',
58
+ ]);
59
+ }
60
+ /**
61
+ * WebCrypto with `additionalData` in its types. The engine's own accessor
62
+ * declares only the IV, because no engine format uses AAD. This one does.
63
+ */
64
+ function aead() {
65
+ return webCryptoSubtle();
66
+ }
67
+ /** Wrap the PMK under the vault key. `iv` is for the test vector only. */
68
+ export async function wrapPersonalMapsKey(vaultKey, raw, iv = randomBytes(12)) {
69
+ const data = await aead().encrypt({ name: WRAP_ALG, iv, additionalData: WRAP_AAD }, vaultKey, raw);
70
+ return JSON.stringify({ v: 1, alg: WRAP_ALG, iv: toBase64(iv), data: toBase64(data) });
71
+ }
72
+ /** Unwrap it. Throws when the vault key is wrong or the blob was altered -
73
+ * AES-GCM authenticates, so a wrong key never yields a garbage key. */
74
+ export async function unwrapPersonalMapsKey(vaultKey, wrapped) {
75
+ const env = JSON.parse(wrapped);
76
+ if (env.v !== 1 ||
77
+ env.alg !== WRAP_ALG ||
78
+ typeof env.iv !== 'string' ||
79
+ typeof env.data !== 'string') {
80
+ throw new Error('the stored personal-maps key is not an envelope this client knows');
81
+ }
82
+ const raw = new Uint8Array(await aead().decrypt({ name: WRAP_ALG, iv: fromBase64(env.iv), additionalData: WRAP_AAD }, vaultKey, fromBase64(env.data)));
83
+ if (raw.byteLength !== PMK_BYTES)
84
+ throw new Error('the stored personal-maps key has the wrong length');
85
+ return raw;
86
+ }
87
+ function isStored(value) {
88
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
89
+ return false;
90
+ const v = value;
91
+ if (v.v !== 1)
92
+ return false;
93
+ for (const f of ['instance', 'account', 'expiresAt', 'key']) {
94
+ if (typeof v[f] !== 'string' || v[f] === '')
95
+ return false;
96
+ }
97
+ return true;
98
+ }
99
+ /**
100
+ * The PMK this machine holds for this sign-in, as raw bytes, or null.
101
+ */
102
+ export function readPersonalMapsKey(binding, home = homedir(), now = new Date()) {
103
+ let parsed;
104
+ try {
105
+ parsed = JSON.parse(readFileSync(personalMapsKeyPath(home), 'utf8'));
106
+ }
107
+ catch {
108
+ return null;
109
+ }
110
+ if (!isStored(parsed))
111
+ return null;
112
+ // A file left by one sign-in is never used by another.
113
+ if (parsed.instance !== binding.instance || parsed.account !== binding.account)
114
+ return null;
115
+ const expires = Date.parse(parsed.expiresAt);
116
+ if (Number.isNaN(expires) || expires <= now.getTime())
117
+ return null;
118
+ try {
119
+ const raw = fromBase64(parsed.key);
120
+ return raw.byteLength === PMK_BYTES ? raw : null;
121
+ }
122
+ catch {
123
+ return null;
124
+ }
125
+ }
126
+ /** Until when the key on disk for this sign-in lasts, or null when there is
127
+ * none to use. Never the key itself: this is for saying "unlocked until". */
128
+ export function personalMapsKeyExpiry(binding, home = homedir(), now = new Date()) {
129
+ if (!readPersonalMapsKey(binding, home, now))
130
+ return null;
131
+ try {
132
+ return JSON.parse(readFileSync(personalMapsKeyPath(home), 'utf8'))
133
+ .expiresAt;
134
+ }
135
+ catch {
136
+ return null;
137
+ }
138
+ }
139
+ /** Write it, readable only by this user. `chmod` after, as `writeCredential`
140
+ * does, because `mode` applies only to a file being created. */
141
+ export function writePersonalMapsKey(stored, home = homedir()) {
142
+ const path = personalMapsKeyPath(home);
143
+ mkdirSync(dirname(path), { recursive: true });
144
+ // Tightened BEFORE the key is written, too: a file left world-readable by
145
+ // some earlier mistake must not hold the key even for a moment.
146
+ try {
147
+ chmodSync(path, 0o600);
148
+ }
149
+ catch {
150
+ // Not there yet: `mode` below covers a new file.
151
+ }
152
+ writeFileSync(path, `${JSON.stringify(stored, null, 2)}\n`, { mode: 0o600 });
153
+ chmodSync(path, 0o600);
154
+ }
155
+ /** Remove it. Whether there was one. A failure to delete throws: reporting
156
+ * "nothing to remove" while key material sits there inverts the call. */
157
+ export function removePersonalMapsKey(home = homedir()) {
158
+ const path = personalMapsKeyPath(home);
159
+ try {
160
+ statSync(path);
161
+ }
162
+ catch {
163
+ return false;
164
+ }
165
+ rmSync(path, { recursive: true, force: true });
166
+ return true;
167
+ }
168
+ //# sourceMappingURL=personal-maps-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personal-maps-key.js","sourceRoot":"","sources":["../../src/client/personal-maps-key.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { type Credential } from '../credential.js';
2
+ import { type Outcome } from './wording.js';
3
+ /** The variable's name, as people type it and as every message names it. */
4
+ export declare const PROJECT_ENV = "VEILIO_PROJECT";
5
+ export type Env = Readonly<Record<string, string | undefined>>;
6
+ /** A credential as one command uses it: `project` is the effective one. */
7
+ export interface ScopedCredential extends Credential {
8
+ /** Set when `VEILIO_PROJECT` chose `project`. Never written to disk. */
9
+ projectFrom?: typeof PROJECT_ENV;
10
+ /** The project's name, from the listing that resolved the variable. */
11
+ projectName?: string;
12
+ }
13
+ /** The variable's value, or null when it is unset, empty or spaces only. */
14
+ export declare function projectOverride(env?: Env): string | null;
15
+ export type ProjectMatch<P> = {
16
+ ok: true;
17
+ project: P;
18
+ } | {
19
+ ok: false;
20
+ reason: 'not_found';
21
+ } | {
22
+ ok: false;
23
+ reason: 'ambiguous';
24
+ count: number;
25
+ };
26
+ /**
27
+ * A project by its id, or by a name exactly one project has. The one rule
28
+ * `projects use` and `VEILIO_PROJECT` share, so the two cannot drift apart. A
29
+ * shared name is never guessed: guessing is how two projects' maps meet.
30
+ */
31
+ export declare function matchProject<P extends {
32
+ id: string;
33
+ name: string;
34
+ }>(projects: readonly P[], ref: string): ProjectMatch<P>;
35
+ /**
36
+ * The credential this command works with. Without the variable: the stored
37
+ * one, unchanged, with no request. With it: one listing, then a copy whose
38
+ * `project` is the resolved id - or a refusal naming the value.
39
+ */
40
+ export declare function scopeCredential(credential: Credential, env?: Env): Promise<Outcome<ScopedCredential>>;
41
+ /**
42
+ * `value` through the server's listing. A failed request THROWS - so the team
43
+ * namespace resolver can retry it and hold it to its deadline, as it does its
44
+ * own reads - and only an answer that names no such project is a refusal.
45
+ */
46
+ export declare function resolveOverride(credential: Credential, value: string, signal?: AbortSignal): Promise<Outcome<ScopedCredential>>;
47
+ /** Signed in, and scoped: `not_signed_in` before any request otherwise. */
48
+ export declare function readScopedCredential(ctx: {
49
+ home?: string;
50
+ env?: Env;
51
+ }): Promise<Outcome<ScopedCredential>>;
52
+ /**
53
+ * The project, as a line that names it says it: the stored id as before, or
54
+ * the name with "(from VEILIO_PROJECT)" when the variable chose it. Null when
55
+ * none is in use.
56
+ */
57
+ export declare function projectLabel(credential: ScopedCredential): string | null;
58
+ /** What a refusal from a failed request needs to name the project rightly. */
59
+ export declare function refusalScope(credential: ScopedCredential): {
60
+ project?: string;
61
+ override?: boolean;
62
+ };
63
+ /**
64
+ * What `projects` says about the variable, beside the list. A value that
65
+ * matches nothing is listed against rather than refused: the list is how
66
+ * somebody finds the value to set instead.
67
+ */
68
+ export type ProjectOverride = {
69
+ value: string;
70
+ id: string;
71
+ } | {
72
+ value: string;
73
+ id: null;
74
+ reason: 'not_found';
75
+ } | {
76
+ value: string;
77
+ id: null;
78
+ reason: 'ambiguous';
79
+ count: number;
80
+ };
81
+ export declare function overrideSentence(override: ProjectOverride, chosen: string | null): string;
82
+ /** What `projects use` adds when the variable overrides what it just stored. */
83
+ export declare function overriddenSentence(used: {
84
+ name: string;
85
+ overriddenBy: string | null;
86
+ }, where: 'shell' | 'server'): string;
87
+ //# sourceMappingURL=project-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-scope.d.ts","sourceRoot":"","sources":["../../src/client/project-scope.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAE1E,4EAA4E;AAC5E,eAAO,MAAM,WAAW,mBAAmB,CAAA;AAE3C,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;AAE9D,2EAA2E;AAC3E,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,WAAW,CAAA;IAChC,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,GAAG,GAAE,GAAiB,GAAG,MAAM,GAAG,IAAI,CAGrE;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IACtB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAE,GACxB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAClC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACjE,QAAQ,EAAE,SAAS,CAAC,EAAE,EACtB,GAAG,EAAE,MAAM,GACV,YAAY,CAAC,CAAC,CAAC,CAOjB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,GAAG,CAAC,EAAE,GAAG,GACR,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAQpC;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAmBpC;AAED,2EAA2E;AAC3E,wBAAsB,oBAAoB,CAAC,GAAG,EAAE;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,GAAG,CAAA;CACV,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAIrC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAKxE;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,UAAU,EAAE,gBAAgB,GAAG;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAIA;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAChD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAiBzF;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACnD,KAAK,EAAE,OAAO,GAAG,QAAQ,GACxB,MAAM,CAKR"}
@@ -0,0 +1,132 @@
1
+ // Which project a command or tool call works in (spec 052 FR-012a).
2
+ //
3
+ // `VEILIO_PROJECT`, then the choice kept with the sign-in, then none - in that
4
+ // order, for the CLI and the MCP server alike. The variable exists for the two
5
+ // places a stored `projects use` cannot reach: a CI runner, which starts clean,
6
+ // and a repository's `.mcp.json`, which pins ITS project through `env` so an
7
+ // agent in repository A never masks against repository B's names.
8
+ //
9
+ // Three rules hold here, and each has a test and a mutant:
10
+ //
11
+ // - The value is resolved through the SERVER's project listing, every time.
12
+ // No client-side list, no cache: the server is the authority on which
13
+ // projects the team works in, and a cached answer is how a removed project
14
+ // goes on being used.
15
+ // - A value that names no project, or a name two projects share, is REFUSED,
16
+ // naming the value and the variable. It never falls back to the stored
17
+ // choice or the default: somebody typed it on purpose, and quietly using
18
+ // another project is the cross-project mix FR-013 forbids. The listing is
19
+ // the only request made before the refusal, and it carries no project.
20
+ // - Nothing here writes the credential. The resolved project lives on an
21
+ // in-memory copy, so it cannot outlive the process, leak into another
22
+ // shell, or be persisted by a later `writeCredential({ ...credential })`.
23
+ import { listProjects } from '../cloud.js';
24
+ import { readCredential } from '../credential.js';
25
+ import { refuse, refusalFromCloudError } from './wording.js';
26
+ /** The variable's name, as people type it and as every message names it. */
27
+ export const PROJECT_ENV = 'VEILIO_PROJECT';
28
+ /** The variable's value, or null when it is unset, empty or spaces only. */
29
+ export function projectOverride(env = process.env) {
30
+ const value = env[PROJECT_ENV]?.trim();
31
+ return value ? value : null;
32
+ }
33
+ /**
34
+ * A project by its id, or by a name exactly one project has. The one rule
35
+ * `projects use` and `VEILIO_PROJECT` share, so the two cannot drift apart. A
36
+ * shared name is never guessed: guessing is how two projects' maps meet.
37
+ */
38
+ export function matchProject(projects, ref) {
39
+ const byId = projects.find((p) => p.id === ref);
40
+ if (byId)
41
+ return { ok: true, project: byId };
42
+ const byName = projects.filter((p) => p.name === ref);
43
+ if (byName.length > 1)
44
+ return { ok: false, reason: 'ambiguous', count: byName.length };
45
+ if (byName.length === 1)
46
+ return { ok: true, project: byName[0] };
47
+ return { ok: false, reason: 'not_found' };
48
+ }
49
+ /**
50
+ * The credential this command works with. Without the variable: the stored
51
+ * one, unchanged, with no request. With it: one listing, then a copy whose
52
+ * `project` is the resolved id - or a refusal naming the value.
53
+ */
54
+ export async function scopeCredential(credential, env) {
55
+ const value = projectOverride(env);
56
+ if (value === null)
57
+ return { ok: true, value: credential };
58
+ try {
59
+ return await resolveOverride(credential, value);
60
+ }
61
+ catch (err) {
62
+ return { ok: false, refusal: refusalFromCloudError(err, { project: value, override: true }) };
63
+ }
64
+ }
65
+ /**
66
+ * `value` through the server's listing. A failed request THROWS - so the team
67
+ * namespace resolver can retry it and hold it to its deadline, as it does its
68
+ * own reads - and only an answer that names no such project is a refusal.
69
+ */
70
+ export async function resolveOverride(credential, value, signal) {
71
+ // The listing names no project, so asking it never sends the stored one.
72
+ const answer = await listProjects(credential, signal);
73
+ const rows = Array.isArray(answer?.projects) ? answer.projects : [];
74
+ const found = matchProject(rows, value);
75
+ if (!found.ok) {
76
+ return found.reason === 'ambiguous'
77
+ ? refuse('project_env_ambiguous', { project: value, count: found.count })
78
+ : refuse('project_env_not_found', { project: value });
79
+ }
80
+ return {
81
+ ok: true,
82
+ value: {
83
+ ...credential,
84
+ project: found.project.id,
85
+ projectFrom: PROJECT_ENV,
86
+ projectName: found.project.name,
87
+ },
88
+ };
89
+ }
90
+ /** Signed in, and scoped: `not_signed_in` before any request otherwise. */
91
+ export async function readScopedCredential(ctx) {
92
+ const credential = readCredential(ctx.home);
93
+ if (!credential)
94
+ return refuse('not_signed_in');
95
+ return scopeCredential(credential, ctx.env);
96
+ }
97
+ /**
98
+ * The project, as a line that names it says it: the stored id as before, or
99
+ * the name with "(from VEILIO_PROJECT)" when the variable chose it. Null when
100
+ * none is in use.
101
+ */
102
+ export function projectLabel(credential) {
103
+ if (!credential.project)
104
+ return null;
105
+ if (credential.projectFrom)
106
+ return `${credential.projectName ?? credential.project} (from ${PROJECT_ENV})`;
107
+ return credential.project;
108
+ }
109
+ /** What a refusal from a failed request needs to name the project rightly. */
110
+ export function refusalScope(credential) {
111
+ if (credential.projectFrom)
112
+ return { project: credential.projectName ?? credential.project, override: true };
113
+ return { project: credential.project };
114
+ }
115
+ export function overrideSentence(override, chosen) {
116
+ if (override.id !== null)
117
+ return (`${PROJECT_ENV} is "${override.value}", so that project is in use here` +
118
+ (chosen && chosen !== override.id
119
+ ? `; the one chosen for this sign-in (${chosen}) applies again once it is unset.`
120
+ : '.'));
121
+ if (override.reason === 'ambiguous')
122
+ return (`${PROJECT_ENV} is "${override.value}", and ${override.count} of these projects are called that, ` +
123
+ 'so every command that uses a project refuses until it is set to one of their ids.');
124
+ return (`${PROJECT_ENV} is "${override.value}", which is none of these projects, so every command that ` +
125
+ 'uses a project refuses until it is set to one of them, or unset.');
126
+ }
127
+ /** What `projects use` adds when the variable overrides what it just stored. */
128
+ export function overriddenSentence(used, where) {
129
+ return (`${PROJECT_ENV} is set ("${used.overriddenBy}") ${where === 'shell' ? 'in this shell' : 'for this MCP server'}, ` +
130
+ `and it overrides this choice: ${where === 'shell' ? 'unset it' : 'remove it from the server’s env'} to work in ${used.name}.`);
131
+ }
132
+ //# sourceMappingURL=project-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-scope.js","sourceRoot":"","sources":["../../src/client/project-scope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { type Outcome } from './wording.js';
2
+ import type { ClientContext } from './maps.js';
3
+ import { type ProjectOverride } from './project-scope.js';
4
+ export interface ListedProject {
5
+ id: string;
6
+ name: string;
7
+ /** The team's own maps in it. */
8
+ maps: number | null;
9
+ /** The one in use: VEILIO_PROJECT's when it is set, else the one chosen. */
10
+ inUse: boolean;
11
+ /** Where a new team map lands when none is chosen. */
12
+ isDefault: boolean;
13
+ }
14
+ export declare function listTeamProjects(ctx: ClientContext): Promise<Outcome<{
15
+ projects: ListedProject[];
16
+ chosen: string | null;
17
+ override: ProjectOverride | null;
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;
46
+ /** Choose a project by its id or its name. A name two projects share is
47
+ * refused rather than guessed: guessing is how two projects' maps meet. */
48
+ export declare function useProject(ctx: ClientContext, ref: string | null): Promise<Outcome<{
49
+ id: string;
50
+ name: string;
51
+ overriddenBy: string | null;
52
+ }>>;
53
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +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;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"}