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.
Files changed (93) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +47 -68
  3. package/dist/backend.d.ts +18 -6
  4. package/dist/backend.d.ts.map +1 -1
  5. package/dist/backend.js +55 -41
  6. package/dist/backend.js.map +1 -1
  7. package/dist/cli.d.ts +20 -25
  8. package/dist/cli.d.ts.map +1 -1
  9. package/dist/cli.js +1394 -1281
  10. package/dist/cli.js.map +1 -1
  11. package/dist/configure.d.ts +12 -46
  12. package/dist/configure.d.ts.map +1 -1
  13. package/dist/configure.js +51 -192
  14. package/dist/configure.js.map +1 -1
  15. package/dist/credentials.d.ts +73 -33
  16. package/dist/credentials.d.ts.map +1 -1
  17. package/dist/credentials.js +167 -43
  18. package/dist/credentials.js.map +1 -1
  19. package/dist/discover.d.ts +10 -13
  20. package/dist/discover.d.ts.map +1 -1
  21. package/dist/discover.js +45 -30
  22. package/dist/discover.js.map +1 -1
  23. package/dist/errors.d.ts +1 -1
  24. package/dist/errors.d.ts.map +1 -1
  25. package/dist/errors.js +5 -0
  26. package/dist/errors.js.map +1 -1
  27. package/dist/import.d.ts +3 -0
  28. package/dist/import.d.ts.map +1 -1
  29. package/dist/import.js +3 -0
  30. package/dist/import.js.map +1 -1
  31. package/dist/index.d.ts +9 -7
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +6 -5
  34. package/dist/index.js.map +1 -1
  35. package/dist/mcp/index.d.ts +18 -7
  36. package/dist/mcp/index.d.ts.map +1 -1
  37. package/dist/mcp/index.js +402 -183
  38. package/dist/mcp/index.js.map +1 -1
  39. package/dist/mcp-server.d.ts +5 -1
  40. package/dist/mcp-server.d.ts.map +1 -1
  41. package/dist/mcp-server.js +27 -105
  42. package/dist/mcp-server.js.map +1 -1
  43. package/dist/oauth.d.ts +31 -33
  44. package/dist/oauth.d.ts.map +1 -1
  45. package/dist/oauth.js +178 -125
  46. package/dist/oauth.js.map +1 -1
  47. package/dist/profiles.d.ts +243 -0
  48. package/dist/profiles.d.ts.map +1 -0
  49. package/dist/profiles.js +465 -0
  50. package/dist/profiles.js.map +1 -0
  51. package/dist/project.d.ts +8 -39
  52. package/dist/project.d.ts.map +1 -1
  53. package/dist/project.js +36 -94
  54. package/dist/project.js.map +1 -1
  55. package/dist/remote.d.ts +23 -15
  56. package/dist/remote.d.ts.map +1 -1
  57. package/dist/remote.js +54 -49
  58. package/dist/remote.js.map +1 -1
  59. package/dist/resolvers.d.ts +47 -0
  60. package/dist/resolvers.d.ts.map +1 -0
  61. package/dist/resolvers.js +255 -0
  62. package/dist/resolvers.js.map +1 -0
  63. package/dist/service.d.ts +2 -0
  64. package/dist/service.d.ts.map +1 -1
  65. package/dist/skill-install.d.ts +4 -6
  66. package/dist/skill-install.d.ts.map +1 -1
  67. package/dist/skill-install.js +13 -12
  68. package/dist/skill-install.js.map +1 -1
  69. package/dist/types.d.ts +51 -0
  70. package/dist/types.d.ts.map +1 -1
  71. package/docs/cli.md +173 -196
  72. package/docs/mcp.md +69 -65
  73. package/package.json +1 -1
  74. package/skills/synomem/SKILL.md +30 -4
  75. package/skills/synomem/references/examples.md +14 -0
  76. package/src/backend.ts +66 -64
  77. package/src/cli.ts +2137 -2163
  78. package/src/configure.ts +62 -241
  79. package/src/credentials.ts +208 -84
  80. package/src/discover.ts +60 -36
  81. package/src/errors.ts +5 -0
  82. package/src/import.ts +5 -0
  83. package/src/index.ts +14 -12
  84. package/src/mcp/index.ts +473 -194
  85. package/src/mcp-server.ts +32 -114
  86. package/src/oauth.ts +229 -130
  87. package/src/profiles.ts +644 -0
  88. package/src/project.ts +42 -108
  89. package/src/remote.ts +69 -58
  90. package/src/resolvers.ts +299 -0
  91. package/src/service.ts +2 -0
  92. package/src/skill-install.ts +17 -18
  93. package/src/types.ts +46 -0
package/dist/project.js CHANGED
@@ -1,61 +1,55 @@
1
1
  /**
2
- * Per-project workspace selection.
2
+ * Per-project profile selection.
3
3
  *
4
- * The goal is that opening an agent in a repository is enough: every note,
5
- * memo, task, todo and post it writes lands in that repository's workspace,
6
- * with nobody naming the workspace again for the rest of the session.
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
- * That cannot be a command typed into a running session. The stdio MCP server
9
- * is bound to a home and an actor when the harness launches it, so a later
10
- * instruction has nothing to retarget. It also should not be one global
11
- * "current workspace": two agents open in two repositories would fight over
12
- * it, which is exactly the case this exists to serve.
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
- export const PROJECT_CONFIG_FILE = 'config.json';
35
- export const projectConfigSchema = z.object({
36
- /** The local workspace this project's records belong in. */
37
- workspace: workspaceNameSchema.optional(),
38
- /** The agent this project's records are written by, when it is always one. */
39
- actor: z.string().trim().min(1).max(63).optional(),
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 configuration at or above `from`.
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 candidate = join(directory, PROJECT_DIRECTORY, PROJECT_CONFIG_FILE);
54
- // `<home>/config.json` is the home's own config, not a project pointer, and
55
- // the home is never a project directory.
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), directory };
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
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
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
- expectedActor: ActorIdentity;
10
- credentialProvider: SynomemCredentialProvider;
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 credentialProvider;
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: {
@@ -1 +1 @@
1
- {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
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;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,GAC1B,sBAAsB,GAAG,yBAAyB,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAE3F,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CACxB,UAAU,EAAE,gBAAgB,GAC3B,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAIvD;AAuGD,wBAAgB,6BAA6B,CAC3C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,yBAAyB,CAM3B;AAED,qBAAa,oBAAqB,YAAW,cAAc;IACzD;;;OAGG;IACH,KAAK,EAAE,aAAa,CAAqC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAM;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwD;IAC/E,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAe;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAAC,CAA6B;IAExD,QAAQ,CAAC,MAAM;wBACG,gBAAgB;qBAMnB,MAAM,WAAW,gBAAgB;yBAM7B,MAAM;;yBAON,MAAM;6BAKF,MAAM;6BAMN,MAAM;gCAMH,MAAM,WAAW,MAAM,EAAE;mCAMtB,MAAM,WAAW,MAAM,EAAE;;8BAW9B,MAAM;6BAKP,gBAAgB;mCAMV,MAAM;MAKjC;IAEF,QAAQ,CAAC,MAAM;wBACG,gBAAgB;4BAMZ,MAAM,WAAW,gBAAgB;yBAMpC,MAAM;uBAKT,cAAc;yBAKX,MAAM;6BAKF,MAAM;6BAMN,MAAM;MAM3B;IAEF,QAAQ,CAAC,KAAK;wBACI,eAAe;;;;;uBAEjB,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;kBAKhC,MAAM;wBAKA,eAAe;yBAOd;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;6BAOxD;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;wCAO/C;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;yBAKlD,MAAM;MAKvB;IAEF,QAAQ,CAAC,KAAK;sBACE,cAAc;uBAEd,cAAc;0BAKX,YAAY;kBAKnB,MAAM;6BAKK;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE;wBAMvC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,OAAO,CAAA;SAAE;MAM7E;IAEF,QAAQ,CAAC,KAAK;sBACE,aAAa;uBAEb,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;kBAKhC,MAAM;sBAKF;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;yBAOxC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;MAO5D;IAEF,QAAQ,CAAC,KAAK;wBACI,eAAe;uBAEjB,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;kBAKhC,MAAM;wBAKA,eAAe;yBAOd;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;MAO5D;IAEF,QAAQ,CAAC,KAAK;wBACI,eAAe;uBAEjB,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;kBAKhC,MAAM;wBAKA,eAAe;wBAOf;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;wBAE9D;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;0BAE3D;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;wBAE5D;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;wBAE3C;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;MAE5E;IAEF;;;OAGG;IACH,QAAQ,CAAC,KAAK;wBACI,eAAe;uBAEjB,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;kBAKhC,MAAM;wBAKA,eAAe;0BAOb;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;wBAE5D;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;wBAE3C;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;yBAE3D;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;MAE5D;IAEF;;;;OAIG;IACH,QAAQ,CAAC,SAAS;6BAEP,IAAI,CAAC,aAAa,EAAE,kBAAkB,GAAG,SAAS,CAAC,GAAG;YAAE,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;0BAazE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE;MAOvE;IAEF,QAAQ,CAAC,KAAK;uBACE,aAAa;kBAKjB,MAAM;0BAKC,YAAY;MAK7B;gBAEU,OAAO,EAAE,oBAAoB;IA4BnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,KAAK,CAAC,KAAK,GAAE,cAAmB;IAOhC,MAAM;IAIA,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAQpE,OAAO;IAQD,YAAY,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAOnD,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIzC,iBAAiB,CAAC,EAAE,EAAE,MAAM;IAO5B,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,QAAQ;YAcF,OAAO;CAkFtB"}
package/dist/remote.js CHANGED
@@ -1,7 +1,15 @@
1
1
  import { actorSchema } from './schemas.js';
2
- import { asSynomemError, errorCodes, SynomemError } from './errors.js';
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
- // Not `readonly`: `init()` resolves it from the server's response when the
86
- // caller didn't assert a real identity up front (see `assertedRealActor`).
87
- actor;
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
- credentialProvider;
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
- try {
210
- this.actor = actorSchema.parse(options.expectedActor);
211
- }
212
- catch (error) {
213
- throw asSynomemError(error);
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.credentialProvider = options.credentialProvider;
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
- // `kind: 'system'` is this client's own placeholder for "no actor
237
- // asserted" — historically the CLI default for commands that run before
238
- // any identity exists (`doctor`, `agent list`, `agent create`, …). No
239
- // credential the server authenticates ever reports that kind back, so
240
- // asserting it here would make every one of those commands fail against
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.');
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
- if (!assertedRealActor)
255
- this.actor = binding.actor;
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.credentialProvider.getAccessToken(this.signal);
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
- * Harmless for an OAuth actor token (its workspace and identity are
321
- * already bound into the token itself), and required for an access
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 code = response.status === 401
361
- ? 'AUTH_REQUIRED'
362
- : response.status === 403
363
- ? 'AUTH_FORBIDDEN'
364
- : response.status === 429
365
- ? 'RATE_LIMITED'
366
- : knownErrorCode(envelope.error.code);
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 } : {}),
@@ -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"}