create-theokit 1.23.8 → 1.23.11

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.
Files changed (30) hide show
  1. package/dist/cli.js +55 -44
  2. package/dist/cli.js.map +1 -1
  3. package/package.json +2 -1
  4. package/templates/default/.env.example +1 -1
  5. package/templates/default/CLAUDE.md +9 -8
  6. package/templates/default/_gitignore +5 -2
  7. package/templates/default/_prettierignore +13 -0
  8. package/templates/default/agents/chat.ts +29 -1
  9. package/templates/default/app/components/ChatPanel.tsx +3 -2
  10. package/templates/default/app/hooks/use-transcript.ts +9 -3
  11. package/templates/default/app/layout.tsx +8 -1
  12. package/templates/default/app/lib/constants.ts +2 -1
  13. package/templates/default/app/lib/renderable.ts +78 -0
  14. package/templates/default/app/page.test.tsx +9 -3
  15. package/templates/default/docs/ARCHITECTURE.md +35 -29
  16. package/templates/default/docs/CUSTOMIZATION.md +10 -10
  17. package/templates/default/docs/ENVIRONMENT.md +4 -4
  18. package/templates/default/dot-claude/rules/theokit-conventions.md +2 -0
  19. package/templates/default/dot-claude/skills/theokit-agents/SKILL.md +12 -12
  20. package/templates/default/dot-claude/skills/theokit-config/SKILL.md +6 -6
  21. package/templates/default/dot-claude/skills/theokit-database/SKILL.md +15 -10
  22. package/templates/default/dot-claude/skills/theokit-frontend/SKILL.md +11 -11
  23. package/templates/default/dot-claude/skills/theokit-gateways/SKILL.md +71 -0
  24. package/templates/default/dot-claude/skills/theokit-routes/SKILL.md +28 -10
  25. package/templates/default/dot-claude/skills/theokit-ui/SKILL.md +26 -24
  26. package/templates/default/eslint.config.mjs +8 -1
  27. package/templates/default/package.json.tmpl +2 -8
  28. package/templates/default/pnpm-workspace.yaml +21 -0
  29. package/templates/default/server/routes/health.ts +3 -0
  30. package/templates/surfaces/desktop/sidecar/sidecar.ts +6 -2
package/dist/cli.js CHANGED
@@ -2,15 +2,7 @@
2
2
 
3
3
  // src/cli.ts
4
4
  import { execSync } from "child_process";
5
- import {
6
- readFileSync as readFileSync5,
7
- writeFileSync as writeFileSync5,
8
- unlinkSync as unlinkSync5,
9
- mkdirSync,
10
- renameSync as renameSync2,
11
- existsSync as existsSync5,
12
- rmSync as rmSync5
13
- } from "fs";
5
+ import { readFileSync as readFileSync5, unlinkSync as unlinkSync5, mkdirSync, renameSync as renameSync2, existsSync as existsSync5, rmSync as rmSync5 } from "fs";
14
6
  import { resolve as resolve4 } from "path";
15
7
 
16
8
  // src/clone-example.ts
@@ -144,17 +136,23 @@ function getDefaults(projectName) {
144
136
  }
145
137
 
146
138
  // src/scaffold-services.ts
147
- import {
148
- cpSync,
149
- existsSync,
150
- readFileSync,
151
- readdirSync,
152
- statSync,
153
- writeFileSync,
154
- unlinkSync
155
- } from "fs";
139
+ import { cpSync, existsSync, readFileSync, readdirSync, statSync, unlinkSync } from "fs";
156
140
  import { dirname, join as join2, resolve } from "path";
157
141
  import { fileURLToPath } from "url";
142
+
143
+ // src/write-file.ts
144
+ import { closeSync, constants, openSync, writeSync } from "fs";
145
+ var NO_FOLLOW = constants.O_WRONLY | constants.O_CREAT | constants.O_TRUNC | constants.O_NOFOLLOW;
146
+ function writeScaffoldFile(path, data) {
147
+ const fd = openSync(path, NO_FOLLOW);
148
+ try {
149
+ writeSync(fd, data);
150
+ } finally {
151
+ closeSync(fd);
152
+ }
153
+ }
154
+
155
+ // src/scaffold-services.ts
158
156
  var __dirname = dirname(fileURLToPath(import.meta.url));
159
157
  var VALID_BACKENDS = ["node"];
160
158
  function parseBackendFlags(args) {
@@ -202,7 +200,7 @@ function substituteTmpls(dir, projectName) {
202
200
  if (entry.endsWith(".tmpl")) {
203
201
  const content = readFileSync(full, "utf-8").replace(/\{\{name\}\}/g, projectName);
204
202
  const dest = full.replace(/\.tmpl$/, "");
205
- writeFileSync(dest, content);
203
+ writeScaffoldFile(dest, content);
206
204
  unlinkSync(full);
207
205
  }
208
206
  }
@@ -276,14 +274,14 @@ function scaffoldServices(options) {
276
274
  const snippet = buildServicesSnippet(selections);
277
275
  const updated = injectServicesIntoConfig(cfgSrc, snippet);
278
276
  if (updated !== cfgSrc) {
279
- writeFileSync(configPath, updated);
277
+ writeScaffoldFile(configPath, updated);
280
278
  }
281
279
  }
282
280
  const pkgPath = join2(options.targetDir, "package.json");
283
281
  if (existsSync(pkgPath)) {
284
282
  const pkgSrc = readFileSync(pkgPath, "utf-8");
285
283
  const updated = injectHeyApiDep(pkgSrc);
286
- writeFileSync(pkgPath, updated);
284
+ writeScaffoldFile(pkgPath, updated);
287
285
  }
288
286
  }
289
287
 
@@ -295,8 +293,7 @@ import {
295
293
  readFileSync as readFileSync2,
296
294
  rmSync as rmSync2,
297
295
  statSync as statSync2,
298
- unlinkSync as unlinkSync2,
299
- writeFileSync as writeFileSync2
296
+ unlinkSync as unlinkSync2
300
297
  } from "fs";
301
298
  import { dirname as dirname2, join as join3, resolve as resolve2 } from "path";
302
299
  import { fileURLToPath as fileURLToPath2 } from "url";
@@ -329,7 +326,13 @@ var SURFACE_CONFIG = {
329
326
  dev: "tsx tui/main.tsx",
330
327
  start: "tsx tui/main.tsx",
331
328
  // A visual reference of every tool render state (pending/running/success/failed/…) — no agent needed.
332
- "demo:tools": "tsx tui/tool-variations.tsx"
329
+ "demo:tools": "tsx tui/tool-variations.tsx",
330
+ // A terminal app runs from source through `tsx` and has no artifact to bundle, so `build`
331
+ // means "typecheck" here. It is SET rather than left alone because the default template's
332
+ // `theokit build` requires `app/`, which `WEB_ONLY_FILES` removes two steps later — leaving a
333
+ // script whose first act is to demand a directory this scaffold just deleted
334
+ // (usetheokit/theokit#374).
335
+ build: "tsc --noEmit"
333
336
  },
334
337
  tsconfigInclude: [
335
338
  "tui/**/*.ts",
@@ -363,6 +366,11 @@ var SURFACE_CONFIG = {
363
366
  scripts: {
364
367
  dev: "tauri dev",
365
368
  tauri: "tauri",
369
+ // The real build, and the reason it must be declared: the inherited `theokit build` requires
370
+ // `app/`, which this surface removes (usetheokit/theokit#374). `tauri.conf.json`'s
371
+ // `beforeBuildCommand` already chains the frontend and the sidecar, so this is the whole
372
+ // build rather than a shortcut past two of its steps.
373
+ build: "tauri build",
366
374
  "build:frontend": "vite build frontend",
367
375
  // Generates the Tauri externalBin launcher (src-tauri/binaries/theo-sidecar-<triple>) the Rust
368
376
  // shell spawns. Wired into tauri.conf.json beforeDev/BuildCommand — regenerated each launch.
@@ -411,7 +419,7 @@ function substituteTmpls2(dir, projectName) {
411
419
  }
412
420
  if (entry.endsWith(".tmpl")) {
413
421
  const content = readFileSync2(full, "utf-8").replace(/\{\{name\}\}/g, projectName);
414
- writeFileSync2(full.replace(/\.tmpl$/, ""), content);
422
+ writeScaffoldFile(full.replace(/\.tmpl$/, ""), content);
415
423
  unlinkSync2(full);
416
424
  }
417
425
  }
@@ -438,14 +446,14 @@ function applySurface(options) {
438
446
  pkg.dependencies = { ...dropKeys(pkg.dependencies, WEB_ONLY_DEPS), ...cfg.deps };
439
447
  pkg.devDependencies = { ...dropKeys(pkg.devDependencies, WEB_ONLY_DEV_DEPS), ...cfg.devDeps };
440
448
  pkg.scripts = { ...pkg.scripts ?? {}, ...cfg.scripts };
441
- writeFileSync2(pkgPath, `${JSON.stringify(pkg, null, 2)}
449
+ writeScaffoldFile(pkgPath, `${JSON.stringify(pkg, null, 2)}
442
450
  `);
443
451
  }
444
452
  const tsconfigPath = join3(options.targetDir, "tsconfig.json");
445
453
  if (existsSync2(tsconfigPath)) {
446
454
  const tsconfig = JSON.parse(readFileSync2(tsconfigPath, "utf-8"));
447
455
  tsconfig.include = cfg.tsconfigInclude;
448
- writeFileSync2(tsconfigPath, `${JSON.stringify(tsconfig, null, 2)}
456
+ writeScaffoldFile(tsconfigPath, `${JSON.stringify(tsconfig, null, 2)}
449
457
  `);
450
458
  }
451
459
  }
@@ -467,7 +475,6 @@ import {
467
475
  existsSync as existsSync4,
468
476
  cpSync as cpSync3,
469
477
  readFileSync as readFileSync4,
470
- writeFileSync as writeFileSync4,
471
478
  renameSync,
472
479
  unlinkSync as unlinkSync4,
473
480
  readdirSync as readdirSync3,
@@ -478,7 +485,7 @@ import { resolve as resolve3, join as join5, dirname as dirname3 } from "path";
478
485
  import { fileURLToPath as fileURLToPath3 } from "url";
479
486
 
480
487
  // src/bare-transform.ts
481
- import { existsSync as existsSync3, readFileSync as readFileSync3, writeFileSync as writeFileSync3, unlinkSync as unlinkSync3, rmSync as rmSync3 } from "fs";
488
+ import { existsSync as existsSync3, readFileSync as readFileSync3, unlinkSync as unlinkSync3, rmSync as rmSync3 } from "fs";
482
489
  import { join as join4 } from "path";
483
490
  var HELLO_PAGE = `export default function Page() {
484
491
  return <h1>Hello Theo</h1>
@@ -510,16 +517,16 @@ function applyBareTransform(targetDir, options = {}) {
510
517
  delete pkg.devDependencies.postcss;
511
518
  delete pkg.devDependencies.autoprefixer;
512
519
  }
513
- writeFileSync3(pkgPath, `${JSON.stringify(pkg, null, 2)}
520
+ writeScaffoldFile(pkgPath, `${JSON.stringify(pkg, null, 2)}
514
521
  `);
515
522
  }
516
523
  const pagePath = join4(targetDir, "app/page.tsx");
517
524
  if (existsSync3(pagePath)) {
518
- writeFileSync3(pagePath, HELLO_PAGE);
525
+ writeScaffoldFile(pagePath, HELLO_PAGE);
519
526
  }
520
527
  const layoutPath = join4(targetDir, "app/layout.tsx");
521
528
  if (existsSync3(layoutPath)) {
522
- writeFileSync3(layoutPath, BARE_LAYOUT);
529
+ writeScaffoldFile(layoutPath, BARE_LAYOUT);
523
530
  }
524
531
  const chatPath = join4(targetDir, "agents/chat.ts");
525
532
  if (existsSync3(chatPath)) {
@@ -570,10 +577,14 @@ function scaffold(targetDir, projectName, templateName = "default", options = {}
570
577
  }
571
578
  }
572
579
  cpSync3(templateDir, targetDir, { recursive: true });
573
- const gitignoreSrc = join5(targetDir, "_gitignore");
574
- const gitignoreDest = join5(targetDir, ".gitignore");
575
- if (existsSync4(gitignoreSrc)) {
576
- renameSync(gitignoreSrc, gitignoreDest);
580
+ for (const [from, to] of [
581
+ ["_gitignore", ".gitignore"],
582
+ ["_prettierignore", ".prettierignore"]
583
+ ]) {
584
+ const src = join5(targetDir, from);
585
+ if (existsSync4(src)) {
586
+ renameSync(src, join5(targetDir, to));
587
+ }
577
588
  }
578
589
  const dotClaudeSrc = join5(targetDir, "dot-claude");
579
590
  const dotClaudeDest = join5(targetDir, ".claude");
@@ -588,7 +599,7 @@ function scaffold(targetDir, projectName, templateName = "default", options = {}
588
599
  const dst = join5(targetDir, entry.slice(0, -".tmpl".length));
589
600
  const content = readFileSync4(src, "utf-8");
590
601
  const replaced = content.replace(/\{\{name\}\}/g, resolvedName);
591
- writeFileSync4(dst, replaced);
602
+ writeScaffoldFile(dst, replaced);
592
603
  unlinkSync4(src);
593
604
  }
594
605
  if (options.bare) {
@@ -815,8 +826,8 @@ function applyOptions(targetDir, options, opts) {
815
826
  pkg.scripts["lint:fix"] = "biome check . --fix";
816
827
  pkg.scripts.format = "biome format . --write";
817
828
  pkg.scripts["format:check"] = "biome format .";
818
- writeFileSync5(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
819
- writeFileSync5(
829
+ writeScaffoldFile(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
830
+ writeScaffoldFile(
820
831
  resolve4(targetDir, "biome.json"),
821
832
  JSON.stringify(
822
833
  {
@@ -838,18 +849,18 @@ function applyOptions(targetDir, options, opts) {
838
849
  delete pkg.devDependencies.eslint;
839
850
  delete pkg.devDependencies["eslint-config-prettier"];
840
851
  delete pkg.devDependencies["typescript-eslint"];
841
- writeFileSync5(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
852
+ writeScaffoldFile(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
842
853
  }
843
854
  if (options.tailwind) {
844
855
  const pkg = JSON.parse(readFileSync5(pkgPath, "utf-8"));
845
856
  pkg.devDependencies = pkg.devDependencies ?? {};
846
857
  pkg.devDependencies.tailwindcss = "^4.0.0";
847
858
  pkg.devDependencies["@tailwindcss/vite"] = "^4.0.0";
848
- writeFileSync5(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
859
+ writeScaffoldFile(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
849
860
  const cssDir = existsSync5(resolve4(targetDir, "src/app")) ? "src/app" : "app";
850
861
  const cssPath = resolve4(targetDir, `${cssDir}/globals.css`);
851
862
  const existing = existsSync5(cssPath) ? readFileSync5(cssPath, "utf-8") : "";
852
- writeFileSync5(cssPath, '@import "tailwindcss";\n\n' + existing);
863
+ writeScaffoldFile(cssPath, '@import "tailwindcss";\n\n' + existing);
853
864
  }
854
865
  if (options.srcDir) {
855
866
  const srcDir = resolve4(targetDir, "src");
@@ -865,7 +876,7 @@ function applyOptions(targetDir, options, opts) {
865
876
  const tsc2 = JSON.parse(readFileSync5(tscPath2, "utf-8"));
866
877
  tsc2.compilerOptions.baseUrl = "src";
867
878
  tsc2.include = ["src/**/*.ts", "src/**/*.tsx"];
868
- writeFileSync5(tscPath2, JSON.stringify(tsc2, null, 2) + "\n");
879
+ writeScaffoldFile(tscPath2, JSON.stringify(tsc2, null, 2) + "\n");
869
880
  }
870
881
  const tscPath = resolve4(targetDir, "tsconfig.json");
871
882
  const tsc = JSON.parse(readFileSync5(tscPath, "utf-8"));
@@ -880,7 +891,7 @@ function applyOptions(targetDir, options, opts) {
880
891
  [`${prefix}/app/*`]: ["./app/*"]
881
892
  };
882
893
  }
883
- writeFileSync5(tscPath, JSON.stringify(tsc, null, 2) + "\n");
894
+ writeScaffoldFile(tscPath, JSON.stringify(tsc, null, 2) + "\n");
884
895
  if (!options.agentsMd) {
885
896
  const agentsPath = resolve4(targetDir, "AGENTS.md");
886
897
  if (existsSync5(agentsPath)) unlinkSync5(agentsPath);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts","../src/clone-example.ts","../src/install.ts","../src/pkg-manager.ts","../src/preflight-node.ts","../src/prompts.ts","../src/scaffold-services.ts","../src/scaffold-surface.ts","../src/version.ts","../src/index.ts","../src/bare-transform.ts"],"mappings":"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","names":["readFileSync","writeFileSync","unlinkSync","renameSync","existsSync","rmSync","resolve","resolve","join","cpSync","existsSync","readdirSync","readFileSync","rmSync","statSync","unlinkSync","writeFileSync","dirname","join","resolve","fileURLToPath","__dirname","substituteTmpls","require","existsSync","cpSync","readFileSync","writeFileSync","unlinkSync","readdirSync","rmSync","statSync","resolve","join","dirname","fileURLToPath","existsSync","readFileSync","writeFileSync","unlinkSync","rmSync","join","__dirname","dirname","fileURLToPath","resolve","existsSync","readdirSync","cpSync","join","statSync","readFileSync","writeFileSync","unlinkSync","rmSync","resolve","rmSync","existsSync","unlinkSync","readFileSync","writeFileSync","renameSync","tscPath","tsc"]}
1
+ {"version":3,"sources":["../src/cli.ts","../src/clone-example.ts","../src/install.ts","../src/pkg-manager.ts","../src/preflight-node.ts","../src/prompts.ts","../src/scaffold-services.ts","../src/write-file.ts","../src/scaffold-surface.ts","../src/version.ts","../src/index.ts","../src/bare-transform.ts"],"mappings":"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","names":["readFileSync","unlinkSync","renameSync","existsSync","rmSync","resolve","resolve","join","join","cpSync","existsSync","readdirSync","readFileSync","rmSync","statSync","unlinkSync","dirname","join","resolve","fileURLToPath","__dirname","dirname","fileURLToPath","resolve","substituteTmpls","readdirSync","join","statSync","readFileSync","unlinkSync","existsSync","cpSync","rmSync","require","existsSync","cpSync","readFileSync","unlinkSync","readdirSync","rmSync","statSync","resolve","join","dirname","fileURLToPath","existsSync","readFileSync","unlinkSync","rmSync","join","join","existsSync","readFileSync","unlinkSync","rmSync","__dirname","dirname","fileURLToPath","resolve","existsSync","readdirSync","cpSync","join","statSync","readFileSync","unlinkSync","rmSync","resolve","rmSync","existsSync","unlinkSync","readFileSync","renameSync","tscPath","tsc"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-theokit",
3
- "version": "1.23.8",
3
+ "version": "1.23.11",
4
4
  "type": "module",
5
5
  "description": "Scaffold a new TheoKit project",
6
6
  "repository": {
@@ -24,6 +24,7 @@
24
24
  "cross-spawn": "^7.0.6"
25
25
  },
26
26
  "publishConfig": {
27
+ "provenance": true,
27
28
  "access": "public"
28
29
  },
29
30
  "engines": {
@@ -1,5 +1,5 @@
1
1
  # LLM API key (OpenRouter, Anthropic, or OpenAI)
2
2
  OPENROUTER_API_KEY=sk-or-v1-your-key-here
3
3
 
4
- # Optional: override the model declared by ModelCapability
4
+ # Optional: override the model declared in agents/chat.ts
5
5
  # LLM_MODEL=openai/gpt-4o-mini
@@ -6,14 +6,15 @@ This project includes TheoKit-aware skills that activate automatically when you
6
6
 
7
7
  ### Available Skills
8
8
 
9
- | Skill | Triggers when editing | What it provides |
10
- |-------|----------------------|------------------|
11
- | theokit-routes | `server/routes/**` | defineRoute API, Zod validation, HTTP methods, dynamic params |
12
- | theokit-agents | `**/*agent*`, `**/*tool*`, `**/*Agent*`, `**/*Tool*` | @Agent, @Tool, @Toolbox decorators, LLM integration |
13
- | theokit-database | `**/*schema*`, `**/*db*`, `**/drizzle*`, `**/*migration*`, `**/*seed*` | Drizzle ORM, SQLite, schema patterns, migrations |
14
- | theokit-frontend | `app/**` | File-based routing, layouts, theoFetch, useAgent |
15
- | theokit-ui | `app/**`, `**/*Chat*`, `**/*Sidebar*`, `**/*Theme*` | @theokit/ui AI components: ChatThread, ChatMessage, ToolCallCard, theming (generic primitives like CodeBlock/Sidebar come from @usetheo/ui) |
16
- | theokit-config | `theo.config*`, `**/*config*` | defineConfig options, plugins, security, storage |
9
+ | Skill | Triggers when editing | What it provides |
10
+ | ---------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
11
+ | theokit-routes | `server/routes/**` | defineRoute API, Zod validation, HTTP methods, dynamic params |
12
+ | theokit-gateways | `server/routes/**`, `**/*webhook*` | handleChannelWebhook, the `@theokit/gateway-*` adapters, signature validation, the onMessage seam |
13
+ | theokit-agents | `**/*agent*`, `**/*tool*`, `**/*Agent*`, `**/*Tool*` | @Agent, @Tool, @Toolbox decorators, LLM integration |
14
+ | theokit-database | `**/*schema*`, `**/*db*`, `**/drizzle*`, `**/*migration*`, `**/*seed*` | Drizzle ORM, SQLite, schema patterns, migrations |
15
+ | theokit-frontend | `app/**` | File-based routing, layouts, theoFetch, useAgent |
16
+ | theokit-ui | `app/**`, `**/*Chat*`, `**/*Sidebar*`, `**/*Theme*` | @theokit/ui AI components: ChatThread, ChatMessage, ToolCallCard, theming (generic primitives like CodeBlock/Sidebar come from @usetheo/ui) |
17
+ | theokit-config | `theo.config*`, `**/*config*` | defineConfig options, plugins, security, storage |
17
18
 
18
19
  ### Settings
19
20
 
@@ -25,8 +25,11 @@ pnpm-debug.log*
25
25
  *.pem
26
26
  *.tsbuildinfo
27
27
 
28
- # database
29
- data/
28
+ # framework-written app data — conversation transcripts (.data/agent-sessions/**/*.jsonl)
29
+ # and the local SQLite DB both live here. This said `data/`, without the dot, and
30
+ # matched nothing the framework writes: every prompt, answer, tool input and tool
31
+ # result went into version control on the first commit after the first run (#395).
32
+ .data/
30
33
 
31
34
  # editors
32
35
  .vscode/
@@ -0,0 +1,13 @@
1
+ # Generated output. Prettier's built-in ignore list is essentially `node_modules`, and
2
+ # `format:check` is `prettier --check .` — so without this file the lockfile and the build
3
+ # directory are checked, and a fresh app fails its own format gate the moment it builds.
4
+ #
5
+ # `.gitignore` already knows what is generated here, and neither Prettier nor ESLint reads it.
6
+ # Three lists, one fact: keep them in step.
7
+ node_modules
8
+ dist
9
+ coverage
10
+ .theokit
11
+ pnpm-lock.yaml
12
+ package-lock.json
13
+ yarn.lock
@@ -18,9 +18,37 @@ import { weatherTool } from './tools/weather.js'
18
18
  * the environment — OPENROUTER_API_KEY (preferred) OR ANTHROPIC_API_KEY / OPENAI_API_KEY; the model id is
19
19
  * provider-prefixed so OpenRouter routes it upstream (https://openrouter.ai/models).
20
20
  */
21
+ /**
22
+ * Who may run this agent, and against which conversation (ADR 0001).
23
+ *
24
+ * Every agent declares this; `'public'` is the decision, not the absence of one — and it is the
25
+ * honest one for a scaffold with no login. It means: the endpoint resumes whatever conversation the
26
+ * caller names, so anyone holding a session id may read and continue it. That is a capability
27
+ * model, and it is fine while the ids are the random UUIDs the client mints.
28
+ *
29
+ * The moment this app has users, replace it with the owner check:
30
+ *
31
+ * ```ts
32
+ * import { requireOwner } from 'theokit/server/define'
33
+ *
34
+ * export const policy = ({ subject, params }) =>
35
+ * requireOwner(subject, ownerOfConversation(params.sessionId))
36
+ * ```
37
+ *
38
+ * `subject` is whatever `server/context.ts` put on `ctx.subject`; `params` carries
39
+ * `{ agent, endpoint, sessionId?, approvalId? }`. One declaration covers the run, the thread
40
+ * routes, the approval surface and MCP.
41
+ */
42
+ export const policy = 'public'
43
+
21
44
  export default AgentBuilder.create()
22
45
  .input(z.object({ message: z.string() }))
23
- .model('openai/gpt-4o-mini')
46
+ // `LLM_MODEL` is honoured HERE, not by the framework, because this is where the model is
47
+ // declared and this file is yours. `.env.example` documented the variable and nothing read it,
48
+ // so setting it changed the model to exactly what it already was (#398, #408). One expression is
49
+ // cheaper than an override path through the framework, and it keeps the value visible in the file
50
+ // that decides it. The literal stays as the fallback: a scaffold has to run with no environment.
51
+ .model(process.env.LLM_MODEL ?? 'openai/gpt-4o-mini')
24
52
  .system(BASE_INSTRUCTIONS)
25
53
  .tool(weatherTool)
26
54
  .tool(currentTimeTool)
@@ -1,8 +1,9 @@
1
1
  import { ChatThread, ChatMessage, AgentStreaming, QuickActionChips } from '@theokit/ui'
2
- import { type UIMessage } from '@theokit/ui'
3
2
  import { ScrollArea } from '@usetheo/ui'
3
+ import { type UIMessage } from 'theokit/client'
4
4
 
5
5
  import { MODEL_NAME, STARTERS } from '../lib/constants'
6
+ import { toRenderable } from '../lib/renderable'
6
7
 
7
8
  /**
8
9
  * The scrolling transcript: the message thread + a live streaming indicator + the starter prompts (shown
@@ -25,7 +26,7 @@ export function ChatPanel({
25
26
  <div className="mx-auto flex w-full max-w-3xl flex-col gap-4 px-6 py-6">
26
27
  <ChatThread>
27
28
  {thread.map((message) => (
28
- <ChatMessage key={message.id} message={message} />
29
+ <ChatMessage key={message.id} message={toRenderable(message)} />
29
30
  ))}
30
31
  {isStreaming && <AgentStreaming model={MODEL_NAME} />}
31
32
  </ChatThread>
@@ -1,7 +1,6 @@
1
1
  'use client'
2
2
 
3
- import { type UIMessage } from '@theokit/ui'
4
- import { useAgent } from 'theokit/client'
3
+ import { useAgent, type UIMessage } from 'theokit/client'
5
4
 
6
5
  import { GREETING } from '../lib/constants'
7
6
 
@@ -12,7 +11,14 @@ import { GREETING } from '../lib/constants'
12
11
  * hand-rolled transcript (local history + commit-once effect + inflight-merge) is gone — the store owns it.
13
12
  */
14
13
  export interface ChatTranscript {
15
- /** The full transcript to render (greeting + committed history + the in-flight reply while streaming). */
14
+ /**
15
+ * The full transcript (greeting + committed history + the in-flight reply while streaming).
16
+ *
17
+ * Typed as the framework's `UIMessage` — the shape `useAgent` actually returns — and NOT as the
18
+ * component library's. Two earlier versions of this template typed it as the renderer's type and
19
+ * a fresh scaffold failed its own `typecheck` (usetheokit/theokit#80, #396). `app/lib/renderable.ts`
20
+ * converts at the one place that renders.
21
+ */
16
22
  thread: UIMessage[]
17
23
  isStreaming: boolean
18
24
  hasError: boolean
@@ -14,7 +14,14 @@ export default function RootLayout() {
14
14
  return (
15
15
  <div className="grid h-screen w-screen grid-rows-[auto_1fr] bg-background text-foreground">
16
16
  <Header />
17
- <main className="flex h-full flex-col overflow-hidden">
17
+ {/*
18
+ `data-theo-scroll` marks this as a scroll container, so its offset is restored on back
19
+ navigation (usetheokit/theokit#421). Browsers and react-router only ever restore the
20
+ DOCUMENT; in a shell like this one the document never scrolls, so without the marker there
21
+ is nothing to restore. The value is the id — add the attribute to any other element you
22
+ scroll, with a different value.
23
+ */}
24
+ <main data-theo-scroll="main" className="flex h-full flex-col overflow-hidden">
18
25
  <Outlet />
19
26
  </main>
20
27
  </div>
@@ -1,4 +1,5 @@
1
- import { type UIMessage, type QuickAction } from '@theokit/ui'
1
+ import { type QuickAction } from '@theokit/ui'
2
+ import { type UIMessage } from 'theokit/client'
2
3
  import { Sparkles } from 'lucide-react'
3
4
 
4
5
  import { AGENT } from '../../shared/agent'
@@ -0,0 +1,78 @@
1
+ import type {
2
+ ToolInvocationState,
3
+ UIMessage as RenderableMessage,
4
+ UIMessagePart as RenderablePart,
5
+ } from '@theokit/ui'
6
+ import type { UIMessage } from 'theokit/client'
7
+
8
+ /**
9
+ * The seam between what the framework STREAMS and what the component library RENDERS.
10
+ *
11
+ * `useAgent().thread` hands you `UIMessage` from `theokit/client` — the wire shape, whose parts are
12
+ * deliberately open (`{ type: string; [key: string]: unknown }`) so a `data-*` part or a part kind
13
+ * invented after your app was written still arrives intact. `<ChatMessage>` wants `@theokit/ui`'s
14
+ * `UIMessage`, whose parts are a closed discriminated union.
15
+ *
16
+ * Both are right, and neither can be made assignable to the other without one of them giving up
17
+ * what it is for. So the APP owns the conversion — which is where it belongs: your app chose the
18
+ * renderer, and the framework does not know about it. Two prior versions of this template typed the
19
+ * transcript as the renderer's type and let TypeScript discover the mismatch on the first
20
+ * `tsc --noEmit` of a fresh scaffold (usetheokit/theokit#80, #396).
21
+ *
22
+ * Nothing here is a cast. Each branch checks the fields that branch needs and builds a value the
23
+ * renderer's type accepts; a part it cannot vouch for is DROPPED rather than forced through, which
24
+ * is the honest outcome for a part this version of the library has no renderer for.
25
+ */
26
+
27
+ /** The tool states `@theokit/ui` knows how to render. Anything else is not renderable here. */
28
+ const TOOL_STATES = [
29
+ 'input-streaming',
30
+ 'input-available',
31
+ 'approval-requested',
32
+ 'approval-responded',
33
+ 'output-available',
34
+ 'output-error',
35
+ 'output-denied',
36
+ ] as const
37
+
38
+ function isToolState(value: unknown): value is ToolInvocationState {
39
+ return typeof value === 'string' && (TOOL_STATES as readonly string[]).includes(value)
40
+ }
41
+
42
+ function toRenderablePart(part: UIMessage['parts'][number]): RenderablePart | null {
43
+ const { type } = part
44
+
45
+ if (type === 'text' || type === 'reasoning') {
46
+ return typeof part.text === 'string' ? { type, text: part.text } : null
47
+ }
48
+
49
+ if (type === 'dynamic-tool' || type.startsWith('tool-')) {
50
+ // A tool part the renderer can draw needs both of these; a half-built one is skipped rather
51
+ // than drawn with holes.
52
+ if (typeof part.toolCallId !== 'string' || !isToolState(part.state)) return null
53
+ return {
54
+ ...part,
55
+ type: type === 'dynamic-tool' ? 'dynamic-tool' : `tool-${type.slice('tool-'.length)}`,
56
+ toolCallId: part.toolCallId,
57
+ state: part.state,
58
+ }
59
+ }
60
+
61
+ if (type.startsWith('data-')) {
62
+ return { ...part, type: `data-${type.slice('data-'.length)}`, data: part.data }
63
+ }
64
+
65
+ // A kind this version of `@theokit/ui` has no renderer for. Dropping it keeps the rest of the
66
+ // message readable; forcing it through would render nothing and hide the reason.
67
+ return null
68
+ }
69
+
70
+ /** Project one streamed message into the shape `<ChatMessage>` renders. */
71
+ export function toRenderable(message: UIMessage): RenderableMessage {
72
+ return {
73
+ id: message.id,
74
+ role: message.role,
75
+ parts: message.parts.map(toRenderablePart).filter((part) => part !== null),
76
+ ...(message.metadata === undefined ? {} : { metadata: message.metadata }),
77
+ }
78
+ }