@songsid/agend 2.1.4-beta.2 → 2.1.4-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backend/claude-code.js +23 -2
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/channel/adapters/discord.js +12 -6
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/types.d.ts +1 -1
- package/dist/cli.js +65 -13
- package/dist/cli.js.map +1 -1
- package/dist/completion-install.d.ts +70 -0
- package/dist/completion-install.js +152 -0
- package/dist/completion-install.js.map +1 -0
- package/dist/completion.d.ts +7 -1
- package/dist/completion.js +14 -4
- package/dist/completion.js.map +1 -1
- package/dist/daemon.js +8 -3
- package/dist/daemon.js.map +1 -1
- package/dist/fleet-context.d.ts +3 -0
- package/dist/fleet-manager.d.ts +54 -3
- package/dist/fleet-manager.js +452 -168
- package/dist/fleet-manager.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +6 -0
- package/dist/instance-lifecycle.js +45 -25
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/locale.js +68 -0
- package/dist/locale.js.map +1 -1
- package/dist/quickstart.js +25 -0
- package/dist/quickstart.js.map +1 -1
- package/dist/restart-progress.d.ts +7 -1
- package/dist/restart-progress.js +27 -6
- package/dist/restart-progress.js.map +1 -1
- package/dist/topic-commands.js +3 -1
- package/dist/topic-commands.js.map +1 -1
- package/dist/update-marker.d.ts +30 -0
- package/dist/update-marker.js +71 -20
- package/dist/update-marker.js.map +1 -1
- package/dist/update-progress.d.ts +6 -0
- package/dist/update-progress.js +29 -0
- package/dist/update-progress.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Installation of shell completion, shared by `agend completion install`,
|
|
3
|
+
* install.sh, quickstart and `agend update`.
|
|
4
|
+
*
|
|
5
|
+
* Policy (one deliberate asymmetry):
|
|
6
|
+
* - bash — write a static file into bash-completion's user (or, for root,
|
|
7
|
+
* system) completions directory. No rc file is touched, the write is
|
|
8
|
+
* naturally idempotent, and the shell pays zero startup cost because
|
|
9
|
+
* bash-completion lazy-loads the file on first <tab>.
|
|
10
|
+
* - zsh — there is no user-level auto-loaded directory: completion needs
|
|
11
|
+
* fpath + compinit, both rc-file territory. Root installs get the system
|
|
12
|
+
* site-functions file (no rc edit); everyone else gets a marker-guarded
|
|
13
|
+
* eval line in ~/.zshrc, and ONLY when explicitly authorized
|
|
14
|
+
* (modifyRc: true) — an rc edit is opt-in, a plain file drop is not.
|
|
15
|
+
*
|
|
16
|
+
* `refresh` mode re-generates artifacts that already exist and never creates
|
|
17
|
+
* new ones: `agend update` must keep completions in sync with the new
|
|
18
|
+
* command set without introducing side effects the user never chose.
|
|
19
|
+
*/
|
|
20
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync, accessSync, constants } from "node:fs";
|
|
21
|
+
import { homedir } from "node:os";
|
|
22
|
+
import { basename, dirname, join } from "node:path";
|
|
23
|
+
export const ZSH_RC_MARKER = "# >>> agend completion >>>";
|
|
24
|
+
const ZSH_RC_BLOCK = `
|
|
25
|
+
${ZSH_RC_MARKER}
|
|
26
|
+
command -v agend >/dev/null 2>&1 && eval "$(agend completion zsh)"
|
|
27
|
+
# <<< agend completion <<<
|
|
28
|
+
`;
|
|
29
|
+
/** Shells worth installing for: $SHELL first, then rc-file evidence. */
|
|
30
|
+
export function detectShells(env = process.env, home = homedir()) {
|
|
31
|
+
const shells = new Set();
|
|
32
|
+
const login = basename(env.SHELL ?? "");
|
|
33
|
+
if (login === "bash" || login === "zsh")
|
|
34
|
+
shells.add(login);
|
|
35
|
+
if (existsSync(join(home, ".bashrc")) || existsSync(join(home, ".bash_profile")))
|
|
36
|
+
shells.add("bash");
|
|
37
|
+
if (existsSync(join(home, ".zshrc")))
|
|
38
|
+
shells.add("zsh");
|
|
39
|
+
return [...shells];
|
|
40
|
+
}
|
|
41
|
+
function canWrite(dir) {
|
|
42
|
+
try {
|
|
43
|
+
accessSync(dir, constants.W_OK);
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/** Write `content` to `path`, reporting whether anything changed. */
|
|
51
|
+
function writeArtifact(path, content) {
|
|
52
|
+
const existed = existsSync(path);
|
|
53
|
+
if (existed) {
|
|
54
|
+
try {
|
|
55
|
+
if (readFileSync(path, "utf-8") === content)
|
|
56
|
+
return "unchanged";
|
|
57
|
+
}
|
|
58
|
+
catch { /* unreadable — rewrite */ }
|
|
59
|
+
}
|
|
60
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
61
|
+
writeFileSync(path, content);
|
|
62
|
+
return existed ? "updated" : "installed";
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* bash: a static file in the completions directory. bash-completion ≥ 2.9
|
|
66
|
+
* auto-loads `~/.local/share/bash-completion/completions/<command>` (or
|
|
67
|
+
* $XDG_DATA_HOME); root installs prefer the system directory so every user
|
|
68
|
+
* benefits and no home directory is involved.
|
|
69
|
+
*/
|
|
70
|
+
export function installBashCompletion(script, opts = {}) {
|
|
71
|
+
const home = opts.home ?? homedir();
|
|
72
|
+
const isRoot = opts.isRoot ?? (typeof process.getuid === "function" && process.getuid() === 0);
|
|
73
|
+
const systemDir = opts.systemBashDir ?? "/usr/share/bash-completion/completions";
|
|
74
|
+
const target = isRoot && existsSync(systemDir) && canWrite(systemDir)
|
|
75
|
+
? join(systemDir, "agend")
|
|
76
|
+
: join(process.env.XDG_DATA_HOME || join(home, ".local", "share"), "bash-completion", "completions", "agend");
|
|
77
|
+
if (opts.refresh && !existsSync(target))
|
|
78
|
+
return { shell: "bash", status: "skipped" };
|
|
79
|
+
try {
|
|
80
|
+
const status = writeArtifact(target, script);
|
|
81
|
+
return { shell: "bash", status, path: target };
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
return {
|
|
85
|
+
shell: "bash",
|
|
86
|
+
status: "hint",
|
|
87
|
+
hint: `Could not write ${target} (${err.message}). Manual: echo 'eval "$(agend completion bash)"' >> ~/.bashrc`,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* zsh: root installs write the system site-functions `_agend` (already on
|
|
93
|
+
* fpath, no rc edit). Everyone else needs an rc line, which is only written
|
|
94
|
+
* with explicit authorization; otherwise the caller shows the hint.
|
|
95
|
+
*/
|
|
96
|
+
export function installZshCompletion(fpathScript, opts = {}) {
|
|
97
|
+
const home = opts.home ?? homedir();
|
|
98
|
+
const isRoot = opts.isRoot ?? (typeof process.getuid === "function" && process.getuid() === 0);
|
|
99
|
+
const systemDir = opts.systemZshDir ?? "/usr/share/zsh/site-functions";
|
|
100
|
+
if (isRoot && existsSync(systemDir) && canWrite(systemDir)) {
|
|
101
|
+
const target = join(systemDir, "_agend");
|
|
102
|
+
if (opts.refresh && !existsSync(target))
|
|
103
|
+
return { shell: "zsh", status: "skipped" };
|
|
104
|
+
try {
|
|
105
|
+
const status = writeArtifact(target, fpathScript);
|
|
106
|
+
return { shell: "zsh", status, path: target };
|
|
107
|
+
}
|
|
108
|
+
catch { /* fall through to the rc path */ }
|
|
109
|
+
}
|
|
110
|
+
const zshrc = join(home, ".zshrc");
|
|
111
|
+
const hasMarker = existsSync(zshrc) && readFileSync(zshrc, "utf-8").includes(ZSH_RC_MARKER);
|
|
112
|
+
if (hasMarker) {
|
|
113
|
+
// The rc line evals the CURRENT binary's script on every shell start, so
|
|
114
|
+
// there is nothing to refresh — it can never go stale.
|
|
115
|
+
return { shell: "zsh", status: "unchanged", path: zshrc };
|
|
116
|
+
}
|
|
117
|
+
if (opts.refresh)
|
|
118
|
+
return { shell: "zsh", status: "skipped" };
|
|
119
|
+
if (!opts.modifyRc) {
|
|
120
|
+
return {
|
|
121
|
+
shell: "zsh",
|
|
122
|
+
status: "hint",
|
|
123
|
+
hint: `To enable zsh completion: echo 'eval "$(agend completion zsh)"' >> ~/.zshrc (requires compinit), or rerun with --modify-rc`,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
try {
|
|
127
|
+
writeFileSync(zshrc, (existsSync(zshrc) ? readFileSync(zshrc, "utf-8") : "") + ZSH_RC_BLOCK);
|
|
128
|
+
return { shell: "zsh", status: "installed", path: zshrc };
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
return {
|
|
132
|
+
shell: "zsh",
|
|
133
|
+
status: "hint",
|
|
134
|
+
hint: `Could not write ${zshrc} (${err.message}). Manual: echo 'eval "$(agend completion zsh)"' >> ~/.zshrc`,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* The whole policy in one call: install for every detected (or requested)
|
|
140
|
+
* shell. Used by `agend completion install`, install.sh, quickstart and
|
|
141
|
+
* update (`refresh: true`).
|
|
142
|
+
*/
|
|
143
|
+
export function installCompletions(scripts, shells, opts = {}) {
|
|
144
|
+
const results = [];
|
|
145
|
+
for (const shell of shells) {
|
|
146
|
+
results.push(shell === "bash"
|
|
147
|
+
? installBashCompletion(scripts.bash, opts)
|
|
148
|
+
: installZshCompletion(scripts.zshFpath, opts));
|
|
149
|
+
}
|
|
150
|
+
return results;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=completion-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion-install.js","sourceRoot":"","sources":["../src/completion-install.ts"],"names":[],"mappings":"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"}
|
package/dist/completion.d.ts
CHANGED
|
@@ -23,5 +23,11 @@ export interface CompletionSpec {
|
|
|
23
23
|
fleetInstanceCommands: string[];
|
|
24
24
|
}
|
|
25
25
|
export declare function bashCompletion(spec: CompletionSpec): string;
|
|
26
|
-
|
|
26
|
+
/**
|
|
27
|
+
* @param variant "eval" is sourced from a live shell (via the rc line) and
|
|
28
|
+
* registers itself with `compdef`; "fpath" is a `_agend` file dropped into
|
|
29
|
+
* a directory on fpath, where the `#compdef` header does the registering
|
|
30
|
+
* and the file body is executed as the completion function itself.
|
|
31
|
+
*/
|
|
32
|
+
export declare function zshCompletion(spec: CompletionSpec, variant?: "eval" | "fpath"): string;
|
|
27
33
|
export declare function completionScript(shell: CompletionShell, spec: CompletionSpec): string;
|
package/dist/completion.js
CHANGED
|
@@ -72,10 +72,20 @@ _agend_completion() {
|
|
|
72
72
|
complete -F _agend_completion agend
|
|
73
73
|
`;
|
|
74
74
|
}
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
/**
|
|
76
|
+
* @param variant "eval" is sourced from a live shell (via the rc line) and
|
|
77
|
+
* registers itself with `compdef`; "fpath" is a `_agend` file dropped into
|
|
78
|
+
* a directory on fpath, where the `#compdef` header does the registering
|
|
79
|
+
* and the file body is executed as the completion function itself.
|
|
80
|
+
*/
|
|
81
|
+
export function zshCompletion(spec, variant = "eval") {
|
|
82
|
+
const header = variant === "fpath"
|
|
83
|
+
? "#compdef agend\n# agend zsh completion — installed by `agend completion install`"
|
|
84
|
+
: `# agend zsh completion — eval "$(agend completion zsh)"
|
|
77
85
|
# Requires compinit to have run first (put \`autoload -Uz compinit && compinit\`
|
|
78
|
-
# above this line in ~/.zshrc)
|
|
86
|
+
# above this line in ~/.zshrc).`;
|
|
87
|
+
const footer = variant === "fpath" ? `_agend "$@"` : "compdef _agend agend";
|
|
88
|
+
return `${header}
|
|
79
89
|
#
|
|
80
90
|
# compadd is used rather than _values/_describe because it is the lowest-level
|
|
81
91
|
# primitive and filters by the current prefix on its own — fewer moving parts.
|
|
@@ -112,7 +122,7 @@ _agend() {
|
|
|
112
122
|
(( \${#instances} )) && compadd -a instances
|
|
113
123
|
fi
|
|
114
124
|
}
|
|
115
|
-
|
|
125
|
+
${footer}
|
|
116
126
|
`;
|
|
117
127
|
}
|
|
118
128
|
export function completionScript(shell, spec) {
|
package/dist/completion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAU,CAAC;AAc1D,8EAA8E;AAC9E,SAAS,KAAK,CAAC,IAAc;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAoB;IACjD,OAAO;;;;;;;;;;;;;;;;;;;;+BAoBsB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;;+BAKpB,KAAK,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC;;;;;;iCAM3B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;aAGxC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;;;;;;;;;;WAUnC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;;;;;;;;;CAStC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAoB;
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAU,CAAC;AAc1D,8EAA8E;AAC9E,SAAS,KAAK,CAAC,IAAc;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAoB;IACjD,OAAO;;;;;;;;;;;;;;;;;;;;+BAoBsB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;;+BAKpB,KAAK,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC;;;;;;iCAM3B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;aAGxC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;;;;;;;;;;WAUnC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;;;;;;;;;CAStC,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAoB,EAAE,UAA4B,MAAM;IACpF,MAAM,MAAM,GAAG,OAAO,KAAK,OAAO;QAChC,CAAC,CAAC,kFAAkF;QACpF,CAAC,CAAC;;gCAE0B,CAAC;IAC/B,MAAM,MAAM,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAC5E,OAAO,GAAG,MAAM;;;;;;;;;;;iBAWD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;;iBAKpB,KAAK,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC;;;;;;mBAM3B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;oCAGH,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;;;;;;;kCAOnC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;;;;;EAK5D,MAAM;CACP,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAsB,EAAE,IAAoB;IAC3E,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC"}
|
package/dist/daemon.js
CHANGED
|
@@ -1260,7 +1260,7 @@ export class Daemon extends EventEmitter {
|
|
|
1260
1260
|
this.logger.info("CLI exited normally (code 0) — pausing health check");
|
|
1261
1261
|
await this.tmux.killWindow();
|
|
1262
1262
|
this.healthCheckPaused = true;
|
|
1263
|
-
this.emitSupervisionEnded("the CLI exited normally (code 0)", "Nothing crashed — start it again when you need it.");
|
|
1263
|
+
this.emitSupervisionEnded("the CLI exited normally (code 0)", "Nothing crashed — start it again when you need it.", 0);
|
|
1264
1264
|
return;
|
|
1265
1265
|
}
|
|
1266
1266
|
// Distinguish tmux server crash from single window crash.
|
|
@@ -1506,8 +1506,13 @@ export class Daemon extends EventEmitter {
|
|
|
1506
1506
|
* `crash_loop` already had this treatment; this is the same bridge for the other
|
|
1507
1507
|
* four, carrying a human-readable cause and the operator's next step.
|
|
1508
1508
|
*/
|
|
1509
|
-
emitSupervisionEnded(reason, remedy) {
|
|
1510
|
-
this.emit("supervision_ended", {
|
|
1509
|
+
emitSupervisionEnded(reason, remedy, exitCode) {
|
|
1510
|
+
this.emit("supervision_ended", {
|
|
1511
|
+
name: this.name,
|
|
1512
|
+
reason,
|
|
1513
|
+
remedy,
|
|
1514
|
+
...(exitCode !== undefined ? { exitCode } : {}),
|
|
1515
|
+
});
|
|
1511
1516
|
}
|
|
1512
1517
|
setProcessStatus(status) {
|
|
1513
1518
|
if (this.processStatus === status)
|