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/project.js
CHANGED
|
@@ -1,61 +1,55 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Per-project
|
|
2
|
+
* Per-project profile selection.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Opening an agent in a repository should be enough to act as the right
|
|
5
|
+
* identity: a `.synomem/project.json` found by walking up from the working
|
|
6
|
+
* directory may name a profile (or an MCP preset) from the user's own
|
|
7
|
+
* `profiles.json`.
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* So it is a file in the project, found by walking up from the working
|
|
15
|
-
* directory — the same shape as `.git`, `.nvmrc` or `.npmrc`, and for the same
|
|
16
|
-
* reason: the directory somebody is working in is the thing that knows which
|
|
17
|
-
* project this is.
|
|
18
|
-
*
|
|
19
|
-
* `.synomem/config.json` holds a POINTER, never a store:
|
|
20
|
-
*
|
|
21
|
-
* { "workspace": "lumina", "actor": "claude" }
|
|
22
|
-
*
|
|
23
|
-
* The database stays under the Synomem home. Putting one in the repository
|
|
24
|
-
* would mean an append-only event log inside somebody's git history, committed
|
|
25
|
-
* by accident the first time they ran `git add -A`.
|
|
9
|
+
* It may name ONLY that. A cloned repository is untrusted input, so the file
|
|
10
|
+
* cannot carry a credential, an API origin, a context id, or an actor — it can
|
|
11
|
+
* point at a profile the user already created, and nothing else. An unknown
|
|
12
|
+
* key is refused rather than ignored, so an old `{ "workspace", "actor" }`
|
|
13
|
+
* pointer fails loudly instead of silently doing nothing.
|
|
26
14
|
*/
|
|
27
15
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
28
16
|
import { dirname, join, parse, resolve } from 'node:path';
|
|
29
|
-
import { resolveHome } from './config.js';
|
|
30
17
|
import { z } from 'zod';
|
|
31
18
|
import { SynomemError } from './errors.js';
|
|
32
|
-
import { localWorkspaceHome, workspaceNameSchema } from './workspaces.js';
|
|
33
19
|
export const PROJECT_DIRECTORY = '.synomem';
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
20
|
+
/*
|
|
21
|
+
* `project.json`, never `config.json`: a Synomem home (a local store) keeps its
|
|
22
|
+
* own policy in `.synomem/config.json`, and the walk up from a project directory
|
|
23
|
+
* passes through the user's home — so a shared name would read the store's
|
|
24
|
+
* config as a project pointer and break every command run beneath it.
|
|
25
|
+
*/
|
|
26
|
+
export const PROJECT_CONFIG_FILE = 'project.json';
|
|
27
|
+
const nameSchema = z
|
|
28
|
+
.string()
|
|
29
|
+
.trim()
|
|
30
|
+
.regex(/^[a-z0-9][a-z0-9._-]{0,62}$/i, 'must be a profile or preset name');
|
|
31
|
+
export const projectConfigSchema = z
|
|
32
|
+
.object({
|
|
33
|
+
profile: nameSchema.optional(),
|
|
34
|
+
preset: nameSchema.optional(),
|
|
35
|
+
})
|
|
36
|
+
.strict()
|
|
37
|
+
.refine((value) => !(value.profile && value.preset), {
|
|
38
|
+
message: 'name a profile or a preset, not both',
|
|
40
39
|
});
|
|
41
40
|
/**
|
|
42
|
-
* The nearest project
|
|
43
|
-
*
|
|
44
|
-
* Walking up stops at the filesystem root, and never treats the Synomem home
|
|
45
|
-
* itself as a project: `~/.synomem/config.json` is a real Synomem config with a
|
|
46
|
-
* different shape, and reading it as a project pointer would silently apply a
|
|
47
|
-
* home's settings to every command run anywhere under the home directory.
|
|
41
|
+
* The nearest project file at or above `from`. The Synomem home itself is
|
|
42
|
+
* never treated as a project directory.
|
|
48
43
|
*/
|
|
49
44
|
export function findProjectSelection(from = process.cwd(), home) {
|
|
50
45
|
const stopAt = parse(resolve(from)).root;
|
|
51
46
|
let directory = resolve(from);
|
|
52
47
|
for (;;) {
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const isHome = home !== undefined && resolve(home) === join(directory, PROJECT_DIRECTORY);
|
|
48
|
+
const folder = join(directory, PROJECT_DIRECTORY);
|
|
49
|
+
const candidate = join(folder, PROJECT_CONFIG_FILE);
|
|
50
|
+
const isHome = home !== undefined && resolve(home) === folder;
|
|
57
51
|
if (!isHome && existsSync(candidate)) {
|
|
58
|
-
return { ...readProjectConfig(candidate),
|
|
52
|
+
return { ...readProjectConfig(candidate), path: candidate };
|
|
59
53
|
}
|
|
60
54
|
if (directory === stopAt)
|
|
61
55
|
return undefined;
|
|
@@ -75,7 +69,7 @@ function readProjectConfig(path) {
|
|
|
75
69
|
}
|
|
76
70
|
const parsed = projectConfigSchema.safeParse(raw);
|
|
77
71
|
if (!parsed.success) {
|
|
78
|
-
throw new SynomemError('CONFIG_INVALID', `${path} is not a valid Synomem project file: ${parsed.error.issues[0]?.message ?? 'unknown problem'}`);
|
|
72
|
+
throw new SynomemError('CONFIG_INVALID', `${path} is not a valid Synomem project file (it may name only a "profile" or a "preset"): ${parsed.error.issues[0]?.message ?? 'unknown problem'}`);
|
|
79
73
|
}
|
|
80
74
|
return parsed.data;
|
|
81
75
|
}
|
|
@@ -88,56 +82,4 @@ export function writeProjectSelection(directory, config) {
|
|
|
88
82
|
writeFileSync(path, `${JSON.stringify(parsed, null, 2)}\n`);
|
|
89
83
|
return path;
|
|
90
84
|
}
|
|
91
|
-
/**
|
|
92
|
-
* Which workspace to act in, and as whom.
|
|
93
|
-
*
|
|
94
|
-
* One resolver, used by both the CLI and the stdio MCP server, so the two
|
|
95
|
-
* cannot disagree about precedence. Order, most specific first:
|
|
96
|
-
*
|
|
97
|
-
* 1. `--workspace` / `--actor` — said on this invocation
|
|
98
|
-
* 2. `SYNOMEM_WORKSPACE` / `SYNOMEM_ACTOR_ID` — set for this process
|
|
99
|
-
* 3. `.synomem/config.json` in the project, found by walking up from the
|
|
100
|
-
* working directory
|
|
101
|
-
* 4. the root home, which is the default workspace
|
|
102
|
-
*
|
|
103
|
-
* The project file is third rather than first because a flag someone typed
|
|
104
|
-
* should always beat a file they may have forgotten is there.
|
|
105
|
-
*/
|
|
106
|
-
export function resolveWorkspaceSelection(input) {
|
|
107
|
-
const env = input.env ?? process.env;
|
|
108
|
-
const root = resolveHome(input.explicitRoot);
|
|
109
|
-
if (input.flag) {
|
|
110
|
-
return {
|
|
111
|
-
home: localWorkspaceHome(input.flag, input.explicitRoot),
|
|
112
|
-
workspace: input.flag,
|
|
113
|
-
...(input.actorFlag ? { actor: input.actorFlag } : {}),
|
|
114
|
-
source: 'the --workspace option',
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
const fromEnv = env.SYNOMEM_WORKSPACE?.trim();
|
|
118
|
-
if (fromEnv) {
|
|
119
|
-
return {
|
|
120
|
-
home: localWorkspaceHome(fromEnv, input.explicitRoot),
|
|
121
|
-
workspace: fromEnv,
|
|
122
|
-
...((input.actorFlag ?? env.SYNOMEM_ACTOR_ID?.trim())
|
|
123
|
-
? { actor: input.actorFlag ?? env.SYNOMEM_ACTOR_ID?.trim() }
|
|
124
|
-
: {}),
|
|
125
|
-
source: 'SYNOMEM_WORKSPACE',
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
const project = findProjectSelection(input.cwd ?? process.cwd(), root);
|
|
129
|
-
if (project?.workspace) {
|
|
130
|
-
return {
|
|
131
|
-
home: localWorkspaceHome(project.workspace, input.explicitRoot),
|
|
132
|
-
workspace: project.workspace,
|
|
133
|
-
...((input.actorFlag ?? project.actor) ? { actor: input.actorFlag ?? project.actor } : {}),
|
|
134
|
-
source: join(project.directory, PROJECT_DIRECTORY, PROJECT_CONFIG_FILE),
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
return {
|
|
138
|
-
home: root,
|
|
139
|
-
...((input.actorFlag ?? project?.actor) ? { actor: input.actorFlag ?? project?.actor } : {}),
|
|
140
|
-
source: 'the default workspace',
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
85
|
//# sourceMappingURL=project.js.map
|
package/dist/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
|
package/dist/remote.d.ts
CHANGED
|
@@ -3,38 +3,46 @@ import type { ActorIdentity, ChangesInput, BindRuntimeInput, CreateAgentInput, C
|
|
|
3
3
|
export interface SynomemCredentialProvider {
|
|
4
4
|
getAccessToken(signal?: AbortSignal): Promise<string | undefined>;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Where a remote service gets its bearer: an OAuth access token or a `syn_` access key
|
|
8
|
+
* (identity contract §6.1). It may refresh; it must never be logged.
|
|
9
|
+
*/
|
|
10
|
+
export interface RemoteCredentialSource {
|
|
11
|
+
bearer(): Promise<string>;
|
|
12
|
+
}
|
|
13
|
+
export type RemoteCredential = RemoteCredentialSource | SynomemCredentialProvider | (() => Promise<string | undefined>);
|
|
6
14
|
export interface RemoteSynomemOptions {
|
|
7
15
|
baseUrl: string;
|
|
16
|
+
/** The workspace in the route. Must equal the selected context's workspace. */
|
|
8
17
|
workspaceId: string;
|
|
9
|
-
|
|
10
|
-
|
|
18
|
+
/**
|
|
19
|
+
* The stable target this service acts as. Sent as `Synomem-Context-Id` on every request.
|
|
20
|
+
* Omit only for a fixed credential, whose single pinned context the API selects itself.
|
|
21
|
+
*/
|
|
22
|
+
contextId?: string;
|
|
23
|
+
credential: RemoteCredential;
|
|
11
24
|
fetch?: typeof fetch;
|
|
12
25
|
signal?: AbortSignal;
|
|
13
26
|
timeoutMs?: number;
|
|
14
27
|
maximumResponseBytes?: number;
|
|
15
|
-
/**
|
|
16
|
-
* False when `expectedActor` is only a historical CLI fallback guess (a
|
|
17
|
-
* caller named no real identity via `--actor`, `SYNOMEM_ACTOR_ID`, or a
|
|
18
|
-
* project binding), not an identity the caller actually asserted. Defaults
|
|
19
|
-
* to true, so every existing caller keeps its current strict behavior.
|
|
20
|
-
* `kind: 'system'` already bypasses the match unconditionally (its own
|
|
21
|
-
* historical bootstrap placeholder); this is the same bypass for a
|
|
22
|
-
* fallback of any other kind, without pretending that fallback IS a real
|
|
23
|
-
* identity.
|
|
24
|
-
*/
|
|
25
|
-
assertActor?: boolean;
|
|
26
28
|
}
|
|
29
|
+
/** Normalizes any accepted credential shape into one bearer lookup. */
|
|
30
|
+
export declare function bearerFrom(credential: RemoteCredential): (signal?: AbortSignal) => Promise<string | undefined>;
|
|
27
31
|
export declare function environmentCredentialProvider(env?: NodeJS.ProcessEnv): SynomemCredentialProvider;
|
|
28
32
|
export declare class RemoteSynomemService implements SynomemService {
|
|
33
|
+
/**
|
|
34
|
+
* The actor this service acts as, learned from the server during `init()` — never asserted
|
|
35
|
+
* by the caller. Before `init()` it is a placeholder that no request uses.
|
|
36
|
+
*/
|
|
29
37
|
actor: ActorIdentity;
|
|
38
|
+
readonly contextId?: string;
|
|
30
39
|
private readonly baseUrl;
|
|
31
40
|
private readonly workspaceId;
|
|
32
|
-
private readonly
|
|
41
|
+
private readonly bearer;
|
|
33
42
|
private readonly fetchImplementation;
|
|
34
43
|
private readonly signal?;
|
|
35
44
|
private readonly timeoutMs;
|
|
36
45
|
private readonly maximumResponseBytes;
|
|
37
|
-
private readonly assertActor;
|
|
38
46
|
private initialized;
|
|
39
47
|
private cachedCapabilities?;
|
|
40
48
|
readonly agents: {
|
package/dist/remote.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnG,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,yBAAyB;IACxC,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
|
package/dist/remote.js
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { actorSchema } from './schemas.js';
|
|
2
|
-
import {
|
|
2
|
+
import { errorCodes, SynomemError } from './errors.js';
|
|
3
3
|
const defaultMaximumResponseBytes = 1024 * 1024;
|
|
4
4
|
const defaultTimeoutMs = 15_000;
|
|
5
|
+
/** Normalizes any accepted credential shape into one bearer lookup. */
|
|
6
|
+
export function bearerFrom(credential) {
|
|
7
|
+
if (typeof credential === 'function')
|
|
8
|
+
return () => credential();
|
|
9
|
+
if ('bearer' in credential)
|
|
10
|
+
return () => credential.bearer();
|
|
11
|
+
return (signal) => credential.getAccessToken(signal);
|
|
12
|
+
}
|
|
5
13
|
function remoteBaseUrl(value) {
|
|
6
14
|
let parsed;
|
|
7
15
|
try {
|
|
@@ -41,6 +49,13 @@ function queryString(input) {
|
|
|
41
49
|
const encoded = parameters.toString();
|
|
42
50
|
return encoded ? `?${encoded}` : '';
|
|
43
51
|
}
|
|
52
|
+
/** Codes a caller must be able to branch on, never collapsed into AUTH_* by status. */
|
|
53
|
+
const contextCodes = new Set([
|
|
54
|
+
'CONTEXT_REQUIRED',
|
|
55
|
+
'CONTEXT_FORBIDDEN',
|
|
56
|
+
'CONTEXT_AMBIGUOUS',
|
|
57
|
+
'REAUTHORIZATION_REQUIRED',
|
|
58
|
+
]);
|
|
44
59
|
function knownErrorCode(value) {
|
|
45
60
|
return errorCodes.some((code) => code === value)
|
|
46
61
|
? value
|
|
@@ -82,17 +97,19 @@ export function environmentCredentialProvider(env = process.env) {
|
|
|
82
97
|
};
|
|
83
98
|
}
|
|
84
99
|
export class RemoteSynomemService {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
100
|
+
/**
|
|
101
|
+
* The actor this service acts as, learned from the server during `init()` — never asserted
|
|
102
|
+
* by the caller. Before `init()` it is a placeholder that no request uses.
|
|
103
|
+
*/
|
|
104
|
+
actor = { kind: 'system', id: 'unbound' };
|
|
105
|
+
contextId;
|
|
88
106
|
baseUrl;
|
|
89
107
|
workspaceId;
|
|
90
|
-
|
|
108
|
+
bearer;
|
|
91
109
|
fetchImplementation;
|
|
92
110
|
signal;
|
|
93
111
|
timeoutMs;
|
|
94
112
|
maximumResponseBytes;
|
|
95
|
-
assertActor;
|
|
96
113
|
initialized = false;
|
|
97
114
|
cachedCapabilities;
|
|
98
115
|
agents = {
|
|
@@ -206,14 +223,13 @@ export class RemoteSynomemService {
|
|
|
206
223
|
throw new SynomemError('CONFIG_INVALID', 'Remote Synomem workspaceId is required.');
|
|
207
224
|
}
|
|
208
225
|
this.workspaceId = options.workspaceId;
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
226
|
+
if (options.contextId !== undefined) {
|
|
227
|
+
if (!/^[A-Za-z0-9_-]{1,100}$/.test(options.contextId)) {
|
|
228
|
+
throw new SynomemError('CONFIG_INVALID', 'Remote Synomem contextId is malformed.');
|
|
229
|
+
}
|
|
230
|
+
this.contextId = options.contextId;
|
|
214
231
|
}
|
|
215
|
-
this.
|
|
216
|
-
this.assertActor = options.assertActor ?? true;
|
|
232
|
+
this.bearer = bearerFrom(options.credential);
|
|
217
233
|
this.fetchImplementation = options.fetch ?? fetch;
|
|
218
234
|
this.signal = options.signal;
|
|
219
235
|
this.timeoutMs = options.timeoutMs ?? defaultTimeoutMs;
|
|
@@ -233,26 +249,18 @@ export class RemoteSynomemService {
|
|
|
233
249
|
throw new SynomemError('REMOTE_PROTOCOL', 'The configured server is not a remote backend.');
|
|
234
250
|
}
|
|
235
251
|
const binding = this.cachedCapabilities.binding;
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
// --actor, SYNOMEM_ACTOR_ID, or project binding) that should adopt
|
|
246
|
-
// whatever the credential actually names rather than fail outright.
|
|
247
|
-
// Either way, only a caller that named a real identity gets it enforced.
|
|
248
|
-
const assertedRealActor = this.assertActor && this.actor.kind !== 'system';
|
|
249
|
-
if (binding.workspaceId !== this.workspaceId ||
|
|
250
|
-
(assertedRealActor &&
|
|
251
|
-
(binding.actor.kind !== this.actor.kind || binding.actor.id !== this.actor.id))) {
|
|
252
|
-
throw new SynomemError('AUTH_FORBIDDEN', 'The authenticated Synomem actor does not match the configured actor.');
|
|
252
|
+
if (binding.workspaceId !== this.workspaceId) {
|
|
253
|
+
throw new SynomemError('CONTEXT_FORBIDDEN', 'The selected Synomem context does not belong to the workspace this service addresses.');
|
|
254
|
+
}
|
|
255
|
+
if (this.contextId && binding.contextId && binding.contextId !== this.contextId) {
|
|
256
|
+
throw new SynomemError('CONTEXT_FORBIDDEN', 'The server bound a different context.');
|
|
257
|
+
}
|
|
258
|
+
const actor = actorSchema.safeParse(binding.actor);
|
|
259
|
+
if (!actor.success) {
|
|
260
|
+
throw new SynomemError('REMOTE_PROTOCOL', 'The server reported an invalid bound actor.');
|
|
253
261
|
}
|
|
254
|
-
|
|
255
|
-
|
|
262
|
+
// The server decides who this is; the client only learns it (plan §5 rule 7).
|
|
263
|
+
this.actor = actor.data;
|
|
256
264
|
this.initialized = true;
|
|
257
265
|
}
|
|
258
266
|
async close() {
|
|
@@ -296,7 +304,7 @@ export class RemoteSynomemService {
|
|
|
296
304
|
return this.request(method, path, body, idempotencyKey);
|
|
297
305
|
}
|
|
298
306
|
async request(method, path, body, idempotencyKey) {
|
|
299
|
-
const accessToken = await this.
|
|
307
|
+
const accessToken = await this.bearer(this.signal);
|
|
300
308
|
if (!accessToken) {
|
|
301
309
|
throw new SynomemError('AUTH_REQUIRED', 'Remote Synomem authentication is required.');
|
|
302
310
|
}
|
|
@@ -316,15 +324,9 @@ export class RemoteSynomemService {
|
|
|
316
324
|
headers: {
|
|
317
325
|
accept: 'application/json',
|
|
318
326
|
authorization: `Bearer ${accessToken}`,
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
* key: an access key authenticates the member who owns it, not a
|
|
323
|
-
* machine or a workspace, so which workspace and which agent are
|
|
324
|
-
* meant have to be named on every request.
|
|
325
|
-
*/
|
|
326
|
-
'synomem-workspace-id': this.workspaceId,
|
|
327
|
-
...(this.actor.kind === 'agent' ? { 'synomem-agent-id': this.actor.id } : {}),
|
|
327
|
+
// The ONLY selector (identity contract §3). The server authorizes it against the
|
|
328
|
+
// credential's grant on every request; knowing an id grants nothing.
|
|
329
|
+
...(this.contextId ? { 'synomem-context-id': this.contextId } : {}),
|
|
328
330
|
...(body ? { 'content-type': 'application/json' } : {}),
|
|
329
331
|
...(idempotencyKey ? { 'idempotency-key': idempotencyKey } : {}),
|
|
330
332
|
},
|
|
@@ -357,13 +359,16 @@ export class RemoteSynomemService {
|
|
|
357
359
|
if (envelope.ok !== false || !envelope.error || typeof envelope.error.message !== 'string') {
|
|
358
360
|
throw new SynomemError('REMOTE_PROTOCOL', 'Remote Synomem returned an invalid error.');
|
|
359
361
|
}
|
|
360
|
-
const
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
362
|
+
const reported = knownErrorCode(envelope.error.code);
|
|
363
|
+
const code = contextCodes.has(reported)
|
|
364
|
+
? reported
|
|
365
|
+
: response.status === 401
|
|
366
|
+
? 'AUTH_REQUIRED'
|
|
367
|
+
: response.status === 403
|
|
368
|
+
? 'AUTH_FORBIDDEN'
|
|
369
|
+
: response.status === 429
|
|
370
|
+
? 'RATE_LIMITED'
|
|
371
|
+
: knownErrorCode(envelope.error.code);
|
|
367
372
|
throw new SynomemError(code, envelope.error.message, {
|
|
368
373
|
...(envelope.error.details ?? {}),
|
|
369
374
|
...(envelope.error.requestId ? { requestId: envelope.error.requestId } : {}),
|
package/dist/remote.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { RemoteCredential, RemoteCredentialSource } from './remote.js';
|
|
2
|
+
import type { SynomemService } from './service.js';
|
|
3
|
+
import type { ActorIdentity, ContextListing, EffectiveContext, IdentityDescription, SynomemClientOptions } from './types.js';
|
|
4
|
+
export type { RemoteCredentialSource } from './remote.js';
|
|
5
|
+
export interface ResolvedContext {
|
|
6
|
+
service: SynomemService;
|
|
7
|
+
context: EffectiveContext;
|
|
8
|
+
}
|
|
9
|
+
export interface ContextResolver {
|
|
10
|
+
/** `fixed`: omitting a context selects the one pinned target. */
|
|
11
|
+
mode(): 'fixed' | 'explicit' | 'unknown';
|
|
12
|
+
/** Resolve one operation's binding. `undefined` or `'default'` selects the fixed context. */
|
|
13
|
+
resolve(contextId?: string): Promise<ResolvedContext>;
|
|
14
|
+
list(): Promise<ContextListing>;
|
|
15
|
+
describe?(): Promise<IdentityDescription | undefined>;
|
|
16
|
+
close?(): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
/** The selector a model may pass to mean "the fixed context", e.g. in resource URIs. */
|
|
19
|
+
export declare const DEFAULT_CONTEXT = "default";
|
|
20
|
+
/**
|
|
21
|
+
* Stable local context id: derived from the store's persistent workspace id and the
|
|
22
|
+
* canonical actor — never from a display name — so it survives renames and moving the
|
|
23
|
+
* store, and an unrelated store with a same-named agent gets a different id.
|
|
24
|
+
*/
|
|
25
|
+
export declare function localContextId(storeWorkspaceId: string, actor: ActorIdentity): string;
|
|
26
|
+
/**
|
|
27
|
+
* A remote (hosted API) resolver over one credential.
|
|
28
|
+
*
|
|
29
|
+
* `pinnedContextId` makes a fixed profile: only that target, whatever else the grant
|
|
30
|
+
* allows. `allowedContextIds` makes an explicit preset: only those targets may be
|
|
31
|
+
* selected. Either way the API re-authorizes every request; these only narrow.
|
|
32
|
+
*/
|
|
33
|
+
export declare function createRemoteResolver(options: {
|
|
34
|
+
baseUrl: string;
|
|
35
|
+
credential: RemoteCredentialSource | RemoteCredential;
|
|
36
|
+
pinnedContextId?: string;
|
|
37
|
+
allowedContextIds?: string[];
|
|
38
|
+
fetch?: typeof fetch;
|
|
39
|
+
}): ContextResolver;
|
|
40
|
+
/**
|
|
41
|
+
* A local (SQLite) resolver: fixed mode, one store, one canonical actor.
|
|
42
|
+
*/
|
|
43
|
+
export declare function createLocalResolver(options: {
|
|
44
|
+
home: string;
|
|
45
|
+
actor: ActorIdentity;
|
|
46
|
+
} & Omit<SynomemClientOptions, 'home' | 'actor'>): ContextResolver;
|
|
47
|
+
//# sourceMappingURL=resolvers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../src/resolvers.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAEd,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,IAAI,IAAI,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IACzC,6FAA6F;IAC7F,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACtD,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAChC,QAAQ,CAAC,IAAI,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,wFAAwF;AACxF,eAAO,MAAM,eAAe,YAAY,CAAC;AAyBzC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAKrF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,sBAAsB,GAAG,gBAAgB,CAAC;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,GAAG,eAAe,CAiIlB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,GAC7F,eAAe,CAoEjB"}
|