costhawk 1.5.17 → 1.5.19
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/README.md +10 -0
- package/dist/build-info.d.ts +1 -1
- package/dist/build-info.js +1 -1
- package/dist/codex-parser.d.ts.map +1 -1
- package/dist/codex-parser.js +22 -10
- package/dist/codex-parser.js.map +1 -1
- package/dist/index.js +239 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -167,10 +167,13 @@ COSTHAWK_GIT_SHA=$(git rev-parse --short HEAD) npm run build
|
|
|
167
167
|
|
|
168
168
|
| Tool | Description |
|
|
169
169
|
|------|-------------|
|
|
170
|
+
| `costhawk_get_company_brain_onboarding` | Get the workspace Company Brain destination and per-project sharing policies before writing learnings |
|
|
170
171
|
| `costhawk_get_usage_summary` | Get usage and costs over a time period (by provider/model) |
|
|
171
172
|
| `costhawk_get_usage_by_tag` | Get usage grouped by attribution fields and custom metadata (`project`, `feature`, `team`, `environment`, `user_id`, etc.) |
|
|
172
173
|
| `costhawk_detect_anomalies` | Check for cost anomalies and unusual usage patterns |
|
|
173
174
|
|
|
175
|
+
`costhawk_get_company_brain_onboarding` is the policy gate for Company Brain writes. Private projects must not submit shared learnings. Project memory projects can keep local/project-scoped memory. Company Brain projects can submit allowed entry types using the configured review mode.
|
|
176
|
+
|
|
174
177
|
`costhawk_get_usage_by_tag` has two data sources:
|
|
175
178
|
- Standard attribution fields like `feature`, `project`, `team`, and `environment` can come from wrapped-key or scoped API key attribution.
|
|
176
179
|
- Arbitrary custom tag keys only appear when you send request metadata through the proxy, such as `costhawk_metadata.feature` or `costhawk_metadata.user_id`.
|
|
@@ -271,10 +274,17 @@ The cache read savings are significant - CostHawk tracks all 4 types to give you
|
|
|
271
274
|
| `--tools` | Print the registered tool names and exit |
|
|
272
275
|
| `--self-test` | Print version + tool list + local env checks and exit |
|
|
273
276
|
| `--what-we-read` | Print local directories and sample files read by the MCP |
|
|
277
|
+
| `brain status` | Show Company Brain sharing policy for the current repo/workspace |
|
|
274
278
|
| `--setup` | Configure Claude Code, Codex CLI, and Gemini CLI MCP settings |
|
|
275
279
|
| `--codex` / `--no-codex` | Include or skip Codex CLI config at `~/.codex/config.toml` |
|
|
276
280
|
| `--opencode` / `--no-opencode` | Include or skip OpenCode config |
|
|
277
281
|
|
|
282
|
+
Company Brain CLI example:
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
costhawk brain status --org-slug acme --git-repo github.com/acme/app
|
|
286
|
+
```
|
|
287
|
+
|
|
278
288
|
## Privacy & Trust
|
|
279
289
|
|
|
280
290
|
CostHawk’s MCP server is designed to be **local-first** and transparent:
|
package/dist/build-info.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const BUILD_COMMIT_SHA = "
|
|
1
|
+
export declare const BUILD_COMMIT_SHA = "6547cd3";
|
|
2
2
|
//# sourceMappingURL=build-info.d.ts.map
|
package/dist/build-info.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-parser.d.ts","sourceRoot":"","sources":["../src/codex-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"codex-parser.d.ts","sourceRoot":"","sources":["../src/codex-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AA8QD,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,wBAAgB,qBAAqB,CAAC,WAAW,GAAE,MAAW,GAAG,gBAAgB,EAAE,CA+BlF;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;CAAE,GAC/C,yBAAyB,GAAG,IAAI,CA8KlC;AAED,wBAAgB,6BAA6B,CAC3C,WAAW,GAAE,MAAW,EACxB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;CAAE,GAC/C,yBAAyB,EAAE,CAY7B"}
|
package/dist/codex-parser.js
CHANGED
|
@@ -71,23 +71,36 @@ function addActiveGap(previous, current) {
|
|
|
71
71
|
}
|
|
72
72
|
function normalizeTotals(totals) {
|
|
73
73
|
const input = totals?.input_tokens ??
|
|
74
|
-
totals?.inputTokens ??
|
|
75
74
|
totals?.prompt_tokens ??
|
|
76
|
-
|
|
77
|
-
const output = totals?.output_tokens ??
|
|
78
|
-
totals?.outputTokens ??
|
|
79
|
-
totals?.completion_tokens ??
|
|
75
|
+
totals?.inputTokens ??
|
|
80
76
|
0;
|
|
81
77
|
const cachedInput = totals?.cached_input_tokens ??
|
|
82
|
-
totals?.
|
|
78
|
+
totals?.cache_read_input_tokens ??
|
|
79
|
+
totals?.input_cached_tokens ??
|
|
80
|
+
totals?.input_tokens_details?.cached_tokens ??
|
|
81
|
+
totals?.prompt_tokens_details?.cached_tokens ??
|
|
83
82
|
totals?.cached_tokens ??
|
|
83
|
+
totals?.cacheReadTokens ??
|
|
84
84
|
0;
|
|
85
|
+
const inputIncludesCache = totals?.input_tokens !== undefined ||
|
|
86
|
+
totals?.prompt_tokens !== undefined ||
|
|
87
|
+
totals?.cached_input_tokens !== undefined ||
|
|
88
|
+
totals?.cache_read_input_tokens !== undefined ||
|
|
89
|
+
totals?.input_cached_tokens !== undefined ||
|
|
90
|
+
totals?.input_tokens_details?.cached_tokens !== undefined ||
|
|
91
|
+
totals?.prompt_tokens_details?.cached_tokens !== undefined ||
|
|
92
|
+
totals?.cached_tokens !== undefined;
|
|
85
93
|
const reasoningOutput = totals?.reasoning_output_tokens ??
|
|
94
|
+
totals?.output_tokens_details?.reasoning_tokens ??
|
|
86
95
|
totals?.reasoningTokens ??
|
|
87
96
|
totals?.reasoning_tokens ??
|
|
88
97
|
0;
|
|
98
|
+
const output = totals?.output_tokens ??
|
|
99
|
+
totals?.outputTokens ??
|
|
100
|
+
totals?.completion_tokens ??
|
|
101
|
+
reasoningOutput;
|
|
89
102
|
return {
|
|
90
|
-
input_tokens: Math.max(0, input),
|
|
103
|
+
input_tokens: Math.max(0, inputIncludesCache ? input - cachedInput : input),
|
|
91
104
|
output_tokens: Math.max(0, output),
|
|
92
105
|
cached_input_tokens: Math.max(0, cachedInput),
|
|
93
106
|
reasoning_output_tokens: Math.max(0, reasoningOutput),
|
|
@@ -288,13 +301,12 @@ export function parseCodexSessionDetailed(filePath, options) {
|
|
|
288
301
|
lastTotals = deltaResult.totals;
|
|
289
302
|
const deltaTotal = deltaResult.delta.input_tokens +
|
|
290
303
|
deltaResult.delta.output_tokens +
|
|
291
|
-
deltaResult.delta.cached_input_tokens
|
|
292
|
-
deltaResult.delta.reasoning_output_tokens;
|
|
304
|
+
deltaResult.delta.cached_input_tokens;
|
|
293
305
|
if (deltaTotal === 0)
|
|
294
306
|
continue;
|
|
295
307
|
const usageTokens = {
|
|
296
308
|
inputTokens: deltaResult.delta.input_tokens,
|
|
297
|
-
outputTokens: deltaResult.delta.output_tokens
|
|
309
|
+
outputTokens: deltaResult.delta.output_tokens,
|
|
298
310
|
cacheCreationTokens: 0,
|
|
299
311
|
cacheReadTokens: deltaResult.delta.cached_input_tokens,
|
|
300
312
|
};
|
package/dist/codex-parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-parser.js","sourceRoot":"","sources":["../src/codex-parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex-parser.js","sourceRoot":"","sources":["../src/codex-parser.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -94,6 +94,9 @@ function extractApiErrorMessage(errorText) {
|
|
|
94
94
|
catch {
|
|
95
95
|
// Fall through to the raw response body.
|
|
96
96
|
}
|
|
97
|
+
if (/^<!doctype html/i.test(trimmed) || /^<html/i.test(trimmed)) {
|
|
98
|
+
return "HTML error page returned. Check COSTHAWK_API_URL and confirm this MCP route is deployed.";
|
|
99
|
+
}
|
|
97
100
|
return trimmed;
|
|
98
101
|
}
|
|
99
102
|
function formatApiErrorMessage(status, errorText) {
|
|
@@ -411,6 +414,26 @@ async function apiRequest(endpoint, options) {
|
|
|
411
414
|
clearTimeout(timeoutId);
|
|
412
415
|
}
|
|
413
416
|
}
|
|
417
|
+
function buildCompanyBrainOnboardingEndpoint(input) {
|
|
418
|
+
const queryParams = new URLSearchParams();
|
|
419
|
+
if (input.orgId)
|
|
420
|
+
queryParams.set("orgId", input.orgId);
|
|
421
|
+
if (input.orgSlug)
|
|
422
|
+
queryParams.set("orgSlug", input.orgSlug);
|
|
423
|
+
if (input.projectId)
|
|
424
|
+
queryParams.set("projectId", input.projectId);
|
|
425
|
+
if (input.projectSlug)
|
|
426
|
+
queryParams.set("projectSlug", input.projectSlug);
|
|
427
|
+
if (input.gitRepo)
|
|
428
|
+
queryParams.set("gitRepo", input.gitRepo);
|
|
429
|
+
const query = queryParams.toString();
|
|
430
|
+
return query ? `/api/mcp/brain/onboarding?${query}` : "/api/mcp/brain/onboarding";
|
|
431
|
+
}
|
|
432
|
+
async function fetchCompanyBrainOnboardingState(input) {
|
|
433
|
+
return apiRequest(buildCompanyBrainOnboardingEndpoint(input), {
|
|
434
|
+
apiKey: input.apiKey,
|
|
435
|
+
});
|
|
436
|
+
}
|
|
414
437
|
function isModelPricingEntry(value) {
|
|
415
438
|
if (!value || typeof value !== "object")
|
|
416
439
|
return false;
|
|
@@ -731,6 +754,31 @@ function getArgValue(args, flag) {
|
|
|
731
754
|
}
|
|
732
755
|
return undefined;
|
|
733
756
|
}
|
|
757
|
+
function normalizeGitRemoteForProject(rawRemote) {
|
|
758
|
+
const trimmed = rawRemote.trim();
|
|
759
|
+
if (!trimmed)
|
|
760
|
+
return null;
|
|
761
|
+
const sshMatch = trimmed.match(/^git@([^:]+):(.+?)(?:\.git)?$/);
|
|
762
|
+
if (sshMatch) {
|
|
763
|
+
return `${sshMatch[1]}/${sshMatch[2].replace(/\.git$/, "")}`;
|
|
764
|
+
}
|
|
765
|
+
try {
|
|
766
|
+
const parsed = new URL(trimmed);
|
|
767
|
+
return `${parsed.hostname}${parsed.pathname.replace(/^\/+/, "").replace(/\.git$/, "")}`;
|
|
768
|
+
}
|
|
769
|
+
catch {
|
|
770
|
+
return trimmed.replace(/\.git$/, "");
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
function detectGitRepoFromCurrentDirectory() {
|
|
774
|
+
const result = spawnSync("git", ["config", "--get", "remote.origin.url"], {
|
|
775
|
+
encoding: "utf8",
|
|
776
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
777
|
+
});
|
|
778
|
+
if (result.status !== 0 || typeof result.stdout !== "string")
|
|
779
|
+
return undefined;
|
|
780
|
+
return normalizeGitRemoteForProject(result.stdout) ?? undefined;
|
|
781
|
+
}
|
|
734
782
|
function parseBooleanFlag(args, flag) {
|
|
735
783
|
const negated = `--no-${flag}`;
|
|
736
784
|
if (args.includes(negated))
|
|
@@ -1698,6 +1746,84 @@ async function runLoginCommand(args) {
|
|
|
1698
1746
|
await performLoginSync(apiKey);
|
|
1699
1747
|
}
|
|
1700
1748
|
// Markdown formatters
|
|
1749
|
+
function formatPolicyMode(mode) {
|
|
1750
|
+
switch (mode) {
|
|
1751
|
+
case "company_brain":
|
|
1752
|
+
return "Company Brain";
|
|
1753
|
+
case "project_memory":
|
|
1754
|
+
return "Project memory";
|
|
1755
|
+
case "private":
|
|
1756
|
+
default:
|
|
1757
|
+
return "Private";
|
|
1758
|
+
}
|
|
1759
|
+
}
|
|
1760
|
+
function formatReviewMode(mode) {
|
|
1761
|
+
switch (mode) {
|
|
1762
|
+
case "auto_all":
|
|
1763
|
+
return "Auto approve all";
|
|
1764
|
+
case "auto_low_risk":
|
|
1765
|
+
return "Auto approve low risk";
|
|
1766
|
+
case "manual":
|
|
1767
|
+
default:
|
|
1768
|
+
return "Manual review";
|
|
1769
|
+
}
|
|
1770
|
+
}
|
|
1771
|
+
function formatCompanyBrainOnboardingMarkdown(data) {
|
|
1772
|
+
let output = `# Company Brain Project Policies\n\n`;
|
|
1773
|
+
output += `**Organization:** ${data.organization.name} (${data.organization.slug})\n`;
|
|
1774
|
+
output += `**Company Brain:** ${data.companyBrain.name}\n`;
|
|
1775
|
+
output += `**Raw content stored by default:** ${data.companyBrain.rawContentStorage ? "yes" : "no"}\n\n`;
|
|
1776
|
+
output += `## Summary\n`;
|
|
1777
|
+
output += `| Metric | Value |\n|--------|-------|\n`;
|
|
1778
|
+
output += `| Active projects | ${formatNumber(data.summary.totalProjects)} |\n`;
|
|
1779
|
+
output += `| Explicit policies | ${formatNumber(data.summary.explicitPolicies)} |\n`;
|
|
1780
|
+
output += `| Private | ${formatNumber(data.summary.privateProjects)} |\n`;
|
|
1781
|
+
output += `| Project memory | ${formatNumber(data.summary.projectMemoryProjects)} |\n`;
|
|
1782
|
+
output += `| Company Brain | ${formatNumber(data.summary.companyBrainProjects)} |\n`;
|
|
1783
|
+
output += `| Needs review | ${formatNumber(data.summary.unreviewedProjects)} |\n`;
|
|
1784
|
+
if (data.summary.matchedProjects !== null) {
|
|
1785
|
+
output += `| Current repo matches | ${formatNumber(data.summary.matchedProjects)} |\n`;
|
|
1786
|
+
}
|
|
1787
|
+
output += `\n## Project Policies\n`;
|
|
1788
|
+
if (data.projects.length === 0) {
|
|
1789
|
+
output += `No active projects found for this organization.\n\n`;
|
|
1790
|
+
}
|
|
1791
|
+
else {
|
|
1792
|
+
output += `| Project | Policy | Review | Sensitivity | Writes | Entries | Match |\n`;
|
|
1793
|
+
output += `|---------|--------|--------|-------------|--------|---------|-------|\n`;
|
|
1794
|
+
for (const project of data.projects) {
|
|
1795
|
+
const policy = project.policy;
|
|
1796
|
+
const writes = policy.canWriteCompanyBrain
|
|
1797
|
+
? "company brain"
|
|
1798
|
+
: policy.canWriteProjectMemory
|
|
1799
|
+
? "project memory"
|
|
1800
|
+
: "blocked";
|
|
1801
|
+
const match = project.currentProjectMatch === null ? "" : project.currentProjectMatch ? "current" : "";
|
|
1802
|
+
output += `| ${project.name} | ${formatPolicyMode(policy.mode)}${policy.isExplicit ? "" : " (default)"} | ${formatReviewMode(policy.reviewMode)} | ${policy.defaultSensitivity} | ${writes} | ${policy.allowedEntryTypes.join(", ")} | ${match} |\n`;
|
|
1803
|
+
}
|
|
1804
|
+
}
|
|
1805
|
+
const currentMatches = data.projects.filter((project) => project.currentProjectMatch);
|
|
1806
|
+
if (currentMatches.length > 0) {
|
|
1807
|
+
output += `\n## Current Project\n`;
|
|
1808
|
+
for (const project of currentMatches) {
|
|
1809
|
+
output += `- ${project.name}: ${formatPolicyMode(project.policy.mode)}. `;
|
|
1810
|
+
if (project.policy.canWriteCompanyBrain) {
|
|
1811
|
+
output += `Agents may submit allowed entries to the Company Brain with ${formatReviewMode(project.policy.reviewMode).toLowerCase()}.\n`;
|
|
1812
|
+
}
|
|
1813
|
+
else if (project.policy.canWriteProjectMemory) {
|
|
1814
|
+
output += `Agents may write project memory, but not shared Company Brain entries.\n`;
|
|
1815
|
+
}
|
|
1816
|
+
else {
|
|
1817
|
+
output += `Agents must not write shared learnings from this project.\n`;
|
|
1818
|
+
}
|
|
1819
|
+
}
|
|
1820
|
+
}
|
|
1821
|
+
output += `\n## Next Actions\n`;
|
|
1822
|
+
for (const action of data.nextActions) {
|
|
1823
|
+
output += `- ${action}\n`;
|
|
1824
|
+
}
|
|
1825
|
+
return truncateResponse(output);
|
|
1826
|
+
}
|
|
1701
1827
|
function formatUsageSummaryMarkdown(data) {
|
|
1702
1828
|
let output = `# API Usage Summary\n\n`;
|
|
1703
1829
|
output += `This report covers CostHawk-tracked API requests from wrapped/proxied keys and provider-ingested API usage. It does not include local Claude Code, Codex, or Cursor sessions; use the local usage, sync, ROI, or savings tools for those.\n\n`;
|
|
@@ -3066,7 +3192,57 @@ const GetProxyGuideSchema = {
|
|
|
3066
3192
|
const ListIntegrationsSchema = {
|
|
3067
3193
|
apiKey: z.string().optional().describe("CostHawk API key (falls back to COSTHAWK_API_KEY env var)"),
|
|
3068
3194
|
};
|
|
3195
|
+
const CompanyBrainOnboardingSchema = {
|
|
3196
|
+
apiKey: z.string().optional().describe("CostHawk API key (falls back to COSTHAWK_API_KEY env var)"),
|
|
3197
|
+
orgId: z.string().optional().describe("Organization ID to inspect. Required only when the API key has access to multiple organizations."),
|
|
3198
|
+
orgSlug: z.string().optional().describe("Organization slug to inspect. Required only when the API key has access to multiple organizations."),
|
|
3199
|
+
projectId: z.string().optional().describe("Optional project ID to mark as the current project in the response."),
|
|
3200
|
+
projectSlug: z.string().optional().describe("Optional project slug to mark as the current project in the response."),
|
|
3201
|
+
gitRepo: z
|
|
3202
|
+
.string()
|
|
3203
|
+
.optional()
|
|
3204
|
+
.describe("Optional git repository identifier for the current local project, such as github.com/acme/app or acme/app."),
|
|
3205
|
+
format: z.enum(["markdown", "json"]).optional().default("markdown").describe("Response format"),
|
|
3206
|
+
};
|
|
3069
3207
|
// Register tools
|
|
3208
|
+
server.registerTool("costhawk_get_company_brain_onboarding", {
|
|
3209
|
+
description: `Get the Company Brain onboarding state for the authenticated workspace. Use this before proposing or writing any Company Brain or project-memory entry. It returns the organization brain destination, active projects, each project's sharing policy (Private, Project memory, or Company Brain), review mode, sensitivity, allowed entry types, and whether the current repo/project is allowed to write. Agents must treat Private projects as a hard stop for shared brain writes.`,
|
|
3210
|
+
inputSchema: CompanyBrainOnboardingSchema,
|
|
3211
|
+
annotations: READ_ONLY_ANNOTATIONS,
|
|
3212
|
+
}, async (args, _extra) => {
|
|
3213
|
+
const apiKey = getApiKey(args.apiKey);
|
|
3214
|
+
if (!apiKey) {
|
|
3215
|
+
return {
|
|
3216
|
+
content: [
|
|
3217
|
+
{
|
|
3218
|
+
type: "text",
|
|
3219
|
+
text: "Error: No API key provided. Run `costhawk --login` or set COSTHAWK_API_KEY in your MCP configuration.",
|
|
3220
|
+
},
|
|
3221
|
+
],
|
|
3222
|
+
isError: true,
|
|
3223
|
+
};
|
|
3224
|
+
}
|
|
3225
|
+
try {
|
|
3226
|
+
const data = await fetchCompanyBrainOnboardingState({
|
|
3227
|
+
apiKey,
|
|
3228
|
+
orgId: args.orgId,
|
|
3229
|
+
orgSlug: args.orgSlug,
|
|
3230
|
+
projectId: args.projectId,
|
|
3231
|
+
projectSlug: args.projectSlug,
|
|
3232
|
+
gitRepo: args.gitRepo,
|
|
3233
|
+
});
|
|
3234
|
+
const text = args.format === "json" ? JSON.stringify(data, null, 2) : formatCompanyBrainOnboardingMarkdown(data);
|
|
3235
|
+
return {
|
|
3236
|
+
content: [{ type: "text", text }],
|
|
3237
|
+
};
|
|
3238
|
+
}
|
|
3239
|
+
catch (error) {
|
|
3240
|
+
return {
|
|
3241
|
+
content: [{ type: "text", text: `Error: ${error instanceof Error ? error.message : "Unknown error"}` }],
|
|
3242
|
+
isError: true,
|
|
3243
|
+
};
|
|
3244
|
+
}
|
|
3245
|
+
});
|
|
3070
3246
|
server.registerTool("costhawk_get_usage_summary", {
|
|
3071
3247
|
description: `Get a summary of CostHawk-tracked API request usage over a time period. This covers wrapped/proxied keys and provider-ingested API usage stored as API requests. It does NOT include local Claude Code, Codex, or Cursor sessions; for local AI-tool token usage, use costhawk_get_local_claude_code_usage, costhawk_get_local_codex_usage, costhawk_get_local_cursor_usage, costhawk_get_local_roi_report, or costhawk_get_savings after syncing. Returns total API costs, API calls, and API token usage broken down by provider and model. Supports preset periods (last_24h, today, yesterday, last_7d, last_30d) or custom date ranges.\n\nIMPORTANT: Always display the COMPLETE output in your response using markdown tables. Render every section (Overview, By Provider, By Model). Never summarize or truncate. If this report is zero, do not say the user's local AI-tool usage is zero; explain that local Claude Code, Codex, and Cursor usage is reported separately.`,
|
|
3072
3248
|
inputSchema: UsageSummarySchema,
|
|
@@ -4870,8 +5046,70 @@ function stopAutoSync() {
|
|
|
4870
5046
|
console.error("[Auto-sync] Stopped");
|
|
4871
5047
|
}
|
|
4872
5048
|
}
|
|
5049
|
+
async function runBrainCommand(args) {
|
|
5050
|
+
const hasExplicitSubcommand = Boolean(args[1] && !args[1].startsWith("-"));
|
|
5051
|
+
const subcommand = hasExplicitSubcommand ? args[1] : "status";
|
|
5052
|
+
const commandArgs = args.slice(hasExplicitSubcommand ? 2 : 1);
|
|
5053
|
+
if (subcommand === "help" || commandArgs.includes("--help") || commandArgs.includes("-h")) {
|
|
5054
|
+
console.log(`CostHawk Company Brain
|
|
5055
|
+
|
|
5056
|
+
USAGE:
|
|
5057
|
+
costhawk brain status [OPTIONS]
|
|
5058
|
+
|
|
5059
|
+
OPTIONS:
|
|
5060
|
+
--org-id Organization ID
|
|
5061
|
+
--org-slug Organization slug
|
|
5062
|
+
--project-id Current project ID
|
|
5063
|
+
--project-slug Current project slug
|
|
5064
|
+
--git-repo Current git repository identifier
|
|
5065
|
+
--no-detect-git Do not auto-detect git remote.origin.url
|
|
5066
|
+
--json Print raw JSON
|
|
5067
|
+
--api-key Provide API key non-interactively
|
|
5068
|
+
|
|
5069
|
+
EXAMPLES:
|
|
5070
|
+
costhawk brain status
|
|
5071
|
+
costhawk brain status --org-slug acme --git-repo github.com/acme/app
|
|
5072
|
+
`);
|
|
5073
|
+
process.exit(0);
|
|
5074
|
+
}
|
|
5075
|
+
if (subcommand !== "status" && subcommand !== "onboarding") {
|
|
5076
|
+
console.error(`Error: unknown brain command "${subcommand}". Use "costhawk brain status".`);
|
|
5077
|
+
process.exit(1);
|
|
5078
|
+
}
|
|
5079
|
+
const apiKey = getApiKey(getArgValue(commandArgs, "--api-key"));
|
|
5080
|
+
if (!apiKey) {
|
|
5081
|
+
console.error("Error: No API key provided. Run `costhawk --login` or set COSTHAWK_API_KEY.");
|
|
5082
|
+
process.exit(1);
|
|
5083
|
+
}
|
|
5084
|
+
const explicitGitRepo = getArgValue(commandArgs, "--git-repo");
|
|
5085
|
+
const gitRepo = explicitGitRepo ?? (commandArgs.includes("--no-detect-git") ? undefined : detectGitRepoFromCurrentDirectory());
|
|
5086
|
+
try {
|
|
5087
|
+
const data = await fetchCompanyBrainOnboardingState({
|
|
5088
|
+
apiKey,
|
|
5089
|
+
orgId: getArgValue(commandArgs, "--org-id"),
|
|
5090
|
+
orgSlug: getArgValue(commandArgs, "--org-slug"),
|
|
5091
|
+
projectId: getArgValue(commandArgs, "--project-id"),
|
|
5092
|
+
projectSlug: getArgValue(commandArgs, "--project-slug"),
|
|
5093
|
+
gitRepo,
|
|
5094
|
+
});
|
|
5095
|
+
if (commandArgs.includes("--json")) {
|
|
5096
|
+
console.log(JSON.stringify(data, null, 2));
|
|
5097
|
+
}
|
|
5098
|
+
else {
|
|
5099
|
+
console.log(formatCompanyBrainOnboardingMarkdown(data));
|
|
5100
|
+
}
|
|
5101
|
+
process.exit(0);
|
|
5102
|
+
}
|
|
5103
|
+
catch (error) {
|
|
5104
|
+
console.error(`Error: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
5105
|
+
process.exit(1);
|
|
5106
|
+
}
|
|
5107
|
+
}
|
|
4873
5108
|
async function handleCliFlags() {
|
|
4874
5109
|
const args = process.argv.slice(2);
|
|
5110
|
+
if (args[0] === "brain") {
|
|
5111
|
+
await runBrainCommand(args);
|
|
5112
|
+
}
|
|
4875
5113
|
if (args.includes("--version") || args.includes("-v")) {
|
|
4876
5114
|
console.log(formatVersion());
|
|
4877
5115
|
process.exit(0);
|
|
@@ -4888,6 +5126,7 @@ OPTIONS:
|
|
|
4888
5126
|
--tools List all available MCP tools
|
|
4889
5127
|
--self-test Output diagnostic JSON for debugging
|
|
4890
5128
|
--what-we-read Show local directories and sample files the MCP reads
|
|
5129
|
+
brain status Show Company Brain project sharing policy for this workspace/repo
|
|
4891
5130
|
--login Browser/device login (recommended)
|
|
4892
5131
|
--no-setup With --login, skip writing MCP config files
|
|
4893
5132
|
--open With --login, force opening the browser
|