aiden-runtime 3.16.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.
Files changed (159) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +465 -0
  3. package/config/devos.config.json +186 -0
  4. package/config/hardware.json +9 -0
  5. package/config/model-selection.json +7 -0
  6. package/config/setup-complete.json +20 -0
  7. package/dist/api/routes/computerUse.js +112 -0
  8. package/dist/api/server.js +6870 -0
  9. package/dist/bin/npx-init.js +71 -0
  10. package/dist/coordination/commandGate.js +115 -0
  11. package/dist/coordination/livePulse.js +127 -0
  12. package/dist/core/agentLoop.js +2718 -0
  13. package/dist/core/agentShield.js +231 -0
  14. package/dist/core/aidenIdentity.js +215 -0
  15. package/dist/core/aidenPersonality.js +166 -0
  16. package/dist/core/aidenSdk.js +374 -0
  17. package/dist/core/asyncTasks.js +82 -0
  18. package/dist/core/auditTrail.js +61 -0
  19. package/dist/core/auxiliaryClient.js +114 -0
  20. package/dist/core/bgLLM.js +108 -0
  21. package/dist/core/bm25.js +68 -0
  22. package/dist/core/callbackSystem.js +64 -0
  23. package/dist/core/channels/adapter.js +6 -0
  24. package/dist/core/channels/discord.js +173 -0
  25. package/dist/core/channels/email.js +253 -0
  26. package/dist/core/channels/imessage.js +164 -0
  27. package/dist/core/channels/manager.js +96 -0
  28. package/dist/core/channels/signal.js +140 -0
  29. package/dist/core/channels/slack.js +139 -0
  30. package/dist/core/channels/twilio.js +144 -0
  31. package/dist/core/channels/webhook.js +186 -0
  32. package/dist/core/channels/whatsapp.js +185 -0
  33. package/dist/core/clarifyBus.js +75 -0
  34. package/dist/core/codeInterpreter.js +82 -0
  35. package/dist/core/computerControl.js +439 -0
  36. package/dist/core/conversationMemory.js +334 -0
  37. package/dist/core/costTracker.js +221 -0
  38. package/dist/core/cronManager.js +217 -0
  39. package/dist/core/deepKB.js +77 -0
  40. package/dist/core/doctor.js +279 -0
  41. package/dist/core/dreamEngine.js +334 -0
  42. package/dist/core/entityGraph.js +169 -0
  43. package/dist/core/eventBus.js +16 -0
  44. package/dist/core/evolutionAnalyzer.js +153 -0
  45. package/dist/core/executionLoop.js +309 -0
  46. package/dist/core/executor.js +224 -0
  47. package/dist/core/failureAnalyzer.js +166 -0
  48. package/dist/core/fastPathExpansion.js +82 -0
  49. package/dist/core/faultEngine.js +106 -0
  50. package/dist/core/featureGates.js +70 -0
  51. package/dist/core/fileIngestion.js +113 -0
  52. package/dist/core/gateway.js +97 -0
  53. package/dist/core/goalTracker.js +75 -0
  54. package/dist/core/growthEngine.js +168 -0
  55. package/dist/core/hardwareDetector.js +98 -0
  56. package/dist/core/hooks.js +45 -0
  57. package/dist/core/httpKeepalive.js +46 -0
  58. package/dist/core/hybridSearch.js +101 -0
  59. package/dist/core/importers.js +164 -0
  60. package/dist/core/instinctSystem.js +223 -0
  61. package/dist/core/knowledgeBase.js +351 -0
  62. package/dist/core/learningMemory.js +121 -0
  63. package/dist/core/lessonsBrowser.js +125 -0
  64. package/dist/core/licenseManager.js +399 -0
  65. package/dist/core/logBuffer.js +85 -0
  66. package/dist/core/machineId.js +87 -0
  67. package/dist/core/mcpClient.js +442 -0
  68. package/dist/core/memoryDistiller.js +165 -0
  69. package/dist/core/memoryExtractor.js +212 -0
  70. package/dist/core/memoryIds.js +213 -0
  71. package/dist/core/memoryPreamble.js +113 -0
  72. package/dist/core/memoryQuery.js +136 -0
  73. package/dist/core/memoryRecall.js +140 -0
  74. package/dist/core/memoryStrategy.js +201 -0
  75. package/dist/core/messageValidator.js +85 -0
  76. package/dist/core/modelDiscovery.js +108 -0
  77. package/dist/core/modelRouter.js +118 -0
  78. package/dist/core/morningBriefing.js +203 -0
  79. package/dist/core/multiGoalValidator.js +51 -0
  80. package/dist/core/parallelExecutor.js +43 -0
  81. package/dist/core/passiveSkillObserver.js +204 -0
  82. package/dist/core/paths.js +57 -0
  83. package/dist/core/patternDetector.js +83 -0
  84. package/dist/core/planResponseRepair.js +64 -0
  85. package/dist/core/planTool.js +111 -0
  86. package/dist/core/playwrightBridge.js +356 -0
  87. package/dist/core/pluginSystem.js +121 -0
  88. package/dist/core/privateMode.js +85 -0
  89. package/dist/core/reactLoop.js +156 -0
  90. package/dist/core/recipeEngine.js +166 -0
  91. package/dist/core/responseCache.js +128 -0
  92. package/dist/core/runSandbox.js +132 -0
  93. package/dist/core/sandboxRunner.js +200 -0
  94. package/dist/core/scheduler.js +543 -0
  95. package/dist/core/secretScanner.js +49 -0
  96. package/dist/core/semanticMemory.js +223 -0
  97. package/dist/core/sessionMemory.js +259 -0
  98. package/dist/core/sessionRouter.js +91 -0
  99. package/dist/core/sessionSearch.js +163 -0
  100. package/dist/core/setupWizard.js +225 -0
  101. package/dist/core/skillImporter.js +303 -0
  102. package/dist/core/skillLibrary.js +144 -0
  103. package/dist/core/skillLoader.js +471 -0
  104. package/dist/core/skillTeacher.js +352 -0
  105. package/dist/core/skillValidator.js +210 -0
  106. package/dist/core/skillWriter.js +384 -0
  107. package/dist/core/slashAsTool.js +226 -0
  108. package/dist/core/spawnManager.js +197 -0
  109. package/dist/core/statusVerbs.js +43 -0
  110. package/dist/core/swarmManager.js +109 -0
  111. package/dist/core/taskQueue.js +119 -0
  112. package/dist/core/taskRecovery.js +128 -0
  113. package/dist/core/taskState.js +168 -0
  114. package/dist/core/telegramBot.js +152 -0
  115. package/dist/core/todoManager.js +70 -0
  116. package/dist/core/toolNameRepair.js +71 -0
  117. package/dist/core/toolRegistry.js +2730 -0
  118. package/dist/core/tools/calendarTool.js +98 -0
  119. package/dist/core/tools/companyFilingsTool.js +98 -0
  120. package/dist/core/tools/gmailTool.js +87 -0
  121. package/dist/core/tools/marketDataTool.js +135 -0
  122. package/dist/core/tools/socialResearchTool.js +121 -0
  123. package/dist/core/truthCheck.js +57 -0
  124. package/dist/core/updateChecker.js +74 -0
  125. package/dist/core/userCognitionProfile.js +238 -0
  126. package/dist/core/userProfile.js +341 -0
  127. package/dist/core/version.js +5 -0
  128. package/dist/core/visionAnalyze.js +161 -0
  129. package/dist/core/voice/audio.js +187 -0
  130. package/dist/core/voice/stt.js +226 -0
  131. package/dist/core/voice/tts.js +310 -0
  132. package/dist/core/voiceInput.js +118 -0
  133. package/dist/core/voiceOutput.js +130 -0
  134. package/dist/core/webSearch.js +326 -0
  135. package/dist/core/workflowTracker.js +72 -0
  136. package/dist/core/workspaceMemory.js +54 -0
  137. package/dist/core/youtubeTranscript.js +224 -0
  138. package/dist/integrations/computerUse/apiRegistry.js +113 -0
  139. package/dist/integrations/computerUse/screenAgent.js +203 -0
  140. package/dist/integrations/computerUse/visionLoop.js +296 -0
  141. package/dist/memory/memoryLayers.js +143 -0
  142. package/dist/providers/boa.js +93 -0
  143. package/dist/providers/cerebras.js +70 -0
  144. package/dist/providers/custom.js +89 -0
  145. package/dist/providers/gemini.js +82 -0
  146. package/dist/providers/groq.js +92 -0
  147. package/dist/providers/index.js +149 -0
  148. package/dist/providers/nvidia.js +70 -0
  149. package/dist/providers/ollama.js +99 -0
  150. package/dist/providers/openrouter.js +74 -0
  151. package/dist/providers/router.js +497 -0
  152. package/dist/providers/types.js +6 -0
  153. package/dist/security/browserVault.js +129 -0
  154. package/dist/security/dataGuard.js +89 -0
  155. package/dist/tools/eonetTool.js +72 -0
  156. package/dist/types/computerUse.js +2 -0
  157. package/dist/types/executor.js +2 -0
  158. package/dist-bundle/cli.js +357859 -0
  159. package/package.json +256 -0
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // DevOS — Autonomous AI Execution System
4
+ // Copyright (c) 2026 Shiva Deore. All rights reserved.
5
+ // ============================================================
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.checkDockerAvailable = checkDockerAvailable;
44
+ exports.resetDockerCache = resetDockerCache;
45
+ exports.buildSandboxImage = buildSandboxImage;
46
+ exports.runInDockerSandbox = runInDockerSandbox;
47
+ exports.getSandboxStatus = getSandboxStatus;
48
+ // core/sandboxRunner.ts — Opt-in Docker sandbox backend (N+34).
49
+ // When AIDEN_SANDBOX_MODE is "auto" or "strict", dangerous tools
50
+ // (shell_exec, run_python) execute inside short-lived Docker containers
51
+ // instead of the host, providing network isolation and resource limits.
52
+ const child_process_1 = require("child_process");
53
+ const util_1 = require("util");
54
+ const path_1 = __importDefault(require("path"));
55
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
56
+ // ── Constants ─────────────────────────────────────────────────
57
+ const SANDBOX_IMAGE = 'aiden-sandbox:latest';
58
+ const DOCKERFILE_CONTENT = `FROM node:20-alpine
59
+ RUN apk add --no-cache python3 py3-pip bash curl git
60
+ WORKDIR /workspace
61
+ # Drop to non-root for safety
62
+ RUN addgroup -S aiden && adduser -S aiden -G aiden && chown aiden:aiden /workspace
63
+ USER aiden
64
+ `;
65
+ // ── Docker availability check ─────────────────────────────────
66
+ let _dockerAvailableCache = null;
67
+ async function checkDockerAvailable() {
68
+ if (_dockerAvailableCache !== null)
69
+ return _dockerAvailableCache;
70
+ try {
71
+ await execAsync('docker --version', { timeout: 5000 });
72
+ _dockerAvailableCache = true;
73
+ return true;
74
+ }
75
+ catch {
76
+ _dockerAvailableCache = false;
77
+ return false;
78
+ }
79
+ }
80
+ // Resets the cache — useful after Docker Desktop starts up
81
+ function resetDockerCache() {
82
+ _dockerAvailableCache = null;
83
+ }
84
+ // ── Image build / cache ───────────────────────────────────────
85
+ let _imageBuildPromise = null;
86
+ async function buildSandboxImage() {
87
+ // Deduplicate concurrent build calls
88
+ if (_imageBuildPromise)
89
+ return _imageBuildPromise;
90
+ _imageBuildPromise = _doBuild().finally(() => {
91
+ _imageBuildPromise = null;
92
+ });
93
+ return _imageBuildPromise;
94
+ }
95
+ async function _doBuild() {
96
+ // Check if image already exists
97
+ try {
98
+ const { stdout } = await execAsync(`docker image inspect ${SANDBOX_IMAGE} --format "{{.Id}}"`, { timeout: 10000 });
99
+ if (stdout.trim()) {
100
+ console.log('[Sandbox] Image already present:', SANDBOX_IMAGE);
101
+ return;
102
+ }
103
+ }
104
+ catch {
105
+ // Image doesn't exist — build it
106
+ }
107
+ // Write Dockerfile to a temp dir and build
108
+ const { mkdtempSync, writeFileSync, rmSync } = await Promise.resolve().then(() => __importStar(require('fs')));
109
+ const os = await Promise.resolve().then(() => __importStar(require('os')));
110
+ const tmpDir = mkdtempSync(path_1.default.join(os.tmpdir(), 'aiden-sandbox-'));
111
+ try {
112
+ writeFileSync(path_1.default.join(tmpDir, 'Dockerfile'), DOCKERFILE_CONTENT);
113
+ console.log('[Sandbox] Building image', SANDBOX_IMAGE, '...');
114
+ const { stdout, stderr } = await execAsync(`docker build -t ${SANDBOX_IMAGE} "${tmpDir}"`, { timeout: 120000 });
115
+ console.log('[Sandbox] Build complete.', (stdout || stderr).slice(0, 200));
116
+ }
117
+ finally {
118
+ try {
119
+ rmSync(tmpDir, { recursive: true, force: true });
120
+ }
121
+ catch { }
122
+ }
123
+ }
124
+ // ── Core runner ───────────────────────────────────────────────
125
+ /**
126
+ * Run a command or Python script inside a Docker container with:
127
+ * --rm auto-remove on exit
128
+ * --network=none no outbound traffic (unless args.network=true)
129
+ * --memory=512m RAM cap
130
+ * --cpus=1 CPU cap
131
+ * --read-only immutable container FS
132
+ * --tmpfs /tmp writable temp space
133
+ * -v workspace:/workspace (optional) host workspace mount
134
+ */
135
+ async function runInDockerSandbox(args) {
136
+ const available = await checkDockerAvailable();
137
+ if (!available)
138
+ throw new Error('Docker is not available on this system');
139
+ await buildSandboxImage();
140
+ const timeout = args.timeout ?? 30000;
141
+ const network = args.network ? 'bridge' : 'none';
142
+ const workspace = args.workspace ?? path_1.default.join(process.cwd(), 'workspace');
143
+ // Resolve the actual command to pass to docker
144
+ let dockerCmd;
145
+ if (args.type === 'python') {
146
+ // Inline the script via stdin-style echo pipe to python3
147
+ const escaped = args.command
148
+ .replace(/\\/g, '\\\\')
149
+ .replace(/"/g, '\\"')
150
+ .replace(/\$/g, '\\$')
151
+ .replace(/`/g, '\\`');
152
+ dockerCmd = `python3 -c "${escaped}"`;
153
+ }
154
+ else {
155
+ dockerCmd = args.command;
156
+ }
157
+ // Escape for outer shell
158
+ const innerEscaped = dockerCmd.replace(/"/g, '\\"');
159
+ const volumeFlag = `-v "${workspace}:/workspace"`;
160
+ const runCmd = [
161
+ 'docker run',
162
+ '--rm',
163
+ `--network=${network}`,
164
+ '--memory=512m',
165
+ '--cpus=1',
166
+ '--read-only',
167
+ '--tmpfs /tmp',
168
+ volumeFlag,
169
+ SANDBOX_IMAGE,
170
+ `bash -c "${innerEscaped}"`,
171
+ ].join(' ');
172
+ try {
173
+ const { stdout, stderr } = await execAsync(runCmd, {
174
+ timeout,
175
+ cwd: process.cwd(),
176
+ });
177
+ return { stdout: stdout || '', stderr: stderr || '', exitCode: 0 };
178
+ }
179
+ catch (e) {
180
+ const exitCode = e.code ?? 1;
181
+ return {
182
+ stdout: e.stdout ?? '',
183
+ stderr: e.stderr ?? e.message ?? '',
184
+ exitCode: typeof exitCode === 'number' ? exitCode : 1,
185
+ };
186
+ }
187
+ }
188
+ async function getSandboxStatus() {
189
+ const mode = process.env.AIDEN_SANDBOX_MODE || 'off';
190
+ const dockerAvailable = await checkDockerAvailable();
191
+ let imageCached = false;
192
+ if (dockerAvailable) {
193
+ try {
194
+ const { stdout } = await execAsync(`docker image inspect ${SANDBOX_IMAGE} --format "{{.Id}}"`, { timeout: 5000 });
195
+ imageCached = Boolean(stdout.trim());
196
+ }
197
+ catch { }
198
+ }
199
+ return { mode, dockerAvailable, imageCached, imageTag: SANDBOX_IMAGE };
200
+ }