Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ jobs:
package:
uses: normlanguage/registry/.github/workflows/package.yml@90b4d247fa4f5f2b620924d2cbc0553e89843700
with:
norm-version: 0.27.23
norm-version: 0.27.29
9 changes: 6 additions & 3 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,15 @@ jobs:
- uses: actions/checkout@v4
- uses: normlanguage/registry/.github/actions/setup-norm@90b4d247fa4f5f2b620924d2cbc0553e89843700
with:
version: 0.27.23
version: 0.27.29
- name: Generate and validate Skill
shell: bash
run: |
set -euo pipefail
norm docs . --output build/api --skill SKILL.md --strict
test -s SKILL.md
norm docs . --output build/api --skill SKILL.md
python3 tests/check_api.py
git diff --exit-code -- SKILL.md


- name: Verify conversation logs
run: python3 tests/persist_conversation.py
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
/build/
build/
/resources/META-INF/licenses/agent/LICENSE
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,8 @@

This repository publishes the `agent` Norm module. The package contract and generated API Skill are defined by [normlanguage/package-template](https://github.com/normlanguage/package-template).

`SKILL.md` is generated from the public declarations with `norm docs . --skill SKILL.md --strict`; update it in the same commit as source changes.
`SKILL.md` is generated from the public declarations with `norm docs . --output build/api --skill SKILL.md`; update it in the same commit as source changes.

Pass `persist: [JsonPersist(), SqlitePersist()]` to record a conversation in `logs/`. Each provider accepts an optional directory, either positional (`JsonPersist("logs")`) or named (`SqlitePersist(directory: "logs")`). The providers generate matching filenames ending in `.jsonl` and `.sqlite`. SQLite uses its bundled driver. With an empty list, recording is disabled.

Each event is appended in order, including the effective model request, streamed text, tool calls, outputs and failures. The SQLite `events` table preserves insertion order in `sequence`. Reuse an Agent or pass an explicit `AgentSession` to continue a conversation. New sessions get separate files.
Loading
Loading