@sema-agent/core 7.54.1 → 7.55.0
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 +437 -0
- package/dist/agents/agent-transcript-tool.js +2 -1
- package/dist/agents/builtin-agents.d.ts +12 -14
- package/dist/agents/cc-peer-directory.d.ts +36 -0
- package/dist/agents/cc-peer-directory.js +138 -0
- package/dist/agents/cc-peer-wire.d.ts +105 -0
- package/dist/agents/cc-peer-wire.js +98 -0
- package/dist/agents/cc-uds-peer-channel.d.ts +40 -0
- package/dist/agents/cc-uds-peer-channel.js +457 -0
- package/dist/agents/cross-session-envelope.d.ts +4 -1
- package/dist/agents/cross-session-envelope.js +8 -1
- package/dist/agents/cross-session-judge.d.ts +2 -2
- package/dist/agents/list-agents-tool.js +2 -1
- package/dist/agents/observer.d.ts +4 -5
- package/dist/agents/observer.js +2 -1
- package/dist/agents/peer-admission.d.ts +6 -0
- package/dist/agents/peer-admission.js +4 -1
- package/dist/agents/peer-directory.d.ts +43 -9
- package/dist/agents/peer-directory.js +66 -23
- package/dist/agents/peer-notices.d.ts +1 -1
- package/dist/agents/peer-session-drain.d.ts +3 -1
- package/dist/agents/peer-session-drain.js +1 -0
- package/dist/agents/read-inbox-tool.js +2 -1
- package/dist/agents/retain-ledger.d.ts +1 -1
- package/dist/agents/roster-store.d.ts +1 -1
- package/dist/agents/send-message-tool.d.ts +10 -0
- package/dist/agents/send-message-tool.js +34 -5
- package/dist/agents/subagent.d.ts +34 -79
- package/dist/agents/subagent.js +45 -46
- package/dist/agents/tool-filter.d.ts +29 -46
- package/dist/agents/tool-filter.js +8 -31
- package/dist/agents/verify.d.ts +3 -3
- package/dist/brain/anthropic.js +14 -9
- package/dist/brain/errors.d.ts +15 -0
- package/dist/brain/errors.js +10 -0
- package/dist/brain/model-presets.d.ts +4 -4
- package/dist/brain/open-responses.js +15 -10
- package/dist/brain/openai.js +17 -12
- package/dist/brain/provider-dialect.d.ts +39 -3
- package/dist/brain/provider-dialect.js +28 -0
- package/dist/brain/reasoning.d.ts +1 -1
- package/dist/brain/request-params.d.ts +55 -5
- package/dist/brain/request-params.js +35 -3
- package/dist/brain/retry.d.ts +1 -1
- package/dist/brain/route-adjudicator.d.ts +15 -0
- package/dist/brain/route-adjudicator.js +15 -0
- package/dist/brain/stream-engine.js +6 -5
- package/dist/brain/stream-shared.d.ts +1 -1
- package/dist/core/advisor-verdict.d.ts +120 -0
- package/dist/core/advisor-verdict.js +92 -0
- package/dist/core/agent-definition.d.ts +7 -8
- package/dist/core/allow-entry.d.ts +49 -23
- package/dist/core/allow-entry.js +57 -32
- package/dist/core/allow-rule-shadow.d.ts +7 -0
- package/dist/core/approval-object.d.ts +2 -1
- package/dist/core/approval-object.js +6 -6
- package/dist/core/ask-origin.d.ts +63 -11
- package/dist/core/ask-origin.js +27 -5
- package/dist/core/ask-question.js +10 -4
- package/dist/core/auto-compaction.d.ts +11 -8
- package/dist/core/auto-compaction.js +4 -2
- package/dist/core/auto-mode-arming.d.ts +2 -2
- package/dist/core/auto-mode-defaults.d.ts +8 -8
- package/dist/core/auto-mode-prompt-assets.d.ts +3 -3
- package/dist/core/auto-mode-prompt.d.ts +1 -1
- package/dist/core/auto-mode.d.ts +17 -9
- package/dist/core/auto-mode.js +9 -6
- package/dist/core/background-agent-store.d.ts +3 -3
- package/dist/core/canonical-json.d.ts +1 -1
- package/dist/core/canonical-json.js +2 -2
- package/dist/core/checkpoint-requirements.d.ts +6 -3
- package/dist/core/checkpoint-requirements.js +4 -14
- package/dist/core/checkpoint-store.d.ts +80 -51
- package/dist/core/checkpoint-store.js +56 -74
- package/dist/core/child-clamp-seats.d.ts +6 -0
- package/dist/core/child-clamp-seats.js +3 -16
- package/dist/core/compliance.d.ts +2 -2
- package/dist/core/context-edit.d.ts +6 -7
- package/dist/core/cross-boundary-taint.d.ts +9 -3
- package/dist/core/cross-boundary-taint.js +5 -3
- package/dist/core/decision-receipt.js +2 -2
- package/dist/core/effective-path-target.d.ts +1 -1
- package/dist/core/engine-notice.d.ts +19 -5
- package/dist/core/exec-output-tail.d.ts +1 -1
- package/dist/core/file-history-retention.d.ts +1 -1
- package/dist/core/file-history-store.d.ts +59 -9
- package/dist/core/file-history-store.js +35 -17
- package/dist/core/gate-fold.js +3 -2
- package/dist/core/gate-lanes.js +12 -8
- package/dist/core/gate-outcome.d.ts +17 -4
- package/dist/core/gate-outcome.js +30 -0
- package/dist/core/governance-codes.d.ts +13 -3
- package/dist/core/governance-codes.js +10 -0
- package/dist/core/hands-band.d.ts +1 -1
- package/dist/core/hooks.d.ts +4 -4
- package/dist/core/host-target.d.ts +49 -0
- package/dist/core/host-target.js +59 -0
- package/dist/core/image-downsample.d.ts +1 -1
- package/dist/core/lsp-diagnostics.d.ts +4 -4
- package/dist/core/lsp.d.ts +3 -3
- package/dist/core/mailbox-store.d.ts +4 -0
- package/dist/core/mcp-connection-pool.d.ts +18 -2
- package/dist/core/mcp-connection-pool.js +53 -6
- package/dist/core/mcp-failure.d.ts +23 -4
- package/dist/core/mcp-failure.js +26 -11
- package/dist/core/mcp-listing-drift.d.ts +10 -0
- package/dist/core/mcp-listing-drift.js +6 -0
- package/dist/core/mcp-server-link.d.ts +173 -0
- package/dist/core/mcp-server-link.js +127 -0
- package/dist/core/mcp-server-spec.d.ts +4 -2
- package/dist/core/mcp-session-end.d.ts +26 -0
- package/dist/core/mcp-session-end.js +29 -0
- package/dist/core/mcp-startup-request.d.ts +17 -0
- package/dist/core/mcp-startup-request.js +17 -0
- package/dist/core/mcp.d.ts +13 -13
- package/dist/core/mcp.js +187 -162
- package/dist/core/media-byte-cap.d.ts +1 -1
- package/dist/core/memory-engine/engine.d.ts +9 -9
- package/dist/core/memory-engine/provenance-wording.d.ts +1 -1
- package/dist/core/memory-engine/tools.js +4 -1
- package/dist/core/mode-policy.d.ts +1 -1
- package/dist/core/namespaced-rule-name.d.ts +33 -7
- package/dist/core/namespaced-rule-name.js +39 -25
- package/dist/core/output-style.d.ts +1 -1
- package/dist/core/param-rule-reach.d.ts +15 -0
- package/dist/core/param-rule-reach.js +30 -0
- package/dist/core/parent-spec-seat.d.ts +8 -1
- package/dist/core/parent-spec-seat.js +4 -0
- package/dist/core/pause-registry.d.ts +16 -5
- package/dist/core/pause-registry.js +6 -2
- package/dist/core/peer-channel.d.ts +70 -0
- package/dist/core/peer-channel.js +1 -0
- package/dist/core/permission-rule-consent.d.ts +11 -5
- package/dist/core/permission-rule-consent.js +37 -30
- package/dist/core/permission-rule-model.d.ts +233 -64
- package/dist/core/permission-rule-model.js +384 -85
- package/dist/core/permission-rule-provider.d.ts +2 -1
- package/dist/core/permission-rule-store.d.ts +20 -25
- package/dist/core/permission-rule-store.js +1 -4
- package/dist/core/permission-rule-sync.d.ts +11 -2
- package/dist/core/permission-rule-sync.js +8 -1
- package/dist/core/permission-rules.d.ts +49 -11
- package/dist/core/permission-rules.js +123 -89
- package/dist/core/persisted-rule-arms.d.ts +4 -2
- package/dist/core/present-plan-tool.js +3 -1
- package/dist/core/protocol-naming.d.ts +2 -2
- package/dist/core/read-only-shell-table.d.ts +1 -1
- package/dist/core/read-only-shell.d.ts +1 -1
- package/dist/core/roles.d.ts +6 -2
- package/dist/core/roles.js +45 -44
- package/dist/core/rule-offer-read.d.ts +53 -0
- package/dist/core/rule-offer-read.js +146 -0
- package/dist/core/rule-owner.d.ts +46 -0
- package/dist/core/rule-owner.js +28 -0
- package/dist/core/runner/advisor-instructions.d.ts +70 -0
- package/dist/core/runner/advisor-instructions.js +61 -0
- package/dist/core/runner/advisor-tool.d.ts +33 -0
- package/dist/core/runner/advisor-tool.js +112 -0
- package/dist/core/runner/announce-once-ledger.d.ts +4 -26
- package/dist/core/runner/announce-once-ledger.js +14 -46
- package/dist/core/runner/approval-feedback.js +6 -3
- package/dist/core/runner/assemble-result.d.ts +1 -1
- package/dist/core/runner/caller-roster.d.ts +7 -0
- package/dist/core/runner/caller-roster.js +11 -0
- package/dist/core/runner/classifier-ladder.d.ts +27 -5
- package/dist/core/runner/classifier-ladder.js +12 -11
- package/dist/core/runner/compaction-restate.d.ts +10 -6
- package/dist/core/runner/compaction-restate.js +9 -3
- package/dist/core/runner/contracts.d.ts +13 -9
- package/dist/core/runner/conversation-segment.d.ts +28 -0
- package/dist/core/runner/conversation-segment.js +42 -0
- package/dist/core/runner/cross-boundary-lane.d.ts +6 -5
- package/dist/core/runner/cross-boundary-lane.js +26 -15
- package/dist/core/runner/decide-continuation.d.ts +7 -4
- package/dist/core/runner/decide-continuation.js +2 -2
- package/dist/core/runner/denial-limit-arms.d.ts +2 -2
- package/dist/core/runner/derived-route-fallback.d.ts +24 -24
- package/dist/core/runner/derived-route-fallback.js +9 -7
- package/dist/core/runner/gate-exit.d.ts +6 -0
- package/dist/core/runner/gate-exit.js +7 -2
- package/dist/core/runner/initial-run-state.js +1 -1
- package/dist/core/runner/permission-rule-lanes.d.ts +2 -2
- package/dist/core/runner/permission-rule-lanes.js +14 -7
- package/dist/core/runner/person-path-rows.js +1 -1
- package/dist/core/runner/prepare-advisor.d.ts +63 -0
- package/dist/core/runner/prepare-advisor.js +77 -0
- package/dist/core/runner/prepare-caps-and-workflow.js +1 -1
- package/dist/core/runner/prepare-config-doors.d.ts +6 -4
- package/dist/core/runner/prepare-config-doors.js +18 -12
- package/dist/core/runner/prepare-delegation-surface.d.ts +2 -2
- package/dist/core/runner/prepare-delegation-surface.js +1 -1
- package/dist/core/runner/prepare-file-history.js +39 -39
- package/dist/core/runner/prepare-gate-stations.d.ts +1 -4
- package/dist/core/runner/prepare-gate-stations.js +2 -7
- package/dist/core/runner/prepare-inherited-gate.d.ts +5 -4
- package/dist/core/runner/prepare-inherited-gate.js +3 -3
- package/dist/core/runner/prepare-park-ask.js +7 -7
- package/dist/core/runner/prepare-policy-chain.d.ts +1 -1
- package/dist/core/runner/prepare-policy-chain.js +4 -10
- package/dist/core/runner/prepare-project-context.d.ts +5 -2
- package/dist/core/runner/prepare-project-context.js +6 -3
- package/dist/core/runner/prepare-prompt-inputs.js +1 -1
- package/dist/core/runner/prepare-protocol-tools.d.ts +2 -2
- package/dist/core/runner/prepare-protocol-tools.js +3 -2
- package/dist/core/runner/prepare-safety-scan.d.ts +9 -12
- package/dist/core/runner/prepare-safety-scan.js +8 -6
- package/dist/core/runner/prepare-task.js +15 -18
- package/dist/core/runner/prepare-tool-disclosure-mount.js +6 -4
- package/dist/core/runner/prepare-wiring-manifest.d.ts +6 -3
- package/dist/core/runner/prepare-wiring-manifest.js +2 -2
- package/dist/core/runner/resume-policy-outcome.js +1 -1
- package/dist/core/runner/retired-runner-deps.js +1 -1
- package/dist/core/runner/run-attachment-seats.js +0 -1
- package/dist/core/runner/run-compaction-machinery.d.ts +1 -1
- package/dist/core/runner/run-compaction-machinery.js +2 -12
- package/dist/core/runner/run-git-lane.d.ts +1 -0
- package/dist/core/runner/run-harness-handlers.js +2 -3
- package/dist/core/runner/run-leg.js +13 -0
- package/dist/core/runner/run-settle-and-teardown.js +1 -1
- package/dist/core/runner/run-telemetry-and-budget-seats.js +1 -1
- package/dist/core/runner/run-turn-boundary.d.ts +1 -0
- package/dist/core/runner/run-turn-boundary.js +14 -12
- package/dist/core/runner/session-rule-policy.d.ts +22 -21
- package/dist/core/runner/session-rule-policy.js +13 -28
- package/dist/core/runner/side-call-account.d.ts +32 -8
- package/dist/core/runner/side-call-account.js +23 -1
- package/dist/core/runner/strict-output-schema.d.ts +1 -1
- package/dist/core/runner/sub-agent-deny-lists.js +4 -3
- package/dist/core/runner/synthetic-tools.d.ts +10 -13
- package/dist/core/runner/synthetic-tools.js +4 -2
- package/dist/core/runner/tool-disclosure.js +2 -1
- package/dist/core/runner/tool-face-overlay.d.ts +2 -1
- package/dist/core/runner/tool-face-overlay.js +17 -1
- package/dist/core/runner/tool-progress-lane.d.ts +2 -2
- package/dist/core/runner/tool-turn-repair-seat.d.ts +3 -2
- package/dist/core/runner/turn-attachments.d.ts +60 -67
- package/dist/core/runner-deps.d.ts +37 -37
- package/dist/core/runtime-caps.d.ts +4 -4
- package/dist/core/safety-merge-corpus.js +17 -1
- package/dist/core/same-plain-value.d.ts +40 -0
- package/dist/core/same-plain-value.js +49 -0
- package/dist/core/scheduler.d.ts +1 -1
- package/dist/core/sensitive-path-policy.d.ts +1 -1
- package/dist/core/sensitive-path-policy.js +1 -1
- package/dist/core/session-policy-store.d.ts +77 -22
- package/dist/core/session-policy-store.js +56 -14
- package/dist/core/session-reconcile.d.ts +2 -2
- package/dist/core/session-store.d.ts +80 -30
- package/dist/core/session-store.js +118 -76
- package/dist/core/session.d.ts +24 -46
- package/dist/core/shared-memory/tools.js +3 -1
- package/dist/core/shared-memory/types.d.ts +1 -1
- package/dist/core/side-query.d.ts +10 -0
- package/dist/core/side-query.js +5 -0
- package/dist/core/store-contracts/checkpoint-store-contract.js +29 -2
- package/dist/core/store-contracts/file-history-store-contract.js +43 -3
- package/dist/core/store-contracts/session-policy-store-contract.d.ts +7 -0
- package/dist/core/store-contracts/session-policy-store-contract.js +130 -0
- package/dist/core/store-contracts/session-repo-contract.js +125 -0
- package/dist/core/store-contracts/session-store-contract.d.ts +4 -7
- package/dist/core/store-contracts/session-store-contract.js +215 -41
- package/dist/core/store-contracts/workflow-journal-store-contract.js +26 -1
- package/dist/core/surrogate-safe-slice.d.ts +3 -3
- package/dist/core/task-event.d.ts +10 -4
- package/dist/core/task-notification.d.ts +3 -3
- package/dist/core/task-registry-agent.d.ts +4 -4
- package/dist/core/task-registry-shared.d.ts +4 -4
- package/dist/core/task-registry-shared.js +1 -0
- package/dist/core/task-registry.d.ts +4 -4
- package/dist/core/task-registry.js +3 -1
- package/dist/core/task-result.d.ts +3 -3
- package/dist/core/task-spec.d.ts +52 -52
- package/dist/core/task-stream.d.ts +6 -6
- package/dist/core/task-tool-shape.d.ts +4 -4
- package/dist/core/tighten-task-spec.d.ts +1 -1
- package/dist/core/tool-catalog-entries.d.ts +19 -2
- package/dist/core/tool-catalog-entries.js +57 -42
- package/dist/core/tool-conformance.js +1 -0
- package/dist/core/tool-errors.d.ts +2 -2
- package/dist/core/tool-face-reader.js +5 -3
- package/dist/core/tool-face.d.ts +21 -2
- package/dist/core/tool-face.js +1 -1
- package/dist/core/tool-model-gate.d.ts +3 -3
- package/dist/core/tool-name-aliases.d.ts +29 -8
- package/dist/core/tool-name-aliases.js +27 -3
- package/dist/core/tool-name-readings.d.ts +5 -8
- package/dist/core/tool-name-readings.js +1 -2
- package/dist/core/tool-policy.d.ts +24 -5
- package/dist/core/tool-policy.js +34 -10
- package/dist/core/tool-registry.d.ts +14 -7
- package/dist/core/tool-registry.js +17 -7
- package/dist/core/tool-result-store.js +2 -1
- package/dist/core/tool-roster.d.ts +47 -18
- package/dist/core/tool-roster.js +53 -32
- package/dist/core/tool-spec-members.js +1 -1
- package/dist/core/tool-spec.d.ts +35 -21
- package/dist/core/tools.js +3 -2
- package/dist/core/trace.d.ts +4 -0
- package/dist/core/untrusted-egress.d.ts +1 -1
- package/dist/core/untrusted-text.d.ts +1 -1
- package/dist/core/warm-resume.d.ts +1 -1
- package/dist/core/wiring-manifest.d.ts +49 -0
- package/dist/core/wiring-manifest.js +13 -5
- package/dist/core/workflow-journal-store.d.ts +62 -0
- package/dist/core/workflow-journal-store.js +77 -1
- package/dist/core/workflow-run-store.d.ts +6 -0
- package/dist/core/workflow-run-store.js +2 -0
- package/dist/engine/compaction/compaction.d.ts +9 -9
- package/dist/engine/execution-env/node-execution-env.d.ts +19 -5
- package/dist/engine/execution-env/node-execution-env.js +43 -22
- package/dist/engine/harness/agent-harness.d.ts +14 -8
- package/dist/engine/harness/agent-harness.js +33 -26
- package/dist/engine/harness/types.d.ts +29 -7
- package/dist/engine/harness/types.js +12 -1
- package/dist/engine/llm/types.d.ts +9 -9
- package/dist/engine/llm/validation.d.ts +4 -1
- package/dist/engine/llm/validation.js +13 -1
- package/dist/engine/loop/agent-loop.d.ts +1 -1
- package/dist/engine/loop/agent-loop.js +10 -8
- package/dist/engine/loop/types.d.ts +15 -13
- package/dist/engine/lsp/node-lsp-manager.d.ts +2 -2
- package/dist/engine/session/memory-repo.d.ts +10 -11
- package/dist/engine/session/memory-repo.js +13 -8
- package/dist/engine/session/parent-chain-guard.d.ts +3 -2
- package/dist/engine/session/parent-chain-guard.js +1 -1
- package/dist/engine/session/repo-utils.d.ts +31 -3
- package/dist/engine/session/repo-utils.js +42 -5
- package/dist/index.d.ts +27 -15
- package/dist/index.js +21 -11
- package/dist/internal/harness-types.d.ts +1 -1
- package/dist/internal/harness.d.ts +3 -3
- package/dist/internal/harness.js +2 -2
- package/dist/internal/llm.d.ts +1 -1
- package/dist/internal/llm.js +1 -1
- package/dist/orchestration/goal.js +2 -2
- package/dist/orchestration/run-workflow-tool.d.ts +2 -2
- package/dist/orchestration/run-workflow-tool.js +5 -3
- package/dist/orchestration/workflow-size-guideline.d.ts +4 -4
- package/dist/orchestration/workflow-types.d.ts +18 -0
- package/dist/orchestration/workflow-types.js +6 -0
- package/dist/orchestration/workflow.d.ts +2 -13
- package/dist/orchestration/workflow.js +21 -31
- package/dist/prompt-assembly/event-registry.js +1 -0
- package/dist/prompt-assembly/tool-catalog.d.ts +3 -0
- package/dist/prompt-assembly/tool-catalog.js +3 -0
- package/dist/prompts/default.d.ts +14 -14
- package/dist/scenarios/full-body.d.ts +4 -4
- package/dist/stores/file/adoption/adopt.d.ts +4 -3
- package/dist/stores/file/adoption/adopt.js +24 -31
- package/dist/stores/file/adoption/marker.d.ts +6 -13
- package/dist/stores/file/adoption/marker.js +6 -15
- package/dist/stores/file/checkpoint-store.d.ts +3 -0
- package/dist/stores/file/checkpoint-store.js +9 -3
- package/dist/stores/file/file-history-store.d.ts +20 -19
- package/dist/stores/file/file-history-store.js +152 -135
- package/dist/stores/file/fs-atomic.d.ts +15 -0
- package/dist/stores/file/fs-atomic.js +89 -14
- package/dist/stores/file/index.d.ts +1 -1
- package/dist/stores/file/mailbox-store.d.ts +3 -0
- package/dist/stores/file/mailbox-store.js +3 -1
- package/dist/stores/file/permission-rule-adopt.d.ts +1 -1
- package/dist/stores/file/permission-rule-adopt.js +15 -16
- package/dist/stores/file/permission-rule-store.d.ts +18 -2
- package/dist/stores/file/permission-rule-store.js +21 -14
- package/dist/stores/file/session-policy-store.d.ts +3 -3
- package/dist/stores/file/session-store.d.ts +26 -11
- package/dist/stores/file/session-store.js +77 -40
- package/dist/stores/file/workflow-journal-store.d.ts +10 -4
- package/dist/stores/file/workflow-journal-store.js +28 -13
- package/dist/tools/artifact/artifact-text.d.ts +1 -1
- package/dist/tools/artifact/artifact-tool.js +2 -1
- package/dist/tools/fs/bash-readonly-classifier.d.ts +3 -3
- package/dist/tools/fs/fs-bash.d.ts +2 -2
- package/dist/tools/fs/fs-bash.js +3 -1
- package/dist/tools/fs/fs-shared.d.ts +8 -8
- package/dist/tools/fs/gh-rate-limit.d.ts +1 -1
- package/dist/tools/fs/notebook.d.ts +2 -2
- package/dist/tools/fs/read-deny.d.ts +29 -7
- package/dist/tools/fs/read-deny.js +63 -22
- package/dist/tools/fs/removal-targets.d.ts +1 -1
- package/dist/tools/fs/safety.d.ts +9 -9
- package/dist/tools/fs/search.d.ts +6 -6
- package/dist/tools/fs/shell-read-check.js +6 -1
- package/dist/tools/fs/shell-read-judge.d.ts +4 -0
- package/dist/tools/fs/shell-read-judge.js +5 -2
- package/dist/tools/loop-tick.d.ts +2 -2
- package/dist/tools/scheduler-tools.js +5 -1
- package/dist/tools/task-list.d.ts +7 -7
- package/dist/tools/task-list.js +5 -1
- package/dist/tools/todo.js +2 -1
- package/dist/tools/web.d.ts +1 -1
- package/dist/tools/web.js +40 -37
- package/dist/tools/worktree.d.ts +3 -3
- package/dist/tools/worktree.js +3 -1
- package/package.json +1 -1
- package/test/export-surface.snapshot.json +5756 -5638
- package/wire-changes/core@7.55.0.json +3318 -0
- package/dist/core/store-contracts/session-store-incarnation-contract.d.ts +0 -39
- package/dist/core/store-contracts/session-store-incarnation-contract.js +0 -95
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
* store's, the fence stays the partition's.
|
|
36
36
|
*/
|
|
37
37
|
import type { PersistedRule, RuleScope } from "./permission-rule-model.js";
|
|
38
|
-
import { type DurableRulePartitionProvider, type QuarantinedRuleAdd
|
|
38
|
+
import { type DurableRulePartitionProvider, type QuarantinedRuleAdd } from "./permission-rule-store.js";
|
|
39
|
+
import type { RuleOwner } from "./rule-owner.js";
|
|
39
40
|
import { type OrgRulePartitionConfig, type OrgRuleResolution } from "./permission-rule-org.js";
|
|
40
41
|
import type { SessionRulePartition } from "./permission-rule-session.js";
|
|
41
42
|
import type { StoreDurability, StoreFidelity } from "./checkpoint-store.js";
|
|
@@ -45,7 +45,7 @@ import type { PersistedRule, RuleAdd, RuleDot, RuleScope, RuleTombstone } from "
|
|
|
45
45
|
import { type RuleBehavior } from "./permission-rule-model.js";
|
|
46
46
|
import type { RuleSyncDropReason, RuleQuarantineReason } from "./governance-codes.js";
|
|
47
47
|
import type { StoreDurability, StoreFidelity } from "./checkpoint-store.js";
|
|
48
|
-
import type {
|
|
48
|
+
import type { RuleOwner } from "./rule-owner.js";
|
|
49
49
|
/** One store read: the rules as persisted, their tombstones, and the revision they were read at. */
|
|
50
50
|
export interface StoredRules {
|
|
51
51
|
/** Rules with their FULL add sets — tombstoned dots already removed by the backend on read. */
|
|
@@ -56,6 +56,14 @@ export interface StoredRules {
|
|
|
56
56
|
/** Integrity fingerprint the backend computed, when it has one. Corruption detection only. */
|
|
57
57
|
checksum?: string;
|
|
58
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* The code a refusal carries when the rules a face reads — a bucket at rest, a rule-sync state on the wire — are stamped
|
|
61
|
+
* with a rule grammar later than this engine reads: a newer engine wrote them. Every face refuses them whole with it (the
|
|
62
|
+
* read face, a write's read of its base, a sync round's local read and its response), so a caller tells "an engine that
|
|
63
|
+
* reads that grammar reads them" from a damaged store, whose refusal carries no code. The person's rules are then one
|
|
64
|
+
* partition that cannot be read: every call is asked about until a read succeeds.
|
|
65
|
+
*/
|
|
66
|
+
export declare const PERMISSION_RULES_LATER_GRAMMAR_CODE = "permission_rules.later_grammar";
|
|
59
67
|
/**
|
|
60
68
|
* The durable partition's read face: read-only, already anchored to a single owner. Rows carry the two
|
|
61
69
|
* durable scopes only (`global` = the `user` source, `project` = the `project` source); a session row
|
|
@@ -64,6 +72,13 @@ export interface StoredRules {
|
|
|
64
72
|
* A backend that fails to read must not silently report an empty set as if it were an empty store — it
|
|
65
73
|
* throws, and the store's caller turns that into zero rules PLUS a loud disclosure. Both outcomes deny
|
|
66
74
|
* more than they allow; only one of them is honest about why.
|
|
75
|
+
*
|
|
76
|
+
* A backend keeps ONE rule grammar stamp per bucket: every write stamps this engine's grammar
|
|
77
|
+
* (`SESSION_RULES_GRAMMAR`), and every read — of the read face and of a write's base — judges the stamp
|
|
78
|
+
* through `readRuleGrammarStamp` (absent = this engine's grammar, a bucket written before the stamp): a later
|
|
79
|
+
* grammar is a bucket this engine cannot read, refused whole with {@link PERMISSION_RULES_LATER_GRAMMAR_CODE},
|
|
80
|
+
* never read row by row (a row a newer grammar wrote reads as nothing here, and a deny that reads as nothing
|
|
81
|
+
* refuses nothing).
|
|
67
82
|
*/
|
|
68
83
|
export interface DurableRulePartition {
|
|
69
84
|
list(): Promise<StoredRules>;
|
|
@@ -78,30 +93,6 @@ export interface DurableRulePartition {
|
|
|
78
93
|
/** Declared serialization fidelity, same doctrine as the other store families. */
|
|
79
94
|
readonly fidelity?: StoreFidelity;
|
|
80
95
|
}
|
|
81
|
-
/**
|
|
82
|
-
* design/182 §3.3/§4.5 — who a rule bucket belongs to, as a STRUCTURAL position.
|
|
83
|
-
*
|
|
84
|
-
* Identity absence is spelled as a distinct union member, never as a sentinel string flowing through
|
|
85
|
-
* `forPrincipal` — every consumer of a principal string is an identity surface, and a made-up name on an
|
|
86
|
-
* identity surface is indistinguishable from a real one downstream. Cloud sync and cloud tickets accept
|
|
87
|
-
* ONLY the `principal` kind: syncing is an authenticated act, and a local-owner bucket has no cloud home
|
|
88
|
-
* until it is adopted (`adoptFilePermissionRuleStore`).
|
|
89
|
-
*/
|
|
90
|
-
export type RuleOwner = {
|
|
91
|
-
kind: "principal";
|
|
92
|
-
principal: string;
|
|
93
|
-
} | {
|
|
94
|
-
kind: "local-owner";
|
|
95
|
-
};
|
|
96
|
-
/** The owner discriminants as a value: the `kind` words of {@link RuleOwner}, both directions fenced at compile time
|
|
97
|
-
* ({@link RuleOwnerKindsCoverEveryArm} / {@link RuleOwnerArmsCoverEveryKind}). */
|
|
98
|
-
export declare const RULE_OWNER_KINDS: readonly ["principal", "local-owner"];
|
|
99
|
-
/** Compile fence: an arm whose `kind` is not in {@link RULE_OWNER_KINDS} turns the argument into that word. */
|
|
100
|
-
export type RuleOwnerKindsCoverEveryArm = AssertAllKeysHandled<Exclude<RuleOwner["kind"], (typeof RULE_OWNER_KINDS)[number]>>;
|
|
101
|
-
/** Compile fence, the other direction: a word in {@link RULE_OWNER_KINDS} that no arm carries. */
|
|
102
|
-
export type RuleOwnerArmsCoverEveryKind = AssertAllKeysHandled<Exclude<(typeof RULE_OWNER_KINDS)[number], RuleOwner["kind"]>>;
|
|
103
|
-
/** Do two owners name the same bucket? */
|
|
104
|
-
export declare function sameRuleOwner(a: RuleOwner, b: RuleOwner): boolean;
|
|
105
96
|
/** Resolves one owner's durable partition. `undefined` ⇒ a partition that reports zero rules. This is
|
|
106
97
|
* the BACKEND contract (file, in-memory, an out-of-repo SQL twin); the engine never consumes it
|
|
107
98
|
* directly — `createPermissionRuleStoreProvider({ durable })` composes it into the unified store. */
|
|
@@ -497,6 +488,10 @@ export declare function normalizePersistedRule(r: PersistedRule): {
|
|
|
497
488
|
reject: Extract<RuleSyncDropReason, "invalid_rule_text" | "metadata_mismatch">;
|
|
498
489
|
};
|
|
499
490
|
/** The normalization half exposed for the DISCLOSURE layer: which records a join would refuse, and why.
|
|
491
|
+
*
|
|
492
|
+
* It reads a state in THIS engine's grammar: the doors that hand it one — a backend's read of its bucket, the sync
|
|
493
|
+
* client's read of a response — refuse a state stamped later whole first ({@link PERMISSION_RULES_LATER_GRAMMAR_CODE}),
|
|
494
|
+
* so a row it refuses is damage to drop or quarantine, never a newer grammar's rule read as nothing.
|
|
500
495
|
*
|
|
501
496
|
* design/382 §4.3 — this screen carries the SESSION member of the durable face on every JOIN leg
|
|
502
497
|
* (inbound state, local state, both sides of the pure join): a rule or tombstone row carrying a
|
|
@@ -3,10 +3,7 @@ import { canonicalize } from "./canonical-json.js";
|
|
|
3
3
|
import { escapeForDisclosure, isRuleBehavior, isRuleLive, parseRuleText } from "./permission-rule-model.js";
|
|
4
4
|
import { thrownText } from "./thrown-value.js";
|
|
5
5
|
import { validatePath } from "./effective-path-target.js";
|
|
6
|
-
export const
|
|
7
|
-
export function sameRuleOwner(a, b) {
|
|
8
|
-
return a.kind === "principal" ? b.kind === "principal" && a.principal === b.principal : b.kind === "local-owner";
|
|
9
|
-
}
|
|
6
|
+
export const PERMISSION_RULES_LATER_GRAMMAR_CODE = "permission_rules.later_grammar";
|
|
10
7
|
export function isRuleRevision(rev) {
|
|
11
8
|
return typeof rev === "number" && Number.isSafeInteger(rev) && rev >= 0;
|
|
12
9
|
}
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
*/
|
|
28
28
|
import type { PersistedRule, RuleBehavior, RuleDot, RuleRejectCode, RuleScope, RuleTombstone } from "./permission-rule-model.js";
|
|
29
29
|
import type { PermissionRuleStoreProvider } from "./permission-rule-provider.js";
|
|
30
|
-
import type { RuleOwner
|
|
30
|
+
import type { RuleOwner } from "./rule-owner.js";
|
|
31
|
+
import type { RuleSyncDrop, RuleSyncFrontier, RuleSyncState } from "./permission-rule-store.js";
|
|
31
32
|
import { type TracerHook } from "./trace.js";
|
|
32
33
|
/** The injected HTTP seam — core never bundles a fetch. The deployment owns base URL, auth, TLS and
|
|
33
34
|
* retries; a non-2xx / network failure should THROW (the round then aborts with zero local effects —
|
|
@@ -43,6 +44,9 @@ export interface RuleSyncRequestBody {
|
|
|
43
44
|
replica: string;
|
|
44
45
|
state: RuleSyncState;
|
|
45
46
|
observedVector?: RuleSyncFrontier;
|
|
47
|
+
/** The rule grammar this engine reads and writes the state's rows in (`SESSION_RULES_GRAMMAR`) — a twin whose grammar is
|
|
48
|
+
* earlier refuses the whole request, as this client refuses a response stamped later. */
|
|
49
|
+
grammar: number;
|
|
46
50
|
}
|
|
47
51
|
/** The wire response (server twin: join its persisted state with the request state, answer the whole
|
|
48
52
|
* merged form). `gcFrontier` is the COLLECTED watermark (§5.1) — absent in v2.0 by protocol. */
|
|
@@ -58,6 +62,10 @@ export interface RuleSyncResponseBody {
|
|
|
58
62
|
dot: RuleDot;
|
|
59
63
|
reason: string;
|
|
60
64
|
}>;
|
|
65
|
+
/** The rule grammar the merged state's rows are written in. A grammar later than this engine's refuses the whole round
|
|
66
|
+
* (`PERMISSION_RULES_LATER_GRAMMAR_CODE`): read in this engine's grammar, a newer grammar's row reads as nothing, and a
|
|
67
|
+
* deny among them would be dropped as damage. Absent: a twin that predates the member, read in this engine's. */
|
|
68
|
+
grammar?: number;
|
|
61
69
|
}
|
|
62
70
|
export interface PermissionRuleSyncResult {
|
|
63
71
|
/** True ⟺ the round landed with zero drops, zero quarantines and zero warnings. */
|
|
@@ -154,7 +162,8 @@ interface ParsedRuleSyncResponse {
|
|
|
154
162
|
}
|
|
155
163
|
/**
|
|
156
164
|
* Parse one wire response. Envelope violations (missing/mistyped principal, echo mismatch, no merged
|
|
157
|
-
* state, an unparseable frontier) THROW — a protocol error aborts
|
|
165
|
+
* state, an unparseable frontier, a grammar stamp this engine cannot read) THROW — a protocol error aborts
|
|
166
|
+
* the round with zero local effects.
|
|
158
167
|
* ENTRY-level violations degrade per §4.3: an unshapeable rule/add is skipped with a warning (it never
|
|
159
168
|
* reaches the local disk); an unshapeable tombstone is surfaced as `undefined` so the caller's
|
|
160
169
|
* tighten-only partitioning withholds the round's adds. Unknown keys never flow anywhere — every field
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { escapeForDisclosure, isRuleBehavior, parseRuleText, RULE_ADD_ORIGINS } from "./permission-rule-model.js";
|
|
2
|
-
import { applyTombstones, errText, isProjectScopeRoot, joinFrontiers, joinRuleStates, normalizePersistedRule, readRuleWriteOutcome, ruleSyncVector, sameRuleIdentity, screenRuleSyncState, writerOf, } from "./permission-rule-store.js";
|
|
2
|
+
import { PERMISSION_RULES_LATER_GRAMMAR_CODE, applyTombstones, errText, isProjectScopeRoot, joinFrontiers, joinRuleStates, normalizePersistedRule, readRuleWriteOutcome, ruleSyncVector, sameRuleIdentity, screenRuleSyncState, writerOf, } from "./permission-rule-store.js";
|
|
3
3
|
import { emitTrace } from "./trace.js";
|
|
4
|
+
import { SESSION_RULES_GRAMMAR, readRuleGrammarStamp } from "./session-policy-store.js";
|
|
4
5
|
export const PERMISSION_RULE_SYNC_PATH = "/v1/permission-rules/sync";
|
|
5
6
|
export const LOCAL_OWNER_UNSYNCABLE_CODE = "permission_rules.local_owner_unsyncable";
|
|
6
7
|
function refuseLocalOwnerSync() {
|
|
@@ -64,6 +65,7 @@ export async function syncPermissionRules(opts) {
|
|
|
64
65
|
replica: raw.actor,
|
|
65
66
|
state: { rules: raw.rules, tombstones: raw.tombstones },
|
|
66
67
|
...(raw.observedVector !== undefined ? { observedVector: raw.observedVector } : {}),
|
|
68
|
+
grammar: SESSION_RULES_GRAMMAR,
|
|
67
69
|
};
|
|
68
70
|
const rawResponse = await transport(PERMISSION_RULE_SYNC_PATH, request);
|
|
69
71
|
const response = parseRuleSyncResponse(rawResponse, principal);
|
|
@@ -310,6 +312,11 @@ export function parseRuleSyncResponse(raw, expectedPrincipal) {
|
|
|
310
312
|
if (echoedPrincipal !== expectedPrincipal) {
|
|
311
313
|
throw new Error(`the sync response echoes principal "${escapeForDisclosure(echoedPrincipal)}" but this round synced "${escapeForDisclosure(expectedPrincipal)}" — the transport is wired to the wrong bucket; refusing the whole round`);
|
|
312
314
|
}
|
|
315
|
+
const grammar = readRuleGrammarStamp(r.grammar, SESSION_RULES_GRAMMAR, { rules: "the sync response's rules", held: "rows" });
|
|
316
|
+
if ("got" in grammar) {
|
|
317
|
+
const refusal = new Error(`${grammar.sentence} — refusing the whole round, nothing landed`);
|
|
318
|
+
throw grammar.later === true ? Object.assign(refusal, { code: PERMISSION_RULES_LATER_GRAMMAR_CODE }) : refusal;
|
|
319
|
+
}
|
|
313
320
|
const merged = r.merged;
|
|
314
321
|
const mergedRules = merged?.rules;
|
|
315
322
|
const mergedTombstones = merged?.tombstones;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* design/127 — **参数级权限规则 DSL**(
|
|
2
|
+
* design/127 — **参数级权限规则 DSL**(追平批 γ)。声明式规则字符串 → {@link ToolPolicy}
|
|
3
3
|
* 编译器:`"Tool"`(裸)/ `"Tool(param:pattern)"`(参数级,`*` 通配全串锚定)。CC ground truth
|
|
4
4
|
* 行号级:解析 `Lh` :55214 · 通配 `ZMr` :55196 · 参数级 matcher `gnn` :595123 · 评估序 `G1e` :595272。
|
|
5
5
|
*
|
|
@@ -46,11 +46,21 @@
|
|
|
46
46
|
*
|
|
47
47
|
* The NAME lane is the same shape for the tools of `NAME_RULE_FACES` (the `Skill` tool): a `Skill(<name>)` / `Skill(<prefix>:*)`
|
|
48
48
|
* deny or ask — the reference's own spelling — compiles through the same validator (the model's name grammar) and is judged on the
|
|
49
|
-
* one string the call names (`nameRuleSubjectOf`) with `
|
|
49
|
+
* one string the call names (`nameRuleSubjectOf`) with `nameRuleReach`, the predicate the persisted rule store uses. The parameter
|
|
50
50
|
* spelling `Skill(skill:<name>)` those tools used to take is retired: refused loudly, its sentence naming the CC form. A KEYED
|
|
51
51
|
* value tool (`Artifact(action:<word>)`) takes the same lane for content keyed by its own parameter (`nameGrammarReads`); its
|
|
52
|
-
* other arguments stay on the generic `param:pattern` lane.
|
|
53
|
-
*
|
|
52
|
+
* other arguments stay on the generic `param:pattern` lane. The delegation tool's `Agent(<subagent_type>)` takes it too, its
|
|
53
|
+
* value and the call's resolved against the agent types the call's face carries (`nameRuleReach`), its other arguments on the
|
|
54
|
+
* generic lane. A call of a closed-set tool that names no value as the tool reads it is refused by the tool's deny or ask rule
|
|
55
|
+
* (`nameValueAbsentReason`, the persisted lane's reading).
|
|
56
|
+
*
|
|
57
|
+
* The HOST lane is the same shape for a tool name the catalog declares a host target for (the URL its call reaches —
|
|
58
|
+
* `WebFetch`'s `url`): a `WebFetch(domain:<host>)` / `WebFetch(domain:*.<domain>)` deny or ask — the reference's own spelling —
|
|
59
|
+
* compiles through the model's domain grammar and is judged on the host the call reaches (`callHostTargetOf`, the protective
|
|
60
|
+
* reading: the call face's slot, the catalog's for the name as the floor) with `domainRuleAdmits`, the reader a person's stored
|
|
61
|
+
* rows and the entry lists use. Every lane is one dispatch over the rule's name and content (`ruleLaneOf`), so the static
|
|
62
|
+
* compile and a leg's roster compile read every rule the same way. A call whose host cannot be read is refused by a host deny
|
|
63
|
+
* rule and is the fail-closed ask under a host ask rule.
|
|
54
64
|
*
|
|
55
65
|
* 🔴 与 CC 的有意差(design/127 r2):
|
|
56
66
|
* - CC 参数级 generic 道无 allow lane(gnn 只有 deny/ask)—— 我们同样,且整个 policy 无 allow 臂。
|
|
@@ -102,6 +112,11 @@ export interface PermissionRuleIssue {
|
|
|
102
112
|
* is an object/array (a rule on it can never match); the tool is unknown to the resolver a leg
|
|
103
113
|
* supplied (absent resolver ⇒ the catalog alone judges and an unknown tool stays permissive). */
|
|
104
114
|
| "unsupported.param_unknown" | "unsupported.param_non_scalar" | "unsupported.tool_unknown"
|
|
115
|
+
/** A deny/ask name rule whose value the fold lands on SEVERAL of the values the leg's mounted tool declares
|
|
116
|
+
* (`Agent(codereview)` on a leg offering `code-review` and `code_review`): which one it names is not determinable, and a rule
|
|
117
|
+
* is never resolved to one of several — refused when the leg's `ruleFaces` carry the values (without them the rule reaches
|
|
118
|
+
* every such value at the gate). */
|
|
119
|
+
| "invalid.name_ambiguous"
|
|
105
120
|
/** A path-form deny/ask whose spelling needs a base this policy DECLARES as something other than an absolute path
|
|
106
121
|
* of its tree's family (`/x` reads `pathBases.root`; a relative pattern `pathBases.cwd`, else `root`; `~/` `home`)
|
|
107
122
|
* — a bad declared value, refused rather than compiled into a rule that reaches nothing. An undeclared base is no
|
|
@@ -117,8 +132,29 @@ export interface PermissionRuleIssue {
|
|
|
117
132
|
/** HRD-PRM-7: a param-level rule naming a parameter the target tool does not carry. Additive member —
|
|
118
133
|
* the lane that used to compile silently and never match (see {@link FILE_TOOL_PARAMS}). */
|
|
119
134
|
| "unsupported.unknown_param";
|
|
135
|
+
/** What a person can do about the rule — never a construction option of the library: those ride on {@link libraryOption}. */
|
|
120
136
|
message: string;
|
|
137
|
+
/**
|
|
138
|
+
* The engine-side library coordinate this refusal relates to — a name a host program or a spec author holds and a person
|
|
139
|
+
* writing rules does not: a construction option of the compile call (a key of {@link PermissionRulePolicyOptions}, a
|
|
140
|
+
* `pathBases` / `caps` entry spelled `pathBases.<word>` / `caps.<key>`), the allow-list seat of a request or of a deployment
|
|
141
|
+
* (`TaskSpec.allowedTools` / `RunnerDeps.allowedTools`), or the MCP server spec's per-tool declaration (`toolAxes`). Present
|
|
142
|
+
* where the engine offers it as the way out of the refusal, or names it as the declaration the refusal rests on (a rule set
|
|
143
|
+
* over its cap, a declared base that is no path, the list that is no list) — not wherever some other value of an option would
|
|
144
|
+
* happen to change the answer (a resolver that declared more parameters would also make a misspelled one compile; that is not
|
|
145
|
+
* a way out). The sentence never names it, so a host that exposes the coordinate renders it and any other host shows the
|
|
146
|
+
* sentence alone. Minted in one place ({@link ruleIssue}).
|
|
147
|
+
*/
|
|
148
|
+
libraryOption?: {
|
|
149
|
+
name: "primaryFieldGeneric" | "defaultAction" | "ruleFaces" | `pathBases.${keyof PathRuleBases}` | `caps.${keyof PermissionRuleCaps}` | "TaskSpec.allowedTools" | "RunnerDeps.allowedTools" | "toolAxes";
|
|
150
|
+
/** The value that opts in, when the way out is one value (`primaryFieldGeneric` ⇒ `"allow-lexical"`); absent when the option
|
|
151
|
+
* takes the host's own choice (a cap's size, a base's path, the answer for calls no rule reaches). */
|
|
152
|
+
value?: string;
|
|
153
|
+
};
|
|
121
154
|
}
|
|
155
|
+
/** THE mint of a {@link PermissionRuleIssue}: every issue the compiler and the allow-list screen report is made here, so the
|
|
156
|
+
* optional {@link PermissionRuleIssue.libraryOption} is written at one place and an absent one is absent, never `undefined`. */
|
|
157
|
+
export declare function ruleIssue(rule: string, code: PermissionRuleIssue["code"], message: string, libraryOption?: PermissionRuleIssue["libraryOption"]): PermissionRuleIssue;
|
|
122
158
|
export interface PermissionRuleCaps {
|
|
123
159
|
maxRules: number;
|
|
124
160
|
maxRuleLength: number;
|
|
@@ -175,18 +211,20 @@ export { isNamespacedCoveringRuleName, namespacedRuleNameCovers, wildcardMatch }
|
|
|
175
211
|
/**
|
|
176
212
|
* design/388 A-6/7/8/9 (D-3): the per-tool RULE FACE — the parameters a `Tool(param:pattern)` rule may name
|
|
177
213
|
* (`params`, the SCALAR top-level keys ∪ the path target's aliases), the ones the generic lexical matcher must
|
|
178
|
-
* not be pointed at (`primaryParams`)
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
*
|
|
214
|
+
* not be pointed at (`primaryParams`) and the carried-but-non-scalar keys a rule can never match (`nonScalar`). Resolved
|
|
215
|
+
* through {@link PermissionRulePolicyOptions.ruleFaces} when a leg supplies its roster, else from the static catalog — the
|
|
216
|
+
* three hand-kept tables (`PRIMARY_FIELDS` / `FILE_TOOLS` / `FILE_TOOL_PARAMS`) this replaced are gone. Which lane a rule
|
|
217
|
+
* takes is not the face's to say: it is the rule's name's grammar (`ruleLaneOf`), the same with or without a resolver.
|
|
182
218
|
*/
|
|
183
219
|
export interface RuleFaceView {
|
|
184
220
|
primaryParams: readonly string[];
|
|
185
|
-
/** The full scalar vocabulary
|
|
186
|
-
*
|
|
221
|
+
/** The full scalar vocabulary. A face that states none declares its `primaryParams` only: a rule naming any other
|
|
222
|
+
* parameter is refused (`unsupported.param_unknown`) — a face never leaves a parameter name unjudged. */
|
|
187
223
|
params?: readonly string[];
|
|
188
224
|
nonScalar?: readonly string[];
|
|
189
|
-
|
|
225
|
+
/** The values the mounted tool takes for the argument its name rules are read against (`ToolRuleFace.nameValues`): with them a
|
|
226
|
+
* name rule whose value the fold lands on several of them is refused at compile (`invalid.name_ambiguous`). */
|
|
227
|
+
nameValues?: readonly string[];
|
|
190
228
|
}
|
|
191
229
|
/** The static catalog's answer for a wire name (undefined ⇒ the catalog does not carry it). */
|
|
192
230
|
export declare function catalogRuleFaceView(toolName: string): RuleFaceView | undefined;
|