Pull mirror of GroundCrewLabs/capabilities. Read-only; push to GitHub.
  • TypeScript 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
jaredgoldman e4e73aa305
ctx.tools: the platform's tools with the agent's grants, and no turn without an instruction (39.08) (#5)
* ctx.tools: the platform's tools with the agent's grants, and no turn without an instruction

A cron's code can now use the platform's shared tools — the same gcl_*
tools an agent's model calls — instead of spending tokens waiting for a
model to call them. The runtime is monorepo PR #1209; this is what an
author writes against.

- CronPlatformTools on ctx.tools: typed reads for every connected Google
  calendar, Gmail and IMAP search and read, web search and fetch, and
  Nextcloud list and read, plus call() for any other granted tool. Each
  call runs in the gateway with the cron's agent's grants and answers
  with data.
- CronDeclaration.unattended_tools: the tools a cron may call although
  they change something, since nobody is there to ask. Reads need no
  declaration; a tool that messages a person is never callable from code.
- A cron with run() and no instruction starts no agent turn at all: it
  speaks through ctx.deliver and its output is delivered as it is.
- fakeCronContext({ tools }) answers those calls in tests, records them
  in ctx.toolCalls, and enforces the same per-run cap; an unanswered call
  throws, as an ungranted tool does.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PNmM2H8UQrGEN6oHQzQkB5

* Say what code may call the way the approval table now does (monorepo #1206)

Gmail's send and the calendar's create and delete became unaskable in the
monorepo (#1206), so they are refused from a cron's code outright rather
than declarable. The skill and the types say that, and give a declarable
example that still is one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PNmM2H8UQrGEN6oHQzQkB5

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-19 22:28:16 -06:00
.claude/skills/capability-authoring ctx.tools: the platform's tools with the agent's grants, and no turn without an instruction (39.08) (#5) 2026-09-19 22:28:16 -06:00
.forgejo/workflows Seed from the monorepo's templates/capabilities 2026-09-19 13:51:16 -06:00
clients Seed from the monorepo's templates/capabilities 2026-09-19 13:51:16 -06:00
shared ctx.tools: the platform's tools with the agent's grants, and no turn without an instruction (39.08) (#5) 2026-09-19 22:28:16 -06:00
.gitignore Merge main; no copy of the tool reference here, the factory places it 2026-09-19 15:50:37 -06:00
biome.json Seed from the monorepo's templates/capabilities 2026-09-19 13:51:16 -06:00
capabilities.test.ts Export CAPABILITY_FOLDERS: each capability with its folder path 2026-09-19 14:18:39 -06:00
CLAUDE.md ctx.tools: the platform's tools with the agent's grants, and no turn without an instruction (39.08) (#5) 2026-09-19 22:28:16 -06:00
index.ts Export CAPABILITY_FOLDERS: each capability with its folder path 2026-09-19 14:18:39 -06:00
package.json Seed from the monorepo's templates/capabilities 2026-09-19 13:51:16 -06:00
pnpm-lock.yaml Seed from the monorepo's templates/capabilities 2026-09-19 13:51:16 -06:00
tsconfig.json Seed from the monorepo's templates/capabilities 2026-09-19 13:51:16 -06:00
vitest.config.ts Seed from the monorepo's templates/capabilities 2026-09-19 13:51:16 -06:00