@trusty-squire/mcp 0.1.3 → 0.1.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/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +32 -0
- package/dist/bin.js.map +1 -0
- package/dist/install/cli.d.ts +6 -2
- package/dist/install/cli.d.ts.map +1 -1
- package/dist/install/cli.js +25 -31
- package/dist/install/cli.js.map +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +19 -24
- package/dist/server.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +9 -0
- package/dist/version.js.map +1 -0
- package/package.json +4 -6
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":""}
|
package/dist/bin.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// The one and only entrypoint for @trusty-squire/mcp.
|
|
3
|
+
//
|
|
4
|
+
// A single bin (`mcp`, matching the package's unscoped name) means
|
|
5
|
+
// `npx @trusty-squire/mcp <subcommand>` is never ambiguous about which
|
|
6
|
+
// executable to run — npx can only auto-pick a bin when there is one,
|
|
7
|
+
// or one named for the package. Subcommands:
|
|
8
|
+
// server — start the MCP stdio server (host agents)
|
|
9
|
+
// install | pair | logout — the setup CLI (humans)
|
|
10
|
+
//
|
|
11
|
+
// This file is *only* ever a process entrypoint: it has no exports and
|
|
12
|
+
// runs unconditionally. The old `import.meta.url === file://argv[1]`
|
|
13
|
+
// "am I main?" guard — duplicated in cli.ts and server.ts, and wrong in
|
|
14
|
+
// both when launched via a bin symlink — is gone by construction.
|
|
15
|
+
import process from "node:process";
|
|
16
|
+
import { MissingSessionError } from "./api-client.js";
|
|
17
|
+
import { runCli } from "./install/cli.js";
|
|
18
|
+
import { runServer } from "./server.js";
|
|
19
|
+
const argv = process.argv.slice(2);
|
|
20
|
+
const isServer = argv[0] === "server";
|
|
21
|
+
(isServer ? runServer() : runCli(argv)).catch((err) => {
|
|
22
|
+
// stderr lands in the host agent's MCP log; keep it useful.
|
|
23
|
+
if (err instanceof MissingSessionError) {
|
|
24
|
+
console.error(err.message);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
console.error(`[trusty-squire] ${isServer ? "server" : "cli"} failed: ` +
|
|
28
|
+
(err instanceof Error ? err.message : String(err)));
|
|
29
|
+
}
|
|
30
|
+
process.exit(1);
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,sDAAsD;AACtD,EAAE;AACF,mEAAmE;AACnE,uEAAuE;AACvE,sEAAsE;AACtE,6CAA6C;AAC7C,wEAAwE;AACxE,uDAAuD;AACvD,EAAE;AACF,uEAAuE;AACvE,qEAAqE;AACrE,wEAAwE;AACxE,kEAAkE;AAClE,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AAEtC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC7D,4DAA4D;IAC5D,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CACX,mBAAmB,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,WAAW;YACvD,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CACrD,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/install/cli.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
1
|
import { type AgentTarget } from "./agents.js";
|
|
3
2
|
import { type AsnInfo } from "@trusty-squire/universal-bot";
|
|
4
3
|
type Argv = {
|
|
@@ -8,6 +7,11 @@ type Argv = {
|
|
|
8
7
|
withPair: boolean;
|
|
9
8
|
};
|
|
10
9
|
declare function parseArgs(argv: string[]): Argv;
|
|
10
|
+
declare function resolveServerLaunch(): {
|
|
11
|
+
command: string;
|
|
12
|
+
args: string[];
|
|
13
|
+
};
|
|
14
|
+
export declare function runCli(argv: string[]): Promise<void>;
|
|
11
15
|
declare function install(args: Argv): Promise<void>;
|
|
12
16
|
declare function pair(args: Argv): Promise<void>;
|
|
13
17
|
declare function logout(): Promise<void>;
|
|
@@ -20,5 +24,5 @@ declare function pollForClaim(apiBase: string, pairToken: string, intervalMsOrOp
|
|
|
20
24
|
timeoutMs?: number;
|
|
21
25
|
}, timeoutMsArg?: number): Promise<ClaimResult | null>;
|
|
22
26
|
declare function printAsnWarning(asn: AsnInfo): void;
|
|
23
|
-
export { install, pair, logout, parseArgs, pollForClaim, printAsnWarning };
|
|
27
|
+
export { install, pair, logout, parseArgs, pollForClaim, printAsnWarning, resolveServerLaunch };
|
|
24
28
|
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAKvE,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,iBAAS,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAmBvC;AAWD,iBAAS,mBAAmB,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAMlE;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB1D;AAED,iBAAe,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFhD;AAED,iBAAe,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAc7C;AAyDD,iBAAe,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAIrC;AAiBD,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,iBAAe,YAAY,CACzB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,gBAAgB,GAAE,MAAM,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,EAC3E,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAoB7B;AAKD,iBAAS,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAyB3C;AAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC"}
|
package/dist/install/cli.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
// Install / pair / logout CLI.
|
|
1
|
+
// Setup CLI — the install / pair / logout subcommands.
|
|
3
2
|
//
|
|
4
3
|
// Tier 0 install (default) — friction-free:
|
|
5
4
|
// npx @trusty-squire/mcp install --target=claude-code
|
|
@@ -16,13 +15,16 @@
|
|
|
16
15
|
// --target=<agent> skip auto-detection
|
|
17
16
|
// --api-base=<url> override the API base URL
|
|
18
17
|
// --pair run pairing as part of install (Tier 1 from minute 1)
|
|
18
|
+
//
|
|
19
|
+
// Pure module — `runCli()` is invoked by bin.ts. No shebang, no
|
|
20
|
+
// entrypoint guard, no top-level execution.
|
|
19
21
|
import process from "node:process";
|
|
20
|
-
import { realpathSync } from "node:fs";
|
|
21
22
|
import { fileURLToPath } from "node:url";
|
|
22
23
|
import { pairInitiate, pairPoll, issueMachineToken } from "../api-client.js";
|
|
23
24
|
import { openSessionStorage } from "../session.js";
|
|
24
25
|
import { AGENTS, detectInstalledAgents } from "./agents.js";
|
|
25
26
|
import { detectAsn } from "@trusty-squire/universal-bot";
|
|
27
|
+
import { VERSION } from "../version.js";
|
|
26
28
|
const DEFAULT_API_BASE = process.env.TRUSTY_SQUIRE_API_BASE ?? "https://trusty-squire-api.fly.dev";
|
|
27
29
|
function parseArgs(argv) {
|
|
28
30
|
const positional = argv.filter((a) => !a.startsWith("--"));
|
|
@@ -50,8 +52,20 @@ function parseArgs(argv) {
|
|
|
50
52
|
function isAgentTarget(s) {
|
|
51
53
|
return s === "claude-code" || s === "cursor" || s === "goose" || s === "cline" || s === "continue";
|
|
52
54
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
// The MCP-config command that launches the server. An absolute
|
|
56
|
+
// `node <bin.js> server` is deterministic and offline — no npx package
|
|
57
|
+
// resolution every time the host agent spawns the server. But when this
|
|
58
|
+
// CLI is itself running from npx's throwaway cache, that path won't
|
|
59
|
+
// survive a cache sweep, so fall back to a version-pinned npx call.
|
|
60
|
+
function resolveServerLaunch() {
|
|
61
|
+
const binPath = fileURLToPath(new URL("../bin.js", import.meta.url));
|
|
62
|
+
const ephemeral = /[/\\]_npx[/\\]/.test(binPath);
|
|
63
|
+
return ephemeral
|
|
64
|
+
? { command: "npx", args: ["-y", `@trusty-squire/mcp@${VERSION}`, "server"] }
|
|
65
|
+
: { command: process.execPath, args: [binPath, "server"] };
|
|
66
|
+
}
|
|
67
|
+
export async function runCli(argv) {
|
|
68
|
+
const args = parseArgs(argv);
|
|
55
69
|
switch (args.command) {
|
|
56
70
|
case "install":
|
|
57
71
|
await install(args);
|
|
@@ -104,7 +118,7 @@ async function install(args) {
|
|
|
104
118
|
if (args.withPair) {
|
|
105
119
|
const upgraded = await runPair(args.apiBase, target, baseSession);
|
|
106
120
|
if (upgraded === null) {
|
|
107
|
-
console.warn("Pairing didn't complete — keeping Tier 0 session. Run `squire
|
|
121
|
+
console.warn("Pairing didn't complete — keeping Tier 0 session. Run `npx @trusty-squire/mcp pair` later to upgrade.");
|
|
108
122
|
}
|
|
109
123
|
else {
|
|
110
124
|
finalSession = upgraded;
|
|
@@ -124,9 +138,10 @@ async function install(args) {
|
|
|
124
138
|
// The machine token itself is NOT in the env — the MCP server reads it
|
|
125
139
|
// from session storage (keychain / file), which keeps it out of any
|
|
126
140
|
// child-process listing or shell history.
|
|
141
|
+
const launch = resolveServerLaunch();
|
|
127
142
|
await agent.writeConfig({
|
|
128
|
-
command:
|
|
129
|
-
args:
|
|
143
|
+
command: launch.command,
|
|
144
|
+
args: launch.args,
|
|
130
145
|
env: {
|
|
131
146
|
TRUSTY_SQUIRE_AGENT_IDENTITY: target,
|
|
132
147
|
UNIVERSAL_BOT_PREFER_CHEAP: "true",
|
|
@@ -206,7 +221,7 @@ async function logout() {
|
|
|
206
221
|
console.warn(`✓ Cleared local session (${storage.backendName()}).`);
|
|
207
222
|
}
|
|
208
223
|
function printHelp() {
|
|
209
|
-
console.warn(`
|
|
224
|
+
console.warn(`mcp — install Trusty Squire MCP into a coding agent`);
|
|
210
225
|
console.warn(``);
|
|
211
226
|
console.warn(`Commands:`);
|
|
212
227
|
console.warn(` install [--target=<agent>] [--api-base=<url>] [--pair]`);
|
|
@@ -269,26 +284,5 @@ function printAsnWarning(asn) {
|
|
|
269
284
|
return;
|
|
270
285
|
}
|
|
271
286
|
}
|
|
272
|
-
|
|
273
|
-
// often a bin symlink (e.g. node_modules/.bin/mcp under npx); realpathSync
|
|
274
|
-
// resolves it to the real cli.js path so the comparison holds for every
|
|
275
|
-
// launch style — `node dist/install/cli.js`, the bin shim, and npx.
|
|
276
|
-
function isEntrypoint() {
|
|
277
|
-
const invoked = process.argv[1];
|
|
278
|
-
if (!invoked)
|
|
279
|
-
return false;
|
|
280
|
-
try {
|
|
281
|
-
return realpathSync(invoked) === fileURLToPath(import.meta.url);
|
|
282
|
-
}
|
|
283
|
-
catch {
|
|
284
|
-
return false;
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
if (isEntrypoint()) {
|
|
288
|
-
main().catch((err) => {
|
|
289
|
-
console.error(err instanceof Error ? err.message : String(err));
|
|
290
|
-
process.exit(1);
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
export { install, pair, logout, parseArgs, pollForClaim, printAsnWarning };
|
|
287
|
+
export { install, pair, logout, parseArgs, pollForClaim, printAsnWarning, resolveServerLaunch };
|
|
294
288
|
//# sourceMappingURL=cli.js.map
|
package/dist/install/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
1
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
3
2
|
import { ApiClient } from "./api-client.js";
|
|
4
3
|
export declare function buildServer(api: ApiClient | null): Promise<Server>;
|
|
4
|
+
export declare function runServer(): Promise<void>;
|
|
5
5
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAMnE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,wBAAsB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAuDxE;AAWD,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA2B/C"}
|
package/dist/server.js
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
// registered tools over stdio.
|
|
1
|
+
// MCP server: reads the session from keytar/file, sets up an ApiClient
|
|
2
|
+
// against the configured API base URL, and exposes the registered tools
|
|
3
|
+
// over stdio.
|
|
5
4
|
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
5
|
+
// `runServer()` is invoked by bin.ts for the `server` subcommand. This
|
|
6
|
+
// file is a pure module — no shebang, no entrypoint guard, no top-level
|
|
7
|
+
// execution. The host agent launches `mcp server`; bin.ts dispatches.
|
|
9
8
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
10
9
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
11
10
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
12
|
-
import { ApiClient
|
|
11
|
+
import { ApiClient } from "./api-client.js";
|
|
13
12
|
import { TOOLS, findTool } from "./tools/index.js";
|
|
14
13
|
import { openSessionStorage } from "./session.js";
|
|
14
|
+
import { VERSION } from "./version.js";
|
|
15
15
|
const SERVER_NAME = "trusty-squire";
|
|
16
|
-
const SERVER_VERSION = "0.1.0";
|
|
17
16
|
const DEFAULT_REGISTRY_BASE = process.env.ADAPTER_REGISTRY_URL ?? "https://registry.trustysquire.ai";
|
|
18
17
|
export async function buildServer(api) {
|
|
19
|
-
const server = new Server({ name: SERVER_NAME, version:
|
|
18
|
+
const server = new Server({ name: SERVER_NAME, version: VERSION }, { capabilities: { tools: {} } });
|
|
20
19
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
21
20
|
tools: TOOLS.map((t) => ({
|
|
22
21
|
name: t.name,
|
|
@@ -46,9 +45,8 @@ export async function buildServer(api) {
|
|
|
46
45
|
// session check above, so users who only need universal signup don't
|
|
47
46
|
// need to pair at all.
|
|
48
47
|
if (api === null) {
|
|
49
|
-
return errorContent(`This tool requires pairing (Tier 1+).
|
|
50
|
-
`\`
|
|
51
|
-
`In production: \`npx @trusty-squire/mcp install --target=<agent> --pair\`. ` +
|
|
48
|
+
return errorContent(`This tool requires pairing (Tier 1+). Run ` +
|
|
49
|
+
`\`npx @trusty-squire/mcp install --target=<agent> --pair\` to enable it. ` +
|
|
52
50
|
`If you just want to sign up for a free service, call \`provision_any_service\` instead — ` +
|
|
53
51
|
`it works with a Tier 0 machine_token and doesn't need pairing.`);
|
|
54
52
|
}
|
|
@@ -69,7 +67,14 @@ function errorContent(message) {
|
|
|
69
67
|
content: [{ type: "text", text: message }],
|
|
70
68
|
};
|
|
71
69
|
}
|
|
72
|
-
|
|
70
|
+
// Start the MCP stdio server. Throws on a fatal startup failure; bin.ts
|
|
71
|
+
// owns the process-level error handling.
|
|
72
|
+
export async function runServer() {
|
|
73
|
+
// Startup breadcrumb on stderr (which lands in the host agent's MCP
|
|
74
|
+
// log). A silent no-op was the worst part of the entrypoint-guard
|
|
75
|
+
// bug — this line makes "did the server actually start?" answerable
|
|
76
|
+
// at a glance.
|
|
77
|
+
process.stderr.write(`[trusty-squire] server v${VERSION} starting\n`);
|
|
73
78
|
const storage = await openSessionStorage();
|
|
74
79
|
const session = await storage.read();
|
|
75
80
|
// Tier-aware ApiClient: only paired (Tier 1+) sessions can call the
|
|
@@ -88,14 +93,4 @@ async function main() {
|
|
|
88
93
|
const transport = new StdioServerTransport();
|
|
89
94
|
await server.connect(transport);
|
|
90
95
|
}
|
|
91
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
92
|
-
main().catch((err) => {
|
|
93
|
-
// stderr goes to the coding agent's MCP log — keep the message
|
|
94
|
-
// useful for debugging without leaking secrets.
|
|
95
|
-
console.error(err instanceof MissingSessionError
|
|
96
|
-
? err.message
|
|
97
|
-
: `[trusty-squire] startup failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
98
|
-
process.exit(1);
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
96
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,OAAO,EAAE,MAAoB,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Single source of truth for the package version. Read from
|
|
2
|
+
// package.json so it cannot drift from what is actually published —
|
|
3
|
+
// the old hardcoded `SERVER_VERSION = "0.1.0"` constant did exactly
|
|
4
|
+
// that (stale across three releases).
|
|
5
|
+
import { createRequire } from "node:module";
|
|
6
|
+
const require = createRequire(import.meta.url);
|
|
7
|
+
const pkg = require("../package.json");
|
|
8
|
+
export const VERSION = pkg.version;
|
|
9
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,oEAAoE;AACpE,oEAAoE;AACpE,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,MAAM,CAAC,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trusty-squire/mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Local MCP server vibe coding agents install. Thin relay to the Trusty Squire API.",
|
|
6
6
|
"main": "./dist/server.js",
|
|
7
7
|
"bin": {
|
|
8
|
-
"mcp": "./dist/
|
|
9
|
-
"squire-mcp": "./dist/install/cli.js",
|
|
10
|
-
"squire-mcp-server": "./dist/server.js"
|
|
8
|
+
"mcp": "./dist/bin.js"
|
|
11
9
|
},
|
|
12
10
|
"files": [
|
|
13
11
|
"dist"
|
|
@@ -39,7 +37,7 @@
|
|
|
39
37
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
40
38
|
"test": "vitest run",
|
|
41
39
|
"test:cov": "vitest run --coverage",
|
|
42
|
-
"dev:server": "tsx src/
|
|
43
|
-
"install:dev": "tsx src/
|
|
40
|
+
"dev:server": "tsx src/bin.ts server",
|
|
41
|
+
"install:dev": "tsx src/bin.ts install"
|
|
44
42
|
}
|
|
45
43
|
}
|