@agentsean/adapter-git 1.0.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.
@@ -0,0 +1,16 @@
1
+ export declare function rewriteTitle(source: string, next: string): {
2
+ ok: true;
3
+ after: string;
4
+ } | {
5
+ ok: false;
6
+ error: string;
7
+ };
8
+ export declare function rewriteBody(source: string, next: string): {
9
+ ok: true;
10
+ after: string;
11
+ } | {
12
+ ok: false;
13
+ error: string;
14
+ };
15
+ export declare function titleInSource(source: string): string | null;
16
+ //# sourceMappingURL=rewrite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../src/rewrite.ts"],"names":[],"mappings":"AAkBA,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAoB5D;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA2B5D;AAOD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ3D"}
@@ -0,0 +1,75 @@
1
+ const TITLE_PATTERNS = [
2
+ {
3
+ re: /title:\s*\{[^{}]*default:\s*(["'`])([\s\S]*?)\1/,
4
+ wrap: (title, m) => m[0].replace(m[2], title),
5
+ },
6
+ {
7
+ re: /(<title[^>]*>)([\s\S]*?)(<\/title>)/i,
8
+ wrap: (title, m) => `${m[1]}${title}${m[3]}`,
9
+ },
10
+ {
11
+ re: /title:\s*(["'`])([\s\S]*?)\1/,
12
+ wrap: (title, m) => `title: ${m[1]}${title}${m[1]}`,
13
+ },
14
+ ];
15
+ export function rewriteTitle(source, next) {
16
+ for (const p of TITLE_PATTERNS) {
17
+ p.re.lastIndex = 0;
18
+ const m = p.re.exec(source);
19
+ if (m) {
20
+ const after = source.slice(0, m.index) +
21
+ p.wrap(next, m) +
22
+ source.slice(m.index + m[0].length);
23
+ return { ok: true, after };
24
+ }
25
+ }
26
+ if (/export const metadata/.test(source)) {
27
+ const after = source.replace(/export const metadata\s*=\s*\{/, `export const metadata = {\n title: ${JSON.stringify(next)},`);
28
+ if (after !== source)
29
+ return { ok: true, after };
30
+ }
31
+ return { ok: false, error: "no title field found in file" };
32
+ }
33
+ export function rewriteBody(source, next) {
34
+ const fm = source.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);
35
+ if (fm) {
36
+ return { ok: true, after: fm[0] + next.replace(/^\n/, "") };
37
+ }
38
+ const main = /(<main[^>]*>)([\s\S]*?)(<\/main>)/i.exec(source);
39
+ if (main && main.index !== undefined) {
40
+ const inner = markdownToHtml(next);
41
+ const after = source.slice(0, main.index) +
42
+ `${main[1]}${inner}${main[3]}` +
43
+ source.slice(main.index + main[0].length);
44
+ return { ok: true, after };
45
+ }
46
+ const article = /(<article[^>]*>)([\s\S]*?)(<\/article>)/i.exec(source);
47
+ if (article && article.index !== undefined) {
48
+ const inner = markdownToHtml(next);
49
+ const after = source.slice(0, article.index) +
50
+ `${article[1]}${inner}${article[3]}` +
51
+ source.slice(article.index + article[0].length);
52
+ return { ok: true, after };
53
+ }
54
+ if (/^#\s+/m.test(source) || source.trim().length < 40) {
55
+ return { ok: true, after: next };
56
+ }
57
+ return { ok: true, after: next };
58
+ }
59
+ function markdownToHtml(md) {
60
+ const escaped = md.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
61
+ return `\n${escaped}\n`;
62
+ }
63
+ export function titleInSource(source) {
64
+ const html = /<title[^>]*>([\s\S]*?)<\/title>/i.exec(source);
65
+ if (html?.[1])
66
+ return html[1].trim();
67
+ const def = /title:\s*\{[^{}]*default:\s*(["'`])([\s\S]*?)\1/.exec(source);
68
+ if (def?.[2])
69
+ return def[2];
70
+ const simple = /title:\s*(["'`])([\s\S]*?)\1/.exec(source);
71
+ if (simple?.[2])
72
+ return simple[2];
73
+ return null;
74
+ }
75
+ //# sourceMappingURL=rewrite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../src/rewrite.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@agentsean/adapter-git",
3
+ "version": "1.0.0",
4
+ "license": "AGPL-3.0-only",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.js"
10
+ }
11
+ },
12
+ "files": [
13
+ "dist"
14
+ ],
15
+ "engines": {
16
+ "node": ">=22.19.0"
17
+ },
18
+ "dependencies": {
19
+ "@agentsean/actions": "1.0.0"
20
+ },
21
+ "devDependencies": {
22
+ "typescript": "~5.9.3",
23
+ "vitest": "^4.1.11"
24
+ },
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "git+https://github.com/seziro-team/agentsean.git",
31
+ "directory": "packages/adapters/git"
32
+ },
33
+ "homepage": "https://github.com/seziro-team/agentsean#readme",
34
+ "bugs": {
35
+ "url": "https://github.com/seziro-team/agentsean/issues"
36
+ },
37
+ "author": "Seziro (https://seziro.com)",
38
+ "description": "Agent Sean — adapter-git module",
39
+ "keywords": [
40
+ "seo",
41
+ "agent",
42
+ "agentsean",
43
+ "seo-automation"
44
+ ],
45
+ "scripts": {
46
+ "build": "tsc -p tsconfig.json",
47
+ "typecheck": "tsc -p tsconfig.json --noEmit",
48
+ "test": "vitest run --config ../../vitest.config.ts"
49
+ }
50
+ }