From b56614c814b904c224315a11f9686f0d47abd3d3 Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Wed, 12 Aug 2026 05:44:54 +0900 Subject: feat: revise sandbox usability around semantic policy and LPAC process trees Rewrite the specification and design vocabulary around User Sandbox Configuration, Environment Resolution, Executable Approval, Effective Sandbox Policy, and Windows Enforcement. Move the Internal Tool catalog to the design without treating its count as a requirement, and update README, implementation planning, traceability, audit history, prompts, and the Python skill. Introduce schema_version 1 profiles, workspaces, mounts, executable aliases, network modes, and resource presets. Add local override merging, resolution and approval stores with atomic user-only persistence, fail-closed fingerprints, localized diagnostics, and executable/sandbox management CLI commands. Change Windows execution to LPAC entry approval with inherited descendant confinement. Separate read and execute ACLs, preserve protected OS DACLs, apply Job process/memory/timeout limits to the tree, enforce WFP network modes, prevent credential environment inheritance, disable out-of-tree MSBuild reuse, and harden transactional ACL/recovery cleanup. Isolate planning prompts from execution instructions, reject split coding plans that cannot satisfy task-scoped evidence, preserve configured thinking, and prevent optional task_update failures from corrupting completion checks. Add and update configuration, resolution, approval, LPAC, descendant, readonly/development, Registry/COM, WFP, recovery, .NET/Python/PowerShell process-tree, and Operational E2E coverage. Publish reproducible bundles while preserving deployment-local configuration, prompts, skills, logs, state, approvals, and resolutions. --- config/locales/en.json | 28 +++++++++++++++++++++++++++- config/locales/ja.json | 28 +++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 2 deletions(-) (limited to 'config/locales') diff --git a/config/locales/en.json b/config/locales/en.json index 4330cb7..3e9a5fa 100644 --- a/config/locales/en.json +++ b/config/locales/en.json @@ -26,5 +26,31 @@ "runtime.policy_denied": "The sandbox policy denied the requested operation (code={code}, path={path}, required_permission={permission}). Resolution: {resolution}", "runtime.policy_replan_exhausted": "The sandbox policy denial remained unresolved after {message} replans.", "runtime.policy_repeated": "The same sandbox policy denial occurred again, so replanning was stopped.", - "runtime.replan_unchanged": "Replanning did not change the incomplete task plan." + "runtime.replan_unchanged": "Replanning did not change the incomplete task plan.", + "runtime.policy_resolution.filesystem": "Review the Workspace or Mount and its required Filesystem Capability, then confirm the Sandbox Environment Resolution.", + "runtime.policy_resolution.process": "Use a configured Alias or an allowed Runtime Component or development Workspace Artifact; re-approve a changed Executable identity.", + "runtime.policy_resolution.network": "Review the selected Network access mode and endpoint list; the Agent cannot widen it during a Task.", + "runtime.policy_resolution.default": "Review the User Sandbox Configuration and confirmed Effective Sandbox Policy.", + "management.approval_diff": "Alias: {alias}\nClassification: {classification}\nResolved Path: {path}\nSHA-256: {sha256}\nRuntime Root: {runtime_root}", + "management.approve_prompt": "Approve this Executable Alias?", + "management.revoke_diff": "Revoke {alias}: {path}", + "management.revoke_prompt": "Revoke this Executable Alias?", + "management.sandbox_confirm_prompt": "Confirm this Sandbox Environment Resolution?", + "management.resolution_header": "Configuration: {config}\nFingerprint: {fingerprint}", + "management.confirmed": "Confirmed: {value}", + "management.yes": "yes", + "management.no": "no", + "management.ambiguous_candidates": "Multiple candidates were found. No candidate was selected; re-run with --path .", + "sandbox.error.resolution_unconfirmed": "The Sandbox Environment Resolution is not confirmed.", + "sandbox.error.resolution_unconfirmed.resolution": "Review sandbox resolve, then run sandbox confirm.", + "sandbox.error.resolution_changed": "The Sandbox Environment Resolution changed after confirmation.", + "sandbox.error.resolution_changed.resolution": "Review the changed Logical and Resolved Paths, then confirm again.", + "sandbox.error.approval_missing": "The Executable Alias is not approved: {target}", + "sandbox.error.approval_missing.resolution": "Resolve the Alias, review one candidate, and explicitly approve it.", + "sandbox.error.executable_resolution_changed": "The Executable Resolved Path changed: {target}", + "sandbox.error.executable_resolution_changed.resolution": "Verify the new identity and explicitly re-approve it.", + "sandbox.error.executable_hash_changed": "The Executable SHA-256 changed: {target}", + "sandbox.error.executable_hash_changed.resolution": "Verify the updated file and explicitly re-approve it.", + "sandbox.error.shell_unsupported": "The selected file is not a supported Shell: {target}", + "sandbox.error.shell_unsupported.resolution": "Select cmd.exe, powershell.exe, or pwsh.exe." } diff --git a/config/locales/ja.json b/config/locales/ja.json index c5a6931..7d51334 100644 --- a/config/locales/ja.json +++ b/config/locales/ja.json @@ -26,5 +26,31 @@ "runtime.policy_denied": "要求された操作はSandbox Policyにより拒否されました(code={code}、path={path}、必要権限={permission})。解決方法: {resolution}", "runtime.policy_replan_exhausted": "Sandbox Policyによる拒否を{message}回の再計画で解消できませんでした。", "runtime.policy_repeated": "同一のSandbox Policy拒否が再発したため、再計画を停止しました。", - "runtime.replan_unchanged": "再計画後も未完了のタスク計画が変更されませんでした。" + "runtime.replan_unchanged": "再計画後も未完了のタスク計画が変更されませんでした。", + "runtime.policy_resolution.filesystem": "WorkspaceまたはMountと必要なFilesystem Capabilityを確認し、Sandbox Environment Resolutionを再確認してください。", + "runtime.policy_resolution.process": "設定済みAlias、許可されたRuntime Component、またはdevelopment Workspace Artifactを使用し、identityが変わったExecutableは再承認してください。", + "runtime.policy_resolution.network": "Network access modeとendpoint一覧を確認してください。AgentはTask中に許可範囲を拡張できません。", + "runtime.policy_resolution.default": "User Sandbox Configurationと確認済みEffective Sandbox Policyを確認してください。", + "management.approval_diff": "Alias: {alias}\n分類: {classification}\n解決済みpath: {path}\nSHA-256: {sha256}\nRuntime Root: {runtime_root}", + "management.approve_prompt": "このExecutable Aliasを承認しますか?", + "management.revoke_diff": "承認取消 {alias}: {path}", + "management.revoke_prompt": "このExecutable Aliasの承認を取り消しますか?", + "management.sandbox_confirm_prompt": "このSandbox Environment Resolutionを確認済みにしますか?", + "management.resolution_header": "設定: {config}\nfingerprint: {fingerprint}", + "management.confirmed": "確認済み: {value}", + "management.yes": "はい", + "management.no": "いいえ", + "management.ambiguous_candidates": "複数の候補が見つかりました。自動選択していません。--path を指定して再実行してください。", + "sandbox.error.resolution_unconfirmed": "Sandbox Environment Resolutionが未確認です。", + "sandbox.error.resolution_unconfirmed.resolution": "sandbox resolveの差分を確認してからsandbox confirmを実行してください。", + "sandbox.error.resolution_changed": "確認後にSandbox Environment Resolutionが変更されました。", + "sandbox.error.resolution_changed.resolution": "Logical PathとResolved Pathの変更を確認してから、再度confirmしてください。", + "sandbox.error.approval_missing": "Executable Aliasが未承認です: {target}", + "sandbox.error.approval_missing.resolution": "Alias候補をresolveし、1つの候補を確認して明示的にapproveしてください。", + "sandbox.error.executable_resolution_changed": "ExecutableのResolved Pathが変更されました: {target}", + "sandbox.error.executable_resolution_changed.resolution": "新しいidentityを確認し、明示的に再承認してください。", + "sandbox.error.executable_hash_changed": "ExecutableのSHA-256が変更されました: {target}", + "sandbox.error.executable_hash_changed.resolution": "更新されたfileを確認し、明示的に再承認してください。", + "sandbox.error.shell_unsupported": "選択されたfileは対応Shellではありません: {target}", + "sandbox.error.shell_unsupported.resolution": "cmd.exe、powershell.exe、pwsh.exeのいずれかを選択してください。" } -- cgit v1.2.3