synomem 0.8.0 → 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 -33
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1391 -1321
- 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 +8 -35
- package/dist/discover.d.ts.map +1 -1
- package/dist/discover.js +42 -38
- 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 +4 -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 +10 -8
- 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 -18
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +402 -231
- 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 +24 -17
- package/dist/remote.d.ts.map +1 -1
- package/dist/remote.js +54 -52
- 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 +3 -2
- 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 +45 -15
- 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 +29 -26
- package/skills/synomem/references/examples.md +13 -11
- package/src/backend.ts +66 -64
- package/src/cli.ts +2131 -2222
- package/src/configure.ts +62 -241
- package/src/credentials.ts +208 -84
- package/src/discover.ts +53 -59
- package/src/errors.ts +4 -0
- package/src/import.ts +5 -0
- package/src/index.ts +15 -19
- package/src/mcp/index.ts +473 -277
- 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 -63
- package/src/resolvers.ts +299 -0
- package/src/service.ts +2 -7
- package/src/skill-install.ts +17 -18
- package/src/types.ts +40 -15
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
|
@@ -1,40 +1,48 @@
|
|
|
1
1
|
import type { SynomemService, SynomemServiceCapabilities, SynomemServiceInfo } from './service.js';
|
|
2
|
-
import type { ActorIdentity,
|
|
2
|
+
import type { ActorIdentity, ChangesInput, BindRuntimeInput, CreateAgentInput, CreatePostInput, UpdatePostInput, CreateNoteInput, CreateTaskInput, GiveKudosInput, ItemListInput, KudosListInput, ReviseNoteInput, SendMemoInput, UpdateAgentInput, UpdateTaskInput, UpdateTodoInput, CreateTodoInput, CreateTopicInput, UpdateTopicInput, TopicListInput } from './types.js';
|
|
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: {
|
|
@@ -209,7 +217,6 @@ export declare class RemoteSynomemService implements SynomemService {
|
|
|
209
217
|
rebuild(): Promise<import("./service.js").ProjectionRebuildResult>;
|
|
210
218
|
capabilities(): Promise<SynomemServiceCapabilities>;
|
|
211
219
|
info(): Promise<SynomemServiceInfo>;
|
|
212
|
-
workspaces(): Promise<WorkspaceIdentity>;
|
|
213
220
|
getCanonicalEvent(id: string): Promise<import("./types.js").SynomemEvent | undefined>;
|
|
214
221
|
private taskTransition;
|
|
215
222
|
private todoTransition;
|
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,
|
|
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
|
-
// a remote backend no matter who is actually calling — exactly the
|
|
242
|
-
// bootstrap deadlock the server-side half of this already fixed.
|
|
243
|
-
// `assertActor: false` is the same bypass for a fallback of any other
|
|
244
|
-
// kind: a caller whose "actor" is only a historical guess (never a real
|
|
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.');
|
|
253
257
|
}
|
|
254
|
-
|
|
255
|
-
|
|
258
|
+
const actor = actorSchema.safeParse(binding.actor);
|
|
259
|
+
if (!actor.success) {
|
|
260
|
+
throw new SynomemError('REMOTE_PROTOCOL', 'The server reported an invalid bound actor.');
|
|
261
|
+
}
|
|
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() {
|
|
@@ -278,9 +286,6 @@ export class RemoteSynomemService {
|
|
|
278
286
|
async info() {
|
|
279
287
|
return { backend: 'remote', baseUrl: this.baseUrl.href, workspaceId: this.workspaceId };
|
|
280
288
|
}
|
|
281
|
-
async workspaces() {
|
|
282
|
-
return this.request('GET', '../../identity');
|
|
283
|
-
}
|
|
284
289
|
getCanonicalEvent(id) {
|
|
285
290
|
return this.request('GET', `events/${encodeURIComponent(id)}`);
|
|
286
291
|
}
|
|
@@ -299,7 +304,7 @@ export class RemoteSynomemService {
|
|
|
299
304
|
return this.request(method, path, body, idempotencyKey);
|
|
300
305
|
}
|
|
301
306
|
async request(method, path, body, idempotencyKey) {
|
|
302
|
-
const accessToken = await this.
|
|
307
|
+
const accessToken = await this.bearer(this.signal);
|
|
303
308
|
if (!accessToken) {
|
|
304
309
|
throw new SynomemError('AUTH_REQUIRED', 'Remote Synomem authentication is required.');
|
|
305
310
|
}
|
|
@@ -319,15 +324,9 @@ export class RemoteSynomemService {
|
|
|
319
324
|
headers: {
|
|
320
325
|
accept: 'application/json',
|
|
321
326
|
authorization: `Bearer ${accessToken}`,
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
* key: an access key authenticates the member who owns it, not a
|
|
326
|
-
* machine or a workspace, so which workspace and which agent are
|
|
327
|
-
* meant have to be named on every request.
|
|
328
|
-
*/
|
|
329
|
-
'synomem-workspace-id': this.workspaceId,
|
|
330
|
-
...(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 } : {}),
|
|
331
330
|
...(body ? { 'content-type': 'application/json' } : {}),
|
|
332
331
|
...(idempotencyKey ? { 'idempotency-key': idempotencyKey } : {}),
|
|
333
332
|
},
|
|
@@ -360,13 +359,16 @@ export class RemoteSynomemService {
|
|
|
360
359
|
if (envelope.ok !== false || !envelope.error || typeof envelope.error.message !== 'string') {
|
|
361
360
|
throw new SynomemError('REMOTE_PROTOCOL', 'Remote Synomem returned an invalid error.');
|
|
362
361
|
}
|
|
363
|
-
const
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
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);
|
|
370
372
|
throw new SynomemError(code, envelope.error.message, {
|
|
371
373
|
...(envelope.error.details ?? {}),
|
|
372
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"}
|