lockstep-cli 0.0.1 → 0.0.3
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/adapters/install.test.js.map +1 -1
- package/dist/adapters/merge.test.js +12 -2
- package/dist/adapters/merge.test.js.map +1 -1
- package/dist/adapters/templates.d.ts +2 -2
- package/dist/adapters/templates.js +12 -2
- package/dist/adapters/templates.js.map +1 -1
- package/dist/capture/classify-edge.test.d.ts +1 -0
- package/dist/capture/classify-edge.test.js +41 -0
- package/dist/capture/classify-edge.test.js.map +1 -0
- package/dist/capture/index.js +35 -0
- package/dist/capture/index.js.map +1 -1
- package/dist/cloud.js +1 -2
- package/dist/cloud.js.map +1 -1
- package/dist/config.test.d.ts +1 -0
- package/dist/config.test.js +46 -0
- package/dist/config.test.js.map +1 -0
- package/dist/connect.d.ts +4 -2
- package/dist/connect.js +10 -24
- package/dist/connect.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/login.js.map +1 -1
- package/dist/mcp/server.js.map +1 -1
- package/package.json +14 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.test.js","sourceRoot":"","sources":["../../src/adapters/install.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,IAAI,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;IACzF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC5D,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,SAAS,CACb,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,EACrC,IAAI,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"install.test.js","sourceRoot":"","sources":["../../src/adapters/install.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,18 @@ import { test } from "node:test";
|
|
|
2
2
|
import assert from "node:assert/strict";
|
|
3
3
|
import { mergeHooks, mergeMcp, upsertManagedBlock } from "./merge.js";
|
|
4
4
|
const HOOKS = [
|
|
5
|
-
{
|
|
6
|
-
|
|
5
|
+
{
|
|
6
|
+
event: "SessionStart",
|
|
7
|
+
matcher: "*",
|
|
8
|
+
args: ["-y", "@lockstep/cli", "capture", "--event", "SessionStart"],
|
|
9
|
+
timeout: 20,
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
event: "PostToolUse",
|
|
13
|
+
matcher: "Edit|Write",
|
|
14
|
+
args: ["-y", "@lockstep/cli", "capture", "--event", "PostToolUse"],
|
|
15
|
+
timeout: 30,
|
|
16
|
+
},
|
|
7
17
|
];
|
|
8
18
|
test("mergeHooks is idempotent (run twice = byte-identical)", () => {
|
|
9
19
|
const once = mergeHooks(null, HOOKS);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.test.js","sourceRoot":"","sources":["../../src/adapters/merge.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAoB,MAAM,YAAY,CAAC;AAExF,MAAM,KAAK,GAAkB;IAC3B,
|
|
1
|
+
{"version":3,"file":"merge.test.js","sourceRoot":"","sources":["../../src/adapters/merge.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ManagedHook, McpServerSpec } from "./merge.js";
|
|
2
2
|
export declare const mcpSpec: (vendor: string) => McpServerSpec;
|
|
3
3
|
export declare const captureHooks: ManagedHook[];
|
|
4
|
-
export declare const SKILL_MD = "---\nname: lockstep\ndescription: Keep this repo's coding agents in lockstep \u2014 read the shared ledger before coding, publish changes after.\n---\n\n# Lockstep\n\nThis project uses Lockstep to coordinate multiple developers' coding agents on the same codebase.\n\n## On session start\n- Call `inbox` to see what changed, what's newly binding, and what's delegated to you.\n- Call `decisions` to load the binding rules for the areas you'll touch.\n\n## Before coding a shared/contract surface\n- Call `query` to check the ledger for existing decisions/contracts (answer instantly if known).\n- Respect any `binding` decision in scope.\n\n## After making a change\n- Summarize the change and call `notify` (include a contract delta for interface changes).\n- For any surface you call, record the dependency with `register_dependency`.\n\n## Coordinating\n- Use `ask` for code/repo questions (set `urgent` if you're blocked).\n- Use `delegate` / `complete` for handoffs. Propose binding rules with `propose_decision`.\n";
|
|
5
|
-
export declare const CLAUDE_BLOCK = "## Lockstep (team coordination)\nOn session start, read your `inbox` and current `decisions`. Before coding a shared/contract surface, `query` the ledger and obey binding decisions. After a change, summarize it, `register_dependency` for surfaces you call, and `notify`. Ask code/repo questions with `ask` (urgent if blocking). See the `lockstep` skill for detail.";
|
|
4
|
+
export declare const SKILL_MD = "---\nname: lockstep\ndescription: Keep this repo's coding agents in lockstep \u2014 read the shared ledger before coding, publish changes after.\n---\n\n# Lockstep\n\nThis project uses Lockstep to coordinate multiple developers' coding agents on the same codebase.\n\n## On session start\n- Call `inbox` to see what changed, what's newly binding, and what's delegated to you.\n- Call `decisions` to load the binding rules for the areas you'll touch.\n- If you see open questions or tasks in the inbox, tell the user about them.\n\n## Before coding a shared/contract surface\n- Call `query` to check the ledger for existing decisions/contracts (answer instantly if known).\n- Respect any `binding` decision in scope.\n\n## After making a change\n- Summarize the change and call `notify` (include a contract delta for interface changes).\n- For any surface you call, record the dependency with `register_dependency`.\n\n## Coordinating\n- Use `ask` for code/repo questions (set `urgent` if you're blocked).\n- Use `delegate` / `complete` for handoffs. Propose binding rules with `propose_decision`.\n\n## Incoming messages\n- When you see a \"[Lockstep]\" notification, inform the user about the pending message(s).\n- The user decides whether to respond \u2014 don't auto-answer on their behalf.\n";
|
|
5
|
+
export declare const CLAUDE_BLOCK = "## Lockstep (team coordination)\nOn session start, read your `inbox` and current `decisions`. Tell the user about any open questions or tasks. Before coding a shared/contract surface, `query` the ledger and obey binding decisions. After a change, summarize it, `register_dependency` for surfaces you call, and `notify`. Ask code/repo questions with `ask` (urgent if blocking). When you see a \"[Lockstep]\" notification, inform the user about pending messages. See the `lockstep` skill for detail.";
|
|
@@ -7,7 +7,12 @@ export const mcpSpec = (vendor) => ({
|
|
|
7
7
|
});
|
|
8
8
|
export const captureHooks = [
|
|
9
9
|
{ event: "SessionStart", matcher: "*", args: ["capture", "--event", "SessionStart"], timeout: 20 },
|
|
10
|
-
{
|
|
10
|
+
{
|
|
11
|
+
event: "PostToolUse",
|
|
12
|
+
matcher: "Edit|Write|MultiEdit|NotebookEdit",
|
|
13
|
+
args: ["capture", "--event", "PostToolUse"],
|
|
14
|
+
timeout: 30,
|
|
15
|
+
},
|
|
11
16
|
{ event: "Stop", matcher: "*", args: ["capture", "--event", "Stop"], timeout: 45 },
|
|
12
17
|
];
|
|
13
18
|
export const SKILL_MD = `---
|
|
@@ -22,6 +27,7 @@ This project uses Lockstep to coordinate multiple developers' coding agents on t
|
|
|
22
27
|
## On session start
|
|
23
28
|
- Call \`inbox\` to see what changed, what's newly binding, and what's delegated to you.
|
|
24
29
|
- Call \`decisions\` to load the binding rules for the areas you'll touch.
|
|
30
|
+
- If you see open questions or tasks in the inbox, tell the user about them.
|
|
25
31
|
|
|
26
32
|
## Before coding a shared/contract surface
|
|
27
33
|
- Call \`query\` to check the ledger for existing decisions/contracts (answer instantly if known).
|
|
@@ -34,7 +40,11 @@ This project uses Lockstep to coordinate multiple developers' coding agents on t
|
|
|
34
40
|
## Coordinating
|
|
35
41
|
- Use \`ask\` for code/repo questions (set \`urgent\` if you're blocked).
|
|
36
42
|
- Use \`delegate\` / \`complete\` for handoffs. Propose binding rules with \`propose_decision\`.
|
|
43
|
+
|
|
44
|
+
## Incoming messages
|
|
45
|
+
- When you see a "[Lockstep]" notification, inform the user about the pending message(s).
|
|
46
|
+
- The user decides whether to respond — don't auto-answer on their behalf.
|
|
37
47
|
`;
|
|
38
48
|
export const CLAUDE_BLOCK = `## Lockstep (team coordination)
|
|
39
|
-
On session start, read your \`inbox\` and current \`decisions\`. Before coding a shared/contract surface, \`query\` the ledger and obey binding decisions. After a change, summarize it, \`register_dependency\` for surfaces you call, and \`notify\`. Ask code/repo questions with \`ask\` (urgent if blocking). See the \`lockstep\` skill for detail.`;
|
|
49
|
+
On session start, read your \`inbox\` and current \`decisions\`. Tell the user about any open questions or tasks. Before coding a shared/contract surface, \`query\` the ledger and obey binding decisions. After a change, summarize it, \`register_dependency\` for surfaces you call, and \`notify\`. Ask code/repo questions with \`ask\` (urgent if blocking). When you see a "[Lockstep]" notification, inform the user about pending messages. See the \`lockstep\` skill for detail.`;
|
|
40
50
|
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/adapters/templates.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,yFAAyF;AACzF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAc,EAAiB,EAAE,CAAC,CAAC;IACzD,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,CAAC,KAAK,CAAC;IACb,GAAG,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAClG,
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/adapters/templates.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,yFAAyF;AACzF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAc,EAAiB,EAAE,CAAC,CAAC;IACzD,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,CAAC,KAAK,CAAC;IACb,GAAG,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAClG;QACE,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,mCAAmC;QAC5C,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC;QAC3C,OAAO,EAAE,EAAE;KACZ;IACD,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;CACnF,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BvB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;6dACic,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { test } from "node:test";
|
|
2
|
+
import assert from "node:assert/strict";
|
|
3
|
+
import { isContractSurface, riskTierFor } from "./classify.js";
|
|
4
|
+
test("detects various OpenAPI file extensions", () => {
|
|
5
|
+
assert.ok(isContractSurface("api/openapi.yml"));
|
|
6
|
+
assert.ok(isContractSurface("swagger.json"));
|
|
7
|
+
assert.ok(isContractSurface("docs/swagger.yaml"));
|
|
8
|
+
});
|
|
9
|
+
test("detects handler paths", () => {
|
|
10
|
+
assert.ok(isContractSurface("src/handlers/order-handler.ts"));
|
|
11
|
+
assert.ok(isContractSurface("src/endpoints/v2/users.ts"));
|
|
12
|
+
});
|
|
13
|
+
test("detects contract files", () => {
|
|
14
|
+
assert.ok(isContractSurface("contracts/order-api.ts"));
|
|
15
|
+
});
|
|
16
|
+
test("does not flag test files without contract markers", () => {
|
|
17
|
+
assert.ok(!isContractSurface("src/utils/test-helper.ts", "function internal() {}"));
|
|
18
|
+
assert.ok(!isContractSurface("src/utils/math.ts", "const x = 1;"));
|
|
19
|
+
});
|
|
20
|
+
test("exported interface in TS is a contract surface", () => {
|
|
21
|
+
assert.ok(isContractSurface("src/types.ts", "export interface OrderPayload { id: string; }"));
|
|
22
|
+
assert.ok(isContractSurface("src/types.ts", "export type OrderId = string;"));
|
|
23
|
+
});
|
|
24
|
+
test("exported class is a contract surface", () => {
|
|
25
|
+
assert.ok(isContractSurface("src/service.ts", "export class OrderService {}"));
|
|
26
|
+
});
|
|
27
|
+
test("exported async function is a contract surface", () => {
|
|
28
|
+
assert.ok(isContractSurface("src/api.ts", "export async function fetchOrders() {}"));
|
|
29
|
+
});
|
|
30
|
+
test("non-TS files without path markers are not contract surfaces", () => {
|
|
31
|
+
assert.ok(!isContractSurface("README.md", "# Readme"));
|
|
32
|
+
assert.ok(!isContractSurface("package.json"));
|
|
33
|
+
assert.ok(!isContractSurface(".gitignore"));
|
|
34
|
+
});
|
|
35
|
+
test("riskTier: various combinations", () => {
|
|
36
|
+
assert.equal(riskTierFor({ anyContractSurface: true, allOwnedByMe: false }), "shared");
|
|
37
|
+
assert.equal(riskTierFor({ anyContractSurface: true, allOwnedByMe: true }), "shared");
|
|
38
|
+
assert.equal(riskTierFor({ anyContractSurface: false, allOwnedByMe: false }), "shared");
|
|
39
|
+
assert.equal(riskTierFor({ anyContractSurface: false, allOwnedByMe: true }), "owned");
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=classify-edge.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-edge.test.js","sourceRoot":"","sources":["../../src/capture/classify-edge.test.ts"],"names":[],"mappings":"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"}
|
package/dist/capture/index.js
CHANGED
|
@@ -13,6 +13,18 @@ function formatReplay(inbox, decisions) {
|
|
|
13
13
|
for (const c of changes.slice(0, 8))
|
|
14
14
|
lines.push(` • ${c.summary}${c.surface ? ` (${c.surface})` : ""}`);
|
|
15
15
|
}
|
|
16
|
+
const qs = (inbox?.questions ?? []).filter((q) => q.status === "open");
|
|
17
|
+
if (qs.length) {
|
|
18
|
+
lines.push(`❓ ${qs.length} open question(s) for you:`);
|
|
19
|
+
for (const q of qs.slice(0, 8))
|
|
20
|
+
lines.push(` • ${q.urgent ? "[URGENT] " : ""}${q.body}`);
|
|
21
|
+
}
|
|
22
|
+
const ts = (inbox?.tasks ?? []).filter((t) => t.status === "open");
|
|
23
|
+
if (ts.length) {
|
|
24
|
+
lines.push(`📋 ${ts.length} task(s) assigned to you:`);
|
|
25
|
+
for (const t of ts.slice(0, 8))
|
|
26
|
+
lines.push(` • ${t.title}`);
|
|
27
|
+
}
|
|
16
28
|
const binding = (decisions?.decisions ?? []).filter((d) => d.status === "binding");
|
|
17
29
|
if (binding.length) {
|
|
18
30
|
lines.push(`📌 ${binding.length} binding decision(s) in effect:`);
|
|
@@ -21,6 +33,21 @@ function formatReplay(inbox, decisions) {
|
|
|
21
33
|
}
|
|
22
34
|
return lines.length ? `Lockstep:\n${lines.join("\n")}` : "Lockstep: nothing new.";
|
|
23
35
|
}
|
|
36
|
+
/** Format a short badge from inbox peek counts. Returns null if nothing new. */
|
|
37
|
+
function formatPeek(peek) {
|
|
38
|
+
if (!peek || !peek.unread)
|
|
39
|
+
return null;
|
|
40
|
+
const parts = [];
|
|
41
|
+
if (peek.questions)
|
|
42
|
+
parts.push(`${peek.questions} question${peek.questions > 1 ? "s" : ""}`);
|
|
43
|
+
if (peek.tasks)
|
|
44
|
+
parts.push(`${peek.tasks} task${peek.tasks > 1 ? "s" : ""}`);
|
|
45
|
+
if (peek.changes)
|
|
46
|
+
parts.push(`${peek.changes} change${peek.changes > 1 ? "s" : ""}`);
|
|
47
|
+
if (parts.length === 0)
|
|
48
|
+
return null;
|
|
49
|
+
return `[Lockstep] ${peek.unread} new message${peek.unread > 1 ? "s" : ""} (${parts.join(", ")}). Check your inbox.`;
|
|
50
|
+
}
|
|
24
51
|
/**
|
|
25
52
|
* Hook entrypoint. Resilient by design — never break the agent: on any error it exits 0.
|
|
26
53
|
* SessionStart → replay inbox + binding decisions as additionalContext.
|
|
@@ -77,6 +104,14 @@ export async function runCapture(event) {
|
|
|
77
104
|
diffHash,
|
|
78
105
|
}).catch(() => { });
|
|
79
106
|
process.stderr.write(`[lockstep] published change (${riskTier})\n`);
|
|
107
|
+
// Peek at inbox (without marking as read) — notify the agent if there are unread items
|
|
108
|
+
const peek = await call("GET", "/inbox/peek", session.sessionId).catch(() => null);
|
|
109
|
+
const badge = formatPeek(peek);
|
|
110
|
+
if (badge) {
|
|
111
|
+
process.stdout.write(JSON.stringify({
|
|
112
|
+
hookSpecificOutput: { hookEventName: "PostToolUse", additionalContext: badge },
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
80
115
|
}
|
|
81
116
|
catch {
|
|
82
117
|
process.exit(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capture/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capture/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cloud.js
CHANGED
|
@@ -15,8 +15,7 @@ async function req(method, path, body) {
|
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
17
|
catch {
|
|
18
|
-
throw new Error(`Cannot reach the Lockstep API at ${API}\n` +
|
|
19
|
-
`Set your server once with: lockstep login --api <url>`);
|
|
18
|
+
throw new Error(`Cannot reach the Lockstep API at ${API}\n` + `Set your server once with: lockstep login --api <url>`);
|
|
20
19
|
}
|
|
21
20
|
const text = await res.text();
|
|
22
21
|
const json = text ? JSON.parse(text) : null;
|
package/dist/cloud.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,UAAU,GAAG,CAAc,MAAc,EAAE,IAAY,EAAE,IAAc;IAC1E,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE;YACjC,MAAM;YACN,OAAO,EAAE;gBACP,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;gBACrE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvD;YACD,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,oCAAoC,GAAG,IAAI
|
|
1
|
+
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,UAAU,GAAG,CAAc,MAAc,EAAE,IAAY,EAAE,IAAc;IAC1E,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE;YACjC,MAAM;YACN,OAAO,EAAE;gBACP,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;gBACrE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvD;YACD,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,oCAAoC,GAAG,IAAI,GAAG,wDAAwD,CACvG,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,IAAI,MAAM,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,IAAS,CAAC;AACnB,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,IAAI,MAAM;QACR,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IACD,GAAG,EAAE,CAAc,CAAS,EAAE,EAAE,CAAC,GAAG,CAAI,KAAK,EAAE,CAAC,CAAC;IACjD,IAAI,EAAE,CAAc,CAAS,EAAE,CAAW,EAAE,EAAE,CAAC,GAAG,CAAI,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACnE,KAAK,EAAE,CAAc,CAAS,EAAE,CAAW,EAAE,EAAE,CAAC,GAAG,CAAI,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,GAAG,EAAE,CAAc,CAAS,EAAE,EAAE,CAAC,GAAG,CAAI,QAAQ,EAAE,CAAC,CAAC;CACrD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { test } from "node:test";
|
|
2
|
+
import assert from "node:assert/strict";
|
|
3
|
+
import { resolveApiUrl } from "./config.js";
|
|
4
|
+
test("resolveApiUrl defaults to localhost:8080 when no env or config", () => {
|
|
5
|
+
const saved = process.env.LOCKSTEP_API_URL;
|
|
6
|
+
delete process.env.LOCKSTEP_API_URL;
|
|
7
|
+
try {
|
|
8
|
+
const url = resolveApiUrl();
|
|
9
|
+
// It should return either saved config or the default
|
|
10
|
+
assert.ok(url.startsWith("http"));
|
|
11
|
+
assert.ok(!url.endsWith("/"), "trailing slash should be stripped");
|
|
12
|
+
}
|
|
13
|
+
finally {
|
|
14
|
+
if (saved !== undefined)
|
|
15
|
+
process.env.LOCKSTEP_API_URL = saved;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
test("resolveApiUrl uses env var when set", () => {
|
|
19
|
+
const saved = process.env.LOCKSTEP_API_URL;
|
|
20
|
+
process.env.LOCKSTEP_API_URL = "https://my-server.example.com/";
|
|
21
|
+
try {
|
|
22
|
+
const url = resolveApiUrl();
|
|
23
|
+
assert.equal(url, "https://my-server.example.com");
|
|
24
|
+
}
|
|
25
|
+
finally {
|
|
26
|
+
if (saved !== undefined)
|
|
27
|
+
process.env.LOCKSTEP_API_URL = saved;
|
|
28
|
+
else
|
|
29
|
+
delete process.env.LOCKSTEP_API_URL;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
test("resolveApiUrl strips multiple trailing slashes", () => {
|
|
33
|
+
const saved = process.env.LOCKSTEP_API_URL;
|
|
34
|
+
process.env.LOCKSTEP_API_URL = "http://localhost:8080///";
|
|
35
|
+
try {
|
|
36
|
+
const url = resolveApiUrl();
|
|
37
|
+
assert.equal(url, "http://localhost:8080");
|
|
38
|
+
}
|
|
39
|
+
finally {
|
|
40
|
+
if (saved !== undefined)
|
|
41
|
+
process.env.LOCKSTEP_API_URL = saved;
|
|
42
|
+
else
|
|
43
|
+
delete process.env.LOCKSTEP_API_URL;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=config.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;IAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC3C,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,sDAAsD;QACtD,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,mCAAmC,CAAC,CAAC;IACrE,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAChE,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,gCAAgC,CAAC;IAChE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC;IACrD,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC;;YACzD,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC3C,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,0BAA0B,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IAC7C,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC;;YACzD,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC3C,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/connect.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Connect the current repo
|
|
3
|
-
*
|
|
2
|
+
* Connect the current repo. The server resolves the remote and either:
|
|
3
|
+
* - joins you (if you have GitHub access to an already-connected repo — no approval needed),
|
|
4
|
+
* - opens it (if you're already a member), or
|
|
5
|
+
* - creates the project and connects it.
|
|
4
6
|
*/
|
|
5
7
|
export declare function runConnect(opts: {
|
|
6
8
|
org?: string;
|
package/dist/connect.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { cloud } from "./cloud.js";
|
|
2
2
|
import { gitRemote } from "./mcp/git.js";
|
|
3
3
|
/**
|
|
4
|
-
* Connect the current repo
|
|
5
|
-
*
|
|
4
|
+
* Connect the current repo. The server resolves the remote and either:
|
|
5
|
+
* - joins you (if you have GitHub access to an already-connected repo — no approval needed),
|
|
6
|
+
* - opens it (if you're already a member), or
|
|
7
|
+
* - creates the project and connects it.
|
|
6
8
|
*/
|
|
7
9
|
export async function runConnect(opts) {
|
|
8
10
|
const remote = gitRemote(process.cwd());
|
|
@@ -10,29 +12,13 @@ export async function runConnect(opts) {
|
|
|
10
12
|
console.error("No git 'origin' remote here — Lockstep identifies a repo by its remote.");
|
|
11
13
|
process.exit(1);
|
|
12
14
|
}
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const created = await cloud.post("/orgs", {
|
|
17
|
-
name: opts.org ?? `${me.principal.githubLogin}'s workspace`,
|
|
18
|
-
});
|
|
19
|
-
orgId = created.orgId;
|
|
20
|
-
}
|
|
21
|
-
const projectName = opts.project ?? remote.split("/").pop() ?? "default";
|
|
22
|
-
const overview = await cloud.get(`/orgs/${orgId}/overview`);
|
|
23
|
-
let projectId = overview?.projects.find((p) => p.name === projectName)?.id;
|
|
24
|
-
if (!projectId) {
|
|
25
|
-
projectId = (await cloud.post(`/orgs/${orgId}/projects`, { name: projectName })).projectId;
|
|
26
|
-
}
|
|
27
|
-
const po = await cloud.get(`/orgs/${orgId}/projects/${projectId}/overview`);
|
|
28
|
-
const already = po?.repos.some((r) => r.gitRemote === remote);
|
|
29
|
-
if (!already) {
|
|
30
|
-
await cloud.post(`/orgs/${orgId}/projects/${projectId}/repos`, { gitRemote: remote });
|
|
31
|
-
}
|
|
32
|
-
console.log(`✓ connected ${remote}`);
|
|
33
|
-
console.log(` → project "${projectName}" (org ${orgId.slice(0, 8)})`);
|
|
15
|
+
const r = await cloud.post("/connect", { gitRemote: remote, project: opts.project });
|
|
16
|
+
const verb = r.status === "created" ? "created and connected" : r.status === "joined" ? "joined" : "already connected to";
|
|
17
|
+
console.log(`✓ ${verb} project "${r.projectName}" (${remote})`);
|
|
34
18
|
console.log(`\nOpen this repo in Claude Code — Lockstep registers the session automatically.`);
|
|
35
|
-
|
|
19
|
+
if (r.status === "created") {
|
|
20
|
+
console.log(`Teammates with GitHub access can join by running \`lockstep connect\` in their clone.`);
|
|
21
|
+
}
|
|
36
22
|
}
|
|
37
23
|
/** Invite a teammate by GitHub handle to this repo's project. */
|
|
38
24
|
export async function runInvite(handle) {
|
package/dist/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAgBzC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAwC;IACvE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;QACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAgB,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACpG,MAAM,IAAI,GACR,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAC/G,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,WAAW,OAAO,MAAM,GAAG,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC;IAC/F,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC;IACvG,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc;IAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAK,KAAK,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAW,SAAS,KAAK,WAAW,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,EAAE,CAAC;IAC7E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,aAAa,SAAS,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3G,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,WAAW,+CAA+C,CAAC,CAAC;AACxH,CAAC"}
|
package/dist/index.js
CHANGED
|
File without changes
|
package/dist/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AASjD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAA6C;IAC1E,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAY,iBAAiB,EAAE;YACvD,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;YACzB,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACjG,MAAM,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,WAAW,QAAQ,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AASjD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAA6C;IAC1E,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAY,iBAAiB,EAAE;YACvD,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;YACzB,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACjG,MAAM,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,WAAW,QAAQ,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAK3B,oBAAoB,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,gBAAgB,qBAAqB,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC;QACR,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAY,mBAAmB,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAClG,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACvC,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,uBAAuB,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACvF,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,2CAA2C;IAC1F,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IAC9B,MAAM,EAAE,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAErG,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAErE,MAAM,CAAC,IAAI,CACT,QAAQ,EACR;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACjC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC5D,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAChC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,EACD,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CACxD,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CACvF,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IACF,MAAM,CAAC,IAAI,CACT,KAAK,EACL,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,EACtF,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAC1D,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAClF,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,UAAU,SAAS,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAC3F,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAClG,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CACvF,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,WAAW,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAC7E,CAAC;IACF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAC9F,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAC1D,CAAC;IACF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,EAC/E,KAAK,EAAE,CAAC,EAAE,EAAE,CACV,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,UAAU,MAAM,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAC5G,CAAC;IACF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,EACtE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAC7D,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CACrE,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAClG,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CACvD,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,gBAAgB,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CACzE,CAAC;IAEF,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;AACnD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lockstep-cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Keep your team's AI coding agents in lockstep — shared decisions, contracts, ownership and dependencies across repos.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,11 +10,21 @@
|
|
|
10
10
|
"url": "git+https://github.com/naman7474/lockstep.git",
|
|
11
11
|
"directory": "packages/cli"
|
|
12
12
|
},
|
|
13
|
-
"keywords": [
|
|
13
|
+
"keywords": [
|
|
14
|
+
"lockstep",
|
|
15
|
+
"mcp",
|
|
16
|
+
"claude-code",
|
|
17
|
+
"codex",
|
|
18
|
+
"ai-agents",
|
|
19
|
+
"coordination",
|
|
20
|
+
"codeowners"
|
|
21
|
+
],
|
|
14
22
|
"bin": {
|
|
15
23
|
"lockstep": "dist/index.js"
|
|
16
24
|
},
|
|
17
|
-
"files": [
|
|
25
|
+
"files": [
|
|
26
|
+
"dist"
|
|
27
|
+
],
|
|
18
28
|
"engines": {
|
|
19
29
|
"node": ">=20"
|
|
20
30
|
},
|
|
@@ -26,7 +36,7 @@
|
|
|
26
36
|
"build": "tsc -p tsconfig.json",
|
|
27
37
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
28
38
|
"prepublishOnly": "npm run build",
|
|
29
|
-
"test": "node --test"
|
|
39
|
+
"test": "find src -name '*.test.ts' | xargs node --import tsx --test"
|
|
30
40
|
},
|
|
31
41
|
"dependencies": {
|
|
32
42
|
"@modelcontextprotocol/sdk": "^1.0.4",
|