@jitera/connect 2.1.2 → 2.2.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jitera-connect",
3
- "version": "2.1.2",
3
+ "version": "2.2.0",
4
4
  "description": "Connect this workspace to a Jitera project: read documentation and source, and keep project memory up to date.",
5
5
  "author": {
6
6
  "name": "Jitera"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jitera-connect",
3
- "version": "2.1.2",
3
+ "version": "2.2.0",
4
4
  "description": "Connect this workspace to a Jitera project: read documentation and source, and keep project memory up to date.",
5
5
  "skills": "./skills/"
6
6
  }
package/README.md CHANGED
@@ -88,6 +88,33 @@ you select, so a selection narrows the noise without hiding shared facts.
88
88
  it needs the repo bound to a project first, because that is what says which
89
89
  agents exist. run `init` if it is not.
90
90
 
91
+ ## replacing your key
92
+
93
+ ```
94
+ npx @jitera/connect new-key
95
+ ```
96
+
97
+ use this when the key you have is read-only and you need to write, or when you
98
+ just want a fresh one. it reuses the sign-in `login` already stored, so there is
99
+ no browser round trip: it mints a new account-wide key and points your
100
+ assistants at it.
101
+
102
+ new keys are read + write by default, which is what lets an assistant save
103
+ memory and write specs. pass `--access=read` if you want a read-only one.
104
+
105
+ ```
106
+ npx @jitera/connect new-key --access=read # read-only instead
107
+ npx @jitera/connect new-key --name=<name> # how it is labelled in the web app
108
+ npx @jitera/connect new-key --no-install # print the key, change no config
109
+ ```
110
+
111
+ restart your assistant afterwards so it picks the key up. the old key keeps
112
+ working until you revoke it in the web app — creating a new one does not retire
113
+ the old one.
114
+
115
+ if there is no stored sign-in it says so and points at `login`, which is the
116
+ command that does the browser step.
117
+
91
118
  ## what applies where
92
119
 
93
120
  the api key is global: one per user, per machine, stored by `login --install`.
@@ -9,6 +9,9 @@ else if (subcommand === "init") {
9
9
  else if (subcommand === "set-agent") {
10
10
  await import("./set-agent.js");
11
11
  }
12
+ else if (subcommand === "new-key") {
13
+ await import("./new-key.js");
14
+ }
12
15
  else if (subcommand === "statusline") {
13
16
  await import("./statusline.js");
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/bin/connect.ts"],"names":[],"mappings":";AACA,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE3C,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;IAC3B,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7B,CAAC;KAAM,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;IACjC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;AAC5B,CAAC;KAAM,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;IACtC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACjC,CAAC;KAAM,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;IACvC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAClC,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/bin/connect.ts"],"names":[],"mappings":";AACA,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE3C,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;IAC3B,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7B,CAAC;KAAM,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;IACjC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;AAC5B,CAAC;KAAM,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;IACtC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACjC,CAAC;KAAM,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;IACpC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/B,CAAC;KAAM,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;IACvC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAClC,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=new-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-key.d.ts","sourceRoot":"","sources":["../../src/bin/new-key.ts"],"names":[],"mappings":""}
@@ -0,0 +1,183 @@
1
+ #!/usr/bin/env node
2
+ import { homedir } from "node:os";
3
+ import { dirname, join } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { DiscoveryError, discoverDeployment } from "../discovery.js";
6
+ import { UnknownEnvironmentError } from "../environments.js";
7
+ import { loadCliSession, transportFor } from "../cli-session.js";
8
+ import { DeviceFlowError, refreshAccessToken } from "../device-flow.js";
9
+ import { GraphqlError, createUserApiKey } from "../graphql.js";
10
+ import { createTheme, heading } from "../theme.js";
11
+ import { installClaudeCodePlugin } from "../install/claude-code.js";
12
+ import { installStatusLine } from "../install/statusline.js";
13
+ import { installSkills } from "../install/skills.js";
14
+ import { DEFAULT_BRAND } from "../install/render.js";
15
+ import { codex } from "../adapters/codex.js";
16
+ import { cursor } from "../adapters/cursor.js";
17
+ import { endWith, runCommand } from "../exit.js";
18
+ const PACKAGE_ROOT = join(dirname(fileURLToPath(import.meta.url)), "..", "..");
19
+ const USAGE = [
20
+ "usage: npx @jitera/connect new-key [--access=read|read_write] [options]",
21
+ "",
22
+ "Creates a fresh account-wide key and configures your assistants with it.",
23
+ "Use it when the key you have is read-only, or you simply want a new one.",
24
+ "",
25
+ "Signing in again is not required: this reuses the session login stored.",
26
+ "",
27
+ " --access=read_write read + write, the default; --access=read for read-only",
28
+ " --name=<name> how the key is labelled in the web app",
29
+ " --env=studio-06 target a pilot; omit for production",
30
+ " --no-install print the key without touching any configuration",
31
+ " --json print the result as json",
32
+ ].join("\n");
33
+ function parseArgs(argv) {
34
+ const args = {
35
+ access: "read_write",
36
+ keyName: "Jitera connect",
37
+ json: false,
38
+ install: true,
39
+ help: false,
40
+ };
41
+ for (const arg of argv) {
42
+ if (arg === "new-key")
43
+ continue;
44
+ else if (arg.startsWith("--env="))
45
+ args.environment = arg.slice("--env=".length);
46
+ else if (arg.startsWith("--access=")) {
47
+ const value = arg.slice("--access=".length);
48
+ if (value === "read" || value === "read_write")
49
+ args.access = value;
50
+ else
51
+ args.badAccess = value;
52
+ }
53
+ else if (arg.startsWith("--name="))
54
+ args.keyName = arg.slice("--name=".length);
55
+ else if (arg === "--no-install")
56
+ args.install = false;
57
+ else if (arg === "--json")
58
+ args.json = true;
59
+ else if (arg === "--help" || arg === "-h")
60
+ args.help = true;
61
+ else
62
+ args.unknown = arg;
63
+ }
64
+ return args;
65
+ }
66
+ const theme = createTheme({ env: process.env, isTty: Boolean(process.stdout.isTTY) });
67
+ function fail(message, code = 1) {
68
+ process.stderr.write(`\n ${theme.err("error")} ${message}\n`);
69
+ endWith(code);
70
+ }
71
+ await runCommand(async () => {
72
+ const args = parseArgs(process.argv.slice(2));
73
+ if (args.help) {
74
+ process.stdout.write(`${USAGE}\n`);
75
+ return;
76
+ }
77
+ if (args.unknown) {
78
+ process.stderr.write(`error: unrecognised argument "${args.unknown}"\n${USAGE}\n`);
79
+ endWith(2);
80
+ }
81
+ if (args.badAccess !== undefined) {
82
+ process.stderr.write(`error: unknown access "${args.badAccess}". Use --access=read or --access=read_write.\n`);
83
+ endWith(2);
84
+ }
85
+ const session = loadCliSession();
86
+ if (!session) {
87
+ fail("no stored sign-in, so there is no account to create a key for. Run " +
88
+ `${theme.accent("npx @jitera/connect login")} first.`);
89
+ }
90
+ // The deployment this key is for is the one the session was created against.
91
+ // Defaulting to production instead would quietly move a pilot user's
92
+ // assistants to a different deployment as a side effect of getting a key.
93
+ const environment = args.environment ?? session.environment;
94
+ let brand = DEFAULT_BRAND;
95
+ let mcpUrl = "";
96
+ try {
97
+ const deployment = await discoverDeployment({
98
+ environment,
99
+ studioUrl: process.env["JITERA_STUDIO_URL"],
100
+ });
101
+ brand = deployment.brand;
102
+ mcpUrl = deployment.mcpUrl;
103
+ }
104
+ catch (error) {
105
+ if (error instanceof UnknownEnvironmentError)
106
+ fail(error.message, 2);
107
+ if (!(error instanceof DiscoveryError))
108
+ throw error;
109
+ // Only the assistant configuration needs the endpoint. Creating the key
110
+ // does not, so an unreachable studio should not stop the useful half.
111
+ if (args.install)
112
+ fail(error.message);
113
+ }
114
+ let created;
115
+ try {
116
+ const transport = await transportFor(session, refreshAccessToken);
117
+ created = await createUserApiKey({ name: args.keyName, mcpAccess: args.access }, transport);
118
+ }
119
+ catch (error) {
120
+ if (error instanceof DeviceFlowError) {
121
+ fail(`${error.message} Run ${theme.accent("npx @jitera/connect login")} to sign in again.`);
122
+ }
123
+ if (error instanceof GraphqlError)
124
+ fail(error.message);
125
+ throw error;
126
+ }
127
+ if (args.json) {
128
+ process.stdout.write(`${JSON.stringify({
129
+ apiKey: created.rawKey,
130
+ maskedKey: created.maskedKey,
131
+ scope: "user",
132
+ mcpAccess: args.access,
133
+ }, undefined, 2)}\n`);
134
+ }
135
+ if (!args.json)
136
+ process.stdout.write(heading(theme, brand, "new key"));
137
+ const access = args.access === "read" ? "read-only" : "read + write";
138
+ if (args.install) {
139
+ const claude = installClaudeCodePlugin({
140
+ apiKey: created.rawKey,
141
+ environment: environment ?? "studio",
142
+ });
143
+ if (!args.json) {
144
+ process.stdout.write(claude.installed
145
+ ? ` ${theme.ok("✓")} ${theme.bold("Claude Code")} ${theme.dim("now uses the new key")}\n`
146
+ : ` ${theme.dim("–")} ${theme.bold("Claude Code")} ${theme.dim(`skipped (${claude.reason})`)}\n`);
147
+ if (claude.installed) {
148
+ const status = installStatusLine({ home: homedir() });
149
+ if (status.installed) {
150
+ process.stdout.write(` ${theme.ok("✓")} ${theme.bold("Status line")} ${theme.dim("connection state shows in Claude Code")}\n`);
151
+ }
152
+ }
153
+ }
154
+ const context = {
155
+ scope: "user",
156
+ home: homedir(),
157
+ cwd: process.cwd(),
158
+ mcpUrl,
159
+ apiKey: created.rawKey,
160
+ };
161
+ const local = [cursor, codex].filter((adapter) => adapter.detect(context));
162
+ for (const adapter of local) {
163
+ const result = adapter.install(context);
164
+ if (!args.json) {
165
+ process.stdout.write(` ${theme.ok("✓")} ${theme.bold(adapter.label)} ${theme.dim(result.path)}\n`);
166
+ }
167
+ }
168
+ if (local.length) {
169
+ const targetDirs = [...new Set(local.flatMap((adapter) => adapter.skillsDirs(context)))];
170
+ installSkills({ packageRoot: PACKAGE_ROOT, targetDirs, values: { BRAND: brand } });
171
+ }
172
+ }
173
+ if (args.json)
174
+ return;
175
+ process.stdout.write(`\n ${theme.ok("✓")} ${theme.dim(`Created an account-wide ${access} key`)} ${theme.bold(created.maskedKey)}\n`);
176
+ if (!args.install) {
177
+ // Shown once and never again, so it has to be printed in full here.
178
+ process.stdout.write(`\n ${created.rawKey}\n`);
179
+ }
180
+ process.stdout.write(`\n ${theme.dim("Restart your assistant to pick it up. The old key keeps working until you")}\n` +
181
+ ` ${theme.dim("revoke it in the web app.")}\n`);
182
+ });
183
+ //# sourceMappingURL=new-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-key.js","sourceRoot":"","sources":["../../src/bin/new-key.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"device-flow.d.ts","sourceRoot":"","sources":["../src/device-flow.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,iDAAiD,CAAC;AAChF,eAAO,MAAM,SAAS,gDAAgD,CAAC;AAKvE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,SAAS,GACT,WAAW,CAAC;AAEhB,qBAAa,eAAgB,SAAQ,KAAK;IACxC,SAAkB,IAAI,qBAAqB;IAC3C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC,YAAY,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAGrD;CACF;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACnC;AA6BD,wBAAsB,0BAA0B,CAAC,EAC/C,aAAa,EACb,QAAoB,EACpB,SAAiB,GAClB,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgCpD;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD;AAcD,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IACzD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAsB,kBAAkB,CAAC,EACvC,aAAa,EACb,YAAY,EACZ,QAAoB,EACpB,SAAiB,GAClB,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqBpC;AAED,MAAM,WAAW,WAAY,SAAQ,mBAAmB;IACtD,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAID,wBAAsB,kBAAkB,CAAC,EACvC,aAAa,EACb,aAAa,EACb,QAAoB,EACpB,SAAiB,EACjB,KAAY,EACZ,GAAsB,EACtB,SAAS,GACV,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CA8DjC"}
1
+ {"version":3,"file":"device-flow.d.ts","sourceRoot":"","sources":["../src/device-flow.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,iDAAiD,CAAC;AAChF,eAAO,MAAM,SAAS,gDAAgD,CAAC;AAKvE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,SAAS,GACT,WAAW,CAAC;AAEhB,qBAAa,eAAgB,SAAQ,KAAK;IACxC,SAAkB,IAAI,qBAAqB;IAC3C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC,YAAY,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAGrD;CACF;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACnC;AA6BD,wBAAsB,0BAA0B,CAAC,EAC/C,aAAa,EACb,QAAoB,EACpB,SAAiB,GAClB,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgCpD;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD;AAcD,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IACzD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAsB,kBAAkB,CAAC,EACvC,aAAa,EACb,YAAY,EACZ,QAAoB,EACpB,SAAiB,GAClB,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqBpC;AAED,MAAM,WAAW,WAAY,SAAQ,mBAAmB;IACtD,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAID,wBAAsB,kBAAkB,CAAC,EACvC,aAAa,EACb,aAAa,EACb,QAAoB,EACpB,SAAiB,EACjB,KAAY,EACZ,GAAsB,EACtB,SAAS,GACV,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAyEjC"}
@@ -101,10 +101,20 @@ export async function pollForAccessToken({ automationUrl, authorization, clientI
101
101
  catch (error) {
102
102
  throw new DeviceFlowError("transport", `could not reach ${url}: ${error.message}`);
103
103
  }
104
- const { payload } = result;
104
+ const { status, payload } = result;
105
105
  const token = payload["access_token"];
106
106
  if (typeof token === "string" && token)
107
107
  return toTokenSet(payload);
108
+ // A 429 is the gateway or rate limiter asking for room, not OAuth saying the
109
+ // grant is dead. It used to fall through to the fatal branch, so a user who
110
+ // took a minute to find the browser was thrown out with "sign-in failed:
111
+ // Rate limit exceeded". Treat it as slow_down: widen and keep polling until
112
+ // the deadline. Checked by status because a gateway limit is rarely JSON.
113
+ if (status === 429) {
114
+ intervalSeconds += SLOW_DOWN_INCREMENT_SECONDS;
115
+ onPending?.(attempt);
116
+ continue;
117
+ }
108
118
  const error = String(payload["error"] ?? "");
109
119
  switch (error) {
110
120
  case "authorization_pending":
@@ -1 +1 @@
1
- {"version":3,"file":"device-flow.js","sourceRoot":"","sources":["../src/device-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device-flow.js","sourceRoot":"","sources":["../src/device-flow.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,8 @@ export declare class McpCallError extends Error {
27
27
  readonly detail: unknown;
28
28
  constructor(message: string, detail?: unknown);
29
29
  }
30
+ export declare const BOOST_PAYLOAD_PARAM = "com.jitera.boost";
31
+ export declare function bindingUrl(url: string, projectUuid: string | undefined): string;
30
32
  export declare function parseBody(contentType: string, raw: string): JsonRpcResponse | undefined;
31
33
  export declare function extractText(result: ToolResult | undefined): string;
32
34
  export interface TransportOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxE;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAkB,IAAI,kBAAkB;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAG5C;CACF;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAWvF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAQlE;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAG5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,wBAAsB,OAAO,CAC3B,OAAO,EAAE,cAAc,EACvB,EAAE,GAAG,EAAE,MAAM,EAAE,SAAgB,EAAE,WAAW,EAAE,EAAE,gBAAgB,GAC/D,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA2CtC;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,wBAAsB,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,GAAG,SAAS,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBlG"}
1
+ {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxE;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAkB,IAAI,kBAAkB;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAG5C;CACF;AASD,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AAEtD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAO/E;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAWvF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAQlE;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAG5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,wBAAsB,OAAO,CAC3B,OAAO,EAAE,cAAc,EACvB,EAAE,GAAG,EAAE,MAAM,EAAE,SAAgB,EAAE,WAAW,EAAE,EAAE,gBAAgB,GAC/D,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA2CtC;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,wBAAsB,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,GAAG,SAAS,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBlG"}
@@ -6,6 +6,21 @@ export class McpCallError extends Error {
6
6
  this.detail = detail;
7
7
  }
8
8
  }
9
+ // The gateway in front of the server strips unrecognised `x-*` request headers,
10
+ // so a project sent only as `x-jitera-project` never arrives. The server also
11
+ // reads a base64 "boost payload" from the `com.jitera.boost` query parameter,
12
+ // and query strings are forwarded untouched. So the binding travels both ways:
13
+ // the query parameter for gateway deployments, the header for direct ones. The
14
+ // server verifies the claimed project against the key's owner before trusting
15
+ // it, so carrying it in the URL is not itself an authorisation.
16
+ export const BOOST_PAYLOAD_PARAM = "com.jitera.boost";
17
+ export function bindingUrl(url, projectUuid) {
18
+ if (!projectUuid)
19
+ return url;
20
+ const payload = Buffer.from(JSON.stringify({ session: { project_uuid: projectUuid } })).toString("base64");
21
+ const separator = url.includes("?") ? "&" : "?";
22
+ return `${url}${separator}${BOOST_PAYLOAD_PARAM}=${encodeURIComponent(payload)}`;
23
+ }
9
24
  export function parseBody(contentType, raw) {
10
25
  if (raw.trim() === "")
11
26
  return undefined;
@@ -39,7 +54,7 @@ export async function postRpc(request, { url, apiKey, timeoutMs = 5000, projectU
39
54
  let response;
40
55
  let raw;
41
56
  try {
42
- response = await fetch(url, {
57
+ response = await fetch(bindingUrl(url, projectUuid), {
43
58
  method: "POST",
44
59
  signal: AbortSignal.timeout(timeoutMs),
45
60
  headers: {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jitera/connect",
3
- "version": "2.1.2",
3
+ "version": "2.2.0",
4
4
  "type": "module",
5
5
  "description": "Connect AI coding assistants to Jitera projects: documentation, source, and shared project memory",
6
6
  "license": "Apache-2.0",