@jitera/connect 0.7.0 → 1.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.
package/dist/bin/login.js
CHANGED
|
@@ -4,6 +4,14 @@ import { DiscoveryError, discoverDeployment } from "../discovery.js";
|
|
|
4
4
|
import { UnknownEnvironmentError } from "../environments.js";
|
|
5
5
|
import { DeviceFlowError, pollForAccessToken, requestDeviceAuthorization, } from "../device-flow.js";
|
|
6
6
|
import { GraphqlError, createApiKey, listProjects } from "../graphql.js";
|
|
7
|
+
import { installClaudeCodePlugin } from "../install/claude-code.js";
|
|
8
|
+
import { writeAgentsMd } from "../install/agents-md.js";
|
|
9
|
+
import { installSkills } from "../install/skills.js";
|
|
10
|
+
import { codex } from "../adapters/codex.js";
|
|
11
|
+
import { cursor } from "../adapters/cursor.js";
|
|
12
|
+
import { homedir } from "node:os";
|
|
13
|
+
import { dirname, join } from "node:path";
|
|
14
|
+
import { fileURLToPath } from "node:url";
|
|
7
15
|
const USAGE = [
|
|
8
16
|
"usage: npx @jitera/connect login [--env=<environment>] [options]",
|
|
9
17
|
"",
|
|
@@ -12,9 +20,10 @@ const USAGE = [
|
|
|
12
20
|
" --read-only create a read-only key (default is read + write)",
|
|
13
21
|
" --name=<name> name for the created key",
|
|
14
22
|
" --json print the result as json",
|
|
23
|
+
" --install configure your assistants with the new key",
|
|
15
24
|
].join("\n");
|
|
16
25
|
function parseArgs(argv) {
|
|
17
|
-
const args = { access: "read_write", keyName: "Jitera Connect", json: false, help: false };
|
|
26
|
+
const args = { access: "read_write", keyName: "Jitera Connect", json: false, install: false, help: false };
|
|
18
27
|
for (const arg of argv) {
|
|
19
28
|
if (arg === "login")
|
|
20
29
|
continue;
|
|
@@ -28,6 +37,8 @@ function parseArgs(argv) {
|
|
|
28
37
|
args.access = "read";
|
|
29
38
|
else if (arg === "--json")
|
|
30
39
|
args.json = true;
|
|
40
|
+
else if (arg === "--install")
|
|
41
|
+
args.install = true;
|
|
31
42
|
else if (arg === "--help" || arg === "-h")
|
|
32
43
|
args.help = true;
|
|
33
44
|
else
|
|
@@ -49,6 +60,7 @@ if (args.unknown) {
|
|
|
49
60
|
process.exit(2);
|
|
50
61
|
}
|
|
51
62
|
let automationUrl = process.env["JITERA_AUTOMATION_URL"] ?? "";
|
|
63
|
+
let mcpUrl = process.env["JITERA_MCP_URL"] ?? "";
|
|
52
64
|
let brand = "Jitera";
|
|
53
65
|
if (!automationUrl) {
|
|
54
66
|
try {
|
|
@@ -57,6 +69,7 @@ if (!automationUrl) {
|
|
|
57
69
|
studioUrl: process.env["JITERA_STUDIO_URL"],
|
|
58
70
|
});
|
|
59
71
|
automationUrl = deployment.automationUrl;
|
|
72
|
+
mcpUrl = mcpUrl || deployment.mcpUrl;
|
|
60
73
|
brand = deployment.brand;
|
|
61
74
|
}
|
|
62
75
|
catch (error) {
|
|
@@ -134,10 +147,33 @@ catch (error) {
|
|
|
134
147
|
fail(error.message);
|
|
135
148
|
throw error;
|
|
136
149
|
}
|
|
150
|
+
if (args.install) {
|
|
151
|
+
const environment = args.environment ?? "studio";
|
|
152
|
+
const packageRoot = join(dirname(fileURLToPath(import.meta.url)), "..", "..");
|
|
153
|
+
const values = { BRAND: brand };
|
|
154
|
+
const claude = installClaudeCodePlugin({ apiKey: created.rawKey, environment });
|
|
155
|
+
process.stdout.write(claude.installed
|
|
156
|
+
? "\nClaude Code: installed and configured, key stored in your keychain.\n"
|
|
157
|
+
: `\nClaude Code: skipped (${claude.reason}).\n`);
|
|
158
|
+
const context = { scope: "project", home: homedir(), cwd: process.cwd(), mcpUrl };
|
|
159
|
+
const local = [cursor, codex].filter((adapter) => adapter.detect(context));
|
|
160
|
+
if (local.length) {
|
|
161
|
+
for (const adapter of local) {
|
|
162
|
+
const result = adapter.install(context);
|
|
163
|
+
process.stdout.write(`${adapter.label}: ${result.path}\n`);
|
|
164
|
+
}
|
|
165
|
+
const targetDirs = [...new Set(local.flatMap((adapter) => adapter.skillsDirs(context)))];
|
|
166
|
+
installSkills({ packageRoot, targetDirs, values });
|
|
167
|
+
writeAgentsMd({ packageRoot, projectRoot: context.cwd, values });
|
|
168
|
+
process.stdout.write("Skills and AGENTS.md written.\n");
|
|
169
|
+
process.stdout.write(`\nFor Cursor and Codex, export the key so they can read it:\n`);
|
|
170
|
+
process.stdout.write(` export JITERA_API_KEY=${created.rawKey}\n`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
137
173
|
if (args.json) {
|
|
138
174
|
process.stdout.write(`${JSON.stringify({ apiKey: created.rawKey, maskedKey: created.maskedKey, projectUuid, mcpAccess: args.access }, undefined, 2)}\n`);
|
|
139
175
|
}
|
|
140
|
-
else {
|
|
176
|
+
else if (!args.install) {
|
|
141
177
|
process.stdout.write(`\nCreated a ${args.access === "read" ? "read-only" : "read + write"} key.\n\n`);
|
|
142
178
|
process.stdout.write(` export JITERA_API_KEY=${created.rawKey}\n\n`);
|
|
143
179
|
process.stdout.write("Then run npx @jitera/connect to configure your assistants.\n");
|
package/dist/bin/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/bin/login.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/bin/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const MARKETPLACE = "jitera-product/connect";
|
|
2
|
+
export declare const PLUGIN_NAME = "jitera-connect";
|
|
3
|
+
export interface CommandRunner {
|
|
4
|
+
(command: string, args: readonly string[]): {
|
|
5
|
+
status: number;
|
|
6
|
+
stderr: string;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export declare function isClaudeCodeAvailable(run?: CommandRunner): boolean;
|
|
10
|
+
export interface ClaudeInstallOptions {
|
|
11
|
+
readonly apiKey: string;
|
|
12
|
+
readonly environment: string;
|
|
13
|
+
readonly run?: CommandRunner;
|
|
14
|
+
}
|
|
15
|
+
export interface ClaudeInstallResult {
|
|
16
|
+
readonly installed: boolean;
|
|
17
|
+
readonly reason?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function installClaudeCodePlugin({ apiKey, environment, run, }: ClaudeInstallOptions): ClaudeInstallResult;
|
|
20
|
+
//# sourceMappingURL=claude-code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/install/claude-code.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,2BAA2B,CAAC;AACpD,eAAO,MAAM,WAAW,mBAAmB,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF;AAOD,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,aAA6B,GAAG,OAAO,CAEjF;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,EACtC,MAAM,EACN,WAAW,EACX,GAAmB,GACpB,EAAE,oBAAoB,GAAG,mBAAmB,CAyB5C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
export const MARKETPLACE = "jitera-product/connect";
|
|
3
|
+
export const PLUGIN_NAME = "jitera-connect";
|
|
4
|
+
const defaultRunner = (command, args) => {
|
|
5
|
+
const result = spawnSync(command, [...args], { encoding: "utf8" });
|
|
6
|
+
return { status: result.status ?? 1, stderr: result.stderr ?? "" };
|
|
7
|
+
};
|
|
8
|
+
export function isClaudeCodeAvailable(run = defaultRunner) {
|
|
9
|
+
return run("claude", ["--version"]).status === 0;
|
|
10
|
+
}
|
|
11
|
+
export function installClaudeCodePlugin({ apiKey, environment, run = defaultRunner, }) {
|
|
12
|
+
if (!isClaudeCodeAvailable(run)) {
|
|
13
|
+
return { installed: false, reason: "the claude command is not on your PATH" };
|
|
14
|
+
}
|
|
15
|
+
const marketplace = run("claude", ["plugin", "marketplace", "add", MARKETPLACE]);
|
|
16
|
+
if (marketplace.status !== 0 && !/already/i.test(marketplace.stderr)) {
|
|
17
|
+
return { installed: false, reason: marketplace.stderr.trim() || "could not add the marketplace" };
|
|
18
|
+
}
|
|
19
|
+
const install = run("claude", [
|
|
20
|
+
"plugin",
|
|
21
|
+
"install",
|
|
22
|
+
PLUGIN_NAME,
|
|
23
|
+
"--config",
|
|
24
|
+
`environment=${environment}`,
|
|
25
|
+
"--config",
|
|
26
|
+
`jitera_api_key=${apiKey}`,
|
|
27
|
+
]);
|
|
28
|
+
if (install.status !== 0) {
|
|
29
|
+
return { installed: false, reason: install.stderr.trim() || "the plugin install failed" };
|
|
30
|
+
}
|
|
31
|
+
return { installed: true };
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=claude-code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/install/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,MAAM,WAAW,GAAG,wBAAwB,CAAC;AACpD,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAM5C,MAAM,aAAa,GAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IACrD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,GAAG,GAAkB,aAAa;IACtE,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACnD,CAAC;AAaD,MAAM,UAAU,uBAAuB,CAAC,EACtC,MAAM,EACN,WAAW,EACX,GAAG,GAAG,aAAa,GACE;IACrB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC;IAChF,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IACjF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACrE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,+BAA+B,EAAE,CAAC;IACpG,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE;QAC5B,QAAQ;QACR,SAAS;QACT,WAAW;QACX,UAAU;QACV,eAAe,WAAW,EAAE;QAC5B,UAAU;QACV,kBAAkB,MAAM,EAAE;KAC3B,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,2BAA2B,EAAE,CAAC;IAC5F,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jitera/connect",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.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",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"build": "tsc",
|
|
40
|
-
"typecheck": "tsc --noEmit -p tsconfig.test.json",
|
|
40
|
+
"typecheck": "tsc --noEmit --pretty false -p tsconfig.test.json",
|
|
41
41
|
"test": "node --test \"test/**/*.test.ts\"",
|
|
42
42
|
"validate": "node src/bin/validate.ts",
|
|
43
43
|
"prepublishOnly": "npm run build"
|