Skip to content

feat: add activities-planner-solo, switch CI seed to activities-planner#2161

Merged
nick-inkeep merged 14 commits into
mainfrom
feat/seed-project-variants
Feb 19, 2026
Merged

feat: add activities-planner-solo, switch CI seed to activities-planner#2161
nick-inkeep merged 14 commits into
mainfrom
feat/seed-project-variants

Conversation

@nick-inkeep
Copy link
Copy Markdown
Collaborator

@nick-inkeep nick-inkeep commented Feb 19, 2026

Summary

  • New: activities-planner-solo — fully offline template project using functionTool() with deterministic mock data. Demonstrates project(), agent(), subAgent(), functionTool(), canDelegateTo, and dataComponent() with zero network dependencies.
  • Delete weather-project — replaced by activities-planner as CI seed and contributor default. All references updated across docs, CLI, and tests.
  • CI: switch seed project to activities-planner — aligns contributor setup with what create-agents scaffolds for new users.
  • Update all 10 Cypress E2E test files to reference activities-planner project IDs, agent names, tool names, prompt text, and data component IDs.
  • Normalize all template imports to extensionless (drop .js extensions across all cookbook templates).
  • Docs: update contributing guide and AI Elements example to reference activities-planner.

Motivation

weather-project had several anti-patterns (random hash tool IDs, separate mcpTool() per endpoint, dead code, truncated description) while activities-planner demonstrates correct SDK patterns (readable IDs, .with({ selectedTools }), project-level tool registration, rich data components). Contributors and CI should use the same patterns new users get.

activities-planner-solo fills the gap for sandboxed/airgapped/automation environments that can't reach external MCP servers.

Changes

New files

File Description
agents-cookbook/template-projects/activities-planner-solo/index.ts Project definition (agents only — function tools registered on subAgents)
activities-planner-solo/agents/activities-planner-solo.ts Agent topology: coordinator → weather forecaster + coordinates agent
activities-planner-solo/tools/get-coordinates.ts functionTool with hardcoded city lookup (7 cities + default fallback)
activities-planner-solo/tools/get-weather-forecast.ts functionTool generating deterministic 24-hour forecast based on latitude
activities-planner-solo/data-components/activities.ts Same rich schema as activities-planner (categories, details, subItems)

Deleted

  • agents-cookbook/template-projects/weather-project/ — entire directory (9 files). Anti-pattern template replaced by activities-planner.
  • start:weather/dev:weather scripts from agents-cookbook/package.json
  • weather-project exclusion filters from agents-cli/src/utils/templates.ts

CI config

  • scripts/setup-dev.jspushProject.projectPathactivities-planner
  • .github/composite-actions/cypress-e2e/action.yml — push command → activities-planner

Import normalization

  • Dropped .js extensions from relative imports across activities-planner, customer-support, deep-research, and meeting-prep templates. Aligns with activities-planner-advanced and activities-planner-solo which already use extensionless imports.

Documentation

  • agents-docs/content/community/contributing/overview.mdx — updated setup-dev description, CLI push examples
  • agents-docs/content/talk-to-your-agents/vercel-ai-sdk/ai-elements.mdx — updated example project/agent IDs

Cypress test updates (all 10 files)

Old reference New reference
my-weather-project activities-planner
weather-agent activities-planner
geocoder-agent get-coordinates-agent
Weather agent Activities planner
Geocoder agent Coordinates agent
Weather Project Activities planner
weather-forecast (component) activities
Weather code at given time The type of event
Geocode address (tool) Weather (MCP tool)
You are a geocoding specialist You are a helpful assistant responsible for converting location
You are a weather forecasting You are a helpful assistant responsible for taking in coordinates

Bug fix

  • activities-planner-solo/index.ts — removed project-level tools: () => [getCoordinates, getWeatherForecast]. FunctionTool instances cannot be registered at the project level because project.ts calls getCredentialReferenceId() unconditionally — a method only MCP Tool implements. The function tools are already correctly registered on subAgents via canUse().

Test plan

Manual QA scenarios. Updated as tests complete.

  • Code correctness: solo template structure — All 5 files verified: valid project(), agent topology, functionTool-only (no mcpTool), deterministic execute functions, matching data component schema
  • Cross-reference: Cypress assertions vs source — All 10 Cypress files exhaustively cross-checked against activities-planner source (agent IDs, names, prompts, tool names, data component fields). Every assertion matches.
  • Data integrity: no weather-project refs — Grep confirmed zero remaining weather-project, my-weather-project, weather-agent, weather-assistant in Cypress files, docs, and CLI code
  • Data integrity: no complex refs — Grep confirmed zero planner-complex or PlannerComplex in codebase
  • Config: setup-dev.js — Confirmed pushProject.projectPath points to activities-planner
  • Config: cypress-e2e action — Confirmed push command uses activities-planner
  • Config: activities-planner-advanced untouched — Zero diff from main
  • Quality gates: buildpnpm build passes (11/11 packages)
  • Quality gates: typecheck — passes (excluding pre-existing failures in ai-sdk-provider and agents-work-apps on main)
  • Quality gates: lint — passes (13/13 packages)
  • Quality gates: CLI tests — All 41 test files pass (632 tests) after template reference updates
  • Docs: contributing guide and AI Elements example updated — all weather-project/weather-agent refs replaced
  • Integration: inkeep pushactivities-planner-solo pushed successfully via CLI. Discovered and fixed bug: FunctionTool cannot be in project-level tools config (crashes on getCredentialReferenceId()).
  • Integration: Cypress E2E — All 10 specs passed locally against standalone production build (24 tests: 20 passing, 4 pending sidebar tests).
  • Integration: Cypress E2E in CIPending: CI run after latest push.

Notes

  • activities-planner (the original, with Exa MCP) is unchanged
  • activities-planner-advanced is unchanged (zero diff from main)
  • Pre-existing typecheck failures in @inkeep/ai-sdk-provider and @inkeep/agents-work-apps are on main and unrelated
  • create-agents-template and create-agents test fixtures still reference weather-project as mock data — these are independent fixture strings, not file paths

🤖 Generated with Claude Code

@vercel
Copy link
Copy Markdown

vercel Bot commented Feb 19, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agents-api Ready Ready Preview, Comment Feb 19, 2026 10:46am
agents-docs Ready Ready Preview, Comment Feb 19, 2026 10:46am
agents-manage-ui Ready Ready Preview, Comment Feb 19, 2026 10:46am

Request Review

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Feb 19, 2026

⚠️ No Changeset found

Latest commit: a88fe54

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@nick-inkeep nick-inkeep marked this pull request as ready for review February 19, 2026 08:49
@nick-inkeep nick-inkeep changed the title feat: add activities-planner-solo, rename advanced→complex, switch CI seed feat: add activities-planner-solo, switch CI seed to activities-planner Feb 19, 2026
@vercel vercel Bot temporarily deployed to Preview – agents-docs February 19, 2026 09:00 Inactive
@nick-inkeep nick-inkeep reopened this Feb 19, 2026
@vercel vercel Bot temporarily deployed to Preview – agents-docs February 19, 2026 09:10 Inactive
nick-inkeep and others added 6 commits February 19, 2026 01:16
… to activities-planner

- Create activities-planner-solo: fully offline template using functionTool()
  with deterministic mock data (no network access required)
- Rename activities-planner-advanced → activities-planner-complex for clearer naming
- Switch CI seed project from weather-project to activities-planner in
  setup-dev.js and cypress-e2e composite action
- Update all 10 Cypress E2E test files to reference activities-planner
  project IDs, agent names, tool names, and prompt text
- Update skills.mdx docs to reference activities-planner-complex

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The setup-dev script and CLI examples now seed activities-planner
instead of weather-project. Update the contributing docs to match.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
nick-inkeep and others added 2 commits February 19, 2026 02:11
Remove the weather-project template which used anti-patterns (random
hash tool IDs, separate mcpTool per endpoint, dead code, truncated
description). CI and setup-dev already switched to activities-planner.

Also removes:
- start:weather/dev:weather scripts from agents-cookbook/package.json
- weather-project exclusion filters from CLI template listing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- docs: update AI Elements example to use activities-planner IDs
- cli tests: update mock template names from weather to activities-planner

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions github-actions Bot deleted a comment from claude Bot Feb 19, 2026
…ing-prep

Pre-existing copy-paste error — the meeting-prep template had
id: 'activities-planner' instead of id: 'meeting-prep'.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@claude claude Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Review Summary

(0) Total Issues | Risk: Low

Delta Review

This is a re-review scoped to the 3 commits added since the previous automated review.

Commits reviewed:

Commit Description
b6b41fa8a fix(meeting-prep): correct project ID from activities-planner to meeting-prep
123278c44 chore: update remaining weather-project references
b0ceba5ad chore: delete weather-project template

Delta Analysis

1. Meeting-prep project ID fix

The prior review's "While You're Here" finding has been addressed:

- id: 'activities-planner',
+ id: 'meeting-prep',

2. CLI template filter cleanup

The weather-project exclusion filter in templates.ts has been correctly removed now that the template is deleted:

- if (stat.isDirectory() && item !== 'weather-project') {
+ if (stat.isDirectory()) {
- return contents
-   .filter((item: any) => item.type === 'dir' && item.name !== 'weather-project')
-   .map((item: any) => item.name);
+ return contents.filter((item: any) => item.type === 'dir').map((item: any) => item.name);

3. Test fixture updates

Test files updated to use activities-planner instead of weather. Remaining weather-project references in packages/create-agents/src/__tests__/templates.test.ts are mock data strings (not file paths) — correctly preserved as independent test fixtures.

4. Documentation updates

ai-elements.mdx example updated to reference activities-planner project and agent IDs.

5. Template deletion

All 9 files in weather-project/ deleted cleanly. No orphaned references found outside of test fixtures/mocks.


✅ APPROVE

Summary: Clean housekeeping delta. The prior "While You're Here" finding (meeting-prep project ID) has been addressed. All weather-project references have been updated or appropriately preserved as test fixtures. Ship it! 🚀

Reviewers (0)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
Total 0 0 0 0 0 0 0

Note: Trivial cleanup delta — full reviewer dispatch skipped. Manual verification completed for reference consistency.

PR #2162 changed the root `dev` script to use inclusion filters that
start agents-manage-ui (port 3000) alongside agents-api. The Cypress
composite action calls `pnpm dev --filter=@inkeep/agents-api` which
delegates to the root script, causing turbo to start all 5 packages.
When start-server-and-test then tries to start the Next.js standalone
server on port 3000, it hits EADDRINUSE.

Fix: use `pnpm exec turbo dev` directly with a single filter, bypassing
the root dev script's hardcoded filters.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@claude claude Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Review Summary

(0) Total Issues | Risk: Low

Delta Review

This is a re-review scoped to the 1 commit added since the previous automated review.

Change: cbaf0fab8fix(ci): use turbo directly for API server in Cypress E2E

Delta analysis:

- run: pnpm dev --filter='@inkeep/agents-api' &
+ run: pnpm exec turbo dev --filter='@inkeep/agents-api' &

This is a correct consistency fix. The change aligns the API server startup command with other turbo invocations in the same file:

Line Command Pattern
32 pnpm exec turbo run build --filter=@inkeep/agents-core ✅ Direct turbo
61 pnpm exec turbo build --filter='@inkeep/agents-manage-ui'... ✅ Direct turbo
69 pnpm exec turbo dev --filter='@inkeep/agents-api' ✅ Direct turbo (fixed)

Why this matters: Using pnpm exec turbo directly ensures consistent turbo caching behavior and avoids any intermediate script indirection that could affect environment variable propagation in background processes.


✅ APPROVE

Summary: Trivial CI consistency fix — the API server startup now uses the same direct turbo invocation pattern as other build steps in the workflow. No issues introduced. 🚀

Reviewers (0)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
Total 0 0 0 0 0 0 0

Note: Trivial delta (1-line CI fix) — full reviewer dispatch skipped. Manual verification confirmed the change aligns with existing patterns.

nick-inkeep and others added 2 commits February 19, 2026 02:40
Deleting weather-project left tsx unused in agents-cookbook, failing knip.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…d-project-variants

# Conflicts:
#	.github/composite-actions/cypress-e2e/action.yml
Copy link
Copy Markdown
Contributor

@claude claude Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Review Summary

(0) Total Issues | Risk: Low

Delta Review

This is a re-review scoped to the 2 commits added since the previous automated review.

Commits reviewed:

Commit Description
63de7741b fix(ci): remove unused tsx devDependency from agents-cookbook
a88fe5410 Merge branch 'main' (brings in Slack Socket Mode, scope helpers, turbo exclusions)

Delta Analysis

1. Remove unused tsx devDependency

devDependencies: {
  "@types/node": "^22.18.12",
- "tsx": "^4.20.6",
  "typescript": "^5.9.3"
}

This is correct cleanup. The tsx package was only used by the start:weather and dev:weather scripts which were deleted when weather-project was removed in an earlier commit. No other template in agents-cookbook uses tsx for development.

2. Merge from main

The merge brings in 4 PRs from main:

  • Slack Socket Mode (#2133)
  • Scope-aware query helpers (#2151)
  • Turbo dev exclusions (#2162)
  • CI fix for turbo API server (#2164)

These were reviewed in their respective PRs and are not subject to re-review here. No merge conflicts were introduced.

3. Minor comment cleanup

The cypress-e2e/action.yml change removes a trailing comment (# & means run job in background&). Trivial housekeeping.


✅ APPROVE

Summary: Trivial delta — just removing an unused devDependency (tsx) that's no longer needed after deleting weather-project, plus a merge from main. No issues introduced. Ship it! 🚀

Reviewers (0)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
Total 0 0 0 0 0 0 0

Note: Trivial delta (devDependency cleanup + merge from main) — full reviewer dispatch skipped. Manual verification confirmed the change is correct.

@github-actions github-actions Bot deleted a comment from claude Bot Feb 19, 2026
@nick-inkeep nick-inkeep merged commit 16dd6fc into main Feb 19, 2026
11 checks passed
@nick-inkeep nick-inkeep deleted the feat/seed-project-variants branch February 19, 2026 10:51
@github-actions
Copy link
Copy Markdown
Contributor

🔎💬 Inkeep AI search and chat service is syncing content for source 'Inkeep Agent Framework Docs'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant