{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../src/core/safety/effects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;;;;;GAOG;AAEH,qBAAa,sBAAuB,SAAQ,KAAK;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,YAAY,QAAQ,EAAE,MAAM,EAI3B;CACD;AAED,0FAA0F;AAC1F,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,UAAQ,GAAG,MAAM,EAAE,CAO7F;AAED,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAooB/D,CAAC","sourcesContent":["import type { AgentTool, ToolEffects } from \"@apholdings/jensen-agent-core\";\n\n/**\n * Production tool-effect registry and validation.\n *\n * Every built-in tool must declare its effects on the tool object (the\n * `effects` field). This module centralizes the canonical expectations and\n * provides a validation used both by diagnostics and by tests that fail when a\n * new production tool is added without effect metadata.\n */\n\nexport class UndeclaredEffectsError extends Error {\n\treadonly toolName: string;\n\tconstructor(toolName: string) {\n\t\tsuper(`tool '${toolName}' has no declared effects`);\n\t\tthis.name = \"UndeclaredEffectsError\";\n\t\tthis.toolName = toolName;\n\t}\n}\n\n/** Tools that a policy engine must always treat conservatively if effects are unknown. */\nexport const REQUIRES_EFFECTS = true;\n\n/**\n * Validate that every tool in the list declares effects. Returns the list of\n * undeclared tool names, or throws when `strict` is set.\n */\nexport function validateToolEffects<T extends AgentTool>(tools: T[], strict = false): string[] {\n\tconst undeclared: string[] = [];\n\tfor (const tool of tools) {\n\t\tif (!tool.effects) undeclared.push(tool.name);\n\t}\n\tif (strict && undeclared.length) throw new UndeclaredEffectsError(undeclared[0]);\n\treturn undeclared;\n}\n\n/** Canonical effect metadata for each built-in production tool. */\nexport const PRODUCTION_TOOL_EFFECTS: Record<string, ToolEffects> = {\n\tread: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tgrep: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tfind: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tls: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\ttodo_read: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"external\", resource: \"todo-runtime\" }],\n\t},\n\ttodo_write: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: true,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: false,\n\t\tscopes: [{ kind: \"external\", resource: \"todo-runtime\" }],\n\t},\n\ttodo_update: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: true,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: false,\n\t\tscopes: [{ kind: \"external\", resource: \"todo-runtime\" }],\n\t},\n\tmemory_write: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: true,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: false,\n\t\tscopes: [{ kind: \"external\", resource: \"memory\" }],\n\t},\n\tretrieve_evidence: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"external\", resource: \"evidence-archive\" }],\n\t},\n\tedit: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: true,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: true,\n\t\tparallelSafe: false,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\twrite: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: true,\n\t\tcreatesFiles: true,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: true,\n\t\tparallelSafe: false,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tbash: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: true,\n\t\tcreatesFiles: true,\n\t\tdeletesFiles: true,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: true,\n\t\tmutatesGit: true,\n\t\tmutatesExternalState: true,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: true,\n\t\trequiresExclusiveWorkspaceLease: true,\n\t\tparallelSafe: false,\n\t\tscopes: [{ kind: \"unknown\" }],\n\t},\n\tpowershell: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: true,\n\t\tcreatesFiles: true,\n\t\tdeletesFiles: true,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: true,\n\t\tmutatesGit: true,\n\t\tmutatesExternalState: true,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: true,\n\t\trequiresExclusiveWorkspaceLease: true,\n\t\tparallelSafe: false,\n\t\tscopes: [{ kind: \"unknown\" }],\n\t},\n\tprocess_manager: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: true,\n\t\tparallelSafe: false,\n\t\tscopes: [{ kind: \"process\" }],\n\t},\n\tweb_search: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: true,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"network\" }],\n\t},\n\tweb_fetch: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: true,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"network\" }],\n\t},\n\tdeep_research: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: true,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"network\" }],\n\t},\n\tweb_research_status: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [],\n\t},\n\t// Workspace intelligence (1.7.0)\n\tworkspace_search: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tworkspace_search_lexical: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tworkspace_search_semantic: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tworkspace_search_symbols: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tworkspace_retrieval_status: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tworkspace_index_refresh: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: true,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: false,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\t// Language Server Protocol (LSP) tools — all read-only / parallel-safe.\n\tlsp_definition: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tlsp_references: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tlsp_implementations: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tlsp_hover: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tlsp_diagnostics: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tlsp_document_symbols: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tlsp_workspace_symbols: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tlsp_rename_preview: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\tlsp_status: {\n\t\treadsWorkspace: true,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"workspace\" }],\n\t},\n\t// Background-job registry tools — process lifecycle, mutating-ish, serial.\n\tjob_start: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: true,\n\t\tparallelSafe: false,\n\t\tscopes: [{ kind: \"process\" }],\n\t},\n\tjob_status: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"process\" }],\n\t},\n\tjob_list: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"process\" }],\n\t},\n\tjob_logs: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: false,\n\t\tparallelSafe: true,\n\t\tscopes: [{ kind: \"process\" }],\n\t},\n\tjob_stop: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: true,\n\t\tparallelSafe: false,\n\t\tscopes: [{ kind: \"process\" }],\n\t},\n\tjob_restart: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: true,\n\t\tstartsPersistentProcesses: true,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: true,\n\t\tparallelSafe: false,\n\t\tscopes: [{ kind: \"process\" }],\n\t},\n\tjob_adopt: {\n\t\treadsWorkspace: false,\n\t\twritesWorkspace: false,\n\t\tcreatesFiles: false,\n\t\tdeletesFiles: false,\n\t\texecutesProcesses: false,\n\t\tstartsPersistentProcesses: false,\n\t\taccessesNetwork: false,\n\t\tmutatesGit: false,\n\t\tmutatesExternalState: false,\n\t\thandlesSecrets: false,\n\t\tpotentiallyDestructive: false,\n\t\trequiresExclusiveWorkspaceLease: true,\n\t\tparallelSafe: false,\n\t\tscopes: [{ kind: \"process\" }],\n\t},\n};\n"]}