Skip to content
Open
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
5 changes: 0 additions & 5 deletions .changeset/archive-before-retention.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fence-studio-connection-launches.md

This file was deleted.

20 changes: 0 additions & 20 deletions .changeset/mcp-alias-role-names.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/order-studio-auth-transitions.md

This file was deleted.

37 changes: 0 additions & 37 deletions .changeset/pink-lions-normalize-input.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/reconcile-studio-connection-removal.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/restart-stale-studio-sessions.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/session-config-cleanup.md

This file was deleted.

8 changes: 0 additions & 8 deletions .changeset/studio-tenant-scoped-definition-list.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/template-harness-selection.md

This file was deleted.

34 changes: 0 additions & 34 deletions .changeset/trigger-kinds-webhook-event.md

This file was deleted.

40 changes: 40 additions & 0 deletions packages/agent-core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,45 @@
# @sapiom/orchestration-core

## 0.14.0

### Minor Changes

- 5d18ba3: Expose all four backend trigger kinds from the local authoring MCP (SAP-3174).
`sapiom_dev_agents_schedule` now accepts `kind: "event"` (+ `eventType`) and
`kind: "webhook"` alongside `schedule_cron` / `schedule_once`. A webhook create
returns the public hook URL, the shown-once signing secret, and the signing
scheme in the tool result (HMAC-SHA256 over `timestamp.eventId.rawBody`, sent as
`X-Sapiom-Timestamp` / `X-Sapiom-Event-Id` / `X-Sapiom-Signature`), and the
description says when a webhook trigger fits versus an App Link `/hook/*`
receiver (third-party senders cannot produce our HMAC). `_schedule_inspect` and
`_schedule_cancel` describe every kind; the new `sapiom_dev_agents_schedule_secret`
tool rotates, completes a rotation of, or revokes a webhook secret.

`@sapiom/agent-core` gains the matching `ScheduleKind` members, the webhook /
event fields on `ScheduleSummary`, `CreateScheduleResult`, and
`rotateScheduleSecret` / `completeScheduleSecretRotation` / `revokeScheduleSecret`.

**Breaking (types only, `@sapiom/agent-core`):** `ScheduleFireRecord.scheduledFor`
is now `string | null` — an event or webhook fire has no occurrence time, so code
that did `new Date(fire.scheduledFor)` must guard for `null` (or read
`fire.receiptId` for those kinds). `ScheduleSummary` gains five required fields
(`eventType`, `publicId`, `secretVersion`, `graceUntil`, `revokedAt`, all
nullable) that the server always returns; hand-built `ScheduleSummary` values
(test fakes, adapters) must add them. `ScheduleKind` widens to include `"event"`
and `"webhook"`, so an exhaustive `switch` over it needs the two new arms. No
runtime behaviour changes for existing cron / one-off callers.

The offline `AUTHORING_INSTRUCTIONS` fallback and the `sapiom-agent-authoring`
skill gain a triggers paragraph teaching the same thing; the served-text change
is version-gated on `@sapiom/mcp` >= 0.15 because older clients are never
offered the new kinds.

### Patch Changes

- Updated dependencies [421439b]
- @sapiom/agent@0.14.0
- @sapiom/agent-runtime@0.7.2

## 0.13.5

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/agent-core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sapiom/agent-core",
"version": "0.13.5",
"version": "0.14.0",
"description": "Pure, stateless core functions for scaffolding, validating, and operating Sapiom agents — shared by the CLI and MCP packages.",
"license": "MIT",
"author": "Sapiom",
Expand Down
2 changes: 1 addition & 1 deletion packages/agent-core/src/version-fallback.generated.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
// @sapiom/agent + @sapiom/tools versions and the offline scaffold fallback can no
// longer drift.
export const VERSION_FALLBACK = {
agent: "0.13.2",
agent: "0.14.0",
tools: "0.36.0",
} as const;
40 changes: 40 additions & 0 deletions packages/agent-runtime/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,45 @@
# @sapiom/orchestration-runtime

## 0.7.2

### Patch Changes

- 421439b: A defaulted field is no longer required at any depth in an input schema

A step's published `inputSchema` listed a field as `required` even when it
carried a Zod `.default()`, as long as the field sat inside a nested object, an
array item, or a union/intersection branch. An AJV pre-gate then rejected a
**partial** input for those fields while an entirely omitted input validated —
so `{ opts: {} }` failed where `{}` passed, contradicting the authoring guidance
that a default makes a field omissible. A `.prefault()` field stayed required at
every depth for the same reason.

`zodToJsonSchema` now converts in Zod's `io: "input"` mode — the mode that
describes what a caller may SEND — and runs the result through a new exported
`normalizeInputJsonSchema`, which drops defaulted keys from `required` and
strips `additionalProperties: false` on every schema node it can reach.

**If you call `zodToJsonSchema` directly**, its output changes: a smaller
`required` set, no `additionalProperties: false` from `z.strictObject()`, a
`.pipe()`/`.transform()` described by its input type rather than its output
type, and a schema containing a `.transform()` now converting successfully where
it previously threw `Transforms cannot be represented in JSON Schema`. Every
change is in the "what may a caller send" direction. If you need the
value-a-parse-returns schema instead, call `z.toJSONSchema(schema)` yourself.

Also:

- `stepInputContract` / `workflowInputContract` return the same normalized
schema the manifest publishes, so a displayed contract (a Run form, inspect
tooling) agrees with what a pre-gate enforces.
- `@sapiom/agent-runtime`'s step-input pre-gate normalizes the manifest it is
handed, so an agent deployed on an earlier version accepts a partial nested
input without being redeployed. A `.prefault()` field still needs a redeploy —
the older schema records no `default` keyword for it to key off.

- Updated dependencies [421439b]
- @sapiom/agent@0.14.0

## 0.7.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/agent-runtime/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sapiom/agent-runtime",
"version": "0.7.1",
"version": "0.7.2",
"description": "The Sapiom orchestration runtime: the host-agnostic graph-walker decision logic + the host interfaces (execution store, step dispatcher, observer) it runs against. One runtime, two hosts (server engine + local runner).",
"license": "MIT",
"author": "Sapiom",
Expand Down
15 changes: 15 additions & 0 deletions packages/agent-studio/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# @sapiom/agent-studio

## 0.1.26

### Patch Changes

- Updated dependencies [7776065]
- Updated dependencies [84f5767]
- Updated dependencies [6b0b11f]
- Updated dependencies [4b1ebc5]
- Updated dependencies [fefb4f8]
- Updated dependencies [cf3e872]
- Updated dependencies [0f28c4e]
- Updated dependencies [b460c9a]
- Updated dependencies [7776065]
- @sapiom/harness@0.17.0

## 0.1.25

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/agent-studio/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sapiom/agent-studio",
"version": "0.1.25",
"version": "0.1.26",
"description": "Agent Studio — build, test, deploy, and run Sapiom agents with your coding agent in a local workspace.",
"keywords": [
"sapiom",
Expand Down
37 changes: 37 additions & 0 deletions packages/agent/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,42 @@
# @sapiom/orchestration

## 0.14.0

### Minor Changes

- 421439b: A defaulted field is no longer required at any depth in an input schema

A step's published `inputSchema` listed a field as `required` even when it
carried a Zod `.default()`, as long as the field sat inside a nested object, an
array item, or a union/intersection branch. An AJV pre-gate then rejected a
**partial** input for those fields while an entirely omitted input validated —
so `{ opts: {} }` failed where `{}` passed, contradicting the authoring guidance
that a default makes a field omissible. A `.prefault()` field stayed required at
every depth for the same reason.

`zodToJsonSchema` now converts in Zod's `io: "input"` mode — the mode that
describes what a caller may SEND — and runs the result through a new exported
`normalizeInputJsonSchema`, which drops defaulted keys from `required` and
strips `additionalProperties: false` on every schema node it can reach.

**If you call `zodToJsonSchema` directly**, its output changes: a smaller
`required` set, no `additionalProperties: false` from `z.strictObject()`, a
`.pipe()`/`.transform()` described by its input type rather than its output
type, and a schema containing a `.transform()` now converting successfully where
it previously threw `Transforms cannot be represented in JSON Schema`. Every
change is in the "what may a caller send" direction. If you need the
value-a-parse-returns schema instead, call `z.toJSONSchema(schema)` yourself.

Also:

- `stepInputContract` / `workflowInputContract` return the same normalized
schema the manifest publishes, so a displayed contract (a Run form, inspect
tooling) agrees with what a pre-gate enforces.
- `@sapiom/agent-runtime`'s step-input pre-gate normalizes the manifest it is
handed, so an agent deployed on an earlier version accepts a partial nested
input without being redeployed. A `.prefault()` field still needs a redeploy —
the older schema records no `default` keyword for it to key off.

## 0.13.2

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/agent/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sapiom/agent",
"version": "0.13.2",
"version": "0.14.0",
"description": "Versioned public contract for authoring Sapiom agents: types, directive constructors/guards, defineAgent, defineStep, InMemoryContextStore. Shared by customer agent definitions, the sandbox step-runner, and the engine.",
"license": "MIT",
"author": "Sapiom",
Expand Down
19 changes: 19 additions & 0 deletions packages/cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# @sapiom/cli

## 16.0.0

### Patch Changes

- Updated dependencies [7776065]
- Updated dependencies [84f5767]
- Updated dependencies [6b0b11f]
- Updated dependencies [4b1ebc5]
- Updated dependencies [421439b]
- Updated dependencies [fefb4f8]
- Updated dependencies [cf3e872]
- Updated dependencies [0f28c4e]
- Updated dependencies [b460c9a]
- Updated dependencies [7776065]
- Updated dependencies [5d18ba3]
- @sapiom/harness@0.17.0
- @sapiom/agent@0.14.0
- @sapiom/agent-core@0.14.0

## 15.0.0

### Patch Changes
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sapiom/cli",
"version": "15.0.0",
"version": "16.0.0",
"description": "The Sapiom command-line interface — scaffold, validate, and ship Sapiom agents.",
"license": "MIT",
"author": "Sapiom",
Expand Down Expand Up @@ -46,7 +46,7 @@
"zod": "^3.25.76"
},
"peerDependencies": {
"@sapiom/harness": ">=0.16.0"
"@sapiom/harness": ">=0.17.0"
},
"peerDependenciesMeta": {
"@sapiom/harness": {
Expand Down
Loading