synomem 0.7.2 → 0.9.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/CHANGELOG.md +38 -0
- package/README.md +47 -68
- package/dist/backend.d.ts +18 -6
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +55 -41
- package/dist/backend.js.map +1 -1
- package/dist/cli.d.ts +20 -25
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1394 -1281
- package/dist/cli.js.map +1 -1
- package/dist/configure.d.ts +12 -46
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +51 -192
- package/dist/configure.js.map +1 -1
- package/dist/credentials.d.ts +73 -33
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +167 -43
- package/dist/credentials.js.map +1 -1
- package/dist/discover.d.ts +10 -13
- package/dist/discover.d.ts.map +1 -1
- package/dist/discover.js +45 -30
- package/dist/discover.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +5 -0
- package/dist/errors.js.map +1 -1
- package/dist/import.d.ts +3 -0
- package/dist/import.d.ts.map +1 -1
- package/dist/import.js +3 -0
- package/dist/import.js.map +1 -1
- package/dist/index.d.ts +9 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.d.ts +18 -7
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +402 -183
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp-server.d.ts +5 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +27 -105
- package/dist/mcp-server.js.map +1 -1
- package/dist/oauth.d.ts +31 -33
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +178 -125
- package/dist/oauth.js.map +1 -1
- package/dist/profiles.d.ts +243 -0
- package/dist/profiles.d.ts.map +1 -0
- package/dist/profiles.js +465 -0
- package/dist/profiles.js.map +1 -0
- package/dist/project.d.ts +8 -39
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +36 -94
- package/dist/project.js.map +1 -1
- package/dist/remote.d.ts +23 -15
- package/dist/remote.d.ts.map +1 -1
- package/dist/remote.js +54 -49
- package/dist/remote.js.map +1 -1
- package/dist/resolvers.d.ts +47 -0
- package/dist/resolvers.d.ts.map +1 -0
- package/dist/resolvers.js +255 -0
- package/dist/resolvers.js.map +1 -0
- package/dist/service.d.ts +2 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/skill-install.d.ts +4 -6
- package/dist/skill-install.d.ts.map +1 -1
- package/dist/skill-install.js +13 -12
- package/dist/skill-install.js.map +1 -1
- package/dist/types.d.ts +51 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/cli.md +173 -196
- package/docs/mcp.md +69 -65
- package/package.json +1 -1
- package/skills/synomem/SKILL.md +30 -4
- package/skills/synomem/references/examples.md +14 -0
- package/src/backend.ts +66 -64
- package/src/cli.ts +2137 -2163
- package/src/configure.ts +62 -241
- package/src/credentials.ts +208 -84
- package/src/discover.ts +60 -36
- package/src/errors.ts +5 -0
- package/src/import.ts +5 -0
- package/src/index.ts +14 -12
- package/src/mcp/index.ts +473 -194
- package/src/mcp-server.ts +32 -114
- package/src/oauth.ts +229 -130
- package/src/profiles.ts +644 -0
- package/src/project.ts +42 -108
- package/src/remote.ts +69 -58
- package/src/resolvers.ts +299 -0
- package/src/service.ts +2 -0
- package/src/skill-install.ts +17 -18
- package/src/types.ts +46 -0
package/dist/credentials.js
CHANGED
|
@@ -1,16 +1,73 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Credential storage, indexed by connection — never by actor or workspace.
|
|
3
|
+
*
|
|
4
|
+
* One stored secret serves every profile that routes through its connection:
|
|
5
|
+
* adding a profile for another agent or workspace never copies a refresh
|
|
6
|
+
* token, and rotating a credential updates exactly one entry. Which actor and
|
|
7
|
+
* workspace an operation uses is the profile's business (see `profiles.ts`),
|
|
8
|
+
* and the server authorizes it on every request regardless of what is stored
|
|
9
|
+
* here.
|
|
10
|
+
*
|
|
11
|
+
* Two credential kinds, deliberately distinct so nothing tries to refresh a
|
|
12
|
+
* key or treat an OAuth family as a static secret:
|
|
13
|
+
*
|
|
14
|
+
* - `oauth`: an authorization-code family for one connection, refreshed
|
|
15
|
+
* under a cross-process lock with a generation counter;
|
|
16
|
+
* - `access-key`: a member-owned `syn_…` key, used exactly as stored.
|
|
17
|
+
*
|
|
18
|
+
* Backends: the macOS Keychain, Linux Secret Service (`secret-tool`), an
|
|
19
|
+
* explicit restricted file, or the process environment. There is no silent
|
|
20
|
+
* fallback from one to another: a keychain that refuses a write is an error
|
|
21
|
+
* that names the explicit alternative.
|
|
22
|
+
*/
|
|
2
23
|
import { spawn } from 'node:child_process';
|
|
24
|
+
import { randomUUID } from 'node:crypto';
|
|
25
|
+
import { chmodSync, closeSync, existsSync, mkdirSync, openSync, readFileSync, rmSync, statSync, unlinkSync, writeSync, } from 'node:fs';
|
|
26
|
+
import { join } from 'node:path';
|
|
27
|
+
import { z } from 'zod';
|
|
3
28
|
import { SynomemError } from './errors.js';
|
|
29
|
+
import { atomicWriteFile } from './fs-utils.js';
|
|
4
30
|
const serviceName = 'ai.synomem.credentials';
|
|
5
31
|
const maximumOutputBytes = 128 * 1024;
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
32
|
+
export const storedOAuthCredentialSchema = z.object({
|
|
33
|
+
kind: z.literal('oauth'),
|
|
34
|
+
issuer: z.string().min(1),
|
|
35
|
+
resource: z.string().min(1),
|
|
36
|
+
clientId: z.string().min(1),
|
|
37
|
+
tokenEndpoint: z.string().min(1),
|
|
38
|
+
scope: z.string(),
|
|
39
|
+
accessToken: z.string().min(1),
|
|
40
|
+
refreshToken: z.string().min(1).optional(),
|
|
41
|
+
/** Epoch milliseconds, already reduced by a safety margin. */
|
|
42
|
+
expiresAt: z.number().int().nonnegative(),
|
|
43
|
+
/** Incremented on every successful refresh; the compare-and-swap token. */
|
|
44
|
+
generation: z.number().int().nonnegative(),
|
|
45
|
+
});
|
|
46
|
+
export const storedAccessKeySchema = z.object({
|
|
47
|
+
kind: z.literal('access-key'),
|
|
48
|
+
secret: z.string().min(1),
|
|
49
|
+
});
|
|
50
|
+
export const storedCredentialSchema = z.discriminatedUnion('kind', [
|
|
51
|
+
storedOAuthCredentialSchema,
|
|
52
|
+
storedAccessKeySchema,
|
|
53
|
+
]);
|
|
54
|
+
/** An opaque, non-secret handle for a stored secret. Never derived from names. */
|
|
55
|
+
export function newSecretReference() {
|
|
56
|
+
return `synomem-${randomUUID()}`;
|
|
57
|
+
}
|
|
58
|
+
export function parseStoredCredential(value) {
|
|
59
|
+
let raw;
|
|
60
|
+
try {
|
|
61
|
+
raw = JSON.parse(value);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
throw new SynomemError('AUTH_REQUIRED', 'Stored Synomem credential is malformed.');
|
|
65
|
+
}
|
|
66
|
+
const parsed = storedCredentialSchema.safeParse(raw);
|
|
67
|
+
if (!parsed.success) {
|
|
68
|
+
throw new SynomemError('AUTH_REQUIRED', 'Stored Synomem credential is in an unsupported format. Run `synomem connection login` (or `connection add-key`) again.');
|
|
69
|
+
}
|
|
70
|
+
return parsed.data;
|
|
14
71
|
}
|
|
15
72
|
async function command(executable, arguments_, input) {
|
|
16
73
|
return await new Promise((resolve, reject) => {
|
|
@@ -38,22 +95,7 @@ async function command(executable, arguments_, input) {
|
|
|
38
95
|
child.stdin.end(input);
|
|
39
96
|
});
|
|
40
97
|
}
|
|
41
|
-
|
|
42
|
-
try {
|
|
43
|
-
const parsed = JSON.parse(value);
|
|
44
|
-
if (typeof parsed.accessToken !== 'string' ||
|
|
45
|
-
typeof parsed.tokenEndpoint !== 'string' ||
|
|
46
|
-
typeof parsed.clientId !== 'string' ||
|
|
47
|
-
typeof parsed.resource !== 'string' ||
|
|
48
|
-
typeof parsed.scope !== 'string') {
|
|
49
|
-
throw new Error();
|
|
50
|
-
}
|
|
51
|
-
return parsed;
|
|
52
|
-
}
|
|
53
|
-
catch {
|
|
54
|
-
throw new SynomemError('AUTH_REQUIRED', 'Stored Synomem credentials are malformed.');
|
|
55
|
-
}
|
|
56
|
-
}
|
|
98
|
+
/** macOS Keychain or Linux Secret Service. */
|
|
57
99
|
export class OsCredentialStore {
|
|
58
100
|
platform;
|
|
59
101
|
run;
|
|
@@ -76,10 +118,10 @@ export class OsCredentialStore {
|
|
|
76
118
|
: this.unsupported();
|
|
77
119
|
if (result.code !== 0)
|
|
78
120
|
return undefined;
|
|
79
|
-
return
|
|
121
|
+
return parseStoredCredential(result.stdout.trim());
|
|
80
122
|
}
|
|
81
123
|
async set(reference, credential) {
|
|
82
|
-
const serialized = JSON.stringify(credential);
|
|
124
|
+
const serialized = JSON.stringify(storedCredentialSchema.parse(credential));
|
|
83
125
|
const result = this.platform === 'darwin'
|
|
84
126
|
? await this.run('/usr/bin/security', [
|
|
85
127
|
'add-generic-password',
|
|
@@ -88,22 +130,15 @@ export class OsCredentialStore {
|
|
|
88
130
|
'-s',
|
|
89
131
|
serviceName,
|
|
90
132
|
'-l',
|
|
91
|
-
'Synomem
|
|
133
|
+
'Synomem credential',
|
|
92
134
|
'-U',
|
|
93
135
|
'-w',
|
|
94
136
|
], `${serialized}\n`)
|
|
95
137
|
: this.platform === 'linux'
|
|
96
|
-
? await this.run('secret-tool', [
|
|
97
|
-
'store',
|
|
98
|
-
'--label=Synomem OAuth credential',
|
|
99
|
-
'service',
|
|
100
|
-
serviceName,
|
|
101
|
-
'account',
|
|
102
|
-
reference,
|
|
103
|
-
], serialized)
|
|
138
|
+
? await this.run('secret-tool', ['store', '--label=Synomem credential', 'service', serviceName, 'account', reference], serialized)
|
|
104
139
|
: this.unsupported();
|
|
105
140
|
if (result.code !== 0) {
|
|
106
|
-
throw new SynomemError('
|
|
141
|
+
throw new SynomemError('CONFIG_INVALID', 'The operating-system credential store rejected the credential. Re-run with --store file to use a restricted file instead.');
|
|
107
142
|
}
|
|
108
143
|
}
|
|
109
144
|
async delete(reference) {
|
|
@@ -121,15 +156,104 @@ export class OsCredentialStore {
|
|
|
121
156
|
return result.code === 0;
|
|
122
157
|
}
|
|
123
158
|
/*
|
|
124
|
-
* Windows Credential Manager is not implemented
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* worse than saying so plainly.
|
|
159
|
+
* Windows Credential Manager is not implemented: `cmdkey` can write a generic
|
|
160
|
+
* credential but will not read the secret back, so a store built on it would
|
|
161
|
+
* accept a credential and never return it.
|
|
128
162
|
*/
|
|
129
163
|
unsupported() {
|
|
130
164
|
throw new SynomemError('CONFIG_INVALID', this.platform === 'win32'
|
|
131
|
-
? 'Windows Credential Manager storage is not supported yet.
|
|
132
|
-
: 'Operating-system credential storage needs the macOS Keychain, or secret-tool on Linux.
|
|
165
|
+
? 'Windows Credential Manager storage is not supported yet. Use --store file, or --store environment with SYNOMEM_ACCESS_TOKEN.'
|
|
166
|
+
: 'Operating-system credential storage needs the macOS Keychain, or secret-tool on Linux. Use --store file, or --store environment with SYNOMEM_ACCESS_TOKEN.');
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* One restricted file per secret under `<home>/credentials/`, mode 0600 in a
|
|
171
|
+
* 0700 directory. Chosen explicitly (`--store file`), never as a fallback.
|
|
172
|
+
*/
|
|
173
|
+
export class FileCredentialStore {
|
|
174
|
+
directory;
|
|
175
|
+
constructor(home) {
|
|
176
|
+
this.directory = join(home, 'credentials');
|
|
177
|
+
}
|
|
178
|
+
path(reference) {
|
|
179
|
+
if (!/^[A-Za-z0-9_-]{1,100}$/.test(reference)) {
|
|
180
|
+
throw new SynomemError('CONFIG_INVALID', 'Credential reference is malformed.');
|
|
181
|
+
}
|
|
182
|
+
return join(this.directory, `${reference}.json`);
|
|
183
|
+
}
|
|
184
|
+
async get(reference) {
|
|
185
|
+
const path = this.path(reference);
|
|
186
|
+
if (!existsSync(path))
|
|
187
|
+
return undefined;
|
|
188
|
+
return parseStoredCredential(readFileSync(path, 'utf8'));
|
|
189
|
+
}
|
|
190
|
+
async set(reference, credential) {
|
|
191
|
+
if (!existsSync(this.directory))
|
|
192
|
+
mkdirSync(this.directory, { recursive: true, mode: 0o700 });
|
|
193
|
+
chmodSync(this.directory, 0o700);
|
|
194
|
+
atomicWriteFile(this.path(reference), `${JSON.stringify(storedCredentialSchema.parse(credential))}\n`, 0o600);
|
|
195
|
+
}
|
|
196
|
+
async delete(reference) {
|
|
197
|
+
const path = this.path(reference);
|
|
198
|
+
if (!existsSync(path))
|
|
199
|
+
return false;
|
|
200
|
+
rmSync(path, { force: true });
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
export function defaultCredentialStores(home) {
|
|
205
|
+
return { keychain: new OsCredentialStore(), file: new FileCredentialStore(home) };
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* A cross-process lock around one credential's refresh.
|
|
209
|
+
*
|
|
210
|
+
* `O_EXCL` creation is the mutual exclusion; a lock older than `staleMs` is
|
|
211
|
+
* from a crashed process and is broken. The lock only serializes refreshes —
|
|
212
|
+
* correctness against a concurrent writer is the generation compare-and-swap
|
|
213
|
+
* in `refreshCredential`.
|
|
214
|
+
*/
|
|
215
|
+
export async function withCredentialLock(home, name, operation, options = {}) {
|
|
216
|
+
if (!/^[A-Za-z0-9_.-]{1,100}$/.test(name)) {
|
|
217
|
+
throw new SynomemError('CONFIG_INVALID', 'Credential name is malformed.');
|
|
218
|
+
}
|
|
219
|
+
const directory = join(home, 'locks');
|
|
220
|
+
if (!existsSync(directory))
|
|
221
|
+
mkdirSync(directory, { recursive: true, mode: 0o700 });
|
|
222
|
+
const path = join(directory, `${name}.lock`);
|
|
223
|
+
const staleMs = options.staleMs ?? 60_000;
|
|
224
|
+
const deadline = Date.now() + (options.timeoutMs ?? 30_000);
|
|
225
|
+
const pollMs = options.pollMs ?? 50;
|
|
226
|
+
let descriptor;
|
|
227
|
+
while (descriptor === undefined) {
|
|
228
|
+
try {
|
|
229
|
+
descriptor = openSync(path, 'wx', 0o600);
|
|
230
|
+
writeSync(descriptor, `${process.pid}\n`);
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
if (error.code !== 'EEXIST')
|
|
234
|
+
throw error;
|
|
235
|
+
try {
|
|
236
|
+
if (Date.now() - statSync(path).mtimeMs > staleMs) {
|
|
237
|
+
unlinkSync(path);
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
// Removed between the failed open and the stat: try again at once.
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
if (Date.now() > deadline) {
|
|
246
|
+
throw new SynomemError('DATABASE_BUSY', `Another Synomem process is refreshing the ${name} credential. Try again.`);
|
|
247
|
+
}
|
|
248
|
+
await new Promise((resolve) => setTimeout(resolve, pollMs));
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
try {
|
|
252
|
+
return await operation();
|
|
253
|
+
}
|
|
254
|
+
finally {
|
|
255
|
+
closeSync(descriptor);
|
|
256
|
+
rmSync(path, { force: true });
|
|
133
257
|
}
|
|
134
258
|
}
|
|
135
259
|
//# sourceMappingURL=credentials.js.map
|
package/dist/credentials.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
|
package/dist/discover.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ContextListing, IdentityDescription } from './types.js';
|
|
1
2
|
export interface DiscoveredWorkspace {
|
|
2
3
|
id: string;
|
|
3
4
|
displayName: string;
|
|
@@ -16,19 +17,6 @@ export interface DiscoveryOptions {
|
|
|
16
17
|
fetch?: typeof globalThis.fetch;
|
|
17
18
|
signal?: AbortSignal;
|
|
18
19
|
}
|
|
19
|
-
/**
|
|
20
|
-
* Every workspace a member-owned access key can reach, asked before any one
|
|
21
|
-
* of them has been chosen.
|
|
22
|
-
*
|
|
23
|
-
* Answered by the data plane rather than the control plane: an access key is
|
|
24
|
-
* not an account principal the control plane recognizes, but the data plane
|
|
25
|
-
* already knows which organization owns it and can list that organization's
|
|
26
|
-
* workspaces without requiring one to be named first.
|
|
27
|
-
*/
|
|
28
|
-
export declare function discoverAccessKeyWorkspaces(options: DiscoveryOptions): Promise<{
|
|
29
|
-
organizationId: string;
|
|
30
|
-
workspaces: DiscoveredWorkspace[];
|
|
31
|
-
}>;
|
|
32
20
|
/**
|
|
33
21
|
* Every organization this account belongs to, each with its workspaces.
|
|
34
22
|
*
|
|
@@ -37,6 +25,15 @@ export declare function discoverAccessKeyWorkspaces(options: DiscoveryOptions):
|
|
|
37
25
|
* useful answer than omitting it and appearing to have found nothing.
|
|
38
26
|
*/
|
|
39
27
|
export declare function discoverOrganizations(options: DiscoveryOptions): Promise<DiscoveredOrganization[]>;
|
|
28
|
+
/**
|
|
29
|
+
* Every context this credential's grant may use right now, with canonical ids
|
|
30
|
+
* (`GET /v1/contexts`). Follows `nextCursor` until the listing is complete, bounded.
|
|
31
|
+
*/
|
|
32
|
+
export declare function discoverContexts(options: DiscoveryOptions): Promise<ContextListing>;
|
|
33
|
+
/** Who this credential is: account, connection, grant, and effective context if selected. */
|
|
34
|
+
export declare function describeIdentity(options: DiscoveryOptions & {
|
|
35
|
+
contextId?: string;
|
|
36
|
+
}): Promise<IdentityDescription>;
|
|
40
37
|
/** Flattens discovery into the choices a person picks from. */
|
|
41
38
|
export declare function workspaceChoices(organizations: DiscoveredOrganization[]): Array<{
|
|
42
39
|
value: string;
|
package/dist/discover.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA6DD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAsBnC;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAazF;AAED,6FAA6F;AAC7F,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,gBAAgB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,OAAO,CAAC,mBAAmB,CAAC,CAM9B;AAED,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,sBAAsB,EAAE,GACtC,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAe1D"}
|
package/dist/discover.js
CHANGED
|
@@ -1,31 +1,28 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Finding out
|
|
3
|
-
* one from memory.
|
|
2
|
+
* Finding out what a credential can reach, so nobody has to type an id from memory.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
* person to enter that during setup is asking them to leave and go find it, and
|
|
7
|
-
* the credential they just authorized already knows the answer -- or knows
|
|
8
|
-
* enough to offer a short list.
|
|
4
|
+
* Two questions, two routes, because they carry different authority:
|
|
9
5
|
*
|
|
10
|
-
*
|
|
6
|
+
* `discoverContexts` / `describeIdentity` ask the DATA plane, with any credential
|
|
7
|
+
* (OAuth access token or `syn_` access key), which workspace/actor targets that
|
|
8
|
+
* credential's grant may use right now (identity contract §4). No context has to be
|
|
9
|
+
* chosen first — that is the point.
|
|
11
10
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* -- so `discoverAccessKeyWorkspaces` lists them off the data plane, with no
|
|
15
|
-
* workspace chosen yet, which is exactly what setup cannot supply up front.
|
|
16
|
-
*
|
|
17
|
-
* A browser sign-in also authorizes an ACCOUNT, which may reach several
|
|
18
|
-
* organizations, each with several workspaces. `discoverOrganizations` lists
|
|
19
|
-
* them for selection.
|
|
11
|
+
* `discoverOrganizations` asks the control plane which organizations an account
|
|
12
|
+
* belongs to, for first-party setup flows that hold an account session.
|
|
20
13
|
*/
|
|
21
14
|
import { SynomemError } from './errors.js';
|
|
22
|
-
async function readJson(options, path) {
|
|
15
|
+
async function readJson(options, path, extraHeaders) {
|
|
23
16
|
const request = options.fetch ?? globalThis.fetch;
|
|
24
17
|
const url = new URL(path, options.baseUrl.endsWith('/') ? options.baseUrl : `${options.baseUrl}/`);
|
|
25
18
|
let response;
|
|
26
19
|
try {
|
|
27
20
|
response = await request(url, {
|
|
28
|
-
headers: {
|
|
21
|
+
headers: {
|
|
22
|
+
authorization: `Bearer ${options.accessToken}`,
|
|
23
|
+
accept: 'application/json',
|
|
24
|
+
...extraHeaders,
|
|
25
|
+
},
|
|
29
26
|
...(options.signal ? { signal: options.signal } : {}),
|
|
30
27
|
});
|
|
31
28
|
}
|
|
@@ -42,24 +39,22 @@ async function readJson(options, path) {
|
|
|
42
39
|
if (!response.ok || body.ok !== true || body.data === undefined) {
|
|
43
40
|
// 401 and 403 are the ones a person can act on, so they keep their own
|
|
44
41
|
// codes rather than being flattened into a generic protocol error.
|
|
45
|
-
const
|
|
42
|
+
const reported = body.error?.code;
|
|
43
|
+
const code = reported === 'CONTEXT_REQUIRED' ||
|
|
44
|
+
reported === 'CONTEXT_FORBIDDEN' ||
|
|
45
|
+
reported === 'CONTEXT_AMBIGUOUS' ||
|
|
46
|
+
reported === 'REAUTHORIZATION_REQUIRED'
|
|
47
|
+
? reported
|
|
48
|
+
: response.status === 401
|
|
49
|
+
? 'AUTH_REQUIRED'
|
|
50
|
+
: response.status === 403
|
|
51
|
+
? 'AUTH_FORBIDDEN'
|
|
52
|
+
: null;
|
|
46
53
|
const message = body.error?.message ?? `${url.pathname} returned ${response.status}.`;
|
|
47
54
|
throw new SynomemError(code ?? 'REMOTE_PROTOCOL', message);
|
|
48
55
|
}
|
|
49
56
|
return body.data;
|
|
50
57
|
}
|
|
51
|
-
/**
|
|
52
|
-
* Every workspace a member-owned access key can reach, asked before any one
|
|
53
|
-
* of them has been chosen.
|
|
54
|
-
*
|
|
55
|
-
* Answered by the data plane rather than the control plane: an access key is
|
|
56
|
-
* not an account principal the control plane recognizes, but the data plane
|
|
57
|
-
* already knows which organization owns it and can list that organization's
|
|
58
|
-
* workspaces without requiring one to be named first.
|
|
59
|
-
*/
|
|
60
|
-
export async function discoverAccessKeyWorkspaces(options) {
|
|
61
|
-
return await readJson(options, 'v1/access-keys/workspaces');
|
|
62
|
-
}
|
|
63
58
|
/**
|
|
64
59
|
* Every organization this account belongs to, each with its workspaces.
|
|
65
60
|
*
|
|
@@ -85,6 +80,26 @@ export async function discoverOrganizations(options) {
|
|
|
85
80
|
}
|
|
86
81
|
return organizations;
|
|
87
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Every context this credential's grant may use right now, with canonical ids
|
|
85
|
+
* (`GET /v1/contexts`). Follows `nextCursor` until the listing is complete, bounded.
|
|
86
|
+
*/
|
|
87
|
+
export async function discoverContexts(options) {
|
|
88
|
+
let listing;
|
|
89
|
+
let cursor;
|
|
90
|
+
for (let page = 0; page < 20; page += 1) {
|
|
91
|
+
const next = await readJson(options, `v1/contexts?limit=100${cursor ? `&cursor=${encodeURIComponent(cursor)}` : ''}`);
|
|
92
|
+
listing = listing ? { ...next, contexts: [...listing.contexts, ...next.contexts] } : next;
|
|
93
|
+
cursor = next.nextCursor;
|
|
94
|
+
if (!cursor)
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
return { ...listing, nextCursor: null };
|
|
98
|
+
}
|
|
99
|
+
/** Who this credential is: account, connection, grant, and effective context if selected. */
|
|
100
|
+
export async function describeIdentity(options) {
|
|
101
|
+
return await readJson(options, 'v1/identity', options.contextId ? { 'synomem-context-id': options.contextId } : undefined);
|
|
102
|
+
}
|
|
88
103
|
/** Flattens discovery into the choices a person picks from. */
|
|
89
104
|
export function workspaceChoices(organizations) {
|
|
90
105
|
const choices = [];
|
package/dist/discover.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const errorCodes: readonly ["INVALID_INPUT", "INVALID_AGENT_ID", "INVALID_EVENT", "UNSUPPORTED_EVENT", "AGENT_NOT_FOUND", "AGENT_EXISTS", "ALIAS_CONFLICT", "TOPIC_NOT_FOUND", "TOPIC_EXISTS", "KUDOS_NOT_FOUND", "ITEM_NOT_FOUND", "MEMO_NOT_FOUND", "NOTE_NOT_FOUND", "TODO_NOT_FOUND", "REVISION_CONFLICT", "IDEMPOTENCY_CONFLICT", "MUTATION_FORBIDDEN", "SELF_AWARD_FORBIDDEN", "ACKNOWLEDGMENT_FORBIDDEN", "REVOCATION_FORBIDDEN", "READ_ONLY", "DATABASE_BUSY", "DATABASE_CORRUPT", "UNSUPPORTED_SCHEMA", "UNSAFE_PATH", "POLICY_FORBIDDEN", "CONFIG_INVALID", "AUTH_REQUIRED", "AUTH_FORBIDDEN", "REMOTE_UNAVAILABLE", "REMOTE_PROTOCOL", "RATE_LIMITED", "INTERNAL_ERROR"];
|
|
1
|
+
export declare const errorCodes: readonly ["INVALID_INPUT", "INVALID_AGENT_ID", "INVALID_EVENT", "UNSUPPORTED_EVENT", "AGENT_NOT_FOUND", "AGENT_EXISTS", "ALIAS_CONFLICT", "TOPIC_NOT_FOUND", "TOPIC_EXISTS", "KUDOS_NOT_FOUND", "ITEM_NOT_FOUND", "MEMO_NOT_FOUND", "NOTE_NOT_FOUND", "TODO_NOT_FOUND", "REVISION_CONFLICT", "IDEMPOTENCY_CONFLICT", "MUTATION_FORBIDDEN", "SELF_AWARD_FORBIDDEN", "ACKNOWLEDGMENT_FORBIDDEN", "REVOCATION_FORBIDDEN", "READ_ONLY", "DATABASE_BUSY", "DATABASE_CORRUPT", "UNSUPPORTED_SCHEMA", "UNSAFE_PATH", "POLICY_FORBIDDEN", "CONFIG_INVALID", "AUTH_REQUIRED", "AUTH_FORBIDDEN", "CONTEXT_REQUIRED", "CONTEXT_FORBIDDEN", "CONTEXT_AMBIGUOUS", "REAUTHORIZATION_REQUIRED", "UNSUPPORTED_BACKEND", "REMOTE_UNAVAILABLE", "REMOTE_PROTOCOL", "RATE_LIMITED", "INTERNAL_ERROR"];
|
|
2
2
|
export type SynomemErrorCode = (typeof errorCodes)[number];
|
|
3
3
|
export declare class SynomemError extends Error {
|
|
4
4
|
readonly code: SynomemErrorCode;
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,ovBAuCb,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAE/B,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMvF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAa3D"}
|
package/dist/errors.js
CHANGED
|
@@ -29,6 +29,11 @@ export const errorCodes = [
|
|
|
29
29
|
'CONFIG_INVALID',
|
|
30
30
|
'AUTH_REQUIRED',
|
|
31
31
|
'AUTH_FORBIDDEN',
|
|
32
|
+
'CONTEXT_REQUIRED',
|
|
33
|
+
'CONTEXT_FORBIDDEN',
|
|
34
|
+
'CONTEXT_AMBIGUOUS',
|
|
35
|
+
'REAUTHORIZATION_REQUIRED',
|
|
36
|
+
'UNSUPPORTED_BACKEND',
|
|
32
37
|
'REMOTE_UNAVAILABLE',
|
|
33
38
|
'REMOTE_PROTOCOL',
|
|
34
39
|
'RATE_LIMITED',
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE/B,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;IACnB,sBAAsB;IACtB,oBAAoB;IACpB,sBAAsB;IACtB,0BAA0B;IAC1B,sBAAsB;IACtB,WAAW;IACX,eAAe;IACf,kBAAkB;IAClB,oBAAoB;IACpB,aAAa;IACb,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,iBAAiB;IACjB,cAAc;IACd,gBAAgB;CACR,CAAC;AAIX,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAmB;IACvB,OAAO,CAA2B;IAE3C,YAAY,IAAsB,EAAE,OAAe,EAAE,OAAiC;QACpF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,YAAY;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,YAAY,CAAC,eAAe,EAAE,0BAA0B,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;IACpF,IAAI,iCAAiC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,YAAY,CAAC,eAAe,EAAE,8CAA8C,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,+CAA+C,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,OAAO,IAAI,YAAY,CAAC,kBAAkB,EAAE,iDAAiD,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE/B,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;IACnB,sBAAsB;IACtB,oBAAoB;IACpB,sBAAsB;IACtB,0BAA0B;IAC1B,sBAAsB;IACtB,WAAW;IACX,eAAe;IACf,kBAAkB;IAClB,oBAAoB;IACpB,aAAa;IACb,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,0BAA0B;IAC1B,qBAAqB;IACrB,oBAAoB;IACpB,iBAAiB;IACjB,cAAc;IACd,gBAAgB;CACR,CAAC;AAIX,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAmB;IACvB,OAAO,CAA2B;IAE3C,YAAY,IAAsB,EAAE,OAAe,EAAE,OAAiC;QACpF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,YAAY;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,YAAY,CAAC,eAAe,EAAE,0BAA0B,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;IACpF,IAAI,iCAAiC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,YAAY,CAAC,eAAe,EAAE,8CAA8C,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,+CAA+C,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,OAAO,IAAI,YAAY,CAAC,kBAAkB,EAAE,iDAAiD,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC"}
|
package/dist/import.d.ts
CHANGED
|
@@ -1080,12 +1080,15 @@ export declare function createLocalImportBundle(fromHome: string): Promise<Impor
|
|
|
1080
1080
|
export interface RemoteImportClientOptions {
|
|
1081
1081
|
baseUrl: string;
|
|
1082
1082
|
workspaceId: string;
|
|
1083
|
+
/** The selected context; sent as Synomem-Context-Id (identity contract §3). */
|
|
1084
|
+
contextId?: string;
|
|
1083
1085
|
credentialProvider: SynomemCredentialProvider;
|
|
1084
1086
|
fetch?: typeof fetch;
|
|
1085
1087
|
}
|
|
1086
1088
|
export declare class RemoteImportClient {
|
|
1087
1089
|
private readonly baseUrl;
|
|
1088
1090
|
private readonly workspaceId;
|
|
1091
|
+
private readonly contextId;
|
|
1089
1092
|
private readonly credentialProvider;
|
|
1090
1093
|
private readonly fetchImplementation;
|
|
1091
1094
|
constructor(options: RemoteImportClientOptions);
|
package/dist/import.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../src/import.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../src/import.ts"],"names":[],"mappings":"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"}
|
package/dist/import.js
CHANGED
|
@@ -126,6 +126,7 @@ export async function createLocalImportBundle(fromHome) {
|
|
|
126
126
|
export class RemoteImportClient {
|
|
127
127
|
baseUrl;
|
|
128
128
|
workspaceId;
|
|
129
|
+
contextId;
|
|
129
130
|
credentialProvider;
|
|
130
131
|
fetchImplementation;
|
|
131
132
|
constructor(options) {
|
|
@@ -142,6 +143,7 @@ export class RemoteImportClient {
|
|
|
142
143
|
throw new SynomemError('CONFIG_INVALID', 'Remote import baseUrl must be an origin.');
|
|
143
144
|
}
|
|
144
145
|
this.workspaceId = options.workspaceId;
|
|
146
|
+
this.contextId = options.contextId;
|
|
145
147
|
this.credentialProvider = options.credentialProvider;
|
|
146
148
|
this.fetchImplementation = options.fetch ?? fetch;
|
|
147
149
|
}
|
|
@@ -166,6 +168,7 @@ export class RemoteImportClient {
|
|
|
166
168
|
accept: 'application/json',
|
|
167
169
|
authorization: `Bearer ${token}`,
|
|
168
170
|
'content-type': 'application/json',
|
|
171
|
+
...(this.contextId ? { 'synomem-context-id': this.contextId } : {}),
|
|
169
172
|
},
|
|
170
173
|
body: JSON.stringify(payload),
|
|
171
174
|
});
|
package/dist/import.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../src/import.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../src/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;CAC7C,CAAC;KACD,MAAM,EAAE,CAAC;AAmBZ,SAAS,OAAO,CAAC,MAAsC;IACrD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAsC;IACzE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;IACjF,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG;QACf,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KACjB,CAAC;IACX,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;QACzB,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,4CAA4C,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,oBAAoB,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,wCAAwC,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACnD,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,mDAAmD,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC;QACvE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvB,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5D,IAAI,KAAK,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,YAAY,CACpB,eAAe,EACf,aAAa,KAAK,CAAC,WAAW,wCAAwC,CACvE,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,+CAA+C,CAAC,CAAC;IAC3F,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IACE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACjB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAC3E,EACD,CAAC;YACD,MAAM,IAAI,YAAY,CACpB,eAAe,EACf,iBAAiB,OAAO,CAAC,EAAE,mCAAmC,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qGAAqG;AACrG,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,QAAgB;IAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM;QACT,MAAM,IAAI,YAAY,CAAC,gBAAgB,EAAE,6CAA6C,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC;QAC/B,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;KACvC,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IAClE,IAAI,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE;YAC9C,QAAQ,EAAE,IAAI;YACd,2BAA2B,EAAE,IAAI;SAClC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,GAAG,EAA4B,CAAC;YAC7F,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzC,MAAM,IAAI,YAAY,CACpB,kBAAkB,EAClB,mDAAmD,CACpD,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ;iBAClB,OAAO,CAAC,iDAAiD,CAAC;iBAC1D,GAAG,EAGJ,CAAC;YACH,MAAM,MAAM,GAAmB,EAAE,CAAC;YAClC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,YAAY,CACpB,mBAAmB,EACnB,eAAe,GAAG,CAAC,EAAE,yDAAyD,EAC9E,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAC1D,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,QAAQ;iBACtB,OAAO,CAAC,6CAA6C,CAAC;iBACtD,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACX,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAE,GAAgC,CAAC,YAAY,CAAC,CAAC,CAChF,CAAC;YACJ,MAAM,QAAQ,GAAG;gBACf,OAAO,EAAE,CAAU;gBACnB,iBAAiB,EAAE,MAAM,CAAC,WAAW;gBACrC,MAAM;gBACN,QAAQ;aACT,CAAC;YACF,OAAO,oBAAoB,CAAC,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;gBAAS,CAAC;YACT,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,UAAU,CAAC,kBAAkB,CAAC;YAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAWD,MAAM,OAAO,kBAAkB;IACZ,OAAO,CAAM;IACb,WAAW,CAAS;IACpB,SAAS,CAAqB;IAC9B,kBAAkB,CAA4B;IAC9C,mBAAmB,CAAe;IAEnD,YAAY,OAAkC;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrF,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC;YAC3F,MAAM,IAAI,YAAY,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;QAC5E,CAAC;QACD,IACE,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,GAAG;YAC7B,IAAI,CAAC,OAAO,CAAC,QAAQ;YACrB,IAAI,CAAC,OAAO,CAAC,QAAQ;YACrB,IAAI,CAAC,OAAO,CAAC,MAAM;YACnB,IAAI,CAAC,OAAO,CAAC,IAAI,EACjB,CAAC;YACD,MAAM,IAAI,YAAY,CAAC,gBAAgB,EAAE,0CAA0C,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,MAAoB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAgB,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,CAAC,MAAoB,EAAE,MAAc;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAe,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,MAA6B,EAAE,OAAe;QACrE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,CAAC;QAC7D,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,oCAAoC,CAAC,CAAC;QAC1F,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,iBAAiB,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,MAAM,EAAE,EACzE,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE;gBAC7C,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;gBACnC,OAAO,EAAE;oBACP,MAAM,EAAE,kBAAkB;oBAC1B,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,cAAc,EAAE,kBAAkB;oBAClC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpE;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAC9B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,YAAY,CAAC,oBAAoB,EAAE,mCAAmC,EAAE;gBAChF,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;aAC7D,CAAC,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACpD,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,oCAAoC,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI;YAChB,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,iCAAiC,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAGrC,CAAC;QACF,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM;YACrB,IAAI,CAAC,IAAI,CAAC,KAAK;gBACb,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,4CAA4C,CAAC,CAAC;YAC1F,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAChC,IAAI,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;gBACzB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,wCAAwC,CAAC,CAAC;YACtF,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,QAAgF,CAAC;QACrF,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,sCAAsC,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChE,MAAM,IAAI,GACR,QAAQ,CAAC,MAAM,KAAK,GAAG;gBACrB,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG;oBACvB,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG;wBACvB,CAAC,CAAC,mBAAmB;wBACrB,CAAC,CAAC,iBAAiB,CAAC;YAC5B,MAAM,IAAI,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,uBAAuB,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CACF"}
|