@astermind/cybernetic-chatbot-client 1.0.6

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.
Files changed (61) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +667 -0
  3. package/dist/ApiClient.d.ts +86 -0
  4. package/dist/ApiClient.d.ts.map +1 -0
  5. package/dist/CyberneticCache.d.ts +56 -0
  6. package/dist/CyberneticCache.d.ts.map +1 -0
  7. package/dist/CyberneticClient.d.ts +207 -0
  8. package/dist/CyberneticClient.d.ts.map +1 -0
  9. package/dist/CyberneticLocalRAG.d.ts +59 -0
  10. package/dist/CyberneticLocalRAG.d.ts.map +1 -0
  11. package/dist/agentic/CyberneticAgent.d.ts +111 -0
  12. package/dist/agentic/CyberneticAgent.d.ts.map +1 -0
  13. package/dist/agentic/CyberneticIntentClassifier.d.ts +78 -0
  14. package/dist/agentic/CyberneticIntentClassifier.d.ts.map +1 -0
  15. package/dist/agentic/index.d.ts +13 -0
  16. package/dist/agentic/index.d.ts.map +1 -0
  17. package/dist/agentic/register.d.ts +32 -0
  18. package/dist/agentic/register.d.ts.map +1 -0
  19. package/dist/agentic/tools/ClickTool.d.ts +41 -0
  20. package/dist/agentic/tools/ClickTool.d.ts.map +1 -0
  21. package/dist/agentic/tools/FillTool.d.ts +59 -0
  22. package/dist/agentic/tools/FillTool.d.ts.map +1 -0
  23. package/dist/agentic/tools/NavigateTool.d.ts +87 -0
  24. package/dist/agentic/tools/NavigateTool.d.ts.map +1 -0
  25. package/dist/agentic/tools/ScrollTool.d.ts +74 -0
  26. package/dist/agentic/tools/ScrollTool.d.ts.map +1 -0
  27. package/dist/agentic/tools/index.d.ts +9 -0
  28. package/dist/agentic/tools/index.d.ts.map +1 -0
  29. package/dist/agentic/types.d.ts +112 -0
  30. package/dist/agentic/types.d.ts.map +1 -0
  31. package/dist/config.d.ts +10 -0
  32. package/dist/config.d.ts.map +1 -0
  33. package/dist/cybernetic-chatbot-client-full.esm.js +3271 -0
  34. package/dist/cybernetic-chatbot-client-full.esm.js.map +1 -0
  35. package/dist/cybernetic-chatbot-client-full.min.js +2 -0
  36. package/dist/cybernetic-chatbot-client-full.min.js.map +1 -0
  37. package/dist/cybernetic-chatbot-client-full.umd.js +3296 -0
  38. package/dist/cybernetic-chatbot-client-full.umd.js.map +1 -0
  39. package/dist/cybernetic-chatbot-client.esm.js +3265 -0
  40. package/dist/cybernetic-chatbot-client.esm.js.map +1 -0
  41. package/dist/cybernetic-chatbot-client.min.js +2 -0
  42. package/dist/cybernetic-chatbot-client.min.js.map +1 -0
  43. package/dist/cybernetic-chatbot-client.umd.js +3290 -0
  44. package/dist/cybernetic-chatbot-client.umd.js.map +1 -0
  45. package/dist/full.d.ts +15 -0
  46. package/dist/full.d.ts.map +1 -0
  47. package/dist/index.d.ts +15 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/license/base64url.d.ts +24 -0
  50. package/dist/license/base64url.d.ts.map +1 -0
  51. package/dist/license/index.d.ts +5 -0
  52. package/dist/license/index.d.ts.map +1 -0
  53. package/dist/license/licenseManager.d.ts +124 -0
  54. package/dist/license/licenseManager.d.ts.map +1 -0
  55. package/dist/license/types.d.ts +72 -0
  56. package/dist/license/types.d.ts.map +1 -0
  57. package/dist/license/verifier.d.ts +19 -0
  58. package/dist/license/verifier.d.ts.map +1 -0
  59. package/dist/types.d.ts +163 -0
  60. package/dist/types.d.ts.map +1 -0
  61. package/package.json +85 -0
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Configuration for CyberneticClient
3
+ */
4
+ export interface CyberneticConfig {
5
+ /** Backend API URL */
6
+ apiUrl: string;
7
+ /** API key for authentication */
8
+ apiKey: string;
9
+ /** License key (JWT token) for AsterMind licensing */
10
+ licenseKey?: string;
11
+ /** Fallback/offline configuration */
12
+ fallback?: {
13
+ /** Enable offline fallback (default: true) */
14
+ enabled?: boolean;
15
+ /** Cache max age in milliseconds (default: 24 hours) */
16
+ cacheMaxAge?: number;
17
+ /** Sync documents on connect (default: true) */
18
+ cacheOnConnect?: boolean;
19
+ /** Storage type (default: 'indexeddb') */
20
+ cacheStorage?: 'indexeddb' | 'localstorage';
21
+ };
22
+ /** Retry configuration */
23
+ retry?: {
24
+ /** Max retries before fallback (default: 2) */
25
+ maxRetries?: number;
26
+ /** Initial delay in ms (default: 1000) */
27
+ initialDelay?: number;
28
+ /** Use exponential backoff (default: true) */
29
+ exponentialBackoff?: boolean;
30
+ };
31
+ /** Event callbacks */
32
+ onStatusChange?: (status: ConnectionStatus) => void;
33
+ onError?: (error: CyberneticError) => void;
34
+ /** Optional agentic capabilities configuration (requires importing CyberneticAgent) */
35
+ agentic?: AgenticConfig;
36
+ }
37
+ /**
38
+ * Agentic capabilities configuration
39
+ * Only active when CyberneticAgent is imported AND enabled
40
+ */
41
+ export interface AgenticConfig {
42
+ /** Enable agentic DOM interactions (default: false) */
43
+ enabled: boolean;
44
+ /** Confidence threshold for action execution (default: 0.8) */
45
+ confidenceThreshold?: number;
46
+ /** Allowed DOM actions */
47
+ allowedActions?: ('click' | 'fill' | 'scroll' | 'navigate' | 'select')[];
48
+ /** Require user confirmation before actions (default: true) */
49
+ confirmActions?: boolean;
50
+ /**
51
+ * Alias for confirmActions - require user confirmation before actions
52
+ * Use this or confirmActions, not both
53
+ */
54
+ requireConfirmation?: boolean;
55
+ /** Maximum actions per conversation turn (default: 5) */
56
+ maxActionsPerTurn?: number;
57
+ /** CSS selectors to never interact with */
58
+ blockedSelectors?: string[];
59
+ /** Only allow actions within these selectors */
60
+ allowedSelectors?: string[];
61
+ }
62
+ /**
63
+ * Connection status
64
+ */
65
+ export type ConnectionStatus = 'online' | 'offline' | 'connecting' | 'error';
66
+ /**
67
+ * Confidence level of response
68
+ */
69
+ export type ConfidenceLevel = 'high' | 'medium' | 'low' | 'none';
70
+ /**
71
+ * Source document from RAG
72
+ */
73
+ export interface Source {
74
+ title: string;
75
+ snippet: string;
76
+ relevance: number;
77
+ documentId?: string;
78
+ }
79
+ /**
80
+ * Response from CyberneticClient
81
+ * Always returned, never throws
82
+ */
83
+ export interface CyberneticResponse {
84
+ /** The response text */
85
+ reply: string;
86
+ /** Confidence level of the response */
87
+ confidence: ConfidenceLevel;
88
+ /** Source documents used */
89
+ sources: Source[];
90
+ /** Whether response came from offline fallback */
91
+ offline: boolean;
92
+ /** Session ID for conversation continuity */
93
+ sessionId?: string;
94
+ /** Seconds until retry is suggested (only on failures) */
95
+ retryAfter?: number;
96
+ /** Why confidence is reduced (for debugging) */
97
+ degradedReason?: string;
98
+ }
99
+ /**
100
+ * Request options for ask()
101
+ */
102
+ export interface AskOptions {
103
+ /** Session ID for conversation continuity */
104
+ sessionId?: string;
105
+ /** Context metadata */
106
+ context?: {
107
+ currentPage?: string;
108
+ pageTitle?: string;
109
+ };
110
+ /** Skip offline fallback for this request */
111
+ skipFallback?: boolean;
112
+ }
113
+ /**
114
+ * Streaming callback for SSE responses
115
+ */
116
+ export interface StreamCallbacks {
117
+ onToken?: (token: string) => void;
118
+ onSources?: (sources: Source[]) => void;
119
+ onComplete?: (response: CyberneticResponse) => void;
120
+ onError?: (error: CyberneticError) => void;
121
+ }
122
+ /**
123
+ * Cached document for offline RAG
124
+ */
125
+ export interface CachedDocument {
126
+ id: string;
127
+ title: string;
128
+ content: string;
129
+ updatedAt: string;
130
+ embedding?: number[];
131
+ }
132
+ /**
133
+ * Cache status
134
+ */
135
+ export interface CacheStatus {
136
+ documentCount: number;
137
+ lastSyncAt: string | null;
138
+ cacheSize: number;
139
+ isStale: boolean;
140
+ }
141
+ /**
142
+ * Error type for Cybernetic operations
143
+ */
144
+ export interface CyberneticError {
145
+ code: 'NETWORK_ERROR' | 'AUTH_ERROR' | 'RATE_LIMIT' | 'SERVER_ERROR' | 'CACHE_ERROR' | 'LOCAL_RAG_ERROR';
146
+ message: string;
147
+ retryAfter?: number;
148
+ originalError?: Error;
149
+ }
150
+ /**
151
+ * System-wide settings from server (ADR-200)
152
+ */
153
+ export interface SystemSettings {
154
+ /** Hours to retain cached data (default: 168 = 7 days) */
155
+ cacheRetentionHours: number;
156
+ /** When true, clients should use cached data only */
157
+ maintenanceMode: boolean;
158
+ /** Optional message to display during maintenance */
159
+ maintenanceMessage?: string;
160
+ /** Force all clients to operate in offline mode */
161
+ forceOfflineClients: boolean;
162
+ }
163
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,85 @@
1
+ {
2
+ "name": "@astermind/cybernetic-chatbot-client",
3
+ "version": "1.0.6",
4
+ "type": "module",
5
+ "description": "Offline-capable AI chatbot client with local RAG fallback and agentic capabilities for AsterMind",
6
+ "main": "dist/cybernetic-chatbot-client.umd.js",
7
+ "module": "dist/cybernetic-chatbot-client.esm.js",
8
+ "types": "dist/index.d.ts",
9
+ "sideEffects": false,
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/cybernetic-chatbot-client.esm.js",
14
+ "require": "./dist/cybernetic-chatbot-client.umd.js"
15
+ },
16
+ "./full": {
17
+ "types": "./dist/full.d.ts",
18
+ "import": "./dist/cybernetic-chatbot-client-full.esm.js",
19
+ "require": "./dist/cybernetic-chatbot-client-full.umd.js"
20
+ }
21
+ },
22
+ "files": [
23
+ "dist",
24
+ "README.md",
25
+ "LICENSE"
26
+ ],
27
+ "scripts": {
28
+ "prebuild": "node scripts/bump-version.js",
29
+ "build": "rollup -c",
30
+ "build:clean": "rm -rf dist && npm run build",
31
+ "dev": "rollup -c -w",
32
+ "test": "vitest run",
33
+ "test:watch": "vitest",
34
+ "test:coverage": "vitest --coverage",
35
+ "lint": "eslint src/",
36
+ "typecheck": "tsc --noEmit",
37
+ "audit": "npm audit",
38
+ "prerelease": "npm run build:clean && npm run typecheck && npm run test && npm run audit",
39
+ "version:patch": "node scripts/bump-version.js patch",
40
+ "version:minor": "node scripts/bump-version.js minor",
41
+ "version:major": "node scripts/bump-version.js major",
42
+ "prepublishOnly": "npm run typecheck && npm run test && npm run build"
43
+ },
44
+ "dependencies": {
45
+ "idb": "^7.1.1"
46
+ },
47
+ "devDependencies": {
48
+ "@rollup/plugin-commonjs": "^25.0.0",
49
+ "@rollup/plugin-node-resolve": "^15.0.0",
50
+ "@rollup/plugin-terser": "^0.4.0",
51
+ "@rollup/plugin-typescript": "^11.0.0",
52
+ "@types/node": "^20.0.0",
53
+ "jsdom": "^27.4.0",
54
+ "rollup": "^4.0.0",
55
+ "tslib": "^2.8.1",
56
+ "typescript": "^5.0.0",
57
+ "vitest": "^4.0.17"
58
+ },
59
+ "engines": {
60
+ "node": ">=16.0.0"
61
+ },
62
+ "keywords": [
63
+ "chatbot",
64
+ "rag",
65
+ "ai",
66
+ "offline",
67
+ "offline-first",
68
+ "agentic",
69
+ "astermind",
70
+ "cybernetic",
71
+ "indexeddb",
72
+ "cache",
73
+ "streaming",
74
+ "sse",
75
+ "dom-automation",
76
+ "intent-classification",
77
+ "client-sdk"
78
+ ],
79
+ "author": "AsterMind Team",
80
+ "license": "MIT",
81
+ "publishConfig": {
82
+ "access": "public"
83
+ },
84
+ "homepage": "https://astermind.ai"
85
+ }