Skip to main content

No project description provided

Project description

solveit_client

A Python client for programmatically interacting with SolveIt dialogs.

Installation

Authentication

Set your SOLVEIT_TOKEN environment variable before using the client. To find your token:

  1. Open Chrome DevTools (F12 or Cmd+Option+I)
  2. Go to the Application tab
  3. In the sidebar, expand Cookies and select your SolveIt domain
  4. Find the cookie named _solveit
  5. Copy its value—that’s your token
export SOLVEIT_TOKEN='your-token-here'
!pip install solveit_client

Quick Start

SolveItClient() defaults to http://localhost:5001 when neither a URL argument nor SOLVEIT_URL is set. Pass a URL explicitly for hosted SolveIt instances.

from solveit_client.core import *

# Initialize client (explicit URL shown here; defaults to http://localhost:5001 if omitted)
sic = SolveItClient('https://your-instance.solve.it.com/'); sic
SolveItClient(self.url='https://your-instance.solve.it.com/')

Use the /test_route to confirm your client has connect:

sic('/test_route')
'here'

If you get an error saying No access. Please login and then retry., double check your SOLVEIT_TOKEN is correct and exported.

# Create a dialog
dlg = sic.create_dialog('my-project/experiment'); dlg

Dialog: my-project/experiment | Mode: learning

# Add and execute code
msg = dlg.add_msg('1 + 1'); msg

Message: _59a51ada | Type: code | 1 + 1 | Output:

msg.exec(); msg

Message: _59a51ada | Type: code | 1 + 1 | Output: 2

# Add a prompt for AI assistance
ai_msg = dlg.add_msg('Tell me about otters 🤓', msg_type='prompt')
ai_msg.exec(); ai_msg

Message: _e8ede692 | Type: prompt | Tell me about otters 🤓 | Output: Otters are fascinating semi-aquatic mammals! They'...

# View all messages
dlg.messages
ID Type Content Output
<a
href="https://lucid-magic-forges-szzy66.solve.it.com/dialog_?name=my-project/experiment#_1512badb"
target="_blank">_1512badb code 1 + 1 2
<a
href="https://lucid-magic-forges-szzy66.solve.it.com/dialog_?name=my-project/experiment#_4129a41c"
target="_blank">_4129a41c prompt Explain this code This code adds two numbers together: `1
<a
href="https://lucid-magic-forges-szzy66.solve.it.com/dialog_?name=my-project/experiment#_74e465c1"
target="_blank">_74e465c1 code 1 + 1 2
<a
href="https://lucid-magic-forges-szzy66.solve.it.com/dialog_?name=my-project/experiment#_4bd1fbe2"
target="_blank">_4bd1fbe2 prompt Explain this code This code performs addition: `1 + 1` res
<a
href="https://lucid-magic-forges-szzy66.solve.it.com/dialog_?name=my-project/experiment#_59a51ada"
target="_blank">_59a51ada code 1 + 1 2
<a
href="https://lucid-magic-forges-szzy66.solve.it.com/dialog_?name=my-project/experiment#_e8ede692"
target="_blank">_e8ede692 prompt Tell me about otters 🤓 Otters are fascinating semi-aquatic mamm
dlg.delete()
{'success': 'deleted "/app/data/my-project/experiment"'}

CLI

The sic command gives you shell access to the same operations available in the Python API. It uses the SOLVEIT_URL and SOLVEIT_TOKEN environment variables (same as the Python client).

Set SOLVEIT_URL and SOLVEIT_TOKEN to avoid passing --url and --token on every call. You can also set SOLVEIT_DIALOG to skip --name:

export SOLVEIT_URL='https://your-instance.solve.it.com/' # defaults to http://localhost:5001
export SOLVEIT_TOKEN='your-token-here' # defaults to dummy, which works only for localhost
export SOLVEIT_DIALOG='my-project/experiment'

Run sic with no arguments to see available namespaces:

!sic
Usage: sic <operation> [args]

 client     SolveIt API client
 dialog     Dialog operations
 message    Message operations

List available methods on a namespace with --help:

!sic dialog --help
Usage: sic dialog.<method> [args]

  add_msg         Add a new message to the dialog and return it.
  delete          Delete this dialog.
  find_msgs       Find messages matching `re_pattern` and return as `Messages`.
  link            Link to the dialog.
  messages        All messages in this dialog.
  read_msg        Read a single message by index `n` or `id` and return a `Message`.
  reset           Reset the dialog instance.
  run_all         Run all code messages in the dialog from top to bottom.
  stop            Stop the dialog kernel.
  to_xml          Return dialog messages as an XML string.
  toggle_header   Toggle the header collapse state of the first message matching `re_pattern`.

Get help on a specific method:

!sic dialog.to_xml --help
Return dialog messages as an XML string.

  --msg_type             optional limit by message type ('code', 'note', or 'prompt')
  --nums                 Whether to show line numbers
  --include_output       Include output in returned dict?
  --trunc_out            Middle-out truncate code output to 100 characters (only applies if `include_output`)?
  --trunc_in             Middle-out truncate cell content to 80 characters?

Create a dialog and add messages:

!sic client.create_dialog --name tmp/cli_demo
{"name": "tmp/cli_demo", "mode": "learning"}
!sic dialog.add_msg '1 + 1' --name tmp/cli_demo
{"id": "_8bd98af1", "msg_type": "code", "content": "1 + 1", "output": ""}
!sic dialog.add_msg 'Hello from the CLI!' --name tmp/cli_demo --msg_type prompt
{"id": "_a6398f51", "msg_type": "prompt", "content": "Hello from the CLI!", "output": "<output result=\"pending\" reason=\"incomplete\"/>"}
!sic message.exec --name tmp/cli_demo --id _a6398f51
{"id": "_a6398f51", "msg_type": "prompt", "content": "Hello from the CLI!", "output": "Hey! \ud83d\udc4b What can I help you with?\n\n<details class='token-usage-details'><summary>$0.0152</summary>\n\n`total=16,027 | in=16,011 | out=16 | cached=97.8% | cache_new=122 | $0.0152`\n\n</details>"}

List all messages in a dialog:

!sic dialog.messages --name tmp/cli_demo
[{"id": "_a0e3ddf8", "msg_type": "code", "content": "1 + 1", "output": ""}, {"id": "_84d8d761", "msg_type": "note", "content": "Hello from the CLI!", "output": ""}, {"id": "_4a7059d5", "msg_type": "prompt", "content": "Hello from the CLI!", "output": "Hey there! \ud83d\udc4b What are you working on today?\n\n<details class='token-usage-details'><summary>$0.0489</summary>\n\n`total=15,941 | in=15,924 | out=17 | cached=73.2% | cache_new=4,012 | $0.0489`\n\n</details>"}]

Clean up:

!sic dialog.delete --name tmp/cli_demo
{"success": "deleted \"/home/natedawg/tmp/cli_demo\""}

SolveIt Client Skill

We provide a SKILL.md for use in coding agents to give them context about how to use the SolveIt Client cli.

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

solveit_client-0.1.0.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

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

solveit_client-0.1.0-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file solveit_client-0.1.0.tar.gz.

File metadata

  • Download URL: solveit_client-0.1.0.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for solveit_client-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c6275f085f247a6400319d0f9cf3ab56e629a539e4d9fe45a37199bfad5a9474
MD5 d96ebf587d22357470f55180062b1edf
BLAKE2b-256 97de01c66e4ad9897b6c2d2b81fb4490b93761fc651408c7e3a534e7d4df019a

See more details on using hashes here.

File details

Details for the file solveit_client-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: solveit_client-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for solveit_client-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8a4690a51de863ae7317d44d9f92437a422d87b106625de933d33f7a5038c705
MD5 c5296799c856fcd07fa47b2e01d1a170
BLAKE2b-256 0a1971c1dd34a1c98c28110cf43ff8fce023e7d70a14c84b53e8e06820a02bc3

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