ummaya 0.2.4 → 0.2.5
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.
- package/README.md +15 -2
- package/bin/ummaya +10 -1
- package/npm-shrinkwrap.json +253 -2
- package/package.json +5 -1
- package/prompts/manifest.yaml +1 -1
- package/prompts/system_v1.md +1 -0
- package/pyproject.toml +26 -2
- package/specs/2803-document-production-hardening/contracts/document-tools.schema.json +1043 -0
- package/src/ummaya/_canonical/__init__.py +2 -0
- package/src/ummaya/engine/engine.py +29 -132
- package/src/ummaya/evidence/__init__.py +21 -2
- package/src/ummaya/evidence/dataset_contract.py +193 -0
- package/src/ummaya/evidence/document_authoring_cases.py +33 -0
- package/src/ummaya/evidence/document_harness.py +313 -0
- package/src/ummaya/evidence/document_viewer_ux.py +391 -0
- package/src/ummaya/evidence/gates.py +70 -0
- package/src/ummaya/evidence/json_types.py +20 -0
- package/src/ummaya/evidence/models.py +88 -1
- package/src/ummaya/evidence/output_payload.py +89 -0
- package/src/ummaya/evidence/payload_documents.py +233 -0
- package/src/ummaya/evidence/route_contracts.py +224 -0
- package/src/ummaya/evidence/route_helpers.py +150 -0
- package/src/ummaya/evidence/runner.py +81 -212
- package/src/ummaya/evidence/source_provenance.py +246 -0
- package/src/ummaya/evidence/source_provenance_redaction.py +176 -0
- package/src/ummaya/evidence/tool_layer.py +39 -0
- package/src/ummaya/evidence/tool_layer_models.py +151 -0
- package/src/ummaya/ipc/adapter_manifest_emitter.py +26 -10
- package/src/ummaya/ipc/document_intent_normalization.py +185 -0
- package/src/ummaya/ipc/frame_schema.py +5 -5
- package/src/ummaya/ipc/route_diagnostics.py +73 -0
- package/src/ummaya/ipc/stdio.py +1109 -477
- package/src/ummaya/llm/client.py +102 -3
- package/src/ummaya/llm/config.py +8 -3
- package/src/ummaya/primitives/__init__.py +6 -2
- package/src/ummaya/primitives/delegation.py +1 -1
- package/src/ummaya/primitives/document.py +28 -0
- package/src/ummaya/settings.py +0 -3
- package/src/ummaya/tools/discovery_bridge.py +17 -1
- package/src/ummaya/tools/documents/__init__.py +297 -0
- package/src/ummaya/tools/documents/adapter_registry.py +487 -0
- package/src/ummaya/tools/documents/archive_container_probe.py +167 -0
- package/src/ummaya/tools/documents/artifact_store.py +454 -0
- package/src/ummaya/tools/documents/authoring.py +283 -0
- package/src/ummaya/tools/documents/baselines.py +114 -0
- package/src/ummaya/tools/documents/capability.py +331 -0
- package/src/ummaya/tools/documents/contracts.py +112 -0
- package/src/ummaya/tools/documents/conversion.py +521 -0
- package/src/ummaya/tools/documents/diff.py +275 -0
- package/src/ummaya/tools/documents/engines.py +163 -0
- package/src/ummaya/tools/documents/evaluation.py +291 -0
- package/src/ummaya/tools/documents/explicit_values.py +108 -0
- package/src/ummaya/tools/documents/fixtures.py +174 -0
- package/src/ummaya/tools/documents/format_completion_audit.py +471 -0
- package/src/ummaya/tools/documents/formats/__init__.py +2 -0
- package/src/ummaya/tools/documents/formats/archive.py +528 -0
- package/src/ummaya/tools/documents/formats/base.py +41 -0
- package/src/ummaya/tools/documents/formats/code_file.py +211 -0
- package/src/ummaya/tools/documents/formats/data_file.py +272 -0
- package/src/ummaya/tools/documents/formats/hwp.py +284 -0
- package/src/ummaya/tools/documents/formats/hwpx.py +1837 -0
- package/src/ummaya/tools/documents/formats/odf.py +435 -0
- package/src/ummaya/tools/documents/formats/ooxml.py +1030 -0
- package/src/ummaya/tools/documents/formats/passive.py +766 -0
- package/src/ummaya/tools/documents/formats/pdf.py +702 -0
- package/src/ummaya/tools/documents/formats/text_web.py +268 -0
- package/src/ummaya/tools/documents/hwp_conversion_probe.py +178 -0
- package/src/ummaya/tools/documents/hwp_direct_candidate.py +141 -0
- package/src/ummaya/tools/documents/inspection.py +289 -0
- package/src/ummaya/tools/documents/intake.py +1079 -0
- package/src/ummaya/tools/documents/legacy_office_promotion_probe.py +366 -0
- package/src/ummaya/tools/documents/models.py +1598 -0
- package/src/ummaya/tools/documents/odf_promotion_probe.py +167 -0
- package/src/ummaya/tools/documents/orchestrator.py +96 -0
- package/src/ummaya/tools/documents/passive_capability_probe.py +251 -0
- package/src/ummaya/tools/documents/patch.py +170 -0
- package/src/ummaya/tools/documents/pdfa_conformance.py +284 -0
- package/src/ummaya/tools/documents/pdfa_promotion_probe.py +198 -0
- package/src/ummaya/tools/documents/permissions.py +110 -0
- package/src/ummaya/tools/documents/planner.py +616 -0
- package/src/ummaya/tools/documents/registry.py +2733 -0
- package/src/ummaya/tools/documents/render.py +978 -0
- package/src/ummaya/tools/documents/render_comparison.py +113 -0
- package/src/ummaya/tools/documents/render_comparison_models.py +74 -0
- package/src/ummaya/tools/documents/render_comparison_regions.py +73 -0
- package/src/ummaya/tools/documents/render_comparison_style.py +161 -0
- package/src/ummaya/tools/documents/reread.py +157 -0
- package/src/ummaya/tools/documents/runtime_authoring.py +244 -0
- package/src/ummaya/tools/documents/runtime_authoring_bundle.py +76 -0
- package/src/ummaya/tools/documents/scorecard.py +184 -0
- package/src/ummaya/tools/documents/socratic_planner.py +193 -0
- package/src/ummaya/tools/documents/style.py +48 -0
- package/src/ummaya/tools/documents/tool_defs.py +523 -0
- package/src/ummaya/tools/documents/validate.py +347 -0
- package/src/ummaya/tools/executor.py +29 -0
- package/src/ummaya/tools/live_proxy.py +0 -3
- package/src/ummaya/tools/models.py +5 -1
- package/src/ummaya/tools/register_all.py +8 -0
- package/src/ummaya/tools/registry.py +10 -1
- package/src/ummaya/tools/routing/__init__.py +59 -0
- package/src/ummaya/tools/routing/builder.py +105 -0
- package/src/ummaya/tools/routing/cards.py +29 -0
- package/src/ummaya/tools/routing/decision_service.py +534 -0
- package/src/ummaya/tools/routing/decision_types.py +74 -0
- package/src/ummaya/tools/routing/feasibility.py +122 -0
- package/src/ummaya/tools/routing/intent.py +17 -0
- package/src/ummaya/tools/routing/intent_extractor.py +207 -0
- package/src/ummaya/tools/routing/intent_patterns.py +160 -0
- package/src/ummaya/tools/routing/intent_public_data.py +150 -0
- package/src/ummaya/tools/routing/intent_types.py +48 -0
- package/src/ummaya/tools/routing/lint.py +78 -0
- package/src/ummaya/tools/routing/metadata.py +174 -0
- package/src/ummaya/tools/routing/projection.py +340 -0
- package/src/ummaya/tools/routing/retrieval_policy.py +629 -0
- package/src/ummaya/tools/routing/schema.py +81 -0
- package/src/ummaya/tools/routing/types.py +96 -0
- package/src/ummaya/tools/routing_index.py +2 -2
- package/src/ummaya/tools/search.py +34 -746
- package/tests/fixtures/documents/public_forms/baselines.yaml +113 -0
- package/tui/package.json +1 -1
- package/tui/src/.cc-byte-identical-whitelist.yaml +266 -0
- package/tui/src/QueryEngine.ts +12 -8
- package/tui/src/bridge/inboundAttachments.ts +3 -3
- package/tui/src/cli/handlers/auth.ts +3 -12
- package/tui/src/cli/print.ts +7 -7
- package/tui/src/commands/insights.ts +1 -1
- package/tui/src/commands/install-github-app/types.ts +8 -30
- package/tui/src/commands/plugin/types.ts +6 -28
- package/tui/src/commands/plugin/unifiedTypes.ts +4 -26
- package/tui/src/commands/rename/generateSessionName.ts +1 -1
- package/tui/src/components/Feedback.tsx +1 -1
- package/tui/src/components/LogoV2/EmergencyTip.tsx +11 -2
- package/tui/src/components/LogoV2/WelcomeV2.tsx +1 -3
- package/tui/src/components/ScrollKeybindingHandler.tsx +6 -6
- package/tui/src/components/Spinner/types.ts +6 -28
- package/tui/src/components/agents/generateAgent.ts +1 -1
- package/tui/src/components/agents/new-agent-creation/types.ts +4 -26
- package/tui/src/components/config/EnvSecretIsolatedEditor.tsx +1 -1
- package/tui/src/components/mcp/types.ts +16 -38
- package/tui/src/components/messages/AssistantToolUseMessage.tsx +3 -2
- package/tui/src/components/messages/UserCrossSessionMessage.ts +16 -4
- package/tui/src/components/messages/UserForkBoilerplateMessage.ts +16 -4
- package/tui/src/components/messages/UserGitHubWebhookMessage.ts +16 -4
- package/tui/src/components/messages/UserToolResultMessage/utils.tsx +3 -2
- package/tui/src/components/permissions/MonitorPermissionRequest/MonitorPermissionRequest.ts +9 -4
- package/tui/src/components/permissions/ReviewArtifactPermissionRequest/ReviewArtifactPermissionRequest.ts +9 -4
- package/tui/src/components/primitive/DocumentSocraticReviewBlock.tsx +129 -0
- package/tui/src/components/primitive/DocumentToolResultCard.tsx +224 -0
- package/tui/src/components/primitive/documentSocraticReview.ts +215 -0
- package/tui/src/components/primitive/index.tsx +43 -1
- package/tui/src/components/primitive/types.ts +137 -0
- package/tui/src/components/ui/option.ts +4 -26
- package/tui/src/constants/common.ts +0 -2
- package/tui/src/constants/prompts.ts +4 -3
- package/tui/src/constants/querySource.ts +4 -26
- package/tui/src/entrypoints/sdk/controlTypes.ts +26 -48
- package/tui/src/entrypoints/sdk/coreTypes.generated.ts +3 -25
- package/tui/src/entrypoints/sdk/runtimeTypes.ts +38 -60
- package/tui/src/entrypoints/sdk/sdkUtilityTypes.ts +4 -26
- package/tui/src/entrypoints/sdk/settingsTypes.generated.ts +3 -25
- package/tui/src/entrypoints/sdk/toolTypes.ts +3 -25
- package/tui/src/hooks/toolPermission/handlers/interactiveHandler.ts +10 -0
- package/tui/src/hooks/useApiKeyVerification.ts +1 -1
- package/tui/src/hooks/useVirtualScroll.ts +1 -1
- package/tui/src/ink/ink.tsx +33 -14
- package/tui/src/ink/reconciler.ts +2 -3
- package/tui/src/ink/render-to-screen.ts +30 -10
- package/tui/src/ipc/bridge.ts +62 -15
- package/tui/src/ipc/bridgeSingleton.ts +5 -1
- package/tui/src/ipc/codec.ts +3 -3
- package/tui/src/ipc/frames.generated.ts +12 -12
- package/tui/src/ipc/llmClient.ts +151 -27
- package/tui/src/ipc/schema/frame.schema.json +1 -1
- package/tui/src/keybindings/defaultBindings.ts +4 -0
- package/tui/src/main.tsx +29 -11
- package/tui/src/native-ts/file-index/index.ts +33 -3
- package/tui/src/observability/surface.ts +2 -2
- package/tui/src/probes/toolRegistryProbe.tsx +3 -1
- package/tui/src/projectOnboardingState.ts +7 -6
- package/tui/src/query/chatMessageTypes.ts +18 -0
- package/tui/src/query/chatMessagesBuilder.ts +1 -1
- package/tui/src/query/deps.ts +1 -1
- package/tui/src/query/messageGuards.ts +106 -0
- package/tui/src/query/publicDataTerminalRepair.ts +384 -0
- package/tui/src/query/run.ts +1075 -0
- package/tui/src/query/supportBoundary.ts +168 -0
- package/tui/src/query/toolResultErrors.ts +103 -0
- package/tui/src/query/toolRunner.ts +687 -0
- package/tui/src/query/unavailableToolRepair.ts +118 -0
- package/tui/src/query.ts +9 -2186
- package/tui/src/screens/REPL.tsx +40 -29
- package/tui/src/services/api/adapterManifest.ts +4 -0
- package/tui/src/services/api/backendChat/events.ts +117 -0
- package/tui/src/services/api/backendChat/finalMessage.ts +40 -0
- package/tui/src/services/api/backendChat/frame.ts +9 -0
- package/tui/src/services/api/backendChat/streaming.ts +430 -0
- package/tui/src/services/api/backendChat/types.ts +62 -0
- package/tui/src/services/api/backendChat.ts +1 -0
- package/tui/src/services/api/client.ts +65 -2
- package/tui/src/services/api/errorUtils.ts +5 -5
- package/tui/src/services/api/errors.ts +1 -1
- package/tui/src/services/api/logging.ts +1 -1
- package/tui/src/services/api/ummaya/evidence.ts +194 -0
- package/tui/src/services/api/ummaya/messages.ts +255 -0
- package/tui/src/services/api/ummaya/nonStreaming.ts +66 -0
- package/tui/src/services/api/ummaya/provider.ts +200 -0
- package/tui/src/services/api/ummaya/reasoning.ts +24 -0
- package/tui/src/services/api/ummaya/request.ts +200 -0
- package/tui/src/services/api/ummaya/selectionContext.ts +240 -0
- package/tui/src/services/api/ummaya/streaming.ts +365 -0
- package/tui/src/services/api/ummaya/streamingPayload.ts +129 -0
- package/tui/src/services/api/ummaya/streamingReader.ts +40 -0
- package/tui/src/services/api/ummaya/toolSelection.ts +217 -0
- package/tui/src/services/api/ummaya/types.ts +110 -0
- package/tui/src/services/api/ummaya/usage.ts +30 -0
- package/tui/src/services/api/ummaya.ts +26 -418
- package/tui/src/services/api/withRetry.ts +1 -1
- package/tui/src/services/awaySummary.ts +2 -2
- package/tui/src/services/claudeAiLimits.ts +1 -1
- package/tui/src/services/compact/autoCompact.ts +1 -1
- package/tui/src/services/compact/compact.ts +1 -1
- package/tui/src/services/lsp/types.ts +8 -30
- package/tui/src/services/tips/types.ts +6 -28
- package/tui/src/services/tokenEstimation.ts +1 -1
- package/tui/src/services/toolRegistry/bootGuard.ts +5 -5
- package/tui/src/services/toolUseSummary/toolUseSummaryGenerator.ts +1 -1
- package/tui/src/services/tools/toolExecution.ts +94 -1
- package/tui/src/store/pendingPermissionSlot.ts +1 -1
- package/tui/src/store/session-store.ts +10 -36
- package/tui/src/stubs/any-stub.ts +15 -10
- package/tui/src/stubs/color-diff-napi.ts +37 -23
- package/tui/src/stubs/globals.d.ts +3 -3
- package/tui/src/stubs/macro-preload.ts +23 -12
- package/tui/src/tools/AdapterTool/AdapterTool.ts +1207 -714
- package/tui/src/tools/AdapterTool/routeDiagnostics.ts +75 -0
- package/tui/src/tools/AgentTool/AgentTool.tsx +84 -1371
- package/tui/src/tools/AgentTool/agentToolHandoff.ts +114 -0
- package/tui/src/tools/AgentTool/agentToolPartialResult.ts +16 -0
- package/tui/src/tools/AgentTool/agentToolProgress.ts +32 -0
- package/tui/src/tools/AgentTool/agentToolResolver.ts +161 -0
- package/tui/src/tools/AgentTool/agentToolResult.ts +163 -0
- package/tui/src/tools/AgentTool/agentToolUtils.ts +14 -686
- package/tui/src/tools/AgentTool/asyncAgentLifecycle.ts +208 -0
- package/tui/src/tools/AgentTool/asyncLifecycle.ts +153 -0
- package/tui/src/tools/AgentTool/backgroundedCompletion.ts +126 -0
- package/tui/src/tools/AgentTool/backgroundedLifecycle.ts +174 -0
- package/tui/src/tools/AgentTool/foregroundBackground.ts +83 -0
- package/tui/src/tools/AgentTool/foregroundDrain.tsx +133 -0
- package/tui/src/tools/AgentTool/foregroundFinalize.ts +98 -0
- package/tui/src/tools/AgentTool/foregroundLifecycle.tsx +237 -0
- package/tui/src/tools/AgentTool/foregroundProgress.tsx +169 -0
- package/tui/src/tools/AgentTool/foregroundTask.ts +89 -0
- package/tui/src/tools/AgentTool/forkSubagent.ts +1 -12
- package/tui/src/tools/AgentTool/forkSubagentGate.ts +34 -0
- package/tui/src/tools/AgentTool/launchRouting.ts +203 -0
- package/tui/src/tools/AgentTool/lifecycle.ts +244 -0
- package/tui/src/tools/AgentTool/mcpRouting.ts +73 -0
- package/tui/src/tools/AgentTool/orchestrationSupport.ts +70 -0
- package/tui/src/tools/AgentTool/permissions.ts +39 -0
- package/tui/src/tools/AgentTool/promptSetup.ts +181 -0
- package/tui/src/tools/AgentTool/remoteRouting.ts +62 -0
- package/tui/src/tools/AgentTool/resultMapping.ts +116 -0
- package/tui/src/tools/AgentTool/resumeAgent.ts +39 -107
- package/tui/src/tools/AgentTool/resumeAgentHelpers.ts +140 -0
- package/tui/src/tools/AgentTool/runAgent.ts +1 -1
- package/tui/src/tools/AgentTool/runtimeConfig.ts +57 -0
- package/tui/src/tools/AgentTool/schemas.ts +196 -0
- package/tui/src/tools/AgentTool/sourceVerificationPropagation.ts +263 -0
- package/tui/src/tools/AgentTool/worktreeLifecycle.ts +105 -0
- package/tui/src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx +174 -202
- package/tui/src/tools/BashTool/BashTool.tsx +71 -1072
- package/tui/src/tools/BashTool/bashCommandHelpers.ts +12 -12
- package/tui/src/tools/BashTool/bashPermissions/astPreflight.ts +173 -0
- package/tui/src/tools/BashTool/bashPermissions/classifierChecks.ts +199 -0
- package/tui/src/tools/BashTool/bashPermissions/compoundGuards.ts +53 -0
- package/tui/src/tools/BashTool/bashPermissions/constants.ts +99 -0
- package/tui/src/tools/BashTool/bashPermissions/index.ts +38 -0
- package/tui/src/tools/BashTool/bashPermissions/legacyMisparsing.ts +62 -0
- package/tui/src/tools/BashTool/bashPermissions/main.ts +135 -0
- package/tui/src/tools/BashTool/bashPermissions/normalizedCommands.ts +33 -0
- package/tui/src/tools/BashTool/bashPermissions/operatorFlow.ts +98 -0
- package/tui/src/tools/BashTool/bashPermissions/permissionChecks.ts +200 -0
- package/tui/src/tools/BashTool/bashPermissions/prefixSuggestions.ts +88 -0
- package/tui/src/tools/BashTool/bashPermissions/promptClassifierRules.ts +125 -0
- package/tui/src/tools/BashTool/bashPermissions/ruleDelegates.ts +19 -0
- package/tui/src/tools/BashTool/bashPermissions/ruleMatching.ts +145 -0
- package/tui/src/tools/BashTool/bashPermissions/sandboxAutoAllow.ts +75 -0
- package/tui/src/tools/BashTool/bashPermissions/subcommandFlow.ts +205 -0
- package/tui/src/tools/BashTool/bashPermissions/subcommandGuards.ts +73 -0
- package/tui/src/tools/BashTool/bashPermissions/subcommandResultHelpers.ts +116 -0
- package/tui/src/tools/BashTool/bashPermissions/types.ts +26 -0
- package/tui/src/tools/BashTool/bashPermissions/wrapperStripping.ts +139 -0
- package/tui/src/tools/BashTool/bashPermissions.ts +26 -2621
- package/tui/src/tools/BashTool/call.ts +202 -0
- package/tui/src/tools/BashTool/callLoader.ts +35 -0
- package/tui/src/tools/BashTool/commandClassification.ts +151 -0
- package/tui/src/tools/BashTool/commandClassificationLoader.ts +40 -0
- package/tui/src/tools/BashTool/cwdReset.ts +33 -0
- package/tui/src/tools/BashTool/lineTruncation.ts +11 -0
- package/tui/src/tools/BashTool/modeValidation.ts +13 -1
- package/tui/src/tools/BashTool/outputPersistence.ts +42 -0
- package/tui/src/tools/BashTool/permissionClassification.ts +66 -0
- package/tui/src/tools/BashTool/permissionLoader.ts +44 -0
- package/tui/src/tools/BashTool/resultLoader.ts +29 -0
- package/tui/src/tools/BashTool/resultMapping.ts +83 -0
- package/tui/src/tools/BashTool/sandboxPolicy.ts +79 -0
- package/tui/src/tools/BashTool/schemas.ts +65 -0
- package/tui/src/tools/BashTool/sedEditExecution.ts +59 -0
- package/tui/src/tools/BashTool/shellExecution.tsx +245 -0
- package/tui/src/tools/BashTool/shellOutputUtils.ts +85 -0
- package/tui/src/tools/BashTool/shellPermissionGauntlet.ts +97 -0
- package/tui/src/tools/BashTool/uiLoader.ts +37 -0
- package/tui/src/tools/BriefTool/upload.ts +1 -1
- package/tui/src/tools/CalculatorTool/parser.ts +2 -2
- package/tui/src/tools/DocumentPrimitive/DocumentPrimitive.ts +262 -0
- package/tui/src/tools/DocumentPrimitive/dispatchNormalization.ts +270 -0
- package/tui/src/tools/DocumentPrimitive/documentDestinationPath.ts +18 -0
- package/tui/src/tools/DocumentPrimitive/documentMutationGuard.ts +22 -0
- package/tui/src/tools/DocumentPrimitive/documentPatchNormalization.ts +248 -0
- package/tui/src/tools/DocumentPrimitive/documentSourceVerification.ts +245 -0
- package/tui/src/tools/DocumentPrimitive/documentSourceVerificationFields.ts +103 -0
- package/tui/src/tools/DocumentPrimitive/modelVisibleOutput.ts +40 -0
- package/tui/src/tools/DocumentPrimitive/prompt.ts +35 -0
- package/tui/src/tools/FileEditTool/FileEditTool.ts +9 -507
- package/tui/src/tools/FileEditTool/call.ts +228 -0
- package/tui/src/tools/FileEditTool/validateInput.ts +196 -0
- package/tui/src/tools/FileReadTool/imageProcessor.ts +13 -0
- package/tui/src/tools/FileWriteTool/FileWriteTool.ts +7 -300
- package/tui/src/tools/FileWriteTool/call.ts +223 -0
- package/tui/src/tools/FileWriteTool/validateInput.ts +80 -0
- package/tui/src/tools/ListMcpResourcesTool/ListMcpResourcesTool.ts +19 -3
- package/tui/src/tools/LookupPrimitive/LookupPrimitive.ts +25 -32
- package/tui/src/tools/LookupPrimitive/prompt.ts +0 -2
- package/tui/src/tools/MCPTool/trustPolicy.ts +118 -0
- package/tui/src/tools/McpAuthTool/McpAuthTool.ts +21 -3
- package/tui/src/tools/NotebookEditTool/NotebookEditTool.ts +7 -326
- package/tui/src/tools/NotebookEditTool/call.ts +254 -0
- package/tui/src/tools/NotebookEditTool/notebookModel.ts +51 -0
- package/tui/src/tools/NotebookEditTool/validateInput.ts +142 -0
- package/tui/src/tools/PowerShellTool/PowerShellTool.tsx +46 -937
- package/tui/src/tools/PowerShellTool/acceptEditsCommandValidation.ts +162 -0
- package/tui/src/tools/PowerShellTool/call.ts +179 -0
- package/tui/src/tools/PowerShellTool/callLoader.ts +37 -0
- package/tui/src/tools/PowerShellTool/commandClassification.ts +86 -0
- package/tui/src/tools/PowerShellTool/modeValidation.ts +25 -332
- package/tui/src/tools/PowerShellTool/outputPersistence.ts +42 -0
- package/tui/src/tools/PowerShellTool/permissionClassification.ts +28 -0
- package/tui/src/tools/PowerShellTool/resultLoader.ts +31 -0
- package/tui/src/tools/PowerShellTool/resultMapping.ts +75 -0
- package/tui/src/tools/PowerShellTool/schemas.ts +40 -0
- package/tui/src/tools/PowerShellTool/shellExecution.tsx +258 -0
- package/tui/src/tools/PowerShellTool/symlinkModeValidation.ts +44 -0
- package/tui/src/tools/PowerShellTool/uiLoader.ts +37 -0
- package/tui/src/tools/PowerShellTool/validation.ts +39 -0
- package/tui/src/tools/ReadMcpResourceTool/ReadMcpResourceTool.ts +19 -3
- package/tui/src/tools/ResolveLocationPrimitive/ResolveLocationPrimitive.ts +1 -11
- package/tui/src/tools/ResolveLocationPrimitive/prompt.ts +2 -6
- package/tui/src/tools/SkillTool/SkillTool.ts +2 -2
- package/tui/src/tools/SubmitPrimitive/SubmitPrimitive.ts +27 -10
- package/tui/src/tools/TaskCreateTool/TaskCreateTool.ts +16 -2
- package/tui/src/tools/TaskGetTool/TaskGetTool.ts +23 -3
- package/tui/src/tools/TaskListTool/TaskListTool.ts +22 -4
- package/tui/src/tools/TaskOutputTool/TaskOutputTool.tsx +46 -547
- package/tui/src/tools/TaskOutputTool/lookup.ts +216 -0
- package/tui/src/tools/TaskOutputTool/render.tsx +257 -0
- package/tui/src/tools/TaskOutputTool/schemas.ts +55 -0
- package/tui/src/tools/TaskOutputTool/serialization.ts +36 -0
- package/tui/src/tools/TaskStopTool/TaskStopTool.ts +10 -0
- package/tui/src/tools/TaskUpdateTool/TaskUpdateTool.ts +14 -364
- package/tui/src/tools/TaskUpdateTool/completion.ts +62 -0
- package/tui/src/tools/TaskUpdateTool/schemas.ts +62 -0
- package/tui/src/tools/TaskUpdateTool/serialization.ts +46 -0
- package/tui/src/tools/TaskUpdateTool/statusUpdate.ts +247 -0
- package/tui/src/tools/TodoWriteTool/TodoWriteTool.ts +21 -2
- package/tui/src/tools/ToolSearchTool/ToolSearchTool.ts +21 -302
- package/tui/src/tools/ToolSearchTool/ccSupportTools.ts +223 -0
- package/tui/src/tools/ToolSearchTool/descriptionCache.ts +50 -0
- package/tui/src/tools/ToolSearchTool/keywordSearch.ts +216 -0
- package/tui/src/tools/ToolSearchTool/prompt.ts +10 -4
- package/tui/src/tools/ToolSearchTool/resultMapping.ts +30 -0
- package/tui/src/tools/ToolSearchTool/schemas.ts +30 -0
- package/tui/src/tools/ToolSearchTool/searchPool.ts +47 -0
- package/tui/src/tools/ToolSearchTool/supportIntentHints.ts +140 -0
- package/tui/src/tools/TranslateTool/TranslateTool.ts +1 -1
- package/tui/src/tools/VerifyPrimitive/VerifyPrimitive.ts +2 -1
- package/tui/src/tools/WebFetchTool/WebFetchTool.ts +43 -138
- package/tui/src/tools/WebFetchTool/call.ts +227 -0
- package/tui/src/tools/WebFetchTool/resolvedAddressSafety.ts +78 -0
- package/tui/src/tools/WebFetchTool/sourceVerification.ts +204 -0
- package/tui/src/tools/WebFetchTool/types.ts +23 -0
- package/tui/src/tools/WebFetchTool/urlSafety.ts +181 -0
- package/tui/src/tools/WebFetchTool/utils.ts +1 -1
- package/tui/src/tools/WebSearchTool/UI.tsx +0 -1
- package/tui/src/tools/WebSearchTool/WebSearchTool.ts +9 -313
- package/tui/src/tools/WebSearchTool/call.ts +33 -0
- package/tui/src/tools/WebSearchTool/responseMapping.ts +190 -0
- package/tui/src/tools/WebSearchTool/resultBlock.ts +47 -0
- package/tui/src/tools/WebSearchTool/schemas.ts +47 -0
- package/tui/src/tools/WebSearchTool/toolSchema.ts +12 -0
- package/tui/src/tools/WorkspaceToolAdapter/WorkspaceToolAdapter.ts +79 -0
- package/tui/src/tools/WorkspaceToolAdapter/allowedRootPolicy.ts +85 -0
- package/tui/src/tools/WorkspaceToolAdapter/documentFormatGuards.ts +73 -0
- package/tui/src/tools/WorkspaceToolAdapter/inputNormalization.ts +105 -0
- package/tui/src/tools/WorkspaceToolAdapter/mcpExposurePolicy.ts +64 -0
- package/tui/src/tools/WorkspaceToolAdapter/toolDefFactory.ts +215 -0
- package/tui/src/tools/WorkspaceToolAdapter/toolNames.ts +6 -0
- package/tui/src/tools/WorkspaceToolAdapter/workspacePolicy.ts +15 -0
- package/tui/src/tools/_shared/dispatchPrimitive.ts +6 -6
- package/tui/src/tools/_shared/documentChangeToPatch.ts +125 -0
- package/tui/src/tools/_shared/documentDispatchArguments.ts +87 -0
- package/tui/src/tools/_shared/documentPrimitiveTimeout.ts +13 -0
- package/tui/src/tools/_shared/documentToolResultRender.ts +98 -0
- package/tui/src/tools/_shared/pendingCallRegistry.ts +1 -6
- package/tui/src/tools/_shared/rootPrimitiveInput.ts +1 -0
- package/tui/src/tools/_shared/toolChoiceRepair/documentCompletionPatterns.ts +58 -0
- package/tui/src/tools/_shared/toolChoiceRepair/documentCompletionPrompt.ts +271 -0
- package/tui/src/tools/_shared/toolChoiceRepair/documentRepair.ts +452 -0
- package/tui/src/tools/_shared/toolChoiceRepair/messageAccess.ts +80 -0
- package/tui/src/tools/_shared/toolChoiceRepair/publicDataRepair.ts +92 -0
- package/tui/src/tools/_shared/toolChoiceRepair/supportRepair.ts +135 -0
- package/tui/src/tools/_shared/toolChoiceRepair.ts +55 -860
- package/tui/src/tools/shared/mockDisclaimer.ts +1 -1
- package/tui/src/tools.ts +39 -190
- package/tui/src/types/fileSuggestion.ts +4 -26
- package/tui/src/types/generated/events_mono/claude_code/v1/claude_code_internal_event.ts +186 -148
- package/tui/src/types/generated/events_mono/common/v1/auth.ts +25 -11
- package/tui/src/types/generated/events_mono/growthbook/v1/growthbook_experiment_event.ts +47 -30
- package/tui/src/types/generated/google/protobuf/timestamp.ts +21 -7
- package/tui/src/types/message.ts +80 -102
- package/tui/src/types/messageQueueTypes.ts +6 -28
- package/tui/src/types/notebook.ts +16 -38
- package/tui/src/types/statusLine.ts +4 -26
- package/tui/src/types/tools.ts +24 -46
- package/tui/src/types/utils.ts +6 -28
- package/tui/src/upstreamproxy/relay.ts +7 -3
- package/tui/src/upstreamproxy/upstreamproxy.ts +1 -1
- package/tui/src/utils/assistantMessageFactories.ts +9 -3
- package/tui/src/utils/auth.ts +129 -139
- package/tui/src/utils/bash/ast.ts +23 -23
- package/tui/src/utils/bash/bashParser.ts +5 -5
- package/tui/src/utils/billing.ts +1 -1
- package/tui/src/utils/collapseReadSearch.ts +3 -3
- package/tui/src/utils/cronTasks.ts +1 -1
- package/tui/src/utils/execFileNoThrow.ts +1 -1
- package/tui/src/utils/filePersistence/types.ts +16 -38
- package/tui/src/utils/forkedAgent.ts +1 -1
- package/tui/src/utils/gracefulShutdown.ts +4 -4
- package/tui/src/utils/heapDumpService.ts +12 -8
- package/tui/src/utils/hooks/apiQueryHookHelper.ts +1 -1
- package/tui/src/utils/hooks/execPromptHook.ts +1 -1
- package/tui/src/utils/hooks/skillImprovement.ts +1 -1
- package/tui/src/utils/mcp/dateTimeParser.ts +1 -1
- package/tui/src/utils/messages.ts +18 -0
- package/tui/src/utils/migrateSessions.ts +3 -3
- package/tui/src/utils/model/model.ts +6 -6
- package/tui/src/utils/permissions/yoloClassifier.ts +1 -1
- package/tui/src/utils/plugins/headlessPluginInstall.ts +1 -1
- package/tui/src/utils/plugins/mcpPluginIntegration.ts +1 -1
- package/tui/src/utils/plugins/mcpbHandler.ts +1 -1
- package/tui/src/utils/plugins/pluginLoader.ts +8 -8
- package/tui/src/utils/protectedNamespace.ts +5 -3
- package/tui/src/utils/rawJsonToolCall.ts +242 -0
- package/tui/src/utils/ripgrep.ts +16 -7
- package/tui/src/utils/sessionTitle.ts +1 -1
- package/tui/src/utils/settings/permissionValidation.ts +14 -2
- package/tui/src/utils/shell/prefix.ts +1 -1
- package/tui/src/utils/sideQuery.ts +1 -1
- package/tui/src/utils/systemThemeWatcher.ts +13 -3
- package/tui/src/utils/teleport.tsx +1 -1
- package/uv.lock +400 -14
- package/tui/src/services/api/claude.ts +0 -3540
- package/tui/src/tools/_shared/directPublicDataGuard.ts +0 -362
- package/tui/src/tools/_shared/kmaAnalysisGuard.ts +0 -197
- package/tui/src/tools/_shared/kmaAviationGuard.ts +0 -70
- package/tui/src/tools/_shared/nmcAedGuard.ts +0 -234
- package/tui/src/tools/_shared/protectedCheckGuard.ts +0 -207
- package/tui/src/tools/_shared/textToolCallGuard.ts +0 -91
package/src/ummaya/llm/client.py
CHANGED
|
@@ -12,6 +12,7 @@ import random
|
|
|
12
12
|
import time
|
|
13
13
|
from collections.abc import AsyncIterator, Iterator
|
|
14
14
|
from contextvars import Token
|
|
15
|
+
from copy import deepcopy
|
|
15
16
|
from dataclasses import dataclass
|
|
16
17
|
from typing import TYPE_CHECKING, cast
|
|
17
18
|
|
|
@@ -168,6 +169,62 @@ def _compute_prompt_hash(system_text: str) -> str:
|
|
|
168
169
|
return hashlib.sha256(hashed.encode("utf-8")).hexdigest()
|
|
169
170
|
|
|
170
171
|
|
|
172
|
+
def _provider_safe_parameters_schema(schema: dict[str, object]) -> dict[str, object]:
|
|
173
|
+
"""Inline Pydantic-local JSON Schema refs before sending tool schemas."""
|
|
174
|
+
root = deepcopy(schema)
|
|
175
|
+
defs_obj = root.get("$defs")
|
|
176
|
+
defs: dict[str, object] = {}
|
|
177
|
+
if isinstance(defs_obj, dict):
|
|
178
|
+
defs = {str(name): value for name, value in defs_obj.items()}
|
|
179
|
+
|
|
180
|
+
inlined = _inline_local_json_schema_refs(root, defs, ())
|
|
181
|
+
if not isinstance(inlined, dict):
|
|
182
|
+
raise ValueError("OpenAI tool parameters schema must be a JSON object")
|
|
183
|
+
return cast(dict[str, object], inlined)
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
def _inline_local_json_schema_refs(
|
|
187
|
+
node: object,
|
|
188
|
+
defs: dict[str, object],
|
|
189
|
+
stack: tuple[str, ...],
|
|
190
|
+
) -> object:
|
|
191
|
+
if isinstance(node, list):
|
|
192
|
+
return [_inline_local_json_schema_refs(item, defs, stack) for item in node]
|
|
193
|
+
if not isinstance(node, dict):
|
|
194
|
+
return node
|
|
195
|
+
|
|
196
|
+
ref_name = _local_def_ref_name(node.get("$ref"))
|
|
197
|
+
if ref_name is not None:
|
|
198
|
+
if ref_name in stack:
|
|
199
|
+
raise ValueError(f"Cyclic JSON Schema reference is not supported: #/$defs/{ref_name}")
|
|
200
|
+
if ref_name not in defs:
|
|
201
|
+
raise ValueError(f"Unknown JSON Schema reference: #/$defs/{ref_name}")
|
|
202
|
+
|
|
203
|
+
target = deepcopy(defs[ref_name])
|
|
204
|
+
expanded = _inline_local_json_schema_refs(target, defs, (*stack, ref_name))
|
|
205
|
+
siblings = {str(key): value for key, value in node.items() if key not in {"$ref", "$defs"}}
|
|
206
|
+
if not siblings:
|
|
207
|
+
return expanded
|
|
208
|
+
if not isinstance(expanded, dict):
|
|
209
|
+
raise ValueError(f"JSON Schema reference target must be an object: #/$defs/{ref_name}")
|
|
210
|
+
merged = cast(dict[str, object], expanded).copy()
|
|
211
|
+
for key, value in siblings.items():
|
|
212
|
+
merged[key] = _inline_local_json_schema_refs(value, defs, stack)
|
|
213
|
+
return merged
|
|
214
|
+
|
|
215
|
+
return {
|
|
216
|
+
str(key): _inline_local_json_schema_refs(value, defs, stack)
|
|
217
|
+
for key, value in node.items()
|
|
218
|
+
if key != "$defs"
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
def _local_def_ref_name(ref: object) -> str | None:
|
|
223
|
+
if not isinstance(ref, str) or not ref.startswith("#/$defs/"):
|
|
224
|
+
return None
|
|
225
|
+
return ref.removeprefix("#/$defs/").replace("~1", "/").replace("~0", "~")
|
|
226
|
+
|
|
227
|
+
|
|
171
228
|
class LLMClient:
|
|
172
229
|
"""Async LLM client for FriendliAI Serverless endpoint."""
|
|
173
230
|
|
|
@@ -576,7 +633,38 @@ class LLMClient:
|
|
|
576
633
|
|
|
577
634
|
# Yield events; watch for mid-stream 429 envelopes (T016)
|
|
578
635
|
rate_limited_mid_stream = False
|
|
579
|
-
|
|
636
|
+
line_iter = response.aiter_lines()
|
|
637
|
+
next_data_line_deadline = (
|
|
638
|
+
time.monotonic() + self._config.stream_idle_timeout
|
|
639
|
+
)
|
|
640
|
+
while True:
|
|
641
|
+
try:
|
|
642
|
+
timeout_remaining = next_data_line_deadline - time.monotonic()
|
|
643
|
+
if timeout_remaining <= 0:
|
|
644
|
+
raise TimeoutError
|
|
645
|
+
line = await asyncio.wait_for(
|
|
646
|
+
anext(line_iter),
|
|
647
|
+
timeout=timeout_remaining,
|
|
648
|
+
)
|
|
649
|
+
except StopAsyncIteration:
|
|
650
|
+
break
|
|
651
|
+
except TimeoutError as exc:
|
|
652
|
+
_duration_ms = (time.monotonic() - _stream_start) * 1000
|
|
653
|
+
self._metrics_record_call(
|
|
654
|
+
success=False,
|
|
655
|
+
duration_ms=_duration_ms,
|
|
656
|
+
)
|
|
657
|
+
_metrics_recorded = True
|
|
658
|
+
raise StreamInterruptedError(
|
|
659
|
+
"Stream idle timeout after "
|
|
660
|
+
f"{self._config.stream_idle_timeout:g}s "
|
|
661
|
+
"without a new SSE data line"
|
|
662
|
+
) from exc
|
|
663
|
+
if not line.startswith("data: "):
|
|
664
|
+
continue
|
|
665
|
+
next_data_line_deadline = (
|
|
666
|
+
time.monotonic() + self._config.stream_idle_timeout
|
|
667
|
+
)
|
|
580
668
|
if self._is_rate_limit_envelope(line):
|
|
581
669
|
rate_limited_mid_stream = True
|
|
582
670
|
delay = self._compute_rate_limit_delay(response, attempt, policy)
|
|
@@ -1104,8 +1192,19 @@ class LLMClient:
|
|
|
1104
1192
|
reaches FriendliAI's strict OpenAI-compatible validator.
|
|
1105
1193
|
"""
|
|
1106
1194
|
if isinstance(tool, ToolDefinition):
|
|
1107
|
-
|
|
1108
|
-
|
|
1195
|
+
payload = cast(dict[str, object], tool.model_dump())
|
|
1196
|
+
else:
|
|
1197
|
+
payload = cast(dict[str, object], ToolDefinition.model_validate(tool).model_dump())
|
|
1198
|
+
|
|
1199
|
+
function_obj = payload.get("function")
|
|
1200
|
+
if isinstance(function_obj, dict):
|
|
1201
|
+
function = cast(dict[str, object], function_obj)
|
|
1202
|
+
parameters_obj = function.get("parameters")
|
|
1203
|
+
if isinstance(parameters_obj, dict):
|
|
1204
|
+
function["parameters"] = _provider_safe_parameters_schema(
|
|
1205
|
+
cast(dict[str, object], parameters_obj)
|
|
1206
|
+
)
|
|
1207
|
+
return payload
|
|
1109
1208
|
|
|
1110
1209
|
# ------------------------------------------------------------------
|
|
1111
1210
|
# Private retry helpers (T015)
|
package/src/ummaya/llm/config.py
CHANGED
|
@@ -16,6 +16,7 @@ class LLMClientConfig(BaseSettings):
|
|
|
16
16
|
UMMAYA_FRIENDLI_MODEL — model identifier
|
|
17
17
|
UMMAYA_LLM_SESSION_BUDGET — per-session token budget
|
|
18
18
|
UMMAYA_LLM_TIMEOUT_SECONDS — HTTP stream timeout budget
|
|
19
|
+
UMMAYA_LLM_STREAM_IDLE_TIMEOUT_SECONDS — max idle gap between stream lines
|
|
19
20
|
"""
|
|
20
21
|
|
|
21
22
|
model_config = SettingsConfigDict(
|
|
@@ -59,6 +60,11 @@ class LLMClientConfig(BaseSettings):
|
|
|
59
60
|
),
|
|
60
61
|
description="HTTP request timeout in seconds.",
|
|
61
62
|
)
|
|
63
|
+
stream_idle_timeout: float = Field(
|
|
64
|
+
default=90.0,
|
|
65
|
+
validation_alias="UMMAYA_LLM_STREAM_IDLE_TIMEOUT_SECONDS",
|
|
66
|
+
description="Maximum idle time between streaming response lines in seconds.",
|
|
67
|
+
)
|
|
62
68
|
max_retries: int = Field(
|
|
63
69
|
default=3,
|
|
64
70
|
description="Maximum number of retry attempts on transient failures.",
|
|
@@ -80,12 +86,11 @@ class LLMClientConfig(BaseSettings):
|
|
|
80
86
|
raise ValueError("session_budget must be > 0")
|
|
81
87
|
return value
|
|
82
88
|
|
|
83
|
-
@field_validator("timeout")
|
|
89
|
+
@field_validator("timeout", "stream_idle_timeout")
|
|
84
90
|
@classmethod
|
|
85
91
|
def timeout_must_be_positive(cls, value: float) -> float:
|
|
86
|
-
"""Enforce timeout > 0."""
|
|
87
92
|
if value <= 0:
|
|
88
|
-
raise ValueError("timeout must be > 0")
|
|
93
|
+
raise ValueError("timeout values must be > 0")
|
|
89
94
|
return value
|
|
90
95
|
|
|
91
96
|
@field_validator("max_retries")
|
|
@@ -7,6 +7,7 @@ Exports the active primitive symbols that make up the main-tool surface:
|
|
|
7
7
|
- ``locate``: geocoding (re-exported from Spec 022).
|
|
8
8
|
- ``send``: write-transaction absorber (Spec 031 US1, T024).
|
|
9
9
|
- ``check``: delegation-only identity binding (Spec 031 US2, T042).
|
|
10
|
+
- ``document``: local public-document authoring and review harness.
|
|
10
11
|
|
|
11
12
|
``subscribe`` is intentionally not part of the active surface. National alert
|
|
12
13
|
and notice subscriptions are app/phone push-notification concerns, not a CLI
|
|
@@ -18,6 +19,7 @@ from __future__ import annotations
|
|
|
18
19
|
from collections.abc import Callable
|
|
19
20
|
from typing import Any
|
|
20
21
|
|
|
22
|
+
from ummaya.primitives.document import document
|
|
21
23
|
from ummaya.primitives.submit import send
|
|
22
24
|
from ummaya.primitives.verify import check
|
|
23
25
|
from ummaya.tools.lookup import find
|
|
@@ -46,6 +48,7 @@ PRIMITIVE_REGISTRY: dict[str, Callable[..., Any]] = {
|
|
|
46
48
|
"locate": locate,
|
|
47
49
|
"send": send,
|
|
48
50
|
"check": check,
|
|
51
|
+
"document": document,
|
|
49
52
|
}
|
|
50
53
|
|
|
51
54
|
# Subset of ``PRIMITIVE_REGISTRY`` whose invocation requires a Spec 033
|
|
@@ -64,9 +67,9 @@ PRIMITIVE_REGISTRY: dict[str, Callable[..., Any]] = {
|
|
|
64
67
|
#
|
|
65
68
|
# The complement (``PRIMITIVE_REGISTRY.keys() - GATED_PRIMITIVES``) is the
|
|
66
69
|
# fully auto-allowed set: find / locate.
|
|
67
|
-
GATED_PRIMITIVES: frozenset[str] = frozenset({"check", "send"})
|
|
70
|
+
GATED_PRIMITIVES: frozenset[str] = frozenset({"check", "send", "document"})
|
|
68
71
|
LIGHT_GATE_PRIMITIVES: frozenset[str] = frozenset({"check"})
|
|
69
|
-
HEAVY_GATE_PRIMITIVES: frozenset[str] = frozenset({"send"})
|
|
72
|
+
HEAVY_GATE_PRIMITIVES: frozenset[str] = frozenset({"send", "document"})
|
|
70
73
|
|
|
71
74
|
# ``__all__`` enumerates the LLM-visible primitive *surface* — the active root
|
|
72
75
|
# verbs. The metadata constants ``PRIMITIVE_REGISTRY``
|
|
@@ -77,6 +80,7 @@ __all__ = [
|
|
|
77
80
|
"locate",
|
|
78
81
|
"send",
|
|
79
82
|
"check",
|
|
83
|
+
"document",
|
|
80
84
|
]
|
|
81
85
|
# Metadata constants (GATED_PRIMITIVES / LIGHT_GATE_PRIMITIVES /
|
|
82
86
|
# HEAVY_GATE_PRIMITIVES / PRIMITIVE_REGISTRY) are intentionally NOT in __all__
|
|
@@ -36,7 +36,7 @@ logger = logging.getLogger(__name__)
|
|
|
36
36
|
# Accepts single-scope strings AND comma-joined multi-scope strings for US1.
|
|
37
37
|
# ---------------------------------------------------------------------------
|
|
38
38
|
|
|
39
|
-
_SCOPE_VERBS = r"find|locate|send|check|lookup|resolve_location|submit|verify"
|
|
39
|
+
_SCOPE_VERBS = r"find|locate|send|check|document|lookup|resolve_location|submit|verify"
|
|
40
40
|
|
|
41
41
|
_SINGLE_SCOPE_PATTERN: re.Pattern[str] = re.compile(rf"^({_SCOPE_VERBS}):[a-z0-9_]+\.[a-z0-9_-]+$")
|
|
42
42
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
"""Document primitive placeholder.
|
|
3
|
+
|
|
4
|
+
The model-facing `document` tool is registered as a concrete GovAPITool by the
|
|
5
|
+
document harness. This coroutine exists so primitive registries and IPC guards
|
|
6
|
+
can identify `document` as an allowed top-level primitive name.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
from typing import Any
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
async def document(*_args: object, **_kwargs: object) -> dict[str, Any]:
|
|
15
|
+
"""Document primitive marker.
|
|
16
|
+
|
|
17
|
+
Runtime execution is owned by `ummaya.tools.documents.registry` because it
|
|
18
|
+
needs session-local artifact stores and format-engine adapters.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
return {
|
|
22
|
+
"kind": "error",
|
|
23
|
+
"reason": "direct_document_primitive_not_bound",
|
|
24
|
+
"message": "The document primitive must be executed through the registered document tool.",
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
__all__ = ["document"]
|
package/src/ummaya/settings.py
CHANGED
|
@@ -104,9 +104,6 @@ class UmmayaSettings(BaseSettings):
|
|
|
104
104
|
live_adapter_proxy_timeout_seconds: float = Field(default=30.0, gt=0)
|
|
105
105
|
"""HTTP timeout for operator-managed live adapter proxy calls."""
|
|
106
106
|
|
|
107
|
-
live_adapter_proxy_token: str = Field(default="")
|
|
108
|
-
"""Optional bearer token for private/self-hosted live adapter gateways."""
|
|
109
|
-
|
|
110
107
|
live_adapter_gateway_token: str = Field(default="")
|
|
111
108
|
"""Optional bearer token required by the hosted live adapter gateway server."""
|
|
112
109
|
|
|
@@ -34,7 +34,7 @@ from typing import TYPE_CHECKING, Any
|
|
|
34
34
|
|
|
35
35
|
from pydantic import BaseModel, ConfigDict, Field, RootModel
|
|
36
36
|
|
|
37
|
-
from ummaya.tools.models import AdapterRealDomainPolicy, GovAPITool
|
|
37
|
+
from ummaya.tools.models import AdapterRealDomainPolicy, GovAPITool, MockFidelityGrade
|
|
38
38
|
|
|
39
39
|
if TYPE_CHECKING:
|
|
40
40
|
from ummaya.tools.registry import ToolRegistry
|
|
@@ -346,6 +346,7 @@ def _verify_to_govapitool(entry: dict[str, Any]) -> GovAPITool:
|
|
|
346
346
|
rate_limit_per_minute=30,
|
|
347
347
|
is_core=False, # Discoverable via lookup search; NOT in primary LLM tool list
|
|
348
348
|
primitive="check",
|
|
349
|
+
adapter_mode="mock",
|
|
349
350
|
)
|
|
350
351
|
|
|
351
352
|
|
|
@@ -385,9 +386,24 @@ def _submit_to_govapitool(
|
|
|
385
386
|
rate_limit_per_minute=registration.rate_limit_per_minute,
|
|
386
387
|
is_core=False, # Discoverable via lookup search; NOT in primary LLM tool list
|
|
387
388
|
primitive="send",
|
|
389
|
+
adapter_mode="mock",
|
|
390
|
+
mock_fidelity_grade=_mock_fidelity_from_source_mode(registration.source_mode),
|
|
388
391
|
)
|
|
389
392
|
|
|
390
393
|
|
|
394
|
+
def _mock_fidelity_from_source_mode(source_mode: object) -> MockFidelityGrade:
|
|
395
|
+
raw = str(getattr(source_mode, "value", source_mode))
|
|
396
|
+
match raw:
|
|
397
|
+
case "OPENAPI":
|
|
398
|
+
return "OPENAPI"
|
|
399
|
+
case "OOS":
|
|
400
|
+
return "OOS"
|
|
401
|
+
case "harness-only" | "HARNESS_ONLY":
|
|
402
|
+
return "HARNESS_ONLY"
|
|
403
|
+
case _:
|
|
404
|
+
return "unknown"
|
|
405
|
+
|
|
406
|
+
|
|
391
407
|
# ---------------------------------------------------------------------------
|
|
392
408
|
# Public entry point
|
|
393
409
|
# ---------------------------------------------------------------------------
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
"""Public AX document harness package."""
|
|
3
|
+
|
|
4
|
+
from ummaya.tools.documents.adapter_registry import (
|
|
5
|
+
DocumentAdapterRegistry,
|
|
6
|
+
EngineBackedDocumentAdapter,
|
|
7
|
+
UnsupportedDocumentAdapterError,
|
|
8
|
+
build_default_document_adapter_registry,
|
|
9
|
+
build_document_adapter_registry_from_engine_registry,
|
|
10
|
+
)
|
|
11
|
+
from ummaya.tools.documents.artifact_store import (
|
|
12
|
+
ArtifactStoreConflictError,
|
|
13
|
+
ArtifactStoreError,
|
|
14
|
+
ArtifactStoreSecurityError,
|
|
15
|
+
DocumentArtifactStore,
|
|
16
|
+
)
|
|
17
|
+
from ummaya.tools.documents.baselines import (
|
|
18
|
+
CONFORMANCE_BASELINE_FIXTURE_PATH,
|
|
19
|
+
BaselineField,
|
|
20
|
+
BaselineTableGeometry,
|
|
21
|
+
BaselineTextAnchor,
|
|
22
|
+
ConformanceBaseline,
|
|
23
|
+
ConformanceBaselineCatalog,
|
|
24
|
+
load_conformance_baselines,
|
|
25
|
+
)
|
|
26
|
+
from ummaya.tools.documents.capability import (
|
|
27
|
+
FormatCapabilityProfile as CandidateCapabilityProfile,
|
|
28
|
+
)
|
|
29
|
+
from ummaya.tools.documents.capability import (
|
|
30
|
+
PromotionDecision,
|
|
31
|
+
PromotionDecisionManifest,
|
|
32
|
+
PromotionDecisionRecord,
|
|
33
|
+
build_inspection_read_profile,
|
|
34
|
+
evaluate_capability_promotion,
|
|
35
|
+
load_promotion_decision_manifest,
|
|
36
|
+
persist_promotion_decision_manifest,
|
|
37
|
+
)
|
|
38
|
+
from ummaya.tools.documents.contracts import (
|
|
39
|
+
DocumentToolContract,
|
|
40
|
+
DocumentToolContractCatalog,
|
|
41
|
+
load_document_tool_contracts,
|
|
42
|
+
)
|
|
43
|
+
from ummaya.tools.documents.diff import DocumentChange, DocumentDiff, RenderArtifactRecord
|
|
44
|
+
from ummaya.tools.documents.engines import (
|
|
45
|
+
DocumentEngineRegistry,
|
|
46
|
+
DocumentInspectionEngine,
|
|
47
|
+
DocumentMutationEngine,
|
|
48
|
+
UnsupportedDocumentEngineError,
|
|
49
|
+
build_default_document_engine_registry,
|
|
50
|
+
)
|
|
51
|
+
from ummaya.tools.documents.fixtures import (
|
|
52
|
+
DocumentFixtureManifest,
|
|
53
|
+
load_fixture_manifest,
|
|
54
|
+
)
|
|
55
|
+
from ummaya.tools.documents.formats.base import DocumentFormatAdapter
|
|
56
|
+
from ummaya.tools.documents.inspection import inspect_document
|
|
57
|
+
from ummaya.tools.documents.intake import (
|
|
58
|
+
DocumentIntakePolicy,
|
|
59
|
+
inspect_document_intake,
|
|
60
|
+
)
|
|
61
|
+
from ummaya.tools.documents.models import (
|
|
62
|
+
KNOWN_DOCUMENT_FORMAT_FAMILIES,
|
|
63
|
+
PROMOTED_RUNTIME_DOCUMENT_FORMATS,
|
|
64
|
+
ArtifactLineage,
|
|
65
|
+
AutonomousFillPlan,
|
|
66
|
+
AutonomousSaveIntent,
|
|
67
|
+
AutonomousStyleIntent,
|
|
68
|
+
BlockedReason,
|
|
69
|
+
DocumentArtifact,
|
|
70
|
+
DocumentChangedViewport,
|
|
71
|
+
DocumentClipRect,
|
|
72
|
+
DocumentExtraction,
|
|
73
|
+
DocumentFormat,
|
|
74
|
+
DocumentFormatFamily,
|
|
75
|
+
DocumentIntakeResult,
|
|
76
|
+
DocumentIntent,
|
|
77
|
+
DocumentIR,
|
|
78
|
+
DocumentPatch,
|
|
79
|
+
DocumentPatchOperation,
|
|
80
|
+
DocumentProtectedRange,
|
|
81
|
+
DocumentSavedExport,
|
|
82
|
+
DocumentSecurityFinding,
|
|
83
|
+
DocumentToolCall,
|
|
84
|
+
DocumentToolResult,
|
|
85
|
+
DocumentViewportCamera,
|
|
86
|
+
FormatCapabilityProfile,
|
|
87
|
+
FormField,
|
|
88
|
+
FormSlot,
|
|
89
|
+
KnownDocumentFormat,
|
|
90
|
+
OperationType,
|
|
91
|
+
PermissionState,
|
|
92
|
+
PrimitiveName,
|
|
93
|
+
PromotionCapability,
|
|
94
|
+
PromotionGateResult,
|
|
95
|
+
PromotionState,
|
|
96
|
+
ProtectedRangeCategory,
|
|
97
|
+
PublicFormValidationReport,
|
|
98
|
+
SecurityState,
|
|
99
|
+
SourceAnchor,
|
|
100
|
+
StyleDescriptor,
|
|
101
|
+
ToolResultStatus,
|
|
102
|
+
ValidationDecision,
|
|
103
|
+
ValidationFinding,
|
|
104
|
+
ValidationReadiness,
|
|
105
|
+
)
|
|
106
|
+
from ummaya.tools.documents.orchestrator import (
|
|
107
|
+
DocumentInspectionOrchestrator,
|
|
108
|
+
DocumentOrchestrator,
|
|
109
|
+
)
|
|
110
|
+
from ummaya.tools.documents.patch import (
|
|
111
|
+
DocumentPatchResult,
|
|
112
|
+
apply_document_patch,
|
|
113
|
+
copy_for_edit,
|
|
114
|
+
)
|
|
115
|
+
from ummaya.tools.documents.permissions import (
|
|
116
|
+
DocumentArtifactPermissionKind,
|
|
117
|
+
DocumentArtifactPermissionPayload,
|
|
118
|
+
build_document_artifact_permission,
|
|
119
|
+
document_permission_denied_result,
|
|
120
|
+
)
|
|
121
|
+
from ummaya.tools.documents.planner import plan_autonomous_fill, public_document_writing_profile
|
|
122
|
+
from ummaya.tools.documents.registry import (
|
|
123
|
+
DOCUMENT_TOOL_IDS,
|
|
124
|
+
DocumentToolRuntime,
|
|
125
|
+
register_document_tools,
|
|
126
|
+
)
|
|
127
|
+
from ummaya.tools.documents.render import (
|
|
128
|
+
DocumentRenderResult,
|
|
129
|
+
render_document_evidence,
|
|
130
|
+
)
|
|
131
|
+
from ummaya.tools.documents.reread import (
|
|
132
|
+
DocumentReReadResult,
|
|
133
|
+
ReReadMismatch,
|
|
134
|
+
reread_derivative,
|
|
135
|
+
)
|
|
136
|
+
from ummaya.tools.documents.scorecard import (
|
|
137
|
+
CapabilityScorecard,
|
|
138
|
+
PublicFormMetricScore,
|
|
139
|
+
compute_public_form_metrics,
|
|
140
|
+
)
|
|
141
|
+
from ummaya.tools.documents.style import (
|
|
142
|
+
DocumentPatchValidationError,
|
|
143
|
+
validate_document_patch,
|
|
144
|
+
)
|
|
145
|
+
from ummaya.tools.documents.tool_defs import (
|
|
146
|
+
DocumentApplyFillRequest,
|
|
147
|
+
DocumentApplyStyleRequest,
|
|
148
|
+
DocumentCopyForEditRequest,
|
|
149
|
+
DocumentExtractionResult,
|
|
150
|
+
DocumentExtractRequest,
|
|
151
|
+
DocumentFieldPatch,
|
|
152
|
+
DocumentFormSchemaRequest,
|
|
153
|
+
DocumentInspectRequest,
|
|
154
|
+
DocumentInspectResult,
|
|
155
|
+
DocumentLocator,
|
|
156
|
+
DocumentMutationResult,
|
|
157
|
+
DocumentRenderRequest,
|
|
158
|
+
DocumentSaveRequest,
|
|
159
|
+
DocumentStylePatch,
|
|
160
|
+
DocumentValidatePublicFormRequest,
|
|
161
|
+
DocumentValidationResult,
|
|
162
|
+
build_document_tool_definitions,
|
|
163
|
+
needs_input_document_tool_result,
|
|
164
|
+
unsupported_document_tool_result,
|
|
165
|
+
)
|
|
166
|
+
from ummaya.tools.documents.validate import validate_public_form
|
|
167
|
+
|
|
168
|
+
__all__ = [
|
|
169
|
+
"DOCUMENT_TOOL_IDS",
|
|
170
|
+
"ArtifactLineage",
|
|
171
|
+
"ArtifactStoreConflictError",
|
|
172
|
+
"ArtifactStoreError",
|
|
173
|
+
"ArtifactStoreSecurityError",
|
|
174
|
+
"AutonomousFillPlan",
|
|
175
|
+
"AutonomousSaveIntent",
|
|
176
|
+
"AutonomousStyleIntent",
|
|
177
|
+
"BlockedReason",
|
|
178
|
+
"BaselineField",
|
|
179
|
+
"BaselineTableGeometry",
|
|
180
|
+
"BaselineTextAnchor",
|
|
181
|
+
"CONFORMANCE_BASELINE_FIXTURE_PATH",
|
|
182
|
+
"CandidateCapabilityProfile",
|
|
183
|
+
"CapabilityScorecard",
|
|
184
|
+
"ConformanceBaseline",
|
|
185
|
+
"ConformanceBaselineCatalog",
|
|
186
|
+
"DocumentArtifact",
|
|
187
|
+
"DocumentArtifactPermissionKind",
|
|
188
|
+
"DocumentArtifactPermissionPayload",
|
|
189
|
+
"DocumentArtifactStore",
|
|
190
|
+
"DocumentAdapterRegistry",
|
|
191
|
+
"DocumentApplyFillRequest",
|
|
192
|
+
"DocumentApplyStyleRequest",
|
|
193
|
+
"DocumentChangedViewport",
|
|
194
|
+
"DocumentClipRect",
|
|
195
|
+
"DocumentCopyForEditRequest",
|
|
196
|
+
"DocumentEngineRegistry",
|
|
197
|
+
"DocumentExtractRequest",
|
|
198
|
+
"DocumentExtraction",
|
|
199
|
+
"DocumentExtractionResult",
|
|
200
|
+
"DocumentFieldPatch",
|
|
201
|
+
"DocumentFixtureManifest",
|
|
202
|
+
"DocumentFormat",
|
|
203
|
+
"DocumentFormatAdapter",
|
|
204
|
+
"DocumentFormatFamily",
|
|
205
|
+
"DocumentIR",
|
|
206
|
+
"DocumentFormSchemaRequest",
|
|
207
|
+
"DocumentIntakePolicy",
|
|
208
|
+
"DocumentIntakeResult",
|
|
209
|
+
"DocumentIntent",
|
|
210
|
+
"DocumentInspectRequest",
|
|
211
|
+
"DocumentInspectResult",
|
|
212
|
+
"DocumentInspectionEngine",
|
|
213
|
+
"DocumentInspectionOrchestrator",
|
|
214
|
+
"DocumentLocator",
|
|
215
|
+
"DocumentMutationEngine",
|
|
216
|
+
"DocumentMutationResult",
|
|
217
|
+
"DocumentOrchestrator",
|
|
218
|
+
"DocumentPatch",
|
|
219
|
+
"DocumentPatchResult",
|
|
220
|
+
"DocumentPatchOperation",
|
|
221
|
+
"DocumentPatchValidationError",
|
|
222
|
+
"DocumentProtectedRange",
|
|
223
|
+
"DocumentReReadResult",
|
|
224
|
+
"DocumentRenderResult",
|
|
225
|
+
"DocumentRenderRequest",
|
|
226
|
+
"DocumentSaveRequest",
|
|
227
|
+
"DocumentSavedExport",
|
|
228
|
+
"DocumentSecurityFinding",
|
|
229
|
+
"DocumentStylePatch",
|
|
230
|
+
"DocumentToolCall",
|
|
231
|
+
"DocumentToolContract",
|
|
232
|
+
"DocumentToolContractCatalog",
|
|
233
|
+
"DocumentToolResult",
|
|
234
|
+
"DocumentToolRuntime",
|
|
235
|
+
"DocumentViewportCamera",
|
|
236
|
+
"DocumentValidationResult",
|
|
237
|
+
"DocumentValidatePublicFormRequest",
|
|
238
|
+
"DocumentChange",
|
|
239
|
+
"DocumentDiff",
|
|
240
|
+
"EngineBackedDocumentAdapter",
|
|
241
|
+
"FormatCapabilityProfile",
|
|
242
|
+
"FormField",
|
|
243
|
+
"FormSlot",
|
|
244
|
+
"KNOWN_DOCUMENT_FORMAT_FAMILIES",
|
|
245
|
+
"KnownDocumentFormat",
|
|
246
|
+
"OperationType",
|
|
247
|
+
"PermissionState",
|
|
248
|
+
"PrimitiveName",
|
|
249
|
+
"ProtectedRangeCategory",
|
|
250
|
+
"PROMOTED_RUNTIME_DOCUMENT_FORMATS",
|
|
251
|
+
"PromotionCapability",
|
|
252
|
+
"PromotionDecision",
|
|
253
|
+
"PromotionDecisionManifest",
|
|
254
|
+
"PromotionDecisionRecord",
|
|
255
|
+
"PromotionGateResult",
|
|
256
|
+
"PromotionState",
|
|
257
|
+
"PublicFormValidationReport",
|
|
258
|
+
"PublicFormMetricScore",
|
|
259
|
+
"ReReadMismatch",
|
|
260
|
+
"RenderArtifactRecord",
|
|
261
|
+
"SecurityState",
|
|
262
|
+
"SourceAnchor",
|
|
263
|
+
"StyleDescriptor",
|
|
264
|
+
"ToolResultStatus",
|
|
265
|
+
"UnsupportedDocumentAdapterError",
|
|
266
|
+
"UnsupportedDocumentEngineError",
|
|
267
|
+
"build_document_adapter_registry_from_engine_registry",
|
|
268
|
+
"build_default_document_adapter_registry",
|
|
269
|
+
"build_default_document_engine_registry",
|
|
270
|
+
"ValidationDecision",
|
|
271
|
+
"ValidationFinding",
|
|
272
|
+
"ValidationReadiness",
|
|
273
|
+
"apply_document_patch",
|
|
274
|
+
"build_document_artifact_permission",
|
|
275
|
+
"build_document_tool_definitions",
|
|
276
|
+
"build_inspection_read_profile",
|
|
277
|
+
"copy_for_edit",
|
|
278
|
+
"compute_public_form_metrics",
|
|
279
|
+
"document_permission_denied_result",
|
|
280
|
+
"evaluate_capability_promotion",
|
|
281
|
+
"inspect_document_intake",
|
|
282
|
+
"inspect_document",
|
|
283
|
+
"load_document_tool_contracts",
|
|
284
|
+
"load_fixture_manifest",
|
|
285
|
+
"load_conformance_baselines",
|
|
286
|
+
"load_promotion_decision_manifest",
|
|
287
|
+
"needs_input_document_tool_result",
|
|
288
|
+
"plan_autonomous_fill",
|
|
289
|
+
"public_document_writing_profile",
|
|
290
|
+
"persist_promotion_decision_manifest",
|
|
291
|
+
"register_document_tools",
|
|
292
|
+
"render_document_evidence",
|
|
293
|
+
"reread_derivative",
|
|
294
|
+
"unsupported_document_tool_result",
|
|
295
|
+
"validate_document_patch",
|
|
296
|
+
"validate_public_form",
|
|
297
|
+
]
|