tp-ops 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tp_ops-0.1.0/PKG-INFO +634 -0
- tp_ops-0.1.0/README.md +598 -0
- tp_ops-0.1.0/agent_server/__init__.py +29 -0
- tp_ops-0.1.0/agent_server/config.py +103 -0
- tp_ops-0.1.0/agent_server/daemon.py +316 -0
- tp_ops-0.1.0/agent_server/protocol.py +192 -0
- tp_ops-0.1.0/agent_server/server.py +579 -0
- tp_ops-0.1.0/agents/__init__.py +1 -0
- tp_ops-0.1.0/agents/application/__init__.py +39 -0
- tp_ops-0.1.0/agents/application/airflow.py +85 -0
- tp_ops-0.1.0/agents/application/api_server.py +79 -0
- tp_ops-0.1.0/agents/application/ecommerce.py +84 -0
- tp_ops-0.1.0/agents/application/email.py +83 -0
- tp_ops-0.1.0/agents/application/game_server.py +83 -0
- tp_ops-0.1.0/agents/application/headless_cms.py +84 -0
- tp_ops-0.1.0/agents/application/iot_hub.py +82 -0
- tp_ops-0.1.0/agents/application/microservice.py +90 -0
- tp_ops-0.1.0/agents/application/ml_platform.py +85 -0
- tp_ops-0.1.0/agents/application/mobile_backend.py +85 -0
- tp_ops-0.1.0/agents/application/nextjs.py +96 -0
- tp_ops-0.1.0/agents/application/scheduler.py +87 -0
- tp_ops-0.1.0/agents/application/ssr_app.py +84 -0
- tp_ops-0.1.0/agents/application/static_site.py +85 -0
- tp_ops-0.1.0/agents/application/web_app.py +93 -0
- tp_ops-0.1.0/agents/application/websocket.py +81 -0
- tp_ops-0.1.0/agents/application/wordpress.py +96 -0
- tp_ops-0.1.0/agents/base/__init__.py +36 -0
- tp_ops-0.1.0/agents/base/agent.py +154 -0
- tp_ops-0.1.0/agents/base/audit.py +705 -0
- tp_ops-0.1.0/agents/base/conversational.py +740 -0
- tp_ops-0.1.0/agents/base/database.py +477 -0
- tp_ops-0.1.0/agents/base/executor.py +143 -0
- tp_ops-0.1.0/agents/base/log.py +468 -0
- tp_ops-0.1.0/agents/base/meter.py +43 -0
- tp_ops-0.1.0/agents/base/shell.py +485 -0
- tp_ops-0.1.0/agents/base/state.py +559 -0
- tp_ops-0.1.0/agents/base/stream.py +655 -0
- tp_ops-0.1.0/agents/cicd/__init__.py +35 -0
- tp_ops-0.1.0/agents/cicd/ansible.py +67 -0
- tp_ops-0.1.0/agents/cicd/argocd.py +72 -0
- tp_ops-0.1.0/agents/cicd/artifact_repo.py +66 -0
- tp_ops-0.1.0/agents/cicd/azure_devops.py +72 -0
- tp_ops-0.1.0/agents/cicd/cert_manager.py +73 -0
- tp_ops-0.1.0/agents/cicd/docker_build.py +66 -0
- tp_ops-0.1.0/agents/cicd/flux.py +69 -0
- tp_ops-0.1.0/agents/cicd/github_actions.py +70 -0
- tp_ops-0.1.0/agents/cicd/gitlab_ci.py +69 -0
- tp_ops-0.1.0/agents/cicd/helm.py +76 -0
- tp_ops-0.1.0/agents/cicd/jenkins.py +65 -0
- tp_ops-0.1.0/agents/cicd/sonarqube.py +64 -0
- tp_ops-0.1.0/agents/cicd/spinnaker.py +71 -0
- tp_ops-0.1.0/agents/cicd/terraform.py +69 -0
- tp_ops-0.1.0/agents/cicd/vault.py +70 -0
- tp_ops-0.1.0/agents/cloud/__init__.py +51 -0
- tp_ops-0.1.0/agents/cloud/aws_account.py +66 -0
- tp_ops-0.1.0/agents/cloud/aws_config.py +83 -0
- tp_ops-0.1.0/agents/cloud/aws_iam.py +65 -0
- tp_ops-0.1.0/agents/cloud/aws_organizations.py +76 -0
- tp_ops-0.1.0/agents/cloud/azure_ad.py +62 -0
- tp_ops-0.1.0/agents/cloud/azure_policy.py +85 -0
- tp_ops-0.1.0/agents/cloud/azure_resource_graph.py +75 -0
- tp_ops-0.1.0/agents/cloud/azure_subscription.py +69 -0
- tp_ops-0.1.0/agents/cloud/cloud_asset.py +85 -0
- tp_ops-0.1.0/agents/cloud/cloud_custodian.py +86 -0
- tp_ops-0.1.0/agents/cloud/cloudformation.py +67 -0
- tp_ops-0.1.0/agents/cloud/crossplane.py +86 -0
- tp_ops-0.1.0/agents/cloud/finops.py +93 -0
- tp_ops-0.1.0/agents/cloud/gcp_org_policy.py +82 -0
- tp_ops-0.1.0/agents/cloud/gcp_project.py +68 -0
- tp_ops-0.1.0/agents/cloud/gcp_resource_manager.py +81 -0
- tp_ops-0.1.0/agents/cloud/infracost.py +80 -0
- tp_ops-0.1.0/agents/cloud/k8s_operator.py +73 -0
- tp_ops-0.1.0/agents/cloud/landing_zone.py +96 -0
- tp_ops-0.1.0/agents/cloud/multicloud.py +73 -0
- tp_ops-0.1.0/agents/cloud/pulumi.py +84 -0
- tp_ops-0.1.0/agents/cloud/steampipe.py +82 -0
- tp_ops-0.1.0/agents/cloud/terraform_state.py +72 -0
- tp_ops-0.1.0/agents/compute/__init__.py +43 -0
- tp_ops-0.1.0/agents/compute/arm_edge.py +81 -0
- tp_ops-0.1.0/agents/compute/azure_functions.py +61 -0
- tp_ops-0.1.0/agents/compute/bare_metal.py +86 -0
- tp_ops-0.1.0/agents/compute/batch.py +73 -0
- tp_ops-0.1.0/agents/compute/container.py +69 -0
- tp_ops-0.1.0/agents/compute/docker_swarm.py +70 -0
- tp_ops-0.1.0/agents/compute/ecs_fargate.py +63 -0
- tp_ops-0.1.0/agents/compute/gcp_functions.py +57 -0
- tp_ops-0.1.0/agents/compute/gpu_instance.py +74 -0
- tp_ops-0.1.0/agents/compute/kubernetes_namespace.py +71 -0
- tp_ops-0.1.0/agents/compute/kubernetes_node.py +65 -0
- tp_ops-0.1.0/agents/compute/lambda_agent.py +63 -0
- tp_ops-0.1.0/agents/compute/linux_vm.py +311 -0
- tp_ops-0.1.0/agents/compute/nomad.py +70 -0
- tp_ops-0.1.0/agents/compute/openstack.py +69 -0
- tp_ops-0.1.0/agents/compute/proxmox.py +61 -0
- tp_ops-0.1.0/agents/compute/spot_instance.py +79 -0
- tp_ops-0.1.0/agents/compute/vsphere.py +71 -0
- tp_ops-0.1.0/agents/compute/windows_vm.py +66 -0
- tp_ops-0.1.0/agents/databases/__init__.py +65 -0
- tp_ops-0.1.0/agents/databases/azure_sql.py +58 -0
- tp_ops-0.1.0/agents/databases/bigquery.py +56 -0
- tp_ops-0.1.0/agents/databases/cassandra.py +65 -0
- tp_ops-0.1.0/agents/databases/citus.py +64 -0
- tp_ops-0.1.0/agents/databases/clickhouse.py +62 -0
- tp_ops-0.1.0/agents/databases/cloudsql.py +65 -0
- tp_ops-0.1.0/agents/databases/cockroachdb.py +60 -0
- tp_ops-0.1.0/agents/databases/cosmosdb.py +61 -0
- tp_ops-0.1.0/agents/databases/couchdb.py +86 -0
- tp_ops-0.1.0/agents/databases/dynamodb.py +59 -0
- tp_ops-0.1.0/agents/databases/elasticsearch.py +65 -0
- tp_ops-0.1.0/agents/databases/etcd.py +64 -0
- tp_ops-0.1.0/agents/databases/influxdb.py +63 -0
- tp_ops-0.1.0/agents/databases/memcached.py +53 -0
- tp_ops-0.1.0/agents/databases/mongodb.py +66 -0
- tp_ops-0.1.0/agents/databases/mysql.py +64 -0
- tp_ops-0.1.0/agents/databases/neo4j.py +62 -0
- tp_ops-0.1.0/agents/databases/oracle.py +65 -0
- tp_ops-0.1.0/agents/databases/planetscale.py +86 -0
- tp_ops-0.1.0/agents/databases/postgresql.py +327 -0
- tp_ops-0.1.0/agents/databases/prometheus_db.py +57 -0
- tp_ops-0.1.0/agents/databases/rds.py +62 -0
- tp_ops-0.1.0/agents/databases/redis.py +311 -0
- tp_ops-0.1.0/agents/databases/snowflake.py +61 -0
- tp_ops-0.1.0/agents/databases/sqlite.py +62 -0
- tp_ops-0.1.0/agents/databases/sqlserver.py +63 -0
- tp_ops-0.1.0/agents/databases/supabase.py +75 -0
- tp_ops-0.1.0/agents/databases/timescaledb.py +62 -0
- tp_ops-0.1.0/agents/databases/valkey.py +90 -0
- tp_ops-0.1.0/agents/databases/vitess.py +65 -0
- tp_ops-0.1.0/agents/kubernetes/__init__.py +5 -0
- tp_ops-0.1.0/agents/kubernetes/agent.py +568 -0
- tp_ops-0.1.0/agents/kubernetes/chat_agent.py +425 -0
- tp_ops-0.1.0/agents/kubernetes/knowledge/__init__.py +1 -0
- tp_ops-0.1.0/agents/kubernetes/scanners/__init__.py +1 -0
- tp_ops-0.1.0/agents/kubernetes/tools/__init__.py +1 -0
- tp_ops-0.1.0/agents/kubernetes/tools/event_analyzer.py +195 -0
- tp_ops-0.1.0/agents/kubernetes/tools/node_inspector.py +159 -0
- tp_ops-0.1.0/agents/kubernetes/tools/pod_inspector.py +245 -0
- tp_ops-0.1.0/agents/messaging/__init__.py +35 -0
- tp_ops-0.1.0/agents/messaging/azure_eventgrid.py +62 -0
- tp_ops-0.1.0/agents/messaging/azure_eventhubs.py +65 -0
- tp_ops-0.1.0/agents/messaging/azure_servicebus.py +61 -0
- tp_ops-0.1.0/agents/messaging/bullmq.py +78 -0
- tp_ops-0.1.0/agents/messaging/celery.py +73 -0
- tp_ops-0.1.0/agents/messaging/eventbridge.py +64 -0
- tp_ops-0.1.0/agents/messaging/kafka.py +61 -0
- tp_ops-0.1.0/agents/messaging/kinesis.py +66 -0
- tp_ops-0.1.0/agents/messaging/nats.py +65 -0
- tp_ops-0.1.0/agents/messaging/pulsar.py +73 -0
- tp_ops-0.1.0/agents/messaging/rabbitmq.py +65 -0
- tp_ops-0.1.0/agents/messaging/redis_streams.py +66 -0
- tp_ops-0.1.0/agents/messaging/sidekiq.py +72 -0
- tp_ops-0.1.0/agents/messaging/sns.py +64 -0
- tp_ops-0.1.0/agents/messaging/sqs.py +67 -0
- tp_ops-0.1.0/agents/networking/__init__.py +55 -0
- tp_ops-0.1.0/agents/networking/aws_alb.py +67 -0
- tp_ops-0.1.0/agents/networking/aws_apigateway.py +68 -0
- tp_ops-0.1.0/agents/networking/azure_apim.py +61 -0
- tp_ops-0.1.0/agents/networking/azure_appgw.py +61 -0
- tp_ops-0.1.0/agents/networking/azure_frontdoor.py +62 -0
- tp_ops-0.1.0/agents/networking/azure_nsg.py +61 -0
- tp_ops-0.1.0/agents/networking/bgp.py +63 -0
- tp_ops-0.1.0/agents/networking/caddy.py +58 -0
- tp_ops-0.1.0/agents/networking/cloudfront.py +64 -0
- tp_ops-0.1.0/agents/networking/consul.py +72 -0
- tp_ops-0.1.0/agents/networking/dns.py +68 -0
- tp_ops-0.1.0/agents/networking/envoy.py +64 -0
- tp_ops-0.1.0/agents/networking/graphql.py +63 -0
- tp_ops-0.1.0/agents/networking/grpc.py +62 -0
- tp_ops-0.1.0/agents/networking/haproxy.py +62 -0
- tp_ops-0.1.0/agents/networking/iptables.py +75 -0
- tp_ops-0.1.0/agents/networking/istio.py +68 -0
- tp_ops-0.1.0/agents/networking/kong.py +64 -0
- tp_ops-0.1.0/agents/networking/linkerd.py +67 -0
- tp_ops-0.1.0/agents/networking/nginx.py +61 -0
- tp_ops-0.1.0/agents/networking/overlay.py +75 -0
- tp_ops-0.1.0/agents/networking/switch.py +63 -0
- tp_ops-0.1.0/agents/networking/traefik.py +61 -0
- tp_ops-0.1.0/agents/networking/vpn.py +76 -0
- tp_ops-0.1.0/agents/networking/wireless.py +60 -0
- tp_ops-0.1.0/agents/observability/__init__.py +45 -0
- tp_ops-0.1.0/agents/observability/alertmanager.py +63 -0
- tp_ops-0.1.0/agents/observability/azure_monitor.py +64 -0
- tp_ops-0.1.0/agents/observability/datadog.py +62 -0
- tp_ops-0.1.0/agents/observability/grafana.py +60 -0
- tp_ops-0.1.0/agents/observability/honeycomb.py +86 -0
- tp_ops-0.1.0/agents/observability/jaeger.py +60 -0
- tp_ops-0.1.0/agents/observability/lightstep.py +86 -0
- tp_ops-0.1.0/agents/observability/loki.py +61 -0
- tp_ops-0.1.0/agents/observability/mimir.py +69 -0
- tp_ops-0.1.0/agents/observability/nagios.py +76 -0
- tp_ops-0.1.0/agents/observability/newrelic.py +67 -0
- tp_ops-0.1.0/agents/observability/otel.py +67 -0
- tp_ops-0.1.0/agents/observability/pagerduty.py +61 -0
- tp_ops-0.1.0/agents/observability/sentry.py +90 -0
- tp_ops-0.1.0/agents/observability/splunk.py +65 -0
- tp_ops-0.1.0/agents/observability/statuspage.py +61 -0
- tp_ops-0.1.0/agents/observability/thanos.py +63 -0
- tp_ops-0.1.0/agents/observability/uptime.py +61 -0
- tp_ops-0.1.0/agents/observability/victoriametrics.py +59 -0
- tp_ops-0.1.0/agents/observability/zabbix.py +76 -0
- tp_ops-0.1.0/agents/security/__init__.py +66 -0
- tp_ops-0.1.0/agents/security/casb.py +80 -0
- tp_ops-0.1.0/agents/security/compliance.py +89 -0
- tp_ops-0.1.0/agents/security/cspm.py +79 -0
- tp_ops-0.1.0/agents/security/cwpp.py +81 -0
- tp_ops-0.1.0/agents/security/dlp.py +83 -0
- tp_ops-0.1.0/agents/security/identity_governance.py +84 -0
- tp_ops-0.1.0/agents/security/k8s_security.py +84 -0
- tp_ops-0.1.0/agents/security/linux_security.py +88 -0
- tp_ops-0.1.0/agents/security/quantum_audit.py +721 -0
- tp_ops-0.1.0/agents/security/quantum_crypto.py +90 -0
- tp_ops-0.1.0/agents/security/secret_manager.py +109 -0
- tp_ops-0.1.0/agents/security/siem.py +85 -0
- tp_ops-0.1.0/agents/security/soar.py +78 -0
- tp_ops-0.1.0/agents/security/tls.py +78 -0
- tp_ops-0.1.0/agents/security/vulnerability_scanner.py +82 -0
- tp_ops-0.1.0/agents/security/waf.py +87 -0
- tp_ops-0.1.0/agents/storage/__init__.py +35 -0
- tp_ops-0.1.0/agents/storage/azure_blob.py +66 -0
- tp_ops-0.1.0/agents/storage/azure_disk.py +60 -0
- tp_ops-0.1.0/agents/storage/backup.py +87 -0
- tp_ops-0.1.0/agents/storage/ceph.py +70 -0
- tp_ops-0.1.0/agents/storage/ebs.py +68 -0
- tp_ops-0.1.0/agents/storage/gcs.py +64 -0
- tp_ops-0.1.0/agents/storage/glusterfs.py +67 -0
- tp_ops-0.1.0/agents/storage/lvm.py +98 -0
- tp_ops-0.1.0/agents/storage/minio.py +67 -0
- tp_ops-0.1.0/agents/storage/netapp.py +69 -0
- tp_ops-0.1.0/agents/storage/nfs.py +73 -0
- tp_ops-0.1.0/agents/storage/pv.py +75 -0
- tp_ops-0.1.0/agents/storage/registry.py +80 -0
- tp_ops-0.1.0/agents/storage/s3.py +69 -0
- tp_ops-0.1.0/agents/storage/san.py +74 -0
- tp_ops-0.1.0/agents/tools/__init__.py +118 -0
- tp_ops-0.1.0/agents/tools/db_connector.py +463 -0
- tp_ops-0.1.0/agents/tools/health.py +811 -0
- tp_ops-0.1.0/agents/tools/log_parser.py +437 -0
- tp_ops-0.1.0/agents/tools/metrics.py +487 -0
- tp_ops-0.1.0/agents/tools/shell_executor.py +257 -0
- tp_ops-0.1.0/cli/__init__.py +3 -0
- tp_ops-0.1.0/cli/api/__init__.py +20 -0
- tp_ops-0.1.0/cli/api/client.py +207 -0
- tp_ops-0.1.0/cli/api/local_usage.py +150 -0
- tp_ops-0.1.0/cli/api/models.py +121 -0
- tp_ops-0.1.0/cli/api/offline_queue.py +129 -0
- tp_ops-0.1.0/cli/api/usage_reporter.py +144 -0
- tp_ops-0.1.0/cli/auth/__init__.py +1 -0
- tp_ops-0.1.0/cli/auth/credentials.py +174 -0
- tp_ops-0.1.0/cli/auth/token.py +175 -0
- tp_ops-0.1.0/cli/banner.py +49 -0
- tp_ops-0.1.0/cli/commands/__init__.py +21 -0
- tp_ops-0.1.0/cli/commands/account.py +102 -0
- tp_ops-0.1.0/cli/commands/approve.py +88 -0
- tp_ops-0.1.0/cli/commands/ask.py +505 -0
- tp_ops-0.1.0/cli/commands/audit.py +91 -0
- tp_ops-0.1.0/cli/commands/drop.py +686 -0
- tp_ops-0.1.0/cli/commands/history.py +52 -0
- tp_ops-0.1.0/cli/commands/init_cmd.py +137 -0
- tp_ops-0.1.0/cli/commands/list.py +53 -0
- tp_ops-0.1.0/cli/commands/login.py +115 -0
- tp_ops-0.1.0/cli/commands/logout.py +63 -0
- tp_ops-0.1.0/cli/commands/remove.py +34 -0
- tp_ops-0.1.0/cli/commands/run.py +341 -0
- tp_ops-0.1.0/cli/commands/scan.py +251 -0
- tp_ops-0.1.0/cli/commands/usage.py +148 -0
- tp_ops-0.1.0/cli/main.py +286 -0
- tp_ops-0.1.0/cli/output/__init__.py +1 -0
- tp_ops-0.1.0/cli/output/terminal.py +210 -0
- tp_ops-0.1.0/cli/remote/__init__.py +6 -0
- tp_ops-0.1.0/cli/remote/client.py +329 -0
- tp_ops-0.1.0/cli/remote/deployer.py +190 -0
- tp_ops-0.1.0/cli/remote/k8s_deployer.py +420 -0
- tp_ops-0.1.0/cli/remote/protocol.py +50 -0
- tp_ops-0.1.0/cli/remote/vm_deployer.py +403 -0
- tp_ops-0.1.0/engine/__init__.py +1 -0
- tp_ops-0.1.0/engine/execution/__init__.py +1 -0
- tp_ops-0.1.0/engine/knowledge/__init__.py +27 -0
- tp_ops-0.1.0/engine/knowledge/migration.py +265 -0
- tp_ops-0.1.0/engine/knowledge/models.py +257 -0
- tp_ops-0.1.0/engine/knowledge/store.py +540 -0
- tp_ops-0.1.0/engine/llm/__init__.py +1 -0
- tp_ops-0.1.0/engine/llm/inference.py +237 -0
- tp_ops-0.1.0/engine/llm/models.py +121 -0
- tp_ops-0.1.0/engine/metering/__init__.py +1 -0
- tp_ops-0.1.0/engine/reasoning/__init__.py +1 -0
- tp_ops-0.1.0/mesh/__init__.py +60 -0
- tp_ops-0.1.0/mesh/client.py +262 -0
- tp_ops-0.1.0/mesh/discovery/__init__.py +7 -0
- tp_ops-0.1.0/mesh/discovery/discovery.py +187 -0
- tp_ops-0.1.0/mesh/discovery/mdns.py +190 -0
- tp_ops-0.1.0/mesh/discovery/static.py +176 -0
- tp_ops-0.1.0/mesh/health/__init__.py +5 -0
- tp_ops-0.1.0/mesh/health/monitor.py +249 -0
- tp_ops-0.1.0/mesh/integration.py +386 -0
- tp_ops-0.1.0/mesh/learning/__init__.py +27 -0
- tp_ops-0.1.0/mesh/learning/absorb.py +279 -0
- tp_ops-0.1.0/mesh/learning/bloom.py +184 -0
- tp_ops-0.1.0/mesh/learning/broadcast.py +293 -0
- tp_ops-0.1.0/mesh/learning/feedback.py +196 -0
- tp_ops-0.1.0/mesh/learning/outcome.py +126 -0
- tp_ops-0.1.0/mesh/learning/sync.py +276 -0
- tp_ops-0.1.0/mesh/learning/tracker.py +242 -0
- tp_ops-0.1.0/mesh/server.py +159 -0
- tp_ops-0.1.0/mesh/tnn/__init__.py +15 -0
- tp_ops-0.1.0/mesh/tnn/bindings.py +419 -0
- tp_ops-0.1.0/mesh/tnn/network_check.py +434 -0
- tp_ops-0.1.0/mesh/tnn/protocol.py +495 -0
- tp_ops-0.1.0/mesh/transport/__init__.py +7 -0
- tp_ops-0.1.0/mesh/transport/client.py +180 -0
- tp_ops-0.1.0/mesh/transport/queue.py +307 -0
- tp_ops-0.1.0/mesh/transport/server.py +232 -0
- tp_ops-0.1.0/mesh/types.py +92 -0
- tp_ops-0.1.0/pyproject.toml +86 -0
- tp_ops-0.1.0/setup.cfg +4 -0
- tp_ops-0.1.0/tests/test_tnn_python.py +208 -0
- tp_ops-0.1.0/tp_ops.egg-info/PKG-INFO +634 -0
- tp_ops-0.1.0/tp_ops.egg-info/SOURCES.txt +319 -0
- tp_ops-0.1.0/tp_ops.egg-info/dependency_links.txt +1 -0
- tp_ops-0.1.0/tp_ops.egg-info/entry_points.txt +3 -0
- tp_ops-0.1.0/tp_ops.egg-info/requires.txt +15 -0
- tp_ops-0.1.0/tp_ops.egg-info/top_level.txt +5 -0
tp_ops-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,634 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tp-ops
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Drop an AI agent onto any resource. Pay per GB.
|
|
5
|
+
Author-email: TernaryPhysics LLC <ops@ternaryphysics.com>
|
|
6
|
+
License-Expression: LicenseRef-Proprietary
|
|
7
|
+
Project-URL: Homepage, https://ternaryphysics.com
|
|
8
|
+
Project-URL: Documentation, https://ternaryphysics.com/docs
|
|
9
|
+
Keywords: kubernetes,observability,ai,agent,sre,devops
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Intended Audience :: System Administrators
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Topic :: System :: Monitoring
|
|
19
|
+
Classifier: Topic :: System :: Systems Administration
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
Requires-Dist: huggingface_hub>=0.20.0
|
|
23
|
+
Requires-Dist: llama-cpp-python>=0.2.0
|
|
24
|
+
Requires-Dist: httpx>=0.25.0
|
|
25
|
+
Requires-Dist: keyring>=24.0.0
|
|
26
|
+
Requires-Dist: pyyaml>=6.0.0
|
|
27
|
+
Requires-Dist: pydantic>=2.5.0
|
|
28
|
+
Requires-Dist: pydantic-settings>=2.1.0
|
|
29
|
+
Requires-Dist: fastapi>=0.109.0
|
|
30
|
+
Requires-Dist: uvicorn[standard]>=0.27.0
|
|
31
|
+
Provides-Extra: dev
|
|
32
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
33
|
+
Requires-Dist: pytest-cov>=4.0; extra == "dev"
|
|
34
|
+
Requires-Dist: black>=23.0; extra == "dev"
|
|
35
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
36
|
+
|
|
37
|
+
# TernaryPhysics Ops
|
|
38
|
+
|
|
39
|
+
**Drop agents. The more you drop, the smarter they get.**
|
|
40
|
+
|
|
41
|
+
Each agent lives on a resource. Drop more agents, they discover each other and form a mesh. Ask one question — the investigation traces causality across your entire infrastructure automatically.
|
|
42
|
+
|
|
43
|
+
- **Local AI** — Runs on your hardware. Your data never leaves.
|
|
44
|
+
- **Agent mesh** — Agents talk to each other. Cross-resource correlation automatic.
|
|
45
|
+
- **Human-in-the-loop** — Agents investigate autonomously. Actions require your approval.
|
|
46
|
+
- **Pay per GB** — $0.50/GB processed. No subscription. No surprises.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Installation
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
pip install tp-ops
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Getting Started
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# 1. Install on your resource
|
|
60
|
+
ssh my-server
|
|
61
|
+
pip install tp-ops
|
|
62
|
+
|
|
63
|
+
# 2. Login with your API token (get one at https://ternaryphysics.com/dashboard)
|
|
64
|
+
tp-ops login --token tp_live_xxxxxxxxxxxxxxxxxxxxx
|
|
65
|
+
|
|
66
|
+
# 3. Drop an agent (auto-detects resource type)
|
|
67
|
+
tp-ops drop
|
|
68
|
+
|
|
69
|
+
# 4. From anywhere, talk to it
|
|
70
|
+
tp-ops ask my-server
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## What It Looks Like
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
# On each resource, run:
|
|
79
|
+
$ ssh prod-cluster && pip install tp-ops && tp-ops drop
|
|
80
|
+
$ ssh payments-db && pip install tp-ops && tp-ops drop
|
|
81
|
+
$ ssh api-server && pip install tp-ops && tp-ops drop
|
|
82
|
+
|
|
83
|
+
# From anywhere, ask questions:
|
|
84
|
+
$ tp-ops ask prod-cluster
|
|
85
|
+
|
|
86
|
+
prod-cluster > why is the API slow?
|
|
87
|
+
|
|
88
|
+
Investigating across mesh...
|
|
89
|
+
|
|
90
|
+
→ k8s-agent: payment-api response times 3x baseline since 02:03 UTC
|
|
91
|
+
→ postgres-agent: Connection pool exhausted (147/150 connections)
|
|
92
|
+
→ cicd-agent: Deploy at 02:00 UTC changed POOL_SIZE config
|
|
93
|
+
|
|
94
|
+
Root cause: Deploy removed pool size config, defaulting to 150.
|
|
95
|
+
App maxed connections, starving other services.
|
|
96
|
+
|
|
97
|
+
Fix: Restore POOL_SIZE=50 in payment-api config.
|
|
98
|
+
Apply? [yes/no]
|
|
99
|
+
|
|
100
|
+
prod-cluster > yes
|
|
101
|
+
|
|
102
|
+
✓ Config updated. Rolling restart...
|
|
103
|
+
✓ Connections dropped to 48. Latency normal.
|
|
104
|
+
|
|
105
|
+
Resolved in 47 seconds. 3 agents contributed.
|
|
106
|
+
Processed: 0.8 GB | Cost: $0.40
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## How It Works
|
|
112
|
+
|
|
113
|
+
### 1. Drop agents onto resources
|
|
114
|
+
|
|
115
|
+
SSH to each resource, install tp-ops, run `tp-ops drop`. The agent auto-detects what it's running on.
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# On your K8s node:
|
|
119
|
+
$ ssh prod-cluster
|
|
120
|
+
$ pip install tp-ops
|
|
121
|
+
$ tp-ops drop # Auto-detects: k8s-agent
|
|
122
|
+
|
|
123
|
+
# On your database server:
|
|
124
|
+
$ ssh payments-db
|
|
125
|
+
$ pip install tp-ops
|
|
126
|
+
$ tp-ops drop # Auto-detects: postgres-agent
|
|
127
|
+
|
|
128
|
+
# On your VM:
|
|
129
|
+
$ ssh api-server
|
|
130
|
+
$ pip install tp-ops
|
|
131
|
+
$ tp-ops drop # Auto-detects: vm-agent
|
|
132
|
+
|
|
133
|
+
# For special agents (can't auto-detect):
|
|
134
|
+
$ tp-ops drop --type relay-agent
|
|
135
|
+
$ tp-ops drop --type apigw-agent --apim my-instance
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 2. They form a mesh
|
|
139
|
+
|
|
140
|
+
Agents discover each other automatically via mDNS, Kubernetes DNS, or static peers. When one agent finds a problem, it reaches across to others. The investigation follows the thread through every resource.
|
|
141
|
+
|
|
142
|
+
### 3. Ask a question — the mesh investigates
|
|
143
|
+
|
|
144
|
+
Open a conversation. Ask in plain English. The mesh determines which agents need to contribute and traces causality across resources automatically.
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
$ tp-ops ask payments-db
|
|
148
|
+
|
|
149
|
+
payments-db > show me the slowest queries today
|
|
150
|
+
|
|
151
|
+
Top 3 by total time:
|
|
152
|
+
1. SELECT * FROM transactions WHERE customer_id = $1
|
|
153
|
+
Avg: 230ms | 14,847 calls | Index scan ✓
|
|
154
|
+
2. SELECT count(*) FROM transactions WHERE status = 'pending'
|
|
155
|
+
Avg: 890ms | 720 calls | Seq scan ⚠ (missing index)
|
|
156
|
+
3. UPDATE accounts SET balance = balance + $1 WHERE id = $2
|
|
157
|
+
Avg: 45ms | 8,234 calls | High lock wait ⚠
|
|
158
|
+
|
|
159
|
+
Query #2 is doing a sequential scan on 42M rows.
|
|
160
|
+
Want me to suggest an index?
|
|
161
|
+
|
|
162
|
+
payments-db > yes
|
|
163
|
+
|
|
164
|
+
CREATE INDEX CONCURRENTLY idx_txn_status_created
|
|
165
|
+
ON transactions (status, created_at)
|
|
166
|
+
WHERE status = 'pending';
|
|
167
|
+
|
|
168
|
+
Estimated improvement: 890ms → ~5ms.
|
|
169
|
+
No table lock during creation. Build time: ~2 min.
|
|
170
|
+
|
|
171
|
+
Create this index? [yes/no]
|
|
172
|
+
|
|
173
|
+
payments-db > yes
|
|
174
|
+
|
|
175
|
+
✓ Index created. Query #2: 890ms → 4ms. 222x faster.
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### 3. Human approves every action
|
|
179
|
+
|
|
180
|
+
The agent reads everything autonomously. It never writes, modifies, deletes, restarts, or scales without your explicit approval. Every time.
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
prod-cluster-01 > fix the scaling issue
|
|
184
|
+
|
|
185
|
+
I'd recommend scaling db-nodes from 3 → 4:
|
|
186
|
+
|
|
187
|
+
az aks nodepool scale --name dbnodes --node-count 4
|
|
188
|
+
|
|
189
|
+
Risk: LOW — adds capacity, no disruption.
|
|
190
|
+
Approve? [yes/no]
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Two-Tier AI Architecture
|
|
196
|
+
|
|
197
|
+
Each agent runs two AI models on the resource:
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
┌─────────────────────────────────────────────────────────┐
|
|
201
|
+
│ YOUR RESOURCE │
|
|
202
|
+
│ │
|
|
203
|
+
│ ┌───────────────────────────────────────────────────┐ │
|
|
204
|
+
│ │ TIER 1: Ternary Neural Network (TNN) │ │
|
|
205
|
+
│ │ │ │
|
|
206
|
+
│ │ 2,888 parameters · <1KB · <1ms inference │ │
|
|
207
|
+
│ │ Weights: {-1, 0, +1} · integer math only │ │
|
|
208
|
+
│ │ │ │
|
|
209
|
+
│ │ Always on. Watches metrics, logs, connections. │ │
|
|
210
|
+
│ │ Learns THIS resource's normal patterns. │ │
|
|
211
|
+
│ │ Flags anomalies. Triggers alerts. │ │
|
|
212
|
+
│ │ Hot-swap weight updates. Zero downtime. │ │
|
|
213
|
+
│ └───────────────────────────────────────────────────┘ │
|
|
214
|
+
│ │
|
|
215
|
+
│ ┌───────────────────────────────────────────────────┐ │
|
|
216
|
+
│ │ TIER 2: TernaryPhysics-7B (Quantized LLM) │ │
|
|
217
|
+
│ │ │ │
|
|
218
|
+
│ │ 7 billion parameters · 4-bit quantized │ │
|
|
219
|
+
│ │ ~15 tok/s on commodity CPU · no GPU required │ │
|
|
220
|
+
│ │ │ │
|
|
221
|
+
│ │ Powers conversation. Reasons about problems. │ │
|
|
222
|
+
│ │ Reads logs, metrics, configs, events. │ │
|
|
223
|
+
│ │ Builds root cause chains. Generates reports. │ │
|
|
224
|
+
│ │ Suggests specific commands with explanations. │ │
|
|
225
|
+
│ └───────────────────────────────────────────────────┘ │
|
|
226
|
+
│ │
|
|
227
|
+
│ TNN detects anomaly → triggers LLM investigation │
|
|
228
|
+
│ Human asks question → LLM investigates and answers │
|
|
229
|
+
│ LLM recommends action → Human approves → executes │
|
|
230
|
+
└─────────────────────────────────────────────────────────┘
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Both models run locally on the resource. No cloud. No GPU. No internet required. Patent pending.
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Agent Catalog
|
|
238
|
+
|
|
239
|
+
### ☸ Kubernetes Agent — $0.50/GB
|
|
240
|
+
|
|
241
|
+
Drop onto a cluster. Ask it about pods, nodes, deployments, services, networking. It finds zombie pods, orphaned resources, overprovisioning.
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
$ tp-ops ask prod-cluster-01
|
|
245
|
+
prod-cluster-01 > anything unusual today?
|
|
246
|
+
prod-cluster-01 > why is the api namespace using so much memory?
|
|
247
|
+
prod-cluster-01 > show me pods that haven't received traffic in 7 days
|
|
248
|
+
prod-cluster-01 > what changed in the last hour?
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### 🖥 VM Agent — $0.50/GB
|
|
252
|
+
|
|
253
|
+
Drop onto a machine. Ask it about processes, disk, memory, network, services. It knows every process on that box.
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
$ tp-ops ask api-server-03
|
|
257
|
+
api-server-03 > what's eating CPU?
|
|
258
|
+
api-server-03 > is the disk going to fill up?
|
|
259
|
+
api-server-03 > show me what changed since yesterday
|
|
260
|
+
api-server-03 > what's listening on this box?
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### 🐘 PostgreSQL Agent — $0.50/GB
|
|
264
|
+
|
|
265
|
+
Drop onto a database. Ask it about queries, connections, indexes, replication, locks. It knows that database's specific patterns.
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
$ tp-ops ask payments-db
|
|
269
|
+
payments-db > show me the slowest queries
|
|
270
|
+
payments-db > are there any connection leaks?
|
|
271
|
+
payments-db > how's replication lag looking?
|
|
272
|
+
payments-db > suggest indexes I'm missing
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### 🌐 API Gateway Agent — $0.50/GB
|
|
276
|
+
|
|
277
|
+
Drop onto your gateway. Ask it about endpoints, latency, errors, consumers. It finds non-prod endpoints in production.
|
|
278
|
+
|
|
279
|
+
```
|
|
280
|
+
$ tp-ops ask edge-gateway
|
|
281
|
+
edge-gateway > which APIs have the highest error rate?
|
|
282
|
+
edge-gateway > are there any non-prod endpoints in production?
|
|
283
|
+
edge-gateway > show me cost per API per team
|
|
284
|
+
edge-gateway > which deprecated APIs still get traffic?
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### 🔒 Security Agent — $0.50/GB
|
|
288
|
+
|
|
289
|
+
Drop onto any resource. Ask it about RBAC, credentials, secrets, CVEs, TLS.
|
|
290
|
+
|
|
291
|
+
```
|
|
292
|
+
$ tp-ops ask prod-cluster-01 --agent security
|
|
293
|
+
prod-cluster-01 > find overprivileged service accounts
|
|
294
|
+
prod-cluster-01 > any secrets exposed in environment variables?
|
|
295
|
+
prod-cluster-01 > show me credentials not used in 90 days
|
|
296
|
+
prod-cluster-01 > are any containers running as root?
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### 📊 Azure Monitor Agent — $0.50/GB
|
|
300
|
+
|
|
301
|
+
Drop onto a workspace. Ask it about exceptions, anomalies, health. Pre-built KQL under the hood.
|
|
302
|
+
|
|
303
|
+
```
|
|
304
|
+
$ tp-ops ask hub-workspace
|
|
305
|
+
hub-workspace > what's causing the spike in 500 errors?
|
|
306
|
+
hub-workspace > show me App Insights exceptions from today
|
|
307
|
+
hub-workspace > are there any managed identities we're not using?
|
|
308
|
+
hub-workspace > what's our monitoring bill look like?
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## The Mesh
|
|
314
|
+
|
|
315
|
+
The more agents you drop, the smarter the mesh gets.
|
|
316
|
+
|
|
317
|
+
| Agents | Capability |
|
|
318
|
+
|--------|------------|
|
|
319
|
+
| 1 | Useful. Expert on one resource. |
|
|
320
|
+
| 5 | Correlated insights across resources. |
|
|
321
|
+
| 15+ | Full observability mesh. Any question traces through everything. |
|
|
322
|
+
|
|
323
|
+
Agents communicate inside your network via gRPC. No data leaves your environment. The mesh is entirely local.
|
|
324
|
+
|
|
325
|
+
```
|
|
326
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
327
|
+
│ Your Infrastructure │
|
|
328
|
+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
329
|
+
│ │ K8s │ │ Postgres │ │ CI/CD │ │ VM │ │
|
|
330
|
+
│ │ Agent │◄─►│ Agent │◄─►│ Agent │◄─►│ Agent │ │
|
|
331
|
+
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
|
|
332
|
+
│ ▲ ▲ ▲ ▲ │
|
|
333
|
+
│ └─────────────┴─────────────┴─────────────┘ │
|
|
334
|
+
│ Agent Mesh (gRPC) │
|
|
335
|
+
│ │
|
|
336
|
+
│ ┌─────────────────────────────────────────────────────┐ │
|
|
337
|
+
│ │ Local AI (runs on your hardware) │ │
|
|
338
|
+
│ └─────────────────────────────────────────────────────┘ │
|
|
339
|
+
└─────────────────────────────────────────────────────────────┘
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
Leaving means losing all that cross-resource intelligence. The switching cost is the accumulated value.
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## Pricing
|
|
347
|
+
|
|
348
|
+
```
|
|
349
|
+
$0.50 per GB processed. First 1GB free.
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
Every question the agent answers processes some data — logs, metrics, configs, query stats. The agent meters exactly how much it touches. You see the running cost during your conversation.
|
|
353
|
+
|
|
354
|
+
```
|
|
355
|
+
payments-db > how much has this session cost?
|
|
356
|
+
|
|
357
|
+
8 questions | 1.8 GB processed | $0.90
|
|
358
|
+
|
|
359
|
+
vs manual investigation: ~45 min, ~$60
|
|
360
|
+
You saved: $59 and 31 minutes
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
No subscription. No monthly fee. No annual contract. Talk to your agent when you need it. Pay for what it processes.
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Security
|
|
368
|
+
|
|
369
|
+
**Human-in-the-loop.** Reads everything autonomously. Writes nothing without your explicit "yes." Every time. No exceptions.
|
|
370
|
+
|
|
371
|
+
**Runs locally.** Both AI models run on your resource. Data stays on your infrastructure. Only the billing metadata leaves.
|
|
372
|
+
|
|
373
|
+
**No credentials stored.** Uses your existing kubeconfig, DB credentials, cloud tokens. Never copies or caches them.
|
|
374
|
+
|
|
375
|
+
**Audit trail.** Every conversation logged. Every action tracked. Export to your SIEM.
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
## CLI Quick Reference
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
# Setup & Authentication
|
|
383
|
+
tp-ops init # First-time setup wizard
|
|
384
|
+
tp-ops login --token <key> # Authenticate with API token
|
|
385
|
+
tp-ops logout # Clear stored credentials
|
|
386
|
+
tp-ops account # Show account info and plan
|
|
387
|
+
|
|
388
|
+
# Drop agents (run ON the resource itself)
|
|
389
|
+
tp-ops drop # Auto-detect resource type
|
|
390
|
+
tp-ops drop --type relay-agent # Override detection
|
|
391
|
+
tp-ops drop --type apigw-agent --apim <instance>
|
|
392
|
+
tp-ops drop --type azure-agent --subscription <id>
|
|
393
|
+
tp-ops drop --name <custom> # Override resource name
|
|
394
|
+
|
|
395
|
+
# Talk to an agent (interactive conversation)
|
|
396
|
+
tp-ops ask <resource-name>
|
|
397
|
+
|
|
398
|
+
# Run a one-shot investigation (non-interactive)
|
|
399
|
+
tp-ops run <resource-name> "<problem>"
|
|
400
|
+
|
|
401
|
+
# Proactive scan
|
|
402
|
+
tp-ops scan <resource-name>
|
|
403
|
+
tp-ops scan <resource-name> --deep
|
|
404
|
+
|
|
405
|
+
# Security audit
|
|
406
|
+
tp-ops audit <resource-name>
|
|
407
|
+
tp-ops audit <resource-name> --compliance cis
|
|
408
|
+
|
|
409
|
+
# Approve/reject actions
|
|
410
|
+
tp-ops approve <resource-name>:action-<id>
|
|
411
|
+
tp-ops reject <resource-name>:action-<id>
|
|
412
|
+
|
|
413
|
+
# Management
|
|
414
|
+
tp-ops list # List all dropped agents
|
|
415
|
+
tp-ops history <resource-name> # Investigation history
|
|
416
|
+
tp-ops usage # Billing and GB usage
|
|
417
|
+
tp-ops usage --days 30 # Usage for last 30 days
|
|
418
|
+
tp-ops remove <resource-name> # Remove agent
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## Project Structure
|
|
424
|
+
|
|
425
|
+
```
|
|
426
|
+
ternaryphysics-ops/
|
|
427
|
+
├── README.md
|
|
428
|
+
├── WHITEPAPER.md
|
|
429
|
+
├── AGENT_CATALOG.md
|
|
430
|
+
├── CLI_REFERENCE.md
|
|
431
|
+
├── CLI_INTERACTIVE.md
|
|
432
|
+
├── LICENSE
|
|
433
|
+
│
|
|
434
|
+
├── cli/
|
|
435
|
+
│ ├── main.py # Entry point (tp-ops)
|
|
436
|
+
│ ├── commands/
|
|
437
|
+
│ │ ├── drop.py # Drop agent onto resource
|
|
438
|
+
│ │ ├── ask.py # Interactive conversation mode
|
|
439
|
+
│ │ ├── run.py # One-shot investigation
|
|
440
|
+
│ │ ├── scan.py # Proactive scan
|
|
441
|
+
│ │ ├── approve.py # Action approval
|
|
442
|
+
│ │ ├── list.py # List agents
|
|
443
|
+
│ │ ├── history.py # History
|
|
444
|
+
│ │ ├── usage.py # Billing and usage display
|
|
445
|
+
│ │ ├── remove.py # Remove agent
|
|
446
|
+
│ │ ├── init_cmd.py # First-time setup wizard
|
|
447
|
+
│ │ ├── login.py # tp-ops login --token
|
|
448
|
+
│ │ ├── logout.py # tp-ops logout
|
|
449
|
+
│ │ └── account.py # tp-ops account
|
|
450
|
+
│ ├── auth/
|
|
451
|
+
│ │ └── token.py # Secure token storage (keyring/file)
|
|
452
|
+
│ ├── api/
|
|
453
|
+
│ │ ├── client.py # HTTP client for backend API
|
|
454
|
+
│ │ ├── models.py # API response models
|
|
455
|
+
│ │ └── offline_queue.py # Queue usage when offline
|
|
456
|
+
│ ├── conversation/
|
|
457
|
+
│ │ ├── session.py # Conversation session manager
|
|
458
|
+
│ │ ├── parser.py # Natural language input parsing
|
|
459
|
+
│ │ └── renderer.py # Response formatting
|
|
460
|
+
│ └── output/
|
|
461
|
+
│ ├── terminal.py
|
|
462
|
+
│ ├── report.py
|
|
463
|
+
│ └── audit.py
|
|
464
|
+
│
|
|
465
|
+
├── backend/
|
|
466
|
+
│ ├── app/
|
|
467
|
+
│ │ ├── main.py # FastAPI application
|
|
468
|
+
│ │ ├── config.py # Settings from environment
|
|
469
|
+
│ │ ├── api/v1/
|
|
470
|
+
│ │ │ ├── auth.py # POST /auth/validate
|
|
471
|
+
│ │ │ ├── accounts.py # GET /accounts/me
|
|
472
|
+
│ │ │ ├── usage.py # Usage reporting endpoints
|
|
473
|
+
│ │ │ └── billing.py # Stripe webhooks
|
|
474
|
+
│ │ ├── models/
|
|
475
|
+
│ │ │ ├── account.py # Account model
|
|
476
|
+
│ │ │ ├── api_key.py # API key model
|
|
477
|
+
│ │ │ └── usage_event.py # Usage tracking
|
|
478
|
+
│ │ └── services/
|
|
479
|
+
│ │ └── stripe_service.py # Stripe integration
|
|
480
|
+
│ ├── Dockerfile
|
|
481
|
+
│ ├── docker-compose.yml
|
|
482
|
+
│ └── requirements.txt
|
|
483
|
+
│
|
|
484
|
+
├── agents/
|
|
485
|
+
│ ├── base/
|
|
486
|
+
│ │ ├── agent.py # Base agent class
|
|
487
|
+
│ │ ├── conversation.py # Conversational interface
|
|
488
|
+
│ │ ├── investigation.py # Investigation engine
|
|
489
|
+
│ │ ├── reasoning.py # "How to think" reasoning
|
|
490
|
+
│ │ ├── delta_scanner.py # What changed? (1h vs 23h)
|
|
491
|
+
│ │ ├── self_check.py # Evidence verification
|
|
492
|
+
│ │ ├── executor.py # Human-approved execution
|
|
493
|
+
│ │ ├── meter.py # GB processed tracking
|
|
494
|
+
│ │ └── cross_agent.py # Cross-agent communication
|
|
495
|
+
│ │
|
|
496
|
+
│ ├── kubernetes/
|
|
497
|
+
│ │ ├── agent.py
|
|
498
|
+
│ │ ├── conversation.py # K8s-specific question handling
|
|
499
|
+
│ │ ├── tools/
|
|
500
|
+
│ │ │ ├── pod_inspector.py
|
|
501
|
+
│ │ │ ├── node_inspector.py
|
|
502
|
+
│ │ │ ├── deployment_inspector.py
|
|
503
|
+
│ │ │ ├── service_inspector.py
|
|
504
|
+
│ │ │ ├── event_analyzer.py
|
|
505
|
+
│ │ │ └── resource_analyzer.py
|
|
506
|
+
│ │ ├── scanners/
|
|
507
|
+
│ │ │ ├── zombie_detector.py
|
|
508
|
+
│ │ │ ├── orphan_detector.py
|
|
509
|
+
│ │ │ └── overprovisioning.py
|
|
510
|
+
│ │ └── knowledge/
|
|
511
|
+
│ │ └── patterns.py
|
|
512
|
+
│ │
|
|
513
|
+
│ ├── vm/
|
|
514
|
+
│ │ ├── agent.py
|
|
515
|
+
│ │ ├── conversation.py
|
|
516
|
+
│ │ ├── tools/
|
|
517
|
+
│ │ │ ├── process_inspector.py
|
|
518
|
+
│ │ │ ├── disk_inspector.py
|
|
519
|
+
│ │ │ ├── memory_inspector.py
|
|
520
|
+
│ │ │ ├── network_inspector.py
|
|
521
|
+
│ │ │ └── service_inspector.py
|
|
522
|
+
│ │ ├── scanners/
|
|
523
|
+
│ │ │ ├── runaway_detector.py
|
|
524
|
+
│ │ │ └── disk_predictor.py
|
|
525
|
+
│ │ └── knowledge/
|
|
526
|
+
│ │ └── patterns.py
|
|
527
|
+
│ │
|
|
528
|
+
│ ├── postgres/
|
|
529
|
+
│ │ ├── agent.py
|
|
530
|
+
│ │ ├── conversation.py
|
|
531
|
+
│ │ ├── tools/
|
|
532
|
+
│ │ │ ├── query_analyzer.py
|
|
533
|
+
│ │ │ ├── connection_monitor.py
|
|
534
|
+
│ │ │ ├── replication_monitor.py
|
|
535
|
+
│ │ │ ├── lock_inspector.py
|
|
536
|
+
│ │ │ ├── vacuum_analyzer.py
|
|
537
|
+
│ │ │ └── index_advisor.py
|
|
538
|
+
│ │ ├── scanners/
|
|
539
|
+
│ │ │ ├── bloat_detector.py
|
|
540
|
+
│ │ │ └── leak_detector.py
|
|
541
|
+
│ │ └── knowledge/
|
|
542
|
+
│ │ └── patterns.py
|
|
543
|
+
│ │
|
|
544
|
+
│ ├── api_gateway/
|
|
545
|
+
│ │ ├── agent.py
|
|
546
|
+
│ │ ├── conversation.py
|
|
547
|
+
│ │ ├── tools/
|
|
548
|
+
│ │ │ ├── endpoint_inspector.py
|
|
549
|
+
│ │ │ ├── traffic_analyzer.py
|
|
550
|
+
│ │ │ ├── cost_attributor.py
|
|
551
|
+
│ │ │ └── deprecation_tracker.py
|
|
552
|
+
│ │ ├── scanners/
|
|
553
|
+
│ │ │ ├── nonprod_detector.py
|
|
554
|
+
│ │ │ └── slo_monitor.py
|
|
555
|
+
│ │ └── knowledge/
|
|
556
|
+
│ │ └── patterns.py
|
|
557
|
+
│ │
|
|
558
|
+
│ ├── security/
|
|
559
|
+
│ │ ├── agent.py
|
|
560
|
+
│ │ ├── conversation.py
|
|
561
|
+
│ │ ├── tools/
|
|
562
|
+
│ │ │ ├── rbac_auditor.py
|
|
563
|
+
│ │ │ ├── identity_auditor.py
|
|
564
|
+
│ │ │ ├── secret_scanner.py
|
|
565
|
+
│ │ │ ├── cve_scanner.py
|
|
566
|
+
│ │ │ └── tls_auditor.py
|
|
567
|
+
│ │ └── knowledge/
|
|
568
|
+
│ │ └── patterns.py
|
|
569
|
+
│ │
|
|
570
|
+
│ └── azure_monitor/
|
|
571
|
+
│ ├── agent.py
|
|
572
|
+
│ ├── conversation.py
|
|
573
|
+
│ ├── tools/
|
|
574
|
+
│ │ ├── kql_executor.py
|
|
575
|
+
│ │ ├── app_insights_analyzer.py
|
|
576
|
+
│ │ └── log_analytics_analyzer.py
|
|
577
|
+
│ ├── scanners/
|
|
578
|
+
│ │ ├── cost_optimizer.py
|
|
579
|
+
│ │ └── alert_auditor.py
|
|
580
|
+
│ └── knowledge/
|
|
581
|
+
│ └── kql_library.py
|
|
582
|
+
│
|
|
583
|
+
├── engine/
|
|
584
|
+
│ ├── reasoning/
|
|
585
|
+
│ │ ├── principles.py # Investigation reasoning
|
|
586
|
+
│ │ ├── delta_scan.py # "What changed?" engine
|
|
587
|
+
│ │ ├── causal_chain.py # Root cause builder
|
|
588
|
+
│ │ └── evidence_gate.py # Self-check evidence gate
|
|
589
|
+
│ ├── execution/
|
|
590
|
+
│ │ ├── sandbox.py # Command sandboxing
|
|
591
|
+
│ │ ├── approval_flow.py # Human approval workflow
|
|
592
|
+
│ │ └── timeout.py # Execution timeouts
|
|
593
|
+
│ ├── inference/
|
|
594
|
+
│ │ ├── tnn_detector.py # Tier 1: TNN anomaly detection
|
|
595
|
+
│ │ ├── inference.py # Tier 2: LLM inference (llama.cpp)
|
|
596
|
+
│ │ ├── models.py # Model download and management
|
|
597
|
+
│ │ └── hot_swap.py # Atomic model weight update
|
|
598
|
+
│ └── metering/
|
|
599
|
+
│ └── gb_tracker.py # Per-GB billing
|
|
600
|
+
│
|
|
601
|
+
├── models/
|
|
602
|
+
│ ├── tnn/ # Ternary Neural Network weights
|
|
603
|
+
│ │ ├── k8s_anomaly.bin
|
|
604
|
+
│ │ ├── vm_anomaly.bin
|
|
605
|
+
│ │ ├── postgres_anomaly.bin
|
|
606
|
+
│ │ └── network_anomaly.bin
|
|
607
|
+
│ └── llm/ # LLM weights (auto-downloaded)
|
|
608
|
+
│ └── TernaryPhysics-7B-Q4_K_M.gguf
|
|
609
|
+
│
|
|
610
|
+
├── website/
|
|
611
|
+
│ └── index.html
|
|
612
|
+
│
|
|
613
|
+
└── tests/
|
|
614
|
+
├── test_conversation.py
|
|
615
|
+
├── test_k8s_agent.py
|
|
616
|
+
├── test_vm_agent.py
|
|
617
|
+
├── test_postgres_agent.py
|
|
618
|
+
├── test_reasoning.py
|
|
619
|
+
├── test_cross_agent.py
|
|
620
|
+
└── fixtures/
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
---
|
|
624
|
+
|
|
625
|
+
## About
|
|
626
|
+
|
|
627
|
+
Built by [TernaryPhysics LLC](https://ternaryphysics.com), Mount Pleasant, SC.
|
|
628
|
+
|
|
629
|
+
Created by an SRE who was tired of investigating the same problems at 3am and wanted to talk to his infrastructure instead of stare at dashboards.
|
|
630
|
+
|
|
631
|
+
**Patent Pending** — USPTO Provisional Filed March 2, 2026
|
|
632
|
+
Covers: Kernel-space ternary neural network inference with continuous learning feedback loop
|
|
633
|
+
|
|
634
|
+
*"A brain you drop onto your infrastructure. You talk to it. It talks back."*
|