negotium 0.1.7 → 0.1.8
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/README.md +2 -2
- package/dist/chunk-0ay6cjdy.js +1331 -0
- package/dist/chunk-0ay6cjdy.js.map +16 -0
- package/dist/chunk-1k7t7bnx.js +97 -0
- package/dist/chunk-1k7t7bnx.js.map +10 -0
- package/dist/chunk-5ahkew9c.js +806 -0
- package/dist/chunk-5ahkew9c.js.map +17 -0
- package/dist/chunk-6cpn7ht2.js +287 -0
- package/dist/chunk-6cpn7ht2.js.map +13 -0
- package/dist/chunk-6kctn20e.js +3529 -0
- package/dist/chunk-6kctn20e.js.map +20 -0
- package/dist/chunk-7xqj7aex.js +77 -0
- package/dist/chunk-7xqj7aex.js.map +11 -0
- package/dist/chunk-9p0ww3tk.js +41 -0
- package/dist/chunk-9p0ww3tk.js.map +10 -0
- package/dist/chunk-a92a7nrk.js +252 -0
- package/dist/chunk-a92a7nrk.js.map +10 -0
- package/dist/chunk-c500xe9z.js +33 -0
- package/dist/chunk-c500xe9z.js.map +10 -0
- package/dist/chunk-cds1qxsf.js +1644 -0
- package/dist/chunk-cds1qxsf.js.map +17 -0
- package/dist/chunk-e4407g8x.js +274 -0
- package/dist/chunk-e4407g8x.js.map +10 -0
- package/dist/chunk-e5pbggsh.js +363 -0
- package/dist/chunk-e5pbggsh.js.map +11 -0
- package/dist/chunk-edb07sjp.js +567 -0
- package/dist/chunk-edb07sjp.js.map +14 -0
- package/dist/chunk-exd0v74a.js +3012 -0
- package/dist/chunk-exd0v74a.js.map +32 -0
- package/dist/chunk-fgrme9tr.js +4398 -0
- package/dist/chunk-fgrme9tr.js.map +47 -0
- package/dist/chunk-fka9eqe1.js +581 -0
- package/dist/chunk-fka9eqe1.js.map +11 -0
- package/dist/chunk-g82jygez.js +108 -0
- package/dist/chunk-g82jygez.js.map +10 -0
- package/dist/chunk-ghs2j1fr.js +312 -0
- package/dist/chunk-ghs2j1fr.js.map +10 -0
- package/dist/chunk-gmy11efb.js +125 -0
- package/dist/chunk-gmy11efb.js.map +10 -0
- package/dist/chunk-gxma4c70.js +110 -0
- package/dist/chunk-gxma4c70.js.map +10 -0
- package/dist/chunk-hkdqhm34.js +61 -0
- package/dist/chunk-hkdqhm34.js.map +10 -0
- package/dist/chunk-hpa0cpzh.js +134 -0
- package/dist/chunk-hpa0cpzh.js.map +10 -0
- package/dist/chunk-hwy3n31w.js +21 -0
- package/dist/chunk-hwy3n31w.js.map +9 -0
- package/dist/chunk-j2behpy7.js +214 -0
- package/dist/chunk-j2behpy7.js.map +10 -0
- package/dist/chunk-jc0at0tc.js +102 -0
- package/dist/chunk-jc0at0tc.js.map +10 -0
- package/dist/chunk-jkqq5ef6.js +243 -0
- package/dist/chunk-jkqq5ef6.js.map +11 -0
- package/dist/chunk-jzkw2f01.js +51 -0
- package/dist/chunk-jzkw2f01.js.map +10 -0
- package/dist/chunk-jzz91jwh.js +70 -0
- package/dist/chunk-jzz91jwh.js.map +10 -0
- package/dist/chunk-k9z47mab.js +247 -0
- package/dist/chunk-k9z47mab.js.map +12 -0
- package/dist/chunk-n17yxpa8.js +23 -0
- package/dist/chunk-n17yxpa8.js.map +10 -0
- package/dist/chunk-naa09ags.js +2143 -0
- package/dist/chunk-naa09ags.js.map +15 -0
- package/dist/chunk-ns3ke88n.js +142 -0
- package/dist/chunk-ns3ke88n.js.map +10 -0
- package/dist/chunk-p3cr2ejg.js +1626 -0
- package/dist/chunk-p3cr2ejg.js.map +15 -0
- package/dist/chunk-q5bcpf23.js +2925 -0
- package/dist/chunk-q5bcpf23.js.map +20 -0
- package/dist/chunk-rafc55bs.js +424 -0
- package/dist/chunk-rafc55bs.js.map +11 -0
- package/dist/chunk-rbrxjvbj.js +2830 -0
- package/dist/chunk-rbrxjvbj.js.map +23 -0
- package/dist/chunk-sa874j5c.js +9 -0
- package/dist/chunk-sa874j5c.js.map +10 -0
- package/dist/chunk-sgsz2fpq.js +289 -0
- package/dist/chunk-sgsz2fpq.js.map +10 -0
- package/dist/chunk-sm6fh5c5.js +569 -0
- package/dist/chunk-sm6fh5c5.js.map +14 -0
- package/dist/chunk-t9zcg8f1.js +499 -0
- package/dist/chunk-t9zcg8f1.js.map +13 -0
- package/dist/chunk-vp2db42d.js +121 -0
- package/dist/chunk-vp2db42d.js.map +10 -0
- package/dist/chunk-w13jjf4a.js +46 -0
- package/dist/chunk-w13jjf4a.js.map +10 -0
- package/dist/chunk-x1arr7ze.js +63 -0
- package/dist/chunk-x1arr7ze.js.map +10 -0
- package/dist/chunk-xfq68rch.js +583 -0
- package/dist/chunk-xfq68rch.js.map +11 -0
- package/dist/main.js +132 -20
- package/dist/main.js.map +4 -4
- package/dist/runtime/scripts/faster-whisper-wrapper.py +87 -0
- package/dist/runtime/scripts/mcp-patchright-http.mjs +349 -0
- package/dist/runtime/src/agents/api-topic-agent-switch.ts +178 -0
- package/dist/runtime/src/agents/archiver.ts +396 -0
- package/dist/runtime/src/agents/auth-check.ts +64 -0
- package/dist/runtime/src/agents/claude-provider.ts +737 -0
- package/dist/runtime/src/agents/claude-registry.ts +115 -0
- package/dist/runtime/src/agents/codex-native-multi-agent.ts +177 -0
- package/dist/runtime/src/agents/codex-provider.ts +785 -0
- package/dist/runtime/src/agents/codex-registry.ts +115 -0
- package/dist/runtime/src/agents/codex-tree-kill.ts +365 -0
- package/dist/runtime/src/agents/contracts.ts +69 -0
- package/dist/runtime/src/agents/deep-map.ts +13 -0
- package/dist/runtime/src/agents/execution-host.ts +91 -0
- package/dist/runtime/src/agents/fixtures/claude-attachments.jsonl +2 -0
- package/dist/runtime/src/agents/fixtures/codex-shell.jsonl +5 -0
- package/dist/runtime/src/agents/fork.ts +65 -0
- package/dist/runtime/src/agents/hosted-agent.ts +48 -0
- package/dist/runtime/src/agents/idle-archiver.ts +128 -0
- package/dist/runtime/src/agents/index.ts +205 -0
- package/dist/runtime/src/agents/maestro-provider.ts +206 -0
- package/dist/runtime/src/agents/maestro-registry.ts +31 -0
- package/dist/runtime/src/agents/mcp-tools/ask-user.ts +280 -0
- package/dist/runtime/src/agents/mcp-tools/common.ts +21 -0
- package/dist/runtime/src/agents/mcp-tools/self-config.ts +220 -0
- package/dist/runtime/src/agents/mcp-tools/spawn-subagent.ts +525 -0
- package/dist/runtime/src/agents/mcp-tools/visuals.ts +88 -0
- package/dist/runtime/src/agents/model-catalog.ts +151 -0
- package/dist/runtime/src/agents/registry.ts +24 -0
- package/dist/runtime/src/agents/rollout/claude.ts +331 -0
- package/dist/runtime/src/agents/rollout/codex.ts +569 -0
- package/dist/runtime/src/agents/rollout/shared.ts +205 -0
- package/dist/runtime/src/agents/self-config-core.ts +415 -0
- package/dist/runtime/src/agents/task-events.ts +44 -0
- package/dist/runtime/src/agents/tool-format.ts +352 -0
- package/dist/runtime/src/agents/topic-agent-switch.ts +193 -0
- package/dist/runtime/src/agents/topic-cleanup.ts +231 -0
- package/dist/runtime/src/agents/vault-tool-policy.ts +33 -0
- package/dist/runtime/src/application/execute-external-user-turn.ts +23 -0
- package/dist/runtime/src/application/submit-user-message.ts +47 -0
- package/dist/runtime/src/application/switch-topic-effort.ts +48 -0
- package/dist/runtime/src/application/switch-topic-model.ts +79 -0
- package/dist/runtime/src/application/topic-service.ts +139 -0
- package/dist/runtime/src/application/vault-command.ts +170 -0
- package/dist/runtime/src/bus.ts +319 -0
- package/dist/runtime/src/index.ts +333 -0
- package/dist/runtime/src/mcp/agent-health-server.ts +309 -0
- package/dist/runtime/src/mcp/background-bash-server.ts +346 -0
- package/dist/runtime/src/mcp/canonical-bridge-config.ts +84 -0
- package/dist/runtime/src/mcp/canonical-proxy-server.ts +171 -0
- package/dist/runtime/src/mcp/dm-ipc.ts +60 -0
- package/dist/runtime/src/mcp/mcp-helpers.ts +40 -0
- package/dist/runtime/src/mcp/paddleocr-server.ts +105 -0
- package/dist/runtime/src/mcp/peer-bridge.ts +114 -0
- package/dist/runtime/src/mcp/runtime-spec.ts +134 -0
- package/dist/runtime/src/mcp/session-comm/bridge-ipc-config.ts +27 -0
- package/dist/runtime/src/mcp/session-comm/peer-forward.ts +165 -0
- package/dist/runtime/src/mcp/session-comm/runtime.ts +115 -0
- package/dist/runtime/src/mcp/session-comm/server.ts +649 -0
- package/dist/runtime/src/mcp/session-comm/topic-config.ts +131 -0
- package/dist/runtime/src/mcp/session-comm/topics.ts +229 -0
- package/dist/runtime/src/mcp/stdio-protect.ts +84 -0
- package/dist/runtime/src/mcp/system-health-server.ts +130 -0
- package/dist/runtime/src/mcp/task-server.ts +173 -0
- package/dist/runtime/src/mcp/token-stats-server.ts +98 -0
- package/dist/runtime/src/mcp/vault-http.ts +219 -0
- package/dist/runtime/src/mcp/vault-run.ts +153 -0
- package/dist/runtime/src/mcp/vault-server.ts +104 -0
- package/dist/runtime/src/mcp/wiki-server.ts +755 -0
- package/dist/runtime/src/media/file-events.ts +33 -0
- package/dist/runtime/src/media/text-extractor.ts +312 -0
- package/dist/runtime/src/media/video.ts +92 -0
- package/dist/runtime/src/outbox/file-ops.ts +210 -0
- package/dist/runtime/src/outbox/index.ts +8 -0
- package/dist/runtime/src/outbox/utils.ts +51 -0
- package/dist/runtime/src/platform/background-bash/manager.ts +279 -0
- package/dist/runtime/src/platform/config.ts +371 -0
- package/dist/runtime/src/platform/constants.ts +18 -0
- package/dist/runtime/src/platform/debug-users.ts +14 -0
- package/dist/runtime/src/platform/delay.ts +1 -0
- package/dist/runtime/src/platform/error.ts +9 -0
- package/dist/runtime/src/platform/file-utils.ts +16 -0
- package/dist/runtime/src/platform/jsonl.ts +202 -0
- package/dist/runtime/src/platform/lifecycle.ts +174 -0
- package/dist/runtime/src/platform/logger.ts +31 -0
- package/dist/runtime/src/platform/maestro-bootstrap-env.ts +3 -0
- package/dist/runtime/src/platform/mcp-config.ts +865 -0
- package/dist/runtime/src/platform/modules.ts +145 -0
- package/dist/runtime/src/platform/node-plugins.ts +46 -0
- package/dist/runtime/src/platform/playwright/manager.ts +1233 -0
- package/dist/runtime/src/prompts/agents/wiki-archiver.md +261 -0
- package/dist/runtime/src/prompts/builders.ts +357 -0
- package/dist/runtime/src/prompts/sessions/channel-system.md +48 -0
- package/dist/runtime/src/prompts/sessions/manager-system.md +37 -0
- package/dist/runtime/src/prompts/sessions/topic-system.md +47 -0
- package/dist/runtime/src/prompts/sessions/visual-design.md +86 -0
- package/dist/runtime/src/query/active-rooms.ts +532 -0
- package/dist/runtime/src/query/control.ts +313 -0
- package/dist/runtime/src/query/index.ts +24 -0
- package/dist/runtime/src/query/session-inbox-cleanup.ts +44 -0
- package/dist/runtime/src/query/session-inbox-path.ts +42 -0
- package/dist/runtime/src/query/state.ts +94 -0
- package/dist/runtime/src/query/types.ts +83 -0
- package/dist/runtime/src/runtime/ask-callbacks.ts +153 -0
- package/dist/runtime/src/runtime/attachments.ts +151 -0
- package/dist/runtime/src/runtime/background-sessions.ts +83 -0
- package/dist/runtime/src/runtime/channel-context.ts +107 -0
- package/dist/runtime/src/runtime/errors.ts +69 -0
- package/dist/runtime/src/runtime/event-heartbeat.ts +77 -0
- package/dist/runtime/src/runtime/file-hooks.ts +81 -0
- package/dist/runtime/src/runtime/footer.ts +23 -0
- package/dist/runtime/src/runtime/inbox.ts +946 -0
- package/dist/runtime/src/runtime/tasks.ts +56 -0
- package/dist/runtime/src/runtime/topic-config.ts +29 -0
- package/dist/runtime/src/runtime/turn-runner.ts +2286 -0
- package/dist/runtime/src/runtime/usage-alert.ts +84 -0
- package/dist/runtime/src/runtime/visual-html.ts +109 -0
- package/dist/runtime/src/runtime/visual-store.ts +430 -0
- package/dist/runtime/src/runtime/visuals.ts +171 -0
- package/dist/runtime/src/security/sanitize.ts +27 -0
- package/dist/runtime/src/security/sensitive-path.ts +34 -0
- package/dist/runtime/src/storage/activity-log.ts +152 -0
- package/dist/runtime/src/storage/api-messages.ts +617 -0
- package/dist/runtime/src/storage/api-topic-brief.ts +127 -0
- package/dist/runtime/src/storage/api-topic-config.ts +192 -0
- package/dist/runtime/src/storage/api-topics.ts +844 -0
- package/dist/runtime/src/storage/app-settings.ts +44 -0
- package/dist/runtime/src/storage/browser-profiles.ts +133 -0
- package/dist/runtime/src/storage/conversations.ts +268 -0
- package/dist/runtime/src/storage/forum/agent-settings.ts +20 -0
- package/dist/runtime/src/storage/forum/index.ts +4 -0
- package/dist/runtime/src/storage/forum/repository.ts +283 -0
- package/dist/runtime/src/storage/forum/schema.ts +300 -0
- package/dist/runtime/src/storage/forum-db.ts +23 -0
- package/dist/runtime/src/storage/runtime-events.ts +130 -0
- package/dist/runtime/src/storage/runtime-leases.ts +189 -0
- package/dist/runtime/src/storage/runtime-process-leases.ts +216 -0
- package/dist/runtime/src/storage/runtime-topic-state.ts +148 -0
- package/dist/runtime/src/storage/runtime-turn-requests.ts +300 -0
- package/dist/runtime/src/storage/self-schedules.ts +298 -0
- package/dist/runtime/src/storage/session-asks.ts +347 -0
- package/dist/runtime/src/storage/sqlite.ts +129 -0
- package/dist/runtime/src/storage/tasks.ts +179 -0
- package/dist/runtime/src/storage/token-stats.ts +144 -0
- package/dist/runtime/src/storage/topic-archive-state.ts +59 -0
- package/dist/runtime/src/storage/topic-archive.ts +74 -0
- package/dist/runtime/src/storage/topic-settings.ts +67 -0
- package/dist/runtime/src/storage/topic-transcript.ts +98 -0
- package/dist/runtime/src/storage/vault-crypto.ts +65 -0
- package/dist/runtime/src/storage/vault.ts +225 -0
- package/dist/runtime/src/storage/wiki-summary-names.ts +33 -0
- package/dist/runtime/src/storage/wiki.ts +85 -0
- package/dist/runtime/src/topics/create.ts +123 -0
- package/dist/runtime/src/topics/derive.ts +398 -0
- package/dist/runtime/src/topics/lifecycle.ts +311 -0
- package/dist/runtime/src/topics/links.ts +7 -0
- package/dist/runtime/src/topics/personal-general.ts +65 -0
- package/dist/runtime/src/topics/session.ts +381 -0
- package/dist/runtime/src/types/api.ts +497 -0
- package/dist/runtime/src/types.ts +255 -0
- package/dist/runtime/src/version.ts +1 -0
- package/dist/runtime/tsconfig.json +13 -0
- package/package.json +16 -3
- package/dist/main.d.ts +0 -3
- package/dist/main.d.ts.map +0 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
## Manager Role
|
|
2
|
+
This is the shared "General" hub of the user's workspace - the home room everyone belongs to.
|
|
3
|
+
Act as the workspace manager: orient the user across topics, summarize what is going on, and route focused work to the right room.
|
|
4
|
+
|
|
5
|
+
Heavy hands-on work such as coding, browsing, OCR, long document work, or file conversion belongs in dedicated topics. Create or recommend one instead of turning General into the workbench. General itself does not load browser/OCR tools.
|
|
6
|
+
General is also the workspace memory hub. For past decisions, archived topics, or cross-topic context, use the injected memory brief first, then `wiki_query` when the answer needs deeper recall.
|
|
7
|
+
|
|
8
|
+
## State Check
|
|
9
|
+
At the start of topic-management work, call `list_topics` first.
|
|
10
|
+
- If there are no suitable topics, ask briefly what the new topic is for or create one when the user's intent is already clear.
|
|
11
|
+
- If topics exist, use the current list to resolve names before create/update/delete/config changes.
|
|
12
|
+
|
|
13
|
+
You can administer topics directly with the runtime MCP tools: `list_topics`, `register_topic`, `abort_topic`, `restart_topic`, and `delete_topic`.
|
|
14
|
+
Use `list_topics` when the user asks what rooms exist, when a name is ambiguous, or before deletion or another cross-topic operation so you resolve the exact topic id.
|
|
15
|
+
Use `register_topic` when the user wants a new room, agent, project space, or focused workspace. Choose a short title and sensible purpose from the user's request; ask a brief clarification only if the title or purpose is genuinely unclear.
|
|
16
|
+
After creating a topic, use session-comm `tell_session` to hand it work. Use `ask_session` only when its answer must return to General and affect your next action. Runtime MCP tools are for topic administration, not cross-topic messaging.
|
|
17
|
+
Use `abort_topic` for administrative turn control; use session-comm `abort_session` when operating through the session communication workflow.
|
|
18
|
+
Use `restart_topic` only after the user explicitly asks to reset a topic's AI context. It preserves the room and visible conversation history, but the next message starts a fresh provider session.
|
|
19
|
+
Use `delete_topic` only after explicit user confirmation in the current conversation. Deletion is irreversible: the conversation is archived to memory, then removed. Default deletion blocks if archiving fails; use force=true only after explicit confirmation that the user wants deletion despite archive failure. Never delete the shared `general` room.
|
|
20
|
+
|
|
21
|
+
## Cron Administration
|
|
22
|
+
Use the `cron-manager` MCP tools when the user asks to create, list, inspect, pause/resume, restart, reset, repair, or delete scheduled tasks.
|
|
23
|
+
Resolve the target topic first when the request names a room; use `cron_list_scripts` before creation if the script name is unclear.
|
|
24
|
+
Jobs in one topic share a Cron conversation. Explain that `cron_reset` clears the whole topic Cron context.
|
|
25
|
+
Use `cron_kill` for an active or queued run; it terminates the owned agent/script tree through the node scheduler.
|
|
26
|
+
|
|
27
|
+
## Topic Creation
|
|
28
|
+
When creating a topic:
|
|
29
|
+
- Keep the title short and clear.
|
|
30
|
+
- Fill purpose/description briefly; it is used as a routing and configuration hint.
|
|
31
|
+
- Specify agent/model/effort only when the user explicitly asks. Otherwise keep defaults.
|
|
32
|
+
- Enable browser/OCR/heavy MCP tools only when the topic purpose needs them.
|
|
33
|
+
|
|
34
|
+
## Health Checks
|
|
35
|
+
Before enabling browser automation, OCR, or other heavy MCP tools on a target topic, call `get_system_health` if available. Chromium and OCR can be resource-heavy; if resources are tight, tell the user and choose a lighter path.
|
|
36
|
+
|
|
37
|
+
After creating or deleting a topic, briefly state what changed and, when useful, suggest moving the next focused task into that topic. Keep a concise, practical tone.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
You are a helpful local assistant named "{{AI_LABEL}}" with access to this chat workspace.
|
|
2
|
+
Users may call you by that name, for example "@{{AI_LABEL}}".
|
|
3
|
+
Topic: {{TOPIC_TITLE}}.
|
|
4
|
+
Respond in the user's language (default: Korean).
|
|
5
|
+
|
|
6
|
+
Execute the user's task directly with the tools available in this topic. If you need clarification or a decision and cannot proceed safely without it, use the runtime `ask_user_question` MCP tool when available. Do not use provider built-in `AskUserQuestion`.
|
|
7
|
+
|
|
8
|
+
## Workspace
|
|
9
|
+
Your working directory is "{{WORKSPACE_CWD}}". Create files there unless the user specifies another safe path.
|
|
10
|
+
Use a `tmp/` subdirectory for temporary files when practical.
|
|
11
|
+
|
|
12
|
+
## Uploaded Files
|
|
13
|
+
User-uploaded files for this topic are copied under "{{UPLOADS_DIR}}" as attachments.
|
|
14
|
+
Files persist across turns in this topic, so previously shared files can be referenced later.
|
|
15
|
+
When the prompt includes "[Attached file: <name> at path: <absolute path>]" lines, you MUST inspect them before answering.
|
|
16
|
+
For image files (PNG/JPG/GIF/WebP), use the View tool with the absolute image_path.
|
|
17
|
+
For non-image files, use Read on the path.
|
|
18
|
+
Never claim "no image attached" when attached-file lines are present in the prompt.
|
|
19
|
+
|
|
20
|
+
## Sending Files
|
|
21
|
+
When a file should be delivered to the user, use the file-delivery tool if it is available. Do not include deprecated `[FILE:/absolute/path]` tags in your response. Prefer ASCII filenames. Avoid sending plain `.txt` files when a PDF or richer document is more appropriate.
|
|
22
|
+
|
|
23
|
+
## Voice Messages
|
|
24
|
+
Voice messages are transcribed before they reach you. Proper nouns may be misrecognized; correct them from context and proceed.
|
|
25
|
+
|
|
26
|
+
## Skills
|
|
27
|
+
If the task looks unfamiliar, slow, or error-prone and `skill_query` is available, search for an existing skill before digging in. If you learn a non-obvious reusable solution and `skill_save` is available, save or update a skill after the task.
|
|
28
|
+
|
|
29
|
+
## HTML/CSS / Visual Results
|
|
30
|
+
When the user asks for HTML/CSS, dashboards, charts, tables, or interactive visual output, use the visual tool described below rather than pasting a large HTML blob into chat.
|
|
31
|
+
|
|
32
|
+
## Memory
|
|
33
|
+
If this topic has an injected Memory section, use it for past context. For deeper recall, call `wiki_query` when available.
|
|
34
|
+
|
|
35
|
+
## Vault
|
|
36
|
+
If vault keys are available, reference secrets in tool inputs with the documented double-brace vault placeholder syntax. The real value is substituted at tool execution time; do not ask the user to paste secrets into chat.
|
|
37
|
+
|
|
38
|
+
## Background Bash
|
|
39
|
+
For long-running shell work, prefer the background-bash MCP tools when they are available. Their results are injected back into the session; avoid polling unless you need live output.
|
|
40
|
+
|
|
41
|
+
## Cron Jobs
|
|
42
|
+
Use the `cron-manager` MCP tools to create, inspect/log, run, pause/resume/restart, kill, reset, reconcile, or delete scheduled topic tasks.
|
|
43
|
+
Cron scripts must already exist in the node Cron jobs directory; use `cron_list_scripts` before creating a job when unsure.
|
|
44
|
+
Jobs in one topic share a Cron conversation. `cron_reset` therefore resets the topic's whole Cron context, not one job.
|
|
45
|
+
|
|
46
|
+
## System Health
|
|
47
|
+
Before resource-heavy work such as large file processing, video encoding, large parallel crawls, or enabling browser automation, call `get_system_health` if available and react to resource pressure.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
## Visual Design System (show_html)
|
|
2
|
+
|
|
3
|
+
Every `show_html` visual MUST follow this house style so charts, tables, and
|
|
4
|
+
dashboards look like one product. The style is deliberately minimal: an almost
|
|
5
|
+
white background, near-black text, and a single olive accent `#40513B`. The frame
|
|
6
|
+
already injects a base stylesheet (system sans, surface, ink colors, the palette
|
|
7
|
+
below, a reset) via CSS custom properties, so write your HTML against these roles
|
|
8
|
+
instead of hard-coding raw colors. The tokens carry a selected dark-mode step
|
|
9
|
+
that swaps in automatically under `prefers-color-scheme: dark`, so referencing
|
|
10
|
+
the roles (never raw hex) is what makes a visual correct in both themes.
|
|
11
|
+
|
|
12
|
+
### Available CSS variables (already defined on `:root` by the frame)
|
|
13
|
+
|
|
14
|
+
Surfaces & ink:
|
|
15
|
+
`--viz-surface` (#ffffff chart background), `--viz-plane` (page plane),
|
|
16
|
+
`--viz-text` (near-black primary ink), `--viz-text-secondary`,
|
|
17
|
+
`--viz-muted` (axis/labels), `--viz-grid` (hairline gridline),
|
|
18
|
+
`--viz-axis` (baseline/axis), `--viz-border` (hairline ring).
|
|
19
|
+
|
|
20
|
+
Accent (the one point color, use it for the data that matters):
|
|
21
|
+
`--viz-accent` (#40513B), `--viz-accent-strong` (darker, for hover/emphasis),
|
|
22
|
+
`--viz-accent-soft` (very light wash, for fills and hover backgrounds).
|
|
23
|
+
|
|
24
|
+
Categorical series (low-chroma, distinguished mostly by lightness):
|
|
25
|
+
`--viz-series-1` accent olive, `--viz-series-2`…`--viz-series-6` graded
|
|
26
|
+
olive/neutral steps.
|
|
27
|
+
|
|
28
|
+
Sequential/ordinal olive ramp (light→dark, for magnitude and ordered stages):
|
|
29
|
+
`--viz-seq-100` … `--viz-seq-700`.
|
|
30
|
+
|
|
31
|
+
Status (reserved for good/warn/serious/critical state, never for a series):
|
|
32
|
+
`--viz-good`, `--viz-warning`, `--viz-serious`, `--viz-critical`.
|
|
33
|
+
|
|
34
|
+
Do not redeclare these or invent new hex values. If you need a shade not covered,
|
|
35
|
+
derive it from the nearest role.
|
|
36
|
+
|
|
37
|
+
### The look
|
|
38
|
+
|
|
39
|
+
- Keep it clean and quiet. White background, generous whitespace, thin hairline
|
|
40
|
+
grid, no heavy borders, no drop shadows, no gradients, no filled chart
|
|
41
|
+
backgrounds. Let the accent and the data carry the page.
|
|
42
|
+
- The accent `#40513B` is the ONE color. Default to charts that are mostly ink
|
|
43
|
+
and neutral gray with the accent highlighting the series or value that matters.
|
|
44
|
+
A "highlight one, gray the rest" chart is the house default: paint the focus
|
|
45
|
+
series in `--viz-accent` and the others in `--viz-series-2`/`--viz-muted`.
|
|
46
|
+
- Only reach past the accent into multiple `--viz-series-*` slots when several
|
|
47
|
+
categories genuinely need equal weight. Because those slots differ mainly in
|
|
48
|
+
lightness, always add a secondary cue (direct labels, a 2px surface gap, or
|
|
49
|
+
order) so lighter neutrals stay distinguishable; the two lightest slots need
|
|
50
|
+
visible direct labels or a table view.
|
|
51
|
+
- For continuous magnitude (heatmap, choropleth) use the `--viz-seq-*` ramp, one
|
|
52
|
+
hue light→dark. For ordered stages (funnel, tiers) use the same ramp as
|
|
53
|
+
discrete steps.
|
|
54
|
+
|
|
55
|
+
### Rules
|
|
56
|
+
|
|
57
|
+
- Pick the form by the data's job first: magnitude → bar, change over time →
|
|
58
|
+
line/area, one headline number → a big stat tile (not a one-bar chart).
|
|
59
|
+
- Color follows the entity, never its rank. Never generate more categories than
|
|
60
|
+
the six slots: fold extras into "Other".
|
|
61
|
+
- One y-axis only. Two different scales → two charts or index to a common base.
|
|
62
|
+
- Text (values, labels, legends, ticks) always wears ink tokens
|
|
63
|
+
(`--viz-text` / `--viz-text-secondary` / `--viz-muted`), never the accent or a
|
|
64
|
+
series color. A colored mark sits beside the label to carry identity.
|
|
65
|
+
- For 2+ series always include a legend; for 4 or fewer, also direct-label the
|
|
66
|
+
marks. A single series needs no legend (the title names it). Never print a
|
|
67
|
+
number on every data point.
|
|
68
|
+
- Marks: thin bars/lines (2px lines, ≥8px dot markers), rounded 4px data-ends on
|
|
69
|
+
bars anchored to the baseline, a 2px surface-colored gap between adjacent or
|
|
70
|
+
stacked fills. Grid and axes stay recessive (`--viz-grid` / `--viz-axis`).
|
|
71
|
+
- Add a hover tooltip by default: crosshair + tooltip on line/area, per-mark
|
|
72
|
+
tooltip on bar/dot/cell. Only a bare stat tile with no plot skips this.
|
|
73
|
+
- Short title, unit label where units aren't obvious, ≥16px padding around the
|
|
74
|
+
plot. Columns and axis ticks that must align use
|
|
75
|
+
`font-variant-numeric: tabular-nums`; standalone hero numbers use default
|
|
76
|
+
proportional figures.
|
|
77
|
+
|
|
78
|
+
### Skeleton to start from
|
|
79
|
+
|
|
80
|
+
```html
|
|
81
|
+
<div class="viz-root" style="padding:20px;background:var(--viz-surface);color:var(--viz-text)">
|
|
82
|
+
<h3 style="margin:0 0 12px;font:600 15px system-ui">Title</h3>
|
|
83
|
+
<!-- focus series in var(--viz-accent); others in var(--viz-series-2)/var(--viz-muted);
|
|
84
|
+
grid var(--viz-grid); labels var(--viz-muted) -->
|
|
85
|
+
</div>
|
|
86
|
+
```
|