mouaif 0.3.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.
- package/LICENSE +21 -0
- package/README.md +140 -0
- package/bin/mouaif.js +281 -0
- package/frontend/dist/assets/AgentFilePicker-CcKLJorU.js +1 -0
- package/frontend/dist/assets/CliModal-Hs5phmNZ.js +7 -0
- package/frontend/dist/assets/DictationPage-BI23lp42.js +2 -0
- package/frontend/dist/assets/FileEditor-DDl31c6d.js +2 -0
- package/frontend/dist/assets/GitModal-3EC_gpJ5.js +2 -0
- package/frontend/dist/assets/Inspector-Ba3R1w04.js +73 -0
- package/frontend/dist/assets/SettingsAbout-bvZGDEDw.js +1 -0
- package/frontend/dist/assets/SettingsActions-Dk6WX9jv.js +1 -0
- package/frontend/dist/assets/SettingsAgents-BNV0MgDB.js +1 -0
- package/frontend/dist/assets/SettingsDefaults-DbMmQbzc.js +1 -0
- package/frontend/dist/assets/SettingsHiddenContent-BZ2sloH1.js +1 -0
- package/frontend/dist/assets/SettingsMcp-DOrfbQd1.js +1 -0
- package/frontend/dist/assets/SettingsMcpEdit-BGMQ2CWC.js +3 -0
- package/frontend/dist/assets/SettingsMcpRegistry-BywXee_A.js +1 -0
- package/frontend/dist/assets/SettingsNotifications-B0LEs11a.js +1 -0
- package/frontend/dist/assets/SettingsPricing-BAg33iVF.js +1 -0
- package/frontend/dist/assets/SettingsProject-DNrKhCcZ.js +14 -0
- package/frontend/dist/assets/SettingsProjects-IqkBfDcm.js +1 -0
- package/frontend/dist/assets/SettingsPrompts-BgeiASuk.js +1 -0
- package/frontend/dist/assets/SettingsProviders-k0xJN0IK.js +1 -0
- package/frontend/dist/assets/SettingsTags-B5kjFdQi.js +1 -0
- package/frontend/dist/assets/agentNavigation-BiiCpFz5.js +1 -0
- package/frontend/dist/assets/codemirror-Bp6CUUFk.js +30 -0
- package/frontend/dist/assets/index-BGvI4n0T.js +61 -0
- package/frontend/dist/assets/index-Bgg1gnDf.css +1 -0
- package/frontend/dist/assets/index-C1sQFIC-.css +1 -0
- package/frontend/dist/assets/index-CANPYzQg.css +1 -0
- package/frontend/dist/assets/index-Crn1LdzK.css +1 -0
- package/frontend/dist/assets/index-FbCWDPiB.css +1 -0
- package/frontend/dist/assets/projectQS-D1cSZ7Gr.js +1 -0
- package/frontend/dist/assets/virtual-list-6H9b4K51.js +1 -0
- package/frontend/dist/icons/favicon-32.png +0 -0
- package/frontend/dist/icons/icon-180-apple.png +0 -0
- package/frontend/dist/icons/icon-192.png +0 -0
- package/frontend/dist/icons/icon-512.png +0 -0
- package/frontend/dist/icons/icon-maskable-512.png +0 -0
- package/frontend/dist/index.html +83 -0
- package/frontend/dist/manifest.webmanifest +33 -0
- package/frontend/dist/sw.js +482 -0
- package/package.json +98 -0
- package/scripts/patch-zimmerframe.js +58 -0
- package/src/access-auth.js +515 -0
- package/src/agentFeatures.js +294 -0
- package/src/agentFiles.js +164 -0
- package/src/agentSkills.js +147 -0
- package/src/agents.js +230 -0
- package/src/ai-chat.js +21 -0
- package/src/ai-endpoints.js +1880 -0
- package/src/ai-stream.js +2048 -0
- package/src/ai.js +68 -0
- package/src/auth.js +391 -0
- package/src/chatdb.js +816 -0
- package/src/chats.js +275 -0
- package/src/custom-actions.js +65 -0
- package/src/files.js +431 -0
- package/src/hideFileContent.js +327 -0
- package/src/http-server.js +535 -0
- package/src/index.js +15 -0
- package/src/inspector.js +731 -0
- package/src/inspectorProfiles.js +503 -0
- package/src/live-chat.js +107 -0
- package/src/mcp.js +1517 -0
- package/src/messages.js +238 -0
- package/src/modelList.js +137 -0
- package/src/notifications.js +52 -0
- package/src/oauth-anthropic.js +280 -0
- package/src/oauth-github-copilot.js +417 -0
- package/src/oauth-mcp.js +216 -0
- package/src/oauth-openrouter.js +285 -0
- package/src/package-version.js +20 -0
- package/src/projects.js +285 -0
- package/src/promptProfiles.js +256 -0
- package/src/prompts.js +384 -0
- package/src/providerShapes.js +44 -0
- package/src/providers/base.js +41 -0
- package/src/providers/index.js +25 -0
- package/src/push.js +315 -0
- package/src/qr.js +192 -0
- package/src/restart.js +47 -0
- package/src/server-handlers-access.js +306 -0
- package/src/server-handlers-actions.js +100 -0
- package/src/server-handlers-ai.js +248 -0
- package/src/server-handlers-auth.js +273 -0
- package/src/server-handlers-chats.js +1436 -0
- package/src/server-handlers-git.js +467 -0
- package/src/server-handlers-mcp-oauth.js +56 -0
- package/src/server-handlers-misc.js +783 -0
- package/src/server-handlers-projects.js +289 -0
- package/src/server-handlers-prompts.js +259 -0
- package/src/server-handlers-push.js +102 -0
- package/src/server-handlers-settings.js +406 -0
- package/src/server-handlers-tools.js +654 -0
- package/src/server-handlers-transcribe.js +399 -0
- package/src/server-shared.js +780 -0
- package/src/server-web-static.js +191 -0
- package/src/settings.js +898 -0
- package/src/statusBar.js +541 -0
- package/src/tags.js +414 -0
- package/src/toolFeedback.js +225 -0
- package/src/tools/ask.js +154 -0
- package/src/tools/authorization.js +932 -0
- package/src/tools/files.js +1150 -0
- package/src/tools/progress.js +71 -0
- package/src/tools/restart.js +32 -0
- package/src/tools/searchEngine.js +957 -0
- package/src/tools/shell.js +341 -0
- package/src/tools/subagent.js +47 -0
- package/src/tools/task.js +234 -0
- package/src/tools/webpreview.js +448 -0
- package/src/trace.js +103 -0
- package/src/transcribe.js +683 -0
- package/src/usage.js +389 -0
- package/src/util.js +151 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Native `report_progress` tool — lets the model report real-time
|
|
4
|
+
// progress on a long-running operation. The tool call itself is a
|
|
5
|
+
// no-op for the server (it just validates args and returns the
|
|
6
|
+
// structured data), but the dispatch loop emits a `progress_update`
|
|
7
|
+
// SSE event so the frontend can show a live progress bar.
|
|
8
|
+
//
|
|
9
|
+
// The model calls this periodically with { title, current, total,
|
|
10
|
+
// status, message } and the frontend renders a progress bar
|
|
11
|
+
// notification.
|
|
12
|
+
|
|
13
|
+
const MAX_TITLE_CHARS = 120;
|
|
14
|
+
const MAX_MESSAGE_CHARS = 500;
|
|
15
|
+
|
|
16
|
+
const SPEC = {
|
|
17
|
+
type: 'function',
|
|
18
|
+
function: {
|
|
19
|
+
name: 'report_progress',
|
|
20
|
+
description: 'Report real-time progress on a long-running operation. Call this periodically to show a progress bar on the frontend.',
|
|
21
|
+
parameters: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
properties: {
|
|
24
|
+
title: { type: 'string', description: 'Short description of the operation (e.g. "Building project")' },
|
|
25
|
+
current: { type: 'number', description: 'Current progress value (0-based)' },
|
|
26
|
+
total: { type: 'number', description: 'Maximum progress value' },
|
|
27
|
+
status: { type: 'string', enum: ['running', 'completed', 'failed'], description: 'Current status of the operation' },
|
|
28
|
+
message: { type: 'string', description: 'Optional status message shown below the progress bar' }
|
|
29
|
+
},
|
|
30
|
+
required: ['title', 'current', 'total'],
|
|
31
|
+
additionalProperties: false
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
function trimString(value, max) {
|
|
37
|
+
if (typeof value !== 'string') return '';
|
|
38
|
+
const s = value.trim();
|
|
39
|
+
if (s.length <= max) return s;
|
|
40
|
+
return s.slice(0, max);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function validateArgs(args) {
|
|
44
|
+
if (!args || typeof args !== 'object') {
|
|
45
|
+
const e = new Error('args is required'); e.code = 'EBADINPUT'; throw e;
|
|
46
|
+
}
|
|
47
|
+
const title = trimString(args.title, MAX_TITLE_CHARS);
|
|
48
|
+
if (!title) {
|
|
49
|
+
const e = new Error('title is required'); e.code = 'EBADINPUT'; throw e;
|
|
50
|
+
}
|
|
51
|
+
const current = Number.isFinite(args.current) ? Math.round(args.current) : 0;
|
|
52
|
+
const total = Number.isFinite(args.total) ? Math.round(args.total) : 100;
|
|
53
|
+
if (total <= 0) {
|
|
54
|
+
const e = new Error('total must be positive'); e.code = 'EBADINPUT'; throw e;
|
|
55
|
+
}
|
|
56
|
+
const status = (args.status === 'completed' || args.status === 'failed') ? args.status : 'running';
|
|
57
|
+
const message = trimString(args.message, MAX_MESSAGE_CHARS);
|
|
58
|
+
return { title, current: Math.max(0, current), total, status, message };
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function buildResult(args) {
|
|
62
|
+
return { ok: true, content: JSON.stringify(args), result: args };
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
module.exports = {
|
|
66
|
+
SPEC,
|
|
67
|
+
validateArgs,
|
|
68
|
+
buildResult,
|
|
69
|
+
MAX_TITLE_CHARS,
|
|
70
|
+
MAX_MESSAGE_CHARS
|
|
71
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// Native restart_app tool. It schedules the same graceful worker relaunch as
|
|
3
|
+
// POST /api/restart, without making an authenticated loopback HTTP request.
|
|
4
|
+
const { requestRestart } = require('../restart.js');
|
|
5
|
+
|
|
6
|
+
const SPEC = {
|
|
7
|
+
type: 'function',
|
|
8
|
+
function: {
|
|
9
|
+
name: 'restart_app',
|
|
10
|
+
description: 'Gracefully restart the mouaif app from this chat without stopping its supervisor. Use when the user asks to restart, reload, or apply server-side code changes. The current response is saved before the worker relaunches.',
|
|
11
|
+
parameters: {
|
|
12
|
+
type: 'object',
|
|
13
|
+
properties: {
|
|
14
|
+
reason: { type: 'string', description: 'Short reason for the restart.' }
|
|
15
|
+
},
|
|
16
|
+
additionalProperties: false
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
function runRestart(args, options = {}) {
|
|
22
|
+
const result = requestRestart({
|
|
23
|
+
lifecycle: options.lifecycle,
|
|
24
|
+
reason: args && args.reason,
|
|
25
|
+
// Leave enough time for tool_result and the chat stream to flush and save.
|
|
26
|
+
delayMs: 1000,
|
|
27
|
+
defaultDelayMs: 1000
|
|
28
|
+
});
|
|
29
|
+
return { ok: !!result.ok, content: JSON.stringify(result), result };
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
module.exports = { SPEC, runRestart };
|