Commit graph

233 commits

Author SHA1 Message Date
cf31fd104d Simplify oclaw product surface: drop niche specialists and admin noise.
Remove stock/image/video specialists, Gmail watcher, CocoLoop market, desktop packaging, and extra memory plugins; disable dynamic agents and hide Session Monitor / API grants / Admin Audit from nav.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 01:34:10 +08:00
efa72df362 Remove plan mode, skill toolcall path, and inline netx tools.
Wave C subtraction: keep skills as prompt-only, route netx via MCP with a shared netx_http client for xlsx/context inject, and delete plan_agent_v2 from the gateway.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 01:17:39 +08:00
628a9dffd2 Subtract dead agent husks and unify the gateway executor path.
Remove SpecialistAgentRunner, plan_agent_v2 re-export shims, empty runtime husks, and disconnected Admin knobs. Fold ops into build_gateway_executor, align AIA_ENABLE_PLUGIN_TOOLS with catalog, and allow ops on the default MCP specialist list.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 01:02:29 +08:00
e2fc72607e Prefer batch CLI in playbooks, cap tool persistence, and steer getManagedNe failures.
Default scheduled CLI steps to ne_ids/ume_ne_ids batch, compact oversized tool chat_message/tool_log after turns, and on getManagedNe miss guide agents to listManagedNe/UME paths instead of blind retries.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 00:46:46 +08:00
ae70d4b89a Make ops WhatsApp replies a strict NOC bot by default.
Enforce a short Result/Evidence/Next shell, ban process-talk openers and helpdesk chat tone, and keep casual noise to one line or silence.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 00:32:54 +08:00
785da27b69 Tighten ops skills from field WhatsApp Q&A patterns.
Codify area-prefix alarms, A<>B capacity/optical, WIB history windows, anti-playbook-hijack, and ZTE optic CLI fallbacks so short EN asks stay on the right tool path.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 00:28:22 +08:00
659903506b Fix retention CLI import path when run from repo root.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 00:22:42 +08:00
48e5872045 Add dry-run sqlite retention prune for tool/trace bloat.
Keeps recent days of chat tool messages, tool_log, traces, and sent outbound; admin API and CLI support apply + optional VACUUM.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 00:22:26 +08:00
cc9a516cb4 Convert Markdown to WhatsApp formatting on outbound enqueue.
LLM replies keep **/#/tables in admin history; WhatsApp queue text is rewritten to *bold*, plain links, and bullet rows (disable with AIA_WHATSAPP_MARKDOWN_CONVERT=0).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 00:16:02 +08:00
9d4dced4e4 Skip overlapping scheduled runs and surface playbook status in job lists.
Due ticks no longer stack on an active run (WA skip notice + stale clear); schedule_list/admin/gateway now show playbook, steps_n, and last_run signals without dumping full recipes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 00:07:42 +08:00
51eef09801 Synthesize playbooks from structured prompts and inject prior-run context.
Legacy jobs with empty recipes (e.g. dying-gasp algorithms in prompt_text) now compile into durable playbooks on create/enqueue, and each run gets a short previous-run summary for continuity.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:59:27 +08:00
4898adf7d0 Productize scheduled success delivery, close WA pending, and clarify SQL scope grants.
Wrap successful scheduled jobs with a short WA header (+ attachment count), expire stale access pending and DM requesters on admin approve/deny, and add concrete next_steps for insufficient_scope:sql:query.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:52:41 +08:00
dff8901ae3 Hide inventory/CLI tools on WhatsApp report short-intents.
Fiber/offline/alarm/excel/license/congestion turns drop list/exec/sql/run_command so the model must use ume_alarm_xlsx_report instead of inventory self-loops.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:45:30 +08:00
6c5536b758 Nudge WhatsApp group ops asks that skip @mention.
When require_mention drops an ops short-intent, send one throttled @sender tip instead of silent ignore; casual chat stays quiet.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:41:48 +08:00
94a1b5b26c Notify WhatsApp requesters on access decisions and ship EN ops help.
After admin YES/NO, DM the requester a field guide; WA help/bind no longer returns the Chinese productivity todo menu.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:37:50 +08:00
f31ebeb30e Prefer multi-NE execManagedNe batch and parallelize read MCP tools.
Guide ops to use ne_ids/ume_ne_ids for sweeps, raise exec wall-clock for batches, and mark inventory/list MCP tools read_only so consecutive queries can run in parallel.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:34:23 +08:00
021ed0cc4f Relax absolute tool-count caps; keep only anti-loop guards.
Field turns may legitimately use many distinct CLI/shell calls (e.g. 200 rounds). Drop per-turn call/fail budgets and default short-intent round caps; identical-arg and retry_forbidden blocks remain.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:29:33 +08:00
9d447b1c51 Cap run_command spam and force a usable finalize after tool-round limits.
Budget shell calls like CLI, and when rounds are exhausted inject a no-more-tools system nudge plus any user_facing_hint constraints into the final synthesis pass.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:26:54 +08:00
28a5f2586c Dedupe WhatsApp access pending and cap execManagedNe per turn.
Reuse open pending requests without re-notifying admins, clarify already-waiting replies, and block further CLI after 4 calls or 2 failures in the same turn.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:25:09 +08:00
d8bc08ee0d Stop shell Excel builds, default write_file paths, and cap short-intent tool rounds.
Refuse openpyxl/pandas-to_excel via run_command, auto-write content-only files under tmp/, and limit WhatsApp ops short intents to 8 tool rounds by default.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:21:23 +08:00
a5ebabbaae Document bandwidth_congestion_daily in schedule_create tool help.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:19:12 +08:00
54cb8af8b0 Block non-retryable tool re-calls and add congestion ops recipes.
After insufficient_scope/retry_forbidden, refuse the same tool for the rest of the turn (even with new args), emit pre-call WA progress from ToolExecutor, TTL-cache findTopologyPaths, and add bandwidth congestion short-intent + schedule template.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:19:03 +08:00
9bbac6c0b8 Gate group speaker isolation to shared chat sessions only.
Per-user group sessions (user_in_chat) already isolate history; keep Sender tags and focus hints only when session_scope=chat (legacy shared __group__ transcripts).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:16:27 +08:00
e91e4fe773 Isolate WhatsApp group turns by speaker and clarify SQL scope denials.
Always tag group senders, inject group-focus system hints, label queued follow-ups by speaker, and mark insufficient_scope failures as non-retryable with a user-facing hint.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:11:41 +08:00
d2693d1c63 Cut WA alarm re-query loops, auto-deliver xlsx, and add ops schedule templates.
TTL-cache UME alarm/diagnostics MCP calls, mark write_xlsx deliverable on WhatsApp unless explicitly false, and expose built-in recipe_template_id playbooks for daily tally / critical xlsx / license checks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:08:05 +08:00
7373e516f0 Classify tool failures and block identical blind retries in-turn.
Stamp failure_class for schema/timeout/runtime analytics, refuse same tool+args after a failure in the turn, and add a license short-intent recipe for WhatsApp ops.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 23:03:15 +08:00
4646170743 Push scheduled-job failure summaries to WhatsApp and clarify pending access.
Enqueue a short English failure notice on job crashes, default scheduler lang to en, and tell unauthorized users their request id is pending admin YES.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:59:40 +08:00
d3f621b58b Cache inventory MCP lists and accept YES as WhatsApp confirm.
Extend short TTL reuse to listManagedNe/queryUmeNeInventory to cut list self-loops, and treat short YES/continue as confirmation when a token is pending.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:56:50 +08:00
f1d025ed60 Steer WhatsApp ops short intents and clarify busy/CLI failures.
Inject English recipe hints for fiber/offline/excel/continue, ack the first queued follow-up, localize gate copy, and classify execManagedNe errors so agents stop blind retries.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:53:35 +08:00
47fd83597e Make WhatsApp ops English-first for field deployments.
Default progress, quote wrappers, tool-error copy, and playbook recipes to English unless lang is explicitly zh.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:51:25 +08:00
0ab5ab8c5a Send throttled WhatsApp progress during long tool turns.
Wire channel inbound on_progress/on_tool_ui to outbound queue so group users see wait signals for CLI/UME work without sharing per-speaker session context.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:47:26 +08:00
d245e463c0 Make tool failures actionable with suggestions and scope hints.
Unregistered tools now suggest close matches; MCP insufficient_scope is rewritten with fallbacks so ops agents stop blind-retrying SQL without sql:query.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:42:37 +08:00
229e8b1368 Raise MCP exec timeouts and cache listCliTargets for WhatsApp ops.
Production logs showed execManagedNe glued to 30s wall-clock kills; override long tools, TTL-cache CLI target lists, and return schema examples on invalid args.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:40:17 +08:00
e03c90fb35 Add one-shot UME alarm Excel delivery for WhatsApp ops.
Collapse query+xlsx+deliverable into ume_alarm_xlsx_report, allow write_xlsx(deliverable=true), and accept run_command aliases to cut multi-tool loops.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:36:14 +08:00
aff11c1eae Reduce WhatsApp ops tool friction with looser xlsx/file schemas and short-intent playbooks.
Production usage showed schema mismatches and multi-tool loops; accept common arg aliases and route agents to <=3-call alarm recipes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:32:44 +08:00
685e3ffa8d Align ops UME playbook with MCP camelCase tools and freshness-first triage.
Document 14 netx tools, snapshot time windows, severity Top-N, and compact topology path usage for alarm workflows.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:17:45 +08:00
567c4f4f17 fix(ops): restore UTF-8 Chinese in netx UME playbook skill
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 15:51:25 +08:00
9f2dba7a23 Add private layer 07 for field real cases in IP knowledge base.
Keep 01-06 as summarized general knowledge; route on-site reports into 07 and update the ops playbook retrieval order.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 11:18:28 +08:00
07002caeb8 fix erro command 2026-07-29 10:22:01 +08:00
557b675fe8 docs(ops): align netx exec limits and CLI allowlist with server
Mirror NETX_NE_EXEC_MAX_COMMANDS and updated show/ping/traceroute/pipe rules in builtin tool and playbook.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 10:57:55 +08:00
3cdf550298 Make Chat abort actually stop the agent turn.
Wire should_stop from aborted runs, snapshot abort before clearing flags so finals are not emitted after stop, and keep fail-path turn_uuid aligned for bubble splitting.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 10:16:07 +08:00
23ecce4755 fix bubble splitting after session interruption 2026-07-23 09:48:51 +08:00
896126ef88 Move Chat background-jobs entry to the sidebar footer.
Keeps the running-count badge visible without competing with the new-chat action above the session list.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 09:26:53 +08:00
0cf6aafa30 Add background jobs with Chat UI so long agent scripts can run for hours safely.
start_job/get_job/sleep replace blocked run_command for multi-hour work; Chat shows a live count badge and allows manual kill, with a reaper reclaiming timed-out or stale processes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 01:02:57 +08:00
dbba8cafbf Add write_xlsx tool so agents export Excel via structured data instead of fragile openpyxl scripts.
Generation returns attachment_id only; channel delivery still requires save_deliverable_attachment.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 23:54:16 +08:00
c31625d05b Fix WhatsApp image delivery and Chat duplicate attachment display.
Enqueue deliverable tool attachments on the WhatsApp queue path, and dedupe the same attachment_id within one Chat bubble (prefer deliverable).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 20:03:05 +08:00
b6e023cd91 Fix duplicate WhatsApp outbound delivery.
Claim pending rows atomically and serialize the sidecar poller so overlapping polls cannot send the same reply twice; also stop inbound queue delivery from falling through to a second enqueue.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 11:41:52 +08:00
10ae4abc1d Fix WhatsApp same-session quote re-injection.
Strip @mention prefixes and widen history lookup so reply-to of the bot's own prior answer is not wrapped as [被引用消息] again.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 10:24:23 +08:00
2446993b11 Fix WhatsApp overlap by serial queue, typing, and outbound delivery.
Serialize per-session inbound turns and merge follow-ups after the active run; show composing while busy and enqueue final replies so long agent runs still reach the group.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 10:04:25 +08:00
f1ed86537c Add ops IP knowledge playbook for protocol troubleshooting.
Give the ops specialist a skill to search docs/ip-knowledge-base and verify findings via netx before concluding.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 20:24:11 +08:00