vellum 0.2.1 → 0.2.2
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 +15 -2
- package/bun.lock +5 -2
- package/package.json +4 -2
- package/scripts/capture-x-graphql.ts +562 -0
- package/scripts/ipc/check-swift-decoder-drift.ts +2 -1
- package/scripts/test.sh +5 -0
- package/src/__tests__/__snapshots__/ipc-snapshot.test.ts.snap +133 -34
- package/src/__tests__/account-registry.test.ts +2 -1
- package/src/__tests__/agent-heartbeat-service.test.ts +250 -0
- package/src/__tests__/asset-materialize-tool.test.ts +16 -15
- package/src/__tests__/asset-search-tool.test.ts +23 -22
- package/src/__tests__/attachments-store.test.ts +56 -127
- package/src/__tests__/browser-skill-baseline-tool-payload.test.ts +5 -4
- package/src/__tests__/browser-skill-endstate.test.ts +4 -3
- package/src/__tests__/call-bridge.test.ts +385 -0
- package/src/__tests__/call-constants.test.ts +40 -0
- package/src/__tests__/call-orchestrator.test.ts +130 -4
- package/src/__tests__/call-recovery.test.ts +518 -0
- package/src/__tests__/call-routes-http.test.ts +459 -0
- package/src/__tests__/call-state-machine.test.ts +143 -0
- package/src/__tests__/call-store.test.ts +216 -1
- package/src/__tests__/cli-discover.test.ts +1 -1
- package/src/__tests__/commit-message-enrichment-service.test.ts +148 -7
- package/src/__tests__/compaction.benchmark.test.ts +176 -0
- package/src/__tests__/computer-use-tools.test.ts +250 -0
- package/src/__tests__/config-schema.test.ts +299 -3
- package/src/__tests__/conflict-store.test.ts +2 -1
- package/src/__tests__/contacts-tools.test.ts +331 -0
- package/src/__tests__/conversation-store.test.ts +30 -32
- package/src/__tests__/credential-security-invariants.test.ts +4 -0
- package/src/__tests__/date-context.test.ts +373 -0
- package/src/__tests__/db-schedule-syntax-migration.test.ts +129 -0
- package/src/__tests__/fixtures/media-reuse-fixtures.ts +3 -3
- package/src/__tests__/followup-tools.test.ts +303 -0
- package/src/__tests__/handlers-twitter-config.test.ts +718 -0
- package/src/__tests__/intent-routing.test.ts +64 -57
- package/src/__tests__/ipc-roundtrip.benchmark.test.ts +237 -0
- package/src/__tests__/ipc-snapshot.test.ts +62 -28
- package/src/__tests__/llm-usage-store.test.ts +3 -8
- package/src/__tests__/media-generate-image.test.ts +1 -1
- package/src/__tests__/media-reuse-story.e2e.test.ts +7 -7
- package/src/__tests__/memory-retrieval.benchmark.test.ts +430 -0
- package/src/__tests__/parallel-tool.benchmark.test.ts +294 -0
- package/src/__tests__/playbook-tools.test.ts +342 -0
- package/src/__tests__/profile-compiler.test.ts +2 -1
- package/src/__tests__/provider-streaming.benchmark.test.ts +773 -0
- package/src/__tests__/recurrence-engine-rruleset.test.ts +78 -0
- package/src/__tests__/recurrence-engine.test.ts +69 -0
- package/src/__tests__/recurrence-types.test.ts +71 -0
- package/src/__tests__/registry.test.ts +5 -3
- package/src/__tests__/relay-server.test.ts +633 -0
- package/src/__tests__/reminder-store.test.ts +6 -3
- package/src/__tests__/reminder.test.ts +43 -77
- package/src/__tests__/run-orchestrator-assistant-events.test.ts +8 -4
- package/src/__tests__/run-orchestrator.test.ts +4 -4
- package/src/__tests__/runtime-attachment-metadata.test.ts +7 -6
- package/src/__tests__/runtime-runs-http.test.ts +4 -4
- package/src/__tests__/runtime-runs.test.ts +4 -4
- package/src/__tests__/schedule-store.test.ts +482 -0
- package/src/__tests__/schedule-tools.test.ts +700 -0
- package/src/__tests__/scheduler-recurrence.test.ts +329 -0
- package/src/__tests__/server-history-render.test.ts +14 -13
- package/src/__tests__/session-error.test.ts +28 -0
- package/src/__tests__/session-init.benchmark.test.ts +462 -0
- package/src/__tests__/session-queue.test.ts +71 -48
- package/src/__tests__/session-runtime-assembly.test.ts +161 -0
- package/src/__tests__/session-surfaces-task-progress.test.ts +104 -0
- package/src/__tests__/signup-e2e.test.ts +2 -1
- package/src/__tests__/skill-projection.benchmark.test.ts +328 -0
- package/src/__tests__/skill-script-runner.test.ts +159 -0
- package/src/__tests__/speaker-identification.test.ts +52 -0
- package/src/__tests__/subagent-manager-notify.test.ts +42 -10
- package/src/__tests__/subagent-tools.test.ts +141 -41
- package/src/__tests__/task-compiler.test.ts +2 -1
- package/src/__tests__/task-runner.test.ts +2 -1
- package/src/__tests__/task-scheduler.test.ts +2 -1
- package/src/__tests__/task-tools.test.ts +49 -56
- package/src/__tests__/tool-audit-listener.test.ts +1 -0
- package/src/__tests__/tool-domain-event-publisher.test.ts +2 -0
- package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +500 -0
- package/src/__tests__/tool-executor.test.ts +13 -17
- package/src/__tests__/turn-commit.test.ts +218 -3
- package/src/__tests__/twilio-provider.test.ts +143 -0
- package/src/__tests__/twilio-routes.test.ts +789 -0
- package/src/__tests__/twitter-auth-handler.test.ts +581 -0
- package/src/__tests__/view-image-tool.test.ts +217 -0
- package/src/__tests__/workspace-git-service.test.ts +186 -0
- package/src/__tests__/workspace-heartbeat-service.test.ts +13 -3
- package/src/agent-heartbeat/agent-heartbeat-service.ts +155 -0
- package/src/bundler/app-bundler.ts +12 -8
- package/src/calls/call-bridge.ts +95 -0
- package/src/calls/call-constants.ts +43 -5
- package/src/calls/call-domain.ts +276 -0
- package/src/calls/call-orchestrator.ts +43 -17
- package/src/calls/call-recovery.ts +207 -0
- package/src/calls/call-state-machine.ts +68 -0
- package/src/calls/call-store.ts +192 -5
- package/src/calls/relay-server.ts +41 -4
- package/src/calls/speaker-identification.ts +213 -0
- package/src/calls/twilio-provider.ts +10 -6
- package/src/calls/twilio-routes.ts +90 -76
- package/src/calls/types.ts +1 -1
- package/src/cli/config-commands.ts +334 -0
- package/src/cli/core-commands.ts +776 -0
- package/src/cli/doordash.ts +251 -1
- package/src/cli/ipc-client.ts +82 -0
- package/src/cli/map.ts +246 -0
- package/src/cli/twitter.ts +575 -0
- package/src/cli.ts +7 -5
- package/src/commands/__tests__/cc-command-registry.test.ts +319 -0
- package/src/commands/cc-command-registry.ts +209 -0
- package/src/config/bundled-skills/contacts/SKILL.md +39 -0
- package/src/config/bundled-skills/contacts/TOOLS.json +122 -0
- package/src/config/bundled-skills/contacts/tools/contact-merge.ts +9 -0
- package/src/config/bundled-skills/contacts/tools/contact-search.ts +9 -0
- package/src/config/bundled-skills/contacts/tools/contact-upsert.ts +9 -0
- package/src/config/bundled-skills/document/SKILL.md +18 -0
- package/src/config/bundled-skills/document/TOOLS.json +53 -0
- package/src/config/bundled-skills/document/tools/document-create.ts +9 -0
- package/src/config/bundled-skills/document/tools/document-update.ts +9 -0
- package/src/config/bundled-skills/doordash/SKILL.md +82 -23
- package/src/config/bundled-skills/followups/SKILL.md +32 -0
- package/src/config/bundled-skills/followups/TOOLS.json +100 -0
- package/src/config/bundled-skills/followups/tools/followup-create.ts +9 -0
- package/src/config/bundled-skills/followups/tools/followup-list.ts +9 -0
- package/src/config/bundled-skills/followups/tools/followup-resolve.ts +9 -0
- package/src/config/bundled-skills/image-studio/tools/media-generate-image.ts +1 -23
- package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +2 -1
- package/src/config/bundled-skills/playbooks/SKILL.md +31 -0
- package/src/config/bundled-skills/playbooks/TOOLS.json +126 -0
- package/src/config/bundled-skills/playbooks/tools/playbook-create.ts +9 -0
- package/src/config/bundled-skills/playbooks/tools/playbook-delete.ts +9 -0
- package/src/config/bundled-skills/playbooks/tools/playbook-list.ts +9 -0
- package/src/config/bundled-skills/playbooks/tools/playbook-update.ts +9 -0
- package/src/config/bundled-skills/reminder/SKILL.md +20 -0
- package/src/config/bundled-skills/reminder/TOOLS.json +67 -0
- package/src/config/bundled-skills/reminder/tools/reminder-cancel.ts +9 -0
- package/src/config/bundled-skills/reminder/tools/reminder-create.ts +9 -0
- package/src/config/bundled-skills/reminder/tools/reminder-list.ts +9 -0
- package/src/config/bundled-skills/schedule/SKILL.md +74 -0
- package/src/config/bundled-skills/schedule/TOOLS.json +135 -0
- package/src/config/bundled-skills/schedule/tools/schedule-create.ts +9 -0
- package/src/config/bundled-skills/schedule/tools/schedule-delete.ts +9 -0
- package/src/config/bundled-skills/schedule/tools/schedule-list.ts +9 -0
- package/src/config/bundled-skills/schedule/tools/schedule-update.ts +9 -0
- package/src/config/bundled-skills/subagent/SKILL.md +25 -0
- package/src/config/bundled-skills/subagent/TOOLS.json +107 -0
- package/src/config/bundled-skills/subagent/tools/subagent-abort.ts +9 -0
- package/src/config/bundled-skills/subagent/tools/subagent-message.ts +9 -0
- package/src/config/bundled-skills/subagent/tools/subagent-read.ts +9 -0
- package/src/config/bundled-skills/subagent/tools/subagent-spawn.ts +9 -0
- package/src/config/bundled-skills/subagent/tools/subagent-status.ts +9 -0
- package/src/config/bundled-skills/tasks/SKILL.md +28 -0
- package/src/config/bundled-skills/tasks/TOOLS.json +256 -0
- package/src/config/bundled-skills/tasks/tools/task-delete.ts +9 -0
- package/src/config/bundled-skills/tasks/tools/task-list-add.ts +9 -0
- package/src/config/bundled-skills/tasks/tools/task-list-remove.ts +9 -0
- package/src/config/bundled-skills/tasks/tools/task-list-show.ts +9 -0
- package/src/config/bundled-skills/tasks/tools/task-list-update.ts +9 -0
- package/src/config/bundled-skills/tasks/tools/task-list.ts +9 -0
- package/src/config/bundled-skills/tasks/tools/task-run.ts +9 -0
- package/src/config/bundled-skills/tasks/tools/task-save.ts +9 -0
- package/src/config/bundled-skills/twitter/SKILL.md +134 -0
- package/src/config/bundled-skills/watcher/SKILL.md +27 -0
- package/src/config/bundled-skills/watcher/TOOLS.json +147 -0
- package/src/config/bundled-skills/watcher/tools/watcher-create.ts +9 -0
- package/src/config/bundled-skills/watcher/tools/watcher-delete.ts +9 -0
- package/src/config/bundled-skills/watcher/tools/watcher-digest.ts +9 -0
- package/src/config/bundled-skills/watcher/tools/watcher-list.ts +9 -0
- package/src/config/bundled-skills/watcher/tools/watcher-update.ts +9 -0
- package/src/config/defaults.ts +33 -0
- package/src/config/loader.ts +4 -1
- package/src/config/schema.ts +161 -1
- package/src/config/system-prompt.ts +61 -16
- package/src/config/templates/IDENTITY.md +7 -0
- package/src/config/types.ts +4 -0
- package/src/contacts/contact-store.ts +4 -4
- package/src/daemon/assistant-attachments.ts +10 -0
- package/src/daemon/classifier.ts +3 -1
- package/src/daemon/computer-use-session.ts +3 -1
- package/src/daemon/date-context.ts +136 -0
- package/src/daemon/handlers/apps.ts +16 -1
- package/src/daemon/handlers/browser.ts +54 -0
- package/src/daemon/handlers/computer-use.ts +7 -1
- package/src/daemon/handlers/config.ts +163 -5
- package/src/daemon/handlers/diagnostics.ts +5 -1
- package/src/daemon/handlers/documents.ts +18 -29
- package/src/daemon/handlers/home-base.ts +5 -1
- package/src/daemon/handlers/index.ts +40 -277
- package/src/daemon/handlers/misc.ts +9 -1
- package/src/daemon/handlers/publish.ts +6 -1
- package/src/daemon/handlers/sessions.ts +65 -12
- package/src/daemon/handlers/shared.ts +36 -1
- package/src/daemon/handlers/signing.ts +37 -0
- package/src/daemon/handlers/skills.ts +20 -6
- package/src/daemon/handlers/subagents.ts +8 -3
- package/src/daemon/handlers/twitter-auth.ts +169 -0
- package/src/daemon/handlers/work-items.ts +384 -68
- package/src/daemon/ipc-contract-inventory.json +28 -4
- package/src/daemon/ipc-contract.ts +133 -37
- package/src/daemon/ipc-protocol.ts +7 -2
- package/src/daemon/lifecycle.ts +21 -0
- package/src/daemon/main.ts +10 -4
- package/src/daemon/ride-shotgun-handler.ts +74 -10
- package/src/daemon/server.ts +143 -26
- package/src/daemon/session-agent-loop.ts +887 -0
- package/src/daemon/session-attachments.ts +28 -5
- package/src/daemon/session-error.ts +24 -3
- package/src/daemon/session-lifecycle.ts +147 -0
- package/src/daemon/session-media-retry.ts +147 -0
- package/src/daemon/session-messaging.ts +145 -0
- package/src/daemon/session-notifiers.ts +164 -0
- package/src/daemon/session-process.ts +2 -2
- package/src/daemon/session-queue-manager.ts +1 -0
- package/src/daemon/session-runtime-assembly.ts +52 -0
- package/src/daemon/session-skill-tools.ts +124 -5
- package/src/daemon/session-slash.ts +3 -0
- package/src/daemon/session-surfaces.ts +77 -2
- package/src/daemon/session-tool-setup.ts +216 -2
- package/src/daemon/session-usage.ts +0 -2
- package/src/daemon/session.ts +114 -1404
- package/src/daemon/video-thumbnail.ts +60 -0
- package/src/doordash/client.ts +121 -27
- package/src/doordash/queries.ts +1 -2
- package/src/export/formatter.ts +3 -1
- package/src/followups/followup-store.ts +4 -2
- package/src/followups/types.ts +6 -0
- package/src/hooks/templates.ts +1 -1
- package/src/index.ts +32 -1153
- package/src/memory/attachments-store.ts +28 -83
- package/src/memory/channel-delivery-store.ts +7 -21
- package/src/memory/clarification-resolver.ts +6 -5
- package/src/memory/contradiction-checker.ts +3 -2
- package/src/memory/conversation-key-store.ts +10 -29
- package/src/memory/conversation-store.ts +2 -1
- package/src/memory/db.ts +96 -2
- package/src/memory/entity-extractor.ts +6 -3
- package/src/memory/items-extractor.ts +5 -4
- package/src/memory/jobs-store.ts +3 -2
- package/src/memory/llm-usage-store.ts +1 -2
- package/src/memory/runs-store.ts +1 -2
- package/src/memory/schema.ts +23 -2
- package/src/messaging/style-analyzer.ts +3 -2
- package/src/messaging/thread-summarizer.ts +8 -12
- package/src/messaging/triage-engine.ts +4 -2
- package/src/providers/openrouter/client.ts +20 -0
- package/src/providers/registry.ts +8 -0
- package/src/runtime/http-server.ts +108 -20
- package/src/runtime/routes/attachment-routes.ts +2 -3
- package/src/runtime/routes/call-routes.ts +140 -0
- package/src/runtime/routes/channel-routes.ts +5 -10
- package/src/runtime/routes/conversation-routes.ts +5 -5
- package/src/runtime/routes/run-routes.ts +2 -2
- package/src/runtime/run-orchestrator.ts +9 -3
- package/src/schedule/recurrence-engine.ts +138 -0
- package/src/schedule/recurrence-types.ts +67 -0
- package/src/schedule/schedule-store.ts +102 -57
- package/src/schedule/scheduler.ts +9 -6
- package/src/security/oauth2.ts +29 -4
- package/src/security/secret-allowlist.ts +46 -0
- package/src/skills/clawhub.ts +1 -1
- package/src/subagent/manager.ts +40 -8
- package/src/swarm/backend-claude-code.ts +64 -9
- package/src/swarm/worker-prompts.ts +2 -1
- package/src/tasks/SPEC.md +34 -28
- package/src/tasks/ephemeral-permissions.ts +16 -7
- package/src/tasks/task-compiler.ts +5 -4
- package/src/tasks/task-runner.ts +10 -5
- package/src/tasks/task-scheduler.ts +1 -1
- package/src/tasks/tool-sanitizer.ts +36 -0
- package/src/tools/assets/search.ts +4 -4
- package/src/tools/browser/api-map.ts +220 -0
- package/src/tools/browser/auto-navigate.ts +270 -0
- package/src/tools/browser/browser-execution.ts +2 -1
- package/src/tools/browser/browser-manager.ts +2 -2
- package/src/tools/browser/network-recorder.ts +5 -4
- package/src/tools/browser/x-auto-navigate.ts +207 -0
- package/src/tools/calls/call-end.ts +17 -67
- package/src/tools/calls/call-start.ts +24 -85
- package/src/tools/calls/call-status.ts +35 -51
- package/src/tools/claude-code/claude-code.ts +77 -11
- package/src/tools/contacts/contact-merge.ts +46 -78
- package/src/tools/contacts/contact-search.ts +35 -79
- package/src/tools/contacts/contact-upsert.ts +35 -108
- package/src/tools/credentials/vault.ts +20 -4
- package/src/tools/document/document-tool.ts +71 -144
- package/src/tools/executor.ts +129 -10
- package/src/tools/followups/followup_create.ts +46 -88
- package/src/tools/followups/followup_list.ts +34 -74
- package/src/tools/followups/followup_resolve.ts +31 -66
- package/src/tools/host-terminal/cli-discover.ts +2 -1
- package/src/tools/host-terminal/host-shell.ts +10 -0
- package/src/tools/memory/handlers.ts +5 -4
- package/src/tools/network/__tests__/web-search.test.ts +427 -0
- package/src/tools/network/script-proxy/__tests__/logging.test.ts +248 -0
- package/src/tools/network/script-proxy/__tests__/policy.test.ts +234 -0
- package/src/tools/network/script-proxy/__tests__/router.test.ts +76 -0
- package/src/tools/network/web-fetch.ts +18 -6
- package/src/tools/playbooks/index.ts +4 -5
- package/src/tools/playbooks/playbook-create.ts +3 -47
- package/src/tools/playbooks/playbook-delete.ts +1 -25
- package/src/tools/playbooks/playbook-list.ts +1 -28
- package/src/tools/playbooks/playbook-update.ts +3 -51
- package/src/tools/reminder/reminder.ts +5 -78
- package/src/tools/schedule/create.ts +69 -74
- package/src/tools/schedule/delete.ts +21 -47
- package/src/tools/schedule/list.ts +55 -74
- package/src/tools/schedule/update.ts +77 -84
- package/src/tools/subagent/abort.ts +29 -58
- package/src/tools/subagent/message.ts +30 -63
- package/src/tools/subagent/read.ts +53 -84
- package/src/tools/subagent/spawn.ts +43 -82
- package/src/tools/subagent/status.ts +42 -71
- package/src/tools/swarm/delegate.ts +2 -1
- package/src/tools/tasks/index.ts +8 -8
- package/src/tools/tasks/task-delete.ts +60 -88
- package/src/tools/tasks/task-list.ts +31 -52
- package/src/tools/tasks/task-run.ts +72 -108
- package/src/tools/tasks/task-save.ts +33 -65
- package/src/tools/tasks/work-item-enqueue.ts +183 -215
- package/src/tools/tasks/work-item-list.ts +33 -63
- package/src/tools/tasks/work-item-remove.ts +45 -97
- package/src/tools/tasks/work-item-update.ts +91 -163
- package/src/tools/terminal/backends/native.ts +3 -1
- package/src/tools/tool-manifest.ts +0 -62
- package/src/tools/types.ts +6 -0
- package/src/tools/ui-surface/definitions.ts +3 -1
- package/src/tools/watch/screen-watch.ts +3 -1
- package/src/tools/watcher/create.ts +52 -98
- package/src/tools/watcher/delete.ts +20 -46
- package/src/tools/watcher/digest.ts +36 -70
- package/src/tools/watcher/list.ts +49 -79
- package/src/tools/watcher/update.ts +45 -91
- package/src/twitter/client.ts +690 -0
- package/src/twitter/session.ts +91 -0
- package/src/usage/types.ts +0 -1
- package/src/util/truncate.ts +6 -0
- package/src/watcher/providers/slack.ts +2 -1
- package/src/watcher/watcher-store.ts +3 -2
- package/src/work-items/work-item-store.ts +27 -2
- package/src/workspace/commit-message-enrichment-service.ts +31 -7
- package/src/workspace/git-service.ts +87 -22
- package/src/workspace/provider-commit-message-generator.ts +242 -0
- package/src/workspace/turn-commit.ts +62 -3
- package/src/tools/contacts/index.ts +0 -4
- package/src/tools/document/index.ts +0 -5
- package/src/tools/followups/index.ts +0 -3
- package/src/tools/subagent/index.ts +0 -5
- /package/src/__tests__/{memory-context-benchmark.test.ts → memory-context-benchmark.benchmark.test.ts} +0 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"tools": [
|
|
4
|
+
{
|
|
5
|
+
"name": "playbook_create",
|
|
6
|
+
"description": "Create an action playbook \u2014 a trigger\u2192action rule that tells the assistant how to handle incoming messages matching a pattern",
|
|
7
|
+
"category": "playbook",
|
|
8
|
+
"risk": "low",
|
|
9
|
+
"input_schema": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"properties": {
|
|
12
|
+
"trigger": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Pattern or description that triggers this playbook (e.g. \"meeting request\", \"from:ceo@*\", \"newsletter\")"
|
|
15
|
+
},
|
|
16
|
+
"action": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "What to do when the trigger matches \u2014 natural language action description (e.g. \"check calendar, propose 3 times\")"
|
|
19
|
+
},
|
|
20
|
+
"channel": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Channel this rule applies to (e.g. \"email\", \"slack\"), or \"*\" for all channels. Defaults to \"*\"."
|
|
23
|
+
},
|
|
24
|
+
"category": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "Free-form category for grouping (e.g. \"scheduling\", \"triage\"). Defaults to \"general\"."
|
|
27
|
+
},
|
|
28
|
+
"autonomy_level": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"enum": ["auto", "draft", "notify"],
|
|
31
|
+
"description": "How much autonomy: \"auto\" = execute automatically, \"draft\" = draft for review, \"notify\" = notify only. Defaults to \"draft\"."
|
|
32
|
+
},
|
|
33
|
+
"priority": {
|
|
34
|
+
"type": "number",
|
|
35
|
+
"description": "Relative priority \u2014 higher numbers take precedence. Defaults to 0."
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"required": ["trigger", "action"]
|
|
39
|
+
},
|
|
40
|
+
"executor": "tools/playbook-create.ts",
|
|
41
|
+
"execution_target": "host"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "playbook_list",
|
|
45
|
+
"description": "List action playbooks, optionally filtered by channel or category",
|
|
46
|
+
"category": "playbook",
|
|
47
|
+
"risk": "low",
|
|
48
|
+
"input_schema": {
|
|
49
|
+
"type": "object",
|
|
50
|
+
"properties": {
|
|
51
|
+
"channel": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"description": "Filter by channel (e.g. \"email\", \"slack\"). Omit to show all."
|
|
54
|
+
},
|
|
55
|
+
"category": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "Filter by category (e.g. \"scheduling\", \"triage\"). Omit to show all."
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"executor": "tools/playbook-list.ts",
|
|
62
|
+
"execution_target": "host"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "playbook_update",
|
|
66
|
+
"description": "Update an existing action playbook rule",
|
|
67
|
+
"category": "playbook",
|
|
68
|
+
"risk": "low",
|
|
69
|
+
"input_schema": {
|
|
70
|
+
"type": "object",
|
|
71
|
+
"properties": {
|
|
72
|
+
"playbook_id": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"description": "ID of the playbook to update (from playbook_list results)"
|
|
75
|
+
},
|
|
76
|
+
"trigger": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"description": "Updated trigger pattern"
|
|
79
|
+
},
|
|
80
|
+
"action": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"description": "Updated action description"
|
|
83
|
+
},
|
|
84
|
+
"channel": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"description": "Updated channel (\"*\" for all)"
|
|
87
|
+
},
|
|
88
|
+
"category": {
|
|
89
|
+
"type": "string",
|
|
90
|
+
"description": "Updated category"
|
|
91
|
+
},
|
|
92
|
+
"autonomy_level": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"enum": ["auto", "draft", "notify"],
|
|
95
|
+
"description": "Updated autonomy level"
|
|
96
|
+
},
|
|
97
|
+
"priority": {
|
|
98
|
+
"type": "number",
|
|
99
|
+
"description": "Updated priority"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"required": ["playbook_id"]
|
|
103
|
+
},
|
|
104
|
+
"executor": "tools/playbook-update.ts",
|
|
105
|
+
"execution_target": "host"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "playbook_delete",
|
|
109
|
+
"description": "Delete an action playbook rule",
|
|
110
|
+
"category": "playbook",
|
|
111
|
+
"risk": "low",
|
|
112
|
+
"input_schema": {
|
|
113
|
+
"type": "object",
|
|
114
|
+
"properties": {
|
|
115
|
+
"playbook_id": {
|
|
116
|
+
"type": "string",
|
|
117
|
+
"description": "ID of the playbook to delete (from playbook_list results)"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"required": ["playbook_id"]
|
|
121
|
+
},
|
|
122
|
+
"executor": "tools/playbook-delete.ts",
|
|
123
|
+
"execution_target": "host"
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolContext, ToolExecutionResult } from '../../../../tools/types.js';
|
|
2
|
+
import { executePlaybookCreate } from '../../../../tools/playbooks/playbook-create.js';
|
|
3
|
+
|
|
4
|
+
export async function run(
|
|
5
|
+
input: Record<string, unknown>,
|
|
6
|
+
context: ToolContext,
|
|
7
|
+
): Promise<ToolExecutionResult> {
|
|
8
|
+
return executePlaybookCreate(input, context);
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolContext, ToolExecutionResult } from '../../../../tools/types.js';
|
|
2
|
+
import { executePlaybookDelete } from '../../../../tools/playbooks/playbook-delete.js';
|
|
3
|
+
|
|
4
|
+
export async function run(
|
|
5
|
+
input: Record<string, unknown>,
|
|
6
|
+
context: ToolContext,
|
|
7
|
+
): Promise<ToolExecutionResult> {
|
|
8
|
+
return executePlaybookDelete(input, context);
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolContext, ToolExecutionResult } from '../../../../tools/types.js';
|
|
2
|
+
import { executePlaybookList } from '../../../../tools/playbooks/playbook-list.js';
|
|
3
|
+
|
|
4
|
+
export async function run(
|
|
5
|
+
input: Record<string, unknown>,
|
|
6
|
+
context: ToolContext,
|
|
7
|
+
): Promise<ToolExecutionResult> {
|
|
8
|
+
return executePlaybookList(input, context);
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolContext, ToolExecutionResult } from '../../../../tools/types.js';
|
|
2
|
+
import { executePlaybookUpdate } from '../../../../tools/playbooks/playbook-update.js';
|
|
3
|
+
|
|
4
|
+
export async function run(
|
|
5
|
+
input: Record<string, unknown>,
|
|
6
|
+
context: ToolContext,
|
|
7
|
+
): Promise<ToolExecutionResult> {
|
|
8
|
+
return executePlaybookUpdate(input, context);
|
|
9
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Reminder"
|
|
3
|
+
description: "One-time time-based reminders that fire at a specific future time"
|
|
4
|
+
metadata: {"vellum": {"emoji": "🔔"}}
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Create, list, and cancel one-time reminders. Reminders fire at a specific future time and either notify the user or execute a message through the assistant.
|
|
8
|
+
|
|
9
|
+
## Modes
|
|
10
|
+
|
|
11
|
+
- **notify** (default) — shows a notification to the user when the reminder fires
|
|
12
|
+
- **execute** — sends the reminder message to a background assistant conversation for autonomous handling
|
|
13
|
+
|
|
14
|
+
## Usage Notes
|
|
15
|
+
|
|
16
|
+
- Use reminders ONLY for time-triggered notifications (e.g. "remind me at 3pm", "remind me in 2 hours").
|
|
17
|
+
- For recurring automation, use schedules instead.
|
|
18
|
+
- For task tracking ("add to my tasks", "add to my queue"), use task_list_add instead.
|
|
19
|
+
- `fire_at` must be a strict ISO 8601 timestamp with timezone offset or Z (e.g. `2025-03-15T09:00:00-05:00` or `2025-03-15T09:00:00Z`). Ambiguous timestamps without timezone info will be rejected.
|
|
20
|
+
- `label` is a short human-readable summary shown in the notification.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"tools": [
|
|
4
|
+
{
|
|
5
|
+
"name": "reminder_create",
|
|
6
|
+
"description": "Create a one-time time-based reminder. Reminders fire at a specific future time and either notify the user or execute a message through the assistant. Use this ONLY when the user wants a time-triggered notification (e.g. \"remind me at 3pm\", \"remind me in 2 hours\"). Do NOT use this for \"add to my tasks\" or \"add to my queue\" — use task_list_add for those requests.",
|
|
7
|
+
"category": "reminder",
|
|
8
|
+
"risk": "low",
|
|
9
|
+
"input_schema": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"properties": {
|
|
12
|
+
"fire_at": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "ISO 8601 timestamp for when the reminder should fire"
|
|
15
|
+
},
|
|
16
|
+
"label": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Human-readable label"
|
|
19
|
+
},
|
|
20
|
+
"message": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Content shown in notification (notify) or sent to agent (execute)"
|
|
23
|
+
},
|
|
24
|
+
"mode": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"enum": ["notify", "execute"],
|
|
27
|
+
"description": "How the reminder fires. Defaults to notify."
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"required": ["fire_at", "label", "message"]
|
|
31
|
+
},
|
|
32
|
+
"executor": "tools/reminder-create.ts",
|
|
33
|
+
"execution_target": "host"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"name": "reminder_list",
|
|
37
|
+
"description": "List all reminders and their current status.",
|
|
38
|
+
"category": "reminder",
|
|
39
|
+
"risk": "low",
|
|
40
|
+
"input_schema": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {},
|
|
43
|
+
"required": []
|
|
44
|
+
},
|
|
45
|
+
"executor": "tools/reminder-list.ts",
|
|
46
|
+
"execution_target": "host"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "reminder_cancel",
|
|
50
|
+
"description": "Cancel a pending reminder by ID.",
|
|
51
|
+
"category": "reminder",
|
|
52
|
+
"risk": "low",
|
|
53
|
+
"input_schema": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"properties": {
|
|
56
|
+
"reminder_id": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"description": "Reminder ID to cancel"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"required": ["reminder_id"]
|
|
62
|
+
},
|
|
63
|
+
"executor": "tools/reminder-cancel.ts",
|
|
64
|
+
"execution_target": "host"
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolContext, ToolExecutionResult } from '../../../../tools/types.js';
|
|
2
|
+
import { executeReminderCancel } from '../../../../tools/reminder/reminder.js';
|
|
3
|
+
|
|
4
|
+
export async function run(
|
|
5
|
+
input: Record<string, unknown>,
|
|
6
|
+
_context: ToolContext,
|
|
7
|
+
): Promise<ToolExecutionResult> {
|
|
8
|
+
return executeReminderCancel(input);
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolContext, ToolExecutionResult } from '../../../../tools/types.js';
|
|
2
|
+
import { executeReminderCreate } from '../../../../tools/reminder/reminder.js';
|
|
3
|
+
|
|
4
|
+
export async function run(
|
|
5
|
+
input: Record<string, unknown>,
|
|
6
|
+
_context: ToolContext,
|
|
7
|
+
): Promise<ToolExecutionResult> {
|
|
8
|
+
return executeReminderCreate(input);
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolContext, ToolExecutionResult } from '../../../../tools/types.js';
|
|
2
|
+
import { executeReminderList } from '../../../../tools/reminder/reminder.js';
|
|
3
|
+
|
|
4
|
+
export async function run(
|
|
5
|
+
_input: Record<string, unknown>,
|
|
6
|
+
_context: ToolContext,
|
|
7
|
+
): Promise<ToolExecutionResult> {
|
|
8
|
+
return executeReminderList();
|
|
9
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Schedule"
|
|
3
|
+
description: "Recurring automation that dispatches messages on a cron or RRULE schedule"
|
|
4
|
+
metadata: {"vellum": {"emoji": "\ud83d\udcc5"}}
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Manage recurring scheduled automations. Each schedule has an expression (cron or RRULE) that defines when it fires, and a message that gets dispatched to the assistant at trigger time.
|
|
8
|
+
|
|
9
|
+
## Schedule Syntax
|
|
10
|
+
|
|
11
|
+
### Cron
|
|
12
|
+
|
|
13
|
+
Standard 5-field cron syntax: `minute hour day-of-month month day-of-week`
|
|
14
|
+
|
|
15
|
+
| Field | Values | Special characters |
|
|
16
|
+
|---------------|---------------|--------------------|
|
|
17
|
+
| Minute | 0-59 | , - * / |
|
|
18
|
+
| Hour | 0-23 | , - * / |
|
|
19
|
+
| Day of month | 1-31 | , - * / |
|
|
20
|
+
| Month | 1-12 | , - * / |
|
|
21
|
+
| Day of week | 0-7 (0,7=Sun) | , - * / |
|
|
22
|
+
|
|
23
|
+
Examples:
|
|
24
|
+
- `0 9 * * 1-5` — weekdays at 9:00 AM
|
|
25
|
+
- `30 8 * * *` — every day at 8:30 AM
|
|
26
|
+
- `0 */2 * * *` — every 2 hours
|
|
27
|
+
- `0 9 1 * *` — first of every month at 9:00 AM
|
|
28
|
+
|
|
29
|
+
### RRULE (RFC 5545)
|
|
30
|
+
|
|
31
|
+
iCalendar recurrence rules for complex patterns. Must include a DTSTART line.
|
|
32
|
+
|
|
33
|
+
Supported lines (all expressions must include DTSTART + at least one RRULE or RDATE):
|
|
34
|
+
|
|
35
|
+
| Line | Purpose |
|
|
36
|
+
|------|---------|
|
|
37
|
+
| `DTSTART` | Start date/time anchor (required) |
|
|
38
|
+
| `RRULE:` | Recurrence rule (multiple lines = union of occurrences) |
|
|
39
|
+
| `RDATE` | Add one-off dates not covered by the pattern |
|
|
40
|
+
| `EXDATE` | Exclude specific dates from the set |
|
|
41
|
+
| `EXRULE` | Exclude an entire recurring series |
|
|
42
|
+
|
|
43
|
+
Exclusions (EXDATE, EXRULE) always take precedence over inclusions (RRULE, RDATE).
|
|
44
|
+
|
|
45
|
+
#### Basic examples
|
|
46
|
+
- `DTSTART:20250101T090000Z\nRRULE:FREQ=DAILY` — every day at 9:00 AM UTC
|
|
47
|
+
- `DTSTART:20250101T090000Z\nRRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR` — Mon/Wed/Fri at 9:00 AM UTC
|
|
48
|
+
- `DTSTART:20250101T090000Z\nRRULE:FREQ=MONTHLY;BYMONTHDAY=1,15` — 1st and 15th of each month
|
|
49
|
+
|
|
50
|
+
#### Bounded recurrence
|
|
51
|
+
- `DTSTART:20250101T090000Z\nRRULE:FREQ=DAILY;COUNT=30` — daily for 30 occurrences then stop
|
|
52
|
+
- `DTSTART:20250101T090000Z\nRRULE:FREQ=WEEKLY;BYDAY=MO;UNTIL=20250331T235959Z` — every Monday until end of March
|
|
53
|
+
|
|
54
|
+
#### Set construct examples
|
|
55
|
+
- `DTSTART:20250101T090000Z\nRRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR\nEXDATE:20250120T090000Z` — Mon/Wed/Fri except Jan 20
|
|
56
|
+
- `DTSTART:20250101T090000Z\nRRULE:FREQ=DAILY\nEXRULE:FREQ=WEEKLY;BYDAY=SA,SU` — every weekday (daily minus weekends)
|
|
57
|
+
- `DTSTART:20250101T090000Z\nRRULE:FREQ=MONTHLY;BYMONTHDAY=1\nRDATE:20250704T090000Z` — 1st of each month plus July 4th
|
|
58
|
+
- `DTSTART:20250101T090000Z\nRRULE:FREQ=WEEKLY;BYDAY=TU\nRRULE:FREQ=WEEKLY;BYDAY=TH` — union of Tuesdays and Thursdays
|
|
59
|
+
|
|
60
|
+
## Tool Input
|
|
61
|
+
|
|
62
|
+
Use `syntax` + `expression` to specify the schedule type explicitly, or just `expression` to auto-detect. The legacy `cron_expression` field is still accepted as a cron alias.
|
|
63
|
+
|
|
64
|
+
## Lifecycle
|
|
65
|
+
|
|
66
|
+
1. Create a schedule with a name, expression, and message.
|
|
67
|
+
2. At each trigger time, the message is dispatched to the assistant as if the user sent it.
|
|
68
|
+
3. Schedules can be enabled/disabled, updated, or deleted.
|
|
69
|
+
|
|
70
|
+
## Tips
|
|
71
|
+
|
|
72
|
+
- Only use `schedule_create` when the user explicitly wants recurring automation (e.g. "every day at 9am", "weekly on Mondays"). For one-time tasks, use the task list instead.
|
|
73
|
+
- Timezones default to the system timezone if omitted. Use IANA timezone identifiers (e.g. "America/Los_Angeles").
|
|
74
|
+
- Prefer RRULE for complex patterns that cron cannot express (e.g. "every other Tuesday", "last weekday of the month").
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"tools": [
|
|
4
|
+
{
|
|
5
|
+
"name": "schedule_create",
|
|
6
|
+
"description": "Create a recurring scheduled automation that sends a message at a cron or RRULE interval. ONLY use this when the user explicitly wants something to run on a schedule (e.g. \"every day at 9am\", \"weekly on Mondays\", \"every hour\"). Do NOT use this for \"add to my tasks\" or \"add to my queue\" — use task_list_add for those requests instead.",
|
|
7
|
+
"category": "schedule",
|
|
8
|
+
"risk": "medium",
|
|
9
|
+
"input_schema": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"properties": {
|
|
12
|
+
"name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "A human-readable name for the scheduled task"
|
|
15
|
+
},
|
|
16
|
+
"syntax": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"enum": ["cron", "rrule"],
|
|
19
|
+
"description": "Schedule syntax type. Auto-detected if omitted."
|
|
20
|
+
},
|
|
21
|
+
"expression": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"description": "Canonical schedule expression (cron or RRULE). Preferred over cron_expression."
|
|
24
|
+
},
|
|
25
|
+
"cron_expression": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "Deprecated alias for expression with cron syntax. Use expression + syntax instead."
|
|
28
|
+
},
|
|
29
|
+
"timezone": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "IANA timezone (e.g. \"America/Los_Angeles\"). Defaults to system timezone if omitted."
|
|
32
|
+
},
|
|
33
|
+
"message": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "The message to send to the assistant when the schedule triggers"
|
|
36
|
+
},
|
|
37
|
+
"enabled": {
|
|
38
|
+
"type": "boolean",
|
|
39
|
+
"description": "Whether the job is enabled immediately. Defaults to true."
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"required": ["name", "message"]
|
|
43
|
+
},
|
|
44
|
+
"executor": "tools/schedule-create.ts",
|
|
45
|
+
"execution_target": "host"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "schedule_list",
|
|
49
|
+
"description": "List recurring scheduled automations (cron jobs or RRULE schedules), or show details and recent runs for a specific one. For the user's task queue, use task_list_show instead.",
|
|
50
|
+
"category": "schedule",
|
|
51
|
+
"risk": "low",
|
|
52
|
+
"input_schema": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"properties": {
|
|
55
|
+
"enabled_only": {
|
|
56
|
+
"type": "boolean",
|
|
57
|
+
"description": "When true, only show enabled jobs. Defaults to false."
|
|
58
|
+
},
|
|
59
|
+
"job_id": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"description": "If provided, show detailed info and recent runs for this specific job."
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"required": []
|
|
65
|
+
},
|
|
66
|
+
"executor": "tools/schedule-list.ts",
|
|
67
|
+
"execution_target": "host"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "schedule_update",
|
|
71
|
+
"description": "Update an existing recurring scheduled automation (expression, syntax, message, name, or enabled state)",
|
|
72
|
+
"category": "schedule",
|
|
73
|
+
"risk": "medium",
|
|
74
|
+
"input_schema": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"properties": {
|
|
77
|
+
"job_id": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"description": "The ID of the schedule to update"
|
|
80
|
+
},
|
|
81
|
+
"name": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"description": "New name for the job"
|
|
84
|
+
},
|
|
85
|
+
"syntax": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"enum": ["cron", "rrule"],
|
|
88
|
+
"description": "Schedule syntax type. Auto-detected if omitted."
|
|
89
|
+
},
|
|
90
|
+
"expression": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"description": "New schedule expression (cron or RRULE). Preferred over cron_expression."
|
|
93
|
+
},
|
|
94
|
+
"cron_expression": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"description": "Deprecated alias for expression with cron syntax. Use expression + syntax instead."
|
|
97
|
+
},
|
|
98
|
+
"timezone": {
|
|
99
|
+
"type": "string",
|
|
100
|
+
"description": "New IANA timezone"
|
|
101
|
+
},
|
|
102
|
+
"message": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"description": "New message to send when triggered"
|
|
105
|
+
},
|
|
106
|
+
"enabled": {
|
|
107
|
+
"type": "boolean",
|
|
108
|
+
"description": "Enable or disable the job"
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"required": ["job_id"]
|
|
112
|
+
},
|
|
113
|
+
"executor": "tools/schedule-update.ts",
|
|
114
|
+
"execution_target": "host"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"name": "schedule_delete",
|
|
118
|
+
"description": "Delete a recurring scheduled automation and all its run history",
|
|
119
|
+
"category": "schedule",
|
|
120
|
+
"risk": "high",
|
|
121
|
+
"input_schema": {
|
|
122
|
+
"type": "object",
|
|
123
|
+
"properties": {
|
|
124
|
+
"job_id": {
|
|
125
|
+
"type": "string",
|
|
126
|
+
"description": "The ID of the schedule to delete"
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"required": ["job_id"]
|
|
130
|
+
},
|
|
131
|
+
"executor": "tools/schedule-delete.ts",
|
|
132
|
+
"execution_target": "host"
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolContext, ToolExecutionResult } from '../../../../tools/types.js';
|
|
2
|
+
import { executeScheduleCreate } from '../../../../tools/schedule/create.js';
|
|
3
|
+
|
|
4
|
+
export async function run(
|
|
5
|
+
input: Record<string, unknown>,
|
|
6
|
+
context: ToolContext,
|
|
7
|
+
): Promise<ToolExecutionResult> {
|
|
8
|
+
return executeScheduleCreate(input, context);
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolContext, ToolExecutionResult } from '../../../../tools/types.js';
|
|
2
|
+
import { executeScheduleDelete } from '../../../../tools/schedule/delete.js';
|
|
3
|
+
|
|
4
|
+
export async function run(
|
|
5
|
+
input: Record<string, unknown>,
|
|
6
|
+
context: ToolContext,
|
|
7
|
+
): Promise<ToolExecutionResult> {
|
|
8
|
+
return executeScheduleDelete(input, context);
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolContext, ToolExecutionResult } from '../../../../tools/types.js';
|
|
2
|
+
import { executeScheduleList } from '../../../../tools/schedule/list.js';
|
|
3
|
+
|
|
4
|
+
export async function run(
|
|
5
|
+
input: Record<string, unknown>,
|
|
6
|
+
context: ToolContext,
|
|
7
|
+
): Promise<ToolExecutionResult> {
|
|
8
|
+
return executeScheduleList(input, context);
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolContext, ToolExecutionResult } from '../../../../tools/types.js';
|
|
2
|
+
import { executeScheduleUpdate } from '../../../../tools/schedule/update.js';
|
|
3
|
+
|
|
4
|
+
export async function run(
|
|
5
|
+
input: Record<string, unknown>,
|
|
6
|
+
context: ToolContext,
|
|
7
|
+
): Promise<ToolExecutionResult> {
|
|
8
|
+
return executeScheduleUpdate(input, context);
|
|
9
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Subagent"
|
|
3
|
+
description: "Spawn and manage autonomous background agents for parallel work"
|
|
4
|
+
metadata: {"vellum": {"emoji": "\ud83e\udd16"}}
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Subagent orchestration -- spawn background agents to work on tasks in parallel.
|
|
8
|
+
|
|
9
|
+
## Lifecycle
|
|
10
|
+
|
|
11
|
+
Subagents follow this status flow: `pending` -> `running` -> `completed` / `failed` / `aborted`
|
|
12
|
+
|
|
13
|
+
- **Spawn**: Use `subagent_spawn` with a label and objective. The subagent runs autonomously.
|
|
14
|
+
- **Auto-notification**: The parent session is automatically notified when a subagent reaches a terminal status. Do NOT poll `subagent_status`.
|
|
15
|
+
- **Read output**: Use `subagent_read` only after the subagent reaches a terminal status (completed/failed/aborted).
|
|
16
|
+
|
|
17
|
+
## Ownership
|
|
18
|
+
|
|
19
|
+
Only the parent session that spawned a subagent can interact with it (check status, send messages, abort, or read output).
|
|
20
|
+
|
|
21
|
+
## Tips
|
|
22
|
+
|
|
23
|
+
- Do NOT poll `subagent_status` in a loop. You will be notified automatically when a subagent completes.
|
|
24
|
+
- Use `subagent_message` to send follow-up instructions to a running subagent.
|
|
25
|
+
- Use `subagent_abort` to cancel a subagent that is no longer needed.
|