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/README.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
**Unified Multi-Ministry Agent for Your Administration.**
|
|
16
16
|
읽으면, **엄마야**.
|
|
17
17
|
|
|
18
|
-
UMMAYA is a terminal agent for Korean public-service workflows. You describe the outcome in natural language, and UMMAYA routes the request through
|
|
18
|
+
UMMAYA is a terminal agent for Korean public-service workflows. You describe the outcome in natural language, and UMMAYA routes the request through five main tools: `find`, `locate`, `check`, `send`, and `document`.
|
|
19
19
|
|
|
20
20
|
Read the full documentation at [ummaya-docs.pages.dev/ko](https://ummaya-docs.pages.dev/ko/). Start with the [Korean user guide](https://ummaya-docs.pages.dev/ko/start/why-ummaya/) if you want the product purpose first, or use [llms.txt](https://ummaya-docs.pages.dev/llms.txt) when an agent needs machine-readable project context.
|
|
21
21
|
|
|
@@ -92,7 +92,7 @@ Live public-information flows are shown most often in the demo because they can
|
|
|
92
92
|
|
|
93
93
|
## Main Tools
|
|
94
94
|
|
|
95
|
-
UMMAYA keeps the model-facing surface small. Instead of exposing dozens of agency-specific APIs directly to the LLM, it gives the agent
|
|
95
|
+
UMMAYA keeps the model-facing surface small. Instead of exposing dozens of agency-specific APIs directly to the LLM, it gives the agent five durable primitives and lets adapters handle ministry-specific details behind them.
|
|
96
96
|
|
|
97
97
|
### `locate`
|
|
98
98
|
|
|
@@ -142,6 +142,18 @@ Typical use:
|
|
|
142
142
|
|
|
143
143
|
`send` is where UMMAYA moves beyond answer generation: if a live or permitted channel exists it calls that channel; if only a mock or official handoff is available it preserves the same receipt-shaped boundary and says so clearly.
|
|
144
144
|
|
|
145
|
+
### `document`
|
|
146
|
+
|
|
147
|
+
`document` is the public-form authoring harness. Korean administrative work often ends in a filled form — HWP, HWPX, PDF, OOXML, or ODF — and `document` inspects the source form, extracts its field schema, copies it for safe editing, fills and styles fields, validates against the public-form rules, and renders the result.
|
|
148
|
+
|
|
149
|
+
Typical use:
|
|
150
|
+
|
|
151
|
+
```text
|
|
152
|
+
전입신고서 양식을 열어서 내 정보로 채워줘. 제출 전에 어떤 칸이 비었는지도 확인해줘.
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
`document` does not silently write a government form. Authoring is gated: the harness requires Evidence Fabric coverage and an explicit in-session approval before it fills or renders, and the terminal surfaces an approval review so a person confirms the work before it is committed.
|
|
156
|
+
|
|
145
157
|
## Permissioned Work
|
|
146
158
|
|
|
147
159
|
UMMAYA separates public information from protected action.
|
|
@@ -152,6 +164,7 @@ UMMAYA separates public information from protected action.
|
|
|
152
164
|
| Location resolution | Use live geocoding/address/region adapters when available. |
|
|
153
165
|
| Identity and delegation | Use `check` to call the wrapped identity/consent channel, such as Mobile ID, MyData, certificates, or OmniOne-style QR/app verification. |
|
|
154
166
|
| Certificates, payment, submission, correction | Use `send` with the delegation context when a live or mock channel is registered; otherwise hand off to the official path. |
|
|
167
|
+
| Public-form authoring | Use `document` to inspect, fill, and render a Korean public form; stop for Evidence Fabric coverage and explicit approval before writing. |
|
|
155
168
|
| API failure, zero result, missing authority | Stop clearly instead of inventing a result. |
|
|
156
169
|
|
|
157
170
|
This is not a separate safety pitch. It is part of how `check` and `send` work: the model plans the task, calls the right wrapped public-service tools, and stops at the authority boundary instead of acting like a reference-only RAG answerer.
|
package/bin/ummaya
CHANGED
|
@@ -135,13 +135,22 @@ export function loadPackageDotenv(root, env = process.env) {
|
|
|
135
135
|
|
|
136
136
|
export function buildBackendCommand(root) {
|
|
137
137
|
const packagedPython = join(root, '.venv', 'bin', 'python')
|
|
138
|
-
if (
|
|
138
|
+
if (canImportUmmayaCli(packagedPython)) {
|
|
139
139
|
return [packagedPython, '-m', 'ummaya.cli', '--ipc', 'stdio']
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
return ['uv', '--directory', root, 'run', '--frozen', '--no-dev', 'ummaya', '--ipc', 'stdio']
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
+
export function canImportUmmayaCli(pythonPath) {
|
|
146
|
+
if (!existsSync(pythonPath)) return false
|
|
147
|
+
const result = spawnSync(pythonPath, ['-c', 'import ummaya.cli'], {
|
|
148
|
+
encoding: 'utf8',
|
|
149
|
+
stdio: ['ignore', 'ignore', 'ignore'],
|
|
150
|
+
})
|
|
151
|
+
return !result.error && result.status === 0
|
|
152
|
+
}
|
|
153
|
+
|
|
145
154
|
export function configurePackageEnv(root, env = process.env) {
|
|
146
155
|
env.UMMAYA_PACKAGE_ROOT = root
|
|
147
156
|
if (env.UMMAYA_ALLOW_BACKEND_CMD_OVERRIDE !== '1' || !env.UMMAYA_BACKEND_CMD_JSON) {
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ummaya",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "ummaya",
|
|
9
|
-
"version": "0.2.
|
|
9
|
+
"version": "0.2.5",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@alcalzone/ansi-tokenize": "^0.3.0",
|
|
@@ -38,6 +38,8 @@
|
|
|
38
38
|
"@opentelemetry/sdk-trace-base": "^2.7.0",
|
|
39
39
|
"@opentelemetry/semantic-conventions": "^1.40.0",
|
|
40
40
|
"@pdf-lib/fontkit": "^1.1.1",
|
|
41
|
+
"@rhwp/core": "^0.7.13",
|
|
42
|
+
"@ssabrojs/hwpxjs": "0.4.0",
|
|
41
43
|
"ajv": "^8.18.0",
|
|
42
44
|
"asciichart": "^1.5.25",
|
|
43
45
|
"auto-bind": "^5.0.1",
|
|
@@ -2137,6 +2139,12 @@
|
|
|
2137
2139
|
"integrity": "sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==",
|
|
2138
2140
|
"license": "BSD-3-Clause"
|
|
2139
2141
|
},
|
|
2142
|
+
"node_modules/@rhwp/core": {
|
|
2143
|
+
"version": "0.7.13",
|
|
2144
|
+
"resolved": "https://registry.npmjs.org/@rhwp/core/-/core-0.7.13.tgz",
|
|
2145
|
+
"integrity": "sha512-IrAubU8/gfFJwXEdTrq/zgfO50uKEuo3p/m4FkcwS7QYFMS94bAHhrBr3mxPsFv5rwqiskI68pJjqaS9K/be1A==",
|
|
2146
|
+
"license": "MIT"
|
|
2147
|
+
},
|
|
2140
2148
|
"node_modules/@sec-ant/readable-stream": {
|
|
2141
2149
|
"version": "0.4.1",
|
|
2142
2150
|
"resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz",
|
|
@@ -2793,6 +2801,33 @@
|
|
|
2793
2801
|
"node": ">=18.0.0"
|
|
2794
2802
|
}
|
|
2795
2803
|
},
|
|
2804
|
+
"node_modules/@ssabrojs/hwpxjs": {
|
|
2805
|
+
"version": "0.4.0",
|
|
2806
|
+
"resolved": "https://registry.npmjs.org/@ssabrojs/hwpxjs/-/hwpxjs-0.4.0.tgz",
|
|
2807
|
+
"integrity": "sha512-tJ42NS2ywHOnhnFQ/i73hQb9xZRQGRItr4P6qJEN3C4UeSDwGLgZsa8AeSpyL+2pK8ZDKuzLWAXGjGVvVPOUuA==",
|
|
2808
|
+
"license": "MIT",
|
|
2809
|
+
"dependencies": {
|
|
2810
|
+
"cfb": "^1.2.2",
|
|
2811
|
+
"fast-xml-parser": "^5.2.5",
|
|
2812
|
+
"htmlparser2": "^12.0.0",
|
|
2813
|
+
"jszip": "^3.10.1",
|
|
2814
|
+
"marked": "^18.0.2",
|
|
2815
|
+
"pako": "^2.1.0"
|
|
2816
|
+
},
|
|
2817
|
+
"bin": {
|
|
2818
|
+
"hwpx": "dist/cli.js",
|
|
2819
|
+
"hwpxjs": "dist/cli.js"
|
|
2820
|
+
},
|
|
2821
|
+
"engines": {
|
|
2822
|
+
"node": ">=18"
|
|
2823
|
+
}
|
|
2824
|
+
},
|
|
2825
|
+
"node_modules/@ssabrojs/hwpxjs/node_modules/pako": {
|
|
2826
|
+
"version": "2.1.0",
|
|
2827
|
+
"resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz",
|
|
2828
|
+
"integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==",
|
|
2829
|
+
"license": "(MIT AND Zlib)"
|
|
2830
|
+
},
|
|
2796
2831
|
"node_modules/@types/mute-stream": {
|
|
2797
2832
|
"version": "0.0.4",
|
|
2798
2833
|
"resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz",
|
|
@@ -2859,6 +2894,15 @@
|
|
|
2859
2894
|
"node": ">= 0.6"
|
|
2860
2895
|
}
|
|
2861
2896
|
},
|
|
2897
|
+
"node_modules/adler-32": {
|
|
2898
|
+
"version": "1.3.1",
|
|
2899
|
+
"resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz",
|
|
2900
|
+
"integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
|
|
2901
|
+
"license": "Apache-2.0",
|
|
2902
|
+
"engines": {
|
|
2903
|
+
"node": ">=0.8"
|
|
2904
|
+
}
|
|
2905
|
+
},
|
|
2862
2906
|
"node_modules/agent-base": {
|
|
2863
2907
|
"version": "9.0.0",
|
|
2864
2908
|
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-9.0.0.tgz",
|
|
@@ -3198,6 +3242,19 @@
|
|
|
3198
3242
|
"node": "^18.12.0 || >= 20.9.0"
|
|
3199
3243
|
}
|
|
3200
3244
|
},
|
|
3245
|
+
"node_modules/cfb": {
|
|
3246
|
+
"version": "1.2.2",
|
|
3247
|
+
"resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz",
|
|
3248
|
+
"integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
|
|
3249
|
+
"license": "Apache-2.0",
|
|
3250
|
+
"dependencies": {
|
|
3251
|
+
"adler-32": "~1.3.0",
|
|
3252
|
+
"crc-32": "~1.2.0"
|
|
3253
|
+
},
|
|
3254
|
+
"engines": {
|
|
3255
|
+
"node": ">=0.8"
|
|
3256
|
+
}
|
|
3257
|
+
},
|
|
3201
3258
|
"node_modules/chalk": {
|
|
3202
3259
|
"version": "5.6.2",
|
|
3203
3260
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
|
|
@@ -3578,6 +3635,12 @@
|
|
|
3578
3635
|
"node": ">=6.6.0"
|
|
3579
3636
|
}
|
|
3580
3637
|
},
|
|
3638
|
+
"node_modules/core-util-is": {
|
|
3639
|
+
"version": "1.0.3",
|
|
3640
|
+
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
|
|
3641
|
+
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
|
|
3642
|
+
"license": "MIT"
|
|
3643
|
+
},
|
|
3581
3644
|
"node_modules/cors": {
|
|
3582
3645
|
"version": "2.8.6",
|
|
3583
3646
|
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
|
|
@@ -3595,6 +3658,18 @@
|
|
|
3595
3658
|
"url": "https://opencollective.com/express"
|
|
3596
3659
|
}
|
|
3597
3660
|
},
|
|
3661
|
+
"node_modules/crc-32": {
|
|
3662
|
+
"version": "1.2.2",
|
|
3663
|
+
"resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
|
|
3664
|
+
"integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
|
|
3665
|
+
"license": "Apache-2.0",
|
|
3666
|
+
"bin": {
|
|
3667
|
+
"crc32": "bin/crc32.njs"
|
|
3668
|
+
},
|
|
3669
|
+
"engines": {
|
|
3670
|
+
"node": ">=0.8"
|
|
3671
|
+
}
|
|
3672
|
+
},
|
|
3598
3673
|
"node_modules/cross-spawn": {
|
|
3599
3674
|
"version": "7.0.6",
|
|
3600
3675
|
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
|
@@ -3741,6 +3816,73 @@
|
|
|
3741
3816
|
"node": ">=10"
|
|
3742
3817
|
}
|
|
3743
3818
|
},
|
|
3819
|
+
"node_modules/dom-serializer": {
|
|
3820
|
+
"version": "3.1.1",
|
|
3821
|
+
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-3.1.1.tgz",
|
|
3822
|
+
"integrity": "sha512-4MEa38/QexBob6gFNwu+EGdWvhJ1OKuNwdYY3Y3NyeWDQfnGeDYQUDfIRzWu5B5gsv03so2Uxd28YC6zrsx3Lw==",
|
|
3823
|
+
"license": "MIT",
|
|
3824
|
+
"dependencies": {
|
|
3825
|
+
"domelementtype": "^3.0.0",
|
|
3826
|
+
"domhandler": "^6.0.0",
|
|
3827
|
+
"entities": "^8.0.0"
|
|
3828
|
+
},
|
|
3829
|
+
"engines": {
|
|
3830
|
+
"node": ">=20.19.0"
|
|
3831
|
+
},
|
|
3832
|
+
"funding": {
|
|
3833
|
+
"type": "github",
|
|
3834
|
+
"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
|
|
3835
|
+
}
|
|
3836
|
+
},
|
|
3837
|
+
"node_modules/domelementtype": {
|
|
3838
|
+
"version": "3.0.0",
|
|
3839
|
+
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-3.0.0.tgz",
|
|
3840
|
+
"integrity": "sha512-umCQid3jKbDmVjx8jGaW7uUykm4DEUeyV21hPxNMo2nV955DhUThwqyOIDtreepP31hl84X7G5U9ZfsWvIB3Pg==",
|
|
3841
|
+
"funding": [
|
|
3842
|
+
{
|
|
3843
|
+
"type": "github",
|
|
3844
|
+
"url": "https://github.com/sponsors/fb55"
|
|
3845
|
+
}
|
|
3846
|
+
],
|
|
3847
|
+
"license": "BSD-2-Clause",
|
|
3848
|
+
"engines": {
|
|
3849
|
+
"node": ">=20.19.0"
|
|
3850
|
+
}
|
|
3851
|
+
},
|
|
3852
|
+
"node_modules/domhandler": {
|
|
3853
|
+
"version": "6.0.1",
|
|
3854
|
+
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-6.0.1.tgz",
|
|
3855
|
+
"integrity": "sha512-gYzvtM72ZtxQO0T048kd6HWSbbGCNOUwcnfQ01cqIJ4X2IYKFFHZ5mKvrQETcFXxsRObZulDaKmy//R7TPtsBg==",
|
|
3856
|
+
"license": "BSD-2-Clause",
|
|
3857
|
+
"dependencies": {
|
|
3858
|
+
"domelementtype": "^3.0.0"
|
|
3859
|
+
},
|
|
3860
|
+
"engines": {
|
|
3861
|
+
"node": ">=20.19.0"
|
|
3862
|
+
},
|
|
3863
|
+
"funding": {
|
|
3864
|
+
"type": "github",
|
|
3865
|
+
"url": "https://github.com/fb55/domhandler?sponsor=1"
|
|
3866
|
+
}
|
|
3867
|
+
},
|
|
3868
|
+
"node_modules/domutils": {
|
|
3869
|
+
"version": "4.0.2",
|
|
3870
|
+
"resolved": "https://registry.npmjs.org/domutils/-/domutils-4.0.2.tgz",
|
|
3871
|
+
"integrity": "sha512-qI4JLRKnSzqFqr7hAlS5xQDusBCjKSEG4t4+7aNrIQMHBcsC2TGEhuyABJdYkgSewL57PNLYEiibY2iPKhKpaA==",
|
|
3872
|
+
"license": "BSD-2-Clause",
|
|
3873
|
+
"dependencies": {
|
|
3874
|
+
"dom-serializer": "^3.0.0",
|
|
3875
|
+
"domelementtype": "^3.0.0",
|
|
3876
|
+
"domhandler": "^6.0.0"
|
|
3877
|
+
},
|
|
3878
|
+
"engines": {
|
|
3879
|
+
"node": ">=20.19.0"
|
|
3880
|
+
},
|
|
3881
|
+
"funding": {
|
|
3882
|
+
"type": "github",
|
|
3883
|
+
"url": "https://github.com/fb55/domutils?sponsor=1"
|
|
3884
|
+
}
|
|
3885
|
+
},
|
|
3744
3886
|
"node_modules/dunder-proto": {
|
|
3745
3887
|
"version": "1.0.1",
|
|
3746
3888
|
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
|
|
@@ -3794,6 +3936,18 @@
|
|
|
3794
3936
|
"once": "^1.4.0"
|
|
3795
3937
|
}
|
|
3796
3938
|
},
|
|
3939
|
+
"node_modules/entities": {
|
|
3940
|
+
"version": "8.0.0",
|
|
3941
|
+
"resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz",
|
|
3942
|
+
"integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==",
|
|
3943
|
+
"license": "BSD-2-Clause",
|
|
3944
|
+
"engines": {
|
|
3945
|
+
"node": ">=20.19.0"
|
|
3946
|
+
},
|
|
3947
|
+
"funding": {
|
|
3948
|
+
"url": "https://github.com/fb55/entities?sponsor=1"
|
|
3949
|
+
}
|
|
3950
|
+
},
|
|
3797
3951
|
"node_modules/env-paths": {
|
|
3798
3952
|
"version": "4.0.0",
|
|
3799
3953
|
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-4.0.0.tgz",
|
|
@@ -4771,6 +4925,28 @@
|
|
|
4771
4925
|
"node": ">=16.9.0"
|
|
4772
4926
|
}
|
|
4773
4927
|
},
|
|
4928
|
+
"node_modules/htmlparser2": {
|
|
4929
|
+
"version": "12.0.0",
|
|
4930
|
+
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-12.0.0.tgz",
|
|
4931
|
+
"integrity": "sha512-Tz7u1i95/g2x2jz81+x0FBVhBhY5aRTvD3tXXdFaljuNdzDLJ8UGNRrTcj2cgQvAg3iW/h77Fz15nLW0L0CrZw==",
|
|
4932
|
+
"funding": [
|
|
4933
|
+
"https://github.com/fb55/htmlparser2?sponsor=1",
|
|
4934
|
+
{
|
|
4935
|
+
"type": "github",
|
|
4936
|
+
"url": "https://github.com/sponsors/fb55"
|
|
4937
|
+
}
|
|
4938
|
+
],
|
|
4939
|
+
"license": "MIT",
|
|
4940
|
+
"dependencies": {
|
|
4941
|
+
"domelementtype": "^3.0.0",
|
|
4942
|
+
"domhandler": "^6.0.0",
|
|
4943
|
+
"domutils": "^4.0.2",
|
|
4944
|
+
"entities": "^8.0.0"
|
|
4945
|
+
},
|
|
4946
|
+
"engines": {
|
|
4947
|
+
"node": ">=20.19.0"
|
|
4948
|
+
}
|
|
4949
|
+
},
|
|
4774
4950
|
"node_modules/http-errors": {
|
|
4775
4951
|
"version": "2.0.1",
|
|
4776
4952
|
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
|
|
@@ -4867,6 +5043,12 @@
|
|
|
4867
5043
|
"node": ">= 4"
|
|
4868
5044
|
}
|
|
4869
5045
|
},
|
|
5046
|
+
"node_modules/immediate": {
|
|
5047
|
+
"version": "3.0.6",
|
|
5048
|
+
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
|
5049
|
+
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
|
|
5050
|
+
"license": "MIT"
|
|
5051
|
+
},
|
|
4870
5052
|
"node_modules/indent-string": {
|
|
4871
5053
|
"version": "5.0.0",
|
|
4872
5054
|
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
|
|
@@ -5181,6 +5363,12 @@
|
|
|
5181
5363
|
"url": "https://github.com/sponsors/sindresorhus"
|
|
5182
5364
|
}
|
|
5183
5365
|
},
|
|
5366
|
+
"node_modules/isarray": {
|
|
5367
|
+
"version": "1.0.0",
|
|
5368
|
+
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
|
5369
|
+
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
|
|
5370
|
+
"license": "MIT"
|
|
5371
|
+
},
|
|
5184
5372
|
"node_modules/isexe": {
|
|
5185
5373
|
"version": "2.0.0",
|
|
5186
5374
|
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
|
@@ -5248,6 +5436,48 @@
|
|
|
5248
5436
|
"graceful-fs": "^4.1.6"
|
|
5249
5437
|
}
|
|
5250
5438
|
},
|
|
5439
|
+
"node_modules/jszip": {
|
|
5440
|
+
"version": "3.10.1",
|
|
5441
|
+
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
|
|
5442
|
+
"integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
|
|
5443
|
+
"license": "(MIT OR GPL-3.0-or-later)",
|
|
5444
|
+
"dependencies": {
|
|
5445
|
+
"lie": "~3.3.0",
|
|
5446
|
+
"pako": "~1.0.2",
|
|
5447
|
+
"readable-stream": "~2.3.6",
|
|
5448
|
+
"setimmediate": "^1.0.5"
|
|
5449
|
+
}
|
|
5450
|
+
},
|
|
5451
|
+
"node_modules/jszip/node_modules/readable-stream": {
|
|
5452
|
+
"version": "2.3.8",
|
|
5453
|
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
|
|
5454
|
+
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
|
|
5455
|
+
"license": "MIT",
|
|
5456
|
+
"dependencies": {
|
|
5457
|
+
"core-util-is": "~1.0.0",
|
|
5458
|
+
"inherits": "~2.0.3",
|
|
5459
|
+
"isarray": "~1.0.0",
|
|
5460
|
+
"process-nextick-args": "~2.0.0",
|
|
5461
|
+
"safe-buffer": "~5.1.1",
|
|
5462
|
+
"string_decoder": "~1.1.1",
|
|
5463
|
+
"util-deprecate": "~1.0.1"
|
|
5464
|
+
}
|
|
5465
|
+
},
|
|
5466
|
+
"node_modules/jszip/node_modules/safe-buffer": {
|
|
5467
|
+
"version": "5.1.2",
|
|
5468
|
+
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
|
5469
|
+
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
|
5470
|
+
"license": "MIT"
|
|
5471
|
+
},
|
|
5472
|
+
"node_modules/jszip/node_modules/string_decoder": {
|
|
5473
|
+
"version": "1.1.1",
|
|
5474
|
+
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
|
5475
|
+
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
|
5476
|
+
"license": "MIT",
|
|
5477
|
+
"dependencies": {
|
|
5478
|
+
"safe-buffer": "~5.1.0"
|
|
5479
|
+
}
|
|
5480
|
+
},
|
|
5251
5481
|
"node_modules/jwa": {
|
|
5252
5482
|
"version": "2.0.1",
|
|
5253
5483
|
"resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
|
|
@@ -5269,6 +5499,15 @@
|
|
|
5269
5499
|
"safe-buffer": "^5.0.1"
|
|
5270
5500
|
}
|
|
5271
5501
|
},
|
|
5502
|
+
"node_modules/lie": {
|
|
5503
|
+
"version": "3.3.0",
|
|
5504
|
+
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
|
|
5505
|
+
"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
|
|
5506
|
+
"license": "MIT",
|
|
5507
|
+
"dependencies": {
|
|
5508
|
+
"immediate": "~3.0.5"
|
|
5509
|
+
}
|
|
5510
|
+
},
|
|
5272
5511
|
"node_modules/locate-path": {
|
|
5273
5512
|
"version": "5.0.0",
|
|
5274
5513
|
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
|
|
@@ -6081,6 +6320,12 @@
|
|
|
6081
6320
|
"url": "https://github.com/sponsors/sindresorhus"
|
|
6082
6321
|
}
|
|
6083
6322
|
},
|
|
6323
|
+
"node_modules/process-nextick-args": {
|
|
6324
|
+
"version": "2.0.1",
|
|
6325
|
+
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
|
6326
|
+
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
|
|
6327
|
+
"license": "MIT"
|
|
6328
|
+
},
|
|
6084
6329
|
"node_modules/proper-lockfile": {
|
|
6085
6330
|
"version": "4.1.2",
|
|
6086
6331
|
"resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz",
|
|
@@ -6540,6 +6785,12 @@
|
|
|
6540
6785
|
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
|
|
6541
6786
|
"license": "ISC"
|
|
6542
6787
|
},
|
|
6788
|
+
"node_modules/setimmediate": {
|
|
6789
|
+
"version": "1.0.5",
|
|
6790
|
+
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
|
6791
|
+
"integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
|
|
6792
|
+
"license": "MIT"
|
|
6793
|
+
},
|
|
6543
6794
|
"node_modules/setprototypeof": {
|
|
6544
6795
|
"version": "1.2.0",
|
|
6545
6796
|
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ummaya",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"description": "Conversational multi-agent harness for Korean public-service channels",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -23,6 +23,8 @@
|
|
|
23
23
|
"uv.lock",
|
|
24
24
|
"docs/demo/**",
|
|
25
25
|
"docs/plugins/security-review.md",
|
|
26
|
+
"specs/2803-document-production-hardening/contracts/document-tools.schema.json",
|
|
27
|
+
"tests/fixtures/documents/public_forms/baselines.yaml",
|
|
26
28
|
"tests/fixtures/plugin_validation/checklist_manifest.yaml",
|
|
27
29
|
"!**/.DS_Store",
|
|
28
30
|
"!**/__pycache__/**",
|
|
@@ -98,6 +100,8 @@
|
|
|
98
100
|
"@opentelemetry/sdk-trace-base": "^2.7.0",
|
|
99
101
|
"@opentelemetry/semantic-conventions": "^1.40.0",
|
|
100
102
|
"@pdf-lib/fontkit": "^1.1.1",
|
|
103
|
+
"@rhwp/core": "^0.7.13",
|
|
104
|
+
"@ssabrojs/hwpxjs": "0.4.0",
|
|
101
105
|
"ajv": "^8.18.0",
|
|
102
106
|
"asciichart": "^1.5.25",
|
|
103
107
|
"auto-bind": "^5.0.1",
|
package/prompts/manifest.yaml
CHANGED
package/prompts/system_v1.md
CHANGED
|
@@ -121,6 +121,7 @@ Use available tools when the citizen's request requires live data lookup.
|
|
|
121
121
|
3. **결과를 받으면 다음 turn 에서 다시 짧은 진행 문장 → 다음 도구 호출** 또는 **충분한 정보가 모였으면 최종 답변**.
|
|
122
122
|
4. 충분한 정보가 모인 turn 에는 도구 호출 없이 답변 paragraphs 만 작성합니다. 첫 paragraph 가 핵심 결론, 다음 paragraph 가 부연입니다.
|
|
123
123
|
이 흐름의 핵심: 도구 호출 전에는 시민이 이해할 수 있는 짧은 진행 문장을 쓰고, 최종 답변에는 내부 단계명이나 메타 라벨을 붙이지 않습니다.
|
|
124
|
+
**로컬 문서/파일 진행 문장 guard**: 시민이 로컬 경로, 다운로드 폴더, HWPX/HWP/DOCX/PDF/XLSX/PPTX 파일을 말하면 UMMAYA는 로컬 문서/작업공간 도구로 확인할 수 있습니다. 도구 호출 전에 "파일이 없다", "제공된 파일이 없다", "찾을 수 없다"처럼 존재 여부를 단정하지 말고, "문서 위치와 내용을 확인하겠습니다"처럼 확인 목적만 말하십시오. 파일 존재 여부는 도구 결과를 받은 뒤에만 말하십시오.
|
|
124
125
|
**메타 라벨 금지**: 시민 응답에는 내부 단계명, 영어 메타 라벨, 함수 호출 형식 설명을 붙이지 말고 자연어 문장만 작성하십시오.
|
|
125
126
|
**One tool per turn — 한 turn 안에서 도구는 정확히 한 개만 호출.** 같은 의도의 도구 (예: kma_current_observation + kma_forecast_fetch) 를 한 turn 에 여러 개 호출 금지. 첫 도구의 결과를 본 후에야 다음 도구가 필요한지 판단합니다. 부산 + 서울 같이 *완전히 독립* 인 같은 도구의 두 호출만 한 turn 에 parallel 가능.
|
|
126
127
|
**Paragraph-cadence answer — K-EXAONE on FriendliAI 는 SSE chunk 를 *paragraph* 단위로 emit.** 답변을 짧은 paragraph (1-3 줄) 로 끊어서 작성. 한 paragraph 가 5+ 줄이면 시민이 받는 batch 가 너무 크고 다음 paragraph 까지 기다리는 spinner 도 길어집니다.
|
package/pyproject.toml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "ummaya"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.5"
|
|
4
4
|
description = "Conversational multi-agent platform for Korean public APIs"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -52,6 +52,21 @@ dependencies = [
|
|
|
52
52
|
# (`uv sync --frozen`) do not install dev/extras groups, so yaml MUST be
|
|
53
53
|
# a core runtime dependency or those entrypoints crash at import.
|
|
54
54
|
"pyyaml>=6.0.3",
|
|
55
|
+
"python-docx>=1.2.0",
|
|
56
|
+
"openpyxl>=3.1.5",
|
|
57
|
+
"python-pptx>=1.0.2",
|
|
58
|
+
"defusedxml>=0.7.1",
|
|
59
|
+
"pypdf>=6.13.3",
|
|
60
|
+
"pypdfium2>=5.9.0",
|
|
61
|
+
# spec 2802 — local-only read engine for legacy HWP inspection. Direct HWP
|
|
62
|
+
# writing remains blocked until a separate conversion/write ADR passes.
|
|
63
|
+
"unhwp>=0.5.0,<0.6",
|
|
64
|
+
# spec 2802 — pypdf uses fontTools to build embedded TrueType appearance
|
|
65
|
+
# streams for Korean AcroForm text without viewer-side regeneration.
|
|
66
|
+
"fonttools>=4.60",
|
|
67
|
+
# spec 2802 — ODF writer for bounded ODT/ODS/ODP public-form derivatives.
|
|
68
|
+
# LibreOffice layout-oracle rendering remains a separate optional bridge.
|
|
69
|
+
"odfdo>=3.22.8,<4",
|
|
55
70
|
]
|
|
56
71
|
|
|
57
72
|
[project.scripts]
|
|
@@ -87,6 +102,7 @@ dev = [
|
|
|
87
102
|
"pip-audit>=2.10.0",
|
|
88
103
|
"vulture>=2.16",
|
|
89
104
|
"pip-licenses>=5.0",
|
|
105
|
+
"httpx2>=2.4.0",
|
|
90
106
|
]
|
|
91
107
|
# spec 026 FR-C09 — Langfuse Prompt Management is an OPT-IN integration.
|
|
92
108
|
# It must never be a core runtime dependency (AGENTS.md hard rule: no new
|
|
@@ -97,6 +113,9 @@ langfuse = [
|
|
|
97
113
|
]
|
|
98
114
|
gateway = [
|
|
99
115
|
"fastapi>=0.115",
|
|
116
|
+
# Security floor for the ASGI layer; keep explicit even though FastAPI
|
|
117
|
+
# pulls Starlette transitively so vulnerability audits cannot resolve lower.
|
|
118
|
+
"starlette>=1.3.1",
|
|
100
119
|
"uvicorn[standard]>=0.30",
|
|
101
120
|
]
|
|
102
121
|
|
|
@@ -112,6 +131,7 @@ include = [
|
|
|
112
131
|
"/src/ummaya",
|
|
113
132
|
"/prompts",
|
|
114
133
|
"/docs/plugins/security-review.md",
|
|
134
|
+
"/specs/2803-document-production-hardening/contracts/document-tools.schema.json",
|
|
115
135
|
"/tests/fixtures/plugin_validation/checklist_manifest.yaml",
|
|
116
136
|
]
|
|
117
137
|
|
|
@@ -131,6 +151,9 @@ packages = ["src/ummaya"]
|
|
|
131
151
|
# (default packages= only ships src/ummaya; without this include the
|
|
132
152
|
# ummaya.plugins import fails at module load).
|
|
133
153
|
"docs/plugins/security-review.md" = "ummaya/_canonical/security-review.md"
|
|
154
|
+
# Bundle the document production hardening tool contract so installed wheels
|
|
155
|
+
# can register model-visible document tools without depending on the source tree.
|
|
156
|
+
"specs/2803-document-production-hardening/contracts/document-tools.schema.json" = "ummaya/_canonical/document-tools.schema.json"
|
|
134
157
|
# Bundle the 50-item validation checklist YAML so ummaya-plugin-validate
|
|
135
158
|
# CLI can find it without depending on the source-tree layout.
|
|
136
159
|
"tests/fixtures/plugin_validation/checklist_manifest.yaml" = "ummaya/_canonical/checklist_manifest.yaml"
|
|
@@ -309,7 +332,7 @@ min_confidence = 80
|
|
|
309
332
|
|
|
310
333
|
[tool.commitizen]
|
|
311
334
|
name = "cz_conventional_commits"
|
|
312
|
-
version = "0.2.
|
|
335
|
+
version = "0.2.5"
|
|
313
336
|
tag_format = "v$version"
|
|
314
337
|
|
|
315
338
|
# PyTorch CPU-only wheel for Docker image size discipline (SC-1: ≤ 2 GB).
|
|
@@ -343,4 +366,5 @@ dev = [
|
|
|
343
366
|
"vulture>=2.16",
|
|
344
367
|
"pip-licenses>=5.0",
|
|
345
368
|
"types-pyyaml>=6.0.12",
|
|
369
|
+
"reportlab>=4.5.1",
|
|
346
370
|
]
|