keystone-cli 2.1.2 → 2.1.3

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.
package/README.md CHANGED
@@ -1311,9 +1311,9 @@ graph TD
1311
1311
  subgraph "LLM Subsystem"
1312
1312
  LLM --> ToolManager[Tool Manager]
1313
1313
  LLM --> StreamHandler[Stream Handler]
1314
- ToolManager --> Adapter[LLM Adapter (AI SDK)]
1314
+ ToolManager --> Adapter["LLM Adapter (AI SDK)"]
1315
1315
  end
1316
- Adapter --> Providers[OpenAI, Anthropic, Gemini, Copilot, etc.]
1316
+ Adapter --> Providers["OpenAI, Anthropic, Gemini, Copilot, etc."]
1317
1317
  LLM --> MCPClient[MCP Client]
1318
1318
  ```
1319
1319
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keystone-cli",
3
- "version": "2.1.2",
3
+ "version": "2.1.3",
4
4
  "description": "A local-first, declarative, agentic workflow orchestrator built on Bun",
5
5
  "type": "module",
6
6
  "bin": {
@@ -95,6 +95,14 @@ Prompt`;
95
95
  writeFileSync(filePath, agentContent);
96
96
  expect(() => parseAgent(filePath)).toThrow(/Invalid agent definition/);
97
97
  });
98
+
99
+ it('should parse the real keystone-architect.md template', () => {
100
+ const filePath = join(process.cwd(), 'src/templates/agents/keystone-architect.md');
101
+ const agent = parseAgent(filePath);
102
+ expect(agent.name).toBe('keystone-architect');
103
+ // Ensure the problematic expression is escaped/spaced
104
+ expect(agent.systemPrompt).toContain('${ { args.paramName } }');
105
+ });
98
106
  });
99
107
 
100
108
  describe('resolveAgentPath', () => {
@@ -28,8 +28,8 @@ If you are running in the Keystone CLI repository, you can also use `read_file`
28
28
  - `${{ inputs.name }}`
29
29
  - `${{ steps.id.output }}`
30
30
  - `${{ steps.id.status }}` (e.g., `'pending'`, `'running'`, `'success'`, `'failed'`, `'paused'`, `'suspended'`, `'skipped'`, `'canceled'`, `'waiting'`)
31
- - `${{ args.paramName }}` (used inside agent tools)
32
- - `${{ item }}` (current item in a `foreach` loop)
31
+ - `${ { args.paramName } }` (used inside agent tools)
32
+ - `${ { item } }` (current item in a `foreach` loop)
33
33
  - `${{ secrets.NAME }}` (access redacted secrets)
34
34
  - `${{ env.NAME }}` (access environment variables)
35
35
  - `${{ memory.key }}` (tool-driven memory updates)