- Exploring software craftsmanship with AI @ https://pairprog.io
- Writing about it @ https://blog.pairprog.io
www.npmjs.com/package/@sy... NPM package.
A library to finally turn verbose JS filesystem code into elegant one-liners
www.npmjs.com/package/@sy... NPM package.
A library to finally turn verbose JS filesystem code into elegant one-liners
My favorite one is
www.npmjs.com/package/@sy...
The concept is simple, what if you could write clean template strings in JS ?
I've been using it for clean error formating, LLM messages, and more
My favorite one is
www.npmjs.com/package/@sy...
The concept is simple, what if you could write clean template strings in JS ?
I've been using it for clean error formating, LLM messages, and more
Blending pre-made templates with LLM formatting may seem like a straightforward idea but they've executed it really well with a clean UX
And if you need to fill a presentation with corporate BS, just ask it to generate the text as well 😅
Blending pre-made templates with LLM formatting may seem like a straightforward idea but they've executed it really well with a clean UX
And if you need to fill a presentation with corporate BS, just ask it to generate the text as well 😅
Really shows how under-explored UX for AI is
I agree it's hard, but we could be doing so much more than chats
Really shows how under-explored UX for AI is
I agree it's hard, but we could be doing so much more than chats
My dream would be to incorporate a real canvas as well like the one in my UI Sketcher plugin for VSCode/Replit
My dream would be to incorporate a real canvas as well like the one in my UI Sketcher plugin for VSCode/Replit
But I don't get why I had to implement a middleware to add the last message from the prompt to the result if its role is "assistant"
Should be a default behavior
Anyway, if you need it it's "includeAssistantMessage" in @synstack/llm/middleware
But I don't get why I had to implement a middleware to add the last message from the prompt to the result if its role is "assistant"
Should be a default behavior
Anyway, if you need it it's "includeAssistantMessage" in @synstack/llm/middleware
Because prompt scripting is mostly async, I disliked writing await and Promise.all to whenever working on message arrays
So, the message() param can be a Promise<Array<Message>> or an Array<Promise<Message>>, making it simpler and cleaner to build out your prompt and chain agents
Because prompt scripting is mostly async, I disliked writing await and Promise.all to whenever working on message arrays
So, the message() param can be a Promise<Array<Message>> or an Array<Promise<Message>>, making it simpler and cleaner to build out your prompt and chain agents
I hate the base JS template string because it breaks indentation
So I wrote a separate library to fix that.
🔶 Trims text and removes extra indentation
🔶 Auto-resolves promises
🔶 Arrays to separate lines
🔶 Propagates nested indentation
github.com/pAIrprogio/...
I hate the base JS template string because it breaks indentation
So I wrote a separate library to fix that.
🔶 Trims text and removes extra indentation
🔶 Auto-resolves promises
🔶 Arrays to separate lines
🔶 Propagates nested indentation
github.com/pAIrprogio/...
While I love the chainable + immutable + string-templates + type-safety combo, writing my own adapters was too time consuming
So after using @mattpocock.com Evalite, I decided to keep my approach but switch the engine to Vercel's sdk as a peer dependency
While I love the chainable + immutable + string-templates + type-safety combo, writing my own adapters was too time consuming
So after using @mattpocock.com Evalite, I decided to keep my approach but switch the engine to Vercel's sdk as a peer dependency
It introduced a regression by overstepping its objective and removing some linter ignore comment
Then claimed that the issue was pre-existing
But "learned" from it
I feel like that's not going to be the only occurence
It introduced a regression by overstepping its objective and removing some linter ignore comment
Then claimed that the issue was pre-existing
But "learned" from it
I feel like that's not going to be the only occurence
- It handled a failing pipeline and identified some wip code that was failing the tests
- It asked me how I wanted to deal with it
- It built knowledge from my answer
- It's a one shot task, writing the prompt myself would have been bothersome
- It handled a failing pipeline and identified some wip code that was failing the tests
- It asked me how I wanted to deal with it
- It built knowledge from my answer
- It's a one shot task, writing the prompt myself would have been bothersome
V1 used a custom templating engine and most edge case required either new development or an ugly "hack" of the engine
So for V2, I went with TS scripts with some custom syntax highlighting
V1 used a custom templating engine and most edge case required either new development or an ugly "hack" of the engine
So for V2, I went with TS scripts with some custom syntax highlighting
And do we want "await" to appear in our prompts and mess up with the readability ?
Of course we don't, so we handle parrallel promise resolving for you
And do we want "await" to appear in our prompts and mess up with the readability ?
Of course we don't, so we handle parrallel promise resolving for you
No more having to specify ".join("\n")"
Let's keep that prompt ✨beautiful✨
No more having to specify ".join("\n")"
Let's keep that prompt ✨beautiful✨
So, when you interpolate synstack/text with a multiline string, the starting indentation will be replicated accross every line
So, when you interpolate synstack/text with a multiline string, the starting indentation will be replicated accross every line
So with synstack/text, trimming and de-denting is done for you.
No more messy codebase
But that's far from the only feature...
So with synstack/text, trimming and de-denting is done for you.
No more messy codebase
But that's far from the only feature...
Thanks to @reactnativelondon.co.uk for hosting us and to @delphinebugner.bsky.social for this amazing sketch
Thanks to @reactnativelondon.co.uk for hosting us and to @delphinebugner.bsky.social for this amazing sketch