Skip to main content

Python SDK for Aionis Memory Graph API

Project description

aionis-sdk

Python SDK for Aionis Memory Graph API.

Install

pip install aionis-sdk

Usage

import os
from aionis_sdk import AionisClient

client = AionisClient(
    base_url="http://localhost:3001",
    timeout_s=10.0,
    api_key=os.getenv("API_KEY"),           # optional: X-Api-Key
    auth_bearer=os.getenv("AUTH_BEARER"),   # optional: Authorization: Bearer <token>
    admin_token=os.getenv("ADMIN_TOKEN"),   # optional: X-Admin-Token
)

out = client.write(
    {
        "scope": "default",
        "input_text": "python sdk write",
        "auto_embed": False,
        "nodes": [{"client_id": "py_evt_1", "type": "event", "text_summary": "hello python sdk"}],
        "edges": [],
    }
)

print(out["status"], out["request_id"], out["data"]["commit_id"])

Typed payloads

0.2.0+ exports TypedDict API payloads from aionis_sdk.types:

from aionis_sdk import AionisClient
from aionis_sdk.types import ToolsFeedbackInput, ToolsSelectInput

client = AionisClient(base_url="http://localhost:3001")

select_payload: ToolsSelectInput = {
    "scope": "default",
    "run_id": "run_001",
    "context": {"intent": "json", "provider": "minimax", "tool": {"name": "curl"}},
    "candidates": ["curl", "bash"],
    "strict": True,
}
select_out = client.tools_select(select_payload)
decision_id = (select_out.get("data") or {}).get("decision", {}).get("decision_id")

feedback_payload: ToolsFeedbackInput = {
    "scope": "default",
    "run_id": "run_001",
    "decision_id": decision_id,
    "outcome": "positive",
    "context": {"intent": "json", "provider": "minimax", "tool": {"name": "curl"}},
    "candidates": ["curl", "bash"],
    "selected_tool": "curl",
}
client.tools_feedback(feedback_payload)
client.tools_run({"scope": "default", "run_id": "run_001"})

Auth Options

  1. api_key: sends X-Api-Key.
  2. auth_bearer: sends Authorization: Bearer <token>.
  3. admin_token: sends X-Admin-Token (debug/admin flows).

Covered methods

  1. write
  2. recall
  3. recall_text
  4. context_assemble
  5. planning_context
  6. find
  7. create_session
  8. write_event
  9. list_session_events
  10. pack_export
  11. pack_import
  12. archive_rehydrate
  13. nodes_activate
  14. handoff_store
  15. handoff_recover
  16. sandbox_create_session
  17. sandbox_execute
  18. sandbox_run_get
  19. sandbox_run_logs
  20. sandbox_run_artifact
  21. sandbox_run_cancel
  22. rules_evaluate
  23. rules_state
  24. tools_select
  25. tools_decision
  26. tools_run
  27. tools_feedback
  28. feedback
  29. replay_run_start
  30. replay_step_before
  31. replay_step_after
  32. replay_run_end
  33. replay_run_get
  34. replay_playbook_compile_from_run
  35. replay_playbook_get
  36. replay_playbook_candidate
  37. replay_playbook_promote
  38. replay_playbook_repair
  39. replay_playbook_repair_review
  40. replay_playbook_run
  41. replay_playbook_dispatch
  42. automation_create
  43. automation_get
  44. automation_list
  45. automation_telemetry
  46. automation_assign_reviewer
  47. automation_promote
  48. automation_validate
  49. automation_graph_validate
  50. automation_shadow_report
  51. automation_shadow_review
  52. automation_shadow_validate
  53. automation_shadow_validate_dispatch
  54. automation_compensation_policy_matrix
  55. automation_run
  56. automation_run_get
  57. automation_run_list
  58. automation_run_assign_reviewer
  59. automation_run_cancel
  60. automation_run_approve_repair
  61. automation_run_compensation_retry
  62. automation_run_compensation_assign
  63. automation_run_compensation_record_action
  64. automation_run_resume
  65. automation_run_reject_repair
  66. health
  67. get_capability_contract

Admin/control methods (require admin_token):

  1. control_upsert_tenant, control_list_tenants, control_upsert_project
  2. control_create_api_key, control_list_api_keys, control_list_stale_api_keys, control_revoke_api_key, control_rotate_api_key
  3. control_create_alert_route, control_list_alert_routes, control_update_alert_route_status, control_list_alert_deliveries
  4. control_enqueue_incident_publish_job, control_list_incident_publish_jobs, control_replay_incident_publish_jobs
  5. control_upsert_tenant_quota, control_get_tenant_quota, control_delete_tenant_quota
  6. control_upsert_sandbox_budget, control_get_sandbox_budget, control_delete_sandbox_budget, control_list_sandbox_budgets
  7. control_list_audit_events, control_get_tenant_dashboard, control_get_tenant_diagnostics
  8. control_get_tenant_incident_publish_rollup, control_get_tenant_incident_publish_slo, control_get_tenant_timeseries, control_get_tenant_key_usage

Error model

  1. AionisApiError: API returned non-2xx response.
  2. AionisNetworkError: request timeout/network failure.

Capability-aware helpers:

  1. is_backend_capability_unsupported_error(err)
  2. parse_backend_capability_error_details(err.details)
  3. is_shadow_dual_write_strict_failure_error(err)
  4. parse_shadow_dual_write_strict_failure_details(err.details)
from aionis_sdk import AionisApiError, is_backend_capability_unsupported_error

try:
    client.pack_export({"scope": "default"})
except Exception as err:
    if is_backend_capability_unsupported_error(err):
        print(err.details.get("capability"), err.details.get("failure_mode"))
    elif isinstance(err, AionisApiError):
        print(err.code, str(err))

Smoke

set -a; source .env; set +a
npm run sdk:py:smoke

Build check (repo local)

npm run sdk:py:compile
npm run sdk:py:release-check

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aionis_sdk-0.2.18.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aionis_sdk-0.2.18-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file aionis_sdk-0.2.18.tar.gz.

File metadata

  • Download URL: aionis_sdk-0.2.18.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for aionis_sdk-0.2.18.tar.gz
Algorithm Hash digest
SHA256 7f5b7c664b07aa27f0c750b51994cff77eb29dc7ef827e66c2176581d7ddfc28
MD5 e9ba2c27c275c0d49391051f2976fa3c
BLAKE2b-256 7f729345031b23de9d5b93c3518b0ba583c07a2a1d2f5d3a7b602d09539b67db

See more details on using hashes here.

File details

Details for the file aionis_sdk-0.2.18-py3-none-any.whl.

File metadata

  • Download URL: aionis_sdk-0.2.18-py3-none-any.whl
  • Upload date:
  • Size: 17.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for aionis_sdk-0.2.18-py3-none-any.whl
Algorithm Hash digest
SHA256 4e6a5f52d0abe7855b7d5482b3f30d72106c3a42f5fa34ac73ec4ea17e040a1c
MD5 e7b48506bb3e762e8104dd7364bf81bb
BLAKE2b-256 39e284f0c71c99596e1d7bd6c12e769b593728d4b155791c7487adccdf00f912

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page