@rubytech/create-realagent-code 0.1.30 → 0.1.31
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/package.json +1 -1
- package/payload/platform/lib/persistent-components/dist/index.d.ts +11 -12
- package/payload/platform/lib/persistent-components/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/persistent-components/dist/index.js +11 -12
- package/payload/platform/lib/persistent-components/dist/index.js.map +1 -1
- package/payload/platform/lib/persistent-components/src/index.ts +11 -12
- package/payload/platform/neo4j/schema.cypher +6 -3
- package/payload/platform/plugins/admin/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/admin/PLUGIN.md +1 -3
- package/payload/platform/plugins/admin/hooks/onboarding-skill-drift.sh +5 -4
- package/payload/platform/plugins/admin/mcp/dist/index.js +15 -50
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/admin/skills/access-manager/references/operations.md +7 -7
- package/payload/platform/plugins/admin/skills/public-agent-manager/SKILL.md +1 -1
- package/payload/platform/plugins/admin/skills/stream-log-review/references/analysis-patterns.md +2 -2
- package/payload/platform/plugins/anthropic/skills/get-api-key/SKILL.md +2 -4
- package/payload/platform/plugins/email/references/email-reference.md +3 -7
- package/payload/platform/plugins/teaching/PLUGIN.md +2 -1
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js +1 -1
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/whatsapp/skills/connect-whatsapp/SKILL.md +1 -1
- package/payload/platform/plugins/whatsapp/skills/manage-whatsapp-config/SKILL.md +2 -8
- package/payload/platform/plugins/writer-craft/PLUGIN.md +2 -1
- package/payload/platform/scripts/component-knowledgedoc-backfill.ts +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +45 -31
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/index.js +11 -0
- package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-observer.d.ts +30 -0
- package/payload/platform/services/claude-session-manager/dist/jsonl-observer.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/jsonl-observer.js +175 -0
- package/payload/platform/services/claude-session-manager/dist/jsonl-observer.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/jsonl-path.d.ts +4 -2
- package/payload/platform/services/claude-session-manager/dist/jsonl-path.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-path.js +15 -22
- package/payload/platform/services/claude-session-manager/dist/jsonl-path.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +13 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +26 -4
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/session-store.d.ts +9 -0
- package/payload/platform/services/claude-session-manager/dist/session-store.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/session-store.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +10 -7
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js +51 -28
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
- package/payload/platform/services/claude-session-manager/scripts/onboarding-advance.sh +61 -0
- package/payload/platform/services/claude-session-manager/scripts/onboarding-prompts/step-0.md +5 -0
- package/payload/platform/services/claude-session-manager/scripts/onboarding-prompts/step-1.md +3 -0
- package/payload/platform/services/claude-session-manager/scripts/onboarding-prompts/step-2.md +3 -0
- package/payload/platform/services/claude-session-manager/scripts/onboarding-prompts/step-3.md +8 -0
- package/payload/platform/services/claude-session-manager/scripts/onboarding-prompts/step-4.md +9 -0
- package/payload/platform/services/claude-session-manager/scripts/onboarding-prompts/step-5.md +3 -0
- package/payload/platform/services/claude-session-manager/scripts/onboarding-prompts/step-6.md +5 -0
- package/payload/platform/services/claude-session-manager/scripts/onboarding-prompts/step-7.md +5 -0
- package/payload/platform/services/claude-session-manager/scripts/onboarding-prompts/step-8.md +5 -0
- package/payload/platform/services/claude-session-manager/scripts/onboarding-prompts/step-9.md +8 -0
- package/payload/platform/services/claude-session-manager/scripts/onboarding-prompts/step-complete.md +3 -0
- package/payload/platform/services/claude-session-manager/scripts/onboarding-prompts/step-unreachable.md +3 -0
- package/payload/platform/templates/agents/public/IDENTITY.md +1 -1
- package/payload/platform/templates/specialists/agents/content-producer.md +3 -3
- package/payload/platform/templates/specialists/agents/personal-assistant.md +2 -2
- package/payload/premium-plugins/teaching/PLUGIN.md +2 -1
- package/payload/premium-plugins/writer-craft/PLUGIN.md +2 -1
- package/payload/server/public/assets/{admin-CDvF5de6.js → admin-Bk2eXMFD.js} +24 -24
- package/payload/server/public/assets/{data-K_kS__sL.js → data-ll_OwVNL.js} +1 -1
- package/payload/server/public/assets/{graph-DeEigyO_.js → graph-DJ2VWioQ.js} +1 -1
- package/payload/server/public/assets/graph-labels-qhU8xZDH.js +1 -0
- package/payload/server/public/assets/{page-qSH972X0.js → page-Dk73ZO1F.js} +1 -1
- package/payload/server/public/assets/{page-B_rpjIRr.js → page-DsYsdBUK.js} +1 -1
- package/payload/server/public/data.html +3 -3
- package/payload/server/public/graph.html +3 -3
- package/payload/server/public/index.html +4 -4
- package/payload/server/server.js +121 -46
- package/payload/platform/plugins/admin/references/contextual-ui.md +0 -109
- package/payload/platform/scripts/__tests__/admin-persist-audit.test.ts +0 -182
- package/payload/server/public/assets/graph-labels-C7I5QvNv.js +0 -1
|
@@ -12,7 +12,18 @@
|
|
|
12
12
|
// caller supplies an `onboarding`
|
|
13
13
|
// payload AND the resolved step
|
|
14
14
|
// is anything other than 9
|
|
15
|
-
// (complete).
|
|
15
|
+
// (complete). State-only as of
|
|
16
|
+
// Task 066: the block carries
|
|
17
|
+
// currentStep / resumeStep
|
|
18
|
+
// attributes plus the script-
|
|
19
|
+
// resolved resume-prompt content
|
|
20
|
+
// quoted verbatim. No prose
|
|
21
|
+
// imperatives — the onboarding
|
|
22
|
+
// state machine is advanced by
|
|
23
|
+
// scripts/onboarding-advance.sh
|
|
24
|
+
// BEFORE the session is spawned,
|
|
25
|
+
// and the chat surface presents
|
|
26
|
+
// the script output verbatim.
|
|
16
27
|
//
|
|
17
28
|
// The block is the only doctrine surface that survives Claude Code SDK
|
|
18
29
|
// upgrades. Per Task 037, no skill carries a copy; one edit here changes the
|
|
@@ -38,7 +49,7 @@ export function composeAppendSystemPrompt(host, onboarding) {
|
|
|
38
49
|
'</attachment-ceiling>',
|
|
39
50
|
];
|
|
40
51
|
if (onboarding) {
|
|
41
|
-
const rendered = renderOnboardingBlock(onboarding.step);
|
|
52
|
+
const rendered = renderOnboardingBlock(onboarding.step, onboarding.resumePrompt);
|
|
42
53
|
if (rendered)
|
|
43
54
|
sections.push(rendered.block);
|
|
44
55
|
}
|
|
@@ -46,41 +57,53 @@ export function composeAppendSystemPrompt(host, onboarding) {
|
|
|
46
57
|
}
|
|
47
58
|
/** Render the onboarding-state section for a given step. Returns null when
|
|
48
59
|
* the agent should see no onboarding block (step === 9 = complete). The
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
|
|
60
|
+
* body is state-only per Task 066: currentStep + resumeStep attributes
|
|
61
|
+
* plus an optional `<resume-prompt-shown>` child carrying the verbatim
|
|
62
|
+
* output of the banner-click script run, so the agent has context for
|
|
63
|
+
* the operator's next reply without any per-tool imperative. */
|
|
64
|
+
export function renderOnboardingBlock(step, resumePrompt) {
|
|
53
65
|
if (step === 9)
|
|
54
66
|
return null;
|
|
55
67
|
if (step === null) {
|
|
56
|
-
return { block: renderUnreachableBlock(), label: 'graph-unreachable' };
|
|
68
|
+
return { block: renderUnreachableBlock(resumePrompt), label: 'graph-unreachable' };
|
|
57
69
|
}
|
|
58
70
|
if (step < 0) {
|
|
59
|
-
return { block: renderIncompleteBlock(-1), label: 'missing' };
|
|
71
|
+
return { block: renderIncompleteBlock(-1, resumePrompt), label: 'missing' };
|
|
60
72
|
}
|
|
61
|
-
return { block: renderIncompleteBlock(step), label: String(step) };
|
|
73
|
+
return { block: renderIncompleteBlock(step, resumePrompt), label: String(step) };
|
|
62
74
|
}
|
|
63
|
-
function renderIncompleteBlock(currentStep) {
|
|
75
|
+
function renderIncompleteBlock(currentStep, resumePrompt) {
|
|
64
76
|
const stepAttr = currentStep < 0 ? 'missing' : String(currentStep);
|
|
65
77
|
const resumeStep = currentStep < 0 ? 0 : currentStep + 1;
|
|
66
|
-
// Task
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
// Task 066 — state-only block. No prose imperatives, no named tools.
|
|
79
|
+
// The onboarding state machine is advanced by
|
|
80
|
+
// scripts/onboarding-advance.sh BEFORE the session is spawned; the
|
|
81
|
+
// chat surface presents that script's stdout verbatim. If the caller
|
|
82
|
+
// supplied `resumePrompt`, it is quoted here as `<resume-prompt-shown>`
|
|
83
|
+
// so the agent has the operator-visible context for the first reply
|
|
84
|
+
// without needing to derive it from the SKILL.md from scratch.
|
|
85
|
+
const lines = [`<onboarding-state currentStep="${stepAttr}" resumeStep="${resumeStep}">`];
|
|
86
|
+
if (resumePrompt && resumePrompt.trim()) {
|
|
87
|
+
lines.push('<resume-prompt-shown>');
|
|
88
|
+
lines.push(resumePrompt.trimEnd());
|
|
89
|
+
lines.push('</resume-prompt-shown>');
|
|
90
|
+
}
|
|
91
|
+
lines.push(`</onboarding-state>`);
|
|
92
|
+
return lines.join('\n');
|
|
78
93
|
}
|
|
79
|
-
function renderUnreachableBlock() {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
94
|
+
function renderUnreachableBlock(resumePrompt) {
|
|
95
|
+
// Task 066 — state-only, no imperatives. Agent reads
|
|
96
|
+
// `graphUnreachable="true"` plus the optional resume-prompt-shown
|
|
97
|
+
// content; how to relay the situation to the operator is the agent's
|
|
98
|
+
// judgement, anchored on the IDENTITY contract rather than a
|
|
99
|
+
// per-session directive.
|
|
100
|
+
const lines = [`<onboarding-state currentStep="unknown" graphUnreachable="true">`];
|
|
101
|
+
if (resumePrompt && resumePrompt.trim()) {
|
|
102
|
+
lines.push('<resume-prompt-shown>');
|
|
103
|
+
lines.push(resumePrompt.trimEnd());
|
|
104
|
+
lines.push('</resume-prompt-shown>');
|
|
105
|
+
}
|
|
106
|
+
lines.push(`</onboarding-state>`);
|
|
107
|
+
return lines.join('\n');
|
|
85
108
|
}
|
|
86
109
|
//# sourceMappingURL=system-prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,4EAA4E;AAC5E,EAAE;AACF,2EAA2E;AAC3E,oEAAoE;AACpE,mDAAmD;AACnD,6EAA6E;AAC7E,4EAA4E;AAC5E,4DAA4D;AAC5D,+CAA+C;AAC/C,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,sEAAsE;AACtE,
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# onboarding-advance.sh — deterministic resume-prompt resolver. Task 066.
|
|
3
|
+
#
|
|
4
|
+
# Maps a current onboarding step (read from Neo4j by the route that invoked
|
|
5
|
+
# this script) to the operator-visible markdown prompt for the next
|
|
6
|
+
# incomplete step. Emits one stderr log line, writes the prompt to stdout,
|
|
7
|
+
# exits 0 on success.
|
|
8
|
+
#
|
|
9
|
+
# Contract:
|
|
10
|
+
# $1 accountId UUID, used in the stderr log line
|
|
11
|
+
# $2 currentStep integer (-1, 0..9), null sentinel, or 'null'
|
|
12
|
+
#
|
|
13
|
+
# Output:
|
|
14
|
+
# stdout: operator-visible markdown prompt (verbatim from prompts/step-N.md)
|
|
15
|
+
# stderr: single line "[onboarding-state] script-advance step=<N> sender=<id>"
|
|
16
|
+
# exit 0
|
|
17
|
+
#
|
|
18
|
+
# The route at platform/ui/server/routes/admin/claude-sessions.ts persists
|
|
19
|
+
# stdout as the first assistant-role message of the new session, then
|
|
20
|
+
# spawns the PTY without an initialMessage. The chat surface presents the
|
|
21
|
+
# script's output verbatim; the agent's first LLM turn fires only after the
|
|
22
|
+
# operator types their next reply, by which point onboarding context lives
|
|
23
|
+
# in the conversation history.
|
|
24
|
+
|
|
25
|
+
set -euo pipefail
|
|
26
|
+
|
|
27
|
+
ACCOUNT_ID="${1:?accountId required}"
|
|
28
|
+
CURRENT_STEP="${2:?currentStep required}"
|
|
29
|
+
|
|
30
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
31
|
+
PROMPT_DIR="$SCRIPT_DIR/onboarding-prompts"
|
|
32
|
+
|
|
33
|
+
case "$CURRENT_STEP" in
|
|
34
|
+
null|unreachable)
|
|
35
|
+
RESUME="unreachable"
|
|
36
|
+
;;
|
|
37
|
+
-1)
|
|
38
|
+
RESUME="0"
|
|
39
|
+
;;
|
|
40
|
+
9)
|
|
41
|
+
RESUME="complete"
|
|
42
|
+
;;
|
|
43
|
+
0|1|2|3|4|5|6|7|8)
|
|
44
|
+
RESUME="$((CURRENT_STEP + 1))"
|
|
45
|
+
;;
|
|
46
|
+
*)
|
|
47
|
+
printf '[onboarding-state] script-advance step=invalid sender=%s\n' "$ACCOUNT_ID" >&2
|
|
48
|
+
echo "Onboarding step value is not in the expected range. Tell the operator the state is corrupt and stop." >&2
|
|
49
|
+
exit 64
|
|
50
|
+
;;
|
|
51
|
+
esac
|
|
52
|
+
|
|
53
|
+
PROMPT_FILE="$PROMPT_DIR/step-$RESUME.md"
|
|
54
|
+
if [ ! -f "$PROMPT_FILE" ]; then
|
|
55
|
+
printf '[onboarding-state] script-advance step=missing-template sender=%s\n' "$ACCOUNT_ID" >&2
|
|
56
|
+
echo "Resume-prompt template missing for step $RESUME." >&2
|
|
57
|
+
exit 65
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
cat "$PROMPT_FILE"
|
|
61
|
+
printf '[onboarding-state] script-advance step=%s sender=%s\n' "$RESUME" "$ACCOUNT_ID" >&2
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Onboarding is at step 0 — we have not started yet.
|
|
2
|
+
|
|
3
|
+
The first step is plugin selection. The other steps cover WiFi, output style, thinking view, timezone, admin personality, optional Cloudflare remote access, optional public-agent API key, and persona / business profile.
|
|
4
|
+
|
|
5
|
+
Reply `start` to begin, or ask any question about what onboarding will cover.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
Resuming onboarding at step 1 — plugin selection.
|
|
2
|
+
|
|
3
|
+
Reply `list` to see the plugins available on this brand, grouped by category, with their descriptions and which are locked, recommended, or optional. Reply with the plugin names you want to enable (or `skip` to enable none) once the list is in view.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
Resuming onboarding at step 2 — WiFi setup.
|
|
2
|
+
|
|
3
|
+
Reply `check wifi` to see whether this device has WiFi hardware and whether it is already connected. If it is, you can keep the current network or switch. If it is not connected, you can scan visible networks and connect, or skip and stay on ethernet.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Resuming onboarding at step 3 — output style.
|
|
2
|
+
|
|
3
|
+
Two choices:
|
|
4
|
+
|
|
5
|
+
1. `default` — efficient and task-oriented; concise responses without extra explanation.
|
|
6
|
+
2. `explanatory` — adds educational insights between steps; useful when you want to understand what the agent is doing.
|
|
7
|
+
|
|
8
|
+
Reply with the number or the value.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Resuming onboarding at step 4 — thinking view.
|
|
2
|
+
|
|
3
|
+
Three choices:
|
|
4
|
+
|
|
5
|
+
1. `default` — thinking visible: reasoning expanded, tool details collapsed.
|
|
6
|
+
2. `expanded` — everything visible: all reasoning and tool details expanded.
|
|
7
|
+
3. `collapsed` — responses only: all reasoning and tool details collapsed.
|
|
8
|
+
|
|
9
|
+
Reply with the number or the value.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Resuming onboarding at step 6 — admin agent personality.
|
|
2
|
+
|
|
3
|
+
This step writes the agent's tone, working style, and language preferences to `agents/admin/SOUL.md`. Business identity (services, FAQs, addresses) belongs in step 9 — keep this step to personality.
|
|
4
|
+
|
|
5
|
+
Reply with how you want the agent to sound (formal, casual, warm, blunt) and how you want it to collaborate (proactive vs. wait-for-instruction, terse vs. explanatory). The agent will compose a draft, show it to you, and only save once you approve.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Resuming onboarding at step 7 — Cloudflare remote access.
|
|
2
|
+
|
|
3
|
+
This step connects the platform to a custom domain so you and your customers can reach it from anywhere. Without it, the platform stays local-network-only — WhatsApp, Telegram, and email still work without a tunnel.
|
|
4
|
+
|
|
5
|
+
Reply `yes` to set it up now (you will need a Cloudflare account and a domain), or `skip` to leave remote access for later.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Resuming onboarding at step 8 — Anthropic API key.
|
|
2
|
+
|
|
3
|
+
The public-facing agent uses the Anthropic API directly, so visitors can chat with the business through the public hostname. Without a key, visitors cannot chat. This step is optional.
|
|
4
|
+
|
|
5
|
+
Reply `yes` to set it up now, or `skip` to leave it for later. If you set it up, you will sign in to the Anthropic Console in a browser; the agent does not handle credentials.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Resuming onboarding at step 9 — operator persona and profile bootstrap.
|
|
2
|
+
|
|
3
|
+
Two persona modes:
|
|
4
|
+
|
|
5
|
+
1. `personal` — just for me. I am not setting this up for a business; the platform is my personal operations agent.
|
|
6
|
+
2. `business-owner` — for my business. I am the owner / operator and the platform is the operations agent for my company.
|
|
7
|
+
|
|
8
|
+
Reply with the number, the value, or the label.
|
|
@@ -53,4 +53,4 @@ When you need to clarify intent before acting, follow two rules.
|
|
|
53
53
|
|
|
54
54
|
Run `skill-load skillName=plainly` on the first text-producing turn of every session. Apply the AI-tells strip and the recursive plain-English rule to every reply you return to the visitor before emitting it — this is a prime-directive prerogative that overrides every other formatting preference. Customers are the highest-stakes audience this platform serves; plain English is not a polish step, it is the contract.
|
|
55
55
|
|
|
56
|
-
The skill applies to prose returned to the visitor
|
|
56
|
+
The skill applies to every prose payload returned to the visitor. It does NOT apply to structured tool arguments (IDs, option values, schema field names) — those are agent-to-machine payloads.
|
|
@@ -3,7 +3,7 @@ name: content-producer
|
|
|
3
3
|
description: "Visual production and static-site hosting. Reads from the populated graph to produce visual artifacts (image generation, PDF rendering, component delivery) and hosts already-prepared static sites by extracting attached archives via unzip-attachment then placing the tree under <accountDir>/sites/<slug>/ via publish-site. Delegate for: generating images, saving rendered pages as PDF, or any 'host this website' / 'publish this site' / 'put this online' intent carrying an HTML+assets archive. Not document ingestion: graph ingestion of any kind routes to specialists:database-operator. Static-site zips are extracted to disk for publication, never written to the graph."
|
|
4
4
|
summary: "Produces visual output from your graph: generates images, renders pages to PDF, and hosts static websites you upload as a zip."
|
|
5
5
|
model: claude-sonnet-4-6
|
|
6
|
-
tools: Bash, mcp__memory__memory-search, mcp__replicate__image-generate, mcp__plugin_playwright_playwright__browser_navigate, mcp__plugin_playwright_playwright__browser_snapshot, mcp__plugin_playwright_playwright__browser_take_screenshot, mcp__plugin_playwright_playwright__browser_pdf_save,
|
|
6
|
+
tools: Bash, mcp__memory__memory-search, mcp__replicate__image-generate, mcp__plugin_playwright_playwright__browser_navigate, mcp__plugin_playwright_playwright__browser_snapshot, mcp__plugin_playwright_playwright__browser_take_screenshot, mcp__plugin_playwright_playwright__browser_pdf_save, mcp__admin__file-attach, mcp__admin__plugin-read, mcp__admin__public-hostname
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Content Producer
|
|
@@ -28,7 +28,7 @@ Three models via `image-generate`. Pick by output need: `recraft-v4` for design-
|
|
|
28
28
|
|
|
29
29
|
## PDF output
|
|
30
30
|
|
|
31
|
-
Generate the HTML,
|
|
31
|
+
Generate the HTML, navigate the Playwright browser to it, and capture with `browser_pdf_save`. For A4 print, load `skill-load skillName=a4-print-documents`: the skill carries the print-CSS constraints (page margins, glassmorphism fallback, page-break rules, dark-background colour-adjust). Do not paraphrase those rules; load and follow.
|
|
32
32
|
|
|
33
33
|
`file://` URLs are rewritten transparently by the `playwright-file-guard` PreToolUse hook. Pass them directly to `browser_navigate`.
|
|
34
34
|
|
|
@@ -40,7 +40,7 @@ Confirm the slug with the operator before publishing. The slug is one or more `/
|
|
|
40
40
|
|
|
41
41
|
## File delivery
|
|
42
42
|
|
|
43
|
-
Use `file-attach` to make generated files downloadable
|
|
43
|
+
Use `file-attach` to make generated files downloadable. The tool returns the operator-visible metadata (filename, size, attachment URL); quote that metadata back in plain chat so the operator can see the download.
|
|
44
44
|
|
|
45
45
|
## Optional capabilities
|
|
46
46
|
|
|
@@ -3,7 +3,7 @@ name: personal-assistant
|
|
|
3
3
|
description: "Your personal assistant. Scheduling, platform administration, messaging channels (Telegram, WhatsApp, email, Outlook), system health, Cloudflare tunnel setup, and browser automation. Delegate when a task involves managing your calendar, configuring the platform, operating messaging channels, setting up a tunnel or domain, or completing interactive browser tasks."
|
|
4
4
|
summary: "Handles the operational tasks you'd give a personal assistant: scheduling meetings, managing your platform settings, connecting messaging channels, and completing browser-based tasks on your behalf."
|
|
5
5
|
model: claude-sonnet-4-6
|
|
6
|
-
tools: mcp__admin__system-status, mcp__admin__brand-settings, mcp__admin__account-manage, mcp__admin__account-update, mcp__admin__logs-read, mcp__admin__plugin-read, mcp__admin__api-key-store, mcp__admin__api-key-verify,
|
|
6
|
+
tools: mcp__admin__system-status, mcp__admin__brand-settings, mcp__admin__account-manage, mcp__admin__account-update, mcp__admin__logs-read, mcp__admin__plugin-read, mcp__admin__api-key-store, mcp__admin__api-key-verify, mcp__admin__file-attach, mcp__admin__wifi, mcp__contacts__contact-create, mcp__contacts__contact-lookup, mcp__contacts__contact-update, mcp__contacts__contact-delete, mcp__contacts__contact-list, mcp__contacts__contact-export, mcp__contacts__contact-erase, mcp__contacts__group-create, mcp__contacts__group-manage, mcp__telegram__message, mcp__telegram__message-history, mcp__telegram__telegram-webhook-register, mcp__whatsapp__whatsapp-login-start, mcp__whatsapp__whatsapp-login-wait, mcp__whatsapp__whatsapp-status, mcp__whatsapp__whatsapp-disconnect, mcp__whatsapp__whatsapp-send, mcp__whatsapp__whatsapp-send-document, mcp__whatsapp__whatsapp-config, mcp__whatsapp__whatsapp-activity, mcp__whatsapp__whatsapp-conversations, mcp__whatsapp__whatsapp-messages, mcp__whatsapp__whatsapp-conversation-graph-state, mcp__whatsapp__whatsapp-group-info, mcp__email__email-setup, mcp__email__email-read, mcp__email__email-send, mcp__email__email-reply, mcp__email__email-search, mcp__email__email-graph-query, mcp__email__email-otp-extract, mcp__email__email-status, mcp__email__email-auto-respond-config, mcp__outlook__outlook-account-register, mcp__outlook__outlook-mail-list, mcp__outlook__outlook-mail-search, mcp__outlook__outlook-calendar-list, mcp__outlook__outlook-calendar-event, mcp__outlook__outlook-contacts-list, mcp__outlook__outlook-mailbox-info, mcp__scheduling__schedule-event, mcp__scheduling__schedule-list, mcp__scheduling__schedule-get, mcp__scheduling__schedule-update, mcp__scheduling__schedule-cancel, mcp__scheduling__schedule-export-ics, mcp__scheduling__schedule-import-ics, mcp__scheduling__time-resolve, mcp__memory__memory-search, mcp__memory__profile-update, mcp__plugin_playwright_playwright__browser_navigate, mcp__plugin_playwright_playwright__browser_navigate_back, mcp__plugin_playwright_playwright__browser_snapshot, mcp__plugin_playwright_playwright__browser_click, mcp__plugin_playwright_playwright__browser_fill, mcp__plugin_playwright_playwright__browser_fill_form, mcp__plugin_playwright_playwright__browser_type, mcp__plugin_playwright_playwright__browser_press_key, mcp__plugin_playwright_playwright__browser_hover, mcp__plugin_playwright_playwright__browser_select_option, mcp__plugin_playwright_playwright__browser_wait_for, mcp__plugin_playwright_playwright__browser_handle_dialog, mcp__plugin_playwright_playwright__browser_evaluate, mcp__plugin_playwright_playwright__browser_console_messages, mcp__plugin_playwright_playwright__browser_resize, mcp__plugin_playwright_playwright__browser_tabs, mcp__plugin_playwright_playwright__browser_close
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Personal Assistant
|
|
@@ -40,7 +40,7 @@ Each domain has a small set of tools and, where it exists, a skill that drives t
|
|
|
40
40
|
|
|
41
41
|
**Browser is visible.** Playwright is rendered to the operator's VNC viewer. They see every navigation, every fill, every click. After `browser_navigate`, call `browser_tabs` with `action: "select"` on the current tab index so the VNC viewer shows the page you just opened. Prefer `browser_snapshot` (accessibility tree with `ref` IDs) over `browser_take_screenshot`; take a screenshot only when you need to verify layout, colour, image, or canvas content. Use `browser_fill_form` over repeated `browser_fill`. Use `browser_evaluate` for state checks. Check `browser_console_messages` when something behaves unexpectedly. Dismiss cookie consent before the main task. Report CAPTCHA or bot detection as a blocker; do not try to solve it.
|
|
42
42
|
|
|
43
|
-
**Anthropic API key acquisition is cookie-based.**
|
|
43
|
+
**Anthropic API key acquisition is cookie-based.** Tell the operator the Anthropic Console will appear in the VNC browser already mounted in the chat (no extra tool call). Credits must exist before key creation; keys on zero-balance accounts are permanently rejected. The operator signs in themselves. Never fill credentials yourself. After creation, store via `api-key-store` and verify via `api-key-verify`.
|
|
44
44
|
|
|
45
45
|
## Optional capabilities
|
|
46
46
|
|
|
@@ -40,7 +40,8 @@ The user wants to:
|
|
|
40
40
|
No MCP server. Skills operate via existing platform tools:
|
|
41
41
|
- `memory-search` — retrieve subject content from the knowledge base
|
|
42
42
|
- `image_generate` — create visual aids, diagrams, and infographics
|
|
43
|
-
|
|
43
|
+
|
|
44
|
+
Structured choices are presented as numbered lists in plain chat — the platform has no inline-UI component primitive on the admin / native-CC surface.
|
|
44
45
|
|
|
45
46
|
## References
|
|
46
47
|
|
|
@@ -66,7 +66,8 @@ The manuscript-reviewer agent operates in its own context window with file tools
|
|
|
66
66
|
|
|
67
67
|
No MCP server. Skills operate via existing platform tools:
|
|
68
68
|
- `memory-search` — retrieve writing-related content from the knowledge base
|
|
69
|
-
|
|
69
|
+
|
|
70
|
+
Structured choices are presented as numbered lists in plain chat — the platform has no inline-UI component primitive on the admin / native-CC surface.
|
|
70
71
|
|
|
71
72
|
## References
|
|
72
73
|
|