apsimo 1.3.0__py3-none-any.whl
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.
- apsimo/__init__.py +38 -0
- apsimo/__main__.py +6 -0
- apsimo/agent/__init__.py +6 -0
- apsimo/agent/client.py +276 -0
- apsimo/agent/models.py +46 -0
- apsimo/agents/__init__.py +20 -0
- apsimo/agents/models.py +264 -0
- apsimo/agents/store.py +861 -0
- apsimo/agents/websocket.py +522 -0
- apsimo/api/__init__.py +1 -0
- apsimo/api/auth_telemetry.py +287 -0
- apsimo/api/authority.py +1203 -0
- apsimo/api/contact_grants.py +347 -0
- apsimo/api/middleware.py +483 -0
- apsimo/api/routers/__init__.py +1 -0
- apsimo/api/routers/commitment_work.py +265 -0
- apsimo/api/routers/context_gate.py +123 -0
- apsimo/api/routers/executions.py +140 -0
- apsimo/api/routers/followup_plans.py +147 -0
- apsimo/api/routers/governed_actions.py +162 -0
- apsimo/api/routers/host.py +14473 -0
- apsimo/api/routers/initiative_work.py +115 -0
- apsimo/api/routers/mining.py +104 -0
- apsimo/api/routers/observations.py +110 -0
- apsimo/api/routers/social_state.py +225 -0
- apsimo/api/routers/task_queue.py +2715 -0
- apsimo/api/routers/temporal_followups.py +251 -0
- apsimo/api/routers/transport.py +110 -0
- apsimo/api/routers/transport_ingress_api.py +240 -0
- apsimo/api/schemas/__init__.py +1 -0
- apsimo/api/schemas/host.py +1949 -0
- apsimo/autonomy/cli.py +110 -0
- apsimo/autonomy/condition_worker.py +437 -0
- apsimo/autonomy/config.py +424 -0
- apsimo/autonomy/loop.py +4316 -0
- apsimo/autonomy/registry.py +339 -0
- apsimo/autonomy/scheduler.py +1822 -0
- apsimo/autonomy/synthesis.py +449 -0
- apsimo/backup.py +962 -0
- apsimo/beliefs/__init__.py +23 -0
- apsimo/beliefs/contradictions.py +109 -0
- apsimo/beliefs/decay.py +61 -0
- apsimo/beliefs/engine.py +479 -0
- apsimo/beliefs/models.py +67 -0
- apsimo/beliefs/promotion.py +41 -0
- apsimo/beliefs/resolve.py +58 -0
- apsimo/beliefs/source_claims.py +690 -0
- apsimo/beliefs/source_projection.py +883 -0
- apsimo/beliefs/source_time.py +208 -0
- apsimo/beliefs/store.py +133 -0
- apsimo/briefings/aggregators.py +824 -0
- apsimo/briefings/composer.py +420 -0
- apsimo/briefings/config.py +55 -0
- apsimo/briefings/delivery.py +439 -0
- apsimo/briefings/engagement.py +97 -0
- apsimo/briefings/engine.py +274 -0
- apsimo/briefings/enhancer.py +99 -0
- apsimo/briefings/models.py +183 -0
- apsimo/briefings/scheduler.py +382 -0
- apsimo/briefings/store.py +435 -0
- apsimo/chain/__init__.py +48 -0
- apsimo/chain/block.py +100 -0
- apsimo/chain/cli.py +704 -0
- apsimo/chain/genesis.py +443 -0
- apsimo/chain/identity.py +416 -0
- apsimo/chain/keys.py +1025 -0
- apsimo/chain/local_keys.py +187 -0
- apsimo/chain/manager.py +290 -0
- apsimo/chain/node.py +163 -0
- apsimo/chain/plugin_transactions.py +371 -0
- apsimo/chain/protocol.py +220 -0
- apsimo/chain/state_machine.py +676 -0
- apsimo/chain/storage.py +503 -0
- apsimo/chain/transactions.py +250 -0
- apsimo/chain/validation.py +397 -0
- apsimo/channels/__init__.py +1 -0
- apsimo/channels/manifest.py +31 -0
- apsimo/channels/migrations/001_channels_schema.sql +12 -0
- apsimo/channels/phone_gateways.py +42 -0
- apsimo/channels/presence.py +188 -0
- apsimo/channels/router.py +235 -0
- apsimo/channels/store.py +231 -0
- apsimo/cli.py +2688 -0
- apsimo/cognition/__init__.py +11 -0
- apsimo/cognition/charter.py +398 -0
- apsimo/cognition/drive_governance.py +3530 -0
- apsimo/cognition/evidence_pipeline.py +1627 -0
- apsimo/cognition/external_events.py +932 -0
- apsimo/cognition/goal_spine.py +3488 -0
- apsimo/cognition/introspection.py +214 -0
- apsimo/cognition/prompt.py +150 -0
- apsimo/cognition/runtime.py +108 -0
- apsimo/cognition/trigger.py +154 -0
- apsimo/commitments/__init__.py +18 -0
- apsimo/commitments/local_work.py +355 -0
- apsimo/commitments/store.py +1052 -0
- apsimo/commitments/work.py +91 -0
- apsimo/compat.py +53 -0
- apsimo/compression/__init__.py +467 -0
- apsimo/connectors/__init__.py +21 -0
- apsimo/connectors/base.py +152 -0
- apsimo/connectors/caldav_calendar.py +125 -0
- apsimo/connectors/fs_documents.py +85 -0
- apsimo/connectors/imap_email.py +138 -0
- apsimo/connectors/manager.py +218 -0
- apsimo/connectors/webhook_pull.py +88 -0
- apsimo/contacts/__init__.py +33 -0
- apsimo/contacts/comms.py +357 -0
- apsimo/contacts/config.py +79 -0
- apsimo/contacts/exporters/__init__.py +1 -0
- apsimo/contacts/exporters/vcard.py +71 -0
- apsimo/contacts/identity_links.py +251 -0
- apsimo/contacts/importer.py +280 -0
- apsimo/contacts/importers/__init__.py +1 -0
- apsimo/contacts/importers/batch.py +43 -0
- apsimo/contacts/importers/macos_contacts.py +101 -0
- apsimo/contacts/migrations/001_contacts_schema.sql +141 -0
- apsimo/contacts/migrations/002_trust_scopes.sql +36 -0
- apsimo/contacts/migrations/003_open_gateway_enum.sql +32 -0
- apsimo/contacts/migrations/004_contact_provision_operations.sql +18 -0
- apsimo/contacts/migrations/005_identity_links.sql +27 -0
- apsimo/contacts/models.py +308 -0
- apsimo/contacts/scoring.py +16 -0
- apsimo/contacts/store.py +1623 -0
- apsimo/contacts/transport_ingress.py +252 -0
- apsimo/contacts/world_bridge.py +314 -0
- apsimo/contextgate/__init__.py +69 -0
- apsimo/contextgate/chunker.py +169 -0
- apsimo/contextgate/estimate.py +54 -0
- apsimo/contextgate/gate.py +313 -0
- apsimo/contextgate/retrieve.py +115 -0
- apsimo/delivery/__init__.py +16 -0
- apsimo/delivery/bridge.py +1260 -0
- apsimo/delivery/channels.py +526 -0
- apsimo/delivery/classification.py +50 -0
- apsimo/delivery/rate_limiter.py +268 -0
- apsimo/delivery/reachout_policy.py +206 -0
- apsimo/directed/__init__.py +22 -0
- apsimo/directed/audit.py +167 -0
- apsimo/directed/intake.py +95 -0
- apsimo/directed/models.py +191 -0
- apsimo/directed/service.py +509 -0
- apsimo/directives/__init__.py +25 -0
- apsimo/directives/evidence.py +87 -0
- apsimo/directives/extractor.py +188 -0
- apsimo/directives/guard.py +364 -0
- apsimo/directives/models.py +206 -0
- apsimo/directives/service.py +372 -0
- apsimo/directives/store.py +167 -0
- apsimo/doctor.py +2173 -0
- apsimo/environment.py +43 -0
- apsimo/events/__init__.py +33 -0
- apsimo/events/broadcaster.py +98 -0
- apsimo/events/bus.py +217 -0
- apsimo/events/journal.py +863 -0
- apsimo/events/stream.py +131 -0
- apsimo/events/types.py +150 -0
- apsimo/execution_results.py +357 -0
- apsimo/feedback/__init__.py +5 -0
- apsimo/feedback/store.py +76 -0
- apsimo/feeds/__init__.py +19 -0
- apsimo/feeds/cli.py +84 -0
- apsimo/feeds/engine.py +437 -0
- apsimo/feeds/example-feed.yaml +77 -0
- apsimo/feeds/hermes_cron.py +126 -0
- apsimo/feeds/manager.py +235 -0
- apsimo/feeds/spec.py +250 -0
- apsimo/feeds/template.py +202 -0
- apsimo/gate/__init__.py +18 -0
- apsimo/gate/audit.py +61 -0
- apsimo/gate/communication_policy.py +166 -0
- apsimo/gate/config.py +72 -0
- apsimo/gate/context_provenance.py +170 -0
- apsimo/gate/env_risk.py +226 -0
- apsimo/gate/guard_audit.py +353 -0
- apsimo/gate/layers/__init__.py +1 -0
- apsimo/gate/layers/base.py +15 -0
- apsimo/gate/layers/l1_recipient.py +66 -0
- apsimo/gate/layers/l2_pii.py +134 -0
- apsimo/gate/layers/l3_cross_context.py +50 -0
- apsimo/gate/layers/l4_trust_tier.py +78 -0
- apsimo/gate/layers/l5_injection.py +199 -0
- apsimo/gate/layers/l6_review.py +86 -0
- apsimo/gate/layers/l7_delay.py +100 -0
- apsimo/gate/layers/tom2_epistemic.py +185 -0
- apsimo/gate/models.py +64 -0
- apsimo/gate/pending_dispatch.py +5 -0
- apsimo/gate/pipeline.py +206 -0
- apsimo/gate/rejection.py +259 -0
- apsimo/gate/response_guard.py +700 -0
- apsimo/gate/rulesets/injection_v1.yaml +51 -0
- apsimo/gate/surface_policy.py +189 -0
- apsimo/gate/taint.py +226 -0
- apsimo/genesis.json +9 -0
- apsimo/goals/__init__.py +100 -0
- apsimo/goals/config.py +38 -0
- apsimo/goals/decomposer.py +421 -0
- apsimo/goals/engine.py +617 -0
- apsimo/goals/inference.py +354 -0
- apsimo/goals/models.py +302 -0
- apsimo/goals/priority.py +270 -0
- apsimo/goals/queue_bridge.py +149 -0
- apsimo/goals/replan.py +450 -0
- apsimo/goals/schema.sql +89 -0
- apsimo/goals/store.py +692 -0
- apsimo/governed_actions.py +1708 -0
- apsimo/harness_integration/__init__.py +45 -0
- apsimo/harness_integration/context.py +41 -0
- apsimo/harness_integration/skills.py +231 -0
- apsimo/identity/__init__.py +26 -0
- apsimo/identity/participants.py +181 -0
- apsimo/identity/resolver.py +329 -0
- apsimo/identity_bootstrap/__init__.py +5 -0
- apsimo/identity_bootstrap/builder.py +208 -0
- apsimo/identity_bootstrap/corpus.py +443 -0
- apsimo/identity_bootstrap/models.py +54 -0
- apsimo/identity_bootstrap/runner.py +353 -0
- apsimo/identity_bootstrap/seeders/__init__.py +25 -0
- apsimo/identity_bootstrap/seeders/briefings.py +109 -0
- apsimo/identity_bootstrap/seeders/chain.py +57 -0
- apsimo/identity_bootstrap/seeders/goals.py +128 -0
- apsimo/identity_bootstrap/seeders/memory.py +191 -0
- apsimo/identity_bootstrap/seeders/neo4j_cognition.py +79 -0
- apsimo/identity_bootstrap/seeders/relationship.py +152 -0
- apsimo/identity_bootstrap/seeders/sessions.py +67 -0
- apsimo/identity_bootstrap/seeders/skills.py +92 -0
- apsimo/identity_bootstrap/seeders/task_queue.py +72 -0
- apsimo/identity_bootstrap/seeders/world_model.py +143 -0
- apsimo/identity_bootstrap/self_query.py +92 -0
- apsimo/identity_bootstrap/self_reflection.py +155 -0
- apsimo/identity_bootstrap/skill.py +37 -0
- apsimo/identity_bootstrap/verifier.py +436 -0
- apsimo/initiatives/__init__.py +20 -0
- apsimo/initiatives/action_registry.py +454 -0
- apsimo/initiatives/approval_authority.py +2105 -0
- apsimo/initiatives/approval_policy.py +123 -0
- apsimo/initiatives/assignment.py +263 -0
- apsimo/initiatives/backup_evidence.py +100 -0
- apsimo/initiatives/context_freshness.py +103 -0
- apsimo/initiatives/models.py +318 -0
- apsimo/initiatives/native_work.py +270 -0
- apsimo/initiatives/standing_approvals.py +232 -0
- apsimo/initiatives/store.py +1081 -0
- apsimo/initiatives/temporal_followup.py +410 -0
- apsimo/intelligence/__init__.py +1 -0
- apsimo/intelligence/cognition/__init__.py +24 -0
- apsimo/intelligence/cognition/gap_detector.py +148 -0
- apsimo/intelligence/cognition/metalearner.py +547 -0
- apsimo/intelligence/cognition/metrics_collector.py +217 -0
- apsimo/intelligence/cognition/performance_index.py +299 -0
- apsimo/intelligence/cognition/registry.py +192 -0
- apsimo/intelligence/cognition/strategy_adjuster.py +222 -0
- apsimo/intelligence/cognition/types.py +16 -0
- apsimo/intelligence/components/__init__.py +66 -0
- apsimo/intelligence/components/anomaly_detector.py +413 -0
- apsimo/intelligence/components/initiative_engine.py +2643 -0
- apsimo/intelligence/components/preference_learner.py +521 -0
- apsimo/intelligence/components/research_orchestrator.py +358 -0
- apsimo/intelligence/components/self_directed_thinker.py +221 -0
- apsimo/intelligence/components/self_reflector.py +252 -0
- apsimo/intelligence/components/session_continuity.py +154 -0
- apsimo/intelligence/components/task_planner.py +320 -0
- apsimo/intelligence/components/tool_learner.py +217 -0
- apsimo/intelligence/graph/__init__.py +79 -0
- apsimo/intelligence/graph/client.py +2483 -0
- apsimo/intelligence/graph/consolidator.py +405 -0
- apsimo/intelligence/graph/distiller.py +312 -0
- apsimo/intelligence/graph/migrations.py +129 -0
- apsimo/intelligence/graph/queries.py +248 -0
- apsimo/intelligence/graph/recall.py +281 -0
- apsimo/intelligence/graph/reconciler.py +144 -0
- apsimo/intelligence/graph/schema.py +337 -0
- apsimo/intelligence/graph/selection.py +252 -0
- apsimo/intelligence/learning/__init__.py +17 -0
- apsimo/intelligence/learning/continuous_learner.py +245 -0
- apsimo/intelligence/learning/feedback_store.py +321 -0
- apsimo/intelligence/mind_model/__init__.py +1 -0
- apsimo/intelligence/mind_model/graph_baseline.py +136 -0
- apsimo/intelligence/mind_model/signal_collector.py +361 -0
- apsimo/intelligence/relationships/__init__.py +11 -0
- apsimo/intelligence/relationships/profiler.py +389 -0
- apsimo/intelligence/relationships/scorer.py +560 -0
- apsimo/intelligence/relationships/signal_floor.py +66 -0
- apsimo/intelligence/relationships/trust_tiers.py +300 -0
- apsimo/intelligence/synthesis/__init__.py +40 -0
- apsimo/intelligence/synthesis/connection_discoverer.py +379 -0
- apsimo/intelligence/synthesis/cross_domain_analyzer.py +287 -0
- apsimo/intelligence/synthesis/insight_deliverer.py +171 -0
- apsimo/intelligence/synthesis/insight_store.py +79 -0
- apsimo/intelligence/synthesis/insight_validator.py +183 -0
- apsimo/intelligence/synthesis/novelty_scorer.py +267 -0
- apsimo/intelligence/turn_middleware/__init__.py +15 -0
- apsimo/intelligence/turn_middleware/memory_sync.py +119 -0
- apsimo/mcp/__init__.py +41 -0
- apsimo/mcp/__main__.py +6 -0
- apsimo/mcp/config.py +287 -0
- apsimo/mcp/server.py +501 -0
- apsimo/migrations.py +187 -0
- apsimo/mining/__init__.py +27 -0
- apsimo/mining/corpus.py +239 -0
- apsimo/mining/escalations.py +289 -0
- apsimo/mining/models.py +169 -0
- apsimo/mining/store.py +210 -0
- apsimo/models/__init__.py +30 -0
- apsimo/models/memory.py +80 -0
- apsimo/models/mesh.py +72 -0
- apsimo/models/person.py +104 -0
- apsimo/models/signal.py +108 -0
- apsimo/observations/__init__.py +15 -0
- apsimo/observations/store.py +277 -0
- apsimo/patterns/__init__.py +6 -0
- apsimo/patterns/extract.py +187 -0
- apsimo/patterns/store.py +227 -0
- apsimo/persona/__init__.py +1 -0
- apsimo/persona/engine.py +611 -0
- apsimo/persona/manifest.py +140 -0
- apsimo/projects/__init__.py +28 -0
- apsimo/projects/engine.py +1681 -0
- apsimo/projects/event_outbox.py +188 -0
- apsimo/projects/models.py +216 -0
- apsimo/projects/planner.py +181 -0
- apsimo/projects/store.py +1446 -0
- apsimo/proposals/__init__.py +12 -0
- apsimo/proposals/engine.py +114 -0
- apsimo/proposals/models.py +207 -0
- apsimo/qualification/__init__.py +1 -0
- apsimo/qualification/cases.py +75 -0
- apsimo/qualification/cli.py +51 -0
- apsimo/qualification/memory_cases.py +209 -0
- apsimo/qualification/records.py +92 -0
- apsimo/qualification/report.py +87 -0
- apsimo/qualification/runner.py +311 -0
- apsimo/qualification/structured_cases.py +131 -0
- apsimo/reasoning/__init__.py +13 -0
- apsimo/reasoning/executor.py +506 -0
- apsimo/reasoning/loop.py +373 -0
- apsimo/reasoning/native_tools/__init__.py +16 -0
- apsimo/reasoning/native_tools/calculate.py +141 -0
- apsimo/reasoning/native_tools/file_ops.py +150 -0
- apsimo/reasoning/native_tools/web_search.py +49 -0
- apsimo/reasoning/tool_policy.py +182 -0
- apsimo/redact/__init__.py +176 -0
- apsimo/repos/__init__.py +5 -0
- apsimo/repos/mirrors.py +204 -0
- apsimo/research/__init__.py +41 -0
- apsimo/research/artifact.py +482 -0
- apsimo/research/gatherer.py +387 -0
- apsimo/research/pipeline.py +513 -0
- apsimo/research/search/__init__.py +7 -0
- apsimo/research/search/base.py +41 -0
- apsimo/research/search/brave.py +59 -0
- apsimo/research/search/cache.py +51 -0
- apsimo/research/search/duckduckgo.py +103 -0
- apsimo/research/search/orchestrator.py +119 -0
- apsimo/research/search/serpapi.py +59 -0
- apsimo/research/search/tavily.py +59 -0
- apsimo/research/synthesizer.py +309 -0
- apsimo/router/__init__.py +30 -0
- apsimo/router/complexity_scorer.py +148 -0
- apsimo/router/endpoints.py +153 -0
- apsimo/router/fallback.py +58 -0
- apsimo/router/functions.py +243 -0
- apsimo/router/native_policy.py +52 -0
- apsimo/router/router.py +762 -0
- apsimo/router/self_learning.py +174 -0
- apsimo/router/tiers.py +677 -0
- apsimo/sandbox/__init__.py +21 -0
- apsimo/sandbox/backend.py +195 -0
- apsimo/sandbox/manager.py +173 -0
- apsimo/scope_bounds.py +7 -0
- apsimo/secrets/__init__.py +6 -0
- apsimo/secrets/backends/__init__.py +8 -0
- apsimo/secrets/backends/base.py +42 -0
- apsimo/secrets/backends/env.py +110 -0
- apsimo/secrets/backends/keyring.py +72 -0
- apsimo/secrets/backends/onepassword.py +232 -0
- apsimo/secrets/cli.py +191 -0
- apsimo/secrets/manager.py +160 -0
- apsimo/secrets/migration.py +101 -0
- apsimo/secrets/types.py +98 -0
- apsimo/seed.py +41 -0
- apsimo/self_model/__init__.py +37 -0
- apsimo/self_model/appraisals.py +673 -0
- apsimo/self_model/benchmark.py +1314 -0
- apsimo/self_model/brief.py +40 -0
- apsimo/self_model/event_concerns.py +1128 -0
- apsimo/self_model/execution_forecasts.py +353 -0
- apsimo/self_model/expectations.py +1595 -0
- apsimo/self_model/experiments.py +1150 -0
- apsimo/self_model/journal.py +148 -0
- apsimo/self_model/judgments.py +705 -0
- apsimo/self_model/native_outcomes.py +55 -0
- apsimo/self_model/params.py +220 -0
- apsimo/self_model/perspective.py +246 -0
- apsimo/self_model/reconcile.py +183 -0
- apsimo/self_model/reply_forecasts.py +381 -0
- apsimo/self_model/runtime_forecasts.py +296 -0
- apsimo/self_model/runtime_models.py +67 -0
- apsimo/self_model/settlement.py +207 -0
- apsimo/self_model/situation.py +1731 -0
- apsimo/self_model/store.py +883 -0
- apsimo/self_model/supervised.py +137 -0
- apsimo/self_model/thinker.py +99 -0
- apsimo/self_model/trust.py +388 -0
- apsimo/self_model/workspace.py +2388 -0
- apsimo/server.py +4197 -0
- apsimo/services/__init__.py +1 -0
- apsimo/services/agent_bridge.py +474 -0
- apsimo/services/initiative_executor.py +914 -0
- apsimo/services/instance.py +297 -0
- apsimo/sessions/__init__.py +22 -0
- apsimo/sessions/config.py +13 -0
- apsimo/sessions/context_loader.py +88 -0
- apsimo/sessions/federation_session.py +75 -0
- apsimo/sessions/isolated_session.py +98 -0
- apsimo/sessions/reports.py +84 -0
- apsimo/sessions/store.py +148 -0
- apsimo/setup.py +2818 -0
- apsimo/setup_hermes.py +879 -0
- apsimo/setup_local_work.py +218 -0
- apsimo/setup_native_goals.py +134 -0
- apsimo/setup_native_reviews.py +115 -0
- apsimo/skills/__init__.py +10 -0
- apsimo/skills/base.py +108 -0
- apsimo/skills/budget.py +28 -0
- apsimo/skills/executor.py +493 -0
- apsimo/skills/executors/__init__.py +1 -0
- apsimo/skills/executors/behavioral_correction.py +75 -0
- apsimo/skills/executors/capability_gap.py +38 -0
- apsimo/skills/executors/data_quality.py +163 -0
- apsimo/skills/executors/knowledge_acquisition.py +41 -0
- apsimo/skills/executors/operational_hygiene.py +185 -0
- apsimo/skills/executors/subsystem_health.py +169 -0
- apsimo/skills/hermes_export.py +431 -0
- apsimo/skills/index.py +123 -0
- apsimo/skills/learning/__init__.py +21 -0
- apsimo/skills/learning/novelty_detector.py +206 -0
- apsimo/skills/learning/pattern_extractor.py +199 -0
- apsimo/skills/learning/triggers.py +159 -0
- apsimo/skills/loader.py +246 -0
- apsimo/skills/migrations/002_progressive_loading.sql +6 -0
- apsimo/skills/migrations/backfill_triggers.py +20 -0
- apsimo/skills/models.py +202 -0
- apsimo/skills/packager.py +128 -0
- apsimo/skills/protocols.py +70 -0
- apsimo/skills/registry.py +191 -0
- apsimo/skills/runtime.py +58 -0
- apsimo/skills/sandbox_runner.py +229 -0
- apsimo/skills/scheduler.py +129 -0
- apsimo/skills/schema.py +79 -0
- apsimo/skills/security/__init__.py +12 -0
- apsimo/skills/security/guards.py +53 -0
- apsimo/skills/security/scanner.py +223 -0
- apsimo/skills_memory/__init__.py +26 -0
- apsimo/skills_memory/distill.py +159 -0
- apsimo/skills_memory/models.py +85 -0
- apsimo/skills_memory/retrieve.py +62 -0
- apsimo/skills_memory/store.py +172 -0
- apsimo/surprise/__init__.py +6 -0
- apsimo/surprise/accumulation.py +57 -0
- apsimo/surprise/scorer.py +102 -0
- apsimo/surprise/store.py +203 -0
- apsimo/task_queue/__init__.py +69 -0
- apsimo/task_queue/action_receipts.py +148 -0
- apsimo/task_queue/approval_relay_canary.py +108 -0
- apsimo/task_queue/config.py +85 -0
- apsimo/task_queue/contract.py +361 -0
- apsimo/task_queue/events.py +130 -0
- apsimo/task_queue/governor.py +1031 -0
- apsimo/task_queue/handlers/__init__.py +16 -0
- apsimo/task_queue/handlers/base.py +37 -0
- apsimo/task_queue/handlers/inference.py +640 -0
- apsimo/task_queue/handlers/monitoring.py +116 -0
- apsimo/task_queue/handlers/registry.py +75 -0
- apsimo/task_queue/handlers/subtask_handler.py +173 -0
- apsimo/task_queue/handlers/system_maintenance.py +147 -0
- apsimo/task_queue/mesh_integration.py +111 -0
- apsimo/task_queue/models.py +317 -0
- apsimo/task_queue/queue_manager.py +8286 -0
- apsimo/task_queue/routing.py +287 -0
- apsimo/task_queue/scheduler.py +252 -0
- apsimo/task_queue/schema.sql +197 -0
- apsimo/task_queue/work_control.py +342 -0
- apsimo/task_queue/worker.py +993 -0
- apsimo/telemetry.py +145 -0
- apsimo/tom/__init__.py +6 -0
- apsimo/tom/affect.py +387 -0
- apsimo/tom/approvals.py +171 -0
- apsimo/tom/arcs.py +896 -0
- apsimo/tom/asymmetry.py +131 -0
- apsimo/tom/eligibility.py +248 -0
- apsimo/tom/engagement.py +214 -0
- apsimo/tom/exposure.py +214 -0
- apsimo/tom/extractor.py +306 -0
- apsimo/tom/fact_adapters.py +144 -0
- apsimo/tom/facts.py +326 -0
- apsimo/tom/integration.py +592 -0
- apsimo/tom/leveled.py +118 -0
- apsimo/tom/levels.py +247 -0
- apsimo/tom/recipient_audit.py +995 -0
- apsimo/tom/recipient_simulator.py +593 -0
- apsimo/tom/source_lineage.py +93 -0
- apsimo/tom/tom2.py +277 -0
- apsimo/tom/visibility.py +559 -0
- apsimo/tom/visibility_store.py +414 -0
- apsimo/tools/__init__.py +0 -0
- apsimo/tools/definitions.py +740 -0
- apsimo/tools/handlers.py +943 -0
- apsimo/toolsmith/__init__.py +26 -0
- apsimo/toolsmith/authority.py +166 -0
- apsimo/toolsmith/engine.py +559 -0
- apsimo/toolsmith/integrity.py +100 -0
- apsimo/toolsmith/miner.py +145 -0
- apsimo/toolsmith/policy.py +110 -0
- apsimo/toolsmith/registry.py +635 -0
- apsimo/turns/__init__.py +17 -0
- apsimo/turns/audio.py +134 -0
- apsimo/turns/documents.py +235 -0
- apsimo/turns/executions.py +486 -0
- apsimo/turns/hermes_history.py +245 -0
- apsimo/turns/hermes_kanban.py +268 -0
- apsimo/turns/hermes_work.py +96 -0
- apsimo/turns/idempotency.py +752 -0
- apsimo/turns/local_work.py +115 -0
- apsimo/turns/media.py +581 -0
- apsimo/turns/reported_workers.py +196 -0
- apsimo/turns/source_annotations.py +283 -0
- apsimo/turns/source_attribution.py +154 -0
- apsimo/turns/source_read.py +351 -0
- apsimo/turns/source_vectors.py +263 -0
- apsimo/turns/video.py +210 -0
- apsimo/util/autonomy_preset.py +220 -0
- apsimo/util/instance.py +92 -0
- apsimo/util/model_output.py +25 -0
- apsimo/util/quiet_hours.py +27 -0
- apsimo/util/session_safety.py +37 -0
- apsimo/util/temporal.py +343 -0
- apsimo/vector/__init__.py +75 -0
- apsimo/vector/backfill.py +171 -0
- apsimo/vector/caption.py +114 -0
- apsimo/vector/collections.py +51 -0
- apsimo/vector/config.py +102 -0
- apsimo/vector/embedder.py +670 -0
- apsimo/vector/image_preprocess.py +406 -0
- apsimo/vector/image_store.py +296 -0
- apsimo/vector/indexes.py +162 -0
- apsimo/vector/migrate.py +334 -0
- apsimo/vector/multimodal_provider.py +417 -0
- apsimo/vector/multimodal_types.py +87 -0
- apsimo/vector/openai_provider.py +119 -0
- apsimo/vector/query.py +49 -0
- apsimo/vector/reranker.py +565 -0
- apsimo/vector/safety_image.py +159 -0
- apsimo/vector/scanner.py +197 -0
- apsimo/vector/setup.py +289 -0
- apsimo/vector/store.py +533 -0
- apsimo/vector/tiers.py +263 -0
- apsimo/work_orders.py +925 -0
- apsimo/workers/__init__.py +21 -0
- apsimo/workers/agent_bridge.py +640 -0
- apsimo/workers/colony_worker.py +382 -0
- apsimo/workers/queue_worker.py +441 -0
- apsimo/workers/skills_sync.py +152 -0
- apsimo/world_model/__init__.py +71 -0
- apsimo/world_model/causal_maintenance.py +131 -0
- apsimo/world_model/causal_policy.py +43 -0
- apsimo/world_model/causal_query.py +125 -0
- apsimo/world_model/confidence.py +54 -0
- apsimo/world_model/config.py +64 -0
- apsimo/world_model/constants.py +97 -0
- apsimo/world_model/entities.py +145 -0
- apsimo/world_model/expectation_resolvers.py +177 -0
- apsimo/world_model/extraction/__init__.py +7 -0
- apsimo/world_model/extraction/base.py +62 -0
- apsimo/world_model/extraction/conversation_extractor.py +262 -0
- apsimo/world_model/extraction/detector.py +74 -0
- apsimo/world_model/extraction/document_extractor.py +78 -0
- apsimo/world_model/extraction/formats/__init__.py +24 -0
- apsimo/world_model/extraction/formats/csv_fmt.py +68 -0
- apsimo/world_model/extraction/formats/html_fmt.py +72 -0
- apsimo/world_model/extraction/formats/json_fmt.py +68 -0
- apsimo/world_model/extraction/formats/pdf.py +43 -0
- apsimo/world_model/extraction/formats/text.py +27 -0
- apsimo/world_model/extraction/llm_extractor.py +164 -0
- apsimo/world_model/extraction/pipeline.py +73 -0
- apsimo/world_model/integrations/__init__.py +5 -0
- apsimo/world_model/integrations/mind_model_bridge.py +115 -0
- apsimo/world_model/integrations/social_intel_bridge.py +120 -0
- apsimo/world_model/jobs/__init__.py +4 -0
- apsimo/world_model/jobs/extraction_job.py +168 -0
- apsimo/world_model/llm_extract.py +572 -0
- apsimo/world_model/neo4j/__init__.py +5 -0
- apsimo/world_model/neo4j/backend.py +654 -0
- apsimo/world_model/observations.py +155 -0
- apsimo/world_model/populator.py +307 -0
- apsimo/world_model/postgres/__init__.py +1 -0
- apsimo/world_model/postgres/backend.py +683 -0
- apsimo/world_model/relationships.py +25 -0
- apsimo/world_model/resolution/__init__.py +13 -0
- apsimo/world_model/resolution/entity_resolver.py +232 -0
- apsimo/world_model/resolution/merge_audit.py +16 -0
- apsimo/world_model/resolution/merge_workflow.py +117 -0
- apsimo/world_model/source_reports.py +121 -0
- apsimo/world_model/sqlite/__init__.py +4 -0
- apsimo/world_model/sqlite/backend.py +855 -0
- apsimo/world_model/sqlite/schema.sql +132 -0
- apsimo/world_model/store.py +545 -0
- apsimo-1.3.0.dist-info/METADATA +78 -0
- apsimo-1.3.0.dist-info/RECORD +614 -0
- apsimo-1.3.0.dist-info/WHEEL +5 -0
- apsimo-1.3.0.dist-info/entry_points.txt +11 -0
- apsimo-1.3.0.dist-info/licenses/LICENSE +21 -0
- apsimo-1.3.0.dist-info/top_level.txt +2 -0
- colony_sidecar/__init__.py +4 -0
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
"""Colony Identity Bootstrap — SelfKnowledgeCorpus.
|
|
2
|
+
|
|
3
|
+
Static catalog of Colony's own architecture, layers, endpoints, and phases.
|
|
4
|
+
These facts are seeded into every data system at first boot so the agent
|
|
5
|
+
can answer questions about itself without querying the internet.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from dataclasses import dataclass, field
|
|
11
|
+
from typing import Any, Dict, List, Optional
|
|
12
|
+
|
|
13
|
+
# ── Version ───────────────────────────────────────────────────────────────────
|
|
14
|
+
|
|
15
|
+
CORPUS_VERSION = "1.0.0"
|
|
16
|
+
|
|
17
|
+
# ── Dataclasses ───────────────────────────────────────────────────────────────
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@dataclass
|
|
21
|
+
class LayerRecord:
|
|
22
|
+
"""A single architectural layer in Colony."""
|
|
23
|
+
name: str
|
|
24
|
+
description: str
|
|
25
|
+
subsystems: List[str] = field(default_factory=list)
|
|
26
|
+
layer_index: int = 0
|
|
27
|
+
|
|
28
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
29
|
+
return {
|
|
30
|
+
"name": self.name,
|
|
31
|
+
"description": self.description,
|
|
32
|
+
"subsystems": self.subsystems,
|
|
33
|
+
"layer_index": self.layer_index,
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
@dataclass
|
|
38
|
+
class EndpointRecord:
|
|
39
|
+
"""A Colony REST API endpoint."""
|
|
40
|
+
path: str
|
|
41
|
+
method: str
|
|
42
|
+
description: str
|
|
43
|
+
router: str
|
|
44
|
+
auth_required: bool = True
|
|
45
|
+
tags: List[str] = field(default_factory=list)
|
|
46
|
+
|
|
47
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
48
|
+
return {
|
|
49
|
+
"path": self.path,
|
|
50
|
+
"method": self.method,
|
|
51
|
+
"description": self.description,
|
|
52
|
+
"router": self.router,
|
|
53
|
+
"auth_required": self.auth_required,
|
|
54
|
+
"tags": self.tags,
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@dataclass
|
|
59
|
+
class CognitionPhase:
|
|
60
|
+
"""A phase in the Colony cognition / meta-learning pipeline."""
|
|
61
|
+
name: str
|
|
62
|
+
description: str
|
|
63
|
+
components: List[str] = field(default_factory=list)
|
|
64
|
+
phase_index: int = 0
|
|
65
|
+
|
|
66
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
67
|
+
return {
|
|
68
|
+
"name": self.name,
|
|
69
|
+
"description": self.description,
|
|
70
|
+
"components": self.components,
|
|
71
|
+
"phase_index": self.phase_index,
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
@dataclass
|
|
76
|
+
class GateLayerRecord:
|
|
77
|
+
"""A single layer in the Colony ResponseGate safety pipeline."""
|
|
78
|
+
layer_id: str
|
|
79
|
+
name: str
|
|
80
|
+
description: str
|
|
81
|
+
layer_index: int = 0
|
|
82
|
+
blocking: bool = True
|
|
83
|
+
|
|
84
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
85
|
+
return {
|
|
86
|
+
"layer_id": self.layer_id,
|
|
87
|
+
"name": self.name,
|
|
88
|
+
"description": self.description,
|
|
89
|
+
"layer_index": self.layer_index,
|
|
90
|
+
"blocking": self.blocking,
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
@dataclass
|
|
95
|
+
class InferenceTier:
|
|
96
|
+
"""A tier in the Colony smart model routing system."""
|
|
97
|
+
name: str
|
|
98
|
+
description: str
|
|
99
|
+
complexity_range: str
|
|
100
|
+
models: List[str] = field(default_factory=list)
|
|
101
|
+
tier_index: int = 0
|
|
102
|
+
|
|
103
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
104
|
+
return {
|
|
105
|
+
"name": self.name,
|
|
106
|
+
"description": self.description,
|
|
107
|
+
"complexity_range": self.complexity_range,
|
|
108
|
+
"models": self.models,
|
|
109
|
+
"tier_index": self.tier_index,
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
@dataclass
|
|
114
|
+
class ArchitectureManifest:
|
|
115
|
+
"""Top-level container describing Colony's own architecture."""
|
|
116
|
+
colony_id: str
|
|
117
|
+
colony_name: str
|
|
118
|
+
colony_version: str
|
|
119
|
+
network_id: str
|
|
120
|
+
public_key_hex: Optional[str]
|
|
121
|
+
layers: List[LayerRecord] = field(default_factory=list)
|
|
122
|
+
api_endpoints: List[EndpointRecord] = field(default_factory=list)
|
|
123
|
+
cognition_phases: List[CognitionPhase] = field(default_factory=list)
|
|
124
|
+
gate_layers: List[GateLayerRecord] = field(default_factory=list)
|
|
125
|
+
inference_tiers: List[InferenceTier] = field(default_factory=list)
|
|
126
|
+
corpus_version: str = CORPUS_VERSION
|
|
127
|
+
properties: Dict[str, Any] = field(default_factory=dict)
|
|
128
|
+
|
|
129
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
130
|
+
return {
|
|
131
|
+
"colony_id": self.colony_id,
|
|
132
|
+
"colony_name": self.colony_name,
|
|
133
|
+
"colony_version": self.colony_version,
|
|
134
|
+
"network_id": self.network_id,
|
|
135
|
+
"public_key_hex": self.public_key_hex,
|
|
136
|
+
"layers": [l.to_dict() for l in self.layers],
|
|
137
|
+
"api_endpoints": [e.to_dict() for e in self.api_endpoints],
|
|
138
|
+
"cognition_phases": [c.to_dict() for c in self.cognition_phases],
|
|
139
|
+
"gate_layers": [g.to_dict() for g in self.gate_layers],
|
|
140
|
+
"inference_tiers": [t.to_dict() for t in self.inference_tiers],
|
|
141
|
+
"corpus_version": self.corpus_version,
|
|
142
|
+
"properties": self.properties,
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
# Alias used across the codebase
|
|
147
|
+
SelfKnowledgeCorpus = ArchitectureManifest
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
# ── Static catalogs ───────────────────────────────────────────────────────────
|
|
151
|
+
|
|
152
|
+
LAYERS: List[LayerRecord] = [
|
|
153
|
+
LayerRecord(
|
|
154
|
+
name="Gateway",
|
|
155
|
+
description="Inbound multi-platform message routing — iMessage, Telegram, Email, WhatsApp, Signal, SMS, Discord, Slack, Matrix, Webhook, API server.",
|
|
156
|
+
subsystems=["gateway.platforms", "gateway.session", "gateway.delivery", "gateway.pairing"],
|
|
157
|
+
layer_index=0,
|
|
158
|
+
),
|
|
159
|
+
LayerRecord(
|
|
160
|
+
name="API",
|
|
161
|
+
description="FastAPI REST + WebSocket server exposing all Colony capabilities. Handles auth, routing, audit logging.",
|
|
162
|
+
subsystems=["colony.api.server", "colony.api.routers", "colony.api.middleware", "colony.api.auth"],
|
|
163
|
+
layer_index=1,
|
|
164
|
+
),
|
|
165
|
+
LayerRecord(
|
|
166
|
+
name="Intelligence",
|
|
167
|
+
description="Cognition pipeline, mind model, synthesis engine, relationship scoring, initiative engine, anomaly detection, session continuity, tool learning.",
|
|
168
|
+
subsystems=[
|
|
169
|
+
"colony.intelligence.cognition",
|
|
170
|
+
"colony.intelligence.mind_model",
|
|
171
|
+
"colony.intelligence.synthesis",
|
|
172
|
+
"colony.intelligence.relationships",
|
|
173
|
+
"colony.intelligence.components",
|
|
174
|
+
],
|
|
175
|
+
layer_index=2,
|
|
176
|
+
),
|
|
177
|
+
LayerRecord(
|
|
178
|
+
name="Memory",
|
|
179
|
+
description="Multi-tier persistent memory: World Model (SQLite + Neo4j), Contacts SQLite store, in-memory episodic store, graph memory via Neo4j.",
|
|
180
|
+
subsystems=["colony.world_model", "colony.contacts", "colony.api.routers.memory", "colony.intelligence.graph"],
|
|
181
|
+
layer_index=3,
|
|
182
|
+
),
|
|
183
|
+
LayerRecord(
|
|
184
|
+
name="Goals",
|
|
185
|
+
description="DAG-based goal decomposition, lifecycle management, priority queue, replan engine, autonomy loop.",
|
|
186
|
+
subsystems=["colony.goals", "colony.autonomy"],
|
|
187
|
+
layer_index=4,
|
|
188
|
+
),
|
|
189
|
+
LayerRecord(
|
|
190
|
+
name="Skills",
|
|
191
|
+
description="Self-creating skill system: registry, executor, marketplace, security scanner, progressive loading, MCP bridge.",
|
|
192
|
+
subsystems=["colony.skills", "colony.skill_security", "colony.plugins"],
|
|
193
|
+
layer_index=5,
|
|
194
|
+
),
|
|
195
|
+
LayerRecord(
|
|
196
|
+
name="TaskQueue",
|
|
197
|
+
description="Distributed hardware-aware task queue: job scheduler, worker nodes, handler registry, monitoring.",
|
|
198
|
+
subsystems=["colony.task_queue"],
|
|
199
|
+
layer_index=6,
|
|
200
|
+
),
|
|
201
|
+
LayerRecord(
|
|
202
|
+
name="Federation",
|
|
203
|
+
description="Multi-agent mesh networking: colony chain, P2P protocol, ledger sync, consensus, identity federation.",
|
|
204
|
+
subsystems=["colony.chain", "colony.mesh", "colony.network", "colony.federation"],
|
|
205
|
+
layer_index=7,
|
|
206
|
+
),
|
|
207
|
+
LayerRecord(
|
|
208
|
+
name="Safety",
|
|
209
|
+
description="ResponseGate pipeline (7 layers), PII scrubbing, injection detection, trust-tier gating, rate limiting.",
|
|
210
|
+
subsystems=["colony.gate", "colony.gate.layers"],
|
|
211
|
+
layer_index=8,
|
|
212
|
+
),
|
|
213
|
+
LayerRecord(
|
|
214
|
+
name="Inference",
|
|
215
|
+
description="On-device inference, model routing, TurboQuant quantization backends (CPU/CUDA/MLX), context compression.",
|
|
216
|
+
subsystems=["colony.inference", "colony.router", "agent.context_compressor"],
|
|
217
|
+
layer_index=9,
|
|
218
|
+
),
|
|
219
|
+
]
|
|
220
|
+
|
|
221
|
+
API_ENDPOINTS: List[EndpointRecord] = [
|
|
222
|
+
# ── Admin (/v1/admin) ────────────────────────────────────────────────────
|
|
223
|
+
EndpointRecord("/v1/admin/register", "POST", "Register a new colony node", "admin", tags=["admin"]),
|
|
224
|
+
EndpointRecord("/v1/admin/attest", "POST", "Attest trust to a target colony (genesis admin only)", "admin", tags=["admin"]),
|
|
225
|
+
EndpointRecord("/v1/admin/revoke", "POST", "Revoke trust from a target colony", "admin", tags=["admin"]),
|
|
226
|
+
EndpointRecord("/v1/admin/network", "GET", "List all registered colony nodes", "admin", tags=["admin"]),
|
|
227
|
+
EndpointRecord("/v1/admin/suspend", "POST", "Suspend a registered colony node", "admin", tags=["admin"]),
|
|
228
|
+
EndpointRecord("/v1/admin/reinstate", "POST", "Reinstate a suspended colony node", "admin", tags=["admin"]),
|
|
229
|
+
EndpointRecord("/v1/admin/keys", "GET", "List all API keys", "admin", tags=["admin"]),
|
|
230
|
+
EndpointRecord("/v1/admin/keys", "POST", "Create a new API key", "admin", tags=["admin"]),
|
|
231
|
+
EndpointRecord("/v1/admin/keys/{key_id}", "DELETE", "Revoke an API key", "admin", tags=["admin"]),
|
|
232
|
+
# ── Autonomy (/v1/autonomy) ──────────────────────────────────────────────
|
|
233
|
+
EndpointRecord("/v1/autonomy/status", "GET", "Return current autonomy loop status", "autonomy", tags=["autonomy"]),
|
|
234
|
+
EndpointRecord("/v1/autonomy/config", "PATCH", "Patch autonomy configuration", "autonomy", tags=["autonomy"]),
|
|
235
|
+
EndpointRecord("/v1/autonomy/pause", "POST", "Pause the autonomy loop", "autonomy", tags=["autonomy"]),
|
|
236
|
+
EndpointRecord("/v1/autonomy/resume", "POST", "Resume a paused autonomy loop", "autonomy", tags=["autonomy"]),
|
|
237
|
+
# ── Briefings (/v1/briefings) ────────────────────────────────────────────
|
|
238
|
+
EndpointRecord("/v1/briefings/", "GET", "List briefings, most recent first", "briefings", tags=["briefings"]),
|
|
239
|
+
EndpointRecord("/v1/briefings/history", "GET", "List briefing metadata for history display", "briefings", tags=["briefings"]),
|
|
240
|
+
EndpointRecord("/v1/briefings/{briefing_id}", "GET", "Fetch a single briefing by ID", "briefings", tags=["briefings"]),
|
|
241
|
+
EndpointRecord("/v1/briefings/trigger", "POST", "Trigger immediate briefing generation", "briefings", tags=["briefings"]),
|
|
242
|
+
# ── Chain (/v1/chain) ────────────────────────────────────────────────────
|
|
243
|
+
EndpointRecord("/v1/chain/status", "GET", "Return chain status (height, block hash, sync status)", "chain", tags=["chain"]),
|
|
244
|
+
EndpointRecord("/v1/chain/blocks", "GET", "List blocks in reverse-chronological order", "chain", tags=["chain"]),
|
|
245
|
+
EndpointRecord("/v1/chain/blocks/{index}", "GET", "Fetch a block by height", "chain", tags=["chain"]),
|
|
246
|
+
EndpointRecord("/v1/chain/register", "POST", "Register a colony on-chain", "chain", tags=["chain"]),
|
|
247
|
+
EndpointRecord("/v1/chain/registry", "GET", "List all colonies registered on-chain", "chain", tags=["chain"]),
|
|
248
|
+
EndpointRecord("/v1/chain/attestations", "GET", "List chain attestation records", "chain", tags=["chain"]),
|
|
249
|
+
EndpointRecord("/v1/chain/sentinels", "GET", "List registered sentinel nodes", "chain", tags=["chain"]),
|
|
250
|
+
EndpointRecord("/v1/chain/tx/{tx_id}", "GET", "Fetch a transaction by ID", "chain", tags=["chain"]),
|
|
251
|
+
EndpointRecord("/v1/chain/mempool", "GET", "List unconfirmed transactions", "chain", tags=["chain"]),
|
|
252
|
+
EndpointRecord("/v1/chain/verify", "POST", "Run chain integrity verification", "chain", tags=["chain"]),
|
|
253
|
+
# ── Contacts (/v1/contacts) ──────────────────────────────────────────────
|
|
254
|
+
EndpointRecord("/v1/contacts/", "GET", "List contacts with search/pagination", "contacts", tags=["contacts"]),
|
|
255
|
+
EndpointRecord("/v1/contacts/{contact_id}", "GET", "Fetch a contact by ID", "contacts", tags=["contacts"]),
|
|
256
|
+
EndpointRecord("/v1/contacts/", "POST", "Create a new contact", "contacts", tags=["contacts"]),
|
|
257
|
+
EndpointRecord("/v1/contacts/{contact_id}", "PATCH", "Update a contact's mutable fields", "contacts", tags=["contacts"]),
|
|
258
|
+
EndpointRecord("/v1/contacts/{contact_id}", "DELETE", "Delete a contact", "contacts", tags=["contacts"]),
|
|
259
|
+
EndpointRecord("/v1/contacts/import", "POST", "Bulk import contacts from JSON", "contacts", tags=["contacts"]),
|
|
260
|
+
EndpointRecord("/v1/contacts/{contact_id}/merge", "POST", "Merge two contacts", "contacts", tags=["contacts"]),
|
|
261
|
+
# ── Docs (/v1/docs) ──────────────────────────────────────────────────────
|
|
262
|
+
EndpointRecord("/v1/docs/upload", "POST", "Upload and queue a document for processing", "docs", tags=["docs"]),
|
|
263
|
+
EndpointRecord("/v1/docs/{document_id}/status", "GET", "Poll document processing status", "docs", tags=["docs"]),
|
|
264
|
+
EndpointRecord("/v1/docs/{document_id}/result", "GET", "Retrieve processed document output", "docs", tags=["docs"]),
|
|
265
|
+
EndpointRecord("/v1/docs/{document_id}/citations", "GET", "Retrieve citation index", "docs", tags=["docs"]),
|
|
266
|
+
EndpointRecord("/v1/docs/search", "POST", "Semantic + keyword search over indexed documents", "docs", tags=["docs"]),
|
|
267
|
+
EndpointRecord("/v1/docs/list", "GET", "List indexed documents", "docs", tags=["docs"]),
|
|
268
|
+
EndpointRecord("/v1/docs/{document_id}", "DELETE", "Purge a document from the knowledge graph", "docs", tags=["docs"]),
|
|
269
|
+
EndpointRecord("/v1/docs/{document_id}/reindex", "POST", "Re-process an already-indexed document", "docs", tags=["docs"]),
|
|
270
|
+
# ── Gate (/v1/gate) ──────────────────────────────────────────────────────
|
|
271
|
+
EndpointRecord("/v1/gate/stats", "GET", "Return aggregate gate evaluation statistics", "gate", tags=["gate"]),
|
|
272
|
+
EndpointRecord("/v1/gate/config", "PATCH", "Update gate configuration at runtime", "gate", tags=["gate"]),
|
|
273
|
+
EndpointRecord("/v1/gate/pending", "GET", "List messages awaiting manual approval", "gate", tags=["gate"]),
|
|
274
|
+
EndpointRecord("/v1/gate/pending/{pending_id}/approve", "POST", "Approve a pending message", "gate", tags=["gate"]),
|
|
275
|
+
EndpointRecord("/v1/gate/pending/{pending_id}/reject", "POST", "Reject a pending message", "gate", tags=["gate"]),
|
|
276
|
+
# ── Goals (/v1/goals) ────────────────────────────────────────────────────
|
|
277
|
+
EndpointRecord("/v1/goals/", "GET", "List goals with optional status/priority filters", "goals", tags=["goals"]),
|
|
278
|
+
EndpointRecord("/v1/goals/{goal_id}", "GET", "Retrieve a single goal by ID", "goals", tags=["goals"]),
|
|
279
|
+
EndpointRecord("/v1/goals/", "POST", "Create a new goal", "goals", tags=["goals"]),
|
|
280
|
+
EndpointRecord("/v1/goals/{goal_id}", "PATCH", "Update a goal's mutable fields", "goals", tags=["goals"]),
|
|
281
|
+
EndpointRecord("/v1/goals/{goal_id}", "DELETE", "Cancel an active goal", "goals", tags=["goals"]),
|
|
282
|
+
# ── Memory (/v1/memory) ──────────────────────────────────────────────────
|
|
283
|
+
EndpointRecord("/v1/memory/query", "GET", "Semantic search memory entries", "memory", tags=["memory"]),
|
|
284
|
+
EndpointRecord("/v1/memory/create", "POST", "Store a new memory entry", "memory", tags=["memory"]),
|
|
285
|
+
EndpointRecord("/v1/memory/{memory_id}/decay", "PATCH", "Apply decay step to a memory", "memory", tags=["memory"]),
|
|
286
|
+
EndpointRecord("/v1/memory/{memory_id}", "DELETE", "Permanently delete a memory", "memory", tags=["memory"]),
|
|
287
|
+
# ── Mesh (/v1/mesh) ──────────────────────────────────────────────────────
|
|
288
|
+
EndpointRecord("/v1/mesh/nodes", "GET", "List mesh nodes", "mesh", tags=["mesh"]),
|
|
289
|
+
EndpointRecord("/v1/mesh/nodes/{node_id}", "GET", "Fetch a mesh node by ID", "mesh", tags=["mesh"]),
|
|
290
|
+
EndpointRecord("/v1/mesh/roles", "GET", "List all roles assigned to mesh nodes", "mesh", tags=["mesh"]),
|
|
291
|
+
EndpointRecord("/v1/mesh/health", "GET", "Mesh health summary", "mesh", tags=["mesh"]),
|
|
292
|
+
EndpointRecord("/v1/mesh/discover", "POST", "Trigger a mesh node discovery scan", "mesh", tags=["mesh"]),
|
|
293
|
+
# ── Relationships (/v1/relationships) ────────────────────────────────────
|
|
294
|
+
EndpointRecord("/v1/relationships/", "GET", "List relationships", "relationships", tags=["relationships"]),
|
|
295
|
+
EndpointRecord("/v1/relationships/{relationship_id}", "GET", "Retrieve a single relationship", "relationships", tags=["relationships"]),
|
|
296
|
+
EndpointRecord("/v1/relationships/", "POST", "Create a new relationship record", "relationships", tags=["relationships"]),
|
|
297
|
+
EndpointRecord("/v1/relationships/{relationship_id}", "PATCH", "Update a relationship", "relationships", tags=["relationships"]),
|
|
298
|
+
EndpointRecord("/v1/relationships/{relationship_id}", "DELETE", "Delete a relationship", "relationships", tags=["relationships"]),
|
|
299
|
+
EndpointRecord("/v1/relationships/{relationship_id}/score", "GET", "Compute relationship health score", "relationships", tags=["relationships"]),
|
|
300
|
+
EndpointRecord("/v1/relationships/{relationship_id}/note", "POST", "Attach a note to a relationship", "relationships", tags=["relationships"]),
|
|
301
|
+
# ── Research (/v1/research) ──────────────────────────────────────────────
|
|
302
|
+
EndpointRecord("/v1/research/", "POST", "Start a new research pipeline run", "research", tags=["research"]),
|
|
303
|
+
EndpointRecord("/v1/research/", "GET", "List research runs", "research", tags=["research"]),
|
|
304
|
+
EndpointRecord("/v1/research/{run_id}", "GET", "Get status and metadata for a run", "research", tags=["research"]),
|
|
305
|
+
EndpointRecord("/v1/research/{run_id}/artifact", "GET", "Get rendered artifact content", "research", tags=["research"]),
|
|
306
|
+
# ── Secrets (/v1/secrets) ────────────────────────────────────────────────
|
|
307
|
+
EndpointRecord("/v1/secrets/keys", "GET", "List secret key metadata (values never returned)", "secrets", tags=["secrets"]),
|
|
308
|
+
EndpointRecord("/v1/secrets/set", "POST", "Set or update a secret value", "secrets", tags=["secrets"]),
|
|
309
|
+
EndpointRecord("/v1/secrets/{name}", "DELETE", "Delete a secret key", "secrets", tags=["secrets"]),
|
|
310
|
+
EndpointRecord("/v1/secrets/audit", "GET", "Return audit log of secret operations", "secrets", tags=["secrets"]),
|
|
311
|
+
# ── Sessions (/v1/sessions) ──────────────────────────────────────────────
|
|
312
|
+
EndpointRecord("/v1/sessions/", "GET", "List active API sessions", "sessions", tags=["sessions"]),
|
|
313
|
+
EndpointRecord("/v1/sessions/", "POST", "Create a new session", "sessions", tags=["sessions"]),
|
|
314
|
+
EndpointRecord("/v1/sessions/{session_id}", "GET", "Retrieve a session by ID", "sessions", tags=["sessions"]),
|
|
315
|
+
EndpointRecord("/v1/sessions/{session_id}", "DELETE", "Archive an active session", "sessions", tags=["sessions"]),
|
|
316
|
+
# ── Skills (/v1/skills) ──────────────────────────────────────────────────
|
|
317
|
+
EndpointRecord("/v1/skills/registry", "GET", "List installed skills", "skills", tags=["skills"]),
|
|
318
|
+
EndpointRecord("/v1/skills/registry/{skill_id}", "GET", "Fetch an installed skill by ID", "skills", tags=["skills"]),
|
|
319
|
+
EndpointRecord("/v1/skills/install", "POST", "Install a skill", "skills", tags=["skills"]),
|
|
320
|
+
EndpointRecord("/v1/skills/{skill_id}", "DELETE", "Remove an installed skill", "skills", tags=["skills"]),
|
|
321
|
+
EndpointRecord("/v1/skills/marketplace", "GET", "Browse skill marketplace", "skills", tags=["skills"]),
|
|
322
|
+
# ── Tasks (/v1/tasks) ────────────────────────────────────────────────────
|
|
323
|
+
EndpointRecord("/v1/tasks/", "GET", "List tasks with optional status/type filters", "tasks", tags=["tasks"]),
|
|
324
|
+
EndpointRecord("/v1/tasks/{task_id}", "GET", "Retrieve a single task", "tasks", tags=["tasks"]),
|
|
325
|
+
EndpointRecord("/v1/tasks/submit", "POST", "Submit a new task for execution", "tasks", tags=["tasks"]),
|
|
326
|
+
EndpointRecord("/v1/tasks/{task_id}", "DELETE", "Cancel a pending or running task", "tasks", tags=["tasks"]),
|
|
327
|
+
# ── World (/v1/world) ────────────────────────────────────────────────────
|
|
328
|
+
EndpointRecord("/v1/world/entities", "GET", "List world model entities", "world", tags=["world"]),
|
|
329
|
+
EndpointRecord("/v1/world/entities/{entity_id}", "GET", "Fetch a world entity by ID", "world", tags=["world"]),
|
|
330
|
+
EndpointRecord("/v1/world/entities", "POST", "Create a new world model entity", "world", tags=["world"]),
|
|
331
|
+
EndpointRecord("/v1/world/entities/{entity_id}/graph", "GET", "Return entity's local relationship graph", "world", tags=["world"]),
|
|
332
|
+
EndpointRecord("/v1/world/query", "POST", "Run a query against the world model", "world", tags=["world"]),
|
|
333
|
+
# ── WebSocket ────────────────────────────────────────────────────────────
|
|
334
|
+
EndpointRecord("/v1/ws", "WS", "Real-time event stream WebSocket", "ws", auth_required=False, tags=["websocket"]),
|
|
335
|
+
]
|
|
336
|
+
|
|
337
|
+
COGNITION_PHASES: List[CognitionPhase] = [
|
|
338
|
+
CognitionPhase(
|
|
339
|
+
name="MetaLearning",
|
|
340
|
+
description="Tracks performance across domains, updates strategy weights, identifies capability gaps.",
|
|
341
|
+
components=["MetaLearner", "MetricsCollector", "PerformanceIndex", "GapDetector"],
|
|
342
|
+
phase_index=0,
|
|
343
|
+
),
|
|
344
|
+
CognitionPhase(
|
|
345
|
+
name="StrategyAdjustment",
|
|
346
|
+
description="Reads performance metrics and adjusts routing weights, retry policies, and tool selection strategies.",
|
|
347
|
+
components=["StrategyAdjuster"],
|
|
348
|
+
phase_index=1,
|
|
349
|
+
),
|
|
350
|
+
CognitionPhase(
|
|
351
|
+
name="SelfReflection",
|
|
352
|
+
description="Periodically analyzes own behavior, detects drift, generates improvement proposals.",
|
|
353
|
+
components=["SelfReflector"],
|
|
354
|
+
phase_index=2,
|
|
355
|
+
),
|
|
356
|
+
CognitionPhase(
|
|
357
|
+
name="SessionContinuity",
|
|
358
|
+
description="Maintains cross-session context, restores working memory, tracks open threads.",
|
|
359
|
+
components=["SessionContinuity"],
|
|
360
|
+
phase_index=3,
|
|
361
|
+
),
|
|
362
|
+
CognitionPhase(
|
|
363
|
+
name="ToolLearning",
|
|
364
|
+
description="Observes tool usage patterns, infers new skill opportunities, triggers skill generation.",
|
|
365
|
+
components=["ToolLearner"],
|
|
366
|
+
phase_index=4,
|
|
367
|
+
),
|
|
368
|
+
CognitionPhase(
|
|
369
|
+
name="PreferenceLearning",
|
|
370
|
+
description="Learns the owner's explicit communication preferences and maintains an evolving per-contact engagement profile (OCEAN + style).",
|
|
371
|
+
components=["PreferenceLearner", "EngagementStore"],
|
|
372
|
+
phase_index=5,
|
|
373
|
+
),
|
|
374
|
+
CognitionPhase(
|
|
375
|
+
name="TaskPlanning",
|
|
376
|
+
description="Decomposes goals into subtask DAGs, estimates resource requirements, handles replanning.",
|
|
377
|
+
components=["TaskPlanner"],
|
|
378
|
+
phase_index=6,
|
|
379
|
+
),
|
|
380
|
+
CognitionPhase(
|
|
381
|
+
name="ResearchOrchestration",
|
|
382
|
+
description="Coordinates multi-step research pipelines: gathering, synthesis, artifact generation.",
|
|
383
|
+
components=["ResearchOrchestrator"],
|
|
384
|
+
phase_index=7,
|
|
385
|
+
),
|
|
386
|
+
]
|
|
387
|
+
|
|
388
|
+
GATE_LAYERS: List[GateLayerRecord] = [
|
|
389
|
+
GateLayerRecord("L1", "RecipientAllowlist", "Blocks messages to recipients not on the contact allowlist.", layer_index=1),
|
|
390
|
+
GateLayerRecord("L2", "PIIScrubber", "Detects and redacts PII before any outbound transmission.", layer_index=2),
|
|
391
|
+
GateLayerRecord("L3", "CrossContextGuard", "Prevents leakage of data from one session context to another.", layer_index=3),
|
|
392
|
+
GateLayerRecord("L4", "TrustTierGate", "Enforces trust-tier permissions — lower tiers get restricted output.", layer_index=4),
|
|
393
|
+
GateLayerRecord("L5", "InjectionDetector", "Detects and blocks prompt-injection attempts in outbound content.", layer_index=5),
|
|
394
|
+
GateLayerRecord("L6", "HumanReview", "Routes sensitive content to a human-review queue when configured.", layer_index=6, blocking=False),
|
|
395
|
+
GateLayerRecord("L7", "SendDelay", "Applies configurable send delay for rate-limiting and pacing.", layer_index=7, blocking=False),
|
|
396
|
+
]
|
|
397
|
+
|
|
398
|
+
INFERENCE_TIERS: List[InferenceTier] = [
|
|
399
|
+
InferenceTier(
|
|
400
|
+
name="Fast",
|
|
401
|
+
description="Low-latency tier for simple completions, classification, and short Q&A.",
|
|
402
|
+
complexity_range="0.0–0.33",
|
|
403
|
+
models=[],
|
|
404
|
+
tier_index=0,
|
|
405
|
+
),
|
|
406
|
+
InferenceTier(
|
|
407
|
+
name="Balanced",
|
|
408
|
+
description="Default tier for most conversational and reasoning tasks.",
|
|
409
|
+
complexity_range="0.33–0.66",
|
|
410
|
+
models=[],
|
|
411
|
+
tier_index=1,
|
|
412
|
+
),
|
|
413
|
+
InferenceTier(
|
|
414
|
+
name="Deep",
|
|
415
|
+
description="High-capability tier for complex reasoning, long-form generation, and code synthesis.",
|
|
416
|
+
complexity_range="0.66–1.0",
|
|
417
|
+
models=[],
|
|
418
|
+
tier_index=2,
|
|
419
|
+
),
|
|
420
|
+
InferenceTier(
|
|
421
|
+
name="Local",
|
|
422
|
+
description="On-device inference via llama.cpp / MLX — privacy-first, no network required.",
|
|
423
|
+
complexity_range="any",
|
|
424
|
+
models=[],
|
|
425
|
+
tier_index=3,
|
|
426
|
+
),
|
|
427
|
+
]
|
|
428
|
+
|
|
429
|
+
# Canonical subsystem names (used by world-model seeder to create concept entities)
|
|
430
|
+
SUBSYSTEMS: List[str] = [
|
|
431
|
+
"gateway",
|
|
432
|
+
"api",
|
|
433
|
+
"intelligence",
|
|
434
|
+
"world_model",
|
|
435
|
+
"goals",
|
|
436
|
+
"skills",
|
|
437
|
+
"task_queue",
|
|
438
|
+
"federation",
|
|
439
|
+
"safety_gate",
|
|
440
|
+
"inference",
|
|
441
|
+
"contacts",
|
|
442
|
+
"briefings",
|
|
443
|
+
]
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""Colony Identity Bootstrap — report and anomaly models."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from dataclasses import dataclass, field
|
|
6
|
+
from typing import List, Literal, Optional
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class BootstrapAnomaly:
|
|
11
|
+
"""A discrepancy detected during self-check."""
|
|
12
|
+
system: str
|
|
13
|
+
check: str
|
|
14
|
+
expected: str
|
|
15
|
+
actual: str
|
|
16
|
+
severity: Literal["CRITICAL", "WARNING"]
|
|
17
|
+
|
|
18
|
+
def to_dict(self) -> dict:
|
|
19
|
+
return {
|
|
20
|
+
"system": self.system,
|
|
21
|
+
"check": self.check,
|
|
22
|
+
"expected": self.expected,
|
|
23
|
+
"actual": self.actual,
|
|
24
|
+
"severity": self.severity,
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@dataclass
|
|
29
|
+
class BootstrapReport:
|
|
30
|
+
"""Summary of a completed bootstrap run."""
|
|
31
|
+
colony_id: str
|
|
32
|
+
mode: Literal["FIRST_BOOT", "REGEN", "VERIFY"]
|
|
33
|
+
started_at: str
|
|
34
|
+
completed_at: str
|
|
35
|
+
seeded_systems: List[str] = field(default_factory=list)
|
|
36
|
+
verified_systems: List[str] = field(default_factory=list)
|
|
37
|
+
failed_systems: List[str] = field(default_factory=list)
|
|
38
|
+
anomalies: List[BootstrapAnomaly] = field(default_factory=list)
|
|
39
|
+
corpus_version: str = "1.0.0"
|
|
40
|
+
success: bool = True
|
|
41
|
+
|
|
42
|
+
def to_dict(self) -> dict:
|
|
43
|
+
return {
|
|
44
|
+
"colony_id": self.colony_id,
|
|
45
|
+
"mode": self.mode,
|
|
46
|
+
"started_at": self.started_at,
|
|
47
|
+
"completed_at": self.completed_at,
|
|
48
|
+
"seeded_systems": self.seeded_systems,
|
|
49
|
+
"verified_systems": self.verified_systems,
|
|
50
|
+
"failed_systems": self.failed_systems,
|
|
51
|
+
"anomalies": [a.to_dict() for a in self.anomalies],
|
|
52
|
+
"corpus_version": self.corpus_version,
|
|
53
|
+
"success": self.success,
|
|
54
|
+
}
|