@tryglen/cli 0.34.0 → 0.36.1
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/README.md +39 -27
- package/dist/_utils/agent-adapter.d.ts +0 -13
- package/dist/_utils/agent-adapter.js +1 -19
- package/dist/_utils/agent-adapter.js.map +1 -1
- package/dist/_utils/agents-table.js +1 -9
- package/dist/_utils/agents-table.js.map +1 -1
- package/dist/_utils/cli-error.js +0 -3
- package/dist/_utils/cli-error.js.map +1 -1
- package/dist/_utils/codex-app-server.js +0 -2
- package/dist/_utils/codex-app-server.js.map +1 -1
- package/dist/_utils/codex-hooks-merge.js +0 -11
- package/dist/_utils/codex-hooks-merge.js.map +1 -1
- package/dist/_utils/codex-hooks-setup.js +0 -18
- package/dist/_utils/codex-hooks-setup.js.map +1 -1
- package/dist/_utils/codex-paths.js +0 -3
- package/dist/_utils/codex-paths.js.map +1 -1
- package/dist/_utils/codex-repair-trace.js +0 -3
- package/dist/_utils/codex-repair-trace.js.map +1 -1
- package/dist/_utils/codex-trust-toml.js +1 -9
- package/dist/_utils/codex-trust-toml.js.map +1 -1
- package/dist/_utils/collect-import-files.js +0 -7
- package/dist/_utils/collect-import-files.js.map +1 -1
- package/dist/_utils/config.js +0 -4
- package/dist/_utils/config.js.map +1 -1
- package/dist/_utils/confirm.js +2 -10
- package/dist/_utils/confirm.js.map +1 -1
- package/dist/_utils/credentials.js +0 -3
- package/dist/_utils/credentials.js.map +1 -1
- package/dist/_utils/detect-transcript-format.d.ts +1 -1
- package/dist/_utils/detect-transcript-format.js +0 -7
- package/dist/_utils/detect-transcript-format.js.map +1 -1
- package/dist/_utils/ensure-global-cli.d.ts +0 -12
- package/dist/_utils/ensure-global-cli.js +1 -28
- package/dist/_utils/ensure-global-cli.js.map +1 -1
- package/dist/_utils/ephemeral-session.js +3 -24
- package/dist/_utils/ephemeral-session.js.map +1 -1
- package/dist/_utils/extract-claude-segments.js +1 -5
- package/dist/_utils/extract-claude-segments.js.map +1 -1
- package/dist/_utils/extract-codex-segments.js +0 -9
- package/dist/_utils/extract-codex-segments.js.map +1 -1
- package/dist/_utils/extract-pi-segments.js +1 -5
- package/dist/_utils/extract-pi-segments.js.map +1 -1
- package/dist/_utils/find-bin.js +0 -8
- package/dist/_utils/find-bin.js.map +1 -1
- package/dist/_utils/format-search-result.js +3 -19
- package/dist/_utils/format-search-result.js.map +1 -1
- package/dist/_utils/format-turn-nudges.js +2 -20
- package/dist/_utils/format-turn-nudges.js.map +1 -1
- package/dist/_utils/git-context.d.ts +0 -2
- package/dist/_utils/git-context.js +1 -33
- package/dist/_utils/git-context.js.map +1 -1
- package/dist/_utils/git-hook-setup.js +0 -1
- package/dist/_utils/git-hook-setup.js.map +1 -1
- package/dist/_utils/glen-headers.js +1 -4
- package/dist/_utils/glen-headers.js.map +1 -1
- package/dist/_utils/http.js +1 -8
- package/dist/_utils/http.js.map +1 -1
- package/dist/_utils/idempotency-key.js +1 -4
- package/dist/_utils/idempotency-key.js.map +1 -1
- package/dist/_utils/indicator-app.js +4 -26
- package/dist/_utils/indicator-app.js.map +1 -1
- package/dist/_utils/indicator-health.js +0 -6
- package/dist/_utils/indicator-health.js.map +1 -1
- package/dist/_utils/ingest-diagnosis.js +0 -5
- package/dist/_utils/ingest-diagnosis.js.map +1 -1
- package/dist/_utils/ingest-heartbeat.js +1 -6
- package/dist/_utils/ingest-heartbeat.js.map +1 -1
- package/dist/_utils/install-receipt.d.ts +9 -1
- package/dist/_utils/install-receipt.js +18 -3
- package/dist/_utils/install-receipt.js.map +1 -1
- package/dist/_utils/jcode-bundle.d.ts +3 -0
- package/dist/_utils/jcode-bundle.js +16 -0
- package/dist/_utils/jcode-bundle.js.map +1 -0
- package/dist/_utils/jcode-event.d.ts +3 -0
- package/dist/_utils/jcode-event.js +66 -0
- package/dist/_utils/jcode-event.js.map +1 -0
- package/dist/_utils/jcode-hook-lines.d.ts +5 -0
- package/dist/_utils/jcode-hook-lines.js +7 -0
- package/dist/_utils/jcode-hook-lines.js.map +1 -0
- package/dist/_utils/jcode-hooks-toml.d.ts +8 -0
- package/dist/_utils/jcode-hooks-toml.js +148 -0
- package/dist/_utils/jcode-hooks-toml.js.map +1 -0
- package/dist/_utils/jcode-paths.d.ts +7 -0
- package/dist/_utils/jcode-paths.js +10 -0
- package/dist/_utils/jcode-paths.js.map +1 -0
- package/dist/_utils/jcode-setup.d.ts +27 -0
- package/dist/_utils/jcode-setup.js +151 -0
- package/dist/_utils/jcode-setup.js.map +1 -0
- package/dist/_utils/jcode-skills-sync.d.ts +8 -0
- package/dist/_utils/jcode-skills-sync.js +74 -0
- package/dist/_utils/jcode-skills-sync.js.map +1 -0
- package/dist/_utils/login-check.js +1 -4
- package/dist/_utils/login-check.js.map +1 -1
- package/dist/_utils/managed-block.d.ts +4 -0
- package/dist/_utils/managed-block.js +38 -0
- package/dist/_utils/managed-block.js.map +1 -0
- package/dist/_utils/normalize-boolean-flags.js +2 -7
- package/dist/_utils/normalize-boolean-flags.js.map +1 -1
- package/dist/_utils/open-browser.js +1 -3
- package/dist/_utils/open-browser.js.map +1 -1
- package/dist/_utils/parse-claude-transcript.js +4 -24
- package/dist/_utils/parse-claude-transcript.js.map +1 -1
- package/dist/_utils/parse-codex-transcript.js +1 -22
- package/dist/_utils/parse-codex-transcript.js.map +1 -1
- package/dist/_utils/parse-cursor-db.js +2 -21
- package/dist/_utils/parse-cursor-db.js.map +1 -1
- package/dist/_utils/parse-harbor-atif.js +2 -1
- package/dist/_utils/parse-harbor-atif.js.map +1 -1
- package/dist/_utils/parse-jcode-session.d.ts +14 -0
- package/dist/_utils/parse-jcode-session.js +113 -0
- package/dist/_utils/parse-jcode-session.js.map +1 -0
- package/dist/_utils/parse-pi-transcript.js +1 -35
- package/dist/_utils/parse-pi-transcript.js.map +1 -1
- package/dist/_utils/parse-transcript.js +1 -9
- package/dist/_utils/parse-transcript.js.map +1 -1
- package/dist/_utils/plugin-status.d.ts +1 -1
- package/dist/_utils/plugin-status.js +25 -16
- package/dist/_utils/plugin-status.js.map +1 -1
- package/dist/_utils/post-route.js +0 -7
- package/dist/_utils/post-route.js.map +1 -1
- package/dist/_utils/pr-review-link.js +0 -2
- package/dist/_utils/pr-review-link.js.map +1 -1
- package/dist/_utils/proactive-ticket-log.js +1 -11
- package/dist/_utils/proactive-ticket-log.js.map +1 -1
- package/dist/_utils/record-commit-anchor.js +1 -8
- package/dist/_utils/record-commit-anchor.js.map +1 -1
- package/dist/_utils/refresh-control-state.js +1 -7
- package/dist/_utils/refresh-control-state.js.map +1 -1
- package/dist/_utils/render-callback-page.js +0 -7
- package/dist/_utils/render-callback-page.js.map +1 -1
- package/dist/_utils/resolve-import-workspace.d.ts +0 -7
- package/dist/_utils/resolve-import-workspace.js +1 -13
- package/dist/_utils/resolve-import-workspace.js.map +1 -1
- package/dist/_utils/run-bin.js +0 -2
- package/dist/_utils/run-bin.js.map +1 -1
- package/dist/_utils/session-map.js +0 -5
- package/dist/_utils/session-map.js.map +1 -1
- package/dist/_utils/shell-profile.js +1 -28
- package/dist/_utils/shell-profile.js.map +1 -1
- package/dist/_utils/state-line-memo.d.ts +0 -6
- package/dist/_utils/state-line-memo.js +3 -18
- package/dist/_utils/state-line-memo.js.map +1 -1
- package/dist/_utils/state-line.js +0 -4
- package/dist/_utils/state-line.js.map +1 -1
- package/dist/_utils/state.js +0 -5
- package/dist/_utils/state.js.map +1 -1
- package/dist/_utils/sync-mode-from-server.d.ts +0 -18
- package/dist/_utils/sync-mode-from-server.js +2 -21
- package/dist/_utils/sync-mode-from-server.js.map +1 -1
- package/dist/_utils/transcript-turns.d.ts +1 -1
- package/dist/_utils/transcript-turns.js +1 -51
- package/dist/_utils/transcript-turns.js.map +1 -1
- package/dist/_utils/turn-cache.js +1 -8
- package/dist/_utils/turn-cache.js.map +1 -1
- package/dist/_utils/update.d.ts +0 -10
- package/dist/_utils/update.js +8 -30
- package/dist/_utils/update.js.map +1 -1
- package/dist/_utils/version.js +3 -6
- package/dist/_utils/version.js.map +1 -1
- package/dist/_utils/which.d.ts +0 -5
- package/dist/_utils/which.js +0 -5
- package/dist/_utils/which.js.map +1 -1
- package/dist/_utils/write-commit-trailer.js +1 -5
- package/dist/_utils/write-commit-trailer.js.map +1 -1
- package/dist/bin.js +15 -31
- package/dist/bin.js.map +1 -1
- package/dist/commands/_utils/materialize-skill.js +4 -34
- package/dist/commands/_utils/materialize-skill.js.map +1 -1
- package/dist/commands/_utils/pack-skill-dir.js +6 -27
- package/dist/commands/_utils/pack-skill-dir.js.map +1 -1
- package/dist/commands/artifact.js +2 -5
- package/dist/commands/artifact.js.map +1 -1
- package/dist/commands/code-search.js +0 -6
- package/dist/commands/code-search.js.map +1 -1
- package/dist/commands/doctor.d.ts +0 -17
- package/dist/commands/doctor.js +29 -75
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/feedback.js +2 -10
- package/dist/commands/feedback.js.map +1 -1
- package/dist/commands/git-hooks.js +0 -3
- package/dist/commands/git-hooks.js.map +1 -1
- package/dist/commands/import.js +5 -27
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/incognito.d.ts +0 -5
- package/dist/commands/incognito.js +0 -5
- package/dist/commands/incognito.js.map +1 -1
- package/dist/commands/indicator.d.ts +0 -1
- package/dist/commands/indicator.js +0 -1
- package/dist/commands/indicator.js.map +1 -1
- package/dist/commands/ingest.js +58 -122
- package/dist/commands/ingest.js.map +1 -1
- package/dist/commands/install.d.ts +1 -0
- package/dist/commands/install.js +52 -93
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/invite.d.ts +0 -6
- package/dist/commands/invite.js +0 -16
- package/dist/commands/invite.js.map +1 -1
- package/dist/commands/login.js +0 -15
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/onboard.js +0 -6
- package/dist/commands/onboard.js.map +1 -1
- package/dist/commands/org.js +0 -2
- package/dist/commands/org.js.map +1 -1
- package/dist/commands/pr-link.js +2 -15
- package/dist/commands/pr-link.js.map +1 -1
- package/dist/commands/search.js +0 -5
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/session-start.d.ts +0 -21
- package/dist/commands/session-start.js +19 -68
- package/dist/commands/session-start.js.map +1 -1
- package/dist/commands/set-mode.d.ts +0 -6
- package/dist/commands/set-mode.js +2 -12
- package/dist/commands/set-mode.js.map +1 -1
- package/dist/commands/skill.js +5 -35
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/statusline.d.ts +0 -13
- package/dist/commands/statusline.js +0 -15
- package/dist/commands/statusline.js.map +1 -1
- package/dist/commands/suggestions.d.ts +0 -6
- package/dist/commands/suggestions.js +0 -7
- package/dist/commands/suggestions.js.map +1 -1
- package/dist/commands/takeover/_utils/agent-paths.js +2 -3
- package/dist/commands/takeover/_utils/agent-paths.js.map +1 -1
- package/dist/commands/takeover/_utils/cursor-store.js +1 -3
- package/dist/commands/takeover/_utils/cursor-store.js.map +1 -1
- package/dist/commands/takeover/_utils/write-codex-desktop-session.js +1 -4
- package/dist/commands/takeover/_utils/write-codex-desktop-session.js.map +1 -1
- package/dist/commands/takeover/_utils/write-codex-session.js +1 -2
- package/dist/commands/takeover/_utils/write-codex-session.js.map +1 -1
- package/dist/commands/uninstall.d.ts +0 -1
- package/dist/commands/uninstall.js +7 -7
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts +0 -10
- package/dist/commands/update.js +21 -30
- package/dist/commands/update.js.map +1 -1
- package/dist/jcode/plugin.json +8 -0
- package/dist/jcode/preferred-tools.md +3 -0
- package/dist/jcode/prompt-overlay.md +15 -0
- package/dist/jcode/skills/code-search/SKILL.md +19 -0
- package/dist/jcode/skills/controls/SKILL.md +45 -0
- package/dist/jcode/skills/create-artifact/SKILL.md +11 -0
- package/dist/jcode/skills/create-skill/SKILL.md +41 -0
- package/dist/jcode/skills/feedback/SKILL.md +59 -0
- package/dist/jcode/skills/forget/SKILL.md +41 -0
- package/dist/jcode/skills/import-transcripts/SKILL.md +27 -0
- package/dist/jcode/skills/invite/SKILL.md +28 -0
- package/dist/jcode/skills/search/SKILL.md +35 -0
- package/dist/jcode/skills/session-takeover/SKILL.md +67 -0
- package/dist/jcode/skills/setup/SKILL.md +62 -0
- package/dist/jcode/skills/use-artifact/SKILL.md +11 -0
- package/dist/jcode/skills/use-skill/SKILL.md +10 -0
- package/package.json +5 -3
package/dist/commands/install.js
CHANGED
|
@@ -15,6 +15,7 @@ import { agentsJsonPath, findBin, isExecutable, persistAgentPath, } from "../_ut
|
|
|
15
15
|
import { gitContext } from "../_utils/git-context.js";
|
|
16
16
|
import { ensureIndicatorRunning, indicatorOptedOut, } from "../_utils/indicator-app.js";
|
|
17
17
|
import { installReceipt } from "../_utils/install-receipt.js";
|
|
18
|
+
import { installJcode } from "../_utils/jcode-setup.js";
|
|
18
19
|
import { glenPluginStatus } from "../_utils/plugin-status.js";
|
|
19
20
|
import { reportCliInstall } from "../_utils/report-cli-install.js";
|
|
20
21
|
import { err, fromPromise, ok } from "../_utils/result.js";
|
|
@@ -23,18 +24,10 @@ import { addGlenLoginCheckBlock, loginProfileForShell, } from "../_utils/shell-p
|
|
|
23
24
|
import { statePath } from "../_utils/state.js";
|
|
24
25
|
import { isInstalled } from "../_utils/which.js";
|
|
25
26
|
import { login } from "./login.js";
|
|
26
|
-
// ---------------------------------------------------------------------------
|
|
27
|
-
// Settings path (GLEN_CLAUDE_SETTINGS_PATH env var is for test overrides only)
|
|
28
|
-
// ---------------------------------------------------------------------------
|
|
29
27
|
const claudeSettingsPath = () => process.env.GLEN_CLAUDE_SETTINGS_PATH ??
|
|
30
28
|
join(homedir(), ".claude", "settings.json");
|
|
31
|
-
// ---------------------------------------------------------------------------
|
|
32
|
-
// Path overrides (--claude-path / --codex-path / --pi-path) — validated and
|
|
33
|
-
// persisted to ~/.glen/agents.json BEFORE detection, so findBin picks them up
|
|
34
|
-
// immediately.
|
|
35
|
-
// ---------------------------------------------------------------------------
|
|
36
29
|
const applyPathOverrides = async (paths) => {
|
|
37
|
-
for (const bin of ["claude", "codex", "pi"]) {
|
|
30
|
+
for (const bin of ["claude", "codex", "pi", "jcode"]) {
|
|
38
31
|
const path = paths?.[bin];
|
|
39
32
|
if (path === undefined)
|
|
40
33
|
continue;
|
|
@@ -58,9 +51,6 @@ const applyPathOverrides = async (paths) => {
|
|
|
58
51
|
}
|
|
59
52
|
return ok(undefined);
|
|
60
53
|
};
|
|
61
|
-
// ---------------------------------------------------------------------------
|
|
62
|
-
// Step label: last two args make a readable name ("marketplace add", "install glen@glen")
|
|
63
|
-
// ---------------------------------------------------------------------------
|
|
64
54
|
const stepLabel = (step) => step.slice(1).join(" ");
|
|
65
55
|
const recordInstallerStatePaths = async () => {
|
|
66
56
|
const paths = [
|
|
@@ -76,13 +66,6 @@ const recordInstallerStatePaths = async () => {
|
|
|
76
66
|
}
|
|
77
67
|
}
|
|
78
68
|
};
|
|
79
|
-
// ---------------------------------------------------------------------------
|
|
80
|
-
// Statusline for Claude Code — configured by default (no opt-in prompt).
|
|
81
|
-
// An existing statusLine is never overwritten; we print a merge note instead.
|
|
82
|
-
// ---------------------------------------------------------------------------
|
|
83
|
-
// Read + parse the settings file. Missing file → empty settings; an
|
|
84
|
-
// unreadable/corrupt file → the root-cause parse error (kept so the user
|
|
85
|
-
// sees WHY their settings file was rejected, not just that it was).
|
|
86
69
|
const readClaudeSettings = async (filePath) => {
|
|
87
70
|
const rawResult = await fromPromise(readFile(filePath, "utf-8"));
|
|
88
71
|
if (!rawResult.ok)
|
|
@@ -100,8 +83,6 @@ const readClaudeSettings = async (filePath) => {
|
|
|
100
83
|
const handleClaudeStatusline = async () => {
|
|
101
84
|
const filePath = claudeSettingsPath();
|
|
102
85
|
const read = await readClaudeSettings(filePath);
|
|
103
|
-
// Corrupt JSON: structured inline error (statusline failure must not abort
|
|
104
|
-
// the install) — tell the user exactly what to fix and what to add.
|
|
105
86
|
if ("parseError" in read) {
|
|
106
87
|
process.stdout.write(formatCliError(cliErr({
|
|
107
88
|
what: "~/.claude/settings.json is not valid JSON",
|
|
@@ -112,14 +93,12 @@ const handleClaudeStatusline = async () => {
|
|
|
112
93
|
return;
|
|
113
94
|
}
|
|
114
95
|
const existingSettings = read.settings;
|
|
115
|
-
// If statusLine already exists, print snippet + merge note; do NOT touch
|
|
116
96
|
if ("statusLine" in existingSettings) {
|
|
117
97
|
process.stdout.write(" ℹ statusLine already configured. To add glen, merge this into your existing command:\n");
|
|
118
98
|
process.stdout.write(` "statusLine": { "type": "command", "command": "glen statusline" }\n`);
|
|
119
99
|
process.stdout.write(` (manual merge required — glen won't overwrite your existing statusLine)\n`);
|
|
120
100
|
return;
|
|
121
101
|
}
|
|
122
|
-
// Write back with statusLine key added — atomic tmp+rename
|
|
123
102
|
const updated = {
|
|
124
103
|
...existingSettings,
|
|
125
104
|
statusLine: { type: "command", command: "glen statusline" },
|
|
@@ -161,16 +140,10 @@ const handleClaudeStatusline = async () => {
|
|
|
161
140
|
}
|
|
162
141
|
process.stdout.write(" ✓ statusline configured\n");
|
|
163
142
|
};
|
|
164
|
-
// ---------------------------------------------------------------------------
|
|
165
|
-
// Post-install actions per agent. Returns true when the post-install fully
|
|
166
|
-
// succeeded (codex: hooks registered AND trusted; claude: always true).
|
|
167
|
-
// ---------------------------------------------------------------------------
|
|
168
143
|
const handlePostInstall = async (agent) => {
|
|
169
144
|
if (agent.postInstall === "codex") {
|
|
170
|
-
// Codex never fires plugin-manifest hooks (openai/codex#16430), so
|
|
171
|
-
//
|
|
172
|
-
// and auto-trust them ([hooks.state] in ~/.codex/config.toml) —
|
|
173
|
-
// running `glen install` is the consent moment.
|
|
145
|
+
// Codex never fires plugin-manifest hooks (openai/codex#16430), so register them in ~/.codex/hooks.json
|
|
146
|
+
// and auto-trust them; running `glen install` is the consent moment.
|
|
174
147
|
process.stdout.write("\n Registering glen hooks in Codex's user config layer\n" +
|
|
175
148
|
" (workaround for openai/codex#16430 — plugin hooks don't fire):\n");
|
|
176
149
|
const r = await installCodexHooks();
|
|
@@ -189,7 +162,6 @@ const handlePostInstall = async (agent) => {
|
|
|
189
162
|
}
|
|
190
163
|
const glenHooks = verify.value.filter((e) => e.source === "user" &&
|
|
191
164
|
e.command.trimStart().startsWith(GLEN_OWNER_PREFIX));
|
|
192
|
-
// Empty listing → a "verified trusted" ✓ would be vacuous.
|
|
193
165
|
if (glenHooks.length === 0) {
|
|
194
166
|
process.stdout.write(" ⚠ could not verify hook trust — run `glen doctor` after install\n");
|
|
195
167
|
return false;
|
|
@@ -207,22 +179,33 @@ const handlePostInstall = async (agent) => {
|
|
|
207
179
|
return false;
|
|
208
180
|
}
|
|
209
181
|
if (agent.postInstall === "claude") {
|
|
210
|
-
// No prompt — statusline setup is non-interactive, so it runs in both
|
|
211
|
-
// interactive and scripted (--agent) installs.
|
|
212
182
|
await handleClaudeStatusline();
|
|
213
183
|
process.stdout.write("\n Tip: enable auto-update for the glen marketplace in /plugin → Marketplaces.\n");
|
|
214
184
|
}
|
|
215
185
|
if (agent.postInstall === "pi") {
|
|
216
|
-
// Pi loads extensions at startup — an already-running pi needs a reload
|
|
217
|
-
// before the glen extension (and its hooks) exist in the session.
|
|
218
186
|
process.stdout.write("\n Restart pi (or run /reload inside pi) to load the glen extension.\n");
|
|
219
187
|
}
|
|
220
188
|
return true;
|
|
221
189
|
};
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
190
|
+
const JCODE_CHOICE = { name: "jcode", bin: "jcode" };
|
|
191
|
+
const handleJcodeInstall = async () => {
|
|
192
|
+
process.stdout.write("\n Installing jcode plugin (file-based — jcode has no plugin CLI):\n");
|
|
193
|
+
const r = await installJcode();
|
|
194
|
+
if (!r.ok) {
|
|
195
|
+
process.stdout.write(` ✗ ${r.error.what}\n → ${r.error.remedy}\n`);
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
198
|
+
const mark = (status) => status === "written" ? "✓" : "✓ (already up to date)";
|
|
199
|
+
process.stdout.write(` hooks in ~/.jcode/config.toml... ${mark(r.value.hooks)}\n`);
|
|
200
|
+
process.stdout.write(` ~/.jcode/prompt-overlay.md... ${mark(r.value.promptOverlay)}\n`);
|
|
201
|
+
process.stdout.write(` ~/.jcode/preferred-tools.md... ${mark(r.value.preferredTools)}\n`);
|
|
202
|
+
process.stdout.write(` skills in ~/.jcode/skills... ✓ ${r.value.skills.copied.length} installed\n`);
|
|
203
|
+
for (const name of r.value.skills.skipped)
|
|
204
|
+
process.stdout.write(` ⚠ kept your own ~/.jcode/skills/${name} (not glen's) — glen's copy was not installed\n`);
|
|
205
|
+
process.stdout.write("\n Start a NEW jcode session — jcode reads its prompt files at session start.\n" +
|
|
206
|
+
" jcode can't display glen's status; check it with `glen status`.\n");
|
|
207
|
+
return true;
|
|
208
|
+
};
|
|
226
209
|
const promptConnect = async () => {
|
|
227
210
|
const creds = await readCredentials();
|
|
228
211
|
if (creds)
|
|
@@ -231,8 +214,7 @@ const promptConnect = async () => {
|
|
|
231
214
|
process.stdout.write(" Run `glen login` to connect your account.\n\n");
|
|
232
215
|
return;
|
|
233
216
|
}
|
|
234
|
-
//
|
|
235
|
-
// prompts@2.4.2 crashes the process on escape-prefixed keypresses).
|
|
217
|
+
// Not `prompts`' confirm: prompts@2.4.2 crashes on escape-prefixed keypresses.
|
|
236
218
|
const connect = await confirmYesNo({
|
|
237
219
|
message: "Connect your glen account now?",
|
|
238
220
|
initial: true,
|
|
@@ -247,9 +229,6 @@ const promptConnect = async () => {
|
|
|
247
229
|
process.stdout.write(" Run `glen login` to try again.\n\n");
|
|
248
230
|
}
|
|
249
231
|
};
|
|
250
|
-
// The menu bar indicator is on by default — it is the only surface that tells
|
|
251
|
-
// desktop-app users their recording state. Non-fatal: a failure here must not
|
|
252
|
-
// fail the plugin install.
|
|
253
232
|
const setUpIndicator = async () => {
|
|
254
233
|
if (process.platform !== "darwin")
|
|
255
234
|
return;
|
|
@@ -259,8 +238,6 @@ const setUpIndicator = async () => {
|
|
|
259
238
|
? " ✓ menu bar indicator started — run `glen indicator stop` to hide it\n"
|
|
260
239
|
: " ⚠ could not start the menu bar indicator — run `glen doctor` for details\n");
|
|
261
240
|
};
|
|
262
|
-
// In scripted mode (--agent) never open an interactive prompt — print the
|
|
263
|
-
// login hint instead. promptConnect itself already handles the non-TTY case.
|
|
264
241
|
const connectOrHint = async (agentBin) => {
|
|
265
242
|
await setUpIndicator();
|
|
266
243
|
if (agentBin === undefined) {
|
|
@@ -273,8 +250,7 @@ const connectOrHint = async (agentBin) => {
|
|
|
273
250
|
}
|
|
274
251
|
};
|
|
275
252
|
const reportInstallCompletion = async (install, agentBin) => {
|
|
276
|
-
//
|
|
277
|
-
// outbox, which report-cli-install clears a few lines below.
|
|
253
|
+
// Recorded before the pending outbox, which report-cli-install clears below.
|
|
278
254
|
await installReceipt.recordInstalledAt(new Date().toISOString());
|
|
279
255
|
await installReceipt.recordPendingInstall({
|
|
280
256
|
...install,
|
|
@@ -283,12 +259,8 @@ const reportInstallCompletion = async (install, agentBin) => {
|
|
|
283
259
|
await connectOrHint(agentBin);
|
|
284
260
|
await reportCliInstall();
|
|
285
261
|
};
|
|
286
|
-
//
|
|
287
|
-
//
|
|
288
|
-
// PATH, but the plugins' hooks shell out to `glen`. Ensure one exists before
|
|
289
|
-
// installing plugins; every failure warns and continues (the hooks fail open,
|
|
290
|
-
// and the plugins start working the moment a binary appears).
|
|
291
|
-
// ---------------------------------------------------------------------------
|
|
262
|
+
// npx doesn't link `glen` onto PATH, but plugin hooks shell out to it.
|
|
263
|
+
// Every failure warns and continues: hooks fail open until a binary appears.
|
|
292
264
|
const ensureCliBinary = async () => {
|
|
293
265
|
const outcome = ensureGlobalCli((hadExisting) => {
|
|
294
266
|
process.stdout.write(hadExisting
|
|
@@ -317,17 +289,12 @@ const ensureCliBinary = async () => {
|
|
|
317
289
|
? ` ⚠ Couldn't update your older glen.\n${permissionHint}${manualInstallHint}\n`
|
|
318
290
|
: ` ⚠ Couldn't install the glen command — the plugins won't work without it.\n${permissionHint}${manualInstallHint}\n`);
|
|
319
291
|
};
|
|
320
|
-
// ---------------------------------------------------------------------------
|
|
321
|
-
// Main install command
|
|
322
|
-
// ---------------------------------------------------------------------------
|
|
323
292
|
const install = async (agentBin, paths) => {
|
|
324
293
|
process.stdout.write("\n 🏔️ glen — install agent plugins\n\n");
|
|
325
294
|
const overrides = await applyPathOverrides(paths);
|
|
326
295
|
if (!overrides.ok)
|
|
327
296
|
return overrides;
|
|
328
297
|
await recordInstallerStatePaths();
|
|
329
|
-
// Login-check fence: warns on SSH login when this machine never ingests.
|
|
330
|
-
// Unsupported shells (loginProfileForShell → null) get no write, no error.
|
|
331
298
|
const profile = loginProfileForShell();
|
|
332
299
|
if (profile) {
|
|
333
300
|
const fence = await addGlenLoginCheckBlock(profile.profilePath);
|
|
@@ -337,13 +304,10 @@ const install = async (agentBin, paths) => {
|
|
|
337
304
|
process.stdout.write(` ✓ login-shell check added to ${profile.profilePath}\n`);
|
|
338
305
|
}
|
|
339
306
|
else {
|
|
340
|
-
// Non-fatal: the fence is a nicety, not a prerequisite for recording.
|
|
341
307
|
process.stdout.write(` ⚠ could not add the login-shell check to ${profile.profilePath} — run \`glen doctor\` to check recording later\n`);
|
|
342
308
|
}
|
|
343
309
|
}
|
|
344
310
|
await ensureCliBinary();
|
|
345
|
-
// Cursor has no plugin CLI (install is editor-side via /add-plugin) — the
|
|
346
|
-
// scripted path prints guided instructions instead of running steps.
|
|
347
311
|
const printCursorInstructions = () => {
|
|
348
312
|
process.stdout.write("\n Cursor plugin — install inside the editor (Cursor has no plugin CLI):\n" +
|
|
349
313
|
" 1. Open Cursor's agent chat and type: /add-plugin\n" +
|
|
@@ -360,22 +324,18 @@ const install = async (agentBin, paths) => {
|
|
|
360
324
|
return ok(undefined);
|
|
361
325
|
}
|
|
362
326
|
const detected = AGENTS.filter((a) => isInstalled(a.bin));
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
// not in AGENTS and never appears in `detected`. Handle it as a success
|
|
366
|
-
// case: print guided instructions and return ok.
|
|
327
|
+
const jcodeDetected = isInstalled("jcode");
|
|
328
|
+
if (detected.length === 0 && !jcodeDetected) {
|
|
367
329
|
if (isInstalled("cursor")) {
|
|
368
330
|
process.stdout.write(" Detected coding agents:\n ✓ Cursor (cursor) — editor-side install\n\n");
|
|
369
331
|
printCursorInstructions();
|
|
370
332
|
await reportInstallCompletion({ agents: ["cursor"], outcome: "instructions" }, agentBin);
|
|
371
333
|
return ok(undefined);
|
|
372
334
|
}
|
|
373
|
-
// No login nudge here — a connect prompt before the user learns nothing
|
|
374
|
-
// was detected is confusing, and pointless without an agent to feed.
|
|
375
335
|
return err(cliErr({
|
|
376
336
|
what: "no coding agents detected",
|
|
377
|
-
why: "looked for `claude`, `codex`, and `pi` on PATH, in /opt/homebrew/bin, /usr/local/bin, ~/.local/bin, ~/bin, and via your login shell; for codex, also inside the Codex Desktop app bundle (/Applications/ChatGPT.app); also looked for the `cursor` launcher (Cursor installs are editor-side via /add-plugin)",
|
|
378
|
-
remedy: "if one IS installed: run `which codex` (or `which claude` / `which pi`) in your terminal, then `glen install --codex-path <that path>` (or `--claude-path` / `--pi-path`). Docs: https://tryglen.com/docs/plugins",
|
|
337
|
+
why: "looked for `claude`, `codex`, and `pi` on PATH, in /opt/homebrew/bin, /usr/local/bin, ~/.local/bin, ~/bin, and via your login shell; for codex, also inside the Codex Desktop app bundle (/Applications/ChatGPT.app); also looked for the `cursor` launcher (Cursor installs are editor-side via /add-plugin); also looked for `jcode` (file-based install)",
|
|
338
|
+
remedy: "if one IS installed: run `which codex` (or `which claude` / `which pi`) in your terminal, then `glen install --codex-path <that path>` (or `--claude-path` / `--pi-path` / `--jcode-path`). Docs: https://tryglen.com/docs/plugins",
|
|
379
339
|
}));
|
|
380
340
|
}
|
|
381
341
|
process.stdout.write(" Detected coding agents:\n");
|
|
@@ -385,19 +345,27 @@ const install = async (agentBin, paths) => {
|
|
|
385
345
|
if (isInstalled("cursor")) {
|
|
386
346
|
process.stdout.write(" ✓ Cursor (cursor) — editor-side install\n");
|
|
387
347
|
}
|
|
348
|
+
if (jcodeDetected) {
|
|
349
|
+
process.stdout.write(" ✓ jcode (jcode) — file-based install\n");
|
|
350
|
+
}
|
|
388
351
|
process.stdout.write("\n");
|
|
389
|
-
// "claude-code" is the hook-line vocabulary (--agent claude-code) — accept
|
|
390
|
-
// it as an alias for the claude bin.
|
|
391
352
|
const normalized = agentBin === "claude-code" ? "claude" : agentBin;
|
|
392
353
|
const selected = await (async () => {
|
|
393
354
|
if (normalized !== undefined) {
|
|
355
|
+
if (normalized === "jcode")
|
|
356
|
+
return jcodeDetected ? [JCODE_CHOICE] : [];
|
|
394
357
|
return detected.filter((a) => a.bin === normalized);
|
|
395
358
|
}
|
|
396
|
-
const choices =
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
359
|
+
const choices = [
|
|
360
|
+
...detected.map((a) => ({
|
|
361
|
+
title: `${a.name} plugin`,
|
|
362
|
+
value: a,
|
|
363
|
+
selected: true,
|
|
364
|
+
})),
|
|
365
|
+
...(jcodeDetected
|
|
366
|
+
? [{ title: "jcode plugin", value: JCODE_CHOICE, selected: true }]
|
|
367
|
+
: []),
|
|
368
|
+
];
|
|
401
369
|
const response = await prompts({
|
|
402
370
|
type: "multiselect",
|
|
403
371
|
name: "plugins",
|
|
@@ -411,15 +379,12 @@ const install = async (agentBin, paths) => {
|
|
|
411
379
|
await connectOrHint(agentBin);
|
|
412
380
|
return err(cliErr({
|
|
413
381
|
what: `"${agentBin}" is not an installed agent`,
|
|
414
|
-
why: "expected: claude | codex | cursor | pi",
|
|
382
|
+
why: "expected: claude | codex | cursor | pi | jcode",
|
|
415
383
|
remedy: `if it IS installed, run \`which ${normalized}\` in your terminal and pass \`glen install --${normalized}-path <path>\``,
|
|
416
384
|
}));
|
|
417
385
|
}
|
|
418
386
|
if (selected.length === 0) {
|
|
419
387
|
process.stdout.write(" No plugins selected.\n");
|
|
420
|
-
// In interactive mode, still show Cursor guidance when it's detected so
|
|
421
|
-
// the user knows how to install the Cursor plugin even if they selected
|
|
422
|
-
// nothing from the AGENTS multiselect.
|
|
423
388
|
if (agentBin === undefined && isInstalled("cursor")) {
|
|
424
389
|
printCursorInstructions();
|
|
425
390
|
}
|
|
@@ -428,11 +393,11 @@ const install = async (agentBin, paths) => {
|
|
|
428
393
|
}
|
|
429
394
|
const results = [];
|
|
430
395
|
for (const agent of selected) {
|
|
431
|
-
|
|
432
|
-
|
|
396
|
+
if (agent.bin === "jcode") {
|
|
397
|
+
results.push(await handleJcodeInstall());
|
|
398
|
+
continue;
|
|
399
|
+
}
|
|
433
400
|
const resolvedBin = findBin(agent.bin) ?? agent.bin;
|
|
434
|
-
// Converge: already installed → run the update steps instead of failing
|
|
435
|
-
// the `plugin add/install` step on a re-run; unknown → attempt install.
|
|
436
401
|
const status = glenPluginStatus(agent.bin);
|
|
437
402
|
const converging = status === "installed";
|
|
438
403
|
process.stdout.write(converging
|
|
@@ -441,8 +406,7 @@ const install = async (agentBin, paths) => {
|
|
|
441
406
|
for (const step of converging ? agent.updateSteps : agent.steps) {
|
|
442
407
|
const label = stepLabel(step);
|
|
443
408
|
const r = runBin(resolvedBin, step);
|
|
444
|
-
//
|
|
445
|
-
// `plugin add` must not report "Done! … memory is active".
|
|
409
|
+
// A failed `plugin add` must not report "memory is active".
|
|
446
410
|
results.push(r.ok);
|
|
447
411
|
if (r.ok) {
|
|
448
412
|
process.stdout.write(` ${label}... ✓\n`);
|
|
@@ -455,17 +419,12 @@ const install = async (agentBin, paths) => {
|
|
|
455
419
|
}
|
|
456
420
|
results.push(await handlePostInstall(agent));
|
|
457
421
|
}
|
|
458
|
-
// Print Cursor instructions in the interactive flow when Cursor is detected —
|
|
459
|
-
// interactive users get the guided install alongside any scripted agents.
|
|
460
422
|
if (agentBin === undefined && isInstalled("cursor")) {
|
|
461
423
|
printCursorInstructions();
|
|
462
424
|
}
|
|
463
|
-
// Best-effort: install the prepare-commit-msg git hook when inside a git
|
|
464
|
-
// repo. A failure must never abort `glen install`.
|
|
465
425
|
if (gitContext(process.cwd()).repoName) {
|
|
466
426
|
const { installGitHooks } = await import("./git-hooks.js");
|
|
467
427
|
const gh = await installGitHooks({ absolute: false });
|
|
468
|
-
// best-effort: a hook-install failure must not fail `glen install`
|
|
469
428
|
if (!gh.ok)
|
|
470
429
|
process.stderr.write("note: skipped git-hook install (not fatal)\n");
|
|
471
430
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
import { type CliError } from "../_utils/cli-error.js";
|
|
2
2
|
import { type Result } from "../_utils/result.js";
|
|
3
|
-
/**
|
|
4
|
-
* `glen invite <email> [more…] [--role admin]` — invite teammates to the active
|
|
5
|
-
* org by email. Mirrors the dashboard invite (same Better-Auth invitation +
|
|
6
|
-
* `/accept-invitation/<id>` flow), so a teammate accepts and lands straight in
|
|
7
|
-
* the shared memory. postRoute owns auth/426/no-org handling.
|
|
8
|
-
*/
|
|
9
3
|
declare const invite: (emails: string[], role: "member" | "admin") => Promise<Result<void, CliError>>;
|
|
10
4
|
export { invite };
|
package/dist/commands/invite.js
CHANGED
|
@@ -3,9 +3,6 @@ import { config } from "../_utils/config.js";
|
|
|
3
3
|
import { postRoute } from "../_utils/post-route.js";
|
|
4
4
|
import { err, ok } from "../_utils/result.js";
|
|
5
5
|
import { readState } from "../_utils/state.js";
|
|
6
|
-
// Pragmatic address check — the server validates authoritatively (zod .email()).
|
|
7
|
-
// We only catch obvious typos client-side so a bad arg fails fast without a round
|
|
8
|
-
// trip and without a confusing server error.
|
|
9
6
|
const EMAIL_RE = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
10
7
|
const asStringArray = (v) => Array.isArray(v) ? v.filter((x) => typeof x === "string") : [];
|
|
11
8
|
const asFailedArray = (v) => Array.isArray(v)
|
|
@@ -13,8 +10,6 @@ const asFailedArray = (v) => Array.isArray(v)
|
|
|
13
10
|
const row = x;
|
|
14
11
|
if (typeof row.email !== "string")
|
|
15
12
|
return [];
|
|
16
|
-
// exactOptionalPropertyTypes: only attach `reason` when it's a string,
|
|
17
|
-
// never as an explicit `undefined`.
|
|
18
13
|
return [
|
|
19
14
|
typeof row.reason === "string"
|
|
20
15
|
? { email: row.email, reason: row.reason }
|
|
@@ -22,19 +17,10 @@ const asFailedArray = (v) => Array.isArray(v)
|
|
|
22
17
|
];
|
|
23
18
|
})
|
|
24
19
|
: [];
|
|
25
|
-
/**
|
|
26
|
-
* `glen invite <email> [more…] [--role admin]` — invite teammates to the active
|
|
27
|
-
* org by email. Mirrors the dashboard invite (same Better-Auth invitation +
|
|
28
|
-
* `/accept-invitation/<id>` flow), so a teammate accepts and lands straight in
|
|
29
|
-
* the shared memory. postRoute owns auth/426/no-org handling.
|
|
30
|
-
*/
|
|
31
20
|
const invite = async (emails, role) => {
|
|
32
21
|
const cleaned = [
|
|
33
22
|
...new Set(emails.map((e) => e.trim().toLowerCase()).filter(Boolean)),
|
|
34
23
|
];
|
|
35
|
-
// No email given → print a shareable join link for the active org. Anyone who
|
|
36
|
-
// signs in with a verified email on the org's work-email domain joins
|
|
37
|
-
// automatically (gated server-side), so a leaked link is useless to outsiders.
|
|
38
24
|
if (cleaned.length === 0) {
|
|
39
25
|
const state = await readState();
|
|
40
26
|
if (!state?.activeOrgId)
|
|
@@ -64,8 +50,6 @@ const invite = async (emails, role) => {
|
|
|
64
50
|
process.stdout.write(`· ${e} is already a member\n`);
|
|
65
51
|
for (const f of failed)
|
|
66
52
|
process.stdout.write(`✗ Could not invite ${f.email}${f.reason ? ` (${f.reason})` : ""}\n`);
|
|
67
|
-
// Nothing landed and at least one address failed → surface a non-zero exit so
|
|
68
|
-
// scripts/agents notice. A mix (some sent, some already members) is success.
|
|
69
53
|
if (invited.length === 0 && alreadyMember.length === 0 && failed.length > 0)
|
|
70
54
|
return err(cliErr({
|
|
71
55
|
what: "no invitations were sent",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invite.js","sourceRoot":"","sources":["../../src/commands/invite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAe,GAAG,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,
|
|
1
|
+
{"version":3,"file":"invite.js","sourceRoot":"","sources":["../../src/commands/invite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAe,GAAG,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,QAAQ,GAAG,4BAA4B,CAAC;AAI9C,MAAM,aAAa,GAAG,CAAC,CAAU,EAAY,EAAE,CAC7C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAE9E,MAAM,aAAa,GAAG,CAAC,CAAU,EAAY,EAAE,CAC7C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACd,MAAM,GAAG,GAAG,CAA0C,CAAC;QACvD,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAC7C,OAAO;YACL,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;gBAC5B,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;gBAC1C,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE;SACzB,CAAC;IACJ,CAAC,CAAC;IACJ,CAAC,CAAC,EAAE,CAAC;AAET,MAAM,MAAM,GAAG,KAAK,EAClB,MAAgB,EAChB,IAAwB,EACS,EAAE;IACnC,MAAM,OAAO,GAAG;QACd,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACtE,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,WAAW;YACrB,OAAO,GAAG,CACR,MAAM,CAAC;gBACL,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,6BAA6B;aACtC,CAAC,CACH,CAAC;QACJ,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,SAAS,KAAK,CAAC,WAAW,EAAE,CAAC;QAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iDAAiD,IAAI,sMAAsM,CAC5P,CAAC;QACF,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QACpB,OAAO,GAAG,CACR,MAAM,CAAC;YACL,IAAI,EAAE,sBAAsB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChD,MAAM,EAAE,wCAAwC;SACjD,CAAC,CACH,CAAC;IAEJ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IAExB,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE/C,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC7E,KAAK,MAAM,CAAC,IAAI,aAAa;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACvD,KAAK,MAAM,CAAC,IAAI,MAAM;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sBAAsB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CACrE,CAAC;IAEJ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QACzE,OAAO,GAAG,CACR,MAAM,CAAC;YACL,IAAI,EAAE,0BAA0B;YAChC,MAAM,EAAE,yCAAyC;SAClD,CAAC,CACH,CAAC;IAEJ,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/dist/commands/login.js
CHANGED
|
@@ -6,13 +6,9 @@ import { openBrowser } from "../_utils/open-browser.js";
|
|
|
6
6
|
import { reportCliInstall } from "../_utils/report-cli-install.js";
|
|
7
7
|
import { err, ok } from "../_utils/result.js";
|
|
8
8
|
import { writeState } from "../_utils/state.js";
|
|
9
|
-
// Fallbacks if the server payload omits pacing hints; the server currently sends
|
|
10
|
-
// expiresIn: 600 / interval: 5 and we never poll faster or longer than these caps.
|
|
11
9
|
const MAX_WAIT_S = 10 * 60;
|
|
12
10
|
const MIN_INTERVAL_S = 5;
|
|
13
11
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
14
|
-
// Defensively narrow the start payload — all four fields must be present and
|
|
15
|
-
// well-typed or we treat the bootstrap as failed (never openBrowser on junk).
|
|
16
12
|
const parseStart = (json) => {
|
|
17
13
|
const p = json;
|
|
18
14
|
if (!p ||
|
|
@@ -34,8 +30,6 @@ const parseStart = (json) => {
|
|
|
34
30
|
: MIN_INTERVAL_S, MIN_INTERVAL_S),
|
|
35
31
|
};
|
|
36
32
|
};
|
|
37
|
-
// Poll the token endpoint until the browser approval lands, the code expires, or
|
|
38
|
-
// the deadline passes. Returns the mint payload ({ apikey, org }) on success.
|
|
39
33
|
const pollForApproval = async (input) => {
|
|
40
34
|
for (;;) {
|
|
41
35
|
if (Date.now() >= input.deadline)
|
|
@@ -56,8 +50,6 @@ const pollForApproval = async (input) => {
|
|
|
56
50
|
remedy: networkRemedy(polled.error),
|
|
57
51
|
}));
|
|
58
52
|
if (!polled.value.isOk) {
|
|
59
|
-
// The server collapses unknown/expired/already-used to one generic
|
|
60
|
-
// invalid_grant — from here that simply means this login can't complete.
|
|
61
53
|
return err(cliErr({
|
|
62
54
|
what: "login expired or was cancelled",
|
|
63
55
|
why: polled.value.rawText.length > 0
|
|
@@ -102,9 +94,6 @@ const login = async () => {
|
|
|
102
94
|
what: "login bootstrap returned an unexpected response",
|
|
103
95
|
remedy: "retry `glen login`; if it persists, contact support",
|
|
104
96
|
}));
|
|
105
|
-
// The code + URL are the flow: they work from ANY browser on ANY device (SSH,
|
|
106
|
-
// containers), while the prefilled-URL browser open is a convenience for the
|
|
107
|
-
// local case. openBrowser is fire-and-forget — failure just means typing the code.
|
|
108
97
|
process.stdout.write(`To connect glen, visit:\n\n ${start.verificationUri}\n\nand enter the code:\n\n ${start.userCode}\n\n`);
|
|
109
98
|
process.stdout.write("Opening your browser with the code prefilled…\n");
|
|
110
99
|
openBrowser(start.verificationUriComplete);
|
|
@@ -128,8 +117,6 @@ const login = async () => {
|
|
|
128
117
|
path: credentialsPath(),
|
|
129
118
|
remedy: "check ownership of ~/.glen (e.g. `sudo chown -R $USER ~/.glen`) and retry",
|
|
130
119
|
}));
|
|
131
|
-
// Defensively parse the org from the mint payload.
|
|
132
|
-
// All three fields must be strings; anything else is treated as null.
|
|
133
120
|
const rawOrg = payload.org ?? null;
|
|
134
121
|
const org = rawOrg !== null &&
|
|
135
122
|
typeof rawOrg === "object" &&
|
|
@@ -150,8 +137,6 @@ const login = async () => {
|
|
|
150
137
|
process.stdout.write(`🏔️ Connected to glen — active org: ${org.name}. Memory is now active.\n`);
|
|
151
138
|
return ok(undefined);
|
|
152
139
|
}
|
|
153
|
-
// writeState failed — credentials already saved, so login succeeded.
|
|
154
|
-
// Fall through to the org-switch hint below.
|
|
155
140
|
}
|
|
156
141
|
process.stdout.write("🏔️ Connected to glen. Run `glen org switch` to pick an organization.\n");
|
|
157
142
|
return ok(undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAe,GAAG,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/onboard.js
CHANGED
|
@@ -2,17 +2,11 @@ import { formatCliError } from "../_utils/cli-error.js";
|
|
|
2
2
|
import { readCredentials } from "../_utils/credentials.js";
|
|
3
3
|
import { ok } from "../_utils/result.js";
|
|
4
4
|
import { install } from "./install.js";
|
|
5
|
-
// First-run onboarding for bare `glen`. Fires only on a fresh interactive
|
|
6
|
-
// setup (no credentials + TTY); everything else returns "skip" so bin.ts
|
|
7
|
-
// falls through to help. The connect/login prompt chains inside install().
|
|
8
5
|
const maybeOnboard = async () => {
|
|
9
6
|
const creds = await readCredentials();
|
|
10
7
|
if (creds || !process.stdout.isTTY)
|
|
11
8
|
return ok("skip");
|
|
12
9
|
process.stdout.write("\n 🏔️ glen — let's get you set up\n");
|
|
13
|
-
// install() prints its own guidance for successful outcomes; a failure
|
|
14
|
-
// (e.g. "no agents detected") is returned structured, so print it here —
|
|
15
|
-
// onboarding continues to the summary regardless.
|
|
16
10
|
const installed = await install();
|
|
17
11
|
if (!installed.ok)
|
|
18
12
|
process.stdout.write(formatCliError(installed.error));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../src/commands/onboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAe,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,
|
|
1
|
+
{"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../src/commands/onboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAe,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,YAAY,GAAG,KAAK,IAA+C,EAAE;IACzE,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;IACtC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IAEtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAE9D,MAAM,SAAS,GAAG,MAAM,OAAO,EAAE,CAAC;IAClC,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAEzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gFAAgF;QAC9E,kEAAkE,CACrE,CAAC;IACF,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/commands/org.js
CHANGED
|
@@ -121,8 +121,6 @@ const orgList = async () => {
|
|
|
121
121
|
return ok(undefined);
|
|
122
122
|
};
|
|
123
123
|
const orgSwitch = async (slug) => {
|
|
124
|
-
// No slug + no TTY: the interactive picker would hang (or silently no-op) —
|
|
125
|
-
// fail fast with the scripted alternative before any network call.
|
|
126
124
|
if (!slug && !process.stdin.isTTY)
|
|
127
125
|
return err(cliErr({
|
|
128
126
|
what: "no organization specified",
|