@rubytech/create-realagent-code 0.1.597 → 0.1.599
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/dist/__tests__/installer-settings-permissions.test.js +54 -0
- package/dist/__tests__/output-style-seed.test.js +23 -0
- package/dist/index.js +24 -0
- package/dist/permissions-seed.js +11 -2
- package/package.json +1 -1
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +5 -7
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +10 -0
- package/payload/platform/plugins/docs/references/settings.md +4 -6
- package/payload/platform/plugins/email/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/email/PLUGIN.md +2 -2
- package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.js +45 -1
- package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/index.js +5 -4
- package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +6 -4
- package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/imap.js +42 -4
- package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-fetch-body.d.ts +2 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-fetch-body.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-fetch-body.js +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-fetch-body.js.map +1 -1
- package/payload/platform/plugins/email/references/email-reference.md +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js +6 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/gate-dispatch-wiring.test.js +40 -16
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/gate-dispatch-wiring.test.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/gateless-census.test.d.ts +2 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/gateless-census.test.d.ts.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/gateless-census.test.js +55 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/gateless-census.test.js.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts +22 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js +84 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +63 -24
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/index.js +13 -0
- package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/output-style-audit.d.ts +42 -0
- package/payload/platform/services/claude-session-manager/dist/output-style-audit.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/output-style-audit.js +98 -0
- package/payload/platform/services/claude-session-manager/dist/output-style-audit.js.map +1 -0
- package/payload/platform/templates/output-styles/plain-assistant.md +50 -0
- package/payload/server/public/assets/routines-DN_yDtEj.js +2 -0
- package/payload/server/public/assets/routines-DN_yDtEj.js.br +0 -0
- package/payload/server/public/assets/routines-DN_yDtEj.js.gz +0 -0
- package/payload/server/public/routines.html +1 -1
- package/payload/server/server.js +36 -0
- package/payload/server/public/assets/routines-CWEuQ7Gl.js +0 -2
- package/payload/server/public/assets/routines-CWEuQ7Gl.js.br +0 -0
- package/payload/server/public/assets/routines-CWEuQ7Gl.js.gz +0 -0
|
@@ -41,6 +41,7 @@ test("empty target: creates settings.json with both the permissions and autoMode
|
|
|
41
41
|
assert.deepEqual(parsed, {
|
|
42
42
|
permissions: { defaultMode: "bypassPermissions", allow: [], deny: [] },
|
|
43
43
|
autoMode: autoModeFixture(),
|
|
44
|
+
outputStyle: "Plain Assistant",
|
|
44
45
|
});
|
|
45
46
|
// "$defaults" must lead both arrays so built-in guards stay inherited.
|
|
46
47
|
assert.equal(parsed.autoMode.environment[0], "$defaults");
|
|
@@ -114,6 +115,7 @@ test("idempotent: both blocks already correct triggers no write", () => {
|
|
|
114
115
|
model: "opus",
|
|
115
116
|
permissions: { defaultMode: "bypassPermissions", allow: [], deny: [] },
|
|
116
117
|
autoMode: autoModeFixture(),
|
|
118
|
+
outputStyle: "Plain Assistant",
|
|
117
119
|
}, null, 2));
|
|
118
120
|
const before = statSync(settingsPath).mtimeMs;
|
|
119
121
|
// Small busy-wait so a same-millisecond write would be detectable on
|
|
@@ -218,3 +220,55 @@ test("seeding over a wildcard-bearing file rewrites allow to [] and adds autoMod
|
|
|
218
220
|
rmSync(dir, { recursive: true, force: true });
|
|
219
221
|
}
|
|
220
222
|
});
|
|
223
|
+
// Task 2678 — the shipped output style. seedBypassPermissionsSettings also
|
|
224
|
+
// writes outputStyle="Plain Assistant" (the frontmatter name the CLI resolves
|
|
225
|
+
// against output-styles/plain-assistant.md), and the assertion requires it, so
|
|
226
|
+
// an install missing the key is rewritten on upgrade and a bad seed is caught.
|
|
227
|
+
test("fresh seed sets outputStyle to Plain Assistant", () => {
|
|
228
|
+
const dir = freshDir();
|
|
229
|
+
try {
|
|
230
|
+
seedBypassPermissionsSettings(dir);
|
|
231
|
+
const parsed = JSON.parse(readFileSync(join(dir, "settings.json"), "utf-8"));
|
|
232
|
+
assert.equal(parsed.outputStyle, "Plain Assistant");
|
|
233
|
+
}
|
|
234
|
+
finally {
|
|
235
|
+
rmSync(dir, { recursive: true, force: true });
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
test("upgrade: permissions+autoMode correct but no outputStyle rewrites, preserving other keys", () => {
|
|
239
|
+
const dir = freshDir();
|
|
240
|
+
try {
|
|
241
|
+
const p = join(dir, "settings.json");
|
|
242
|
+
writeFileSync(p, JSON.stringify({
|
|
243
|
+
model: "opus",
|
|
244
|
+
enabledPlugins: { "memory@claude-plugins-official": true },
|
|
245
|
+
permissions: { defaultMode: "bypassPermissions", allow: [], deny: [] },
|
|
246
|
+
autoMode: autoModeFixture(),
|
|
247
|
+
}, null, 2));
|
|
248
|
+
const result = seedBypassPermissionsSettings(dir);
|
|
249
|
+
assert.equal(result.action, "seeded", "missing outputStyle forces a rewrite");
|
|
250
|
+
const parsed = JSON.parse(readFileSync(p, "utf-8"));
|
|
251
|
+
assert.equal(parsed.model, "opus");
|
|
252
|
+
assert.deepEqual(parsed.enabledPlugins, { "memory@claude-plugins-official": true });
|
|
253
|
+
assert.deepEqual(parsed.permissions, { defaultMode: "bypassPermissions", allow: [], deny: [] });
|
|
254
|
+
assert.deepEqual(parsed.autoMode, autoModeFixture());
|
|
255
|
+
assert.equal(parsed.outputStyle, "Plain Assistant");
|
|
256
|
+
assert.equal(assertBypassPermissionsSeed(dir).status, "ok");
|
|
257
|
+
}
|
|
258
|
+
finally {
|
|
259
|
+
rmSync(dir, { recursive: true, force: true });
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
test("assert: correct permissions+autoMode but missing outputStyle reports missing", () => {
|
|
263
|
+
const dir = freshDir();
|
|
264
|
+
try {
|
|
265
|
+
writeFileSync(join(dir, "settings.json"), JSON.stringify({
|
|
266
|
+
permissions: { defaultMode: "bypassPermissions", allow: [], deny: [] },
|
|
267
|
+
autoMode: autoModeFixture(),
|
|
268
|
+
}));
|
|
269
|
+
assert.equal(assertBypassPermissionsSeed(dir).status, "missing");
|
|
270
|
+
}
|
|
271
|
+
finally {
|
|
272
|
+
rmSync(dir, { recursive: true, force: true });
|
|
273
|
+
}
|
|
274
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Task 2678 — the installer ships platform/templates/output-styles/plain-assistant.md
|
|
2
|
+
// and copies it into $CLAUDE_CONFIG_DIR/output-styles/ at install so the CLI can
|
|
3
|
+
// resolve the outputStyle="Plain Assistant" settings key to a real style file.
|
|
4
|
+
// This asserts the shipped template's frontmatter, the one contract the settings
|
|
5
|
+
// key depends on: the value written by permissions-seed must equal this name.
|
|
6
|
+
import test from "node:test";
|
|
7
|
+
import assert from "node:assert/strict";
|
|
8
|
+
import { readFileSync } from "node:fs";
|
|
9
|
+
import { fileURLToPath } from "node:url";
|
|
10
|
+
// Resolved from dist/__tests__/ up to the maxy-code root, then into
|
|
11
|
+
// platform/templates. Four levels: __tests__ -> dist -> create-maxy-code ->
|
|
12
|
+
// packages -> maxy-code. import.meta.url because the compiled test is an ES
|
|
13
|
+
// module (no __dirname).
|
|
14
|
+
const TEMPLATE = fileURLToPath(new URL("../../../../platform/templates/output-styles/plain-assistant.md", import.meta.url));
|
|
15
|
+
test("shipped style file frontmatter name is Plain Assistant", () => {
|
|
16
|
+
const md = readFileSync(TEMPLATE, "utf-8");
|
|
17
|
+
const fm = md.match(/^---\s*\n([\s\S]*?)\n---/);
|
|
18
|
+
assert.ok(fm, "frontmatter block present");
|
|
19
|
+
const name = fm[1].match(/^name:\s*(.+)$/m);
|
|
20
|
+
assert.ok(name, "name field present");
|
|
21
|
+
assert.equal(name[1].trim(), "Plain Assistant");
|
|
22
|
+
assert.match(fm[1], /keep-coding-instructions:\s*true/);
|
|
23
|
+
});
|
package/dist/index.js
CHANGED
|
@@ -3389,6 +3389,10 @@ function setupAccount() {
|
|
|
3389
3389
|
// templates. Runs on every install, so an upgrade removes the links an
|
|
3390
3390
|
// earlier install left behind.
|
|
3391
3391
|
clearBrandAgentRegistrations();
|
|
3392
|
+
// Task 2678 — copy the Plain Assistant output style into the config dir so
|
|
3393
|
+
// every spawned session resolves the outputStyle="Plain Assistant" key that
|
|
3394
|
+
// permissions-seed writes into settings.json.
|
|
3395
|
+
seedOutputStyle();
|
|
3392
3396
|
// install-time defaults. Stamp `account.json` with the
|
|
3393
3397
|
// brand's default plugin set + default outputStyle / thinkingView, and
|
|
3394
3398
|
// write a minimal admin SOUL.md. The agent boots into a working state
|
|
@@ -3404,6 +3408,26 @@ function setupAccount() {
|
|
|
3404
3408
|
console.log(" [install-defaults] SKIPPED reason=no-account-discovered");
|
|
3405
3409
|
}
|
|
3406
3410
|
}
|
|
3411
|
+
// Task 2678 — copy the Plain Assistant output style template into the
|
|
3412
|
+
// brand-scoped config dir so every spawned session (admin, public, specialist,
|
|
3413
|
+
// sub-account) resolves the outputStyle="Plain Assistant" key. Runs on every
|
|
3414
|
+
// install so an upgrade refreshes the file. Read from INSTALL_DIR like the
|
|
3415
|
+
// admin SOUL and public agent templates; the setupAccount phase guarantees the
|
|
3416
|
+
// platform tree is present.
|
|
3417
|
+
function seedOutputStyle() {
|
|
3418
|
+
const src = join(INSTALL_DIR, "platform/templates/output-styles/plain-assistant.md");
|
|
3419
|
+
const destDir = join(CLAUDE_CONFIG_DIR, "output-styles");
|
|
3420
|
+
const dest = join(destDir, "plain-assistant.md");
|
|
3421
|
+
if (!existsSync(src)) {
|
|
3422
|
+
console.error(` [install-output-style] file=missing-src src=${src}`);
|
|
3423
|
+
logFile(` [install-output-style] file=missing-src src=${src}`);
|
|
3424
|
+
return;
|
|
3425
|
+
}
|
|
3426
|
+
mkdirSync(destDir, { recursive: true });
|
|
3427
|
+
cpSync(src, dest);
|
|
3428
|
+
console.log(` [install-output-style] file=seeded name="Plain Assistant" dest=${dest}`);
|
|
3429
|
+
logFile(` [install-output-style] file=seeded name="Plain Assistant" dest=${dest}`);
|
|
3430
|
+
}
|
|
3407
3431
|
function writeInstallDefaults(accountId) {
|
|
3408
3432
|
const accountDir = join(INSTALL_DIR, "data/accounts", accountId);
|
|
3409
3433
|
const accountJsonPath = join(accountDir, "account.json");
|
package/dist/permissions-seed.js
CHANGED
|
@@ -38,6 +38,13 @@ export const BYPASS_PERMISSIONS_BLOCK = Object.freeze({
|
|
|
38
38
|
allow: [],
|
|
39
39
|
deny: [],
|
|
40
40
|
});
|
|
41
|
+
// Task 2678 — the shipped output style every spawned session resolves. This is
|
|
42
|
+
// the frontmatter `name:` in platform/templates/output-styles/plain-assistant.md;
|
|
43
|
+
// the CLI reads this settings.json key and resolves the style file by that name.
|
|
44
|
+
// Written here because this module is the single writer of the brand-scoped
|
|
45
|
+
// settings.json, so the key is seeded, gated for re-seed on upgrade, and
|
|
46
|
+
// asserted in one place.
|
|
47
|
+
export const OUTPUT_STYLE_NAME = "Plain Assistant";
|
|
41
48
|
// Task 739 — the auto-mode trust block. Each array leads with "$defaults" so
|
|
42
49
|
// the harness's built-in environment scope and allow rules are inherited, not
|
|
43
50
|
// replaced; the appended entries add this install's own Cloudflare surface on
|
|
@@ -113,7 +120,8 @@ export function seedBypassPermissionsSettings(configDir) {
|
|
|
113
120
|
}
|
|
114
121
|
const permissionsOk = isPermissionsCorrect(existing.permissions);
|
|
115
122
|
const autoModeOk = isAutoModeCorrect(existing.autoMode);
|
|
116
|
-
|
|
123
|
+
const outputStyleOk = existing.outputStyle === OUTPUT_STYLE_NAME;
|
|
124
|
+
if (permissionsOk && autoModeOk && outputStyleOk) {
|
|
117
125
|
return { action: "noop", autoMode: "present", path: settingsPath };
|
|
118
126
|
}
|
|
119
127
|
mkdirSync(dirname(settingsPath), { recursive: true });
|
|
@@ -121,6 +129,7 @@ export function seedBypassPermissionsSettings(configDir) {
|
|
|
121
129
|
...existing,
|
|
122
130
|
permissions: { ...BYPASS_PERMISSIONS_BLOCK, allow: [...BYPASS_PERMISSIONS_BLOCK.allow], deny: [] },
|
|
123
131
|
autoMode: freshAutoModeBlock(),
|
|
132
|
+
outputStyle: OUTPUT_STYLE_NAME,
|
|
124
133
|
};
|
|
125
134
|
const tmpPath = `${settingsPath}.task583.tmp`;
|
|
126
135
|
writeFileSync(tmpPath, JSON.stringify(merged, null, 2) + "\n");
|
|
@@ -141,7 +150,7 @@ export function assertBypassPermissionsSeed(configDir) {
|
|
|
141
150
|
if (!parsed || typeof parsed !== "object")
|
|
142
151
|
return { status: "missing", path: settingsPath };
|
|
143
152
|
const record = parsed;
|
|
144
|
-
return isPermissionsCorrect(record.permissions) && isAutoModeCorrect(record.autoMode)
|
|
153
|
+
return isPermissionsCorrect(record.permissions) && isAutoModeCorrect(record.autoMode) && record.outputStyle === OUTPUT_STYLE_NAME
|
|
145
154
|
? { status: "ok", path: settingsPath }
|
|
146
155
|
: { status: "missing", path: settingsPath };
|
|
147
156
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: platform-architecture
|
|
3
3
|
description: Use when grounding any documented-surface claim about what Real Agent ships — plugins, skills, specialists, install/deploy flows, internals. This is the install catalogue, not evidence of what is enabled on the current account. For install state on this account, call `capabilities-here`; for documented surface, cite the `Source:` URL inline.
|
|
4
|
-
content-hash: sha256:
|
|
4
|
+
content-hash: sha256:633f2b5af069596ddf124ae12595ce4c2058638ffb9cd179a0354cf469e08a5b
|
|
5
5
|
brand: realagent-code
|
|
6
6
|
product-name: Real Agent
|
|
7
7
|
---
|
|
@@ -2117,17 +2117,15 @@ Source: https://docs.getmaxy.com/settings.md
|
|
|
2117
2117
|
|
|
2118
2118
|
## Output Style
|
|
2119
2119
|
|
|
2120
|
-
|
|
2120
|
+
Every install ships the **Plain Assistant** style and makes it the active style for every agent, including any public or specialist agents. It reads as plain, warm, spoken English: lead with the answer, keep it short, no jargon. The style file lives at `$CLAUDE_CONFIG_DIR/output-styles/plain-assistant.md`, and the install's `settings.json` carries `"outputStyle": "Plain Assistant"`, which every spawned session inherits.
|
|
2121
2121
|
|
|
2122
|
-
|
|
2122
|
+
The `outputStyle` account setting below (`default` or `explanatory`) is a separate, legacy account-level value. It does not change the active Plain Assistant style.
|
|
2123
|
+
|
|
2124
|
+
| Account value | Description |
|
|
2123
2125
|
|-------|-----------|
|
|
2124
2126
|
| `default` | Concise, direct responses — gets to the point |
|
|
2125
2127
|
| `explanatory` | More detailed responses with educational context — explains reasoning and trade-offs |
|
|
2126
2128
|
|
|
2127
|
-
**Changing output style:** Tell Real Agent "Switch to explanatory mode" or "Use default output style."
|
|
2128
|
-
|
|
2129
|
-
Changes take effect on the next session. The current session continues with the existing style.
|
|
2130
|
-
|
|
2131
2129
|
## Effort Level
|
|
2132
2130
|
|
|
2133
2131
|
Controls how much work Real Agent puts into each task — specifically, how many steps it takes before stopping and checking with you.
|
|
@@ -9,6 +9,16 @@ Invoked by the admin agent directly.
|
|
|
9
9
|
|
|
10
10
|
This is the platform's release timeline, newest first. Each entry shows the date it shipped and the version it shipped in, so you can tell the operator how current their install is. To compare, read the installed version from `capabilities-here` and match it against the versions below. Keep answers high level and in plain English; this is a summary, not a full commit log.
|
|
11
11
|
|
|
12
|
+
## 2026-08-13 (0.1.599)
|
|
13
|
+
|
|
14
|
+
- A recurring routine that had nothing to report now stays silent instead of sending a "nothing to report" message. A routine set up without a check to skip an empty run now simply does nothing on that run, rather than waking the assistant to speak.
|
|
15
|
+
- The Routines page has a new History view: every routine's runs in one list, newest first, showing which routine fired and with what result, so you no longer have to open each routine to find out what sent a message.
|
|
16
|
+
|
|
17
|
+
## 2026-08-12 (0.1.598)
|
|
18
|
+
|
|
19
|
+
- Every assistant now writes in plain, direct English by default. The Plain Assistant style ships with the platform and is active for all of them, rather than being something each one had to be told.
|
|
20
|
+
- A draft email can be read back after it is written. Composing and editing worked, but nothing could retrieve the body, so a draft could not be checked before sending.
|
|
21
|
+
|
|
12
22
|
## 2026-08-11 (0.1.597)
|
|
13
23
|
|
|
14
24
|
- Telegram cards the assistant sends now show up on your dashboard and in the chat view, with the card's text and its buttons, instead of leaving a blank gap where the card was. A press now reads as the button's own label.
|
|
@@ -2,17 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
## Output Style
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Every install ships the **Plain Assistant** style and makes it the active style for every agent, including any public or specialist agents. It reads as plain, warm, spoken English: lead with the answer, keep it short, no jargon. The style file lives at `$CLAUDE_CONFIG_DIR/output-styles/plain-assistant.md`, and the install's `settings.json` carries `"outputStyle": "Plain Assistant"`, which every spawned session inherits.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
The `outputStyle` account setting below (`default` or `explanatory`) is a separate, legacy account-level value. It does not change the active Plain Assistant style.
|
|
8
|
+
|
|
9
|
+
| Account value | Description |
|
|
8
10
|
|-------|-----------|
|
|
9
11
|
| `default` | Concise, direct responses — gets to the point |
|
|
10
12
|
| `explanatory` | More detailed responses with educational context — explains reasoning and trade-offs |
|
|
11
13
|
|
|
12
|
-
**Changing output style:** Tell {{productName}} "Switch to explanatory mode" or "Use default output style."
|
|
13
|
-
|
|
14
|
-
Changes take effect on the next session. The current session continues with the existing style.
|
|
15
|
-
|
|
16
14
|
## Effort Level
|
|
17
15
|
|
|
18
16
|
Controls how much work {{productName}} puts into each task — specifically, how many steps it takes before stopping and checking with you.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "email",
|
|
3
|
-
"description": "Email — one or more dedicated email mailboxes per account, each addressable by a `mailbox` selector. Retrieval: email-graph-query for stored email-thread history as :ConversationArchive {source:'email'} with :Section chunks (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox previews (with best-effort per-archive section hints from the graph); email-fetch-body for the COMPLETE decoded body of one message (by uid or message_id) when a preview is not enough; email-fetch-attachment for the extracted TEXT of one attachment (PDF via pdftotext, text/* by decode) when data sits inside a file rather than the body. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset via the conversation-archive pipeline. Sending: email-send (new), email-reply (threaded — resolves the original via IMAP Message-ID search), email-draft (compose to the mailbox Drafts folder, unsent, for operator review; pass messageId for a threaded draft-reply), email-draft-edit (revise a stored draft, located by its Drafts UID or, when Gmail has renumbered it, its draft Message-ID), email-draft-send (dispatch a stored draft by Drafts UID, then remove it), email-draft-list (read the Drafts folder back and confirm what is actually in it — the only tool that can verify a draft's presence). Deleting: email-delete (move named UIDs to the mailbox Trash — recoverable, never an expunge; folder inbox/sent take UIDs from email-read/email-search, folder drafts takes them from email-draft-list and accepts a draftMessageId because a draft is renumbered on every edit). Config: email-provider-info (pre-password host + app-password lookup from an address alone), email-setup, email-signature-set (install the signature every email-draft then appends automatically — never hand-write a signature into a draft body), email-sending-identity-set (designate which attached mailbox this account sends from, so a send or draft that names no mailbox resolves it from the account instead of being refused), email-status, email-otp-extract.",
|
|
3
|
+
"description": "Email — one or more dedicated email mailboxes per account, each addressable by a `mailbox` selector. Retrieval: email-graph-query for stored email-thread history as :ConversationArchive {source:'email'} with :Section chunks (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox previews (with best-effort per-archive section hints from the graph); email-fetch-body for the COMPLETE decoded body of one message (by uid with folder inbox/sent/drafts — a draft is read with folder drafts and its UID from email-draft-list — or by message_id across inbox and sent) when a preview is not enough; email-fetch-attachment for the extracted TEXT of one attachment (PDF via pdftotext, text/* by decode) when data sits inside a file rather than the body. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset via the conversation-archive pipeline. Sending: email-send (new), email-reply (threaded — resolves the original via IMAP Message-ID search), email-draft (compose to the mailbox Drafts folder, unsent, for operator review; pass messageId for a threaded draft-reply), email-draft-edit (revise a stored draft, located by its Drafts UID or, when Gmail has renumbered it, its draft Message-ID), email-draft-send (dispatch a stored draft by Drafts UID, then remove it), email-draft-list (read the Drafts folder back and confirm what is actually in it — the only tool that can verify a draft's presence). Deleting: email-delete (move named UIDs to the mailbox Trash — recoverable, never an expunge; folder inbox/sent take UIDs from email-read/email-search, folder drafts takes them from email-draft-list and accepts a draftMessageId because a draft is renumbered on every edit). Config: email-provider-info (pre-password host + app-password lookup from an address alone), email-setup, email-signature-set (install the signature every email-draft then appends automatically — never hand-write a signature into a draft body), email-sending-identity-set (designate which attached mailbox this account sends from, so a send or draft that names no mailbox resolves it from the account instead of being refused), email-status, email-otp-extract.",
|
|
4
4
|
"version": "0.1.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Rubytech LLC"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: email
|
|
3
|
-
description: "Email — one or more dedicated email mailboxes per account, each addressable by a `mailbox` selector. Retrieval: email-graph-query for stored email-thread history as :ConversationArchive {source:'email'} with :Section chunks (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox previews (with best-effort per-archive section hints from the graph); email-fetch-body for the COMPLETE decoded body of one message (by uid or message_id) when a preview is not enough; email-fetch-attachment for the extracted TEXT of one attachment (PDF via pdftotext, text/* by decode) when data sits inside a file rather than the body. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset via the conversation-archive pipeline. Sending: email-send (new), email-reply (threaded — resolves the original via IMAP Message-ID search), email-draft (compose to the mailbox Drafts folder, unsent, for operator review; pass messageId for a threaded draft-reply), email-draft-edit (revise a stored draft, located by its Drafts UID or, when Gmail has renumbered it, its draft Message-ID), email-draft-send (dispatch a stored draft by Drafts UID, then remove it), email-draft-list (read the Drafts folder back and confirm what is actually in it — the only tool that can verify a draft's presence). Deleting: email-delete (move named UIDs to the mailbox Trash — recoverable, never an expunge; folder inbox/sent take UIDs from email-read/email-search, folder drafts takes them from email-draft-list and accepts a draftMessageId because a draft is renumbered on every edit). Config: email-provider-info (pre-password host + app-password lookup from an address alone), email-setup, email-signature-set (install the signature every email-draft then appends automatically — never hand-write a signature into a draft body), email-sending-identity-set (designate which attached mailbox this account sends from, so a send or draft that names no mailbox resolves it from the account instead of being refused), email-status, email-otp-extract."
|
|
3
|
+
description: "Email — one or more dedicated email mailboxes per account, each addressable by a `mailbox` selector. Retrieval: email-graph-query for stored email-thread history as :ConversationArchive {source:'email'} with :Section chunks (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox previews (with best-effort per-archive section hints from the graph); email-fetch-body for the COMPLETE decoded body of one message (by uid with folder inbox/sent/drafts — a draft is read with folder drafts and its UID from email-draft-list — or by message_id across inbox and sent) when a preview is not enough; email-fetch-attachment for the extracted TEXT of one attachment (PDF via pdftotext, text/* by decode) when data sits inside a file rather than the body. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset via the conversation-archive pipeline. Sending: email-send (new), email-reply (threaded — resolves the original via IMAP Message-ID search), email-draft (compose to the mailbox Drafts folder, unsent, for operator review; pass messageId for a threaded draft-reply), email-draft-edit (revise a stored draft, located by its Drafts UID or, when Gmail has renumbered it, its draft Message-ID), email-draft-send (dispatch a stored draft by Drafts UID, then remove it), email-draft-list (read the Drafts folder back and confirm what is actually in it — the only tool that can verify a draft's presence). Deleting: email-delete (move named UIDs to the mailbox Trash — recoverable, never an expunge; folder inbox/sent take UIDs from email-read/email-search, folder drafts takes them from email-draft-list and accepts a draftMessageId because a draft is renumbered on every edit). Config: email-provider-info (pre-password host + app-password lookup from an address alone), email-setup, email-signature-set (install the signature every email-draft then appends automatically — never hand-write a signature into a draft body), email-sending-identity-set (designate which attached mailbox this account sends from, so a send or draft that names no mailbox resolves it from the account instead of being refused), email-status, email-otp-extract."
|
|
4
4
|
tools:
|
|
5
5
|
- name: email-provider-info
|
|
6
6
|
publicAllowlist: false
|
|
@@ -122,7 +122,7 @@ Manages the agent's own dedicated email account — IMAP for reading, SMTP for s
|
|
|
122
122
|
- **Search inbox:** `email-search` — live IMAP search by sender, subject, body keyword, date range. Same per-archive hint and attachment footer as `email-read`.
|
|
123
123
|
- **Delete (move to Trash):** `email-delete` — move the messages named by `uids` (from a prior `email-read`/`email-search`, scoped to a source `folder` of `inbox`, `sent`, or `drafts`) into the mailbox's Trash folder. **Recoverable, never an expunge** — the message leaves the inbox and permanent removal is left to the operator's own mail client or the provider's Trash auto-purge; this tool never permanently deletes. Trash is resolved per provider: the `\Trash` special-use folder if advertised, else the first existing of `Trash`, `[Gmail]/Trash`, `Deleted Items`, `Deleted Messages`. `Junk` is never treated as Trash. A mailbox with no resolvable Trash yields a typed error and moves nothing — there is no silent expunge fallback. A `uid` that is already gone is counted not-moved without failing the rest; the result reports `Moved N of M message(s) to <Trash>`. It deletes only the UIDs you name, never by search criteria. Deleting a draft uses `folder: "drafts"` with a UID from `email-draft-list`; because a draft is renumbered every time it is edited, pass `draftMessageId` as well and the tool relocates by the draft's own Message-ID when the UID no longer resolves. The Drafts folder is resolved by the account's configured `draftsFolder` override when set, else by the `\Drafts` special-use flag.
|
|
124
124
|
- **Read one attachment's text:** `email-fetch-attachment` — the extracted text of a single inbox attachment, addressed by `uid` plus an optional `index` (1-based, matching the `Attachments (N): …` footer order) or `filename`. With one attachment and no selector, that attachment is read; with more than one and no selector, or an ambiguous filename, the call is refused with a numbered listing. `application/pdf` is extracted via `pdftotext`, `text/*` by decode; any other type reports that it cannot be extracted, and a PDF with no text layer reports it is a scanned image (no OCR), so "no data in the attachment" never reads the same as "the attachment could not be read". Bytes are downloaded once through the 25 MB-capped fetch path; inbox only. A `text/calendar` part counts as an attachment whatever its disposition and whatever its name — a named one keeps its name, an unnamed one is listed as `invite-<part>.ics` — so a meeting invite whose message body is empty is still readable. A calendar part inside a forwarded `message/rfc822` wrapper is not listed (IMAP gives it the wrapper's part number, which fetches the whole encapsulated message). Use this when actionable data (a meeting date, an amount) may sit inside a file rather than the email body.
|
|
125
|
-
- **Read one whole message:** `email-fetch-body` — the COMPLETE decoded body of a single message addressed by `uid` (with optional `folder`) or `message_id` (resolved across inbox and sent). No 500-char preview cap. Downloads the full RFC822 source and decodes it with `mailparser`, so every MIME shape — flat text, single-part HTML, `multipart/alternative`, and nested `multipart/related`/`multipart/mixed` (Outlook's inline-image house style) — yields a body; the preview tools above intentionally stay preview-only. Use this when the operator wants to read or act on a message's actual content.
|
|
125
|
+
- **Read one whole message:** `email-fetch-body` — the COMPLETE decoded body of a single message addressed by `uid` (with optional `folder` of `inbox`, `sent`, or `drafts`) or `message_id` (resolved across inbox and sent, never drafts). No 500-char preview cap. Downloads the full RFC822 source and decodes it with `mailparser`, so every MIME shape — flat text, single-part HTML, `multipart/alternative`, and nested `multipart/related`/`multipart/mixed` (Outlook's inline-image house style) — yields a body; the preview tools above intentionally stay preview-only. To read a draft body, pass `folder: "drafts"` with the draft's UID from `email-draft-list`, plus `draftMessageId` when the UID may be stale (a draft is renumbered on every edit). Use this when the operator wants to read or act on a message's actual content.
|
|
126
126
|
- **Send:** `email-send` — new outbound email. Pass `cc`/`bcc` (each an array of email addresses) to copy or blind-copy recipients — CC appears in the message header, BCC recipients receive the message without appearing in any header. Pass `attachments` (absolute file paths under the account directory, ≤25 MB each) to attach files as SMTP attachments; an invalid path fails the send with no email dispatched. The success message names the CC recipients and reports the BCC count without naming them.
|
|
127
127
|
- **Reply:** `email-reply` — threaded reply to an existing email by `messageId`. Resolves the original envelope via IMAP `SEARCH HEADER Message-ID` (INBOX then `\Sent`), so threading works for any message still present on the server even if the graph never ingested it. Supports `replyAll`, `cc`/`bcc`, and `attachments` (same path rules as `email-send`). Explicit `cc`/`bcc` are added in addition to whatever `replyAll` places in `To`, passed through as given (no overlap de-duplication against `To`).
|
|
128
128
|
- **Compose to Drafts:** `email-draft` — builds the same MIME message as `email-send` (same `cc`/`bcc`/`attachments` rules; unlike a dispatched send, the stored draft keeps its `Bcc:` header, because the draft bytes are the only recipient carrier) but APPENDs it to the mailbox's `\Drafts` special-use folder with the `\Draft` flag instead of dispatching it. Nothing is sent. Pass `messageId` to compose a threaded draft-reply: the parent is resolved via IMAP and the draft carries `In-Reply-To`/`References` plus a `Re:` subject from the parent, exactly like `email-reply` (the `subject` argument is then optional and ignored). The success message names the Drafts folder, the APPEND UID, and the draft's own `Message-ID` (`draft id`) so a saved draft is never indistinguishable from a silent no-op and a later edit has a stable handle. Fails naming the mailbox when the server advertises no `\Drafts` special-use folder — no fallback folder is picked, unless a per-account `draftsFolder` override is configured (via `email-setup`), which is honoured before special-use discovery for hosts whose client-visible Drafts is a differently-named mailbox. Use when the operator wants to review and send by hand.
|
|
@@ -39,7 +39,7 @@ vi.mock("imapflow", () => ({
|
|
|
39
39
|
return mockClient;
|
|
40
40
|
},
|
|
41
41
|
}));
|
|
42
|
-
import { appendDraft, resolveDraftsFolder, resetDraftsCensusForTest, replaceDraft, fetchDraftSource, deleteDraft, fileDraftToSent, } from "../lib/imap.js";
|
|
42
|
+
import { appendDraft, resolveDraftsFolder, resetDraftsCensusForTest, replaceDraft, fetchDraftSource, fetchFullBody, deleteDraft, fileDraftToSent, } from "../lib/imap.js";
|
|
43
43
|
const config = {
|
|
44
44
|
email: "agent@example.com",
|
|
45
45
|
imapHost: "imap.example.com",
|
|
@@ -490,4 +490,48 @@ describe("Task 1821 — fileDraftToSent", () => {
|
|
|
490
490
|
expect(mockClient.messageDelete).not.toHaveBeenCalled();
|
|
491
491
|
});
|
|
492
492
|
});
|
|
493
|
+
describe("Task 2679 — fetchFullBody reads a draft body", () => {
|
|
494
|
+
const draftsList = [
|
|
495
|
+
{ path: "INBOX" },
|
|
496
|
+
{ path: "[Gmail]/Drafts", specialUse: "\\Drafts" },
|
|
497
|
+
];
|
|
498
|
+
const rawDraft = Buffer.from("From: agent@example.com\r\nSubject: Draft one\r\nMessage-ID: <d1@x>\r\n\r\nHello from drafts.\r\n");
|
|
499
|
+
const sourceMsg = {
|
|
500
|
+
uid: 3,
|
|
501
|
+
source: rawDraft,
|
|
502
|
+
envelope: { messageId: "<d1@x>", subject: "Draft one", from: [{ address: "agent@example.com" }] },
|
|
503
|
+
};
|
|
504
|
+
beforeEach(() => {
|
|
505
|
+
resetDraftsCensusForTest();
|
|
506
|
+
mockClient.fetchOne.mockReset();
|
|
507
|
+
mockClient.list.mockReset();
|
|
508
|
+
mockClient.search.mockReset();
|
|
509
|
+
mockClient.list.mockResolvedValue(draftsList);
|
|
510
|
+
});
|
|
511
|
+
it("folder:drafts with a live UID returns the decoded body via resolveDraftsFolder", async () => {
|
|
512
|
+
mockClient.fetchOne
|
|
513
|
+
.mockResolvedValueOnce({ uid: 3 }) // fast-path probe hits
|
|
514
|
+
.mockResolvedValueOnce(sourceMsg); // source fetch
|
|
515
|
+
const out = await fetchFullBody(config, "pw", { uid: 3, folder: "drafts" });
|
|
516
|
+
expect(out?.body).toContain("Hello from drafts.");
|
|
517
|
+
expect(out?.uid).toBe(3);
|
|
518
|
+
expect(mockClient.search).not.toHaveBeenCalled();
|
|
519
|
+
});
|
|
520
|
+
it("folder:drafts with a stale UID + draftMessageId relocates by Message-ID", async () => {
|
|
521
|
+
mockClient.fetchOne
|
|
522
|
+
.mockResolvedValueOnce(undefined) // fast-path probe misses
|
|
523
|
+
.mockResolvedValueOnce({ ...sourceMsg, uid: 9 }); // source fetch of relocated uid
|
|
524
|
+
mockClient.search.mockResolvedValue([9]);
|
|
525
|
+
const out = await fetchFullBody(config, "pw", { uid: 3, folder: "drafts", draftMessageId: "d1@x" });
|
|
526
|
+
expect(out?.body).toContain("Hello from drafts.");
|
|
527
|
+
expect(out?.uid).toBe(9);
|
|
528
|
+
expect(mockClient.search).toHaveBeenCalledWith({ header: { "message-id": "<d1@x>" } }, { uid: true });
|
|
529
|
+
});
|
|
530
|
+
it("folder:drafts with neither a live UID nor a matching draftMessageId returns null", async () => {
|
|
531
|
+
mockClient.fetchOne.mockResolvedValueOnce(undefined); // probe misses
|
|
532
|
+
mockClient.search.mockResolvedValue([]); // relocate misses
|
|
533
|
+
const out = await fetchFullBody(config, "pw", { uid: 3, folder: "drafts", draftMessageId: "gone@x" });
|
|
534
|
+
expect(out).toBeNull();
|
|
535
|
+
});
|
|
536
|
+
});
|
|
493
537
|
//# sourceMappingURL=imap-drafts.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imap-drafts.test.js","sourceRoot":"","sources":["../../src/__tests__/imap-drafts.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"imap-drafts.test.js","sourceRoot":"","sources":["../../src/__tests__/imap-drafts.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -239,11 +239,12 @@ eagerTool(server, "email-read", "List recent messages (from, subject, date — n
|
|
|
239
239
|
// ===================================================================
|
|
240
240
|
// email-fetch-body — retrieve the complete decoded body of one message
|
|
241
241
|
// ===================================================================
|
|
242
|
-
eagerTool(server, "email-fetch-body", "Retrieve the COMPLETE decoded body of one message by uid (with optional folder) or message_id. No 500-char cap and every MIME shape (including Outlook nested multipart) is decoded. Use this when you must read or act on an email's full content; email-read/email-search/email-fetch return previews only.", {
|
|
242
|
+
eagerTool(server, "email-fetch-body", "Retrieve the COMPLETE decoded body of one message by uid (with optional folder) or message_id. No 500-char cap and every MIME shape (including Outlook nested multipart) is decoded. Use this when you must read or act on an email's full content; email-read/email-search/email-fetch return previews only. To read a draft body, pass folder 'drafts' with the draft's UID from email-draft-list (add draftMessageId if the UID may be stale); the message_id argument resolves inbox and sent only, not drafts.", {
|
|
243
243
|
...MAILBOX_ARG,
|
|
244
|
-
uid: z.coerce.number().int().optional().describe("IMAP UID of the message (from email-read/email-search
|
|
245
|
-
message_id: z.string().optional().describe("Message-ID of the message (resolved across inbox and sent). Provide uid or message_id."),
|
|
246
|
-
folder: z.enum(["inbox", "sent"]).optional().describe("Folder to read the uid from (default: inbox). Ignored when message_id is given."),
|
|
244
|
+
uid: z.coerce.number().int().optional().describe("IMAP UID of the message (from email-read/email-search, or from email-draft-list when folder is 'drafts'). Provide uid or message_id."),
|
|
245
|
+
message_id: z.string().optional().describe("Message-ID of the message (resolved across inbox and sent, never drafts). Provide uid or message_id."),
|
|
246
|
+
folder: z.enum(["inbox", "sent", "drafts"]).optional().describe("Folder to read the uid from (default: inbox). Use 'drafts' with a UID from email-draft-list to read a draft body. Ignored when message_id is given."),
|
|
247
|
+
draftMessageId: z.string().optional().describe("The draft id from email-draft-list, used to relocate a draft whose UID changed after an edit. Only consulted when folder is 'drafts' and the supplied uid no longer resolves."),
|
|
247
248
|
}, async (params) => {
|
|
248
249
|
if (!accountId)
|
|
249
250
|
return refuseNoAccount("email-fetch-body");
|