Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1841 commits
Select commit Hold shift + click to select a range
8522fff
fix(runner): Use JSON.stringify for address path serialization (#1508)
seefeldb Jul 29, 2025
c1f793b
fix: log reads despite errors (#1506)
Gozala Jul 29, 2025
dcf8444
refactor: update js-runtime logging to use utils/src/logger.ts (#1510)
ellyxir Jul 29, 2025
ebaaca3
Fix iframe object updates to use transaction (#1511)
seefeldb Jul 29, 2025
df27620
Change StorageProvider.sync to take a SchemaPathSelector. (#1513)
ubik2 Jul 30, 2025
2e96a25
chore: Add a test on viewing and interacting with a charm in shell in…
jsantell Jul 30, 2025
f9a5cb9
fix: resolve array elements to nested documents instead of array indi…
seefeldb Jul 30, 2025
2a920ce
Handle the array push issue (#1519)
ubik2 Jul 30, 2025
fc16216
Prototype `/link-github` command (#1517)
bfollington Jul 30, 2025
9fbf907
Minimal support for definitions (#1509)
ubik2 Jul 30, 2025
eb2b63f
chore: Unify integration test usage (#1522)
jsantell Jul 30, 2025
4c0376e
Fix cell array schema transformation (#1515)
anotherjesse Jul 30, 2025
9bae043
fix(runner): return undefined instead of empty object, or an object w…
seefeldb Jul 30, 2025
3516201
refactor(runner): convert array_push test to use type-safe handlers (…
seefeldb Jul 30, 2025
05dca6c
`ct-list` rewrite [CT-701] (#1530)
bfollington Jul 31, 2025
526cc55
Fix ct-list re-rendering (#1531)
bfollington Jul 31, 2025
e8d2d64
Treat the absence of additionalProperties similarly to false. (#1528)
ubik2 Jul 31, 2025
924d02e
Ellyse/ct 669 ast stack overflow on recursive types (#1529)
ellyxir Jul 31, 2025
d33a19f
removed debugging log statements (#1533)
ellyxir Jul 31, 2025
ba99bf7
chore: Remove redis from CI (#1525)
jsantell Jul 31, 2025
851c36c
chore: Do not create redundant runtimes or getting of charms (#1534)
jsantell Jul 31, 2025
2b5189d
fix(api): Add StripCell to handler with no json schema (#1535)
seefeldb Jul 31, 2025
f2f5591
Just commiting some logging (#1527)
ubik2 Jul 31, 2025
363508d
fix(shell): await storage sync before navigating to charm (#1537)
seefeldb Jul 31, 2025
b7e884f
fix(html): cancel previous DOM element subscriptions on replacement (…
seefeldb Jul 31, 2025
12f2dd5
fix: allow source cell IDs to be objects in getSourceCell (#1541)
seefeldb Jul 31, 2025
e8bfbc9
feat: Initial infrastructure for RuntimeTelemetry (#1539)
jsantell Jul 31, 2025
b899e82
fix(api): Make Cell.get() return readonly values (#1538)
seefeldb Jul 31, 2025
4129ba8
Implement `/linear` workflow (#1544)
bfollington Aug 1, 2025
dacea8e
Fix `ct-message-input` not resetting value after submission [CT-705] …
bfollington Aug 1, 2025
df4516c
Fix ct-list deletion with readonly arrays [CT-717] (#1546)
bfollington Aug 1, 2025
ea8ad77
Harden `/linear` command (#1547)
bfollington Aug 1, 2025
b36e5b5
fix: ensure cell sync on all cells that are read (#1542)
seefeldb Aug 1, 2025
d96f312
Adding iframe charm support to shell (#1543)
jakedahn Aug 1, 2025
65211e4
chore: Vendor @astral/astral for pierce selectors. (#1552)
jsantell Aug 1, 2025
777b951
chore: Update iframe charm shell tests with vendored piercing selecto…
jsantell Aug 1, 2025
a493186
Introduce staticDirs option into the felt config (#1558)
jakedahn Aug 1, 2025
3c7004f
Add CTS to the glossary (#1556)
ubik2 Aug 2, 2025
d563235
Unify "source" property treatment (#1559)
ubik2 Aug 2, 2025
2a69020
only process commit notifications (#1560)
ellyxir Aug 3, 2025
18059de
convert source to object if its json string (#1562)
ellyxir Aug 3, 2025
3b6f20a
`ct-list` integration tests [CT-703] (#1532)
bfollington Aug 3, 2025
2b7fa35
without CTS, our types allow invalid handler (#1551)
anotherjesse Aug 4, 2025
bf52d1c
chore: Update simplie-list integration test to use the latest API for…
jsantell Aug 4, 2025
bc970a5
Revert "without CTS, our types allow invalid handler (#1551)" (#1568)
jakedahn Aug 4, 2025
2e69820
feat: Handle browser history events as to not reload the page (#1569)
jsantell Aug 4, 2025
4e37bfb
Re-write `ct-outliner` [CT-702] [CT-693] (#1565)
bfollington Aug 5, 2025
1754fd0
Fix `/link-github` and add `/walk-space (#1571)
bfollington Aug 5, 2025
b5c9d31
Shell navigateTo will now persist charm ids to the charm list (#1570)
jakedahn Aug 5, 2025
669ff0e
feat: Create new package 'patterns' for tested, working patterns (#1572)
jsantell Aug 5, 2025
4f68791
chore: Remove extraneous URL parsing for space initialization, now ha…
jsantell Aug 5, 2025
bd6bc67
adding explicit proxy:true, to fix default charm list in new CTS chec…
jakedahn Aug 5, 2025
772e4a3
Bg Charms integration test (#1566)
anotherjesse Aug 5, 2025
3dd547b
fix: Show charm name in default charms list view (#1577)
jsantell Aug 5, 2025
3ff1940
Phase 1: Remove jumble from toolshed/CI/build [CT-671] (#1573)
jakedahn Aug 5, 2025
3ed8c28
fix: update ct-outliner JSX types to match refactored component (#1576)
anotherjesse Aug 5, 2025
de75d7f
Fix `ct charm set` and `ct charm link` with deep paths containing lin…
bfollington Aug 6, 2025
9a2487f
Rework `/link-github` command [CT-734] (#1581)
bfollington Aug 6, 2025
17de080
wrap errors with try catch so we can log them (#1585)
ellyxir Aug 6, 2025
8f6a5da
ensure there are no undefined values in invocation (#1584)
ellyxir Aug 6, 2025
dd068a9
skipping bg service counter.test.ts test for now (#1587)
ellyxir Aug 6, 2025
8e9652c
Switch on new transactions! (#1536)
seefeldb Aug 6, 2025
34985fa
Support $defs style $ref in ContextualFlowControl (#1555)
ubik2 Aug 6, 2025
1551845
Expect cycles when traversing $ref (#1589)
ubik2 Aug 6, 2025
0a2f729
Update `/setup-space` command [CT-748] (#1590)
bfollington Aug 7, 2025
2757da9
Add `pattern` example of instantiating and `navigateTo()` on a recipe…
bfollington Aug 7, 2025
499f19a
feat: Bundle both dev and prod frontend builds within toolshed (#1591)
jsantell Aug 7, 2025
747c05d
chore: Disable shell navigation logs by default (#1592)
jsantell Aug 7, 2025
88ac9e4
simple array recipe using ast but no components (#1593)
ellyxir Aug 7, 2025
df49504
Enable CTS in all pattern recipes (#1597)
bfollington Aug 8, 2025
2b65866
feat: Connect charm title updates to app/browser title (#1594)
jsantell Aug 8, 2025
2ce03ca
prevent derive wrapping on jsx event handlers (#1598)
ellyxir Aug 8, 2025
03e91ae
based on simple-array-in-cell-ast-nocomponents.tsx but add remove but…
ellyxir Aug 8, 2025
8d02ab5
chore: Shell: Add an optional render debugger to highlight when compo…
jsantell Aug 8, 2025
1f79cca
chore: shell: Add fallback charm title in native charm list, minor up…
jsantell Aug 8, 2025
7fafc8e
Setting up post-deploy CI job to run patterns integration tests again…
jakedahn Aug 8, 2025
780440a
Add pattern + testcase to verify live updates [CT-753] [CT-757] (#1596)
bfollington Aug 11, 2025
756a4cb
minor cleanup of post-deploy patterns tests (#1606)
jakedahn Aug 11, 2025
4104ffa
chore: Add initial telemetry probes (#1608)
jsantell Aug 11, 2025
d8c8b46
Attempting to fix pattern tests with slightly increased waits (#1610)
jakedahn Aug 11, 2025
2060c37
feat: add render debugger to shell and ui/v2 lit-based elements (#1611)
jsantell Aug 11, 2025
5980ac2
chore: Use waitForSelectors for pattern integration tests to be less …
jsantell Aug 11, 2025
3ecc21c
Prevent incorporating stale server facts into changes (#1563)
ubik2 Aug 11, 2025
fe059ae
Changed Cell.getRaw to return Immutable<T> or undefined (#1588)
ubik2 Aug 11, 2025
80c76e6
Only re-render `ct-render` if the passed cell changed (#1613)
bfollington Aug 11, 2025
66a2acc
Update `/walk-space` to use `graphiti` MCP (#1614)
bfollington Aug 11, 2025
beeb3a8
Fix charm link serialization in `ct-outliner` (#1615)
bfollington Aug 12, 2025
80250b7
runner: refactor recipeManager and save Program without added local i…
seefeldb Aug 12, 2025
ee74b83
fix(runner): pass synced to new cells (#1620)
seefeldb Aug 12, 2025
bf774ba
Filter out redundant fact updates before sending them to the server (…
ubik2 Aug 12, 2025
0a3cbd9
feat: Apply Cache-Control headers to static assets from toolshed (#1622)
jsantell Aug 12, 2025
d6c301f
Revert "fix(runner): pass synced to new cells (#1620)"
jakedahn Aug 12, 2025
421460b
Don't include history when we return conflicts. (#1621)
ubik2 Aug 12, 2025
33adc34
Demo prep fixes (#1623)
bfollington Aug 13, 2025
c2d8810
added failing test for a nested recursive type, skipping for now but …
ellyxir Aug 13, 2025
a59ccbc
linkedlist within a cell as an example (#1627)
ellyxir Aug 13, 2025
da74fd0
chore: streamline setting and waiting for application state to reduce…
jsantell Aug 13, 2025
8d9ef0d
iframe: Expose load state status as attributes for integration tests …
jsantell Aug 13, 2025
6c54f77
feat: add harness for (Deno) unit tests in shell. Add de/serializatio…
jsantell Aug 13, 2025
f19050e
Allow common element properties like `id` for `ct-` JSX types (#1632)
bfollington Aug 14, 2025
bf772f5
chore: Align CharmManager/CharmController usage in integration tests …
jsantell Aug 14, 2025
16acf6f
Remove jumble, phase 2 (#1583)
jakedahn Aug 14, 2025
61fdb32
Introducing a new RuntimeTelemetry based debugger tool (#1635)
jakedahn Aug 14, 2025
469b10b
cycle detection improvements (#1636)
ellyxir Aug 14, 2025
5dc320d
added named based guards and depth limits (#1640)
ellyxir Aug 14, 2025
66d441f
chore: Remove and reorganize unused dependencies (#1638)
jsantell Aug 14, 2025
1d26d23
feat: Use recipe jsx.d.ts for workspace types. (#1642)
jsantell Aug 14, 2025
ad8f086
fix(runner): map replaces array instead of setting length (#1641)
seefeldb Aug 14, 2025
daca6ce
Manually add `[ID]` to items created internally within `ct-list` (#1645)
bfollington Aug 15, 2025
bd3f65c
Fix various issues causing arrays to have conflicts or sometimes be e…
ubik2 Aug 15, 2025
43cc334
JSX CT types inclusion (#1649)
jsantell Aug 15, 2025
add21ef
Ellyse/ct 659 ast schema failure with UI (#1648)
ellyxir Aug 15, 2025
d86bb9f
made simple editable version, does not use bidirectional binding (#1651)
ellyxir Aug 15, 2025
8a73f67
added definitions for heap nursery and cache (#1625)
ellyxir Aug 15, 2025
8edde04
Remove useSchemaQueries flag, since we essentially require it at this…
ubik2 Aug 15, 2025
68fcbc6
Introduce `llm.tsx` pattern (#1646)
bfollington Aug 18, 2025
31dc9a7
Enable `ct-list` edit and delete tests (#1654)
bfollington Aug 19, 2025
e2f9b33
Some type consolidation and cleanup, mostly around traverse code (#1652)
ubik2 Aug 19, 2025
426a926
Nested counter pattern [CT-764] (#1605)
bfollington Aug 19, 2025
8bcc347
feat: JSX.Element now extends VNode, allowing vnode typechecked in JS…
jsantell Aug 19, 2025
a9b512e
prevent circular proxy loop by collapsing immediate‑parent deref link…
ellyxir Aug 19, 2025
05be82e
Add `ct-checkbox` + `ifElse()` pattern (#1655)
bfollington Aug 19, 2025
e98c3f1
Add `ct-render` pattern (#1658)
bfollington Aug 19, 2025
41b78da
Avoid issuing redundant schema queries (#1657)
ubik2 Aug 20, 2025
0b079e7
Clean up `patterns` test code (#1660)
bfollington Aug 20, 2025
ff08cf4
Add `fetch-data` pattern + test [CT-763] (#1604)
bfollington Aug 20, 2025
6d80d56
Patterns feedback (#1663)
bfollington Aug 21, 2025
23ba1ff
Add `ct-tags.tsx` (#1664)
bfollington Aug 21, 2025
5750883
chore: Disable unknown subscription warning in storage inspector (#1666)
jsantell Aug 21, 2025
3bcad44
chore: Skip the creation of CI-bounded test charms (#1667)
jsantell Aug 21, 2025
35f0146
chore: Make LLM/HTTP side effects in pattern integration tests opt-in…
jsantell Aug 21, 2025
399a849
Capture stdout when running patterns via ansible script (#1669)
bfollington Aug 21, 2025
a2da111
Revert "Capture stdout when running patterns via ansible script" (#1671)
bfollington Aug 21, 2025
785e76e
Added an existsInHistory flag to ConflictError (#1670)
ubik2 Aug 21, 2025
0da9d63
Fix schema generated by a handler to handle definitions properly (#1662)
ubik2 Aug 21, 2025
f61242a
Expand `/explore-recipe` command (#1673)
bfollington Aug 22, 2025
68d700b
demo user login with individual sessions pattern via chat (#1661)
ellyxir Aug 22, 2025
ba97a3c
chore: Remove usage of any types. (#1659)
jsantell Aug 22, 2025
d5a907d
cli: intercept navigateto in call/render and print charm id (CT-825) …
ellyxir Aug 22, 2025
465ed3c
Changes to match the semantics of IAttestation (#1674)
ubik2 Aug 23, 2025
73d8a08
Rework `/imagine-recipe` (#1679)
bfollington Aug 25, 2025
fcad7da
chore: Wait for page to update url rather than wait in instantiate re…
jsantell Aug 25, 2025
7297872
bumping the sleep to fix the nested counter pattern test (#1682)
jakedahn Aug 25, 2025
7a169bf
chore: Fix some CI race conditions by waiting for expected state (#1681)
jsantell Aug 25, 2025
2860f2b
chore: Align toolshed CI with other packages. Deno formatting now enf…
jsantell Aug 25, 2025
b8c6c70
Removing another sleep in the patterns integration tests (#1685)
jakedahn Aug 25, 2025
cc12788
Remove most of the shim related code (#1678)
ubik2 Aug 25, 2025
9dcea99
chore: Move attestation CI step after integration tests. (#1684)
jsantell Aug 25, 2025
ae48924
perf(runner): optimize link resolution to minimize storage reads (#1630)
seefeldb Aug 25, 2025
5aa0ec7
Add `/onboarding` (#1687)
bfollington Aug 26, 2025
d49d1b0
chore: Fail on error logs in browser integration tests, move waitFor …
jsantell Aug 26, 2025
e10bbb2
feat: Align accessing well-known properties of Charms (result, input)…
jsantell Aug 26, 2025
f019ed6
chore: Remove legacy-scripts dir (#1690)
jsantell Aug 26, 2025
2e6b933
`list-operations.tsx` pattern (includes `[ID]`) (#1676)
bfollington Aug 27, 2025
24e1043
chore: Disable log checker in integration (#1695)
jsantell Aug 27, 2025
c9d6d33
Use env to set log level (#1691)
ubik2 Aug 27, 2025
c685e4a
AST transformer handling intersection types as per CT-762 (#1686)
mathpirate Aug 27, 2025
b8463d9
chore: Disable certain leaky patterns until we can submit charms with…
jsantell Aug 28, 2025
e8b3787
chore: Rename remaining uses of TOOLSHED_API_URL to API_URL (#1698)
jsantell Aug 28, 2025
c39fc91
Fix memory route for subscribe to work on firefox (#1697)
ubik2 Aug 28, 2025
2668545
Improve logging and handling of post-deploy patterns test failures (#…
jakedahn Aug 28, 2025
b06474c
Minor log download fix for post-deploy-patterns-tests workflow
jakedahn Aug 28, 2025
3d5ebe2
Another attempt to fix log download for post-deploy-patterns-tests wo…
jakedahn Aug 28, 2025
a9aed4f
Don't compute the filteredCount if we aren't visible. (#1700)
ubik2 Aug 28, 2025
d1f72f9
Add `chat.tsx` (#1694)
bfollington Aug 28, 2025
14ff4a7
Suppress empty bubble appearing in empty `chat.tsx` (#1704)
bfollington Aug 28, 2025
03c2351
Added diagram and updated glossary (#1703)
ubik2 Aug 29, 2025
aa35c2e
fix(builtins): avoid undefined errors by using json variant of refer …
seefeldb Aug 29, 2025
01e104a
Ellyse/ct 846 explore figma like pattern (#1708)
ellyxir Aug 30, 2025
1fe55ad
Ellyse/ct 846 explore figma like pattern2 (#1709)
ellyxir Aug 30, 2025
bad906a
Fix debounce behaviour in `ct-message-input` (#1710)
bfollington Sep 1, 2025
798cb4e
Consolidate all recipe development docs (#1688)
bfollington Sep 2, 2025
211da43
Set `disabled` when chat is generating (#1711)
bfollington Sep 2, 2025
e86dcf5
refactor(runner/scheduler): simplify API; remove dirty tracking; add …
seefeldb Sep 2, 2025
0a73b0e
runner/scheduler: ensure re-queued events execute after commit failur…
seefeldb Sep 2, 2025
3319ff5
runner: split run into setup/start; decouple charm setup from schedul…
seefeldb Sep 2, 2025
2db9558
Add tool calling support to `llm()` (#1706)
bfollington Sep 3, 2025
5908c38
chore: Re-enable CI compilation tests for side effect patterns (#1716)
jsantell Sep 3, 2025
66ca891
Updating shell to allow for charms to expand to the full content area…
jakedahn Sep 3, 2025
abdf8c3
chore: Do not start charms when registering in CI (#1717)
jsantell Sep 3, 2025
d89e3f0
chore: Update deno to 2.4.5 (#1715)
jsantell Sep 3, 2025
390bd15
fix(scheduler,html): avoid dropping subscriptions; unsubscribe only p…
seefeldb Sep 3, 2025
ff5dd95
chore: Run charms on creation for CI tests that operate on the charm …
jsantell Sep 3, 2025
204cee3
Split `chat.tsx` into tool use vs vanilla [CT-856] [CT-857] (#1720)
bfollington Sep 4, 2025
0a7f398
Refactor `llmDialog` node to be entirely event driven (#1721)
bfollington Sep 4, 2025
cc05594
Introduce `ct-screen` and `ct-autolayout` (#1722)
bfollington Sep 4, 2025
2c0dbcd
chore: Wait for correct title in fetchdata tests (#1724)
jsantell Sep 4, 2025
82ebc6f
Finished removal of Storage and DocumentMap (#1723)
ubik2 Sep 4, 2025
5008676
chore: Clean up side effects of running 'ct init' in tests (#1725)
jsantell Sep 4, 2025
01c6948
Speculative fix to address stray promise (#1702)
ubik2 Sep 4, 2025
e0d1124
Implement `note.tsx` pattern (#1728)
bfollington Sep 5, 2025
0b37eec
feat(runner): add editWithRetry transaction helper; add tests (#1727)
seefeldb Sep 5, 2025
b18e732
Fix local LLM API calls from shell (#1730)
jakedahn Sep 5, 2025
0e55f30
Fixing check errors caused by re-organizing toolshed llm api cors in …
jakedahn Sep 5, 2025
f42de00
Attempting to fix CORS on the llm endpoint, for local use (#1731)
jakedahn Sep 5, 2025
1752eda
`ct-select` and `chatbot.tsx` model picker (#1729)
bfollington Sep 8, 2025
690ad6b
chore: add retries for write commits in core packages (#1733)
seefeldb Sep 8, 2025
323d000
Introduce web search and read webpage tools (#1735)
bfollington Sep 8, 2025
6960920
Added comments to TheConflictError to better explain the different er…
ubik2 Sep 8, 2025
4230522
Union types should use anyOf instead of oneOf (#1732)
ubik2 Sep 8, 2025
69cd8b0
Do not set `maxTokens` unless provided to `llm-dialog.ts` (#1738)
bfollington Sep 9, 2025
05d6b76
Implement multi-turn tool use in `llm-dialog.ts` (#1734)
bfollington Sep 9, 2025
01ebd40
Fix pending lifecycle for tool calls (#1740)
bfollington Sep 9, 2025
9767125
Change from time-based Cache-Control headers to Etag based asset cach…
jakedahn Sep 9, 2025
2bf95e6
Updating supported LLM models in Toolshed's models.ts (#1743)
jakedahn Sep 9, 2025
e5c328a
chore: Add a model-test task to toolshed for querying supported model…
jsantell Sep 9, 2025
762c140
chore: Update default model to anthropic:claude-sonnet-4-0 (#1745)
jsantell Sep 9, 2025
0037da2
Actually apply `model` in `chatbot-tools.tsx` (#1747)
bfollington Sep 9, 2025
508e30d
Added doc about the JSON Schema features (#1744)
ubik2 Sep 9, 2025
6fb42b6
Introduce `ct-chat` component to render tool results neatly (#1749)
bfollington Sep 10, 2025
f0146e8
fix(runner): incorrectly detected and logged tx errors (#1748)
seefeldb Sep 10, 2025
4b6bb19
Fix ETag comparison to handle weak ETags from nginx compression (#1751)
jakedahn Sep 10, 2025
bbffebd
fix(runner/scheduler): retry reactive actions on commit conflict (#1752)
seefeldb Sep 10, 2025
89c6f4e
feat(runner): add abort/retry, full schemas, etc. to llm-dialog (#1746)
seefeldb Sep 10, 2025
d0a034b
feat: Add LLM health monitoring with Discord alerting (#1754)
jakedahn Sep 10, 2025
5532904
Fix(chat): Fix chat UI and expose schemas on handlers (#1755)
seefeldb Sep 10, 2025
5b59e29
Change JSONSchema type to allow boolean (#1739)
ubik2 Sep 10, 2025
32ff834
Fixing system prompt bool for llms
jakedahn Sep 10, 2025
c3ae9f5
JSON Schema transformer rewrite (#1726)
mathpirate Sep 10, 2025
6d6cfc2
feat(chat): use the schema from the handler for tool calls as fallbac…
seefeldb Sep 10, 2025
936f858
chore: Migrate @luca/esbuild-deno-loader to @deno/esbuild-plugin (#1757)
jsantell Sep 11, 2025
bba85fc
Add `chatbot-outliner.tsx` and `ct-prompt-input` (#1750)
bfollington Sep 11, 2025
d8b1d80
Adding special handling for prompts when the given model does not sup…
jakedahn Sep 11, 2025
109a374
chore: Support text imports in esbuild, like Deno 2.4 (#1761)
jsantell Sep 11, 2025
255c741
Fix/schema add jsdoc descriptions (#1762)
mathpirate Sep 12, 2025
212032d
Fix `ct-outliner` indent/outdent bugs (#1766)
bfollington Sep 12, 2025
fbd83f3
`ct-chat` theme support (#1759)
bfollington Sep 12, 2025
ff0f92c
properly handled frozen/non-configurable values in proxy
seefeldb Sep 12, 2025
7a8441e
Revert "properly handled frozen/non-configurable values in proxy"
seefeldb Sep 12, 2025
594123b
store charm reference in a cell (#1764)
ellyxir Sep 12, 2025
eb61799
fix(runner): proxies return frozen values as is (#1770)
seefeldb Sep 12, 2025
c409d6e
feat: Move CliProgram to a deno-only js-runtime export FileSystemProg…
jsantell Sep 12, 2025
fe7fb56
pattern to have an array of charms in a cell (#1771)
ellyxir Sep 12, 2025
2f36f23
feat: Introduce HttpProgramResolver, for resolving recipe dependencie…
jsantell Sep 12, 2025
0efb483
feat(runner,patterns): allow recipe-based tools in llm-dialog (#1758)
seefeldb Sep 12, 2025
8caedce
Extract common `Chat` recipe (#1767)
bfollington Sep 15, 2025
a43df1c
Add `ct-code-editor` backlinks (#1768)
bfollington Sep 15, 2025
8605b9e
created a launcher for chatbot.tsx charms (#1774)
ellyxir Sep 15, 2025
6e1ce58
Add a quicklaunch toolbar to spawn new charms to the space default ch…
jakedahn Sep 15, 2025
508302f
Correctly handle storage updates in runner. (#1777)
ubik2 Sep 15, 2025
ad86501
feat(chat): rely fully on jsdoc to bring in description and schema (#…
seefeldb Sep 15, 2025
24afb73
fix(runner): avoid infinite recursion in function cacher (#1776)
seefeldb Sep 16, 2025
83ad42c
feat: Initial JS sandbox primitives. (#1753)
jsantell Sep 16, 2025
c88ca64
chore: Remove Shoelace themes and its dependencies (#1781)
jsantell Sep 16, 2025
ec07070
Implement auto-generated title for in `chatbot.tsx` (#1779)
bfollington Sep 16, 2025
059bf41
CT-886 conflict sync error unit test and improvements (#1778)
ubik2 Sep 16, 2025
666bb07
fix for jsdocs in schemas to prefer the nearest jsdoc comment (#1782)
mathpirate Sep 16, 2025
2084ed7
Spec for OpaqueRef->Cells transition (#1786)
seefeldb Sep 16, 2025
d4ec259
feat(schema-generator): inherit intersection docs with provenance (#1…
mathpirate Sep 16, 2025
692c6bc
Note backlinks CT-896 (#1784)
bfollington Sep 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
51 changes: 51 additions & 0 deletions .claude/agents/page-manager.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
name: page-manager
description: Use this agent when you need to create, manage, or update structured documentation pages using the CommonTools page.tsx recipe for project tracking, todo lists, progress reports, or collaborative workspaces. Examples: <example>Context: User is starting a complex multi-step refactoring task that will span multiple sessions. user: "I need to refactor the authentication system across multiple modules - this will take several days" assistant: "I'll use the page-manager agent to create a progress tracking page for this complex refactoring task" <commentary>Since this is a large, multi-step task that needs tracking across sessions, use the page-manager agent to set up structured documentation and progress tracking.</commentary></example> <example>Context: User wants to maintain a shared workspace for ongoing development discussions. user: "Can we create a shared space where we can track our architecture decisions and ongoing discussions?" assistant: "I'll use the page-manager agent to set up a collaborative blackboard page for our architecture discussions" <commentary>The user wants a persistent collaborative workspace, which is exactly what the page-manager agent provides through CommonTools pages.</commentary></example> <example>Context: Agent proactively suggests creating documentation during a complex task. user: "Let's implement the new API endpoints for user management" assistant: "This looks like a substantial implementation task. Let me use the page-manager agent to create a progress tracking page so we can maintain visibility into our work across sessions" <commentary>For complex implementation tasks, proactively use the page-manager agent to set up tracking and documentation.</commentary></example>
tools: Bash, Glob, Grep, LS, ExitPlanMode, Read, NotebookRead, WebFetch, WebSearch
color: red
---

You are the Page Manager Agent, a specialized assistant for creating and maintaining structured documentation pages using the CommonTools page.tsx recipe (typically located at `../recipes/recipes/coralreef/page.tsx`). You excel at organizing complex development work through persistent, collaborative documentation spaces.

**Core Responsibilities:**

1. **Configuration Management**: Load/create .page-agent-config.json with recipe path, current space, identity, API URL, and active page mappings. Auto-initialize missing configurations by prompting for required parameters.

2. **Page Lifecycle Management**: Deploy page.tsx instances as charms in date-based spaces (YYYY-MM-DD-[username] format), manage content through CT binary commands, and maintain real-time synchronization between local state and deployed charms.

3. **Content Structure**: Use outliner tree format for all page content. Support todo lists with hierarchical task breakdown, progress reports with timestamped entries, shared blackboards for collaborative exchange, and general notes with flexible outline structure.

4. **CommonTools Integration**: Execute CT binary commands for charm deployment (new), content updates (set), content retrieval (get), handler calls (call), and space listing (ls). Verify CT binary exists and build if missing. Manage claude.key identity and validate Tailnet connectivity.

5. **Use helper script**: use the `page-manager-helper.sh` script in `.claude` to help speed up working with pages

**Operational Workflow:**

- **Session Start**: Load existing configuration or initialize new setup, verify CT binary and recipe availability, validate space access
- **Page Creation**: Determine appropriate page type based on context, deploy new charm with template content, update configuration mappings
- **Content Updates**: Read current content, apply modifications to outline structure, update via CT commands, verify success
- **Error Recovery**: Handle missing recipes, CT binary issues, network problems, and space access errors with appropriate recovery procedures

**Page Types and Templates:**

- **Todo Lists**: Hierarchical tasks with status tracking and priority levels
- **Progress Reports**: Timestamped entries with status, findings, next steps, and milestone tracking
- **Shared Blackboards**: Free-form collaborative spaces with user/Claude message exchange
- **General Notes**: Flexible outline format for various content types

**Integration Requirements:**

- Maintain consistency with existing recipe development workflows
- Coordinate with wiki integration for knowledge capture
- Sync with internal task management systems
- Provide cross-session persistence for ongoing work

**Quality Assurance:**

- Always verify CT binary functionality before operations
- Validate recipe syntax and deployment success
- Maintain audit trail of content changes
- Implement retry logic for network failures
- Provide clear error messages and recovery guidance

When users request documentation, tracking, or collaborative workspace needs, proactively suggest appropriate page types and create them with relevant template content. Always save configuration changes and provide clear access information for created pages.
85 changes: 85 additions & 0 deletions .claude/agents/recipe-dev-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
---
name: recipe-dev-guide
description: Use this agent when you need to guide users through CommonTools recipe development with the ct utility. This includes modifying existing recipes, creating new ones, setting up recipe networking, debugging recipe issues, and working with multi-file recipe structures. The agent assumes the user has already set up a space and needs help with recipe-specific tasks.\n\nExamples:\n- <example>\n Context: User has a CommonTools space set up and wants to modify an existing recipe\n user: "I need to update my todo list recipe to add a priority field"\n assistant: "I'll use the recipe-dev-guide agent to help you modify your existing recipe"\n <commentary>\n Since the user wants to modify a recipe in their CommonTools space, use the recipe-dev-guide agent to walk through the modification process.\n </commentary>\n</example>\n- <example>\n Context: User is working with CommonTools and needs to create a new recipe\n user: "Can you help me create a recipe that filters items based on status?"\n assistant: "Let me use the recipe-dev-guide agent to guide you through creating a new filter recipe"\n <commentary>\n The user needs help creating a new CommonTools recipe, so use the recipe-dev-guide agent for the development workflow.\n </commentary>\n</example>\n- <example>\n Context: User is debugging recipe connections in their CommonTools space\n user: "My recipes aren't passing data correctly between each other"\n assistant: "I'll use the recipe-dev-guide agent to help debug your recipe networking and data flow"\n <commentary>\n Recipe networking and debugging issues should be handled by the recipe-dev-guide agent.\n </commentary>\n</example>
color: orange
---

You are an expert CommonTools recipe development guide specializing in helping users create, modify, and network recipes using the ct utility. You have deep knowledge of the CommonTools framework, recipe patterns, and the ct command-line interface.

**Critical Prerequisites**:
- You MUST first read `docs/common/CT.md` for CT binary setup instructions
- You MUST search for and read `COMPONENTS.md` and `RECIPES.md` files in the user's recipes folder before working on recipes
- Read `HANDLERS.md` when encountering event handler errors
- The user should have already run the space setup script or have an existing space

**Your Core Responsibilities**:

1. **Initial Setup Verification**:
- Ensure CT binary is properly set up following the common instructions
- Verify the user has an existing space by running `ct charm ls`
- Show existing charms and ask what they want to work on
- Ensure TypeScript setup is current (user should run `ct init` in recipes directory)

2. **Recipe Modification Workflow**:
- Get recipe source using `ct charm getsrc`
- Guide user through code changes while respecting project formatting (80 char lines, 2 spaces, semicolons, double quotes)
- Test syntax with `ct dev [recipe] --no-run` before deploying
- Update charm source with `ct charm setsrc`
- Verify changes with `ct charm inspect`

3. **New Recipe Creation**:
- Help design recipe requirements (inputs, outputs, processing logic)
- Create recipe files following CommonTools patterns
- Start with appropriate templates based on recipe type (filter, transformer, aggregator, generator, side-effect)
- Deploy with `ct charm new` and record the CHARM_ID

4. **Recipe Networking**:
- Inspect current connections and data flow
- Create links between charms using `ct charm link [source]/[field] [target]/[input]`
- Ensure schema compatibility between linked charms
- Help visualize and debug data flow

5. **Multi-File Recipe Development**:
- Explain import/export patterns and self-contained deployment
- Guide on file organization and relative imports
- Help avoid common pitfalls (schema mismatches, path issues)
- Test composed recipes before deployment

6. **Debugging and Testing**:
- Use `ct charm inspect --json` for detailed data inspection
- Leverage cell operations (`ct charm get/set`) for precise debugging
- Help interpret error messages and fix issues
- Create test scenarios with known inputs

**Handler Pattern Guidance**:
When working with UI handlers, ensure users understand:
- Event schema (usually empty `{}` for clicks)
- State schema (declares required data)
- Handler invocation (pass object matching state schema)
- Handler function receives `(event, state)`

**Best Practices to Enforce**:
- Always verify recipe syntax before deploying
- Keep track of charm IDs when creating new ones
- Test incrementally and inspect frequently
- Use meaningful names for charms and fields
- Save modified recipes to files before using setsrc
- Follow TypeScript and project conventions from CLAUDE.md

**Command Quick Reference**:
You should be fluent in all ct commands:
- `ct charm getsrc/setsrc` - Get/update recipe source
- `ct dev [recipe] --no-run` - Test syntax
- `ct charm new` - Create new charm
- `ct charm link` - Connect charms
- `ct charm inspect` - View charm details
- `ct charm get/set` - Manipulate cell data
- `ct charm ls` - List all charms

**Error Handling Approach**:
- Parse and explain syntax errors clearly
- Debug data type mismatches systematically
- Diagnose connection and permission issues
- Guide users to fix issues step by step

Remember: Recipe development is iterative. Guide users through each step, test frequently, and ensure they understand the data flow and patterns they're implementing. Always respect the project's coding standards and established patterns from CLAUDE.md.
56 changes: 56 additions & 0 deletions .claude/agents/research-specialist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
name: research-specialist
description: Use this agent when you need to thoroughly investigate a topic, understand how specific code works, explore new areas of the codebase, or gather comprehensive information before making changes. Examples: <example>Context: User wants to understand how authentication works in the codebase. user: "How does user authentication work in this system?" assistant: "I'll use the research-specialist agent to thoroughly investigate the authentication system." <commentary>The user is asking about understanding how specific code works, which is perfect for the research-specialist agent.</commentary></example> <example>Context: User is planning to add a new feature and needs to understand existing patterns. user: "I want to add a new API endpoint for user profiles. What patterns should I follow?" assistant: "Let me use the research-specialist agent to research the existing API patterns and architecture before we proceed." <commentary>This requires exploring the codebase and understanding patterns, which the research-specialist handles systematically.</commentary></example>
tools: Task, Bash, Glob, Grep, LS, ExitPlanMode, Read, NotebookRead, WebFetch, TodoWrite, WebSearch, mcp__playwright__browser_close, mcp__playwright__browser_resize, mcp__playwright__browser_console_messages, mcp__playwright__browser_handle_dialog, mcp__playwright__browser_evaluate, mcp__playwright__browser_file_upload, mcp__playwright__browser_install, mcp__playwright__browser_press_key, mcp__playwright__browser_type, mcp__playwright__browser_navigate, mcp__playwright__browser_navigate_back, mcp__playwright__browser_navigate_forward, mcp__playwright__browser_network_requests, mcp__playwright__browser_take_screenshot, mcp__playwright__browser_snapshot, mcp__playwright__browser_click, mcp__playwright__browser_drag, mcp__playwright__browser_hover, mcp__playwright__browser_select_option, mcp__playwright__browser_tab_list, mcp__playwright__browser_tab_new, mcp__playwright__browser_tab_select, mcp__playwright__browser_tab_close, mcp__playwright__browser_wait_for
color: pink
---

You are a research specialist with expertise in systematic codebase investigation and technical analysis. Your role is to conduct thorough, methodical research on any topic or question using all available tools and resources.

**CRITICAL FIRST STEP**: Before doing anything else, you MUST read docs/common/CT.md to understand how to use the CommonTools system properly.

**Your Research Methodology**:

1. **Start with existing knowledge**: Read .claude/commands/search-wiki.md and search the wiki first to check for existing research on this topic to avoid duplication

2. **Systematic codebase exploration**:
- Use Glob tool to find relevant files and directories
- Use Grep tool to search for specific patterns, functions, or concepts
- Use Read tool to examine key files in detail
- Focus on understanding architecture, patterns, and implementations

3. **Documentation review**:
- Check README.md files at all levels
- Review CLAUDE.md and other project documentation
- Examine inline code comments and JSDoc
- Look for configuration files and their documentation

4. **Historical analysis**:
- Examine git history for relevant changes
- Look at recent commits related to the topic
- Understand evolution of the codebase in relevant areas

5. **Test examination**:
- Find and analyze test files to understand expected behavior
- Look for integration tests that show real usage patterns
- Use tests to validate your understanding

**Output Requirements**:
Provide a comprehensive research report structured as:

- **Executive Summary**: Key findings in 2-3 sentences
- **Detailed Analysis**: Thorough investigation with specific file paths, line numbers, and code references
- **Architecture Insights**: Design decisions, patterns, and structural understanding
- **Recent Changes**: Relevant git history and development trends
- **Recommendations**: Next steps or actionable insights if applicable

**MANDATORY FINAL STEP**: After delivering your research report, you MUST ask the user if they want to deploy the research findings using the .claude/commands/deploy-research.md command. This is required regardless of whether the user seems interested - always offer this option.

**Quality Standards**:
- Be thorough but focused on the specific question or topic
- Provide concrete evidence with file paths and line numbers
- Explain complex concepts clearly
- Identify gaps in your research and acknowledge limitations
- Cross-reference findings across multiple sources when possible

You are autonomous in your research approach but should ask for clarification if the research scope is unclear or too broad to handle effectively.
Loading
Loading