@jitera/connect 1.4.0 → 1.5.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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +83 -52
- package/dist/adapters/codex.d.ts.map +1 -1
- package/dist/adapters/codex.js +3 -0
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/cursor.d.ts.map +1 -1
- package/dist/adapters/cursor.js +3 -2
- package/dist/adapters/cursor.js.map +1 -1
- package/dist/adapters/types.d.ts +1 -0
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/bin/cli.js +4 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/connect.js +3 -0
- package/dist/bin/connect.js.map +1 -1
- package/dist/bin/init.js +84 -3
- package/dist/bin/init.js.map +1 -1
- package/dist/bin/login.js +61 -14
- package/dist/bin/login.js.map +1 -1
- package/dist/bin/proxy.js +7 -2
- package/dist/bin/proxy.js.map +1 -1
- package/dist/bin/statusline.d.ts +3 -0
- package/dist/bin/statusline.d.ts.map +1 -0
- package/dist/bin/statusline.js +17 -0
- package/dist/bin/statusline.js.map +1 -0
- package/dist/cli-session.d.ts +12 -0
- package/dist/cli-session.d.ts.map +1 -0
- package/dist/cli-session.js +39 -0
- package/dist/cli-session.js.map +1 -0
- package/dist/device-flow.d.ts +10 -1
- package/dist/device-flow.d.ts.map +1 -1
- package/dist/device-flow.js +25 -1
- package/dist/device-flow.js.map +1 -1
- package/dist/graphql.d.ts +5 -0
- package/dist/graphql.d.ts.map +1 -1
- package/dist/graphql.js +15 -11
- package/dist/graphql.js.map +1 -1
- package/dist/hooks/session-start.js +5 -0
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/hooks/user-prompt-submit.js +10 -0
- package/dist/hooks/user-prompt-submit.js.map +1 -1
- package/dist/install/statusline.d.ts +12 -0
- package/dist/install/statusline.d.ts.map +1 -0
- package/dist/install/statusline.js +30 -0
- package/dist/install/statusline.js.map +1 -0
- package/dist/mcp-client.d.ts +2 -1
- package/dist/mcp-client.d.ts.map +1 -1
- package/dist/mcp-client.js +2 -1
- package/dist/mcp-client.js.map +1 -1
- package/dist/proxy.d.ts +3 -1
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +11 -2
- package/dist/proxy.js.map +1 -1
- package/dist/select.d.ts +11 -0
- package/dist/select.d.ts.map +1 -1
- package/dist/select.js +33 -0
- package/dist/select.js.map +1 -1
- package/dist/session-status.d.ts +11 -0
- package/dist/session-status.d.ts.map +1 -0
- package/dist/session-status.js +46 -0
- package/dist/session-status.js.map +1 -0
- package/dist/statusline.d.ts +7 -0
- package/dist/statusline.d.ts.map +1 -0
- package/dist/statusline.js +31 -0
- package/dist/statusline.js.map +1 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,30 +1,24 @@
|
|
|
1
|
-
#
|
|
1
|
+
# jitera connect
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
connects claude code, cursor, and codex to a jitera project: documentation,
|
|
4
|
+
source, and shared project memory over mcp.
|
|
5
|
+
|
|
6
|
+
## install
|
|
4
7
|
|
|
5
8
|
```
|
|
6
9
|
npx @jitera/connect login --install
|
|
7
10
|
```
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
assistant it finds.
|
|
12
|
+
signs you in through the browser, creates a user-level api key, and configures
|
|
13
|
+
every assistant it finds. one key covers every project your account can reach,
|
|
14
|
+
so you run this once per machine and never again per project.
|
|
11
15
|
|
|
12
|
-
|
|
16
|
+
for a pilot or staging environment:
|
|
13
17
|
|
|
14
18
|
```
|
|
15
19
|
npx @jitera/connect login --env=studio-05 --install
|
|
16
20
|
```
|
|
17
21
|
|
|
18
|
-
## choosing what to connect
|
|
19
|
-
|
|
20
|
-
`login` asks which organisation, then which project. It only offers projects you
|
|
21
|
-
can create an api key on. Skip either prompt:
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
npx @jitera/connect login --org=<slug>
|
|
25
|
-
npx @jitera/connect login --project=<uuid>
|
|
26
|
-
```
|
|
27
|
-
|
|
28
22
|
## claude code
|
|
29
23
|
|
|
30
24
|
```
|
|
@@ -44,45 +38,87 @@ codex plugin marketplace add jitera-product/connect
|
|
|
44
38
|
npx @jitera/connect
|
|
45
39
|
```
|
|
46
40
|
|
|
47
|
-
##
|
|
41
|
+
## binding a repo to a project
|
|
48
42
|
|
|
49
43
|
```
|
|
50
44
|
npx @jitera/connect init
|
|
51
45
|
```
|
|
52
46
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
it,
|
|
57
|
-
(`--env=`, and optionally `--project=<uuid>`). Commit all three.
|
|
47
|
+
run this once per repo, from inside the repo, and commit the three files it
|
|
48
|
+
writes. `.jitera.json` records the deployment and project the repo belongs to.
|
|
49
|
+
AGENTS.md carries the same guidance for assistants that read it natively, and
|
|
50
|
+
CLAUDE.md imports it, because claude code reads CLAUDE.md and not AGENTS.md.
|
|
58
51
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
warning instead of silently reading the wrong project.
|
|
52
|
+
init reuses the login you already did to list your projects and asks which one
|
|
53
|
+
this repo is. pass `--project=<uuid>` to skip the question, or `--dry-run` to
|
|
54
|
+
see what it would write.
|
|
63
55
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
delivers the same guidance itself.
|
|
56
|
+
it refuses to run outside a git repository. instructions written above a repo
|
|
57
|
+
are invisible to anything that reads AGENTS.md from the repo root, and a
|
|
58
|
+
CLAUDE.md above a repo leaks into every project underneath it.
|
|
68
59
|
|
|
69
60
|
## what applies where
|
|
70
61
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
62
|
+
the api key is global: one per user, per machine, stored by `login --install`.
|
|
63
|
+
every repo you open uses it, so init is optional and nothing breaks without it.
|
|
64
|
+
|
|
65
|
+
`.jitera.json` configures nothing by itself. it declares what the repo expects,
|
|
66
|
+
and sessions check the two against each other. a teammate who has not signed in
|
|
67
|
+
yet gets the exact login command for the right environment. a teammate pointed
|
|
68
|
+
at a different environment gets a warning instead of quietly reading the wrong
|
|
69
|
+
project.
|
|
70
|
+
|
|
71
|
+
with a user-level key it does one more thing: it picks the project. the proxy
|
|
72
|
+
and the hooks read it and send it as an `X-Jitera-Project` header, so several
|
|
73
|
+
repos on one machine can talk to different projects through a single key. older
|
|
74
|
+
deployments bind the key itself to one project, and there the marker only makes
|
|
75
|
+
a mismatch visible.
|
|
76
|
+
|
|
77
|
+
## seeing your keys
|
|
75
78
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
wrong project.
|
|
79
|
+
in the jitera app your own keys live under your avatar, then account, then api
|
|
80
|
+
keys. you can create and revoke them from there. project keys sit in the
|
|
81
|
+
project's settings, agent keys under the agent, and organisation keys under
|
|
82
|
+
settings, then organisation.
|
|
81
83
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
## the api key
|
|
85
|
+
|
|
86
|
+
login creates a user-level key when the deployment supports it. older
|
|
87
|
+
deployments issue project-scoped keys, so login falls back to asking which
|
|
88
|
+
project and tells you when that happens.
|
|
89
|
+
|
|
90
|
+
`login --install` stores the key for you, so there is nothing to export:
|
|
91
|
+
|
|
92
|
+
- claude code: your os keychain
|
|
93
|
+
- cursor and codex: their own config in your home directory, outside any repo
|
|
94
|
+
|
|
95
|
+
it also keeps a private session at `~/.config/jitera-connect/session.json`,
|
|
96
|
+
mode 0600, so init can list your projects without another trip through the
|
|
97
|
+
browser.
|
|
98
|
+
|
|
99
|
+
installing without `login` leaves cursor and codex reading `JITERA_API_KEY`
|
|
100
|
+
from the environment:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
export JITERA_API_KEY=<your api key>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## status line
|
|
107
|
+
|
|
108
|
+
`login --install` also puts the connection in claude code's status line:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
● jitera · studio-05 · recall 1.2k/0.4s
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
green means the session is configured, hollow means not connected, and yellow
|
|
115
|
+
means a failed recall or a repo asking for a different environment. it reads
|
|
116
|
+
state the hooks already wrote, so it never touches the network, and it resolves
|
|
117
|
+
the installed plugin version when it runs, so an update does not orphan it.
|
|
118
|
+
|
|
119
|
+
claude code has one status line slot. if something else already owns it, login
|
|
120
|
+
leaves it alone and says so. remove yours and run login again, or point
|
|
121
|
+
`statusLine` at the plugin's `dist/bin/statusline.js` yourself.
|
|
86
122
|
|
|
87
123
|
## pilot and staging environments
|
|
88
124
|
|
|
@@ -105,16 +141,11 @@ npx @jitera/connect --env=studio-05
|
|
|
105
141
|
npx @jitera/connect --env=studio-stage
|
|
106
142
|
```
|
|
107
143
|
|
|
108
|
-
##
|
|
109
|
-
|
|
110
|
-
`login --install` stores the key for you. nothing to export.
|
|
111
|
-
|
|
112
|
-
- claude code: your os keychain
|
|
113
|
-
- cursor and codex: their own config in your home directory, outside any repo
|
|
114
|
-
|
|
115
|
-
installing without `login` leaves cursor and codex reading `JITERA_API_KEY` from
|
|
116
|
-
the environment instead:
|
|
144
|
+
## other flags
|
|
117
145
|
|
|
118
146
|
```
|
|
119
|
-
|
|
147
|
+
npx @jitera/connect --print print the resolved endpoints and exit
|
|
148
|
+
npx @jitera/connect --dry-run report what would change, write nothing
|
|
149
|
+
npx @jitera/connect --uninstall remove the jitera server
|
|
150
|
+
npx @jitera/connect --skip-skills write mcp config only
|
|
120
151
|
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,YAAY,CAAC;AAEzE,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAajD,eAAO,MAAM,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,YAAY,CAAC;AAEzE,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAajD,eAAO,MAAM,KAAK,EAAE,OA0CnB,CAAC"}
|
package/dist/adapters/codex.js
CHANGED
|
@@ -33,6 +33,9 @@ export const codex = {
|
|
|
33
33
|
context.apiKey
|
|
34
34
|
? `bearer_token = "${context.apiKey}"`
|
|
35
35
|
: `bearer_token_env_var = "${API_KEY_ENV}"`,
|
|
36
|
+
...(context.projectUuid
|
|
37
|
+
? [`http_headers = { "X-Jitera-Project" = "${context.projectUuid}" }`]
|
|
38
|
+
: []),
|
|
36
39
|
].join("\n");
|
|
37
40
|
const after = ensureRootKey(upsertTable(before, SERVER_TABLE, body), RMCP_FLAG, "true");
|
|
38
41
|
if (!context.dryRun)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG7E,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC;AACjD,MAAM,SAAS,GAAG,8BAA8B,CAAC;AACjD,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAErC,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,OAAe;IAC1C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAY;IAC5B,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,OAAO;IACd,cAAc,EAAE,KAAK;IAErB,MAAM,CAAC,EAAE,IAAI,EAAE;QACb,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,aAAa,CAAC,EAAE,IAAI,EAAE;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC7C,CAAC;IAED,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE;QAC7B,MAAM,IAAI,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,OAAuB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG;YACX,UAAU,OAAO,CAAC,MAAM,IAAI,EAAE,GAAG;YACjC,OAAO,CAAC,MAAM;gBACZ,CAAC,CAAC,mBAAmB,OAAO,CAAC,MAAM,GAAG;gBACtC,CAAC,CAAC,2BAA2B,WAAW,GAAG;
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG7E,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC;AACjD,MAAM,SAAS,GAAG,8BAA8B,CAAC;AACjD,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAErC,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,OAAe;IAC1C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAY;IAC5B,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,OAAO;IACd,cAAc,EAAE,KAAK;IAErB,MAAM,CAAC,EAAE,IAAI,EAAE;QACb,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,aAAa,CAAC,EAAE,IAAI,EAAE;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC7C,CAAC;IAED,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE;QAC7B,MAAM,IAAI,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,OAAuB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG;YACX,UAAU,OAAO,CAAC,MAAM,IAAI,EAAE,GAAG;YACjC,OAAO,CAAC,MAAM;gBACZ,CAAC,CAAC,mBAAmB,OAAO,CAAC,MAAM,GAAG;gBACtC,CAAC,CAAC,2BAA2B,WAAW,GAAG;YAC7C,GAAG,CAAC,OAAO,CAAC,WAAW;gBACrB,CAAC,CAAC,CAAC,0CAA0C,OAAO,CAAC,WAAW,KAAK,CAAC;gBACtE,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACxF,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,KAAK,KAAK,EAAE,CAAC;IACzD,CAAC;IAED,SAAS,CAAC,OAAuB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,KAAK,KAAK;YAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,KAAK,KAAK,EAAE,CAAC;IACzD,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,YAAY,CAAC;AASzE,eAAO,MAAM,WAAW,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,YAAY,CAAC;AASzE,eAAO,MAAM,WAAW,WAAW,CAAC;AAmBpC,eAAO,MAAM,MAAM,EAAE,OAwCpB,CAAC"}
|
package/dist/adapters/cursor.js
CHANGED
|
@@ -4,12 +4,13 @@ import { mergeServer, readConfig, removeServer, writeConfig, } from "../mcp-conf
|
|
|
4
4
|
export const SERVER_NAME = "jitera";
|
|
5
5
|
const CONFIG_KEY = "mcpServers";
|
|
6
6
|
const API_KEY_ENV = "JITERA_API_KEY";
|
|
7
|
-
function serverEntry(mcpUrl, apiKey) {
|
|
7
|
+
function serverEntry(mcpUrl, apiKey, projectUuid) {
|
|
8
8
|
return {
|
|
9
9
|
type: "http",
|
|
10
10
|
url: mcpUrl,
|
|
11
11
|
headers: {
|
|
12
12
|
Authorization: apiKey ? `Bearer ${apiKey}` : `Bearer \${env:${API_KEY_ENV}}`,
|
|
13
|
+
...(projectUuid ? { "X-Jitera-Project": projectUuid } : {}),
|
|
13
14
|
},
|
|
14
15
|
};
|
|
15
16
|
}
|
|
@@ -32,7 +33,7 @@ export const cursor = {
|
|
|
32
33
|
install(context) {
|
|
33
34
|
const path = this.mcpConfigPath(context);
|
|
34
35
|
const before = readConfig(path);
|
|
35
|
-
const after = mergeServer(before, CONFIG_KEY, SERVER_NAME, serverEntry(context.mcpUrl ?? "", context.apiKey));
|
|
36
|
+
const after = mergeServer(before, CONFIG_KEY, SERVER_NAME, serverEntry(context.mcpUrl ?? "", context.apiKey, context.projectUuid));
|
|
36
37
|
if (!context.dryRun)
|
|
37
38
|
writeConfig(path, after);
|
|
38
39
|
return { path, config: after, changed: JSON.stringify(before) !== JSON.stringify(after) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,GAEZ,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;AACpC,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAErC,SAAS,WAAW,
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,MAAM,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;IACvD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC;IACvD,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC;IAC/C,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CAAC;IACvD,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAAC;IAChD,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAAC;CACnD"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,MAAM,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;IACvD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC;IACvD,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC;IAC/C,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CAAC;IACvD,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAAC;IAChD,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAAC;CACnD"}
|
package/dist/bin/cli.js
CHANGED
|
@@ -7,6 +7,7 @@ import { codex } from "../adapters/codex.js";
|
|
|
7
7
|
import { cursor } from "../adapters/cursor.js";
|
|
8
8
|
import { MalformedConfigError } from "../mcp-config.js";
|
|
9
9
|
import { DEFAULT_BRAND } from "../install/render.js";
|
|
10
|
+
import { readProjectMarker } from "../project-marker.js";
|
|
10
11
|
import { installSkills, uninstallSkills } from "../install/skills.js";
|
|
11
12
|
import { DiscoveryError, discoverDeployment } from "../discovery.js";
|
|
12
13
|
import { UnknownEnvironmentError, resolveStudioUrl } from "../environments.js";
|
|
@@ -104,6 +105,9 @@ const context = {
|
|
|
104
105
|
home: homedir(),
|
|
105
106
|
cwd: process.cwd(),
|
|
106
107
|
mcpUrl,
|
|
108
|
+
// A committed .jitera.json pins these configs to the repo's project, which is
|
|
109
|
+
// what makes a user-level key work without per-project setup.
|
|
110
|
+
projectUuid: readProjectMarker(process.cwd())?.project,
|
|
107
111
|
dryRun: args.dryRun,
|
|
108
112
|
};
|
|
109
113
|
const detected = ADAPTERS.filter((adapter) => adapter.detect(context));
|
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/connect.js
CHANGED
package/dist/bin/connect.js.map
CHANGED
|
@@ -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,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,YAAY,EAAE,CAAC;IACvC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAClC,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;AAC3B,CAAC"}
|
package/dist/bin/init.js
CHANGED
|
@@ -3,10 +3,14 @@ import { dirname, join } from "node:path";
|
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { DiscoveryError, discoverDeployment } from "../discovery.js";
|
|
5
5
|
import { UnknownEnvironmentError } from "../environments.js";
|
|
6
|
+
import { isExpired, loadCliSession, saveCliSession } from "../cli-session.js";
|
|
7
|
+
import { DeviceFlowError, refreshAccessToken } from "../device-flow.js";
|
|
8
|
+
import { GraphqlError, listOrganisations, listProjects } from "../graphql.js";
|
|
6
9
|
import { writeAgentsMd } from "../install/agents-md.js";
|
|
7
10
|
import { DEFAULT_BRAND } from "../install/render.js";
|
|
8
11
|
import { resolveGitRoot } from "../install/project-root.js";
|
|
9
12
|
import { writeProjectMarker } from "../project-marker.js";
|
|
13
|
+
import { InvalidChoiceError, SelectCancelledError, chooseFrom } from "../select.js";
|
|
10
14
|
import { createTheme } from "../theme.js";
|
|
11
15
|
const PACKAGE_ROOT = join(dirname(fileURLToPath(import.meta.url)), "..", "..");
|
|
12
16
|
const USAGE = [
|
|
@@ -71,6 +75,82 @@ catch (error) {
|
|
|
71
75
|
throw error;
|
|
72
76
|
process.stdout.write(` ${theme.dim(`offline, using the default brand "${brand}"`)}\n`);
|
|
73
77
|
}
|
|
78
|
+
// A stored login session ("login once") lets init pick the project here, so
|
|
79
|
+
// the binding lands in .jitera.json without another browser round-trip.
|
|
80
|
+
const session = loadCliSession();
|
|
81
|
+
let projectUuid = args.project;
|
|
82
|
+
let projectName;
|
|
83
|
+
if (!projectUuid && session) {
|
|
84
|
+
let accessToken = session.accessToken;
|
|
85
|
+
try {
|
|
86
|
+
if (isExpired(session)) {
|
|
87
|
+
if (!session.refreshToken) {
|
|
88
|
+
throw new DeviceFlowError("expired_token", "the stored sign-in expired. Run login again.");
|
|
89
|
+
}
|
|
90
|
+
const refreshed = await refreshAccessToken({
|
|
91
|
+
automationUrl: session.automationUrl,
|
|
92
|
+
refreshToken: session.refreshToken,
|
|
93
|
+
});
|
|
94
|
+
accessToken = refreshed.accessToken;
|
|
95
|
+
saveCliSession({
|
|
96
|
+
...session,
|
|
97
|
+
accessToken,
|
|
98
|
+
refreshToken: refreshed.refreshToken ?? session.refreshToken,
|
|
99
|
+
expiresAt: refreshed.expiresInSeconds
|
|
100
|
+
? Date.now() + refreshed.expiresInSeconds * 1000
|
|
101
|
+
: undefined,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
const transport = { automationUrl: session.automationUrl, accessToken };
|
|
105
|
+
const organisations = await listOrganisations(transport);
|
|
106
|
+
const organisation = organisations.length > 1
|
|
107
|
+
? await chooseFrom({
|
|
108
|
+
items: organisations,
|
|
109
|
+
prompt: "Which organisation?",
|
|
110
|
+
label: (org) => `${org.name ?? org.slug}${org.personal ? " (personal)" : ""}`,
|
|
111
|
+
theme,
|
|
112
|
+
})
|
|
113
|
+
: organisations[0];
|
|
114
|
+
const projects = await listProjects(transport, organisation);
|
|
115
|
+
if (projects.length === 0) {
|
|
116
|
+
process.stdout.write(` ${theme.dim("this account has no projects here; pass --project=<uuid> to bind one")}\n`);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
const choice = projects.length > 1
|
|
120
|
+
? await chooseFrom({
|
|
121
|
+
items: projects,
|
|
122
|
+
prompt: "Which project does this repository belong to?",
|
|
123
|
+
label: (project) => project.name,
|
|
124
|
+
theme,
|
|
125
|
+
})
|
|
126
|
+
: projects[0];
|
|
127
|
+
projectUuid = choice?.uuid;
|
|
128
|
+
projectName = choice?.name;
|
|
129
|
+
if (projectName) {
|
|
130
|
+
process.stdout.write(` ${theme.dim("Project")} ${projectName}\n`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
if (error instanceof SelectCancelledError) {
|
|
136
|
+
process.stderr.write(`\n error: cancelled.\n`);
|
|
137
|
+
process.exit(130);
|
|
138
|
+
}
|
|
139
|
+
if (error instanceof InvalidChoiceError) {
|
|
140
|
+
process.stderr.write(`error: ${error.message}\n`);
|
|
141
|
+
process.exit(2);
|
|
142
|
+
}
|
|
143
|
+
if (error instanceof DeviceFlowError || error instanceof GraphqlError) {
|
|
144
|
+
process.stdout.write(` ${theme.dim(`could not list projects (${error.message}); pass --project=<uuid>`)}\n`);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
throw error;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
else if (!projectUuid) {
|
|
152
|
+
process.stdout.write(` ${theme.dim("sign in once with the login command to pick a project here, or pass --project=<uuid>")}\n`);
|
|
153
|
+
}
|
|
74
154
|
const result = writeAgentsMd({
|
|
75
155
|
packageRoot: PACKAGE_ROOT,
|
|
76
156
|
projectRoot,
|
|
@@ -79,11 +159,12 @@ const result = writeAgentsMd({
|
|
|
79
159
|
});
|
|
80
160
|
process.stdout.write(` ${result.agents.changed ? theme.ok("✓") : theme.dim("–")} ${theme.bold("AGENTS.md")} ${theme.dim(`${result.agents.action} in ${result.agentsPath}`)}\n`);
|
|
81
161
|
process.stdout.write(` ${result.claude.changed ? theme.ok("✓") : theme.dim("–")} ${theme.bold("CLAUDE.md")} ${theme.dim(`${result.claude.action} in ${result.claudePath}`)}\n`);
|
|
162
|
+
const environment = args.environment ?? session?.environment ?? "studio";
|
|
82
163
|
const marker = writeProjectMarker(projectRoot, {
|
|
83
|
-
environment
|
|
84
|
-
...(
|
|
164
|
+
environment,
|
|
165
|
+
...(projectUuid ? { project: projectUuid } : {}),
|
|
85
166
|
}, args.dryRun);
|
|
86
|
-
process.stdout.write(` ${marker.changed ? theme.ok("✓") : theme.dim("–")} ${theme.bold(".jitera.json")} ${theme.dim(`environment "${
|
|
167
|
+
process.stdout.write(` ${marker.changed ? theme.ok("✓") : theme.dim("–")} ${theme.bold(".jitera.json")} ${theme.dim(`environment "${environment}"${projectUuid ? `, project ${projectUuid}` : ""}`)}\n`);
|
|
87
168
|
if (args.dryRun) {
|
|
88
169
|
process.stdout.write(`\n ${theme.dim("dry run, nothing was written")}\n`);
|
|
89
170
|
}
|
package/dist/bin/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/login.js
CHANGED
|
@@ -3,10 +3,12 @@ import { createInterface } from "node:readline/promises";
|
|
|
3
3
|
import { DiscoveryError, discoverDeployment } from "../discovery.js";
|
|
4
4
|
import { UnknownEnvironmentError } from "../environments.js";
|
|
5
5
|
import { DeviceFlowError, pollForAccessToken, requestDeviceAuthorization, } from "../device-flow.js";
|
|
6
|
-
import { GraphqlError, createApiKey, listOrganisations, listProjects, } from "../graphql.js";
|
|
6
|
+
import { GraphqlError, createApiKey, createUserApiKey, isAuthenticationFailure, listOrganisations, listProjects, } from "../graphql.js";
|
|
7
|
+
import { saveCliSession } from "../cli-session.js";
|
|
7
8
|
import { createTheme, heading, startSpinner } from "../theme.js";
|
|
8
9
|
import { SelectCancelledError, interactiveSelect } from "../select.js";
|
|
9
10
|
import { installClaudeCodePlugin } from "../install/claude-code.js";
|
|
11
|
+
import { installStatusLine } from "../install/statusline.js";
|
|
10
12
|
import { installSkills } from "../install/skills.js";
|
|
11
13
|
import { codex } from "../adapters/codex.js";
|
|
12
14
|
import { cursor } from "../adapters/cursor.js";
|
|
@@ -108,9 +110,9 @@ const spinner = startSpinner({
|
|
|
108
110
|
write: (chunk) => process.stdout.write(chunk),
|
|
109
111
|
animate: Boolean(process.stdout.isTTY),
|
|
110
112
|
});
|
|
111
|
-
let
|
|
113
|
+
let tokens;
|
|
112
114
|
try {
|
|
113
|
-
|
|
115
|
+
tokens = await pollForAccessToken({ automationUrl, authorization });
|
|
114
116
|
spinner.stop(theme.ok("Approved."));
|
|
115
117
|
}
|
|
116
118
|
catch (error) {
|
|
@@ -119,7 +121,16 @@ catch (error) {
|
|
|
119
121
|
fail(error.message);
|
|
120
122
|
throw error;
|
|
121
123
|
}
|
|
122
|
-
|
|
124
|
+
// The stored session is what lets `init` list projects later without another
|
|
125
|
+
// browser round-trip: login once, bind repos as often as needed.
|
|
126
|
+
saveCliSession({
|
|
127
|
+
automationUrl,
|
|
128
|
+
environment: args.environment,
|
|
129
|
+
accessToken: tokens.accessToken,
|
|
130
|
+
refreshToken: tokens.refreshToken,
|
|
131
|
+
expiresAt: tokens.expiresInSeconds ? Date.now() + tokens.expiresInSeconds * 1000 : undefined,
|
|
132
|
+
});
|
|
133
|
+
const transport = { automationUrl, accessToken: tokens.accessToken };
|
|
123
134
|
async function choose(items, prompt, label) {
|
|
124
135
|
if (process.stdin.isTTY && process.stdout.isTTY) {
|
|
125
136
|
try {
|
|
@@ -150,8 +161,24 @@ async function choose(items, prompt, label) {
|
|
|
150
161
|
fail(`"${answer.trim()}" is not one of the listed options.`, 2);
|
|
151
162
|
return picked;
|
|
152
163
|
}
|
|
164
|
+
let created;
|
|
165
|
+
let keyScope = "user";
|
|
153
166
|
let projectUuid = args.project;
|
|
167
|
+
// User-level first: one key for every project the account can access. Older
|
|
168
|
+
// deployments reject the projectless params, and we fall back to project keys.
|
|
154
169
|
if (!projectUuid) {
|
|
170
|
+
try {
|
|
171
|
+
created = await createUserApiKey({ name: args.keyName, mcpAccess: args.access }, transport);
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
if (!(error instanceof GraphqlError))
|
|
175
|
+
throw error;
|
|
176
|
+
if (isAuthenticationFailure(error))
|
|
177
|
+
fail(error.message);
|
|
178
|
+
process.stdout.write(`\n ${theme.dim("This deployment issues project keys only — choosing a project.")}\n`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
if (!created && !projectUuid) {
|
|
155
182
|
const organisations = await listOrganisations(transport);
|
|
156
183
|
const named = args.organisation
|
|
157
184
|
? organisations.find((org) => org.slug === args.organisation)
|
|
@@ -200,14 +227,16 @@ if (!projectUuid) {
|
|
|
200
227
|
process.stdout.write(` ${theme.dim("Project")} ${choice.name}\n`);
|
|
201
228
|
}
|
|
202
229
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
230
|
+
if (!created) {
|
|
231
|
+
keyScope = "project";
|
|
232
|
+
try {
|
|
233
|
+
created = await createApiKey({ projectUuid: projectUuid, name: args.keyName, mcpAccess: args.access }, transport);
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
if (error instanceof GraphqlError)
|
|
237
|
+
fail(error.message);
|
|
238
|
+
throw error;
|
|
239
|
+
}
|
|
211
240
|
}
|
|
212
241
|
if (args.install) {
|
|
213
242
|
const environment = args.environment ?? "studio";
|
|
@@ -220,6 +249,12 @@ if (args.install) {
|
|
|
220
249
|
if (!claude.installed) {
|
|
221
250
|
process.stdout.write(` ${theme.dim("Run /plugin inside Claude Code to install and configure jitera-connect manually.")}\n`);
|
|
222
251
|
}
|
|
252
|
+
else {
|
|
253
|
+
const status = installStatusLine({ home: homedir() });
|
|
254
|
+
process.stdout.write(status.installed
|
|
255
|
+
? ` ${theme.ok("✓")} ${theme.bold("Status line")} ${theme.dim("connection state shows at the bottom of Claude Code")}\n`
|
|
256
|
+
: ` ${theme.dim("–")} ${theme.bold("Status line")} ${theme.dim(`skipped (${status.reason})`)}\n`);
|
|
257
|
+
}
|
|
223
258
|
const context = {
|
|
224
259
|
scope: "user",
|
|
225
260
|
home: homedir(),
|
|
@@ -241,11 +276,23 @@ if (args.install) {
|
|
|
241
276
|
`${theme.dim("writes committable AGENTS.md instructions at a repo root")}\n`);
|
|
242
277
|
}
|
|
243
278
|
if (args.json) {
|
|
244
|
-
process.stdout.write(`${JSON.stringify({
|
|
279
|
+
process.stdout.write(`${JSON.stringify({
|
|
280
|
+
apiKey: created.rawKey,
|
|
281
|
+
maskedKey: created.maskedKey,
|
|
282
|
+
scope: keyScope,
|
|
283
|
+
projectUuid: projectUuid ?? null,
|
|
284
|
+
mcpAccess: args.access,
|
|
285
|
+
}, undefined, 2)}\n`);
|
|
245
286
|
}
|
|
246
287
|
else if (!args.install) {
|
|
247
|
-
|
|
288
|
+
const access = args.access === "read" ? "read-only" : "read + write";
|
|
289
|
+
process.stdout.write(`\n ${theme.ok("✓")} ${theme.dim(keyScope === "user"
|
|
290
|
+
? `Created a user-level ${access} key. It works on every project your account can access.`
|
|
291
|
+
: `Created a ${access} key.`)}\n\n`);
|
|
248
292
|
process.stdout.write(` export JITERA_API_KEY=${theme.bold(created.rawKey)}\n\n`);
|
|
249
293
|
process.stdout.write(` ${theme.dim("Then run")} ${theme.accent("npx @jitera/connect")} ${theme.dim("to configure your assistants.")}\n`);
|
|
294
|
+
if (keyScope === "user") {
|
|
295
|
+
process.stdout.write(` ${theme.dim("Bind each repo to its project with")} ${theme.accent("npx @jitera/connect init")}\n`);
|
|
296
|
+
}
|
|
250
297
|
}
|
|
251
298
|
//# sourceMappingURL=login.js.map
|