@achieveai/hitl-mcp-server 2.11.2 → 2.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config.d.ts +2 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +53 -12
- package/dist/config.js.map +1 -1
- package/dist/identity.d.ts +20 -4
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +66 -5
- package/dist/identity.js.map +1 -1
- package/dist/mcp-server.d.ts +8 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +35 -4
- package/dist/mcp-server.js.map +1 -1
- package/dist/ntfy-transport.d.ts +4 -0
- package/dist/ntfy-transport.d.ts.map +1 -1
- package/dist/ntfy-transport.js +10 -1
- package/dist/ntfy-transport.js.map +1 -1
- package/dist/setup.d.ts +4 -2
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +43 -19
- package/dist/setup.js.map +1 -1
- package/dist/types.d.ts +11 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/work-store.d.ts +81 -0
- package/dist/work-store.d.ts.map +1 -0
- package/dist/work-store.js +194 -0
- package/dist/work-store.js.map +1 -0
- package/dist/work-tools.d.ts +171 -0
- package/dist/work-tools.d.ts.map +1 -0
- package/dist/work-tools.js +46 -0
- package/dist/work-tools.js.map +1 -0
- package/package.json +64 -64
- package/dist/bin/windows-x64/hitl-client.exe +0 -0
package/dist/config.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { HitlConfig } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Read the HITL config from
|
|
3
|
+
* Read the HITL config from this install's config.json (see hitlDir).
|
|
4
4
|
* Throws with a helpful message if the file doesn't exist.
|
|
5
5
|
*/
|
|
6
6
|
export declare function loadConfig(): HitlConfig;
|
|
@@ -9,7 +9,7 @@ export declare function loadConfig(): HitlConfig;
|
|
|
9
9
|
*/
|
|
10
10
|
export declare function generateDefaultConfig(): HitlConfig;
|
|
11
11
|
/**
|
|
12
|
-
* Save a config object to
|
|
12
|
+
* Save a config object to this install's config.json (see hitlDir).
|
|
13
13
|
*/
|
|
14
14
|
export declare function saveConfig(config: HitlConfig): void;
|
|
15
15
|
/**
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAmC7C;;;GAGG;AACH,wBAAgB,UAAU,IAAI,UAAU,CAyBvC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,UAAU,CASlD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAcnD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
package/dist/config.js
CHANGED
|
@@ -1,25 +1,54 @@
|
|
|
1
|
-
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
1
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync, copyFileSync } from 'fs';
|
|
2
2
|
import { homedir, hostname } from 'os';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import crypto from 'crypto';
|
|
5
5
|
import { v4 as uuidv4 } from 'uuid';
|
|
6
6
|
import { DEFAULT_NTFY_URL } from './types.js';
|
|
7
|
-
const CONFIG_DIR = path.join(homedir(), '.hitl');
|
|
8
|
-
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
|
|
9
7
|
/**
|
|
10
|
-
*
|
|
8
|
+
* Root of this install's state, mirroring `hitl_transport::paths::hitl_dir()`.
|
|
9
|
+
*
|
|
10
|
+
* `HITL_HOME` has to be honoured here, not just in Rust. The Rust side resolves
|
|
11
|
+
* `config.json` through `hitl_dir()`, while this — the only thing that ever
|
|
12
|
+
* *writes* that file, via `hitl init` — used to hardcode `~/.hitl`. Under
|
|
13
|
+
* `HITL_HOME` the two languages then read and wrote different files, and the
|
|
14
|
+
* Rust binaries answered with "Run 'hitl init' to create one", advice that
|
|
15
|
+
* rewrites the same wrong path forever. `ntfy-transport.ts` and
|
|
16
|
+
* `snapshot-store.ts` already resolve their subdirectories this way; config was
|
|
17
|
+
* the odd one out.
|
|
18
|
+
*
|
|
19
|
+
* Read per call rather than at import so tests and a relaunched process both
|
|
20
|
+
* see the current environment. Empty is rejected rather than treated as unset,
|
|
21
|
+
* matching the Rust rule — an empty value there would silently mean the process
|
|
22
|
+
* working directory.
|
|
23
|
+
*/
|
|
24
|
+
function hitlDir() {
|
|
25
|
+
const override = process.env.HITL_HOME;
|
|
26
|
+
if (override !== undefined) {
|
|
27
|
+
if (override.trim() === '') {
|
|
28
|
+
throw new Error('HITL_HOME is set but empty; unset it or give it a real path');
|
|
29
|
+
}
|
|
30
|
+
return override;
|
|
31
|
+
}
|
|
32
|
+
return path.join(homedir(), '.hitl');
|
|
33
|
+
}
|
|
34
|
+
function configFile() {
|
|
35
|
+
return path.join(hitlDir(), 'config.json');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Read the HITL config from this install's config.json (see hitlDir).
|
|
11
39
|
* Throws with a helpful message if the file doesn't exist.
|
|
12
40
|
*/
|
|
13
41
|
export function loadConfig() {
|
|
14
|
-
|
|
15
|
-
|
|
42
|
+
const file = configFile();
|
|
43
|
+
if (!existsSync(file)) {
|
|
44
|
+
throw new Error(`HITL config not found at ${file}\n` +
|
|
16
45
|
`Run "hitl init" to create one, or manually create the file with:\n` +
|
|
17
46
|
JSON.stringify(generateDefaultConfig(), null, 2));
|
|
18
47
|
}
|
|
19
|
-
const raw = readFileSync(
|
|
48
|
+
const raw = readFileSync(file, 'utf-8');
|
|
20
49
|
const parsed = JSON.parse(raw);
|
|
21
50
|
if (!parsed.topicId || typeof parsed.topicId !== 'string') {
|
|
22
|
-
throw new Error(`Invalid config: "topicId" is required in ${
|
|
51
|
+
throw new Error(`Invalid config: "topicId" is required in ${file}`);
|
|
23
52
|
}
|
|
24
53
|
return {
|
|
25
54
|
topicId: parsed.topicId,
|
|
@@ -44,16 +73,28 @@ export function generateDefaultConfig() {
|
|
|
44
73
|
};
|
|
45
74
|
}
|
|
46
75
|
/**
|
|
47
|
-
* Save a config object to
|
|
76
|
+
* Save a config object to this install's config.json (see hitlDir).
|
|
48
77
|
*/
|
|
49
78
|
export function saveConfig(config) {
|
|
50
|
-
mkdirSync(
|
|
51
|
-
|
|
79
|
+
mkdirSync(hitlDir(), { recursive: true });
|
|
80
|
+
// Keep the outgoing config. A regenerated default silently swaps in a
|
|
81
|
+
// public ntfyUrl, a fresh topic and a fresh encryption key; without this
|
|
82
|
+
// copy a self-hosted setup is unrecoverable once the original is gone.
|
|
83
|
+
const target = configFile();
|
|
84
|
+
if (existsSync(target)) {
|
|
85
|
+
try {
|
|
86
|
+
copyFileSync(target, `${target}.bak`);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// A backup that cannot be written must not block saving the config.
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
writeFileSync(target, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
52
93
|
}
|
|
53
94
|
/**
|
|
54
95
|
* Get the path to the config file.
|
|
55
96
|
*/
|
|
56
97
|
export function getConfigPath() {
|
|
57
|
-
return
|
|
98
|
+
return configFile();
|
|
58
99
|
}
|
|
59
100
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/identity.d.ts
CHANGED
|
@@ -1,12 +1,28 @@
|
|
|
1
|
-
import type { SenderIdentity } from './types.js';
|
|
1
|
+
import type { RepoContext, SenderIdentity } from './types.js';
|
|
2
2
|
/** Resolves a human-readable session name, or null when none is available. */
|
|
3
3
|
export type SessionNameResolver = () => string | null;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Builds a `SessionNameResolver` that prefers the Claude Code Remote Control
|
|
6
|
+
* bridge session id (`CLAUDE_CODE_BRIDGE_SESSION_ID`, set only while Remote
|
|
7
|
+
* Control is active, v2.1.199+) and falls back to a minted id otherwise
|
|
8
|
+
* (spec §5.2, §5.3).
|
|
9
|
+
*
|
|
10
|
+
* The bridge id can appear or disappear mid-process, so the result is
|
|
11
|
+
* resolved once, at first call, and cached — a label that changes mid-session
|
|
12
|
+
* would be worse than one that is merely opportunistic.
|
|
8
13
|
*/
|
|
14
|
+
export declare function makeSessionNameResolver(opts: {
|
|
15
|
+
env: NodeJS.ProcessEnv;
|
|
16
|
+
mintedUuid: string;
|
|
17
|
+
}): SessionNameResolver;
|
|
9
18
|
export declare const defaultSessionNameResolver: SessionNameResolver;
|
|
19
|
+
/**
|
|
20
|
+
* Stable key for "which project" a session belongs to (spec §5.4).
|
|
21
|
+
* `CLAUDE_PROJECT_DIR` is documented and survives `--resume`/context
|
|
22
|
+
* compaction, unlike `process.cwd()`; `repo.remoteUrl` survives the repo
|
|
23
|
+
* being moved or re-cloned to a different path; `cwd` is the last resort.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveProjectKey(cwd: string, repo: RepoContext | null): string;
|
|
10
26
|
/**
|
|
11
27
|
* Resolve a display-ready sender identity for an outgoing message, in
|
|
12
28
|
* precedence order: session name override > linked-worktree branch > path
|
package/dist/identity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE9D,8EAA8E;AAC9E,MAAM,MAAM,mBAAmB,GAAG,MAAM,MAAM,GAAG,IAAI,CAAC;AAKtD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,mBAAmB,CAQtB;AAED,eAAO,MAAM,0BAA0B,EAAE,mBAGvC,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,CAE/E;AAyCD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,eAAe,GAAE,mBAAgD,GAChE,cAAc,CAYhB"}
|
package/dist/identity.js
CHANGED
|
@@ -1,15 +1,76 @@
|
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
1
2
|
import { detectRepoContext, isLinkedWorktree } from './git-context.js';
|
|
3
|
+
/** One MCP server process is exactly one Claude Code session. */
|
|
4
|
+
const PROCESS_SESSION_UUID = randomUUID();
|
|
2
5
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
+
* Builds a `SessionNameResolver` that prefers the Claude Code Remote Control
|
|
7
|
+
* bridge session id (`CLAUDE_CODE_BRIDGE_SESSION_ID`, set only while Remote
|
|
8
|
+
* Control is active, v2.1.199+) and falls back to a minted id otherwise
|
|
9
|
+
* (spec §5.2, §5.3).
|
|
10
|
+
*
|
|
11
|
+
* The bridge id can appear or disappear mid-process, so the result is
|
|
12
|
+
* resolved once, at first call, and cached — a label that changes mid-session
|
|
13
|
+
* would be worse than one that is merely opportunistic.
|
|
14
|
+
*/
|
|
15
|
+
export function makeSessionNameResolver(opts) {
|
|
16
|
+
let resolved = null;
|
|
17
|
+
return () => {
|
|
18
|
+
if (resolved === null) {
|
|
19
|
+
resolved = opts.env.CLAUDE_CODE_BRIDGE_SESSION_ID ?? opts.mintedUuid;
|
|
20
|
+
}
|
|
21
|
+
return resolved;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export const defaultSessionNameResolver = makeSessionNameResolver({
|
|
25
|
+
env: process.env,
|
|
26
|
+
mintedUuid: PROCESS_SESSION_UUID,
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* Stable key for "which project" a session belongs to (spec §5.4).
|
|
30
|
+
* `CLAUDE_PROJECT_DIR` is documented and survives `--resume`/context
|
|
31
|
+
* compaction, unlike `process.cwd()`; `repo.remoteUrl` survives the repo
|
|
32
|
+
* being moved or re-cloned to a different path; `cwd` is the last resort.
|
|
6
33
|
*/
|
|
7
|
-
export
|
|
34
|
+
export function resolveProjectKey(cwd, repo) {
|
|
35
|
+
return process.env.CLAUDE_PROJECT_DIR ?? repo?.remoteUrl ?? cwd;
|
|
36
|
+
}
|
|
8
37
|
/** Last two `/`-joined path segments of `cwd`, tolerating either path separator. Never absolute (F-9). */
|
|
9
38
|
function lastTwoSegments(cwd) {
|
|
10
39
|
const segments = cwd.split(/[\\/]/).filter(Boolean);
|
|
11
40
|
return segments.slice(-2).join('/');
|
|
12
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Compose the session-tier display label per spec §5.4:
|
|
44
|
+
* `<repoName> · <branch> · <first-4-of-id>`. A raw session id/UUID on its own
|
|
45
|
+
* is meaningless in a message list, so this always folds in repo context
|
|
46
|
+
* when one is available — preferring `CLAUDE_PROJECT_DIR` as the directory to
|
|
47
|
+
* inspect since it is stable across `--resume`/compaction, unlike `cwd` —
|
|
48
|
+
* and falls back to the path tier's own last-two-segments heuristic when
|
|
49
|
+
* that directory isn't a git repo at all.
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* The discriminating part of a session id.
|
|
53
|
+
*
|
|
54
|
+
* Claude Code's bridge ids are all shaped `session_<opaque>`, so taking the
|
|
55
|
+
* first four characters of one yields the literal `sess` for every session on
|
|
56
|
+
* every machine — a disambiguator that disambiguates nothing, which is the
|
|
57
|
+
* whole job this suffix exists to do. Minted UUIDs have no such prefix and are
|
|
58
|
+
* unaffected.
|
|
59
|
+
*
|
|
60
|
+
* Stripping a known prefix rather than, say, slicing from the end keeps the
|
|
61
|
+
* suffix recognisable as the head of an id a user can match against a real
|
|
62
|
+
* session, and leaves the UUID case byte-for-byte as it was.
|
|
63
|
+
*/
|
|
64
|
+
function shortSessionId(sessionId) {
|
|
65
|
+
return sessionId.replace(/^session_/, '').slice(0, 4);
|
|
66
|
+
}
|
|
67
|
+
function composeSessionLabel(cwd, sessionId) {
|
|
68
|
+
const shortId = shortSessionId(sessionId);
|
|
69
|
+
const repo = detectRepoContext(process.env.CLAUDE_PROJECT_DIR ?? cwd);
|
|
70
|
+
if (repo)
|
|
71
|
+
return `${repo.name} · ${repo.branch} · ${shortId}`;
|
|
72
|
+
return `${lastTwoSegments(cwd)} · ${shortId}`;
|
|
73
|
+
}
|
|
13
74
|
/**
|
|
14
75
|
* Resolve a display-ready sender identity for an outgoing message, in
|
|
15
76
|
* precedence order: session name override > linked-worktree branch > path
|
|
@@ -22,7 +83,7 @@ function lastTwoSegments(cwd) {
|
|
|
22
83
|
export function resolveSenderIdentity(cwd, deviceName, sessionResolver = defaultSessionNameResolver) {
|
|
23
84
|
const sessionName = sessionResolver();
|
|
24
85
|
if (sessionName !== null)
|
|
25
|
-
return { label: sessionName, source: 'session' };
|
|
86
|
+
return { label: composeSessionLabel(cwd, sessionName), source: 'session' };
|
|
26
87
|
if (isLinkedWorktree(cwd)) {
|
|
27
88
|
const branch = detectRepoContext(cwd)?.branch;
|
|
28
89
|
if (branch)
|
package/dist/identity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMvE
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMvE,iEAAiE;AACjE,MAAM,oBAAoB,GAAG,UAAU,EAAE,CAAC;AAE1C;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAGvC;IACC,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,OAAO,GAAG,EAAE;QACV,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,6BAA6B,IAAI,IAAI,CAAC,UAAU,CAAC;QACvE,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAwB,uBAAuB,CAAC;IACrF,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,UAAU,EAAE,oBAAoB;CACjC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,IAAwB;IACrE,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,EAAE,SAAS,IAAI,GAAG,CAAC;AAClE,CAAC;AAED,0GAA0G;AAC1G,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;GAQG;AACH;;;;;;;;;;;;GAYG;AACH,SAAS,cAAc,CAAC,SAAiB;IACvC,OAAO,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW,EAAE,SAAiB;IACzD,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,CAAC;IACtE,IAAI,IAAI;QAAE,OAAO,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC;IAC9D,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC;AAChD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAW,EACX,UAAkB,EAClB,kBAAuC,0BAA0B;IAEjE,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAErG,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAC9C,IAAI,MAAM;YAAE,OAAO,EAAE,KAAK,EAAE,GAAG,UAAU,MAAM,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAC9E,6EAA6E;QAC7E,+BAA+B;IACjC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,GAAG,UAAU,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5E,CAAC"}
|
package/dist/mcp-server.d.ts
CHANGED
|
@@ -4,10 +4,14 @@ export declare class HumanInTheLoopServer {
|
|
|
4
4
|
private server;
|
|
5
5
|
private transport;
|
|
6
6
|
private config;
|
|
7
|
+
private workStore;
|
|
8
|
+
private autoLaunchClient;
|
|
7
9
|
/** reviewIds still waiting on a human, so a graceful exit can release them (D-3). */
|
|
8
10
|
private outstandingReviews;
|
|
9
11
|
/** `config` is injectable so a test can construct a server without a real ~/.hitl. */
|
|
10
|
-
constructor(config?: HitlConfig
|
|
12
|
+
constructor(config?: HitlConfig, options?: {
|
|
13
|
+
autoLaunchClient?: boolean;
|
|
14
|
+
});
|
|
11
15
|
private setupHandlers;
|
|
12
16
|
/**
|
|
13
17
|
* ReviewPlan: snapshot a markdown plan, publish it for line-anchored review,
|
|
@@ -64,4 +68,7 @@ export declare class HumanInTheLoopServer {
|
|
|
64
68
|
/** Publish cancel_review for every review still waiting on a human. */
|
|
65
69
|
private cancelOutstandingReviews;
|
|
66
70
|
}
|
|
71
|
+
export declare function parseServerOptions(args: string[]): {
|
|
72
|
+
autoLaunchClient: boolean;
|
|
73
|
+
};
|
|
67
74
|
//# sourceMappingURL=mcp-server.d.ts.map
|
package/dist/mcp-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AAgBA,OAAO,KAAK,EAaV,UAAU,EAGX,MAAM,YAAY,CAAC;AAuDpB,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,gBAAgB,CAAU;IAClC,qFAAqF;IACrF,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,sFAAsF;gBAEpF,MAAM,GAAE,UAAyB,EACjC,OAAO,GAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAO;IAe9C,OAAO,CAAC,aAAa;IAidrB;;;OAGG;YACW,gBAAgB;IAmK9B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;;;OAOG;YACW,qBAAqB;YAiErB,oBAAoB;IAUlC;;;;;;;;;OASG;YACW,wBAAwB;IAmBtC,8DAA8D;YAChD,UAAU;IAuBxB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAYrB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAyBhB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B1B,uEAAuE;YACzD,wBAAwB;CAkBvC;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,gBAAgB,EAAE,OAAO,CAAA;CAAE,CAEhF"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { WorkStore, WorkValidationError } from './work-store.js';
|
|
3
|
+
import { WORK_TOOLS } from './work-tools.js';
|
|
2
4
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
3
5
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
6
|
import { CallToolRequestSchema, ListToolsRequestSchema, ErrorCode, McpError, } from '@modelcontextprotocol/sdk/types.js';
|
|
@@ -52,11 +54,15 @@ export class HumanInTheLoopServer {
|
|
|
52
54
|
server;
|
|
53
55
|
transport;
|
|
54
56
|
config;
|
|
57
|
+
workStore;
|
|
58
|
+
autoLaunchClient;
|
|
55
59
|
/** reviewIds still waiting on a human, so a graceful exit can release them (D-3). */
|
|
56
60
|
outstandingReviews = new Set();
|
|
57
61
|
/** `config` is injectable so a test can construct a server without a real ~/.hitl. */
|
|
58
|
-
constructor(config = loadConfig()) {
|
|
62
|
+
constructor(config = loadConfig(), options = {}) {
|
|
59
63
|
this.config = config;
|
|
64
|
+
this.workStore = new WorkStore(config);
|
|
65
|
+
this.autoLaunchClient = options.autoLaunchClient ?? true;
|
|
60
66
|
this.server = new Server({ name: SERVER_NAME, version: SERVER_VERSION }, { capabilities: { tools: {} } });
|
|
61
67
|
this.transport = new NtfyTransport(this.config);
|
|
62
68
|
this.setupHandlers();
|
|
@@ -64,6 +70,7 @@ export class HumanInTheLoopServer {
|
|
|
64
70
|
setupHandlers() {
|
|
65
71
|
this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
66
72
|
tools: [
|
|
73
|
+
...WORK_TOOLS,
|
|
67
74
|
{
|
|
68
75
|
name: TOOL_NAME,
|
|
69
76
|
description: `Use this tool when you need to ask the user questions during execution. This tool sends a push notification to ALL of the user's devices simultaneously — phone, laptop, desktop — so the human can respond from whichever device is most convenient, even when they have stepped away from the terminal. The answer is relayed back to you instantly.
|
|
@@ -224,7 +231,7 @@ IMPORTANT: When in doubt, ASK. Getting human input ensures accuracy and saves ti
|
|
|
224
231
|
{
|
|
225
232
|
name: NOTIFY_TOOL_NAME,
|
|
226
233
|
description: 'Send a notification to the human without waiting for a response. ' +
|
|
227
|
-
'Use this for
|
|
234
|
+
'Use this for one-off status messages or information the human should see. For ongoing multi-step work, milestones, or team reporting, prefer UpdateWork: it keeps one evolving progress document in the Inbox instead of separate notifications for the same goal. ' +
|
|
228
235
|
'The notification appears on all of the user\'s devices and can be dismissed. ' +
|
|
229
236
|
'Unlike AskUserQuestion, this tool returns immediately — it does NOT block.',
|
|
230
237
|
inputSchema: {
|
|
@@ -286,10 +293,29 @@ Blocking past 60 seconds requires the calling MCP host to opt into resetTimeoutO
|
|
|
286
293
|
],
|
|
287
294
|
}));
|
|
288
295
|
this.server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
|
|
296
|
+
if (request.params.name === 'UpdateWork' || request.params.name === 'ReadWork') {
|
|
297
|
+
try {
|
|
298
|
+
const args = request.params.arguments ?? {};
|
|
299
|
+
const result = request.params.name === 'ReadWork'
|
|
300
|
+
? { document: this.workStore.read(args.workId) }
|
|
301
|
+
: await this.workStore.update(args, async (message) => {
|
|
302
|
+
// Persist first; a missing client is a recoverable publication failure.
|
|
303
|
+
if (message.alert)
|
|
304
|
+
this.requireClient();
|
|
305
|
+
await this.transport.publishWork(message);
|
|
306
|
+
});
|
|
307
|
+
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
308
|
+
}
|
|
309
|
+
catch (error) {
|
|
310
|
+
throw new McpError(error instanceof WorkValidationError ? ErrorCode.InvalidParams : ErrorCode.InternalError, describeError(error));
|
|
311
|
+
}
|
|
312
|
+
}
|
|
289
313
|
// Handle setup tool
|
|
290
314
|
if (request.params.name === SETUP_TOOL_NAME) {
|
|
291
315
|
try {
|
|
292
|
-
const result = await performSetup(SERVER_DIR
|
|
316
|
+
const result = await performSetup(SERVER_DIR, {
|
|
317
|
+
autoLaunchClient: this.autoLaunchClient,
|
|
318
|
+
});
|
|
293
319
|
return {
|
|
294
320
|
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
295
321
|
};
|
|
@@ -711,6 +737,8 @@ Blocking past 60 seconds requires the calling MCP host to opt into resetTimeoutO
|
|
|
711
737
|
* window to explain why (A-10).
|
|
712
738
|
*/
|
|
713
739
|
requireClient() {
|
|
740
|
+
if (!this.autoLaunchClient)
|
|
741
|
+
return;
|
|
714
742
|
const result = ensureClientRunning(SERVER_DIR);
|
|
715
743
|
if (!result.ok) {
|
|
716
744
|
throw new McpError(ErrorCode.InternalError, `No HITL client available, so nobody would see this. ${result.reason ?? ''}`.trim());
|
|
@@ -790,6 +818,9 @@ Blocking past 60 seconds requires the calling MCP host to opt into resetTimeoutO
|
|
|
790
818
|
this.outstandingReviews.clear();
|
|
791
819
|
}
|
|
792
820
|
}
|
|
821
|
+
export function parseServerOptions(args) {
|
|
822
|
+
return { autoLaunchClient: !args.includes('--no-auto-launch-client') };
|
|
823
|
+
}
|
|
793
824
|
/**
|
|
794
825
|
* True when this file is what node was asked to run, rather than something
|
|
795
826
|
* another module imported.
|
|
@@ -811,7 +842,7 @@ function isDirectlyExecuted() {
|
|
|
811
842
|
}
|
|
812
843
|
}
|
|
813
844
|
if (isDirectlyExecuted()) {
|
|
814
|
-
const server = new HumanInTheLoopServer();
|
|
845
|
+
const server = new HumanInTheLoopServer(loadConfig(), parseServerOptions(process.argv.slice(2)));
|
|
815
846
|
server.run().catch((error) => {
|
|
816
847
|
console.error('Server error:', error);
|
|
817
848
|
process.exit(1);
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/dist/ntfy-transport.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { WorkUpdateMessage } from './work-store.js';
|
|
1
2
|
import type { QuestionMessage, AnswerMessage, HitlMessage, PlanMessage, SenderIdentityMessage, AnyHitlMessage, AttachmentRef, HitlConfig } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Pull ntfy's own attachment metadata off a raw event.
|
|
@@ -171,6 +172,9 @@ export declare class NtfyTransport {
|
|
|
171
172
|
* a chunked plan_review would break the one-message-per-review guarantee.
|
|
172
173
|
*/
|
|
173
174
|
publish(msg: HitlMessage): Promise<void>;
|
|
175
|
+
/** Full work snapshots use the existing encrypted, chunked wire path. */
|
|
176
|
+
publishWork(msg: WorkUpdateMessage): Promise<void>;
|
|
177
|
+
private publishChunked;
|
|
174
178
|
/**
|
|
175
179
|
* Publish a plan-review message. Never chunks.
|
|
176
180
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ntfy-transport.d.ts","sourceRoot":"","sources":["../src/ntfy-transport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ntfy-transport.d.ts","sourceRoot":"","sources":["../src/ntfy-transport.ts"],"names":[],"mappings":"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"}
|
package/dist/ntfy-transport.js
CHANGED
|
@@ -324,6 +324,15 @@ export class NtfyTransport {
|
|
|
324
324
|
* a chunked plan_review would break the one-message-per-review guarantee.
|
|
325
325
|
*/
|
|
326
326
|
async publish(msg) {
|
|
327
|
+
return this.publishChunked(msg);
|
|
328
|
+
}
|
|
329
|
+
/** Full work snapshots use the existing encrypted, chunked wire path. */
|
|
330
|
+
async publishWork(msg) {
|
|
331
|
+
// Retries retain the logical messageId but encrypt independently. Distinct
|
|
332
|
+
// assembly groups prevent concurrent attempts from mixing ciphertext.
|
|
333
|
+
return this.publishChunked(msg, randomBytes(16).toString('hex'));
|
|
334
|
+
}
|
|
335
|
+
async publishChunked(msg, groupId = msg.messageId) {
|
|
327
336
|
let body;
|
|
328
337
|
if (this.config.encryptionKey) {
|
|
329
338
|
body = encrypt(JSON.stringify(msg), this.config.encryptionKey);
|
|
@@ -335,7 +344,7 @@ export class NtfyTransport {
|
|
|
335
344
|
await this.publishRaw(body);
|
|
336
345
|
return;
|
|
337
346
|
}
|
|
338
|
-
for (const chunk of splitIntoChunks(body,
|
|
347
|
+
for (const chunk of splitIntoChunks(body, groupId)) {
|
|
339
348
|
await this.publishRaw(JSON.stringify(chunk));
|
|
340
349
|
}
|
|
341
350
|
}
|