wikimem 0.3.0 → 0.8.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/CHANGELOG.md +138 -29
- package/README.md +171 -309
- package/dist/cli/commands/ask.d.ts +3 -0
- package/dist/cli/commands/ask.d.ts.map +1 -0
- package/dist/cli/commands/ask.js +63 -0
- package/dist/cli/commands/ask.js.map +1 -0
- package/dist/cli/commands/export.d.ts +3 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +108 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/history.d.ts +3 -0
- package/dist/cli/commands/history.d.ts.map +1 -0
- package/dist/cli/commands/history.js +61 -0
- package/dist/cli/commands/history.js.map +1 -0
- package/dist/cli/commands/improve.d.ts.map +1 -1
- package/dist/cli/commands/improve.js +4 -3
- package/dist/cli/commands/improve.js.map +1 -1
- package/dist/cli/commands/ingest.d.ts.map +1 -1
- package/dist/cli/commands/ingest.js +5 -4
- package/dist/cli/commands/ingest.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +337 -81
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/lint.d.ts.map +1 -1
- package/dist/cli/commands/lint.js +4 -3
- package/dist/cli/commands/lint.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts +3 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +11 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/open.d.ts +3 -0
- package/dist/cli/commands/open.d.ts.map +1 -0
- package/dist/cli/commands/open.js +36 -0
- package/dist/cli/commands/open.js.map +1 -0
- package/dist/cli/commands/query.d.ts.map +1 -1
- package/dist/cli/commands/query.js +5 -4
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/commands/search.d.ts +3 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +61 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +41 -2
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/watch.d.ts.map +1 -1
- package/dist/cli/commands/watch.js +4 -3
- package/dist/cli/commands/watch.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +27 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/audit-trail.d.ts +15 -0
- package/dist/core/audit-trail.d.ts.map +1 -0
- package/dist/core/audit-trail.js +43 -0
- package/dist/core/audit-trail.js.map +1 -0
- package/dist/core/claude-code.d.ts +10 -0
- package/dist/core/claude-code.d.ts.map +1 -0
- package/dist/core/claude-code.js +81 -0
- package/dist/core/claude-code.js.map +1 -0
- package/dist/core/config.d.ts +23 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/connectors.d.ts +58 -0
- package/dist/core/connectors.d.ts.map +1 -0
- package/dist/core/connectors.js +189 -0
- package/dist/core/connectors.js.map +1 -0
- package/dist/core/folder-scanner.d.ts +10 -0
- package/dist/core/folder-scanner.d.ts.map +1 -0
- package/dist/core/folder-scanner.js +84 -0
- package/dist/core/folder-scanner.js.map +1 -0
- package/dist/core/git.d.ts +137 -0
- package/dist/core/git.d.ts.map +1 -0
- package/dist/core/git.js +520 -0
- package/dist/core/git.js.map +1 -0
- package/dist/core/history.d.ts +21 -0
- package/dist/core/history.d.ts.map +1 -0
- package/dist/core/history.js +107 -0
- package/dist/core/history.js.map +1 -0
- package/dist/core/improve.d.ts.map +1 -1
- package/dist/core/improve.js +9 -0
- package/dist/core/improve.js.map +1 -1
- package/dist/core/ingest.d.ts +1 -0
- package/dist/core/ingest.d.ts.map +1 -1
- package/dist/core/ingest.js +151 -7
- package/dist/core/ingest.js.map +1 -1
- package/dist/core/lint.d.ts.map +1 -1
- package/dist/core/lint.js +23 -4
- package/dist/core/lint.js.map +1 -1
- package/dist/core/oauth-defaults.d.ts +31 -0
- package/dist/core/oauth-defaults.d.ts.map +1 -0
- package/dist/core/oauth-defaults.js +77 -0
- package/dist/core/oauth-defaults.js.map +1 -0
- package/dist/core/observer.d.ts +94 -0
- package/dist/core/observer.d.ts.map +1 -0
- package/dist/core/observer.js +492 -0
- package/dist/core/observer.js.map +1 -0
- package/dist/core/pipeline-events.d.ts +63 -0
- package/dist/core/pipeline-events.d.ts.map +1 -0
- package/dist/core/pipeline-events.js +109 -0
- package/dist/core/pipeline-events.js.map +1 -0
- package/dist/core/query.d.ts.map +1 -1
- package/dist/core/query.js +16 -8
- package/dist/core/query.js.map +1 -1
- package/dist/core/scraper.d.ts +41 -0
- package/dist/core/scraper.d.ts.map +1 -0
- package/dist/core/scraper.js +277 -0
- package/dist/core/scraper.js.map +1 -0
- package/dist/core/sync/gdrive.d.ts +14 -0
- package/dist/core/sync/gdrive.d.ts.map +1 -0
- package/dist/core/sync/gdrive.js +205 -0
- package/dist/core/sync/gdrive.js.map +1 -0
- package/dist/core/sync/github.d.ts +20 -0
- package/dist/core/sync/github.d.ts.map +1 -0
- package/dist/core/sync/github.js +206 -0
- package/dist/core/sync/github.js.map +1 -0
- package/dist/core/sync/gmail.d.ts +15 -0
- package/dist/core/sync/gmail.d.ts.map +1 -0
- package/dist/core/sync/gmail.js +159 -0
- package/dist/core/sync/gmail.js.map +1 -0
- package/dist/core/sync/index.d.ts +47 -0
- package/dist/core/sync/index.d.ts.map +1 -0
- package/dist/core/sync/index.js +100 -0
- package/dist/core/sync/index.js.map +1 -0
- package/dist/core/sync/jira.d.ts +15 -0
- package/dist/core/sync/jira.d.ts.map +1 -0
- package/dist/core/sync/jira.js +176 -0
- package/dist/core/sync/jira.js.map +1 -0
- package/dist/core/sync/linear.d.ts +15 -0
- package/dist/core/sync/linear.d.ts.map +1 -0
- package/dist/core/sync/linear.js +111 -0
- package/dist/core/sync/linear.js.map +1 -0
- package/dist/core/sync/notion.d.ts +14 -0
- package/dist/core/sync/notion.d.ts.map +1 -0
- package/dist/core/sync/notion.js +168 -0
- package/dist/core/sync/notion.js.map +1 -0
- package/dist/core/sync/rss.d.ts +20 -0
- package/dist/core/sync/rss.d.ts.map +1 -0
- package/dist/core/sync/rss.js +165 -0
- package/dist/core/sync/rss.js.map +1 -0
- package/dist/core/sync/scheduler.d.ts +31 -0
- package/dist/core/sync/scheduler.d.ts.map +1 -0
- package/dist/core/sync/scheduler.js +129 -0
- package/dist/core/sync/scheduler.js.map +1 -0
- package/dist/core/sync/slack.d.ts +16 -0
- package/dist/core/sync/slack.d.ts.map +1 -0
- package/dist/core/sync/slack.js +173 -0
- package/dist/core/sync/slack.js.map +1 -0
- package/dist/core/vault.d.ts +22 -0
- package/dist/core/vault.d.ts.map +1 -1
- package/dist/core/vault.js +65 -0
- package/dist/core/vault.js.map +1 -1
- package/dist/core/webhooks.d.ts +13 -0
- package/dist/core/webhooks.d.ts.map +1 -0
- package/dist/core/webhooks.js +206 -0
- package/dist/core/webhooks.js.map +1 -0
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp-entry.d.ts +10 -0
- package/dist/mcp-entry.d.ts.map +1 -0
- package/dist/mcp-entry.js +21 -0
- package/dist/mcp-entry.js.map +1 -0
- package/dist/mcp-server.d.ts +20 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +483 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/mcp-tools-extended.d.ts +15 -0
- package/dist/mcp-tools-extended.d.ts.map +1 -0
- package/dist/mcp-tools-extended.js +277 -0
- package/dist/mcp-tools-extended.js.map +1 -0
- package/dist/processors/audio.d.ts.map +1 -1
- package/dist/processors/audio.js +42 -4
- package/dist/processors/audio.js.map +1 -1
- package/dist/processors/csv.d.ts +18 -0
- package/dist/processors/csv.d.ts.map +1 -0
- package/dist/processors/csv.js +230 -0
- package/dist/processors/csv.js.map +1 -0
- package/dist/processors/image.d.ts.map +1 -1
- package/dist/processors/image.js +55 -27
- package/dist/processors/image.js.map +1 -1
- package/dist/processors/pdf.d.ts.map +1 -1
- package/dist/processors/pdf.js +6 -3
- package/dist/processors/pdf.js.map +1 -1
- package/dist/processors/pptx.d.ts +3 -1
- package/dist/processors/pptx.d.ts.map +1 -1
- package/dist/processors/pptx.js +236 -95
- package/dist/processors/pptx.js.map +1 -1
- package/dist/processors/url.js +4 -1
- package/dist/processors/url.js.map +1 -1
- package/dist/processors/xlsx.d.ts +2 -0
- package/dist/processors/xlsx.d.ts.map +1 -1
- package/dist/processors/xlsx.js +182 -46
- package/dist/processors/xlsx.js.map +1 -1
- package/dist/providers/claude.d.ts +1 -0
- package/dist/providers/claude.d.ts.map +1 -1
- package/dist/providers/claude.js +5 -3
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/index.d.ts +17 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +144 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai.d.ts +1 -0
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +5 -3
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/types.d.ts +18 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/templates/config-yaml.d.ts.map +1 -1
- package/dist/templates/config-yaml.js +12 -1
- package/dist/templates/config-yaml.js.map +1 -1
- package/dist/templates/source-types.d.ts +33 -0
- package/dist/templates/source-types.d.ts.map +1 -0
- package/dist/templates/source-types.js +178 -0
- package/dist/templates/source-types.js.map +1 -0
- package/dist/web/public/index.html +9836 -742
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +2823 -43
- package/dist/web/server.js.map +1 -1
- package/package.json +10 -4
- package/scripts/install.sh +54 -0
- package/src/web/public/index.html +9836 -742
- package/templates/mcp-config.json +9 -0
- package/templates/source-types/article.md +21 -0
- package/templates/source-types/book.md +21 -0
- package/templates/source-types/paper.md +23 -0
- package/templates/source-types/podcast.md +21 -0
- package/templates/source-types/raw-notes.md +17 -0
- package/templates/source-types/tweet-thread.md +19 -0
- package/templates/source-types/video.md +21 -0
- package/dist/web/public/public/index.html +0 -946
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled OAuth App Credentials for WikiMem
|
|
3
|
+
*
|
|
4
|
+
* WikiMem registers its own OAuth apps on each platform (like Claude, VS Code, gh CLI).
|
|
5
|
+
* Users click "Connect" → consent screen → done. No manual app registration needed.
|
|
6
|
+
*
|
|
7
|
+
* For CLI/desktop apps:
|
|
8
|
+
* - GitHub Device Flow: only client_id needed (public, no secret)
|
|
9
|
+
* - Google "Desktop app": client_id + client_secret (both non-confidential per Google's docs)
|
|
10
|
+
* - Slack/Linear/Jira: client_id + client_secret (shipped in code, overridable via env vars)
|
|
11
|
+
*
|
|
12
|
+
* Resolution order: bundled defaults → env vars → config.yaml
|
|
13
|
+
* Env vars always override bundled defaults (for development/self-hosted).
|
|
14
|
+
*/
|
|
15
|
+
export interface OAuthAppCredentials {
|
|
16
|
+
clientId: string;
|
|
17
|
+
clientSecret: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ProviderDefaults {
|
|
20
|
+
/** Standard OAuth credentials (client_id + client_secret) */
|
|
21
|
+
credentials?: OAuthAppCredentials;
|
|
22
|
+
/** GitHub-specific: Device Flow client_id (no secret needed) */
|
|
23
|
+
deviceFlowClientId?: string;
|
|
24
|
+
}
|
|
25
|
+
/** Get bundled OAuth credentials for a provider. Returns null if none configured. */
|
|
26
|
+
export declare function getBundledCredentials(provider: string): OAuthAppCredentials | null;
|
|
27
|
+
/** Get bundled GitHub Device Flow client_id. Returns null if none configured. */
|
|
28
|
+
export declare function getBundledDeviceFlowClientId(): string | null;
|
|
29
|
+
/** Check if a provider has any bundled credentials (standard or device flow). */
|
|
30
|
+
export declare function hasBundledDefaults(provider: string): boolean;
|
|
31
|
+
//# sourceMappingURL=oauth-defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-defaults.d.ts","sourceRoot":"","sources":["../../src/core/oauth-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAgDD,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAElF;AAED,iFAAiF;AACjF,wBAAgB,4BAA4B,IAAI,MAAM,GAAG,IAAI,CAE5D;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAK5D"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled OAuth App Credentials for WikiMem
|
|
3
|
+
*
|
|
4
|
+
* WikiMem registers its own OAuth apps on each platform (like Claude, VS Code, gh CLI).
|
|
5
|
+
* Users click "Connect" → consent screen → done. No manual app registration needed.
|
|
6
|
+
*
|
|
7
|
+
* For CLI/desktop apps:
|
|
8
|
+
* - GitHub Device Flow: only client_id needed (public, no secret)
|
|
9
|
+
* - Google "Desktop app": client_id + client_secret (both non-confidential per Google's docs)
|
|
10
|
+
* - Slack/Linear/Jira: client_id + client_secret (shipped in code, overridable via env vars)
|
|
11
|
+
*
|
|
12
|
+
* Resolution order: bundled defaults → env vars → config.yaml
|
|
13
|
+
* Env vars always override bundled defaults (for development/self-hosted).
|
|
14
|
+
*/
|
|
15
|
+
// ── Pre-registered WikiMem OAuth app credentials ──
|
|
16
|
+
// Register apps and paste credentials here. They ship with the npm package.
|
|
17
|
+
// Users can override via WIKIMEM_{PROVIDER}_CLIENT_ID env vars.
|
|
18
|
+
const BUNDLED = {
|
|
19
|
+
github: {
|
|
20
|
+
// GitHub OAuth App — Device Flow enabled
|
|
21
|
+
// Register: https://github.com/settings/developers → New OAuth App
|
|
22
|
+
// Homepage URL: https://github.com/naman10parikh/llmwiki
|
|
23
|
+
// Callback URL: http://localhost:3456/api/auth/callback
|
|
24
|
+
// Check "Enable Device Flow"
|
|
25
|
+
// Only client_id needed for device flow (no secret)
|
|
26
|
+
deviceFlowClientId: 'Ov23liPXlZFPixXov4vx',
|
|
27
|
+
},
|
|
28
|
+
google: {
|
|
29
|
+
// Google OAuth — "Desktop" application type
|
|
30
|
+
// Register: https://console.cloud.google.com/apis/credentials
|
|
31
|
+
// Application type: Desktop app (secret is non-confidential for desktop apps)
|
|
32
|
+
// Enable: Gmail API, Google Drive API
|
|
33
|
+
// credentials: {
|
|
34
|
+
// clientId: '...apps.googleusercontent.com',
|
|
35
|
+
// clientSecret: 'GOCSPX-...',
|
|
36
|
+
// },
|
|
37
|
+
},
|
|
38
|
+
slack: {
|
|
39
|
+
// Slack App
|
|
40
|
+
// Register: https://api.slack.com/apps → Create New App → From scratch
|
|
41
|
+
// OAuth & Permissions → scopes: channels:history, channels:read, users:read
|
|
42
|
+
// Redirect URL: http://localhost:3456/api/auth/callback
|
|
43
|
+
// credentials: { clientId: '...', clientSecret: '...' },
|
|
44
|
+
},
|
|
45
|
+
linear: {
|
|
46
|
+
// Linear OAuth App
|
|
47
|
+
// Register: https://linear.app/settings/api → OAuth Applications → Create new
|
|
48
|
+
// Callback URL: http://localhost:3456/api/auth/callback
|
|
49
|
+
// credentials: { clientId: '...', clientSecret: '...' },
|
|
50
|
+
},
|
|
51
|
+
jira: {
|
|
52
|
+
// Atlassian/Jira OAuth 2.0 App
|
|
53
|
+
// Register: https://developer.atlassian.com/console/myapps/
|
|
54
|
+
// Create → OAuth 2.0 integration
|
|
55
|
+
// Callback URL: http://localhost:3456/api/auth/callback
|
|
56
|
+
// Scopes: read:jira-work, read:jira-user, offline_access
|
|
57
|
+
// credentials: { clientId: '...', clientSecret: '...' },
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
/** Get bundled OAuth credentials for a provider. Returns null if none configured. */
|
|
61
|
+
export function getBundledCredentials(provider) {
|
|
62
|
+
return BUNDLED[provider]?.credentials ?? null;
|
|
63
|
+
}
|
|
64
|
+
/** Get bundled GitHub Device Flow client_id. Returns null if none configured. */
|
|
65
|
+
export function getBundledDeviceFlowClientId() {
|
|
66
|
+
return BUNDLED.github?.deviceFlowClientId ?? null;
|
|
67
|
+
}
|
|
68
|
+
/** Check if a provider has any bundled credentials (standard or device flow). */
|
|
69
|
+
export function hasBundledDefaults(provider) {
|
|
70
|
+
const p = BUNDLED[provider];
|
|
71
|
+
if (!p)
|
|
72
|
+
return false;
|
|
73
|
+
if (provider === 'github')
|
|
74
|
+
return !!(p.deviceFlowClientId || p.credentials);
|
|
75
|
+
return !!p.credentials;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=oauth-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-defaults.js","sourceRoot":"","sources":["../../src/core/oauth-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAcH,qDAAqD;AACrD,4EAA4E;AAC5E,gEAAgE;AAChE,MAAM,OAAO,GAAqC;IAChD,MAAM,EAAE;QACN,yCAAyC;QACzC,mEAAmE;QACnE,yDAAyD;QACzD,wDAAwD;QACxD,6BAA6B;QAC7B,oDAAoD;QACpD,kBAAkB,EAAE,sBAAsB;KAC3C;IACD,MAAM,EAAE;IACN,4CAA4C;IAC5C,8DAA8D;IAC9D,8EAA8E;IAC9E,sCAAsC;IACtC,iBAAiB;IACjB,+CAA+C;IAC/C,gCAAgC;IAChC,KAAK;KACN;IACD,KAAK,EAAE;IACL,YAAY;IACZ,uEAAuE;IACvE,4EAA4E;IAC5E,wDAAwD;IACxD,yDAAyD;KAC1D;IACD,MAAM,EAAE;IACN,mBAAmB;IACnB,8EAA8E;IAC9E,wDAAwD;IACxD,yDAAyD;KAC1D;IACD,IAAI,EAAE;IACJ,+BAA+B;IAC/B,4DAA4D;IAC5D,iCAAiC;IACjC,wDAAwD;IACxD,yDAAyD;IACzD,yDAAyD;KAC1D;CACF,CAAC;AAEF,qFAAqF;AACrF,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,IAAI,IAAI,CAAC;AAChD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,4BAA4B;IAC1C,OAAO,OAAO,CAAC,MAAM,EAAE,kBAAkB,IAAI,IAAI,CAAC;AACpD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC;IAC5E,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automation 2: Observer (Self-Improvement Engine)
|
|
3
|
+
*
|
|
4
|
+
* Runs nightly at 3am (or on demand) to score every wiki page for quality,
|
|
5
|
+
* find orphans, flag contradictions, and identify knowledge gaps.
|
|
6
|
+
*
|
|
7
|
+
* Reports saved to .wikimem/observer-reports/YYYY-MM-DD.json
|
|
8
|
+
* Auto-committed as: wiki: observe: nightly quality scan
|
|
9
|
+
*/
|
|
10
|
+
import type { VaultConfig } from './vault.js';
|
|
11
|
+
export interface PageScore {
|
|
12
|
+
page: string;
|
|
13
|
+
title: string;
|
|
14
|
+
score: number;
|
|
15
|
+
maxScore: number;
|
|
16
|
+
breakdown: {
|
|
17
|
+
hasSummary: boolean;
|
|
18
|
+
hasLinksOut: boolean;
|
|
19
|
+
hasLinksIn: boolean;
|
|
20
|
+
wordCount: number;
|
|
21
|
+
hasTags: boolean;
|
|
22
|
+
freshness: number;
|
|
23
|
+
readability: number;
|
|
24
|
+
};
|
|
25
|
+
issues: string[];
|
|
26
|
+
}
|
|
27
|
+
export interface OrphanPage {
|
|
28
|
+
page: string;
|
|
29
|
+
title: string;
|
|
30
|
+
slug: string;
|
|
31
|
+
}
|
|
32
|
+
export interface PotentialContradiction {
|
|
33
|
+
pageA: string;
|
|
34
|
+
titleA: string;
|
|
35
|
+
pageB: string;
|
|
36
|
+
titleB: string;
|
|
37
|
+
reason: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Lightweight heuristic: two pages share a topic keyword in their title
|
|
41
|
+
* but their summaries contain opposing sentiment words.
|
|
42
|
+
*/
|
|
43
|
+
/** Exported for lint + UI — heuristic opposing-summary pairs across related pages */
|
|
44
|
+
export declare function flagContradictions(pagePaths: string[]): PotentialContradiction[];
|
|
45
|
+
export interface KnowledgeGap {
|
|
46
|
+
mentionedTopic: string;
|
|
47
|
+
mentionedIn: string[];
|
|
48
|
+
mentionCount: number;
|
|
49
|
+
}
|
|
50
|
+
export interface ObserverOptions {
|
|
51
|
+
maxPagesToReview?: number;
|
|
52
|
+
/** Max budget per run in USD (default: $2.00). Limits how many pages can be auto-improved. */
|
|
53
|
+
maxBudget?: number;
|
|
54
|
+
/** When true, use LLM to improve the weakest pages (not just score them) */
|
|
55
|
+
autoImprove?: boolean;
|
|
56
|
+
/** Max pages to auto-improve per run (default: 3) */
|
|
57
|
+
maxImprovements?: number;
|
|
58
|
+
/** Model to use for observer LLM calls (overrides config default) */
|
|
59
|
+
model?: string;
|
|
60
|
+
}
|
|
61
|
+
export interface ImprovementResult {
|
|
62
|
+
page: string;
|
|
63
|
+
title: string;
|
|
64
|
+
originalScore: number;
|
|
65
|
+
newScore?: number;
|
|
66
|
+
action: string;
|
|
67
|
+
improved: boolean;
|
|
68
|
+
error?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface ObserverReport {
|
|
71
|
+
date: string;
|
|
72
|
+
generatedAt: string;
|
|
73
|
+
totalPages: number;
|
|
74
|
+
pagesReviewed: number;
|
|
75
|
+
averageScore: number;
|
|
76
|
+
maxScore: number;
|
|
77
|
+
scores: PageScore[];
|
|
78
|
+
orphans: OrphanPage[];
|
|
79
|
+
contradictions: PotentialContradiction[];
|
|
80
|
+
gaps: KnowledgeGap[];
|
|
81
|
+
topIssues: Array<{
|
|
82
|
+
issue: string;
|
|
83
|
+
count: number;
|
|
84
|
+
}>;
|
|
85
|
+
improvements: ImprovementResult[];
|
|
86
|
+
}
|
|
87
|
+
export declare function getObserverReportsDir(vaultRoot: string): string;
|
|
88
|
+
export declare function runObserver(config: VaultConfig, options?: ObserverOptions): Promise<ObserverReport>;
|
|
89
|
+
export declare function listObserverReports(vaultRoot: string): string[];
|
|
90
|
+
export declare function readObserverReport(vaultRoot: string, date: string): ObserverReport | null;
|
|
91
|
+
export declare function startObserverCron(config: VaultConfig): void;
|
|
92
|
+
export declare function stopObserverCron(): void;
|
|
93
|
+
export declare function isObserverCronRunning(): boolean;
|
|
94
|
+
//# sourceMappingURL=observer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../../src/core/observer.ts"],"names":[],"mappings":"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"}
|