blun-king-cli 9.1.587 → 9.1.588
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/CHANGELOG.md +11 -185
- package/LIESMICH.txt +51 -13
- package/README.md +44 -47
- package/agent-spine-plugin/.codex-plugin/plugin.json +16 -4
- package/agent-spine-plugin/CHANGELOG.md +37 -5
- package/agent-spine-plugin/README.md +3 -3
- package/agent-spine-plugin/blun.plugin.json +45 -10
- package/agent-spine-plugin/docs/artifact-evaluation.md +93 -0
- package/agent-spine-plugin/docs/host-integration.md +42 -27
- package/agent-spine-plugin/docs/preflight-recall.md +4 -2
- package/agent-spine-plugin/docs/session-timeline.md +97 -236
- package/agent-spine-plugin/docs/world-model.md +25 -0
- package/agent-spine-plugin/hooks/codex.json +1 -1
- package/agent-spine-plugin/hooks/hooks.json +1 -1
- package/agent-spine-plugin/package.json +1 -3
- package/agent-spine-plugin/scripts/check-hosts.js +3 -3
- package/agent-spine-plugin/scripts/release-check.js +10 -5
- package/agent-spine-plugin/scripts/run-checks.js +4 -1
- package/agent-spine-plugin/scripts/run-tests-hermetic.js +32 -6
- package/agent-spine-plugin/src/cli-learning.js +15 -0
- package/agent-spine-plugin/src/cli.js +2 -0
- package/agent-spine-plugin/src/hook.js +32 -32
- package/agent-spine-plugin/src/lib/action-lesson-recall.js +73 -8
- package/agent-spine-plugin/src/lib/briefing.js +146 -36
- package/agent-spine-plugin/src/lib/channel-continuity.js +19 -0
- package/agent-spine-plugin/src/lib/delivery-agent-usage.js +14 -7
- package/agent-spine-plugin/src/lib/gateway-group-response.js +128 -0
- package/agent-spine-plugin/src/lib/gateway-runs.js +24 -15
- package/agent-spine-plugin/src/lib/hook-briefing-use.js +13 -3
- package/agent-spine-plugin/src/lib/hook-context.js +16 -3
- package/agent-spine-plugin/src/lib/hook-output.js +129 -5
- package/agent-spine-plugin/src/lib/hook-timeline.js +5 -3
- package/agent-spine-plugin/src/lib/indexed-memory.js +2 -2
- package/agent-spine-plugin/src/lib/learning-artifact-evaluator.js +114 -0
- package/agent-spine-plugin/src/lib/learning-context.js +11 -4
- package/agent-spine-plugin/src/lib/learning-measurements.js +2 -2
- package/agent-spine-plugin/src/lib/mcp-runtime.js +89 -3
- package/agent-spine-plugin/src/lib/mcp-source-context.js +12 -2
- package/agent-spine-plugin/src/lib/mcp-timeline-tools.js +91 -8
- package/agent-spine-plugin/src/lib/mcp-world-tools.js +2 -2
- package/agent-spine-plugin/src/lib/owned-file-lock.js +20 -1
- package/agent-spine-plugin/src/lib/persona-runtime.js +2 -2
- package/agent-spine-plugin/src/lib/preflight-delivery-id.js +27 -0
- package/agent-spine-plugin/src/lib/preflight.js +4 -4
- package/agent-spine-plugin/src/lib/session-timeline-codex.js +15 -0
- package/agent-spine-plugin/src/lib/session-timeline-contract.js +12 -4
- package/agent-spine-plugin/src/lib/session-timeline-event-extract.js +36 -7
- package/agent-spine-plugin/src/lib/session-timeline-host-origin.js +13 -10
- package/agent-spine-plugin/src/lib/session-timeline-invocation.js +1 -1
- package/agent-spine-plugin/src/lib/session-timeline-king.js +14 -0
- package/agent-spine-plugin/src/lib/session-timeline-prior.js +18 -12
- package/agent-spine-plugin/src/lib/session-timeline-provider.js +5 -0
- package/agent-spine-plugin/src/lib/session-timeline-query.js +2 -0
- package/agent-spine-plugin/src/lib/session-timeline-results.js +35 -10
- package/agent-spine-plugin/src/lib/session-timeline-source-open.js +30 -0
- package/agent-spine-plugin/src/lib/session-timeline.js +122 -75
- package/agent-spine-plugin/src/lib/source-roots.js +3 -2
- package/agent-spine-plugin/src/lib/task-knowledge-context.js +22 -1
- package/agent-spine-plugin/src/lib/timeline-continuation-update.js +100 -0
- package/agent-spine-plugin/src/lib/timeline-tool-guard.js +30 -7
- package/agent-spine-plugin/src/lib/timeline-user-feedback.js +217 -0
- package/agent-spine-plugin/src/lib/timeline-world-capture.js +233 -0
- package/agent-spine-plugin/src/lib/world-knowledge.js +59 -2
- package/agent-spine-plugin/src/lib/world-model.js +64 -9
- package/agent-spine-plugin/src/worker.js +13 -1
- package/bin/blun.js +43 -28
- package/bin/core-bootstrap.js +5 -4
- package/bin/king.js +43 -28
- package/bin/launcher-mode.js +1 -10
- package/bin/launcher-runtime.js +128 -295
- package/bin/managed-node.js +0 -0
- package/bin/managed-plugin-selection.cjs +0 -1
- package/bin/native-module-repair.js +0 -0
- package/bin/node-runtime.js +0 -0
- package/bin/node-version.js +0 -0
- package/bin/plugin-bootstrap.js +56 -120
- package/bin/private-paths.js +11 -34
- package/bin/standard-tools-bootstrap.js +34 -114
- package/bin/turn-thinking-policy.cjs +3 -11
- package/bin/update-copy.js +200 -0
- package/bin/update-lease.js +0 -0
- package/bin/update-notice.js +136 -289
- package/bin/verify-agent-behavior.cjs +122 -0
- package/bin/verify-agent-components.cjs +104 -0
- package/bin/verify-bundled-agent-sources.cjs +57 -0
- package/blun.mjs +143076 -135288
- package/bundled-agent-sources.json +701 -0
- package/package.json +12 -15
- package/standard-skills/translate-native/README.md +1293 -0
- package/standard-skills/translate-native/SKILL.md +172 -22
- package/standard-skills/translate-native/VERSION +1 -1
- package/standard-skills/translate-native/agents/openai.yaml +18 -0
- package/standard-skills/translate-native/assets/icon.svg +8 -0
- package/standard-skills/translate-native/docs/BLUN_CODE_INTEGRATION.md +76 -0
- package/standard-skills/translate-native/docs/PREMORTEM.md +489 -0
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION.md +2035 -0
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_API.md +1302 -0
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_EVIDENCE_HTTP.md +136 -0
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_HEALTH_HTTP.md +130 -0
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_HTTP_PROVIDER.md +175 -0
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_RECEIPT_VERIFIER_HTTP.md +86 -0
- package/standard-skills/translate-native/integrations/AGENT_RULES.md +32 -0
- package/standard-skills/translate-native/integrations/adapters/blun-code-language-guard.js +514 -0
- package/standard-skills/translate-native/integrations/adapters/node-language-guard.js +230 -0
- package/standard-skills/translate-native/integrations/audit_log.py +327 -0
- package/standard-skills/translate-native/integrations/claude_language_hook.js +1536 -0
- package/standard-skills/translate-native/integrations/commercial_localization_profile.py +42 -0
- package/standard-skills/translate-native/integrations/delivery-policy.example.json +28 -0
- package/standard-skills/translate-native/integrations/enforced_delivery.py +543 -0
- package/standard-skills/translate-native/integrations/guard_service.py +435 -0
- package/standard-skills/translate-native/integrations/language_gateway.py +67 -0
- package/standard-skills/translate-native/integrations/mcp_auth_headers.py +198 -0
- package/standard-skills/translate-native/integrations/mcp_http_gateway.py +429 -0
- package/standard-skills/translate-native/integrations/non_language_html_entities.js +1485 -0
- package/standard-skills/translate-native/integrations/pre_output_guard.py +65 -0
- package/standard-skills/translate-native/integrations/task_router.py +101 -0
- package/standard-skills/translate-native/integrations/website_localization.py +401 -0
- package/standard-skills/translate-native/integrations/website_localization_api.py +581 -0
- package/standard-skills/translate-native/integrations/website_localization_benchmark.py +1885 -0
- package/standard-skills/translate-native/integrations/website_localization_benchmark_campaign.py +1772 -0
- package/standard-skills/translate-native/integrations/website_localization_benchmark_candidate.py +506 -0
- package/standard-skills/translate-native/integrations/website_localization_benchmark_http.py +400 -0
- package/standard-skills/translate-native/integrations/website_localization_benchmark_review_store.py +781 -0
- package/standard-skills/translate-native/integrations/website_localization_benchmark_reviewer_http.py +500 -0
- package/standard-skills/translate-native/integrations/website_localization_benchmark_runtime.py +1107 -0
- package/standard-skills/translate-native/integrations/website_localization_benchmark_suite.py +463 -0
- package/standard-skills/translate-native/integrations/website_localization_cms.py +2835 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_client.py +875 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_dispatch.py +805 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_http.py +588 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_lifecycle_monitor.py +991 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_receiver.py +1441 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_receiver_runtime.py +414 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_receiver_store.py +1073 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_removal_dispatch.py +865 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_client.py +583 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery.py +964 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_runtime.py +665 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_http.py +1153 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_runtime.py +675 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_service.py +1125 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification.py +674 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_http.py +444 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_receiver.py +1469 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_receiver_runtime.py +1142 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_processing_monitor.py +634 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_receiver_client.py +804 -0
- package/standard-skills/translate-native/integrations/website_localization_deepl_baseline.py +922 -0
- package/standard-skills/translate-native/integrations/website_localization_evidence_http.py +482 -0
- package/standard-skills/translate-native/integrations/website_localization_health.py +1541 -0
- package/standard-skills/translate-native/integrations/website_localization_health_http.py +372 -0
- package/standard-skills/translate-native/integrations/website_localization_http_provider.py +297 -0
- package/standard-skills/translate-native/integrations/website_localization_native_reference_http.py +479 -0
- package/standard-skills/translate-native/integrations/website_localization_native_reference_intake.py +363 -0
- package/standard-skills/translate-native/integrations/website_localization_native_reference_queue.py +1449 -0
- package/standard-skills/translate-native/integrations/website_localization_native_reference_store.py +420 -0
- package/standard-skills/translate-native/integrations/website_localization_quality_profiles.py +235 -0
- package/standard-skills/translate-native/integrations/website_localization_queue.py +671 -0
- package/standard-skills/translate-native/integrations/website_localization_receipt_verifier_http.py +516 -0
- package/standard-skills/translate-native/integrations/website_localization_release.py +928 -0
- package/standard-skills/translate-native/integrations/website_localization_release_coordinator.py +1008 -0
- package/standard-skills/translate-native/integrations/website_localization_runner.py +276 -0
- package/standard-skills/translate-native/integrations/website_localization_runtime.py +862 -0
- package/standard-skills/translate-native/integrations/website_localization_service.py +350 -0
- package/standard-skills/translate-native/integrations/website_localization_supervisor.py +511 -0
- package/standard-skills/translate-native/integrations/website_localization_worker.py +663 -0
- package/standard-skills/translate-native/provenance.json +3 -4
- package/standard-skills/translate-native/references/commercial-localization.md +177 -0
- package/standard-skills/translate-native/scripts/blun_language_guard.py +7 -1
- package/standard-skills/translate-native/scripts/check_commercial_review.py +80 -0
- package/standard-skills/translate-native/scripts/commercial_localization_profile.py +333 -0
- package/standard-tools/language-guard/LICENSE +21 -0
- package/standard-tools/language-guard/VERSION +1 -0
- package/standard-tools/language-guard/blun_language_guard.py +7 -1
- package/standard-tools/language-guard/check_commercial_review.py +80 -0
- package/standard-tools/language-guard/commercial_localization_profile.py +333 -0
- package/standard-tools/language-guard/language_gateway.py +62 -0
- package/standard-tools/language-guard/pre_output_guard.py +64 -0
- package/standard-tools/language-guard/provenance.json +4 -11
- package/standard-tools/manifest.json +34 -11
- package/telegram-plugin/commands/access.md +2 -10
- package/telegram-plugin/dist/bridge.mjs +64041 -687
- package/telegram-plugin/dist/mcp-server.mjs +72810 -9027
- package/telegram-plugin/dist/noise.mjs +28 -63511
- package/agent-spine-plugin/CONTRIBUTING.md +0 -52
- package/agent-spine-plugin/SECURITY.md +0 -47
- package/agent-spine-plugin/docs/assignment-continuation.md +0 -48
- package/agent-spine-plugin/docs/releasing.md +0 -85
- package/agent-spine-plugin/docs/structured-completion.md +0 -67
- package/bin/abort-listener-policy.cjs +0 -43
- package/bin/active-steer-priority-policy.cjs +0 -24
- package/bin/agent-api-http-adapter.mjs +0 -446
- package/bin/agent-api-private-http-server.mjs +0 -288
- package/bin/agent-api-runtime.mjs +0 -252
- package/bin/agent-api-service-environment.mjs +0 -236
- package/bin/agent-api-service-host.mjs +0 -209
- package/bin/agent-api-service-process.mjs +0 -171
- package/bin/agent-api-session-registry.mjs +0 -428
- package/bin/agent-api-tool-broker.cjs +0 -248
- package/bin/agent-api-turn-controller.mjs +0 -461
- package/bin/agent-api-usage-journal.cjs +0 -259
- package/bin/agent-resume-snapshot.cjs +0 -241
- package/bin/agentspine-king-goal-inbox.mjs +0 -111
- package/bin/agentspine-king-goal-intake.mjs +0 -106
- package/bin/approval-rejection-stop.cjs +0 -15
- package/bin/assistant-message-offload-policy.cjs +0 -284
- package/bin/baseline-skill-performance-policy.cjs +0 -39
- package/bin/bash-search-scope-policy.cjs +0 -49
- package/bin/codebase-search-runtime.cjs +0 -23
- package/bin/cognitive-action-checkpoint.cjs +0 -1104
- package/bin/cognitive-attention-delivery.cjs +0 -76
- package/bin/cognitive-attention-policy.cjs +0 -143
- package/bin/cognitive-attention-runtime.cjs +0 -91
- package/bin/cognitive-context-projection.cjs +0 -73
- package/bin/cognitive-cross-portal-acceptance.cjs +0 -443
- package/bin/cognitive-effective-view.cjs +0 -77
- package/bin/cognitive-focus-projection.cjs +0 -206
- package/bin/cognitive-focus-scope.cjs +0 -37
- package/bin/cognitive-goal-autostart-policy.cjs +0 -72
- package/bin/cognitive-goal-time-trigger-controller.cjs +0 -146
- package/bin/cognitive-memory-adapter.cjs +0 -282
- package/bin/cognitive-memory-command.cjs +0 -293
- package/bin/cognitive-memory-provider.cjs +0 -92
- package/bin/cognitive-salience-policy.cjs +0 -159
- package/bin/cognitive-state-store.cjs +0 -508
- package/bin/cognitive-turn-lifecycle.cjs +0 -624
- package/bin/cognitive-work-focus.cjs +0 -180
- package/bin/compaction-history-archive.cjs +0 -166
- package/bin/compaction-history-startup.cjs +0 -50
- package/bin/compaction-model-policy.cjs +0 -31
- package/bin/compaction-stage-policy.cjs +0 -21
- package/bin/compaction-transaction-policy.cjs +0 -122
- package/bin/config-write-dedup-policy.cjs +0 -27
- package/bin/context-budget-ledger.cjs +0 -31
- package/bin/context-doctor-policy.cjs +0 -70
- package/bin/context-insight-policy.cjs +0 -36
- package/bin/context-performance-policy.cjs +0 -19
- package/bin/context-pressure-policy.cjs +0 -20
- package/bin/cron-run-output.cjs +0 -45
- package/bin/cron-run-store.cjs +0 -145
- package/bin/curiosity-scout-policy.cjs +0 -49
- package/bin/default-model-output-budget-policy.cjs +0 -28
- package/bin/durable-task-resume-policy.cjs +0 -130
- package/bin/durable-task-resume-runtime.cjs +0 -117
- package/bin/durable-task-resume-store.cjs +0 -88
- package/bin/editable-tool-approval-policy.cjs +0 -540
- package/bin/editable-tool-approval-runtime.cjs +0 -99
- package/bin/effective-system-prompt-cache-policy.cjs +0 -33
- package/bin/error-memory-performance-policy.cjs +0 -113
- package/bin/file-observation-policy.cjs +0 -133
- package/bin/foreground-output-capture-policy.cjs +0 -41
- package/bin/generated-source-health.cjs +0 -142
- package/bin/glob-pattern-policy.cjs +0 -13
- package/bin/goal-completion-evidence-policy.cjs +0 -120
- package/bin/grep-output-limit-policy.cjs +0 -39
- package/bin/historical-media-projection-policy.cjs +0 -48
- package/bin/history-offload-pressure-policy.cjs +0 -33
- package/bin/html-to-research-markdown.cjs +0 -147
- package/bin/identity-context-policy.cjs +0 -764
- package/bin/identity-journal-policy.cjs +0 -107
- package/bin/input-draft-persistence.cjs +0 -77
- package/bin/king-tui-function-contract.json +0 -33
- package/bin/launcher-restart-policy.cjs +0 -150
- package/bin/live-response-repetition-guard.cjs +0 -196
- package/bin/llm-config-log-dedup-policy.cjs +0 -76
- package/bin/loop-event-record-policy.cjs +0 -174
- package/bin/managed-context-startup-policy.cjs +0 -27
- package/bin/media-activity-layout-policy.cjs +0 -34
- package/bin/media-auto-retrieval-policy.cjs +0 -90
- package/bin/media-result-policy.cjs +0 -59
- package/bin/micro-compaction-policy.cjs +0 -145
- package/bin/mistake-relevance-policy.cjs +0 -319
- package/bin/model-retry-progress-policy.cjs +0 -46
- package/bin/native-large-file-io.cjs +0 -42
- package/bin/native-runtime-cache.cjs +0 -76
- package/bin/natural-presence-policy.cjs +0 -28
- package/bin/noninteractive-shell-env-policy.cjs +0 -19
- package/bin/observer-hooks.cjs +0 -14
- package/bin/outbound-claim-provenance.cjs +0 -150
- package/bin/oversized-context-offload-policy.cjs +0 -86
- package/bin/pending-media-policy.cjs +0 -182
- package/bin/pending-token-estimate-policy.cjs +0 -41
- package/bin/personal-memory-consent-policy.cjs +0 -72
- package/bin/personal-memory-performance-policy.cjs +0 -12
- package/bin/personality-choice-policy.cjs +0 -101
- package/bin/personality-memory-adapter.cjs +0 -379
- package/bin/personality-mode.cjs +0 -46
- package/bin/personality-setup-policy.cjs +0 -197
- package/bin/proactive-compaction-policy.cjs +0 -25
- package/bin/profile-identity-resolution.cjs +0 -136
- package/bin/profile-runtime.cjs +0 -318
- package/bin/profile-tool-exclusion-policy.cjs +0 -37
- package/bin/programmatic-context-isolation.cjs +0 -25
- package/bin/programmatic-tool-runtime.mjs +0 -627
- package/bin/provider-idle-timeout-policy.cjs +0 -14
- package/bin/provider-model-refresh-deadline.cjs +0 -53
- package/bin/provider-model-refresh-policy.cjs +0 -107
- package/bin/rate-limit-recovery-policy.cjs +0 -47
- package/bin/read-batch-policy.cjs +0 -32
- package/bin/read-continuation-policy.cjs +0 -59
- package/bin/recurring-cron-history-policy.cjs +0 -124
- package/bin/relationship-continuity-policy.cjs +0 -143
- package/bin/relationship-curiosity-policy.cjs +0 -107
- package/bin/relationship-learning-policy.cjs +0 -168
- package/bin/release-artifact-freeze-policy.cjs +0 -30
- package/bin/reload-plugin-bootstrap.cjs +0 -18
- package/bin/reload-queue-policy.cjs +0 -38
- package/bin/repeated-assistant-response-policy.cjs +0 -232
- package/bin/repeated-injection-projection.cjs +0 -107
- package/bin/repeated-user-message-projection.cjs +0 -8
- package/bin/research-page-result.cjs +0 -74
- package/bin/retry-checkpoint-policy.cjs +0 -13
- package/bin/runtime-exit-ledger.cjs +0 -144
- package/bin/scoped-cron-run-policy.cjs +0 -358
- package/bin/session-checkpoint-policy.cjs +0 -25
- package/bin/session-compaction-policy.cjs +0 -84
- package/bin/session-replay-policy.cjs +0 -20
- package/bin/session-replay-window-policy.cjs +0 -40
- package/bin/session-resume-checkpoint.cjs +0 -254
- package/bin/session-scrollback-archive.cjs +0 -229
- package/bin/skill-activation-performance-policy.cjs +0 -69
- package/bin/skill-listing-performance-policy.cjs +0 -92
- package/bin/soul-organization-policy.cjs +0 -78
- package/bin/soul-preservation-policy.cjs +0 -20
- package/bin/startup-preferences.cjs +0 -131
- package/bin/streaming-flush-performance-policy.cjs +0 -28
- package/bin/structured-agent-swarm-output.cjs +0 -325
- package/bin/structured-subagent-output.cjs +0 -252
- package/bin/subagent-context-fork-policy.cjs +0 -155
- package/bin/subagent-max-tokens-handoff-policy.cjs +0 -69
- package/bin/subagent-parent-responsiveness.cjs +0 -19
- package/bin/subagent-skill-policy.cjs +0 -206
- package/bin/subagent-timeout-policy.cjs +0 -182
- package/bin/subagent-tool-policy.cjs +0 -60
- package/bin/subagent-usage-rollup-policy.cjs +0 -29
- package/bin/system-prompt-context-policy.cjs +0 -124
- package/bin/system-prompt-token-cache-policy.cjs +0 -60
- package/bin/telegram-addressed-focus.cjs +0 -55
- package/bin/telegram-addressed-priority.cjs +0 -12
- package/bin/telegram-approval-relay.cjs +0 -290
- package/bin/telegram-bot-priority.cjs +0 -17
- package/bin/telegram-console-status-policy.cjs +0 -174
- package/bin/telegram-context-projection-policy.cjs +0 -141
- package/bin/telegram-delivery-lifecycle.cjs +0 -125
- package/bin/telegram-direct-focus-policy.cjs +0 -273
- package/bin/telegram-mcp-compatibility.cjs +0 -49
- package/bin/telegram-media-delivery-policy.cjs +0 -42
- package/bin/telegram-private-conversation-policy.cjs +0 -185
- package/bin/telegram-queue-handoff-policy.cjs +0 -73
- package/bin/telegram-remote-status-policy.cjs +0 -120
- package/bin/telegram-session-queue-runtime.mjs +0 -306
- package/bin/telegram-text-chunk-policy.cjs +0 -63
- package/bin/telegram-truncated-reply-policy.cjs +0 -37
- package/bin/telegram-urgent-policy.cjs +0 -45
- package/bin/telemetry-spool-policy.cjs +0 -57
- package/bin/thinking-activity-status-policy.cjs +0 -132
- package/bin/thinking-only-guard.cjs +0 -80
- package/bin/todo-list-turn-policy.cjs +0 -131
- package/bin/tool-call-loop-policy.cjs +0 -51
- package/bin/tool-file-persistence.cjs +0 -141
- package/bin/tool-result-offload-policy.cjs +0 -359
- package/bin/tool-result-offload-telemetry.cjs +0 -12
- package/bin/tool-schema-token-cache-policy.cjs +0 -41
- package/bin/tool-stream-preview-policy.cjs +0 -9
- package/bin/tui-functional-contract.cjs +0 -55
- package/bin/turn-tool-performance-policy.cjs +0 -486
- package/bin/usage-cache-efficiency-policy.cjs +0 -26
- package/bin/user-home-path-policy.cjs +0 -13
- package/bin/user-message-offload-policy.cjs +0 -103
- package/bin/user-prompt-hook-origin-policy.cjs +0 -34
- package/bin/user-tool-record-policy.cjs +0 -7
- package/bin/validated-learning-insight-policy.cjs +0 -58
- package/bin/validated-learning-outcome-trace.cjs +0 -107
- package/bin/validated-learning-performance-policy.cjs +0 -53
- package/bin/validated-learning-signal.cjs +0 -463
- package/bin/windows-bash-dialect-policy.cjs +0 -25
- package/bin/windows-node-crash-dump.cjs +0 -110
- package/bin/write-continuation-policy.cjs +0 -69
- package/codebase-index/README.md +0 -82
- package/codebase-index/codebase_index.py +0 -470
- package/standard-skills/agent-browser/SKILL.md +0 -19
- package/standard-skills/agent-browser/references/runtime.md +0 -8
- package/standard-skills/blun-session-inspector/SKILL.md +0 -41
- package/standard-skills/blun-session-inspector/scripts/inspect-session.cjs +0 -437
- package/standard-skills/design-taste-frontend/SKILL.md +0 -1206
- package/standard-skills/full-output-enforcement/SKILL.md +0 -49
- package/standard-skills/high-end-visual-design/SKILL.md +0 -98
- package/standard-skills/image-to-code/SKILL.md +0 -1228
- package/standard-skills/industrial-brutalist-ui/SKILL.md +0 -92
- package/standard-skills/minimalist-ui/SKILL.md +0 -85
- package/standard-skills/motion-design-taste/SKILL.md +0 -74
- package/standard-skills/playwright-testing/SKILL.md +0 -19
- package/standard-skills/playwright-testing/references/runtime.md +0 -7
- package/standard-skills/premortem/SKILL.md +0 -148
- package/standard-skills/redesign-existing-projects/SKILL.md +0 -178
- package/standard-skills/research-evidence/SKILL.md +0 -39
- package/standard-skills/research-evidence/references/evidence-format.md +0 -104
- package/standard-skills/research-evidence/scripts/evidence-collection.cjs +0 -260
- package/standard-skills/research-evidence/scripts/score-report.cjs +0 -130
- package/standard-skills/screenshot-lesen/SKILL.md +0 -52
- package/standard-skills/stitch-design-taste/DESIGN.md +0 -121
- package/standard-skills/stitch-design-taste/SKILL.md +0 -184
- package/standard-skills/telegram-channel/SKILL.md +0 -18
- package/standard-skills/telegram-channel/references/runtime.md +0 -7
- package/standard-skills/venture-flywheel/SKILL.md +0 -32
- package/standard-skills/venture-flywheel/identity/project-identity.cjs +0 -146
- package/standard-skills/venture-flywheel/policy/capability-engine.cjs +0 -114
- package/standard-skills/venture-flywheel/policy/repository-trust.cjs +0 -229
- package/standard-skills/venture-flywheel/references/BEISPIELE-phase0.md +0 -146
- package/standard-skills/venture-flywheel/references/CAPABILITY-MAP.md +0 -34
- package/standard-skills/venture-flywheel/references/SPEC-phase0-identity-trust.md +0 -77
- package/standard-skills/venture-flywheel/references/SPEC-phase0-state-events.md +0 -93
- package/standard-skills/venture-flywheel/schemas/capability-decision.schema.json +0 -13
- package/standard-skills/venture-flywheel/schemas/execution-event.schema.json +0 -44
- package/standard-skills/venture-flywheel/schemas/project-identity.schema.json +0 -32
- package/standard-skills/venture-flywheel/schemas/repository-trust.schema.json +0 -57
- package/standard-skills/venture-flywheel/schemas/run-transition.schema.json +0 -59
- package/standard-skills/venture-flywheel/state/execution-event.cjs +0 -191
- package/standard-skills/venture-flywheel/state/task-state-machine.cjs +0 -190
- package/standard-skills/web-lesen/SKILL.md +0 -73
- package/standard-skills/web-lesen/scripts/crawl_public.py +0 -379
- package/standard-skills/windows-mcp/SKILL.md +0 -19
- package/standard-skills/windows-mcp/references/runtime.md +0 -9
- package/telegram-plugin/DELIVERY.md +0 -36
- package/telegram-plugin/bin/telegram-approval-relay.cjs +0 -290
- package/telegram-plugin/bin/telegram-console-status-policy.cjs +0 -175
- package/telegram-plugin/bin/telegram-delivery-lifecycle.cjs +0 -125
- package/telegram-plugin/bin/telegram-direct-reply-policy.cjs +0 -48
- package/telegram-plugin/bin/telegram-launcher-status-queue.cjs +0 -122
- package/telegram-plugin/bin/telegram-private-conversation-policy.cjs +0 -186
- package/telegram-plugin/bin/telegram-remote-status-policy.cjs +0 -121
- package/telegram-plugin/bin/telegram-reply-parts.cjs +0 -149
- package/telegram-plugin/bin/telegram-text-chunk-policy.cjs +0 -63
- package/telegram-plugin/bin/telegram-typing-keepalive.cjs +0 -89
- package/telegram-plugin/compat/mcp-server-fa511cd1.mjs +0 -73825
- /package/{bin → scripts}/fix-node-pty-perms.js +0 -0
|
@@ -1,39 +1,189 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: translate-native
|
|
3
|
-
description: Translate, localize, rewrite,
|
|
3
|
+
description: Translate, localize, transcreate, rewrite, or proofread human-language content so it reads as if originally written by a native speaker in any requested language, locale, dialect, register, or script. Use for prose, UI copy, websites, documentation, subtitles, emails, marketing, agent-generated target text, JSON/YAML/XML/PO/ARB resource files, and every other translation task—including Swedish, Chinese, Catalan, Basque, Czech, minority languages, and low-resource languages. In one self-contained workflow, preserve meaning and protected syntax, reject grammatical-but-unnatural wording and translationese, and enforce native Unicode spelling, diacritics, alphabets, scripts, punctuation, and locale conventions.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Translate Native
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
## Mandatory host enforcement
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
When a host exposes the BLUN Language Gateway, every user-visible natural-language answer must pass through it before it can reach the user, a file, a commit, or a deployment. The host must set `task_kind: response` for an agent's own answer and `task_kind: translation` for every translation or localization output. Never bypass the gateway because the task is short, conversational, generated by another agent, or already appears fluent. A gateway `BLOCK`, missing receipt, stale receipt, edited target, wrong receipt purpose, or unavailable mandatory gateway blocks release.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
For an ordinary answer, call `release_response` with the complete final text, exact host-supplied language tag, and truthful nativeness and orthography attestations. For a translation, load this skill before drafting and call only `release_translation` with the complete source-target pair and all seven attestations. Never downgrade a translation to the response path or omit its source. The host—not the agent—must own task classification and expected language.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
The MCP server injects this policy in its initialization response and exposes a `translate-native` prompt for clients that support MCP prompts. That makes the workflow difficult to forget, but skills, prompts, and tool descriptions are not themselves non-bypassable. Production hosts must intercept candidate output outside the agent and invoke `integrations/language_gateway.py`, or an equivalent trusted adapter, in fail-closed mode. The signing key and gateway process must run outside the agent's writable sandbox for strong isolation. If the agent can read the key, replace the gateway, choose the task kind, or suppress the source, cryptographic receipts prove no meaningful separation.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
2. Native idiom: remove source-language syntax and translationese without changing meaning.
|
|
18
|
-
3. Register and audience: match locale, tone, formality, and product context.
|
|
19
|
-
4. Terminology and consistency: preserve protected names, commands, paths, placeholders, and repeated terms.
|
|
20
|
-
5. Orthography: use native script, diacritics, capitalization, punctuation, and typography.
|
|
21
|
-
6. Structure and integrity: preserve markup, keys, variables, links, code, and required formatting.
|
|
22
|
-
7. Independent release review: reread source and target as complete documents and attest only what was actually checked.
|
|
16
|
+
Version 6.2 and later production hosts should use the isolated guard service and verify-before-send adapters. The service—not the agent or delivery process—owns the signing key. Candidate streaming must be buffered until the complete two-field envelope is verified, and a service outage must block without local-key fallback. Content-free audit records may contain hashes and finding codes, but never source text, target text, release tokens, service tokens, or model reasoning.
|
|
23
17
|
|
|
24
|
-
|
|
18
|
+
For Claude Code, use the Version 6.3 authenticated loopback Streamable HTTP MCP together with the Version 6.64.0 `translate-native` plugin. The service survives client disconnects; the plugin injects mandatory session policy at `SessionStart` and repeats the exact release workflow for every child at `SubagentStart`. Require `Stop` and `SubagentStop` to consume a fresh service-signed one-time delivery grant bound to the canonical source and target hashes, exact language, task purpose, content policy, delivery channel, Claude session, service-authoritative current session-start epoch, agent identity, guard version, and current service boot. Accept Claude's documented `session_id` and optional `agent_id` only as non-empty, NUL-free strings; never coerce malformed hook identities into a grant namespace. Route `SubagentStop` through its dedicated hook mode, require its explicit `agent_id`, forbid `agent_id` on the main-thread `Stop` route, and reject a route/event mismatch before reading protected state so neither boundary can address the other's grant namespace. After an isolated-service restart, recover a missing session epoch only while authorizing a freshly verified release receipt; never recover during grant consumption or replace a different current epoch. Rotate the owner-only random epoch on every startup, resume, clear, compaction, fork, or `StopFailure` event; register its hash with the isolated service before writing the local marker, reject reused, missing, or unsafe epochs, and never allow a copied local grant record plus its old marker to authorize output. On `StopFailure`, remove the old local marker first, emit no error or candidate, keep other sessions isolated, and remain fail-closed until `SessionStart` if service registration or local replacement fails. On `SessionEnd`, remove the exact session's local epoch and grants first, then compare-and-swap only its still-current service epoch to an undisclosed tombstone within the cleanup budget; emit nothing, preserve parallel sessions, reject delayed retirement after a newer start, and require a fresh `SessionStart` before delivery can resume. Never let a subagent rely on the parent's grant or treat startup context as enforcement; the service-backed stop boundary remains authoritative. Persist only the source hash in hook state, never the complete translation source. Invalidate every unconsumed grant for the current session at `UserPromptSubmit`, before the new turn is processed, and again when `StopFailure` reports that the turn ended on an API error; never let a grant survive an interruption or failed turn into a later attempt, never emit the error or candidate from this cleanup, and never invalidate another labeled concurrent session. When `release_response` or `release_translation` fails at transport level, use `PostToolUseFailure` to invalidate the earlier grant for that exact session and agent before requesting a reconnect and fresh release. When the tool returns without a usable receipt, the isolated verifier rejects it, authorization becomes unavailable, or protected state cannot be replaced, invalidate the exact record both before the attempt and again on rejection so concurrent hooks cannot leave stale authority behind. Preserve unrelated agents and sessions, and block if protected state cannot be cleared. Discard structurally valid grant records created before Version 6.18 when they lack the session epoch required for safe resume isolation. Classify readable Morse runs of at least three separated valid letter codes using both dots and dashes, plus the exact bounded compact SOS prosign, as natural language; accept literal, HTML-encoded, standard typographic, punctuation-wrapped, and emoji-adjacent forms while retaining short decorative and incomplete-signal compatibility. Classify contiguous multi-symbol Unicode Roman numeral runs as natural language only when compatibility normalization cannot parse them as a non-increasing additive/subtractive Roman number; retain genuine numeric and isolated-symbol compatibility. Require Anthropic's documented `stop_hook_active` field to be an exact boolean on both `Stop` and `SubagentStop`; terminate malformed values with `continue: false` before reading or consuming any protected grant state. Give Claude one protected correction attempt after an invalid stop; if `stop_hook_active` is already true and the corrected answer is still unverified, terminate processing with `continue: false` instead of entering the client's finite block loop. A newly released exact answer may still pass during that correction attempt. Apply the same rule to `SubagentStop`. Keep the operating-system health monitor enabled so it proves an audit-free release/signature/tamper round trip, executes a real Swedish Unicode MCP tool call, checks the enrolled Claude plugin cache every minute, repairs one ordered dependency pass, applies persistent exponential backoff after repeated repair failures, and remains fail-closed during recovery. Never steal the shared maintenance lock from a live owner solely because it exceeds the stale-age threshold; bind new locks to the operating-system process-start identity so a reused numeric PID cannot preserve a crashed owner, recover only a confirmed dead, mismatched-generation, or untrusted old owner, preserve ambiguous and legacy live owners, and compare the exact file identity again before removing or releasing a lock. Never auto-install a missing plugin; enroll only an observed installation. Before executing candidate code, require the active repository to have a valid completely clean `HEAD`, including untracked paths; recheck the identical clean revision before fetch and again after fetch immediately before fast-forward, then require the exact tested revision and a clean checkout immediately after cutover and after post-update tests before any runtime activation. Never stash or delete local work; use only `reset --keep` to undo a cutover or post-test race with uncommitted concurrent changes, and never reset or automatically execute an independently advanced `HEAD`. Strictly validate the clean tested candidate before changing the active repository or either persistent runtime, refresh only the trusted marketplace, and require its publicly advertised version to equal the candidate version. Permit the cutover only after that preflight succeeds without changing the installed plugin cache; then apply the official user-scope plugin update and verify enabled state, load errors, and the exact installed version through Claude's public CLI. Remain degraded on every mismatch or process loss, preserve the active runtime when preflight fails, and require `/reload-plugins` or a new session before treating downloaded hooks as loaded. When signed-commit policy is enabled in the caller, active updater policy, or rollback-paused policy, combine those requirements monotonically and verify the exact update or rollback commit before test discovery or any other repository-owned code executes. Reject symbolic links, special files, oversized input, malformed JSON, and invalid stored updater field types fail-closed on every public updater path; write policy JSON only through unpredictable owner-only atomic temporary files. When enabling automatic updates again, preserve any active or rollback-paused signature requirement; lower it only through an explicit disable followed by a new enable. For emergency recovery, use only the installer's tested `rollback` command: it accepts the updater-recorded ancestor, requires the same completely clean exact `HEAD` after preflight and the clean exact target after cutover, after post-rollback tests, and again after runtime and Claude-cache probes before pausing updates, preserves uncommitted race-time bytes with `reset --keep`, never resets an independent commit, preserves signature policy, requires an already matching Claude cache, probes restarted runtimes, and pauses automatic updates after success. Portable receipt verification must only read an existing owner-only key; it must never create, replace, or repair signing state. An advertised tool list, heartbeat, successful tool call, or locally forged hook record alone is insufficient. Do not edit the text after release, reuse a prior grant, relabel a grant across source, locale, purpose, content policy, or session epoch, or fall back to an unguarded response when the HTTP MCP or isolated guard is unavailable.
|
|
25
19
|
|
|
26
|
-
|
|
20
|
+
For titles, meta descriptions, and UI strings, pass the exact `content_type`. A short result with insufficient deterministic evidence returns `REVIEW_REQUIRED`, not `PASS`. `short_text_reviewed` is compatibility metadata, not proof: the caller must never use it to override a finding, and the guard does not allow it to suppress measurable ASCII-folding pressure. Genuine independence requires a host-controlled gateway or reviewer outside the releasing agent's authority. The receipt binds the review flag and content type. Transport-only BOM and CRLF/LF differences are canonicalized; mojibake and character changes are never canonicalized away.
|
|
27
21
|
|
|
28
|
-
|
|
22
|
+
Do not treat German `ss` as deterministic evidence of ASCII folding. It is native spelling in many words and requires lexical plus locale context to distinguish it from `ß`. The measurable German folding-pressure rule therefore covers `ae`, `oe`, and `ue`; leave `ss`/`ß` ambiguity to a locale-aware dictionary or native reviewer.
|
|
29
23
|
|
|
30
|
-
- the
|
|
31
|
-
- the exact language tag and content type;
|
|
32
|
-
- truthful attestations for all seven passes;
|
|
33
|
-
- `short_text_reviewed: true` only after an independent native review of a short UI string, title, or metadata field.
|
|
24
|
+
Translate meaning, not word order. Re-author the message so a native speaker would believe it was written in the target language from the beginning, while preserving every source claim and constraint.
|
|
34
25
|
|
|
35
|
-
|
|
26
|
+
## Enforce the release gate
|
|
36
27
|
|
|
37
|
-
|
|
28
|
+
When the `blun-language-guard` MCP server is available, call `release_translation` after the seven-pass quality gate and before delivering any translation. Supply the complete source, complete target, exact language tag, and seven truthful pass attestations. Delivery is allowed only when the server returns `release_allowed: true` and a release token for that exact source-target pair.
|
|
38
29
|
|
|
39
|
-
|
|
30
|
+
Never invent, reuse, alter, or expose a release token. If the gate returns `BLOCK`, correct the target and run it again. If the MCP server is unavailable, run the bundled structural and orthography guards directly. Fail closed for publication-grade or structured work; for ordinary conversational translation, disclose that the enforced MCP validation was unavailable.
|
|
31
|
+
|
|
32
|
+
The MCP gate enforces execution discipline and deterministic checks. Version 6 issues a cryptographically signed, purpose-bound receipt for either an ordinary response or a translation. It binds the exact target, locale, task purpose, guard version, issue time, expiry, and the complete source for translations. Verify it with `verify_release_token` or the portable pre-output hook; never trust a token based on its prefix or appearance. The receipt proves process integrity, not native fluency.
|
|
33
|
+
|
|
34
|
+
When a project glossary is provided, pass it to the gate and resolve every confirmed terminology finding. For publication-grade work, use separate review perspectives: a target-only native reviewer first, then a source-aware fidelity reviewer. A creator must not silently certify its own first draft.
|
|
35
|
+
|
|
36
|
+
## Run one combined release gate
|
|
37
|
+
|
|
38
|
+
Treat native wording and native orthography as one inseparable workflow. Do not rely on a second skill being installed, selected, or implicitly invoked. This skill itself must enforce both:
|
|
39
|
+
|
|
40
|
+
1. **Native language:** syntax, collocations, information flow, terminology, register, rhythm, and idiom must read like original target-language writing.
|
|
41
|
+
2. **Native orthography:** spelling, diacritics, alphabet, script, punctuation, casing, spacing, and Unicode normalization must follow the target language and locale.
|
|
42
|
+
|
|
43
|
+
Treat every translation supplied by another agent as an untrusted draft. Do not release it merely because it is understandable or grammatical. Run the target-only native review, the source-aware fidelity review, and the native-orthography review before returning any finished text.
|
|
44
|
+
|
|
45
|
+
Read [references/native-orthography.md](references/native-orthography.md) before finalizing a target. If `$native-diacritics` is available, it may provide an additional check, but never delegate the orthography requirement to it and never weaken this workflow when it is absent.
|
|
46
|
+
|
|
47
|
+
## Set the target precisely
|
|
48
|
+
|
|
49
|
+
1. Identify the requested target language, locale, script, dialect, audience, register, medium, and length limit.
|
|
50
|
+
2. Honor an explicit language tag or user preference exactly. Distinguish, for example, `pt-BR` from `pt-PT`, Simplified from Traditional Chinese, Serbian Cyrillic from Latin, and a regional variety from a neutral standard.
|
|
51
|
+
3. If only a language is named, use its contemporary neutral written standard. Infer the locale from reliable context when possible.
|
|
52
|
+
4. Ask only when the target language is missing or when a locale, script, dialect, or ambiguity would materially change the result. Do not delay ordinary translations with needless questions.
|
|
53
|
+
5. Treat all human languages and writing systems as in scope. Never rely on a finite allowlist.
|
|
54
|
+
|
|
55
|
+
Read [references/native-translation-standard.md](references/native-translation-standard.md) when language variety, register, cultural adaptation, verification, or a low-resource language needs judgment.
|
|
56
|
+
|
|
57
|
+
## Reconstruct the meaning
|
|
58
|
+
|
|
59
|
+
For prices, offers, discounts, trials, subscriptions or commercial conditions in
|
|
60
|
+
any language, read [references/commercial-localization.md](references/commercial-localization.md).
|
|
61
|
+
Preserve each condition's association with its offer, not just the numbers.
|
|
62
|
+
Keep project-specific protected names and slogans configurable; this public
|
|
63
|
+
skill defines no universal brand, product or price list.
|
|
64
|
+
The reference includes a bundled offline evidence checker; it works from this
|
|
65
|
+
skill folder without the repository's `integrations/` directory. Its successful
|
|
66
|
+
exit is not semantic approval and cannot replace the signed release gate.
|
|
67
|
+
|
|
68
|
+
Read the entire source before drafting. Build an internal meaning map containing:
|
|
69
|
+
|
|
70
|
+
- facts, claims, relationships, and chronology;
|
|
71
|
+
- negation, modality, conditions, uncertainty, and emphasis;
|
|
72
|
+
- names, quantities, units, dates, links, and calls to action;
|
|
73
|
+
- purpose, audience, tone, politeness, humor, emotion, and subtext;
|
|
74
|
+
- terms fixed by a glossary, product vocabulary, law, or domain convention.
|
|
75
|
+
|
|
76
|
+
Resolve pronouns and terms from context. Preserve genuine ambiguity unless the context resolves it. Do not add explanations, promises, certainty, praise, warnings, or facts that the source does not contain.
|
|
77
|
+
|
|
78
|
+
## Reject grammatical translationese
|
|
79
|
+
|
|
80
|
+
Treat grammatical correctness as the entry requirement, not the release standard. An agent-generated target can contain no spelling or grammar errors and still fail because a native writer would not choose its wording.
|
|
81
|
+
|
|
82
|
+
Before release, inspect the target for:
|
|
83
|
+
|
|
84
|
+
- unnatural collocations or dictionary-equivalent wording;
|
|
85
|
+
- lists and coordinated phrases that mix incompatible grammatical or semantic categories;
|
|
86
|
+
- source-language clause order, emphasis, metaphors, discourse markers, or unnecessary borrowings;
|
|
87
|
+
- generic AI phrases that sound fluent but remain vague, padded, or less precise than the intended meaning;
|
|
88
|
+
- inconsistent register, terminology, directness, or product voice across the paragraph.
|
|
89
|
+
|
|
90
|
+
Classify a phrase as a major defect when a native editor would recast it for ordinary publication even though readers can understand it. Do not repair such defects with isolated synonym swaps. Recover the intended meaning, rewrite the complete clause or paragraph in the target language, and then rerun the fidelity pass.
|
|
91
|
+
|
|
92
|
+
Read [references/translationese-review.md](references/translationese-review.md) when reviewing an existing translation, agent-written copy, product or marketing prose, or any target that is grammatical but still feels translated.
|
|
93
|
+
|
|
94
|
+
## Separate creation from judgment
|
|
95
|
+
|
|
96
|
+
Use two deliberately different review perspectives. Do not collapse them into one vague reread.
|
|
97
|
+
|
|
98
|
+
1. **Native pass:** Draft from the meaning map rather than translating sentence by sentence. Then hide the source and read only the target as original writing. Remove unnatural syntax, collocations, category mixing, unnecessary borrowings, vague AI filler, rhythm, repetition, discourse markers, politeness, and medium-inappropriate wording. If the target passes only because the source wording is still visible, it fails.
|
|
99
|
+
2. **Fidelity pass:** Compare the revised target against the complete source. Restore anything omitted and remove anything added. Recheck negation, modality, quantities, causality, uncertainty, names, terminology, and calls to action.
|
|
100
|
+
3. **Integrity pass:** Verify protected syntax and native orthography only after the wording is stable.
|
|
101
|
+
|
|
102
|
+
For consequential, publication-grade, long-form, or linguistically uncertain work, use an independent reviewer when another agent or reviewer is available. Give it the source, candidate target, target specification, and the defect rubric—never the intended answer. Ask for defects rather than a replacement translation, revise the candidate, then rerun both passes.
|
|
103
|
+
|
|
104
|
+
Read [references/evaluation-protocol.md](references/evaluation-protocol.md) for the blocking defect classes, independent-review contract, confidence routing, and long-document procedure.
|
|
105
|
+
|
|
106
|
+
## Re-author natively
|
|
107
|
+
|
|
108
|
+
Put the source sentence structure aside after understanding it. Express the same meaning with native syntax, collocations, information flow, rhythm, idiom, punctuation, and level of directness.
|
|
109
|
+
|
|
110
|
+
- Prefer what a native writer would naturally say over a dictionary-equivalent phrase.
|
|
111
|
+
- Replace calques and source-language discourse patterns with target-language conventions.
|
|
112
|
+
- Match the audience and medium: support reply, legal notice, product UI, conversation, documentation, marketing, or literature.
|
|
113
|
+
- Preserve intentional code-switching, names, trademarks, and established technical terms.
|
|
114
|
+
- Avoid bland translationese, inflated marketing language, generic AI filler, and vague claims such as “in a smart way” when the intended operation can be stated precisely.
|
|
115
|
+
- Use native script and Unicode characters. Never strip accents or transliterate unless asked or technically required.
|
|
116
|
+
- Run the built-in orthography gate from [native-orthography.md](references/native-orthography.md). Correct every confirmed spelling, diacritic, alphabet, script, punctuation, spacing, casing, or Unicode defect before delivery.
|
|
117
|
+
|
|
118
|
+
Default to faithful native translation. Localize measurements, formats, examples, or cultural references only when the task or medium calls for it. Transcreate more freely only when asked or when preserving communicative effect clearly requires it; never change factual claims silently.
|
|
119
|
+
|
|
120
|
+
## Protect structured content
|
|
121
|
+
|
|
122
|
+
Treat i18n files as containers, not as permission to write robotic i18n language. Translate every user-visible value natively while preserving the container exactly.
|
|
123
|
+
|
|
124
|
+
- Preserve keys, hierarchy, ordering when significant, types, escaping, markup, links, code, placeholders, ICU plural/select logic, and interpolation syntax.
|
|
125
|
+
- Inspect neighboring entries and all branches before choosing terminology.
|
|
126
|
+
- Translate each plural, gender, and select branch as a complete native utterance; do not mechanically reuse the source grammar.
|
|
127
|
+
- Obey UI length, capitalization, and platform constraints without dropping meaning.
|
|
128
|
+
- Never translate variable names, enum values, identifiers, or program syntax unless explicitly requested.
|
|
129
|
+
|
|
130
|
+
Read [references/structured-content.md](references/structured-content.md) before editing JSON, YAML, XML, PO, ARB, Android, Apple strings, ICU MessageFormat, Markdown containing code, or HTML.
|
|
131
|
+
|
|
132
|
+
After editing a source/target pair, run:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
python3 scripts/translation_guard.py SOURCE TARGET
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
The guard also measures linguistic volume and segment coverage and blocks targets that remain identical to the source. Compare human-language segments in structured formats and treat a plain-text input as one segment. Block an untranslated value even when the rest of the file changed or values were reordered. Keep JSON alignment independent of property order; check identity across the complete target segment set in other formats. Never grant copyright or rights notices an automatic fixed-content exemption. Block every unchanged copyright-marked segment, including one below the normal segment threshold, and route a legitimate fixed legal line to explicit human handling outside the automatic release gate. Permit short shared product names such as `BLUN King` when they remain below the measured identity threshold. Treat a volume, segment-count, source-identity, or `unchanged-linguistic-segment` failure as blocking. Repeat the unconditional identity, structured-segment identity, and auto-detected volume checks in mandatory MCP `release_translation`; never let caller attestations suppress them. Never describe exit code `0` as proof that a translation is complete, faithful, or native: it proves only the deterministic structure, protected-token, identity, volume, and Unicode checks that actually ran.
|
|
139
|
+
|
|
140
|
+
Inspect the complete diagnostic output, not only the process return code. Confirm that a negative regression failed for the intended finding. For `translation_guard.py`, exit code `1` means evaluated content was blocked; exit code `2` means the input could not be read. `cannot read file` means the test input was not evaluated and must never be reported as proof that an identity, structure, or language rule fired.
|
|
141
|
+
|
|
142
|
+
Use `--format json` for JSON regardless of the file suffix. Treat a nonzero exit as a blocking structural or protected-token defect and fix it before delivery.
|
|
143
|
+
|
|
144
|
+
Use `--format html` for HTML fragments or documents. It permits native translation of linguistic attributes and recognized linguistic metadata while protecting technical metadata, structure, scripts, styles, links, code, and placeholders. The guard also supports `xml`, `po`, `strings`, and `subtitle`; auto-detection covers XML/XLIFF/Android, PO/POT, Apple strings, SRT, VTT, and ASS. ARB uses the JSON guard.
|
|
145
|
+
|
|
146
|
+
For every generated or edited UTF-8 target file, also run the bundled orthography linter:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
python3 scripts/check_diacritics.py --language TARGET_LANGUAGE TARGET
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Use a supported language code when known, `auto` for ordinary single-language prose, or `all` for deliberately mixed Latin-script samples. Inspect every finding and correct each real violation. A clean linter result is not proof of correct orthography; the mandatory language-aware gate still covers all languages and writing systems beyond the linter's heuristic patterns.
|
|
153
|
+
|
|
154
|
+
## Maintain long-document coherence
|
|
155
|
+
|
|
156
|
+
Before translating a long document, establish a compact translation brief containing the exact locale and script, audience, form of address, voice, tense policy, glossary, names, product terms, units, and formatting rules. Translate in context-aware sections with enough neighboring material to resolve references. After all sections are complete, run a document-level pass for terminology drift, pronouns, headings, cross-references, narrative voice, repeated phrases, and contradictions. Never judge a long translation only one chunk at a time.
|
|
157
|
+
|
|
158
|
+
## Verify when fluency is uncertain
|
|
159
|
+
|
|
160
|
+
Never bluff native competence. For an unfamiliar, endangered, disputed, historical, or low-resource language variety:
|
|
161
|
+
|
|
162
|
+
1. Confirm the exact language tag, script, and requested standard.
|
|
163
|
+
2. Prefer community, academy, government, or native-edited sources for grammar and contemporary usage.
|
|
164
|
+
3. Use Unicode CLDR for locale conventions and exemplar characters; use a curated monolingual corpus for usage; use parallel corpora only as supporting evidence.
|
|
165
|
+
4. Treat FLORES+ as an evaluation reference, not training material. Treat OPUS and open web corpora as noisy evidence that may contain literal translations or bad alignments.
|
|
166
|
+
5. Cross-check important wording in more than one independent source when tools permit.
|
|
167
|
+
6. State a material uncertainty or ask for a native review when reliable evidence is insufficient. Do not invent a dialect form.
|
|
168
|
+
|
|
169
|
+
## Run the seven-pass quality gate
|
|
170
|
+
|
|
171
|
+
Before returning the result, silently perform every pass:
|
|
172
|
+
|
|
173
|
+
1. **Meaning:** every claim, relationship, condition, and implication remains equivalent.
|
|
174
|
+
2. **Completeness:** nothing is omitted, duplicated, or added.
|
|
175
|
+
3. **Precision:** negation, modality, numbers, units, entities, terminology, and ambiguity are correct.
|
|
176
|
+
4. **Nativeness:** no calque, source syntax, unnatural collocation, category mixing, unnecessary borrowing, generic AI filler, or grammatical-but-translated wording remains.
|
|
177
|
+
5. **Fit:** locale, script, register, tone, audience, and medium are consistent.
|
|
178
|
+
6. **Integrity:** placeholders, keys, links, markup, code, escapes, and file structure are intact.
|
|
179
|
+
7. **Orthography:** spelling, diacritics, casing, punctuation, spacing, and Unicode normalization are native and correct.
|
|
180
|
+
|
|
181
|
+
Any meaning, completeness, precision, integrity, or major nativeness defect blocks delivery. “Understandable” and “grammatically correct” are never sufficient release arguments. If a pass fails, revise and repeat all affected passes. Do not expose internal scores or review notes unless the user asks.
|
|
182
|
+
|
|
183
|
+
Do not output a raw first draft as the finished translation. Release only after both the native-language gate and native-orthography gate pass. A clean structural script result proves neither natural wording nor correct language-specific spelling.
|
|
184
|
+
|
|
185
|
+
## Return the result cleanly
|
|
186
|
+
|
|
187
|
+
Return only the finished translation by default. Preserve the user's requested structure. Do not prepend “Translation,” explain choices, romanize the text, or repeat the source unless asked.
|
|
188
|
+
|
|
189
|
+
For legal, medical, safety-critical, contractual, or publication-grade material, keep the translation conservative, mark consequential ambiguity, and recommend qualified native review where appropriate. Never hide uncertainty behind fluent prose.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
6.
|
|
1
|
+
6.64.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Translate Native"
|
|
3
|
+
short_description: "Native Übersetzungen mit verpflichtendem Gate"
|
|
4
|
+
default_prompt: "Use $translate-native to create a native, meaning-faithful translation with correct Unicode and release it only through the mandatory translation gate."
|
|
5
|
+
icon_small: "./assets/icon.svg"
|
|
6
|
+
icon_large: "./assets/icon.svg"
|
|
7
|
+
policy:
|
|
8
|
+
products:
|
|
9
|
+
- "chatgpt"
|
|
10
|
+
- "codex"
|
|
11
|
+
- "api"
|
|
12
|
+
- "atlas"
|
|
13
|
+
allow_implicit_invocation: true
|
|
14
|
+
dependencies:
|
|
15
|
+
tools:
|
|
16
|
+
- type: "mcp"
|
|
17
|
+
value: "blun-language-guard"
|
|
18
|
+
description: "Mandatory native-orthography gate for agent responses and translations"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M19.58 4.38996C18.05 2.86996 15.68 2.88996 14.18 4.38996L5.26999 13.33C4.25999 14.34 3.84999 14.92 3.59999 16.26L3.06999 19.56C2.88999 20.47 3.50999 21.09 4.43999 20.93L7.74999 20.39C9.06999 20.18 9.64999 19.76 10.66 18.75L19.58 9.82996C21.1 8.30996 21.12 5.93996 19.58 4.40996V4.38996Z" fill="#FEBD08"/>
|
|
3
|
+
<path d="M19.58 9.81997C21.1 8.29997 21.12 5.92997 19.58 4.39997C18.05 2.87997 15.68 2.89997 14.18 4.39997L13.77 4.80997L19.18 10.22L19.58 9.81997Z" fill="#FF928C"/>
|
|
4
|
+
<path d="M13.7694 4.81308L12.3552 6.22729L17.7646 11.6367L19.1788 10.2224L13.7694 4.81308Z" fill="#D9D9D9"/>
|
|
5
|
+
<path opacity="0.5" d="M12.36 6.22998L5.26998 13.34C4.25998 14.35 3.84998 14.93 3.59998 16.27L3.06998 19.57C2.97998 20.02 3.08998 20.4 3.32998 20.65L15.05 8.92998L12.36 6.22998Z" fill="white"/>
|
|
6
|
+
<path d="M4.60001 14.05C4.06001 14.69 3.79001 15.27 3.60001 16.26L3.51001 16.81L7.18001 20.48L7.75001 20.39C8.74001 20.23 9.31001 19.96 9.95001 19.41L4.60001 14.05Z" fill="#FFDDBC"/>
|
|
7
|
+
<path d="M3.50999 16.8101L3.06999 19.5601C2.88999 20.4701 3.50999 21.0901 4.43999 20.9301L7.17999 20.4801L3.50999 16.8101Z" fill="#4D4D4D"/>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# BLUN Code mandatory language release
|
|
2
|
+
|
|
3
|
+
## Security boundary
|
|
4
|
+
|
|
5
|
+
BLUN Code must treat model output as untrusted until the isolated Language Guard verifies the exact final envelope. The runtime must buffer model `text-delta` and `done` events, retain Telegram and HTTP credentials outside the agent process, and invoke a sender only with the verified `target_text`.
|
|
6
|
+
|
|
7
|
+
The only agent-owned final fields are:
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"target_text": "Natürlich ist das möglich.",
|
|
12
|
+
"release_token": "blg6.…"
|
|
13
|
+
}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
BLUN Code owns the task kind, exact language, complete translation source, content type, agent identity, and delivery channel. Unknown fields or an attempt to return these host fields blocks before delivery.
|
|
17
|
+
|
|
18
|
+
## Runtime sequence
|
|
19
|
+
|
|
20
|
+
1. The installer writes the named MCP entry to `~/.blun/mcp.json`, creates the service token, and starts the isolated guard service.
|
|
21
|
+
2. BLUN Code imports that named entry once into its encrypted MCP store without replacing existing MCP servers.
|
|
22
|
+
3. The host creates a structured route. Ordinary chat without a source defaults to `response`; a translation supplies `languageGuardSourceText` and `languageGuardLanguage`. Explicit `languageGuardTaskKind: translation` remains supported. A source with no explicit task kind selects translation; a source combined with explicit `response` blocks as contradictory metadata.
|
|
23
|
+
4. BLUN Code adds a mandatory instruction to the model turn and suppresses candidate text events.
|
|
24
|
+
5. The agent applies `translate-native` for translations, calls the correct release tool, and returns the strict envelope.
|
|
25
|
+
6. BLUN Code asks the isolated service to verify the exact text, purpose, source, language, content policy, and receipt.
|
|
26
|
+
7. Only a valid result becomes a renderer delta, desktop result, Telegram message, or another external response.
|
|
27
|
+
|
|
28
|
+
Errors, cancellations, approvals, and host-generated status messages are not model prose and may remain visible, but they must never interpolate an unverified candidate.
|
|
29
|
+
|
|
30
|
+
## Trusted metadata
|
|
31
|
+
|
|
32
|
+
The adapter accepts these host-owned fields in `meta`:
|
|
33
|
+
|
|
34
|
+
- `languageGuardTaskKind`: `response` or `translation`;
|
|
35
|
+
- `languageGuardLanguage`: exact BCP 47 language or locale;
|
|
36
|
+
- `languageGuardSourceText`: complete independently captured source for translations;
|
|
37
|
+
- `languageGuardContentType`: `prose`, `title`, `meta_description`, or `ui`.
|
|
38
|
+
|
|
39
|
+
Telegram may use the sender's `language_code` as the response language when no explicit session language is set. Desktop sessions fall back to the configured BLUN interface language. A product should expose an explicit conversation language when interface language and response language can differ.
|
|
40
|
+
|
|
41
|
+
Free-form prompt inspection is not an authority boundary. No regex or model classifier can prove that arbitrary text is or is not a translation request. A translation workflow therefore needs a structured UI or API route that supplies the source and target language. Until that route exists, the adapter instructs an agent not to execute a translation through the response path; high-assurance deployments should block ambiguous free-form translation requests at intake.
|
|
42
|
+
|
|
43
|
+
## Deployment levels
|
|
44
|
+
|
|
45
|
+
- Per-user autostart protects against accidental secret inheritance and forgotten tools.
|
|
46
|
+
- A separate service account or container protects the key from a hostile agent running as the desktop user.
|
|
47
|
+
- A remote signer additionally separates the host machine, but must use authenticated transport, replay limits, bounded requests, and the same content-free audit policy.
|
|
48
|
+
|
|
49
|
+
The automatic repository updater refreshes the skill, MCP server, service, and portable adapters. BLUN Code itself follows its own signed application update channel; updating one repository does not silently rewrite the other.
|
|
50
|
+
|
|
51
|
+
## BLUN adapter compatibility evidence
|
|
52
|
+
|
|
53
|
+
Claude `Stop`/`SubagentStop` payloads are not the BLUN adapter contract. BLUN
|
|
54
|
+
hosts use the `meta` fields above and return an `answer`/`reply` release envelope;
|
|
55
|
+
they must not invent Claude `stop_hook_active` or `agent_id` fields to satisfy
|
|
56
|
+
a different client's hook. Agent identity is supplied separately by the host.
|
|
57
|
+
|
|
58
|
+
Premortem: filtering the source based on an explicit task label could discard
|
|
59
|
+
translation evidence before the shared router sees it. Coercing malformed
|
|
60
|
+
metadata to strings could also turn invalid input into an apparently valid
|
|
61
|
+
request. The adapter now passes task and source unchanged into that router.
|
|
62
|
+
The regression first reproduced the downgrade, then verified its rejection,
|
|
63
|
+
source-based inference, exact source/locale forwarding and invalid-type rejection
|
|
64
|
+
for desktop and Telegram. Existing response and explicit-translation contracts
|
|
65
|
+
remain supported.
|
|
66
|
+
|
|
67
|
+
Run `node tests/blun_code_language_guard_test.js` for these adapter probes.
|
|
68
|
+
They use a simulated verification service, not a live King process or real
|
|
69
|
+
ExampleAgent session. Passing them does not establish compatibility with a particular
|
|
70
|
+
installed King build. Before deploying that build, capture its actual host
|
|
71
|
+
metadata and event/result shapes without credentials, replay them in an isolated
|
|
72
|
+
test, and verify normal responses, translation source/locale binding, cancelled
|
|
73
|
+
turns, streaming and service outages. Keep model text buffered and confirm that
|
|
74
|
+
no desktop/Telegram sender receives rejected text. Record the King and guard
|
|
75
|
+
revisions with the result; do not install or restart a live agent as part of
|
|
76
|
+
these repository tests.
|