too-many-cooks-core 0.7.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/LICENSE +21 -0
- package/README.md +39 -0
- package/build/admin_routes.d.ts +15 -0
- package/build/admin_routes.d.ts.map +1 -0
- package/build/admin_routes.js +183 -0
- package/build/admin_routes.js.map +1 -0
- package/build/config.d.ts +35 -0
- package/build/config.d.ts.map +1 -0
- package/build/config.js +44 -0
- package/build/config.js.map +1 -0
- package/build/db-contract-tests.d.ts +16 -0
- package/build/db-contract-tests.d.ts.map +1 -0
- package/build/db-contract-tests.js +498 -0
- package/build/db-contract-tests.js.map +1 -0
- package/build/db-interface.d.ts +34 -0
- package/build/db-interface.d.ts.map +1 -0
- package/build/db-interface.js +6 -0
- package/build/db-interface.js.map +1 -0
- package/build/index.d.ts +18 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +20 -0
- package/build/index.js.map +1 -0
- package/build/logger.d.ts +45 -0
- package/build/logger.d.ts.map +1 -0
- package/build/logger.js +59 -0
- package/build/logger.js.map +1 -0
- package/build/mcp-types.d.ts +24 -0
- package/build/mcp-types.d.ts.map +1 -0
- package/build/mcp-types.js +9 -0
- package/build/mcp-types.js.map +1 -0
- package/build/notifications.d.ts +46 -0
- package/build/notifications.d.ts.map +1 -0
- package/build/notifications.js +125 -0
- package/build/notifications.js.map +1 -0
- package/build/result.d.ts +26 -0
- package/build/result.d.ts.map +1 -0
- package/build/result.js +37 -0
- package/build/result.js.map +1 -0
- package/build/server.d.ts +21 -0
- package/build/server.d.ts.map +1 -0
- package/build/server.js +120 -0
- package/build/server.js.map +1 -0
- package/build/tools/lock_tool.d.ts +22 -0
- package/build/tools/lock_tool.d.ts.map +1 -0
- package/build/tools/lock_tool.js +184 -0
- package/build/tools/lock_tool.js.map +1 -0
- package/build/tools/message_tool.d.ts +21 -0
- package/build/tools/message_tool.d.ts.map +1 -0
- package/build/tools/message_tool.js +141 -0
- package/build/tools/message_tool.js.map +1 -0
- package/build/tools/plan_tool.d.ts +21 -0
- package/build/tools/plan_tool.d.ts.map +1 -0
- package/build/tools/plan_tool.js +132 -0
- package/build/tools/plan_tool.js.map +1 -0
- package/build/tools/register_tool.d.ts +29 -0
- package/build/tools/register_tool.d.ts.map +1 -0
- package/build/tools/register_tool.js +137 -0
- package/build/tools/register_tool.js.map +1 -0
- package/build/tools/status_tool.d.ts +19 -0
- package/build/tools/status_tool.d.ts.map +1 -0
- package/build/tools/status_tool.js +51 -0
- package/build/tools/status_tool.js.map +1 -0
- package/build/tools/tool_utils.d.ts +18 -0
- package/build/tools/tool_utils.d.ts.map +1 -0
- package/build/tools/tool_utils.js +45 -0
- package/build/tools/tool_utils.js.map +1 -0
- package/build/types.d.ts +14 -0
- package/build/types.d.ts.map +1 -0
- package/build/types.gen.d.ts +76 -0
- package/build/types.gen.d.ts.map +1 -0
- package/build/types.gen.js +133 -0
- package/build/types.gen.js.map +1 -0
- package/build/types.js +16 -0
- package/build/types.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/// Register tool - agent registration and reconnection.
|
|
2
|
+
import { EVENT_AGENT_ACTIVATED, EVENT_AGENT_REGISTERED, } from "../notifications.js";
|
|
3
|
+
import { agentRegistrationToJson, dbErrorToJson } from "../types.js";
|
|
4
|
+
import { textContent, } from "../mcp-types.js";
|
|
5
|
+
import { errorContent } from "./tool_utils.js";
|
|
6
|
+
/** Input schema for register tool. */
|
|
7
|
+
export const REGISTER_INPUT_SCHEMA = {
|
|
8
|
+
type: "object",
|
|
9
|
+
properties: {
|
|
10
|
+
name: {
|
|
11
|
+
type: "string",
|
|
12
|
+
description: "Your unique agent name, 1-50 chars. " +
|
|
13
|
+
"For FIRST registration only. Do NOT send with key.",
|
|
14
|
+
},
|
|
15
|
+
key: {
|
|
16
|
+
type: "string",
|
|
17
|
+
description: "Your secret key from a previous registration. " +
|
|
18
|
+
"For RECONNECT only. Do NOT send with name.",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
/** Tool config for register. */
|
|
23
|
+
export const REGISTER_TOOL_CONFIG = {
|
|
24
|
+
title: "Register Agent",
|
|
25
|
+
description: "Register a new agent or reconnect with an existing key. " +
|
|
26
|
+
'FIRST TIME: pass "name" only. Returns key \u2014 store it! ' +
|
|
27
|
+
'RECONNECT: pass "key" only. Server looks up your name. ' +
|
|
28
|
+
"Passing both name and key is an error. " +
|
|
29
|
+
'Example first: {"name": "my-agent"} ' +
|
|
30
|
+
'Example reconnect: {"key": "abc123..."}',
|
|
31
|
+
inputSchema: REGISTER_INPUT_SCHEMA,
|
|
32
|
+
outputSchema: null,
|
|
33
|
+
annotations: null,
|
|
34
|
+
};
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
// Reconnect handler
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
const handleReconnect = async (db, emitter, log, setSession, keyArg) => {
|
|
39
|
+
const lookupResult = await db.lookupByKey(keyArg);
|
|
40
|
+
if (!lookupResult.ok) {
|
|
41
|
+
log.warn(`Reconnect failed: ${lookupResult.error.code}`);
|
|
42
|
+
return {
|
|
43
|
+
content: [
|
|
44
|
+
textContent(JSON.stringify(dbErrorToJson(lookupResult.error))),
|
|
45
|
+
],
|
|
46
|
+
isError: true,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
setSession(lookupResult.value, keyArg);
|
|
50
|
+
await db.activate(lookupResult.value);
|
|
51
|
+
emitter.emit(EVENT_AGENT_ACTIVATED, {
|
|
52
|
+
agent_name: lookupResult.value,
|
|
53
|
+
});
|
|
54
|
+
log.info(`Agent reconnected: ${lookupResult.value}`);
|
|
55
|
+
return {
|
|
56
|
+
content: [
|
|
57
|
+
textContent(JSON.stringify({
|
|
58
|
+
agent_name: lookupResult.value,
|
|
59
|
+
agent_key: keyArg,
|
|
60
|
+
})),
|
|
61
|
+
],
|
|
62
|
+
isError: false,
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
// First registration handler
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
const handleFirstRegistration = async (db, emitter, log, setSession, nameArg) => {
|
|
69
|
+
let reg = await db.register(nameArg);
|
|
70
|
+
if (!reg.ok && reg.error.message.includes("already registered")) {
|
|
71
|
+
const resetResult = await db.adminResetKey(nameArg);
|
|
72
|
+
if (!resetResult.ok) {
|
|
73
|
+
log.warn(`Re-registration failed: ${resetResult.error.code}`);
|
|
74
|
+
return {
|
|
75
|
+
content: [
|
|
76
|
+
textContent(JSON.stringify(dbErrorToJson(resetResult.error))),
|
|
77
|
+
],
|
|
78
|
+
isError: true,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
reg = resetResult;
|
|
82
|
+
}
|
|
83
|
+
if (!reg.ok) {
|
|
84
|
+
log.warn(`Registration failed: ${reg.error.code}`);
|
|
85
|
+
return {
|
|
86
|
+
content: [textContent(JSON.stringify(dbErrorToJson(reg.error)))],
|
|
87
|
+
isError: true,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
setSession(reg.value.agentName, reg.value.agentKey);
|
|
91
|
+
await db.activate(reg.value.agentName);
|
|
92
|
+
emitter.emit(EVENT_AGENT_REGISTERED, {
|
|
93
|
+
agent_name: reg.value.agentName,
|
|
94
|
+
registered_at: Date.now(),
|
|
95
|
+
});
|
|
96
|
+
log.info(`Agent registered: ${reg.value.agentName}`);
|
|
97
|
+
return {
|
|
98
|
+
content: [
|
|
99
|
+
textContent(JSON.stringify(agentRegistrationToJson(reg.value))),
|
|
100
|
+
],
|
|
101
|
+
isError: false,
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
const extractNonEmptyString = (value) => { return typeof value === "string" && value.length > 0 ? value : null; };
|
|
105
|
+
const parseRegisterArgs = (args) => {
|
|
106
|
+
const nameArg = extractNonEmptyString(args.name);
|
|
107
|
+
const keyArg = extractNonEmptyString(args.key);
|
|
108
|
+
if (nameArg !== null && keyArg !== null) {
|
|
109
|
+
return { mode: "error", result: errorContent("validation: pass name OR key, not both") };
|
|
110
|
+
}
|
|
111
|
+
if (nameArg === null && keyArg === null) {
|
|
112
|
+
return { mode: "error", result: errorContent("missing_parameter: name or key required") };
|
|
113
|
+
}
|
|
114
|
+
if (keyArg !== null) {
|
|
115
|
+
return { mode: "reconnect", keyArg };
|
|
116
|
+
}
|
|
117
|
+
if (nameArg === null) {
|
|
118
|
+
return { mode: "error", result: errorContent("missing_parameter: name required") };
|
|
119
|
+
}
|
|
120
|
+
return { mode: "new", nameArg };
|
|
121
|
+
};
|
|
122
|
+
/** Create register tool handler. */
|
|
123
|
+
export const createRegisterHandler = (db, emitter, logger, setSession) => {
|
|
124
|
+
return async (args) => {
|
|
125
|
+
const parsed = parseRegisterArgs(args);
|
|
126
|
+
if (parsed.mode === "error") {
|
|
127
|
+
return parsed.result;
|
|
128
|
+
}
|
|
129
|
+
if (parsed.mode === "reconnect") {
|
|
130
|
+
const log = logger.child({ tool: "register", mode: "reconnect" });
|
|
131
|
+
return await handleReconnect(db, emitter, log, setSession, parsed.keyArg);
|
|
132
|
+
}
|
|
133
|
+
const log = logger.child({ tool: "register", agentName: parsed.nameArg });
|
|
134
|
+
return await handleFirstRegistration(db, emitter, log, setSession, parsed.nameArg);
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=register_tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register_tool.js","sourceRoot":"","sources":["../../src/tools/register_tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Logger } from "../logger.js";
|
|
2
|
+
import type { TooManyCooksDb } from "../db-interface.js";
|
|
3
|
+
import { type ToolCallback } from "../mcp-types.js";
|
|
4
|
+
/** Input schema for status tool (no inputs required). */
|
|
5
|
+
export declare const STATUS_INPUT_SCHEMA: {
|
|
6
|
+
readonly type: "object";
|
|
7
|
+
readonly properties: Record<string, never>;
|
|
8
|
+
};
|
|
9
|
+
/** Tool config for status. */
|
|
10
|
+
export declare const STATUS_TOOL_CONFIG: {
|
|
11
|
+
readonly title: string;
|
|
12
|
+
readonly description: string;
|
|
13
|
+
readonly inputSchema: typeof STATUS_INPUT_SCHEMA;
|
|
14
|
+
readonly outputSchema: null;
|
|
15
|
+
readonly annotations: null;
|
|
16
|
+
};
|
|
17
|
+
/** Create status tool handler. */
|
|
18
|
+
export declare const createStatusHandler: (db: TooManyCooksDb, logger: Logger) => ToolCallback;
|
|
19
|
+
//# sourceMappingURL=status_tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status_tool.d.ts","sourceRoot":"","sources":["../../src/tools/status_tool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AASzD,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,iBAAiB,CAAC;AAGzB,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,EAAE;IAChC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAInC,CAAC;AAEX,8BAA8B;AAC9B,eAAO,MAAM,kBAAkB,EAAE;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,OAAO,mBAAmB,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;CAOnB,CAAC;AAEX,kCAAkC;AAClC,eAAO,MAAM,mBAAmB,EAAE,CAChC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,KACX,YA+BD,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/// Status tool - system overview.
|
|
2
|
+
import { agentIdentityToJson, agentPlanToJson, fileLockToJson, messageToJson, } from "../types.js";
|
|
3
|
+
import { textContent, } from "../mcp-types.js";
|
|
4
|
+
import { makeErrorResult } from "./tool_utils.js";
|
|
5
|
+
/** Input schema for status tool (no inputs required). */
|
|
6
|
+
export const STATUS_INPUT_SCHEMA = {
|
|
7
|
+
type: "object",
|
|
8
|
+
properties: {},
|
|
9
|
+
};
|
|
10
|
+
/** Tool config for status. */
|
|
11
|
+
export const STATUS_TOOL_CONFIG = {
|
|
12
|
+
title: "Status",
|
|
13
|
+
description: "Get system overview: agents, locks, plans, messages",
|
|
14
|
+
inputSchema: STATUS_INPUT_SCHEMA,
|
|
15
|
+
outputSchema: null,
|
|
16
|
+
annotations: null,
|
|
17
|
+
};
|
|
18
|
+
/** Create status tool handler. */
|
|
19
|
+
export const createStatusHandler = (db, logger) => {
|
|
20
|
+
return async () => {
|
|
21
|
+
const log = logger.child({ tool: "status" });
|
|
22
|
+
const agentsResult = await db.listAgents();
|
|
23
|
+
if (!agentsResult.ok) {
|
|
24
|
+
return makeErrorResult(agentsResult.error);
|
|
25
|
+
}
|
|
26
|
+
const agents = agentsResult.value.map(agentIdentityToJson);
|
|
27
|
+
const locksResult = await db.listLocks();
|
|
28
|
+
if (!locksResult.ok) {
|
|
29
|
+
return makeErrorResult(locksResult.error);
|
|
30
|
+
}
|
|
31
|
+
const locks = locksResult.value.map(fileLockToJson);
|
|
32
|
+
const plansResult = await db.listPlans();
|
|
33
|
+
if (!plansResult.ok) {
|
|
34
|
+
return makeErrorResult(plansResult.error);
|
|
35
|
+
}
|
|
36
|
+
const plans = plansResult.value.map(agentPlanToJson);
|
|
37
|
+
const messagesResult = await db.listAllMessages();
|
|
38
|
+
if (!messagesResult.ok) {
|
|
39
|
+
return makeErrorResult(messagesResult.error);
|
|
40
|
+
}
|
|
41
|
+
const messages = messagesResult.value.map(messageToJson);
|
|
42
|
+
log.debug("Status queried");
|
|
43
|
+
return {
|
|
44
|
+
content: [
|
|
45
|
+
textContent(JSON.stringify({ agents, locks, plans, messages })),
|
|
46
|
+
],
|
|
47
|
+
isError: false,
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=status_tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status_tool.js","sourceRoot":"","sources":["../../src/tools/status_tool.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAMlC,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,yDAAyD;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAG5B;IACF,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,EAAE;CACN,CAAC;AAEX,8BAA8B;AAC9B,MAAM,CAAC,MAAM,kBAAkB,GAM3B;IACF,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE,qDAAqD;IAClE,WAAW,EAAE,mBAAmB;IAChC,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;CACT,CAAC;AAEX,kCAAkC;AAClC,MAAM,CAAC,MAAM,mBAAmB,GAGZ,CAClB,EAAkB,EAClB,MAAc,EACA,EAAE;IACf,OAAO,KAAK,IAA6B,EAAE;QAC1C,MAAM,GAAG,GAAW,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAErD,MAAM,YAAY,GAA8C,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC;QACtF,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YAAA,OAAO,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAAA,CAAC;QACnE,MAAM,MAAM,GAAmC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAE3F,MAAM,WAAW,GAAyC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;QAC/E,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;YAAA,OAAO,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAA,CAAC;QACjE,MAAM,KAAK,GAAmC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAEpF,MAAM,WAAW,GAA0C,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;QAChF,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;YAAA,OAAO,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAA,CAAC;QACjE,MAAM,KAAK,GAAmC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAErF,MAAM,cAAc,GAAwC,MAAM,EAAE,CAAC,eAAe,EAAE,CAAC;QACvF,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;YAAA,OAAO,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAAA,CAAC;QACvE,MAAM,QAAQ,GAAmC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEzF,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAE5B,OAAO;YACL,OAAO,EAAE;gBACP,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;aAChE;YACD,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC,CAAA;AAAA,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TooManyCooksDb } from "../db-interface.js";
|
|
2
|
+
import { type DbError } from "../types.js";
|
|
3
|
+
import { type CallToolResult, type SessionGetter } from "../mcp-types.js";
|
|
4
|
+
type IdentityOk = {
|
|
5
|
+
readonly isError: false;
|
|
6
|
+
readonly agentName: string;
|
|
7
|
+
readonly agentKey: string;
|
|
8
|
+
};
|
|
9
|
+
type IdentityErr = {
|
|
10
|
+
readonly isError: true;
|
|
11
|
+
readonly result: CallToolResult;
|
|
12
|
+
};
|
|
13
|
+
export type IdentityResult = IdentityErr | IdentityOk;
|
|
14
|
+
export declare const resolveIdentity: (db: TooManyCooksDb, args: Record<string, unknown>, getSession: SessionGetter) => Promise<IdentityResult>;
|
|
15
|
+
export declare const makeErrorResult: (e: DbError) => CallToolResult;
|
|
16
|
+
export declare const errorContent: (msg: string) => CallToolResult;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=tool_utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool_utils.d.ts","sourceRoot":"","sources":["../../src/tools/tool_utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,aAAa,CAAC;AAC1D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAEnB,MAAM,iBAAiB,CAAC;AAMzB,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AACF,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,UAAU,CAAC;AAEtD,eAAO,MAAM,eAAe,EAAE,CAC5B,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,EAAE,aAAa,KACtB,OAAO,CAAC,cAAc,CA8B1B,CAAC;AAMF,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,cAG5C,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,cAG1C,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/// Shared utilities for tool handlers.
|
|
2
|
+
import { dbErrorToJson } from "../types.js";
|
|
3
|
+
import { textContent, } from "../mcp-types.js";
|
|
4
|
+
export const resolveIdentity = async (db, args, getSession) => {
|
|
5
|
+
const keyOverride = typeof args.agent_key === "string" ? args.agent_key : null;
|
|
6
|
+
if (keyOverride !== null) {
|
|
7
|
+
const lookupResult = await db.lookupByKey(keyOverride);
|
|
8
|
+
if (!lookupResult.ok) {
|
|
9
|
+
return { isError: true, result: makeErrorResult(lookupResult.error) };
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
isError: false,
|
|
13
|
+
agentName: lookupResult.value,
|
|
14
|
+
agentKey: keyOverride,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const session = getSession();
|
|
18
|
+
if (session === null) {
|
|
19
|
+
return {
|
|
20
|
+
isError: true,
|
|
21
|
+
result: errorContent("not_registered: call register first"),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
isError: false,
|
|
26
|
+
agentName: session.agentName,
|
|
27
|
+
agentKey: session.agentKey,
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
// Error helpers
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
export const makeErrorResult = (e) => {
|
|
34
|
+
return {
|
|
35
|
+
content: [textContent(JSON.stringify(dbErrorToJson(e)))],
|
|
36
|
+
isError: true,
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export const errorContent = (msg) => {
|
|
40
|
+
return {
|
|
41
|
+
content: [textContent(JSON.stringify({ error: msg }))],
|
|
42
|
+
isError: true,
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=tool_utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool_utils.js","sourceRoot":"","sources":["../../src/tools/tool_utils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAGvC,OAAO,EAAgB,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAGL,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAkBzB,MAAM,CAAC,MAAM,eAAe,GAIG,KAAK,EAClC,EAAkB,EAClB,IAA6B,EAC7B,UAAyB,EACA,EAAE;IAC3B,MAAM,WAAW,GACf,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,YAAY,GAAuD,MAAM,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC3G,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,YAAY,CAAC,KAAK;YAC7B,QAAQ,EAAE,WAAW;SACtB,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAA8B,UAAU,EAAE,CAAC;IACxD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,YAAY,CAAC,qCAAqC,CAAC;SAC5D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;AACJ,CAAC,CAAC;AAEF,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,CAAU,EAAkB,EAAE;IAAE,OAAO;QACrG,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,OAAO,EAAE,IAAI;KACd,CAAA;AAAA,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAoC,CAAC,GAAW,EAAkB,EAAE;IAAE,OAAO;QACpG,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO,EAAE,IAAI;KACd,CAAA;AAAA,CAAC,CAAC"}
|
package/build/types.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from "./types.gen.js";
|
|
2
|
+
/** Error code for resource not found. */
|
|
3
|
+
export declare const ERR_NOT_FOUND: string;
|
|
4
|
+
/** Error code for unauthorized access. */
|
|
5
|
+
export declare const ERR_UNAUTHORIZED: string;
|
|
6
|
+
/** Error code when lock is held by another agent. */
|
|
7
|
+
export declare const ERR_LOCK_HELD: string;
|
|
8
|
+
/** Error code when lock has expired. */
|
|
9
|
+
export declare const ERR_LOCK_EXPIRED: string;
|
|
10
|
+
/** Error code for validation failures. */
|
|
11
|
+
export declare const ERR_VALIDATION: string;
|
|
12
|
+
/** Error code for database errors. */
|
|
13
|
+
export declare const ERR_DATABASE: string;
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,cAAc,gBAAgB,CAAC;AAE/B,yCAAyC;AACzC,eAAO,MAAM,aAAa,EAAE,MAAoB,CAAC;AAEjD,0CAA0C;AAC1C,eAAO,MAAM,gBAAgB,EAAE,MAAuB,CAAC;AAEvD,qDAAqD;AACrD,eAAO,MAAM,aAAa,EAAE,MAAoB,CAAC;AAEjD,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,EAAE,MAAuB,CAAC;AAEvD,0CAA0C;AAC1C,eAAO,MAAM,cAAc,EAAE,MAAqB,CAAC;AAEnD,sCAAsC;AACtC,eAAO,MAAM,YAAY,EAAE,MAAmB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/** Agent identity (public info only - no key). */
|
|
2
|
+
export type AgentIdentity = {
|
|
3
|
+
readonly agentName: string;
|
|
4
|
+
readonly registeredAt: number;
|
|
5
|
+
readonly lastActive: number;
|
|
6
|
+
};
|
|
7
|
+
/** Serialize AgentIdentity to a JSON-compatible map. */
|
|
8
|
+
export declare const agentIdentityToJson: (agentIdentity: AgentIdentity) => Record<string, unknown>;
|
|
9
|
+
/** Deserialize AgentIdentity from a JSON map. */
|
|
10
|
+
export declare const agentIdentityFromJson: (json: Record<string, unknown>) => AgentIdentity;
|
|
11
|
+
/** Agent registration result (includes secret key). */
|
|
12
|
+
export type AgentRegistration = {
|
|
13
|
+
readonly agentName: string;
|
|
14
|
+
readonly agentKey: string;
|
|
15
|
+
};
|
|
16
|
+
/** Serialize AgentRegistration to a JSON-compatible map. */
|
|
17
|
+
export declare const agentRegistrationToJson: (agentRegistration: AgentRegistration) => Record<string, unknown>;
|
|
18
|
+
/** Deserialize AgentRegistration from a JSON map. */
|
|
19
|
+
export declare const agentRegistrationFromJson: (json: Record<string, unknown>) => AgentRegistration;
|
|
20
|
+
/** File lock info. */
|
|
21
|
+
export type FileLock = {
|
|
22
|
+
readonly filePath: string;
|
|
23
|
+
readonly agentName: string;
|
|
24
|
+
readonly acquiredAt: number;
|
|
25
|
+
readonly expiresAt: number;
|
|
26
|
+
readonly reason: string | null;
|
|
27
|
+
readonly version: number;
|
|
28
|
+
};
|
|
29
|
+
/** Serialize FileLock to a JSON-compatible map. */
|
|
30
|
+
export declare const fileLockToJson: (fileLock: FileLock) => Record<string, unknown>;
|
|
31
|
+
/** Deserialize FileLock from a JSON map. */
|
|
32
|
+
export declare const fileLockFromJson: (json: Record<string, unknown>) => FileLock;
|
|
33
|
+
/** Lock acquisition result. */
|
|
34
|
+
export type LockResult = {
|
|
35
|
+
readonly acquired: boolean;
|
|
36
|
+
readonly lock: FileLock | undefined;
|
|
37
|
+
readonly error: string | undefined;
|
|
38
|
+
};
|
|
39
|
+
/** Serialize LockResult to a JSON-compatible map. */
|
|
40
|
+
export declare const lockResultToJson: (lockResult: LockResult) => Record<string, unknown>;
|
|
41
|
+
/** Deserialize LockResult from a JSON map. */
|
|
42
|
+
export declare const lockResultFromJson: (json: Record<string, unknown>) => LockResult;
|
|
43
|
+
/** Inter-agent message. */
|
|
44
|
+
export type Message = {
|
|
45
|
+
readonly id: string;
|
|
46
|
+
readonly fromAgent: string;
|
|
47
|
+
readonly toAgent: string;
|
|
48
|
+
readonly content: string;
|
|
49
|
+
readonly createdAt: number;
|
|
50
|
+
readonly readAt: number | undefined;
|
|
51
|
+
};
|
|
52
|
+
/** Serialize Message to a JSON-compatible map. */
|
|
53
|
+
export declare const messageToJson: (message: Message) => Record<string, unknown>;
|
|
54
|
+
/** Deserialize Message from a JSON map. */
|
|
55
|
+
export declare const messageFromJson: (json: Record<string, unknown>) => Message;
|
|
56
|
+
/** Agent plan (what they're doing and why). */
|
|
57
|
+
export type AgentPlan = {
|
|
58
|
+
readonly agentName: string;
|
|
59
|
+
readonly goal: string;
|
|
60
|
+
readonly currentTask: string;
|
|
61
|
+
readonly updatedAt: number;
|
|
62
|
+
};
|
|
63
|
+
/** Serialize AgentPlan to a JSON-compatible map. */
|
|
64
|
+
export declare const agentPlanToJson: (agentPlan: AgentPlan) => Record<string, unknown>;
|
|
65
|
+
/** Deserialize AgentPlan from a JSON map. */
|
|
66
|
+
export declare const agentPlanFromJson: (json: Record<string, unknown>) => AgentPlan;
|
|
67
|
+
/** Database error. */
|
|
68
|
+
export type DbError = {
|
|
69
|
+
readonly code: string;
|
|
70
|
+
readonly message: string;
|
|
71
|
+
};
|
|
72
|
+
/** Serialize DbError to a JSON-compatible map. */
|
|
73
|
+
export declare const dbErrorToJson: (dbError: DbError) => Record<string, unknown>;
|
|
74
|
+
/** Deserialize DbError from a JSON map. */
|
|
75
|
+
export declare const dbErrorFromJson: (json: Record<string, unknown>) => DbError;
|
|
76
|
+
//# sourceMappingURL=types.gen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.gen.d.ts","sourceRoot":"","sources":["../src/types.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/// Generated types for Too Many Cooks data layer.
|
|
2
|
+
/** Serialize AgentIdentity to a JSON-compatible map. */
|
|
3
|
+
export const agentIdentityToJson = (agentIdentity) => {
|
|
4
|
+
return {
|
|
5
|
+
agent_name: agentIdentity.agentName,
|
|
6
|
+
registered_at: agentIdentity.registeredAt,
|
|
7
|
+
last_active: agentIdentity.lastActive,
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
/** Deserialize AgentIdentity from a JSON map. */
|
|
11
|
+
export const agentIdentityFromJson = (json) => {
|
|
12
|
+
return {
|
|
13
|
+
agentName: typeof json.agent_name === "string" ? json.agent_name : "",
|
|
14
|
+
registeredAt: typeof json.registered_at === "number" ? json.registered_at : 0,
|
|
15
|
+
lastActive: typeof json.last_active === "number" ? json.last_active : 0,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
/** Serialize AgentRegistration to a JSON-compatible map. */
|
|
19
|
+
export const agentRegistrationToJson = (agentRegistration) => {
|
|
20
|
+
return {
|
|
21
|
+
agent_name: agentRegistration.agentName,
|
|
22
|
+
agent_key: agentRegistration.agentKey,
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
/** Deserialize AgentRegistration from a JSON map. */
|
|
26
|
+
export const agentRegistrationFromJson = (json) => {
|
|
27
|
+
return {
|
|
28
|
+
agentName: typeof json.agent_name === "string" ? json.agent_name : "",
|
|
29
|
+
agentKey: typeof json.agent_key === "string" ? json.agent_key : "",
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
/** Serialize FileLock to a JSON-compatible map. */
|
|
33
|
+
export const fileLockToJson = (fileLock) => {
|
|
34
|
+
return {
|
|
35
|
+
file_path: fileLock.filePath,
|
|
36
|
+
agent_name: fileLock.agentName,
|
|
37
|
+
acquired_at: fileLock.acquiredAt,
|
|
38
|
+
expires_at: fileLock.expiresAt,
|
|
39
|
+
...(fileLock.reason === null ? {} : { reason: fileLock.reason }),
|
|
40
|
+
version: fileLock.version,
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
/** Deserialize FileLock from a JSON map. */
|
|
44
|
+
export const fileLockFromJson = (json) => {
|
|
45
|
+
return {
|
|
46
|
+
filePath: typeof json.file_path === "string" ? json.file_path : "",
|
|
47
|
+
agentName: typeof json.agent_name === "string" ? json.agent_name : "",
|
|
48
|
+
acquiredAt: typeof json.acquired_at === "number" ? json.acquired_at : 0,
|
|
49
|
+
expiresAt: typeof json.expires_at === "number" ? json.expires_at : 0,
|
|
50
|
+
reason: typeof json.reason === "string" ? json.reason : null,
|
|
51
|
+
version: typeof json.version === "number" ? json.version : 0,
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
/** Serialize LockResult to a JSON-compatible map. */
|
|
55
|
+
export const lockResultToJson = (lockResult) => {
|
|
56
|
+
return {
|
|
57
|
+
acquired: lockResult.acquired,
|
|
58
|
+
...(lockResult.lock === undefined
|
|
59
|
+
? {}
|
|
60
|
+
: { lock: fileLockToJson(lockResult.lock) }),
|
|
61
|
+
...(lockResult.error === undefined ? {} : { error: lockResult.error }),
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
/** Type guard for a plain object record. */
|
|
65
|
+
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
66
|
+
/** Helper to narrow lock JSON field. */
|
|
67
|
+
const narrowLockJson = (value) => isRecord(value) ? value : null;
|
|
68
|
+
/** Deserialize LockResult from a JSON map. */
|
|
69
|
+
export const lockResultFromJson = (json) => {
|
|
70
|
+
const lockJson = narrowLockJson(json.lock);
|
|
71
|
+
return {
|
|
72
|
+
acquired: typeof json.acquired === "boolean" ? json.acquired : false,
|
|
73
|
+
lock: lockJson === null
|
|
74
|
+
? undefined
|
|
75
|
+
: fileLockFromJson(lockJson),
|
|
76
|
+
error: typeof json.error === "string" ? json.error : undefined,
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
/** Serialize Message to a JSON-compatible map. */
|
|
80
|
+
export const messageToJson = (message) => {
|
|
81
|
+
return {
|
|
82
|
+
id: message.id,
|
|
83
|
+
from_agent: message.fromAgent,
|
|
84
|
+
to_agent: message.toAgent,
|
|
85
|
+
content: message.content,
|
|
86
|
+
created_at: message.createdAt,
|
|
87
|
+
...(message.readAt === undefined ? {} : { read_at: message.readAt }),
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
/** Deserialize Message from a JSON map. */
|
|
91
|
+
export const messageFromJson = (json) => {
|
|
92
|
+
return {
|
|
93
|
+
id: typeof json.id === "string" ? json.id : "",
|
|
94
|
+
fromAgent: typeof json.from_agent === "string" ? json.from_agent : "",
|
|
95
|
+
toAgent: typeof json.to_agent === "string" ? json.to_agent : "",
|
|
96
|
+
content: typeof json.content === "string" ? json.content : "",
|
|
97
|
+
createdAt: typeof json.created_at === "number" ? json.created_at : 0,
|
|
98
|
+
readAt: typeof json.read_at === "number" ? json.read_at : undefined,
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
/** Serialize AgentPlan to a JSON-compatible map. */
|
|
102
|
+
export const agentPlanToJson = (agentPlan) => {
|
|
103
|
+
return {
|
|
104
|
+
agent_name: agentPlan.agentName,
|
|
105
|
+
goal: agentPlan.goal,
|
|
106
|
+
current_task: agentPlan.currentTask,
|
|
107
|
+
updated_at: agentPlan.updatedAt,
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
/** Deserialize AgentPlan from a JSON map. */
|
|
111
|
+
export const agentPlanFromJson = (json) => {
|
|
112
|
+
return {
|
|
113
|
+
agentName: typeof json.agent_name === "string" ? json.agent_name : "",
|
|
114
|
+
goal: typeof json.goal === "string" ? json.goal : "",
|
|
115
|
+
currentTask: typeof json.current_task === "string" ? json.current_task : "",
|
|
116
|
+
updatedAt: typeof json.updated_at === "number" ? json.updated_at : 0,
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
/** Serialize DbError to a JSON-compatible map. */
|
|
120
|
+
export const dbErrorToJson = (dbError) => {
|
|
121
|
+
return {
|
|
122
|
+
code: dbError.code,
|
|
123
|
+
message: dbError.message,
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
/** Deserialize DbError from a JSON map. */
|
|
127
|
+
export const dbErrorFromJson = (json) => {
|
|
128
|
+
return {
|
|
129
|
+
code: typeof json.code === "string" ? json.code : "",
|
|
130
|
+
message: typeof json.message === "string" ? json.message : "",
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=types.gen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.gen.js","sourceRoot":"","sources":["../src/types.gen.ts"],"names":[],"mappings":"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"}
|
package/build/types.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// Core types for Too Many Cooks data layer.
|
|
2
|
+
// Re-export generated model types and serializers.
|
|
3
|
+
export * from "./types.gen.js";
|
|
4
|
+
/** Error code for resource not found. */
|
|
5
|
+
export const ERR_NOT_FOUND = "NOT_FOUND";
|
|
6
|
+
/** Error code for unauthorized access. */
|
|
7
|
+
export const ERR_UNAUTHORIZED = "UNAUTHORIZED";
|
|
8
|
+
/** Error code when lock is held by another agent. */
|
|
9
|
+
export const ERR_LOCK_HELD = "LOCK_HELD";
|
|
10
|
+
/** Error code when lock has expired. */
|
|
11
|
+
export const ERR_LOCK_EXPIRED = "LOCK_EXPIRED";
|
|
12
|
+
/** Error code for validation failures. */
|
|
13
|
+
export const ERR_VALIDATION = "VALIDATION";
|
|
14
|
+
/** Error code for database errors. */
|
|
15
|
+
export const ERR_DATABASE = "DATABASE";
|
|
16
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAE7C,mDAAmD;AACnD,cAAc,gBAAgB,CAAC;AAE/B,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAW,WAAW,CAAC;AAEjD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,gBAAgB,GAAW,cAAc,CAAC;AAEvD,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAW,WAAW,CAAC;AAEjD,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAW,cAAc,CAAC;AAEvD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAW,YAAY,CAAC;AAEnD,sCAAsC;AACtC,MAAM,CAAC,MAAM,YAAY,GAAW,UAAU,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "too-many-cooks-core",
|
|
3
|
+
"version": "0.7.0",
|
|
4
|
+
"description": "Core types, tools, and interfaces for Too Many Cooks multi-agent coordination",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "build/index.js",
|
|
7
|
+
"types": "build/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"build",
|
|
10
|
+
"README.md",
|
|
11
|
+
"LICENSE"
|
|
12
|
+
],
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/MelbourneDeveloper/too-many-cooks",
|
|
16
|
+
"directory": "too-many-cooks/packages/core"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"mcp",
|
|
20
|
+
"multi-agent",
|
|
21
|
+
"coordination",
|
|
22
|
+
"ai",
|
|
23
|
+
"too-many-cooks"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
30
|
+
"express": "^4.21.0"
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"zod": "^3.0.0"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/express": "^5.0.0"
|
|
37
|
+
},
|
|
38
|
+
"license": "MIT"
|
|
39
|
+
}
|