@jitera/connect 1.3.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.
Files changed (82) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/README.md +96 -25
  4. package/content/session-start-unconfigured.md +11 -0
  5. package/content/session-start.md +5 -4
  6. package/dist/adapters/codex.d.ts.map +1 -1
  7. package/dist/adapters/codex.js +3 -0
  8. package/dist/adapters/codex.js.map +1 -1
  9. package/dist/adapters/cursor.d.ts.map +1 -1
  10. package/dist/adapters/cursor.js +4 -3
  11. package/dist/adapters/cursor.js.map +1 -1
  12. package/dist/adapters/types.d.ts +1 -0
  13. package/dist/adapters/types.d.ts.map +1 -1
  14. package/dist/bin/cli.js +6 -12
  15. package/dist/bin/cli.js.map +1 -1
  16. package/dist/bin/connect.js +6 -0
  17. package/dist/bin/connect.js.map +1 -1
  18. package/dist/bin/init.d.ts +3 -0
  19. package/dist/bin/init.d.ts.map +1 -0
  20. package/dist/bin/init.js +174 -0
  21. package/dist/bin/init.js.map +1 -0
  22. package/dist/bin/login.js +87 -17
  23. package/dist/bin/login.js.map +1 -1
  24. package/dist/bin/proxy.js +21 -2
  25. package/dist/bin/proxy.js.map +1 -1
  26. package/dist/bin/statusline.d.ts +3 -0
  27. package/dist/bin/statusline.d.ts.map +1 -0
  28. package/dist/bin/statusline.js +17 -0
  29. package/dist/bin/statusline.js.map +1 -0
  30. package/dist/cli-session.d.ts +12 -0
  31. package/dist/cli-session.d.ts.map +1 -0
  32. package/dist/cli-session.js +39 -0
  33. package/dist/cli-session.js.map +1 -0
  34. package/dist/device-flow.d.ts +10 -1
  35. package/dist/device-flow.d.ts.map +1 -1
  36. package/dist/device-flow.js +25 -1
  37. package/dist/device-flow.js.map +1 -1
  38. package/dist/graphql.d.ts +5 -0
  39. package/dist/graphql.d.ts.map +1 -1
  40. package/dist/graphql.js +15 -11
  41. package/dist/graphql.js.map +1 -1
  42. package/dist/hooks/session-start.js +32 -2
  43. package/dist/hooks/session-start.js.map +1 -1
  44. package/dist/hooks/user-prompt-submit.js +10 -0
  45. package/dist/hooks/user-prompt-submit.js.map +1 -1
  46. package/dist/install/claude-code.d.ts +2 -0
  47. package/dist/install/claude-code.d.ts.map +1 -1
  48. package/dist/install/claude-code.js +28 -3
  49. package/dist/install/claude-code.js.map +1 -1
  50. package/dist/install/project-root.d.ts +2 -0
  51. package/dist/install/project-root.d.ts.map +1 -0
  52. package/dist/install/project-root.js +9 -0
  53. package/dist/install/project-root.js.map +1 -0
  54. package/dist/install/statusline.d.ts +12 -0
  55. package/dist/install/statusline.d.ts.map +1 -0
  56. package/dist/install/statusline.js +30 -0
  57. package/dist/install/statusline.js.map +1 -0
  58. package/dist/mcp-client.d.ts +2 -1
  59. package/dist/mcp-client.d.ts.map +1 -1
  60. package/dist/mcp-client.js +2 -1
  61. package/dist/mcp-client.js.map +1 -1
  62. package/dist/project-marker.d.ts +15 -0
  63. package/dist/project-marker.d.ts.map +1 -0
  64. package/dist/project-marker.js +59 -0
  65. package/dist/project-marker.js.map +1 -0
  66. package/dist/proxy.d.ts +8 -2
  67. package/dist/proxy.d.ts.map +1 -1
  68. package/dist/proxy.js +23 -4
  69. package/dist/proxy.js.map +1 -1
  70. package/dist/select.d.ts +36 -0
  71. package/dist/select.d.ts.map +1 -0
  72. package/dist/select.js +111 -0
  73. package/dist/select.js.map +1 -0
  74. package/dist/session-status.d.ts +11 -0
  75. package/dist/session-status.d.ts.map +1 -0
  76. package/dist/session-status.js +46 -0
  77. package/dist/session-status.js.map +1 -0
  78. package/dist/statusline.d.ts +7 -0
  79. package/dist/statusline.d.ts.map +1 -0
  80. package/dist/statusline.js +31 -0
  81. package/dist/statusline.js.map +1 -0
  82. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jitera-connect",
3
- "version": "1.2.2",
3
+ "version": "1.5.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": "1.2.2",
3
+ "version": "1.5.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
@@ -1,30 +1,24 @@
1
- # how to install
1
+ # jitera connect
2
2
 
3
- ## one command
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
- Signs you in through your browser, creates an api key, and configures every
10
- assistant it finds. Detected independently: claude code, cursor, codex.
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
- For a pilot or staging environment:
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,6 +38,88 @@ codex plugin marketplace add jitera-product/connect
44
38
  npx @jitera/connect
45
39
  ```
46
40
 
41
+ ## binding a repo to a project
42
+
43
+ ```
44
+ npx @jitera/connect init
45
+ ```
46
+
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.
51
+
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.
55
+
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.
59
+
60
+ ## what applies where
61
+
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
78
+
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.
83
+
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.
122
+
47
123
  ## pilot and staging environments
48
124
 
49
125
  claude code, at install:
@@ -65,16 +141,11 @@ npx @jitera/connect --env=studio-05
65
141
  npx @jitera/connect --env=studio-stage
66
142
  ```
67
143
 
68
- ## the api key
69
-
70
- `login --install` stores the key for you. nothing to export.
71
-
72
- - claude code: your os keychain
73
- - cursor and codex: their own config in your home directory, outside any repo
74
-
75
- installing without `login` leaves cursor and codex reading `JITERA_API_KEY` from
76
- the environment instead:
144
+ ## other flags
77
145
 
78
146
  ```
79
- export JITERA_API_KEY=<your api key>
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
80
151
  ```
@@ -0,0 +1,11 @@
1
+ The project-context plugin is installed, but no API key is configured, so its
2
+ MCP tools are unavailable in this session. Do not call `recall_jitera_memory`
3
+ or `remember_jitera_memory`; the calls will fail.
4
+
5
+ If the user asks about project context, documentation, or shared memory, tell
6
+ them to connect this workspace by running:
7
+
8
+ npx @jitera/connect login --install
9
+
10
+ or by configuring the plugin from the /plugin menu, then restarting the
11
+ assistant.
@@ -1,9 +1,10 @@
1
- Project context tools are connected for this workspace: project documentation,
2
- source, and a shared project memory.
1
+ Project context tools are configured for this workspace: project documentation,
2
+ source, and a shared project memory over MCP.
3
3
 
4
4
  Before your first substantive answer in this session, and before planning or
5
- implementing anything, call `recall_jitera_memory`. An empty result is normal and
6
- is not an error.
5
+ implementing anything, call `recall_jitera_memory`. An empty result is normal
6
+ and is not an error. If the tools are missing from your tool list or a call
7
+ fails, say so and continue without stored context instead of guessing.
7
8
 
8
9
  As decisions are made, constraints are discovered, or you are corrected, persist
9
10
  them with `remember_jitera_memory`. Recall the entity first and re-send its full
@@ -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,OAuCnB,CAAC"}
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"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"}
@@ -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;AAcpC,eAAO,MAAM,MAAM,EAAE,OAmCpB,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"}
@@ -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
  }
@@ -27,12 +28,12 @@ export const cursor = {
27
28
  },
28
29
  skillsDirs({ scope, home, cwd }) {
29
30
  const root = scope === "user" ? home : cwd;
30
- return [join(root, ".agents", "skills"), join(root, ".claude", "skills")];
31
+ return [join(root, ".agents", "skills")];
31
32
  },
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,CAAC,MAAc,EAAE,MAA0B;IAC7D,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,MAAM;QACX,OAAO,EAAE;YACP,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,iBAAiB,WAAW,GAAG;SAC7E;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAY;IAC7B,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,cAAc,EAAE,KAAK;IAErB,MAAM,CAAC,EAAE,IAAI,EAAE;QACb,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE;QAChC,OAAO,KAAK,KAAK,MAAM;YACrB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC;YACnC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACvC,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,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,CAAC,OAAuB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9G,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5F,CAAC;IAED,SAAS,CAAC,OAAuB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5F,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export interface AdapterContext {
6
6
  readonly cwd: string;
7
7
  readonly mcpUrl?: string;
8
8
  readonly apiKey?: string;
9
+ readonly projectUuid?: string | undefined;
9
10
  readonly dryRun?: boolean;
10
11
  }
11
12
  export interface AdapterResult {
@@ -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
@@ -6,8 +6,8 @@ import { fileURLToPath } from "node:url";
6
6
  import { codex } from "../adapters/codex.js";
7
7
  import { cursor } from "../adapters/cursor.js";
8
8
  import { MalformedConfigError } from "../mcp-config.js";
9
- import { writeAgentsMd } from "../install/agents-md.js";
10
9
  import { DEFAULT_BRAND } from "../install/render.js";
10
+ import { readProjectMarker } from "../project-marker.js";
11
11
  import { installSkills, uninstallSkills } from "../install/skills.js";
12
12
  import { DiscoveryError, discoverDeployment } from "../discovery.js";
13
13
  import { UnknownEnvironmentError, resolveStudioUrl } from "../environments.js";
@@ -105,6 +105,9 @@ const context = {
105
105
  home: homedir(),
106
106
  cwd: process.cwd(),
107
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,
108
111
  dryRun: args.dryRun,
109
112
  };
110
113
  const detected = ADAPTERS.filter((adapter) => adapter.detect(context));
@@ -145,17 +148,6 @@ if (!args.skipSkills) {
145
148
  process.stdout.write(skills.changed
146
149
  ? ` ${theme.ok("✓")} ${theme.bold("Skills")} ${theme.dim(`${skills.skills.length} ${skillVerb} ${targetDirs.join(", ")}`)}\n`
147
150
  : ` ${theme.dim("–")} ${theme.bold("Skills")} ${theme.dim(`already up to date in ${targetDirs.join(", ")}`)}\n`);
148
- if (!args.uninstall) {
149
- const agents = writeAgentsMd({
150
- packageRoot: PACKAGE_ROOT,
151
- projectRoot: context.cwd,
152
- values,
153
- dryRun: args.dryRun,
154
- });
155
- process.stdout.write(agents.changed
156
- ? ` ${theme.ok("✓")} ${theme.bold("Instructions")} ${theme.dim(`${agents.agents.action} block in ${agents.agentsPath}`)}\n`
157
- : ` ${theme.dim("–")} ${theme.bold("Instructions")} ${theme.dim(`already up to date in ${agents.agentsPath}`)}\n`);
158
- }
159
151
  }
160
152
  if (args.dryRun) {
161
153
  process.stdout.write(`\n ${theme.dim("dry run, nothing was written")}\n`);
@@ -163,5 +155,7 @@ if (args.dryRun) {
163
155
  else if (!args.uninstall) {
164
156
  process.stdout.write(`\n ${theme.dim("endpoint")} ${theme.accent(mcpUrl)}\n`);
165
157
  process.stdout.write(` ${theme.dim("export JITERA_API_KEY=<your api key> before starting your assistant")}\n`);
158
+ process.stdout.write(` ${theme.dim("Optional:")} ${theme.accent("npx @jitera/connect init")} ` +
159
+ `${theme.dim("writes committable AGENTS.md instructions at the repo root")}\n`);
166
160
  }
167
161
  //# sourceMappingURL=cli.js.map
@@ -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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"}
@@ -3,6 +3,12 @@ const [subcommand] = process.argv.slice(2);
3
3
  if (subcommand === "login") {
4
4
  await import("./login.js");
5
5
  }
6
+ else if (subcommand === "init") {
7
+ await import("./init.js");
8
+ }
9
+ else if (subcommand === "statusline") {
10
+ await import("./statusline.js");
11
+ }
6
12
  else {
7
13
  await import("./cli.js");
8
14
  }
@@ -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,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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":""}
@@ -0,0 +1,174 @@
1
+ #!/usr/bin/env node
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { DiscoveryError, discoverDeployment } from "../discovery.js";
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";
9
+ import { writeAgentsMd } from "../install/agents-md.js";
10
+ import { DEFAULT_BRAND } from "../install/render.js";
11
+ import { resolveGitRoot } from "../install/project-root.js";
12
+ import { writeProjectMarker } from "../project-marker.js";
13
+ import { InvalidChoiceError, SelectCancelledError, chooseFrom } from "../select.js";
14
+ import { createTheme } from "../theme.js";
15
+ const PACKAGE_ROOT = join(dirname(fileURLToPath(import.meta.url)), "..", "..");
16
+ const USAGE = [
17
+ "usage: npx @jitera/connect init [--env=<environment>] [--project=<uuid>] [--dry-run]",
18
+ "",
19
+ "Writes the shared, committable connection files at the root of the current",
20
+ "git repository: an AGENTS.md block for assistants that read it natively, a",
21
+ "CLAUDE.md that imports it, and a .jitera.json recording which deployment",
22
+ "(and optionally which project) this repository belongs to. Commit all three",
23
+ "so your team's assistants see them.",
24
+ ].join("\n");
25
+ function parseArgs(argv) {
26
+ const args = { dryRun: false, help: false };
27
+ for (const arg of argv) {
28
+ if (arg === "init")
29
+ continue;
30
+ else if (arg.startsWith("--env="))
31
+ args.environment = arg.slice("--env=".length);
32
+ else if (arg.startsWith("--project="))
33
+ args.project = arg.slice("--project=".length);
34
+ else if (arg === "--dry-run")
35
+ args.dryRun = true;
36
+ else if (arg === "--help" || arg === "-h")
37
+ args.help = true;
38
+ else
39
+ args.unknown = arg;
40
+ }
41
+ return args;
42
+ }
43
+ const theme = createTheme({ env: process.env, isTty: Boolean(process.stdout.isTTY) });
44
+ const args = parseArgs(process.argv.slice(2));
45
+ if (args.help) {
46
+ process.stdout.write(`${USAGE}\n`);
47
+ process.exit(0);
48
+ }
49
+ if (args.unknown) {
50
+ process.stderr.write(`error: unrecognised argument "${args.unknown}"\n${USAGE}\n`);
51
+ process.exit(2);
52
+ }
53
+ const projectRoot = resolveGitRoot(process.cwd());
54
+ if (!projectRoot) {
55
+ process.stderr.write("error: not inside a git repository. Instructions written outside a repository " +
56
+ "are invisible to assistants that read AGENTS.md from the repository root, and " +
57
+ "an out-of-repo CLAUDE.md leaks into every project below it. Run this from " +
58
+ "inside the repository you want to connect.\n");
59
+ process.exit(2);
60
+ }
61
+ let brand = DEFAULT_BRAND;
62
+ try {
63
+ const deployment = await discoverDeployment({
64
+ environment: args.environment,
65
+ studioUrl: process.env["JITERA_STUDIO_URL"],
66
+ });
67
+ brand = deployment.brand;
68
+ }
69
+ catch (error) {
70
+ if (error instanceof UnknownEnvironmentError) {
71
+ process.stderr.write(`error: ${error.message}\n`);
72
+ process.exit(2);
73
+ }
74
+ if (!(error instanceof DiscoveryError))
75
+ throw error;
76
+ process.stdout.write(` ${theme.dim(`offline, using the default brand "${brand}"`)}\n`);
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
+ }
154
+ const result = writeAgentsMd({
155
+ packageRoot: PACKAGE_ROOT,
156
+ projectRoot,
157
+ values: { BRAND: brand },
158
+ dryRun: args.dryRun,
159
+ });
160
+ process.stdout.write(` ${result.agents.changed ? theme.ok("✓") : theme.dim("–")} ${theme.bold("AGENTS.md")} ${theme.dim(`${result.agents.action} in ${result.agentsPath}`)}\n`);
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";
163
+ const marker = writeProjectMarker(projectRoot, {
164
+ environment,
165
+ ...(projectUuid ? { project: projectUuid } : {}),
166
+ }, args.dryRun);
167
+ process.stdout.write(` ${marker.changed ? theme.ok("✓") : theme.dim("–")} ${theme.bold(".jitera.json")} ${theme.dim(`environment "${environment}"${projectUuid ? `, project ${projectUuid}` : ""}`)}\n`);
168
+ if (args.dryRun) {
169
+ process.stdout.write(`\n ${theme.dim("dry run, nothing was written")}\n`);
170
+ }
171
+ else if (result.changed || marker.changed) {
172
+ process.stdout.write(`\n ${theme.dim("Commit these files so the whole team's assistants read them.")}\n`);
173
+ }
174
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":"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"}