@opencapstack/mcp-server 0.1.4 → 0.1.5
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/tools/meta.d.ts.map +1 -1
- package/dist/tools/meta.js +34 -9
- package/dist/tools/meta.js.map +1 -1
- package/package.json +1 -1
- package/src/tools/meta.ts +38 -11
package/dist/tools/meta.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/tools/meta.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,SAAS,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/tools/meta.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,SAAS,EAAE,cAAc,EAqKrC,CAAC"}
|
package/dist/tools/meta.js
CHANGED
|
@@ -114,18 +114,43 @@ export const metaTools = [
|
|
|
114
114
|
companyId: z.string().describe('Company ID'),
|
|
115
115
|
}),
|
|
116
116
|
handler: async (input, client) => {
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
client.get('/api/v1/
|
|
120
|
-
client.get('/api/v1/
|
|
121
|
-
client.get('/api/v1/
|
|
117
|
+
const params = { companyId: input.companyId, limit: 100 };
|
|
118
|
+
const [stakeholdersRes, shareClassesRes, safesRes, equityPlansRes, grantsRes] = await Promise.allSettled([
|
|
119
|
+
client.get('/api/v1/stakeholders', { params }),
|
|
120
|
+
client.get('/api/v1/share-classes', { params }),
|
|
121
|
+
client.get('/api/v1/safes', { params }),
|
|
122
|
+
client.get('/api/v1/equity-plans', { params }),
|
|
123
|
+
client.get('/api/v1/equity-grants', { params }),
|
|
122
124
|
]);
|
|
125
|
+
const extract = (res, keys) => {
|
|
126
|
+
if (res.status === 'rejected')
|
|
127
|
+
return [];
|
|
128
|
+
const d = res.value.data;
|
|
129
|
+
for (const k of keys) {
|
|
130
|
+
if (Array.isArray(d[k]))
|
|
131
|
+
return d[k];
|
|
132
|
+
}
|
|
133
|
+
return Array.isArray(d) ? d : [];
|
|
134
|
+
};
|
|
135
|
+
const stakeholders = extract(stakeholdersRes, ['stakeholders']);
|
|
136
|
+
const shareClasses = extract(shareClassesRes, ['shareClasses']);
|
|
137
|
+
const safes = extract(safesRes, ['safes']);
|
|
138
|
+
const equityPlans = extract(equityPlansRes, ['equityPlans']);
|
|
139
|
+
const grants = extract(grantsRes, ['grants']);
|
|
123
140
|
const summary = {
|
|
124
141
|
companyId: input.companyId,
|
|
125
|
-
stakeholders:
|
|
126
|
-
shareClasses:
|
|
127
|
-
openSafes:
|
|
128
|
-
equityPlans:
|
|
142
|
+
stakeholders: stakeholders.length,
|
|
143
|
+
shareClasses: shareClasses.length,
|
|
144
|
+
openSafes: safes.filter((s) => s.status === 'open' || s.status === 'draft').length,
|
|
145
|
+
equityPlans: equityPlans.length,
|
|
146
|
+
activeGrants: grants.filter((g) => g.status === 'active').length,
|
|
147
|
+
unavailable: [
|
|
148
|
+
stakeholdersRes.status === 'rejected' ? 'stakeholders' : null,
|
|
149
|
+
shareClassesRes.status === 'rejected' ? 'share-classes' : null,
|
|
150
|
+
safesRes.status === 'rejected' ? 'safes' : null,
|
|
151
|
+
equityPlansRes.status === 'rejected' ? 'equity-plans' : null,
|
|
152
|
+
grantsRes.status === 'rejected' ? 'equity-grants' : null,
|
|
153
|
+
].filter(Boolean),
|
|
129
154
|
};
|
|
130
155
|
return {
|
|
131
156
|
content: [{ type: 'text', text: JSON.stringify(summary, null, 2) }],
|
package/dist/tools/meta.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/tools/meta.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/tools/meta.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/tools/meta.ts
CHANGED
|
@@ -119,20 +119,47 @@ export const metaTools: ToolDefinition[] = [
|
|
|
119
119
|
companyId: z.string().describe('Company ID'),
|
|
120
120
|
}),
|
|
121
121
|
handler: async (input, client) => {
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
122
|
+
const params = { companyId: input.companyId, limit: 100 };
|
|
123
|
+
const [stakeholdersRes, shareClassesRes, safesRes, equityPlansRes, grantsRes] =
|
|
124
|
+
await Promise.allSettled([
|
|
125
|
+
client.get('/api/v1/stakeholders', { params }),
|
|
126
|
+
client.get('/api/v1/share-classes', { params }),
|
|
127
|
+
client.get('/api/v1/safes', { params }),
|
|
128
|
+
client.get('/api/v1/equity-plans', { params }),
|
|
129
|
+
client.get('/api/v1/equity-grants', { params }),
|
|
130
|
+
]);
|
|
131
|
+
|
|
132
|
+
const extract = (res: PromiseSettledResult<{ data: unknown }>, keys: string[]): unknown[] => {
|
|
133
|
+
if (res.status === 'rejected') return [];
|
|
134
|
+
const d = res.value.data as Record<string, unknown>;
|
|
135
|
+
for (const k of keys) {
|
|
136
|
+
if (Array.isArray(d[k])) return d[k] as unknown[];
|
|
137
|
+
}
|
|
138
|
+
return Array.isArray(d) ? d : [];
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
const stakeholders = extract(stakeholdersRes, ['stakeholders']);
|
|
142
|
+
const shareClasses = extract(shareClassesRes, ['shareClasses']);
|
|
143
|
+
const safes = extract(safesRes, ['safes']);
|
|
144
|
+
const equityPlans = extract(equityPlansRes, ['equityPlans']);
|
|
145
|
+
const grants = extract(grantsRes, ['grants']);
|
|
146
|
+
|
|
128
147
|
const summary = {
|
|
129
148
|
companyId: input.companyId,
|
|
130
|
-
stakeholders:
|
|
131
|
-
shareClasses:
|
|
132
|
-
openSafes: (safes
|
|
133
|
-
(s
|
|
149
|
+
stakeholders: stakeholders.length,
|
|
150
|
+
shareClasses: shareClasses.length,
|
|
151
|
+
openSafes: (safes as { status?: string }[]).filter(
|
|
152
|
+
(s) => s.status === 'open' || s.status === 'draft'
|
|
134
153
|
).length,
|
|
135
|
-
equityPlans:
|
|
154
|
+
equityPlans: equityPlans.length,
|
|
155
|
+
activeGrants: (grants as { status?: string }[]).filter((g) => g.status === 'active').length,
|
|
156
|
+
unavailable: [
|
|
157
|
+
stakeholdersRes.status === 'rejected' ? 'stakeholders' : null,
|
|
158
|
+
shareClassesRes.status === 'rejected' ? 'share-classes' : null,
|
|
159
|
+
safesRes.status === 'rejected' ? 'safes' : null,
|
|
160
|
+
equityPlansRes.status === 'rejected' ? 'equity-plans' : null,
|
|
161
|
+
grantsRes.status === 'rejected' ? 'equity-grants' : null,
|
|
162
|
+
].filter(Boolean),
|
|
136
163
|
};
|
|
137
164
|
return {
|
|
138
165
|
content: [{ type: 'text', text: JSON.stringify(summary, null, 2) }],
|