@ignite-agent/agent 0.4.2 → 0.5.1
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 +20 -2
- package/dist/cli/index.js +71 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/seed.d.ts +61 -0
- package/dist/cli/seed.js +311 -0
- package/dist/cli/seed.js.map +1 -0
- package/dist/client.d.ts +27 -0
- package/dist/client.js +18 -0
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/onboarding/CLAUDE-CODE-SETUP.md +4 -0
- package/onboarding/CURSOR-SETUP.md +4 -0
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -32,8 +32,25 @@ npx ignite connect --site-url https://yourdomain.com --email you@yourdomain.com
|
|
|
32
32
|
npx ignite confirm --activation <activation_id> --code <email_code> # writes .env.local
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
`confirm` mints a **read** token (`plugin_read`). It can fetch pages, directives,
|
|
36
|
-
cannot execute Action Center writes or proxy LLM spend.
|
|
35
|
+
`confirm` mints a **read** token (`plugin_read`). It can fetch pages, directives, send crawl events, and
|
|
36
|
+
report your content inventory. It cannot execute Action Center writes or proxy LLM spend.
|
|
37
|
+
|
|
38
|
+
## Seed your existing content
|
|
39
|
+
|
|
40
|
+
Once the site is deployed, tell Ignite what it already publishes. The command reads your site's own
|
|
41
|
+
`sitemap.xml`, fetches each page on your host, and reports title, description, locale, word count and a
|
|
42
|
+
content hash for every blog post, wiki page and plain page. Nothing is written to your repo.
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npx ignite seed --site-url https://www.example.com --dry-run # list what would be sent
|
|
46
|
+
npx ignite seed --site-url https://www.example.com # send it
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`--site-url` falls back to `IGNITE_SITE_URL`. Blog posts are the URLs under `/blog/` and wiki pages the URLs
|
|
50
|
+
under `/w/`; change that with `--blog-prefix` and `--wiki-prefix`. `--sitemap <url>` points at a different
|
|
51
|
+
sitemap, `--limit N` caps the pages read. Pages marked `noindex`, non-HTML URLs and other hosts are skipped and
|
|
52
|
+
listed. Re-running is safe: unchanged pages are reported as unchanged, and a page counts as changed only when
|
|
53
|
+
its main text changes.
|
|
37
54
|
|
|
38
55
|
## Wire it up
|
|
39
56
|
|
|
@@ -123,6 +140,7 @@ Or let the CLI write the files (and, when it finds `globals.css`, map brand vari
|
|
|
123
140
|
```bash
|
|
124
141
|
npx ignite init
|
|
125
142
|
npx ignite doctor
|
|
143
|
+
npx ignite seed --site-url https://www.example.com # after the first deploy
|
|
126
144
|
```
|
|
127
145
|
|
|
128
146
|
Coding agents: paste the prompt in `onboarding/` for Claude Code, Cursor, Lovable, or Replit. `AGENTS.md` is the
|
package/dist/cli/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
3
|
import { dirname, join } from 'node:path';
|
|
4
|
+
import { IgniteClient } from '../client.js';
|
|
4
5
|
import { brandCssSnippet, detectDesignSystem, diagnoseProject, findGlobalsCss, hostOwnedContentRoutes, injectBrandCss, inspectRouteFile, loadEnvFile, migrateExistingSnippet, migrateSitemapSnippet, resolveAppDir, ROUTE_SOURCES, } from './project.js';
|
|
6
|
+
import { parseSeedArgs, runSeed } from './seed.js';
|
|
5
7
|
const HUB_URL = (process.env.IGNITE_HUB_URL?.trim() || 'https://app.igniteagent.ai').replace(/\/+$/, '');
|
|
6
8
|
function write(path, contents) {
|
|
7
9
|
if (existsSync(path)) {
|
|
@@ -170,6 +172,69 @@ async function confirm() {
|
|
|
170
172
|
writeEnvLocal({ IGNITE_SITE_ID: body.site_id, IGNITE_SITE_TOKEN: body.token });
|
|
171
173
|
console.log('Wrote IGNITE_SITE_ID and IGNITE_SITE_TOKEN to .env.local. Set the same two variables in your host, then deploy.');
|
|
172
174
|
}
|
|
175
|
+
// Reports the pages this site already publishes (blog posts, wiki pages, the rest) to the Ignite API, so the
|
|
176
|
+
// workspace knows what exists before it plans anything. Reads the deployed site's own sitemap.
|
|
177
|
+
async function seed() {
|
|
178
|
+
const args = parseSeedArgs(process.argv.slice(3));
|
|
179
|
+
const cwd = process.cwd();
|
|
180
|
+
const env = { ...process.env };
|
|
181
|
+
loadEnvFile(join(cwd, '.env.local'), env);
|
|
182
|
+
const siteId = env.IGNITE_SITE_ID?.trim();
|
|
183
|
+
const token = env.IGNITE_SITE_TOKEN?.trim();
|
|
184
|
+
const hubUrl = (env.IGNITE_HUB_URL?.trim() || HUB_URL).replace(/\/+$/, '');
|
|
185
|
+
if (!siteId || !token) {
|
|
186
|
+
console.error('IGNITE_SITE_ID and IGNITE_SITE_TOKEN are required (.env.local or the environment). Run `ignite connect` first.');
|
|
187
|
+
process.exit(1);
|
|
188
|
+
}
|
|
189
|
+
const siteUrl = pickString(args['site-url']) ?? env.IGNITE_SITE_URL?.trim() ?? env.NEXT_PUBLIC_SITE_URL?.trim() ?? env.VERCEL_PROJECT_PRODUCTION_URL?.trim();
|
|
190
|
+
if (!siteUrl) {
|
|
191
|
+
console.error('Which deployed site should be read? Pass --site-url https://www.example.com or set IGNITE_SITE_URL.');
|
|
192
|
+
process.exit(1);
|
|
193
|
+
}
|
|
194
|
+
const origin = siteUrl.includes('://') ? siteUrl : `https://${siteUrl}`;
|
|
195
|
+
const probe = await fetch(`${hubUrl}/v1/sites/${siteId}/agent-directives`, {
|
|
196
|
+
headers: { 'X-Ignite-Site-Token': token },
|
|
197
|
+
}).catch((error) => error);
|
|
198
|
+
if (probe instanceof Error || !probe.ok) {
|
|
199
|
+
const detail = probe instanceof Error ? probe.message : `HTTP ${probe.status}`;
|
|
200
|
+
console.error(`fail the Ignite API at ${hubUrl} rejected this site id + token (${detail}). Check .env.local.`);
|
|
201
|
+
process.exit(1);
|
|
202
|
+
}
|
|
203
|
+
const dryRun = args['dry-run'] === true;
|
|
204
|
+
const limitRaw = pickString(args.limit);
|
|
205
|
+
const client = new IgniteClient({ hubUrl, siteId, token }, { revalidate: 0 });
|
|
206
|
+
console.log(`${dryRun ? 'Reading' : 'Seeding'} ${origin} → ${hubUrl} (site ${siteId})`);
|
|
207
|
+
let summary;
|
|
208
|
+
try {
|
|
209
|
+
summary = await runSeed({
|
|
210
|
+
siteUrl: origin,
|
|
211
|
+
sitemapUrl: pickString(args.sitemap),
|
|
212
|
+
blogPrefix: pickString(args['blog-prefix']) ?? '/blog/',
|
|
213
|
+
wikiPrefix: pickString(args['wiki-prefix']) ?? '/w/',
|
|
214
|
+
dryRun,
|
|
215
|
+
limit: limitRaw ? Number(limitRaw) : undefined,
|
|
216
|
+
concurrency: Number(pickString(args.concurrency) ?? 4) || 4,
|
|
217
|
+
}, { client, fetch, log: (line) => console.log(line) });
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
console.error(`fail ${error.message}`);
|
|
221
|
+
process.exit(1);
|
|
222
|
+
}
|
|
223
|
+
const { seeded, skipped } = summary;
|
|
224
|
+
console.log(`\n${summary.found} URLs in the sitemap · posts ${seeded.post} · wiki ${seeded.wiki} · pages ${seeded.page} · skipped ${skipped.length}`);
|
|
225
|
+
for (const item of skipped)
|
|
226
|
+
console.log(` skip ${item.url} (${item.reason})`);
|
|
227
|
+
if (dryRun) {
|
|
228
|
+
console.log('Dry run: nothing was sent. Drop --dry-run to seed.');
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
console.log(`Ignite accepted ${summary.accepted} (${summary.unchanged} unchanged since the last seed).`);
|
|
232
|
+
if (seeded.post + seeded.wiki + seeded.page === 0)
|
|
233
|
+
process.exit(1);
|
|
234
|
+
}
|
|
235
|
+
function pickString(value) {
|
|
236
|
+
return typeof value === 'string' && value.trim() !== '' ? value.trim() : undefined;
|
|
237
|
+
}
|
|
173
238
|
function writeEnvLocal(vars) {
|
|
174
239
|
const path = join(process.cwd(), '.env.local');
|
|
175
240
|
let contents = existsSync(path) ? readFileSync(path, 'utf8') : '';
|
|
@@ -205,14 +270,19 @@ switch (command) {
|
|
|
205
270
|
case 'confirm':
|
|
206
271
|
void confirm();
|
|
207
272
|
break;
|
|
273
|
+
case 'seed':
|
|
274
|
+
void seed();
|
|
275
|
+
break;
|
|
208
276
|
case 'mcp':
|
|
209
277
|
void import('../mcp.js').then((mod) => mod.runMcpStdio());
|
|
210
278
|
break;
|
|
211
279
|
default:
|
|
212
|
-
console.log('Usage: ignite <init|connect|confirm|doctor|mcp>');
|
|
280
|
+
console.log('Usage: ignite <init|connect|confirm|seed|doctor|mcp>');
|
|
213
281
|
console.log(' init write robots, sitemap, wiki/blog routes, proxy or middleware, brand CSS if possible');
|
|
214
282
|
console.log(' connect start the site activation handshake (--site-url --email)');
|
|
215
283
|
console.log(' confirm finish activation and write .env.local (--activation --code)');
|
|
284
|
+
console.log(' seed report your published blog, wiki and pages to Ignite from the deployed sitemap');
|
|
285
|
+
console.log(' (--site-url, --sitemap, --blog-prefix /blog/, --wiki-prefix /w/, --dry-run, --limit N)');
|
|
216
286
|
console.log(' doctor check config, routes, token placement, and reach the Ignite API');
|
|
217
287
|
console.log(' mcp stdio MCP for coding agents (reads the same feed; not for the front end)');
|
|
218
288
|
}
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { IgniteClient, InventoryItem } from '../client.js';
|
|
2
|
+
export type InventoryKind = 'post' | 'wiki' | 'page';
|
|
3
|
+
export type SeedOptions = {
|
|
4
|
+
siteUrl: string;
|
|
5
|
+
sitemapUrl?: string | undefined;
|
|
6
|
+
blogPrefix: string;
|
|
7
|
+
wikiPrefix: string;
|
|
8
|
+
dryRun: boolean;
|
|
9
|
+
limit?: number | undefined;
|
|
10
|
+
concurrency: number;
|
|
11
|
+
};
|
|
12
|
+
export type SeedDeps = {
|
|
13
|
+
client: IgniteClient;
|
|
14
|
+
fetch: typeof fetch;
|
|
15
|
+
log: (line: string) => void;
|
|
16
|
+
};
|
|
17
|
+
export type SeedSummary = {
|
|
18
|
+
found: number;
|
|
19
|
+
seeded: Record<InventoryKind, number>;
|
|
20
|
+
skipped: Array<{
|
|
21
|
+
url: string;
|
|
22
|
+
reason: string;
|
|
23
|
+
}>;
|
|
24
|
+
accepted: number;
|
|
25
|
+
unchanged: number;
|
|
26
|
+
};
|
|
27
|
+
export type SitemapRow = {
|
|
28
|
+
url: string;
|
|
29
|
+
lastModified?: string | undefined;
|
|
30
|
+
};
|
|
31
|
+
export type PageFacts = {
|
|
32
|
+
title: string;
|
|
33
|
+
description: string;
|
|
34
|
+
locale: string;
|
|
35
|
+
translationGroup: string;
|
|
36
|
+
isSource: boolean;
|
|
37
|
+
hasImage: boolean;
|
|
38
|
+
noindex: boolean;
|
|
39
|
+
wordCount: number;
|
|
40
|
+
contentHash: string;
|
|
41
|
+
};
|
|
42
|
+
export declare const SEED_BATCH = 100;
|
|
43
|
+
export declare function parseSeedArgs(argv: string[]): Record<string, string | true>;
|
|
44
|
+
export declare function parseSitemapXml(xml: string): {
|
|
45
|
+
urls: SitemapRow[];
|
|
46
|
+
sitemaps: string[];
|
|
47
|
+
};
|
|
48
|
+
export declare function classifyUrl(url: string, prefixes: {
|
|
49
|
+
blogPrefix: string;
|
|
50
|
+
wikiPrefix: string;
|
|
51
|
+
}): InventoryKind;
|
|
52
|
+
export declare function normalizePrefix(prefix: string): string;
|
|
53
|
+
export declare function sameSite(url: string, origin: string): boolean;
|
|
54
|
+
export declare function stableSourceId(url: string): number;
|
|
55
|
+
export declare function canonicalUrl(url: string): string;
|
|
56
|
+
export declare function extractPageFacts(html: string, url: string): PageFacts;
|
|
57
|
+
export declare function toInventoryItem(url: string, kind: InventoryKind, facts: PageFacts, lastModified?: string): InventoryItem;
|
|
58
|
+
export declare function formatModifiedGmt(iso: string | undefined): string;
|
|
59
|
+
export declare function chunk<T>(items: T[], size: number): T[][];
|
|
60
|
+
export declare function collectSitemapRows(origin: string, fetchImpl: typeof fetch, explicitSitemap?: string): Promise<SitemapRow[]>;
|
|
61
|
+
export declare function runSeed(options: SeedOptions, deps: SeedDeps): Promise<SeedSummary>;
|
package/dist/cli/seed.js
ADDED
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
export const SEED_BATCH = 100;
|
|
3
|
+
const MAX_SITEMAPS = 50;
|
|
4
|
+
const MAX_INDEX_DEPTH = 2;
|
|
5
|
+
export function parseSeedArgs(argv) {
|
|
6
|
+
const out = {};
|
|
7
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
8
|
+
const raw = argv[i];
|
|
9
|
+
if (!raw || !raw.startsWith('--'))
|
|
10
|
+
continue;
|
|
11
|
+
const eq = raw.indexOf('=');
|
|
12
|
+
if (eq > -1) {
|
|
13
|
+
out[raw.slice(2, eq)] = raw.slice(eq + 1);
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
const next = argv[i + 1];
|
|
17
|
+
if (next !== undefined && !next.startsWith('--')) {
|
|
18
|
+
out[raw.slice(2)] = next;
|
|
19
|
+
i += 1;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
out[raw.slice(2)] = true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return out;
|
|
26
|
+
}
|
|
27
|
+
export function parseSitemapXml(xml) {
|
|
28
|
+
const urls = [];
|
|
29
|
+
const sitemaps = [];
|
|
30
|
+
for (const block of xml.matchAll(/<(url|sitemap)\b[^>]*>([\s\S]*?)<\/\1>/gi)) {
|
|
31
|
+
const kind = block[1]?.toLowerCase();
|
|
32
|
+
const body = block[2] ?? '';
|
|
33
|
+
const loc = body.match(/<loc>\s*([^<\s]+)\s*<\/loc>/i)?.[1];
|
|
34
|
+
if (!loc)
|
|
35
|
+
continue;
|
|
36
|
+
const url = decodeXml(loc);
|
|
37
|
+
if (kind === 'sitemap') {
|
|
38
|
+
sitemaps.push(url);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
const lastmod = body.match(/<lastmod>\s*([^<\s]+)\s*<\/lastmod>/i)?.[1];
|
|
42
|
+
urls.push(lastmod ? { url, lastModified: lastmod } : { url });
|
|
43
|
+
}
|
|
44
|
+
return { urls, sitemaps };
|
|
45
|
+
}
|
|
46
|
+
export function classifyUrl(url, prefixes) {
|
|
47
|
+
const path = pathOf(url);
|
|
48
|
+
if (startsWithPrefix(path, prefixes.blogPrefix))
|
|
49
|
+
return 'post';
|
|
50
|
+
if (startsWithPrefix(path, prefixes.wikiPrefix))
|
|
51
|
+
return 'wiki';
|
|
52
|
+
return 'page';
|
|
53
|
+
}
|
|
54
|
+
// Index pages (/blog, /w) are listings, not content: they ship as plain pages.
|
|
55
|
+
function startsWithPrefix(path, prefix) {
|
|
56
|
+
const normalized = normalizePrefix(prefix);
|
|
57
|
+
return path.startsWith(normalized) && path.length > normalized.length;
|
|
58
|
+
}
|
|
59
|
+
export function normalizePrefix(prefix) {
|
|
60
|
+
const trimmed = prefix.trim();
|
|
61
|
+
const withLead = trimmed.startsWith('/') ? trimmed : `/${trimmed}`;
|
|
62
|
+
return withLead.endsWith('/') ? withLead : `${withLead}/`;
|
|
63
|
+
}
|
|
64
|
+
// A site that redirects apex to www (or back) lists one host in its sitemap and the other in config.
|
|
65
|
+
export function sameSite(url, origin) {
|
|
66
|
+
try {
|
|
67
|
+
return bareHost(new URL(url)) === bareHost(new URL(origin));
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function bareHost(parsed) {
|
|
74
|
+
return parsed.hostname.toLowerCase().replace(/^www\./, '');
|
|
75
|
+
}
|
|
76
|
+
// The Ignite API keys inventory rows on an integer id. A Next.js page has none, so the id is the first 52
|
|
77
|
+
// bits of a SHA-256 over the canonical URL: stable across runs, safe as a JS number, never zero.
|
|
78
|
+
export function stableSourceId(url) {
|
|
79
|
+
const hex = createHash('sha256').update(canonicalUrl(url)).digest('hex').slice(0, 13);
|
|
80
|
+
return (Number.parseInt(hex, 16) % 4503599627370495) + 1;
|
|
81
|
+
}
|
|
82
|
+
export function canonicalUrl(url) {
|
|
83
|
+
const parsed = new URL(url);
|
|
84
|
+
parsed.hash = '';
|
|
85
|
+
parsed.search = '';
|
|
86
|
+
parsed.hostname = parsed.hostname.toLowerCase();
|
|
87
|
+
if (parsed.pathname.length > 1 && parsed.pathname.endsWith('/')) {
|
|
88
|
+
parsed.pathname = parsed.pathname.slice(0, -1);
|
|
89
|
+
}
|
|
90
|
+
return parsed.toString();
|
|
91
|
+
}
|
|
92
|
+
export function extractPageFacts(html, url) {
|
|
93
|
+
const head = html.match(/<head\b[^>]*>([\s\S]*?)<\/head>/i)?.[1] ?? html;
|
|
94
|
+
const title = decodeEntities(head.match(/<title\b[^>]*>([\s\S]*?)<\/title>/i)?.[1] ?? '').trim();
|
|
95
|
+
const description = metaContent(head, 'name', 'description') ?? metaContent(head, 'property', 'og:description') ?? '';
|
|
96
|
+
const locale = html.match(/<html\b[^>]*\blang=["']?([A-Za-z0-9-]+)/i)?.[1] ?? '';
|
|
97
|
+
const robots = (metaContent(head, 'name', 'robots') ?? '').toLowerCase();
|
|
98
|
+
const alternates = [...head.matchAll(/<link\b[^>]*rel=["']alternate["'][^>]*>/gi)].map((m) => m[0]);
|
|
99
|
+
const xDefault = alternates
|
|
100
|
+
.map((tag) => ({
|
|
101
|
+
lang: tag.match(/hreflang=["']([^"']+)["']/i)?.[1]?.toLowerCase(),
|
|
102
|
+
href: tag.match(/href=["']([^"']+)["']/i)?.[1],
|
|
103
|
+
}))
|
|
104
|
+
.find((alt) => alt.lang === 'x-default')?.href;
|
|
105
|
+
const hasHreflang = alternates.some((tag) => /hreflang=/i.test(tag));
|
|
106
|
+
const text = mainText(html);
|
|
107
|
+
return {
|
|
108
|
+
title,
|
|
109
|
+
description: description.trim(),
|
|
110
|
+
locale,
|
|
111
|
+
translationGroup: xDefault ? pathOf(resolveHref(xDefault, url)) : '',
|
|
112
|
+
isSource: !hasHreflang ||
|
|
113
|
+
(xDefault !== undefined && canonicalUrl(resolveHref(xDefault, url)) === canonicalUrl(url)),
|
|
114
|
+
hasImage: metaContent(head, 'property', 'og:image') !== null,
|
|
115
|
+
noindex: /\bnoindex\b/.test(robots),
|
|
116
|
+
wordCount: text === '' ? 0 : text.split(' ').length,
|
|
117
|
+
contentHash: `sha256:${createHash('sha256').update(text).digest('hex')}`,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export function toInventoryItem(url, kind, facts, lastModified) {
|
|
121
|
+
return {
|
|
122
|
+
id: stableSourceId(url),
|
|
123
|
+
type: kind,
|
|
124
|
+
status: 'publish',
|
|
125
|
+
url,
|
|
126
|
+
title: facts.title.slice(0, 512),
|
|
127
|
+
excerpt: facts.description.slice(0, 2000),
|
|
128
|
+
modified_gmt: formatModifiedGmt(lastModified),
|
|
129
|
+
content_hash: facts.contentHash,
|
|
130
|
+
word_count: facts.wordCount,
|
|
131
|
+
has_featured_image: facts.hasImage,
|
|
132
|
+
is_source: facts.isSource,
|
|
133
|
+
seo: {
|
|
134
|
+
title: facts.title.slice(0, 512),
|
|
135
|
+
description: facts.description.slice(0, 1024),
|
|
136
|
+
plugin: 'nextjs',
|
|
137
|
+
},
|
|
138
|
+
locale: facts.locale.slice(0, 32),
|
|
139
|
+
translation_group: facts.translationGroup.slice(0, 128),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
// Same wire format the WordPress client sends: "YYYY-MM-DD HH:MM:SS" in UTC; empty when the sitemap had none.
|
|
143
|
+
export function formatModifiedGmt(iso) {
|
|
144
|
+
if (!iso)
|
|
145
|
+
return '';
|
|
146
|
+
const date = new Date(iso);
|
|
147
|
+
if (Number.isNaN(date.getTime()))
|
|
148
|
+
return '';
|
|
149
|
+
return date.toISOString().slice(0, 19).replace('T', ' ');
|
|
150
|
+
}
|
|
151
|
+
export function chunk(items, size) {
|
|
152
|
+
const out = [];
|
|
153
|
+
for (let i = 0; i < items.length; i += size)
|
|
154
|
+
out.push(items.slice(i, i + size));
|
|
155
|
+
return out;
|
|
156
|
+
}
|
|
157
|
+
export async function collectSitemapRows(origin, fetchImpl, explicitSitemap) {
|
|
158
|
+
const rows = [];
|
|
159
|
+
const seen = new Set();
|
|
160
|
+
const queue = [
|
|
161
|
+
{ url: explicitSitemap ?? `${origin}/sitemap.xml`, depth: 0 },
|
|
162
|
+
];
|
|
163
|
+
let fetched = 0;
|
|
164
|
+
while (queue.length > 0 && fetched < MAX_SITEMAPS) {
|
|
165
|
+
const next = queue.shift();
|
|
166
|
+
if (!next || seen.has(next.url))
|
|
167
|
+
continue;
|
|
168
|
+
seen.add(next.url);
|
|
169
|
+
fetched += 1;
|
|
170
|
+
const res = await fetchImpl(next.url, { headers: { Accept: 'application/xml,text/xml' } });
|
|
171
|
+
if (!res.ok) {
|
|
172
|
+
if (fetched === 1)
|
|
173
|
+
throw new Error(`sitemap ${next.url} returned HTTP ${res.status}`);
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
const parsed = parseSitemapXml(await res.text());
|
|
177
|
+
rows.push(...parsed.urls);
|
|
178
|
+
if (next.depth < MAX_INDEX_DEPTH) {
|
|
179
|
+
for (const child of parsed.sitemaps)
|
|
180
|
+
queue.push({ url: child, depth: next.depth + 1 });
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return dedupeRows(rows);
|
|
184
|
+
}
|
|
185
|
+
export async function runSeed(options, deps) {
|
|
186
|
+
const origin = new URL(options.siteUrl).origin;
|
|
187
|
+
const rows = await collectSitemapRows(origin, deps.fetch, options.sitemapUrl);
|
|
188
|
+
const own = rows.filter((row) => sameSite(row.url, origin));
|
|
189
|
+
const selected = options.limit ? own.slice(0, options.limit) : own;
|
|
190
|
+
const summary = {
|
|
191
|
+
found: own.length,
|
|
192
|
+
seeded: { post: 0, wiki: 0, page: 0 },
|
|
193
|
+
skipped: [],
|
|
194
|
+
accepted: 0,
|
|
195
|
+
unchanged: 0,
|
|
196
|
+
};
|
|
197
|
+
if (own.length === 0) {
|
|
198
|
+
throw new Error(`no URLs on ${origin} in the sitemap. Pass --site-url for the deployed origin, or --sitemap for its sitemap.`);
|
|
199
|
+
}
|
|
200
|
+
const items = [];
|
|
201
|
+
await mapWithConcurrency(selected, options.concurrency, async (row) => {
|
|
202
|
+
const kind = classifyUrl(row.url, options);
|
|
203
|
+
try {
|
|
204
|
+
const res = await deps.fetch(row.url, {
|
|
205
|
+
headers: { Accept: 'text/html', 'User-Agent': 'ignite-seed' },
|
|
206
|
+
});
|
|
207
|
+
const type = res.headers.get('content-type') ?? '';
|
|
208
|
+
if (!res.ok) {
|
|
209
|
+
summary.skipped.push({ url: row.url, reason: `HTTP ${res.status}` });
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
if (!type.includes('text/html')) {
|
|
213
|
+
summary.skipped.push({ url: row.url, reason: `not HTML (${type || 'no content-type'})` });
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
const facts = extractPageFacts(await res.text(), row.url);
|
|
217
|
+
if (facts.noindex) {
|
|
218
|
+
summary.skipped.push({ url: row.url, reason: 'noindex' });
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
items.push(toInventoryItem(row.url, kind, facts, row.lastModified));
|
|
222
|
+
summary.seeded[kind] += 1;
|
|
223
|
+
deps.log(` ${kind.padEnd(4)} ${String(facts.wordCount).padStart(5)}w ${row.url}`);
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
summary.skipped.push({ url: row.url, reason: error.message });
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
if (options.dryRun)
|
|
230
|
+
return summary;
|
|
231
|
+
for (const batch of chunk(items, SEED_BATCH)) {
|
|
232
|
+
const receipt = await deps.client.pushContentInventory(batch);
|
|
233
|
+
summary.accepted += receipt.accepted;
|
|
234
|
+
summary.unchanged += receipt.unchanged;
|
|
235
|
+
}
|
|
236
|
+
return summary;
|
|
237
|
+
}
|
|
238
|
+
async function mapWithConcurrency(items, limit, fn) {
|
|
239
|
+
let index = 0;
|
|
240
|
+
const workers = Array.from({ length: Math.max(1, Math.min(limit, items.length)) }, async () => {
|
|
241
|
+
while (index < items.length) {
|
|
242
|
+
const current = items[index];
|
|
243
|
+
index += 1;
|
|
244
|
+
if (current !== undefined)
|
|
245
|
+
await fn(current);
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
await Promise.all(workers);
|
|
249
|
+
}
|
|
250
|
+
function dedupeRows(rows) {
|
|
251
|
+
const byUrl = new Map();
|
|
252
|
+
for (const row of rows) {
|
|
253
|
+
const key = canonicalUrl(row.url);
|
|
254
|
+
if (!byUrl.has(key))
|
|
255
|
+
byUrl.set(key, row);
|
|
256
|
+
}
|
|
257
|
+
return [...byUrl.values()];
|
|
258
|
+
}
|
|
259
|
+
function mainText(html) {
|
|
260
|
+
const stripped = html
|
|
261
|
+
.replace(/<(script|style|noscript|svg|template|iframe)\b[\s\S]*?<\/\1>/gi, ' ')
|
|
262
|
+
.replace(/<!--[\s\S]*?-->/g, ' ');
|
|
263
|
+
const scoped = stripped.match(/<main\b[^>]*>([\s\S]*?)<\/main>/i)?.[1] ??
|
|
264
|
+
stripped.match(/<article\b[^>]*>([\s\S]*?)<\/article>/i)?.[1] ??
|
|
265
|
+
stripped.match(/<body\b[^>]*>([\s\S]*?)<\/body>/i)?.[1] ??
|
|
266
|
+
stripped;
|
|
267
|
+
return decodeEntities(scoped.replace(/<[^>]+>/g, ' ')).replace(/\s+/g, ' ').trim();
|
|
268
|
+
}
|
|
269
|
+
function metaContent(head, attr, value) {
|
|
270
|
+
for (const tag of head.matchAll(/<meta\b[^>]*>/gi)) {
|
|
271
|
+
const source = tag[0];
|
|
272
|
+
const key = source.match(new RegExp(`\\b${attr}=["']([^"']+)["']`, 'i'))?.[1]?.toLowerCase();
|
|
273
|
+
if (key !== value)
|
|
274
|
+
continue;
|
|
275
|
+
const content = source.match(/\bcontent=["']([^"']*)["']/i)?.[1];
|
|
276
|
+
return content === undefined ? null : decodeEntities(content);
|
|
277
|
+
}
|
|
278
|
+
return null;
|
|
279
|
+
}
|
|
280
|
+
function pathOf(url) {
|
|
281
|
+
try {
|
|
282
|
+
return new URL(url).pathname;
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
return url;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
function resolveHref(href, base) {
|
|
289
|
+
try {
|
|
290
|
+
return new URL(href, base).toString();
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
return href;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
function decodeXml(value) {
|
|
297
|
+
return value
|
|
298
|
+
.replace(/&/g, '&')
|
|
299
|
+
.replace(/</g, '<')
|
|
300
|
+
.replace(/>/g, '>')
|
|
301
|
+
.replace(/"/g, '"')
|
|
302
|
+
.replace(/'/g, "'");
|
|
303
|
+
}
|
|
304
|
+
function decodeEntities(value) {
|
|
305
|
+
return decodeXml(value)
|
|
306
|
+
.replace(/'/g, "'")
|
|
307
|
+
.replace(/ /g, ' ')
|
|
308
|
+
.replace(/&#(\d+);/g, (_, code) => String.fromCodePoint(Number(code)))
|
|
309
|
+
.replace(/&#x([0-9a-f]+);/gi, (_, code) => String.fromCodePoint(Number.parseInt(code, 16)));
|
|
310
|
+
}
|
|
311
|
+
//# sourceMappingURL=seed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/cli/seed.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -18,9 +18,12 @@ export declare class IgniteClient {
|
|
|
18
18
|
pages(): Promise<FeedIndex>;
|
|
19
19
|
page(slug: string): Promise<FeedPage>;
|
|
20
20
|
recordCrawlEvents(events: CrawlEvent[]): Promise<void>;
|
|
21
|
+
pushContentInventory(items: InventoryItem[], cursor?: string): Promise<InventoryReceipt>;
|
|
21
22
|
private site;
|
|
22
23
|
private get;
|
|
23
24
|
private post;
|
|
25
|
+
private postJson;
|
|
26
|
+
private send;
|
|
24
27
|
}
|
|
25
28
|
export type CrawlEvent = {
|
|
26
29
|
bot_name: string;
|
|
@@ -31,3 +34,27 @@ export type CrawlEvent = {
|
|
|
31
34
|
method?: string;
|
|
32
35
|
status?: number;
|
|
33
36
|
};
|
|
37
|
+
export type InventoryItem = {
|
|
38
|
+
id: number;
|
|
39
|
+
type: string;
|
|
40
|
+
status: string;
|
|
41
|
+
url: string;
|
|
42
|
+
title: string;
|
|
43
|
+
excerpt: string;
|
|
44
|
+
modified_gmt: string;
|
|
45
|
+
content_hash: string;
|
|
46
|
+
word_count: number;
|
|
47
|
+
has_featured_image: boolean;
|
|
48
|
+
is_source: boolean;
|
|
49
|
+
seo: {
|
|
50
|
+
title: string;
|
|
51
|
+
description: string;
|
|
52
|
+
plugin: string;
|
|
53
|
+
};
|
|
54
|
+
locale: string;
|
|
55
|
+
translation_group: string;
|
|
56
|
+
};
|
|
57
|
+
export type InventoryReceipt = {
|
|
58
|
+
accepted: number;
|
|
59
|
+
unchanged: number;
|
|
60
|
+
};
|
package/dist/client.js
CHANGED
|
@@ -39,6 +39,16 @@ export class IgniteClient {
|
|
|
39
39
|
return;
|
|
40
40
|
await this.post('/crawl-events', { events });
|
|
41
41
|
}
|
|
42
|
+
// Reports the pages this site already publishes. Max 100 items per call; the API answers with counts.
|
|
43
|
+
async pushContentInventory(items, cursor = '') {
|
|
44
|
+
if (items.length === 0)
|
|
45
|
+
return { accepted: 0, unchanged: 0 };
|
|
46
|
+
const body = await this.postJson('/content-inventory', {
|
|
47
|
+
cursor,
|
|
48
|
+
items,
|
|
49
|
+
});
|
|
50
|
+
return { accepted: body.accepted ?? 0, unchanged: body.unchanged ?? 0 };
|
|
51
|
+
}
|
|
42
52
|
site(path) {
|
|
43
53
|
return `${this.config.hubUrl}/v1/sites/${this.config.siteId}${path}`;
|
|
44
54
|
}
|
|
@@ -52,6 +62,13 @@ export class IgniteClient {
|
|
|
52
62
|
return (await res.json());
|
|
53
63
|
}
|
|
54
64
|
async post(path, body) {
|
|
65
|
+
await this.send(path, body);
|
|
66
|
+
}
|
|
67
|
+
async postJson(path, body) {
|
|
68
|
+
const res = await this.send(path, body);
|
|
69
|
+
return (await res.json());
|
|
70
|
+
}
|
|
71
|
+
async send(path, body) {
|
|
55
72
|
const res = await fetch(this.site(path), {
|
|
56
73
|
method: 'POST',
|
|
57
74
|
headers: {
|
|
@@ -63,6 +80,7 @@ export class IgniteClient {
|
|
|
63
80
|
});
|
|
64
81
|
if (!res.ok)
|
|
65
82
|
throw new IgniteApiError(res.status, path);
|
|
83
|
+
return res;
|
|
66
84
|
}
|
|
67
85
|
}
|
|
68
86
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'server-only';
|
|
2
|
-
export { IgniteClient, IgniteApiError, type ClientOptions, type CrawlEvent } from './client.js';
|
|
2
|
+
export { IgniteClient, IgniteApiError, type ClientOptions, type CrawlEvent, type InventoryItem, type InventoryReceipt, } from './client.js';
|
|
3
3
|
export { readConfig, requireConfig, IgniteConfigError, type IgniteConfig } from './env.js';
|
|
4
4
|
export type { AgentDirectives, RobotsDirective, SitemapEntry, MetadataDirective, FeedPage, FeedIndex, Measured, RateCI, } from './types.js';
|
|
5
5
|
export { default as robots } from './operator/robots.js';
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'server-only';
|
|
2
|
-
export { IgniteClient, IgniteApiError } from './client.js';
|
|
2
|
+
export { IgniteClient, IgniteApiError, } from './client.js';
|
|
3
3
|
export { readConfig, requireConfig, IgniteConfigError } from './env.js';
|
|
4
4
|
export { default as robots } from './operator/robots.js';
|
|
5
5
|
export { default as sitemap, igniteSitemap, mergeSitemap, feedPagesToSitemap } from './operator/sitemap.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAErB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,EACZ,cAAc,GAKf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAqB,MAAM,UAAU,CAAC;AAY3F,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAqB,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -83,3 +83,7 @@ Hard rules:
|
|
|
83
83
|
`var(--foreground)`). Or run `npx ignite init` and let it write routes + the mapping.
|
|
84
84
|
|
|
85
85
|
8. Run `npx ignite doctor` if possible, then the project build. Report errors. Do not change unrelated files.
|
|
86
|
+
|
|
87
|
+
9. Once I have deployed, run `npx ignite seed --site-url <the deployed origin> --dry-run`, show me the list,
|
|
88
|
+
and run it again without `--dry-run` when I confirm. It reports the existing blog, wiki and pages to Ignite
|
|
89
|
+
from the live sitemap and changes no files.
|
|
@@ -71,3 +71,7 @@ Hard rules:
|
|
|
71
71
|
`hsl(var(--foreground))`; oklch/hex: `var(--foreground)`). `npx ignite init` does routes + this mapping.
|
|
72
72
|
|
|
73
73
|
8. Run `npx ignite doctor`, then the project build. Report errors. Do not change unrelated files.
|
|
74
|
+
|
|
75
|
+
9. Once I have deployed, run `npx ignite seed --site-url <the deployed origin> --dry-run`, show me the list,
|
|
76
|
+
and run it again without `--dry-run` when I confirm. It reports the existing blog, wiki and pages to Ignite
|
|
77
|
+
from the live sitemap and changes no files.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ignite-agent/agent",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Ignite for Next.js: App Router SDK for robots, sitemap, JSON-LD, metadata, crawl logging,
|
|
3
|
+
"version": "0.5.1",
|
|
4
|
+
"description": "Ignite for Next.js: App Router SDK for robots, sitemap, JSON-LD, metadata, crawl logging, hosted wiki/blog pages, and a content-inventory seed. Server-only. The front end reads JSON; MCP is for coding agents, not the browser.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
7
7
|
"private": false,
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"node": ">=18.18.0"
|
|
13
13
|
},
|
|
14
14
|
"bin": {
|
|
15
|
-
"ignite": "
|
|
15
|
+
"ignite": "dist/cli/index.js"
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"dist",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"build": "tsc -p tsconfig.json && node scripts/write-css.mjs",
|
|
41
41
|
"prepublishOnly": "npm run build",
|
|
42
42
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
43
|
-
"test": "npm run build && node --test dist/client.test.js dist/mcp.test.js dist/operator/ui.test.js dist/operator/sitemap-merge.test.js dist/cli/project.test.js"
|
|
43
|
+
"test": "npm run build && node --test dist/client.test.js dist/mcp.test.js dist/operator/ui.test.js dist/operator/sitemap-merge.test.js dist/cli/project.test.js dist/cli/seed.test.js"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"server-only": "^0.0.1"
|