Skip to content

Commit 4d3e3d5

Browse files
os-zhuangclaude
andauthored
chore(examples): rename @example/app-todo to @objectstack/example-todo (#2026)
Scope consistency with the other example apps (@objectstack/example-crm, @objectstack/example-showcase). The inconsistent scope meant a `--filter @objectstack/example-*` glob silently skipped app-todo — the follow-up noted in #2023. Updates the package name, the root `dev:todo` script, current docs (root + app-todo READMEs) and the `// Run via:` comments in the test files. CHANGELOGs are left untouched (historical record). No lockfile churn — pnpm keys importers by path, not name. Package is private (not published), so no changeset. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 641675d commit 4d3e3d5

11 files changed

Lines changed: 14 additions & 14 deletions

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ pnpm docs:dev
115115
| `pnpm dev` | Run the showcase kitchen-sink example (`@objectstack/example-showcase`) — REST + Studio; exercises every metadata type, view, automation, AI & security chain |
116116
| `pnpm dev:showcase` | Same as `pnpm dev` (explicit alias) |
117117
| `pnpm dev:crm` | Run the minimal CRM example (`@objectstack/example-crm`) |
118-
| `pnpm dev:todo` | Run the Todo example (`@example/app-todo`) |
118+
| `pnpm dev:todo` | Run the Todo example (`@objectstack/example-todo`) |
119119
| `pnpm objectui:refresh` | Pull the sibling `../objectui` build into `packages/console/` |
120120
| `pnpm test` | Run all tests (Turborepo) |
121121
| `pnpm setup` | Install dependencies and build the spec package |
@@ -242,7 +242,7 @@ Cloud, package registry, and environment management subcommands (`os publish`, `
242242

243243
| Example | Description | Level |
244244
| :--- | :--- | :--- |
245-
| [`@example/app-todo`](examples/app-todo) | Task management app — objects, views, dashboards, flows | Beginner |
245+
| [`@objectstack/example-todo`](examples/app-todo) | Task management app — objects, views, dashboards, flows | Beginner |
246246
| [`@objectstack/example-crm`](examples/app-crm) | Minimal CRM smoke-test workspace — validates the metadata loading pipeline | Intermediate |
247247
| [HotCRM](https://github.com/objectstack-ai/hotcrm) | Full-featured enterprise CRM reference app (separate repo) | Advanced |
248248

examples/app-todo/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ pnpm typecheck
101101

102102
### Build
103103
```bash
104-
pnpm --filter @example/app-todo build
104+
pnpm --filter @objectstack/example-todo build
105105
# Expected: Build succeeds, generates dist/ output
106106
```
107107

@@ -113,7 +113,7 @@ Open `objectstack.config.ts` to see how all pieces connect via `defineStack()`.
113113
This example also showcases the v1 AI capabilities. Run the end-to-end demo:
114114

115115
```bash
116-
pnpm --filter @example/app-todo test:ai
116+
pnpm --filter @objectstack/example-todo test:ai
117117
```
118118

119119
What it does — **no API key required**:
@@ -133,7 +133,7 @@ What it does — **no API key required**:
133133
A higher-level demo that exercises the **`data_chat` built-in agent** end-to-end:
134134

135135
```bash
136-
pnpm --filter @example/app-todo test:agent
136+
pnpm --filter @objectstack/example-todo test:agent
137137
```
138138

139139
1. Sends a natural-language user message to `AIService.chatWithTools()` (the same path the REST endpoint `POST /api/v1/ai/agents/data_chat/chat` uses)

examples/app-todo/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "@example/app-todo",
2+
"name": "@objectstack/example-todo",
33
"version": "4.0.52",
44
"description": "Example Todo App using ObjectStack Protocol",
55
"license": "Apache-2.0",

examples/app-todo/test/ai-action.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
// `action_<name>` tool, and that the `data_chat` agent can pick the right
77
// one in plain English.
88
//
9-
// Run via: `pnpm --filter @example/app-todo test:action`
9+
// Run via: `pnpm --filter @objectstack/example-todo test:action`
1010
//
1111
// No API key required — uses `MemoryLLMAdapter`, which heuristically
1212
// picks an action tool and resolves the record id from the preceding

examples/app-todo/test/ai-agent.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// 1. the agent invoked the `query_data` tool, and
66
// 2. a `chat_with_tools` row landed in `ai_traces`.
77
//
8-
// Run via: `pnpm --filter @example/app-todo test:agent`
8+
// Run via: `pnpm --filter @objectstack/example-todo test:agent`
99
//
1010
// No API key required — uses `MemoryLLMAdapter`, which knows how to
1111
// dispatch `query_data` heuristically and summarise the result.

examples/app-todo/test/ai-hitl-llm.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
// the script exits 0 with a notice, so it can be chained in CI without
2020
// leaking spend.
2121
//
22-
// Run via: `AI_GATEWAY_API_KEY=... pnpm --filter @example/app-todo test:hitl:llm`
22+
// Run via: `AI_GATEWAY_API_KEY=... pnpm --filter @objectstack/example-todo test:hitl:llm`
2323

2424
import { ObjectKernel, DriverPlugin, AppPlugin } from '@objectstack/runtime';
2525
import { SqliteWasmDriver } from '@objectstack/driver-sqlite-wasm';

examples/app-todo/test/ai-hitl.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
// memory adapter's verb routing. (A parallel real-LLM smoke test lives
2121
// under `examples/app-todo/test/ai-real-llm.test.ts`.)
2222
//
23-
// Run via: `pnpm --filter @example/app-todo test:hitl`
23+
// Run via: `pnpm --filter @objectstack/example-todo test:hitl`
2424

2525
import { ObjectKernel, DriverPlugin, AppPlugin } from '@objectstack/runtime';
2626
import { SqliteWasmDriver } from '@objectstack/driver-sqlite-wasm';

examples/app-todo/test/ai-knowledge-llm.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
// deterministic RLS demo still runs; only the LLM steps are skipped.
1616
//
1717
// Run via:
18-
// AI_GATEWAY_API_KEY=... pnpm --filter @example/app-todo test:knowledge:llm
18+
// AI_GATEWAY_API_KEY=... pnpm --filter @objectstack/example-todo test:knowledge:llm
1919

2020
import { ObjectKernel, DriverPlugin, AppPlugin } from '@objectstack/runtime';
2121
import { SqliteWasmDriver } from '@objectstack/driver-sqlite-wasm';

examples/app-todo/test/ai-llm.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
// a key the script exits 0 with a notice so it can be safely chained in
88
// CI without leaking spend.
99
//
10-
// Run via: `AI_GATEWAY_API_KEY=... pnpm --filter @example/app-todo test:llm`
10+
// Run via: `AI_GATEWAY_API_KEY=... pnpm --filter @objectstack/example-todo test:llm`
1111

1212
import { ObjectKernel, DriverPlugin, AppPlugin } from '@objectstack/runtime';
1313
import { SqliteWasmDriver } from '@objectstack/driver-sqlite-wasm';

examples/app-todo/test/ai.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// runs the `query_data` tool end-to-end against seeded data, and verifies the
55
// call was persisted in the `ai_traces` object.
66
//
7-
// Run via: `pnpm --filter @example/app-todo test:ai`
7+
// Run via: `pnpm --filter @objectstack/example-todo test:ai`
88
//
99
// No API key required — the demo uses MemoryLLMAdapter, whose heuristic
1010
// `generateObject()` builds a QueryPlan from the schema-context snippet.

0 commit comments

Comments
 (0)