Releases: eigenpal/sdk-python
eigenpal@0.5.1
Major Changes
- c15ce88: Rename agent API calls to
/v1/agentsand scope execution helpers under their owning workflow or agent.
Patch Changes
-
5909b21: Add execution-scoped agent feedback filters and expected artifact management to the API, CLI, and SDKs.
-
9905f7f: Fix the published SDKs so the README's default
baseUrlworks. 0.4.10
shipped paths under/v1/...while the actual Next.js routes live at
/api/v1/..., so every call from a freshly installed SDK either hit
the marketing-site HTML (200 OK silently parsed as a workflow object)
or 307'd to a redirect Python wouldn't follow. Now the OpenAPI spec
emits/api/v1/...and the regenerated TS + Python clients call the
real URLs without abaseUrl: '.../api'workaround.Also trims the v1 public surface so SDK consumers no longer see internal
columns. The legacy app handlers spread the raw DB row, which dragged
tenantId,isBlock,currentHistoryId,evalConfigYaml,createdBy,
the fullcurrentVersionobject,traceId,spanId,versionId,
leaseId,workerId,definitionSnapshot,blockSnapshots,
stepResults,evalScore,priority, retry-chain pointers, etc. into
typed SDK output. The v1 endpoints now wrap the legacy response with
pickPublicWorkflow/pickPublicWorkflowVersion/pickPublicExecution
helpers (forwarded viaforwardItem/forwardList), so the wire shape
matches the schema.WorkflowSummaryis now
{ id, version, createdAt, updatedAt }—versionis the release tag
string callers actually want, replacing the internalcurrentHistoryId.Heads-up: workflow
nameis no longer surfaced as a top-level field
(it was previously leaked viacurrentVersion.definition.name). It's
authoritative inside the YAML, so fetch it via
client.workflows.versions(id)[0].yamlContentand parse, or treat the
workflowidas the canonical identifier.Tightens response handling on both sides: the client throws
EigenpalErrorwhenever a response carries a non-JSON Content-Type
(2xx or 4xx), so the next misconfiguredbaseUrlfails loudly with a
"point baseUrl at your EigenPal instance root" message instead of
silently returning string-as-object or surfacing a downstream
JSONDecodeError.Renames the constructor:
Eigenpal→EigenpalClientin both SDKs.
The old name was ambiguous when imported alongsideEigenpalErroretc.
and read awkwardly asnew Eigenpal(...)next to the brand
("Eigenpal");EigenpalClientmatches the convention of every
neighbouring class. No backwards-compat alias since 0.4.10 is fresh.Adds
bun sdk:smoke:local [ts|py|both]— packs the local SDK as the
exact tarball / wheel that ships, installs into a clean tmp workspace,
and runs an end-to-end smoke againstEIGENPAL_BASE_URL. Verifies the
v1 paths resolve, the trimmed public shape is enforced on the wire,
and the HTML-host guard fires.defineRouterejects paths that don't start with/api/so the
mismatch can't reappear by accident.
eigenpal@0.4.17
Major Changes
- c15ce88: Rename agent API calls to
/v1/agentsand scope execution helpers under their owning workflow or agent.
Patch Changes
-
9905f7f: Fix the published SDKs so the README's default
baseUrlworks. 0.4.10
shipped paths under/v1/...while the actual Next.js routes live at
/api/v1/..., so every call from a freshly installed SDK either hit
the marketing-site HTML (200 OK silently parsed as a workflow object)
or 307'd to a redirect Python wouldn't follow. Now the OpenAPI spec
emits/api/v1/...and the regenerated TS + Python clients call the
real URLs without abaseUrl: '.../api'workaround.Also trims the v1 public surface so SDK consumers no longer see internal
columns. The legacy app handlers spread the raw DB row, which dragged
tenantId,isBlock,currentHistoryId,evalConfigYaml,createdBy,
the fullcurrentVersionobject,traceId,spanId,versionId,
leaseId,workerId,definitionSnapshot,blockSnapshots,
stepResults,evalScore,priority, retry-chain pointers, etc. into
typed SDK output. The v1 endpoints now wrap the legacy response with
pickPublicWorkflow/pickPublicWorkflowVersion/pickPublicExecution
helpers (forwarded viaforwardItem/forwardList), so the wire shape
matches the schema.WorkflowSummaryis now
{ id, version, createdAt, updatedAt }—versionis the release tag
string callers actually want, replacing the internalcurrentHistoryId.Heads-up: workflow
nameis no longer surfaced as a top-level field
(it was previously leaked viacurrentVersion.definition.name). It's
authoritative inside the YAML, so fetch it via
client.workflows.versions(id)[0].yamlContentand parse, or treat the
workflowidas the canonical identifier.Tightens response handling on both sides: the client throws
EigenpalErrorwhenever a response carries a non-JSON Content-Type
(2xx or 4xx), so the next misconfiguredbaseUrlfails loudly with a
"point baseUrl at your EigenPal instance root" message instead of
silently returning string-as-object or surfacing a downstream
JSONDecodeError.Renames the constructor:
Eigenpal→EigenpalClientin both SDKs.
The old name was ambiguous when imported alongsideEigenpalErroretc.
and read awkwardly asnew Eigenpal(...)next to the brand
("Eigenpal");EigenpalClientmatches the convention of every
neighbouring class. No backwards-compat alias since 0.4.10 is fresh.Adds
bun sdk:smoke:local [ts|py|both]— packs the local SDK as the
exact tarball / wheel that ships, installs into a clean tmp workspace,
and runs an end-to-end smoke againstEIGENPAL_BASE_URL. Verifies the
v1 paths resolve, the trimmed public shape is enforced on the wire,
and the HTML-host guard fires.defineRouterejects paths that don't start with/api/so the
mismatch can't reappear by accident.
eigenpal@0.4.16
Major Changes
- c15ce88: Rename agent API calls to
/v1/agentsand scope execution helpers under their owning workflow or agent.
Patch Changes
-
9905f7f: Fix the published SDKs so the README's default
baseUrlworks. 0.4.10
shipped paths under/v1/...while the actual Next.js routes live at
/api/v1/..., so every call from a freshly installed SDK either hit
the marketing-site HTML (200 OK silently parsed as a workflow object)
or 307'd to a redirect Python wouldn't follow. Now the OpenAPI spec
emits/api/v1/...and the regenerated TS + Python clients call the
real URLs without abaseUrl: '.../api'workaround.Also trims the v1 public surface so SDK consumers no longer see internal
columns. The legacy app handlers spread the raw DB row, which dragged
tenantId,isBlock,currentHistoryId,evalConfigYaml,createdBy,
the fullcurrentVersionobject,traceId,spanId,versionId,
leaseId,workerId,definitionSnapshot,blockSnapshots,
stepResults,evalScore,priority, retry-chain pointers, etc. into
typed SDK output. The v1 endpoints now wrap the legacy response with
pickPublicWorkflow/pickPublicWorkflowVersion/pickPublicExecution
helpers (forwarded viaforwardItem/forwardList), so the wire shape
matches the schema.WorkflowSummaryis now
{ id, version, createdAt, updatedAt }—versionis the release tag
string callers actually want, replacing the internalcurrentHistoryId.Heads-up: workflow
nameis no longer surfaced as a top-level field
(it was previously leaked viacurrentVersion.definition.name). It's
authoritative inside the YAML, so fetch it via
client.workflows.versions(id)[0].yamlContentand parse, or treat the
workflowidas the canonical identifier.Tightens response handling on both sides: the client throws
EigenpalErrorwhenever a response carries a non-JSON Content-Type
(2xx or 4xx), so the next misconfiguredbaseUrlfails loudly with a
"point baseUrl at your EigenPal instance root" message instead of
silently returning string-as-object or surfacing a downstream
JSONDecodeError.Renames the constructor:
Eigenpal→EigenpalClientin both SDKs.
The old name was ambiguous when imported alongsideEigenpalErroretc.
and read awkwardly asnew Eigenpal(...)next to the brand
("Eigenpal");EigenpalClientmatches the convention of every
neighbouring class. No backwards-compat alias since 0.4.10 is fresh.Adds
bun sdk:smoke:local [ts|py|both]— packs the local SDK as the
exact tarball / wheel that ships, installs into a clean tmp workspace,
and runs an end-to-end smoke againstEIGENPAL_BASE_URL. Verifies the
v1 paths resolve, the trimmed public shape is enforced on the wire,
and the HTML-host guard fires.defineRouterejects paths that don't start with/api/so the
mismatch can't reappear by accident.
eigenpal@0.4.15
Major Changes
- c15ce88: Rename agent API calls to
/v1/agentsand scope execution helpers under their owning workflow or agent.
Patch Changes
-
9905f7f: Fix the published SDKs so the README's default
baseUrlworks. 0.4.10
shipped paths under/v1/...while the actual Next.js routes live at
/api/v1/..., so every call from a freshly installed SDK either hit
the marketing-site HTML (200 OK silently parsed as a workflow object)
or 307'd to a redirect Python wouldn't follow. Now the OpenAPI spec
emits/api/v1/...and the regenerated TS + Python clients call the
real URLs without abaseUrl: '.../api'workaround.Also trims the v1 public surface so SDK consumers no longer see internal
columns. The legacy app handlers spread the raw DB row, which dragged
tenantId,isBlock,currentHistoryId,evalConfigYaml,createdBy,
the fullcurrentVersionobject,traceId,spanId,versionId,
leaseId,workerId,definitionSnapshot,blockSnapshots,
stepResults,evalScore,priority, retry-chain pointers, etc. into
typed SDK output. The v1 endpoints now wrap the legacy response with
pickPublicWorkflow/pickPublicWorkflowVersion/pickPublicExecution
helpers (forwarded viaforwardItem/forwardList), so the wire shape
matches the schema.WorkflowSummaryis now
{ id, version, createdAt, updatedAt }—versionis the release tag
string callers actually want, replacing the internalcurrentHistoryId.Heads-up: workflow
nameis no longer surfaced as a top-level field
(it was previously leaked viacurrentVersion.definition.name). It's
authoritative inside the YAML, so fetch it via
client.workflows.versions(id)[0].yamlContentand parse, or treat the
workflowidas the canonical identifier.Tightens response handling on both sides: the client throws
EigenpalErrorwhenever a response carries a non-JSON Content-Type
(2xx or 4xx), so the next misconfiguredbaseUrlfails loudly with a
"point baseUrl at your EigenPal instance root" message instead of
silently returning string-as-object or surfacing a downstream
JSONDecodeError.Renames the constructor:
Eigenpal→EigenpalClientin both SDKs.
The old name was ambiguous when imported alongsideEigenpalErroretc.
and read awkwardly asnew Eigenpal(...)next to the brand
("Eigenpal");EigenpalClientmatches the convention of every
neighbouring class. No backwards-compat alias since 0.4.10 is fresh.Adds
bun sdk:smoke:local [ts|py|both]— packs the local SDK as the
exact tarball / wheel that ships, installs into a clean tmp workspace,
and runs an end-to-end smoke againstEIGENPAL_BASE_URL. Verifies the
v1 paths resolve, the trimmed public shape is enforced on the wire,
and the HTML-host guard fires.defineRouterejects paths that don't start with/api/so the
mismatch can't reappear by accident.
eigenpal@0.4.14
Major Changes
- c15ce88: Rename agent API calls to
/v1/agentsand scope execution helpers under their owning workflow or agent.
Patch Changes
-
9905f7f: Fix the published SDKs so the README's default
baseUrlworks. 0.4.10
shipped paths under/v1/...while the actual Next.js routes live at
/api/v1/..., so every call from a freshly installed SDK either hit
the marketing-site HTML (200 OK silently parsed as a workflow object)
or 307'd to a redirect Python wouldn't follow. Now the OpenAPI spec
emits/api/v1/...and the regenerated TS + Python clients call the
real URLs without abaseUrl: '.../api'workaround.Also trims the v1 public surface so SDK consumers no longer see internal
columns. The legacy app handlers spread the raw DB row, which dragged
tenantId,isBlock,currentHistoryId,evalConfigYaml,createdBy,
the fullcurrentVersionobject,traceId,spanId,versionId,
leaseId,workerId,definitionSnapshot,blockSnapshots,
stepResults,evalScore,priority, retry-chain pointers, etc. into
typed SDK output. The v1 endpoints now wrap the legacy response with
pickPublicWorkflow/pickPublicWorkflowVersion/pickPublicExecution
helpers (forwarded viaforwardItem/forwardList), so the wire shape
matches the schema.WorkflowSummaryis now
{ id, version, createdAt, updatedAt }—versionis the release tag
string callers actually want, replacing the internalcurrentHistoryId.Heads-up: workflow
nameis no longer surfaced as a top-level field
(it was previously leaked viacurrentVersion.definition.name). It's
authoritative inside the YAML, so fetch it via
client.workflows.versions(id)[0].yamlContentand parse, or treat the
workflowidas the canonical identifier.Tightens response handling on both sides: the client throws
EigenpalErrorwhenever a response carries a non-JSON Content-Type
(2xx or 4xx), so the next misconfiguredbaseUrlfails loudly with a
"point baseUrl at your EigenPal instance root" message instead of
silently returning string-as-object or surfacing a downstream
JSONDecodeError.Renames the constructor:
Eigenpal→EigenpalClientin both SDKs.
The old name was ambiguous when imported alongsideEigenpalErroretc.
and read awkwardly asnew Eigenpal(...)next to the brand
("Eigenpal");EigenpalClientmatches the convention of every
neighbouring class. No backwards-compat alias since 0.4.10 is fresh.Adds
bun sdk:smoke:local [ts|py|both]— packs the local SDK as the
exact tarball / wheel that ships, installs into a clean tmp workspace,
and runs an end-to-end smoke againstEIGENPAL_BASE_URL. Verifies the
v1 paths resolve, the trimmed public shape is enforced on the wire,
and the HTML-host guard fires.defineRouterejects paths that don't start with/api/so the
mismatch can't reappear by accident.
eigenpal@0.4.13
Major Changes
- c15ce88: Rename agent API calls to
/v1/agentsand scope execution helpers under their owning workflow or agent.
Patch Changes
-
9905f7f: Fix the published SDKs so the README's default
baseUrlworks. 0.4.10
shipped paths under/v1/...while the actual Next.js routes live at
/api/v1/..., so every call from a freshly installed SDK either hit
the marketing-site HTML (200 OK silently parsed as a workflow object)
or 307'd to a redirect Python wouldn't follow. Now the OpenAPI spec
emits/api/v1/...and the regenerated TS + Python clients call the
real URLs without abaseUrl: '.../api'workaround.Also trims the v1 public surface so SDK consumers no longer see internal
columns. The legacy app handlers spread the raw DB row, which dragged
tenantId,isBlock,currentHistoryId,evalConfigYaml,createdBy,
the fullcurrentVersionobject,traceId,spanId,versionId,
leaseId,workerId,definitionSnapshot,blockSnapshots,
stepResults,evalScore,priority, retry-chain pointers, etc. into
typed SDK output. The v1 endpoints now wrap the legacy response with
pickPublicWorkflow/pickPublicWorkflowVersion/pickPublicExecution
helpers (forwarded viaforwardItem/forwardList), so the wire shape
matches the schema.WorkflowSummaryis now
{ id, version, createdAt, updatedAt }—versionis the release tag
string callers actually want, replacing the internalcurrentHistoryId.Heads-up: workflow
nameis no longer surfaced as a top-level field
(it was previously leaked viacurrentVersion.definition.name). It's
authoritative inside the YAML, so fetch it via
client.workflows.versions(id)[0].yamlContentand parse, or treat the
workflowidas the canonical identifier.Tightens response handling on both sides: the client throws
EigenpalErrorwhenever a response carries a non-JSON Content-Type
(2xx or 4xx), so the next misconfiguredbaseUrlfails loudly with a
"point baseUrl at your EigenPal instance root" message instead of
silently returning string-as-object or surfacing a downstream
JSONDecodeError.Renames the constructor:
Eigenpal→EigenpalClientin both SDKs.
The old name was ambiguous when imported alongsideEigenpalErroretc.
and read awkwardly asnew Eigenpal(...)next to the brand
("Eigenpal");EigenpalClientmatches the convention of every
neighbouring class. No backwards-compat alias since 0.4.10 is fresh.Adds
bun sdk:smoke:local [ts|py|both]— packs the local SDK as the
exact tarball / wheel that ships, installs into a clean tmp workspace,
and runs an end-to-end smoke againstEIGENPAL_BASE_URL. Verifies the
v1 paths resolve, the trimmed public shape is enforced on the wire,
and the HTML-host guard fires.defineRouterejects paths that don't start with/api/so the
mismatch can't reappear by accident.
eigenpal@0.4.12
Major Changes
- c15ce88: Rename agent API calls to
/v1/agentsand scope execution helpers under their owning workflow or agent.
Patch Changes
-
9905f7f: Fix the published SDKs so the README's default
baseUrlworks. 0.4.10
shipped paths under/v1/...while the actual Next.js routes live at
/api/v1/..., so every call from a freshly installed SDK either hit
the marketing-site HTML (200 OK silently parsed as a workflow object)
or 307'd to a redirect Python wouldn't follow. Now the OpenAPI spec
emits/api/v1/...and the regenerated TS + Python clients call the
real URLs without abaseUrl: '.../api'workaround.Also trims the v1 public surface so SDK consumers no longer see internal
columns. The legacy app handlers spread the raw DB row, which dragged
tenantId,isBlock,currentHistoryId,evalConfigYaml,createdBy,
the fullcurrentVersionobject,traceId,spanId,versionId,
leaseId,workerId,definitionSnapshot,blockSnapshots,
stepResults,evalScore,priority, retry-chain pointers, etc. into
typed SDK output. The v1 endpoints now wrap the legacy response with
pickPublicWorkflow/pickPublicWorkflowVersion/pickPublicExecution
helpers (forwarded viaforwardItem/forwardList), so the wire shape
matches the schema.WorkflowSummaryis now
{ id, version, createdAt, updatedAt }—versionis the release tag
string callers actually want, replacing the internalcurrentHistoryId.Heads-up: workflow
nameis no longer surfaced as a top-level field
(it was previously leaked viacurrentVersion.definition.name). It's
authoritative inside the YAML, so fetch it via
client.workflows.versions(id)[0].yamlContentand parse, or treat the
workflowidas the canonical identifier.Tightens response handling on both sides: the client throws
EigenpalErrorwhenever a response carries a non-JSON Content-Type
(2xx or 4xx), so the next misconfiguredbaseUrlfails loudly with a
"point baseUrl at your EigenPal instance root" message instead of
silently returning string-as-object or surfacing a downstream
JSONDecodeError.Renames the constructor:
Eigenpal→EigenpalClientin both SDKs.
The old name was ambiguous when imported alongsideEigenpalErroretc.
and read awkwardly asnew Eigenpal(...)next to the brand
("Eigenpal");EigenpalClientmatches the convention of every
neighbouring class. No backwards-compat alias since 0.4.10 is fresh.Adds
bun sdk:smoke:local [ts|py|both]— packs the local SDK as the
exact tarball / wheel that ships, installs into a clean tmp workspace,
and runs an end-to-end smoke againstEIGENPAL_BASE_URL. Verifies the
v1 paths resolve, the trimmed public shape is enforced on the wire,
and the HTML-host guard fires.defineRouterejects paths that don't start with/api/so the
mismatch can't reappear by accident.
eigenpal@0.4.10
- Initial release.
- Coverage: workflow trigger (sync + async), execution polling, cancel, workflow & version listing.
Eigenpalfacade with API key auth, automatic retries on 5xx / 429 / network errors withRetry-Afterhonoring, typedEigenpalErrorsubclasses, andexecutions.runAndWait()for client-side polling.