@awesomate/hosting-mcp 0.20.2 → 0.20.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/index.js
CHANGED
|
@@ -40190,9 +40190,10 @@ async function knowledgeSources(config3, args) {
|
|
|
40190
40190
|
if (args.action === "summary") {
|
|
40191
40191
|
try {
|
|
40192
40192
|
const s = await hubGet(config3, "/api/knowledge/sources/summary");
|
|
40193
|
+
const failedJobs = Number(s.failed_jobs_7d ?? 0);
|
|
40193
40194
|
return {
|
|
40194
40195
|
...s,
|
|
40195
|
-
note: "Exact whole-library counts. by_kind is what the knowledge base answers from; the paged list is only for browsing individual sources."
|
|
40196
|
+
note: failedJobs > 0 ? `Exact whole-library counts \u2014 BUT ${failedJobs} ingest job(s) FAILED in the last 7 days (last: ${String(s.last_failed_job_at ?? "unknown")}). Those uploads are NOT in the library even though every count here looks clean. Read awesomate_knowledge_sources {action:'jobs', status:'failed'} and tell the user which ingests failed before summarising the library.` : "Exact whole-library counts. by_kind is what the knowledge base answers from; the paged list is only for browsing individual sources."
|
|
40196
40197
|
};
|
|
40197
40198
|
} catch (err) {
|
|
40198
40199
|
if (err instanceof HubApiError && err.status === 404) {
|
|
@@ -41535,7 +41536,7 @@ server.registerTool(
|
|
|
41535
41536
|
server.registerTool(
|
|
41536
41537
|
"awesomate_knowledge_sources",
|
|
41537
41538
|
{
|
|
41538
|
-
description: "The knowledge base's content sources. action 'list' \u2014 ONE page of sources, most recently ingested first (default 50, max 200 via limit): read `page.has_more`/`next_cursor` and pass cursor to continue \u2014 a page is never the whole library. 'summary' \u2014 exact whole-library counts {total, by_kind, chunks, indexed_chunks, failed_sources}: use THIS to say what the knowledge base contains. 'jobs' \u2014 ingest job statuses (optional status filter: queued|running|succeeded|failed). 'add' \u2014 ingest a public page {url} or a whole site {sitemap, since?}; ALWAYS get explicit approval first (ingest costs money and counts against quota), for a local FILE on the user's machine use awesomate_knowledge_upload instead (it streams the file from disk; this tool takes URLs only). A pack_required response means the allowance is exhausted: NOTHING was purchased \u2014 present the pack price (1 credit = $100) and let the user buy from the hub if they want it. 'remove' {sourceId} \u2014 deletes the source AND its indexed content; explicit approval required.",
|
|
41539
|
+
description: "The knowledge base's content sources. action 'list' \u2014 ONE page of sources, most recently ingested first (default 50, max 200 via limit): read `page.has_more`/`next_cursor` and pass cursor to continue \u2014 a page is never the whole library. 'summary' \u2014 exact whole-library counts {total, by_kind, chunks, indexed_chunks, failed_sources, failed_jobs_7d}: use THIS to say what the knowledge base contains, and if failed_jobs_7d > 0 say so \u2014 those ingests are missing from every other count. 'jobs' \u2014 ingest job statuses (optional status filter: queued|running|succeeded|failed). 'add' \u2014 ingest a public page {url} or a whole site {sitemap, since?}; ALWAYS get explicit approval first (ingest costs money and counts against quota), for a local FILE on the user's machine use awesomate_knowledge_upload instead (it streams the file from disk; this tool takes URLs only). A pack_required response means the allowance is exhausted: NOTHING was purchased \u2014 present the pack price (1 credit = $100) and let the user buy from the hub if they want it. 'remove' {sourceId} \u2014 deletes the source AND its indexed content; explicit approval required.",
|
|
41539
41540
|
inputSchema: {
|
|
41540
41541
|
action: external_exports.enum(["list", "summary", "add", "remove", "jobs"]),
|
|
41541
41542
|
url: external_exports.string().url().optional().describe("add: one public page / blog post / YouTube link"),
|
|
@@ -41997,7 +41998,7 @@ server.registerTool(
|
|
|
41997
41998
|
return knowledgeResult({
|
|
41998
41999
|
...result,
|
|
41999
42000
|
uploaded: { path: abs, filename, sizeBytes: st.size, contentType },
|
|
42000
|
-
note: `Queued \u2014 NOT yet ingested. Poll awesomate_knowledge_sources {action:"jobs"} and read the job's status AND error: a job that fails during processing creates no source row, so summary
|
|
42001
|
+
note: `Queued \u2014 NOT yet ingested. Poll awesomate_knowledge_sources {action:"jobs"} and read the job's status AND error: a job that fails during processing creates no source row, so summary counts stay clean (only its failed_jobs_7d field shows it). Big media is transcribed and can take a while. Only after the job reports succeeded, verify with awesomate_knowledge_ask before building on it.`
|
|
42001
42002
|
});
|
|
42002
42003
|
} catch (err) {
|
|
42003
42004
|
return knowledgeError(err);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@awesomate/hosting-mcp",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.3",
|
|
4
4
|
"description": "Awesomate MCP server — lets Claude manage your Awesomate WordPress hosting, plan, limits, n8n automations, and build Node/static apps + databases",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|
package/skill/CHANGELOG.json
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"versions": [
|
|
3
|
+
{
|
|
4
|
+
"version": "0.20.3",
|
|
5
|
+
"highlights": [
|
|
6
|
+
"The Knowledge Base summary now warns when recent uploads failed to ingest - failures used to be invisible unless you checked the jobs list"
|
|
7
|
+
]
|
|
8
|
+
},
|
|
3
9
|
{
|
|
4
10
|
"version": "0.20.2",
|
|
5
11
|
"highlights": [
|
|
@@ -51,8 +51,10 @@ contents never pass through the conversation and a 100 MB PDF costs no context.
|
|
|
51
51
|
processing never creates a source row, so `{action:'summary'}` still reports
|
|
52
52
|
`failed_sources: 0` and the library total is unchanged. Measured live on
|
|
53
53
|
2026-09-01: an upload failed with a platform error while summary read
|
|
54
|
-
`total: 75, failed_sources: 0`.
|
|
55
|
-
|
|
54
|
+
`total: 75, failed_sources: 0`. On current platforms the summary now carries
|
|
55
|
+
`failed_jobs_7d` + `last_failed_job_at` for exactly this reason — a nonzero
|
|
56
|
+
value means uploads failed that no other count shows; the field is absent on
|
|
57
|
+
older platforms, so its absence proves nothing.
|
|
56
58
|
|
|
57
59
|
So: read the job's `status` AND its `error`, and relay the error text to the
|
|
58
60
|
user. Real ones seen in the wild, all platform-side rather than anything wrong
|