@abot-ai/runtime 1.5.0 → 1.6.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/dist/src/bridge/start-agent-bridge.js +22 -0
- package/dist/src/capabilities/normal-invocation/contracts.d.ts +11 -0
- package/dist/src/capabilities/normal-invocation/contracts.js +1 -0
- package/dist/src/capabilities/normal-invocation/validator.js +40 -4
- package/dist/src/capabilities/result-budget.d.ts +17 -0
- package/dist/src/capabilities/result-budget.js +21 -0
- package/dist/src/capabilities/tool-context-text.d.ts +16 -0
- package/dist/src/capabilities/tool-context-text.js +30 -0
- package/dist/src/capabilities/tool-definition-validator/definition-parser.js +6 -0
- package/dist/src/capabilities/tool-definition-validator/event-input-text-options.js +3 -2
- package/dist/src/capabilities/tool-event-input-text.d.ts +1 -0
- package/dist/src/capabilities/tool-event-input-text.js +2 -1
- package/dist/src/capabilities/tool-executor.d.ts +3 -1
- package/dist/src/capabilities/tool-executor.js +29 -50
- package/dist/src/capabilities/tool-interruption.d.ts +3 -0
- package/dist/src/capabilities/tool-interruption.js +6 -0
- package/dist/src/capabilities/tool-result-normalization.d.ts +18 -0
- package/dist/src/capabilities/tool-result-normalization.js +68 -0
- package/dist/src/capabilities/tool-types.d.ts +25 -2
- package/dist/src/cli/host-companion-bundle.mjs +474 -212
- package/dist/src/cli/host-companion.js +6 -0
- package/dist/src/cli/host-permissions.d.ts +7 -0
- package/dist/src/cli/host-permissions.js +24 -0
- package/dist/src/computer-access/companion/native-messages.js +1 -0
- package/dist/src/computer-access/companion/native-permissions.d.ts +14 -0
- package/dist/src/computer-access/companion/native-permissions.js +49 -0
- package/dist/src/computer-access/companion/native-session.js +4 -0
- package/dist/src/computer-access/companion/notification-installation.js +2 -15
- package/dist/src/computer-access/companion/notification-macos-bundle.d.ts +3 -0
- package/dist/src/computer-access/companion/notification-macos-bundle.js +84 -0
- package/dist/src/computer-access/companion/notification-macos.js +1 -1
- package/dist/src/computer-access/companion/notification-protocol.d.ts +1 -1
- package/dist/src/computer-access/companion/notification-protocol.js +20 -1
- package/dist/src/computer-access/companion/notification-readiness.js +2 -1
- package/dist/src/computer-access/companion/permission-protocol.d.ts +22 -0
- package/dist/src/computer-access/companion/permission-protocol.js +45 -0
- package/dist/src/computer-access/companion/protocol.d.ts +2 -1
- package/dist/src/computer-access/companion/protocol.js +3 -0
- package/dist/src/computer-access/companion/release-version.d.ts +1 -1
- package/dist/src/computer-access/companion/release-version.js +1 -1
- package/dist/src/computer-access/companion/spark-notification-query.d.ts +2 -0
- package/dist/src/computer-access/companion/spark-notification-query.js +62 -0
- package/dist/src/computer-access/computer/macos-desktop.js +1 -1
- package/dist/src/computer-access/computer/macos-input.js +2 -5
- package/dist/src/computer-access/computer/macos-permission-helper.d.ts +4 -0
- package/dist/src/computer-access/computer/macos-permission-helper.js +38 -0
- package/dist/src/computer-access/host-observation.d.ts +3 -3
- package/dist/src/computer-access/native-permission-contract.d.ts +23 -0
- package/dist/src/computer-access/native-permission-contract.js +38 -0
- package/dist/src/model-gateway/policy/invocation-policy.js +10 -1
- package/dist/src/model-gateway/providers/openai/payload.js +8 -0
- package/dist/src/model-gateway/structured-output/ollama-format.js +5 -0
- package/dist/src/model-gateway/structured-output/openai-format.js +5 -0
- package/dist/src/model-gateway/types.d.ts +3 -0
- package/dist/src/plugin-contract/manifest.d.ts +2 -1
- package/dist/src/plugin-sdk/context-text-result.d.ts +10 -0
- package/dist/src/plugin-sdk/context-text-result.js +19 -0
- package/dist/src/plugin-sdk/index.d.ts +1 -0
- package/dist/src/plugin-sdk/index.js +1 -0
- package/dist/src/plugin-sdk/results.d.ts +7 -4
- package/dist/src/plugin-sdk/results.js +35 -10
- package/dist/src/runtime/adapters/co-worker-resources.d.ts +2 -0
- package/dist/src/runtime/adapters/co-worker-resources.js +2 -2
- package/dist/src/runtime/adapters/file-session-store.js +6 -0
- package/dist/src/runtime/adapters/in-memory-session-store.js +14 -1
- package/dist/src/runtime/adapters/long-term-memory/onboarding-service.d.ts +2 -1
- package/dist/src/runtime/adapters/long-term-memory/onboarding-service.js +5 -4
- package/dist/src/runtime/adapters/passive-learning-runtime.d.ts +2 -1
- package/dist/src/runtime/adapters/passive-learning-runtime.js +1 -1
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/prepared-execution.js +77 -26
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/result-budget.d.ts +11 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/result-budget.js +30 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/contracts.d.ts +28 -1
- package/dist/src/runtime/adapters/registered-tool-payload-plan.d.ts +3 -3
- package/dist/src/runtime/adapters/registered-tool-payload-plan.js +4 -4
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/contracts.d.ts +2 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-authoring-result.js +4 -18
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/prepared-execution.js +3 -3
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-envelope.d.ts +13 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-envelope.js +15 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-evidence.d.ts +3 -7
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-evidence.js +6 -38
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-observer.d.ts +2 -1
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-observer.js +14 -6
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-references.d.ts +9 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-references.js +29 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities.js +1 -0
- package/dist/src/runtime/adapters/scheduler-executor-dispatch.d.ts +11 -0
- package/dist/src/runtime/adapters/scheduler-executor-dispatch.js +10 -0
- package/dist/src/runtime/adapters/scheduler-runtime.d.ts +3 -1
- package/dist/src/runtime/adapters/scheduler-runtime.js +28 -12
- package/dist/src/runtime/automations/agent-assignment.d.ts +8 -0
- package/dist/src/runtime/automations/agent-assignment.js +29 -0
- package/dist/src/runtime/automations/agent-request-failure.d.ts +2 -0
- package/dist/src/runtime/automations/agent-request-failure.js +74 -0
- package/dist/src/runtime/automations/agent-session-lifetime.d.ts +11 -0
- package/dist/src/runtime/automations/agent-session-lifetime.js +46 -0
- package/dist/src/runtime/automations/agent-step-executor.d.ts +35 -0
- package/dist/src/runtime/automations/agent-step-executor.js +278 -0
- package/dist/src/runtime/automations/agent-tool-scope.d.ts +4 -0
- package/dist/src/runtime/automations/agent-tool-scope.js +73 -0
- package/dist/src/runtime/automations/archive-management.d.ts +26 -0
- package/dist/src/runtime/automations/archive-management.js +50 -0
- package/dist/src/runtime/automations/binding-resolution.d.ts +28 -0
- package/dist/src/runtime/automations/binding-resolution.js +115 -0
- package/dist/src/runtime/automations/branch-result-projection.d.ts +4 -0
- package/dist/src/runtime/automations/branch-result-projection.js +15 -0
- package/dist/src/runtime/automations/catalog.d.ts +76 -0
- package/dist/src/runtime/automations/catalog.js +67 -0
- package/dist/src/runtime/automations/definition-contracts.d.ts +128 -0
- package/dist/src/runtime/automations/definition-contracts.js +1 -0
- package/dist/src/runtime/automations/definition-input.d.ts +3 -0
- package/dist/src/runtime/automations/definition-input.js +283 -0
- package/dist/src/runtime/automations/dependency-fingerprint.d.ts +9 -0
- package/dist/src/runtime/automations/dependency-fingerprint.js +55 -0
- package/dist/src/runtime/automations/draft-batch-aliases.d.ts +12 -0
- package/dist/src/runtime/automations/draft-batch-aliases.js +94 -0
- package/dist/src/runtime/automations/draft-batch.d.ts +29 -0
- package/dist/src/runtime/automations/draft-batch.js +147 -0
- package/dist/src/runtime/automations/draft-management.d.ts +53 -0
- package/dist/src/runtime/automations/draft-management.js +164 -0
- package/dist/src/runtime/automations/draft-mutations.d.ts +29 -0
- package/dist/src/runtime/automations/draft-mutations.js +219 -0
- package/dist/src/runtime/automations/draft-restoration.d.ts +11 -0
- package/dist/src/runtime/automations/draft-restoration.js +44 -0
- package/dist/src/runtime/automations/effect-admission-lifetime.d.ts +9 -0
- package/dist/src/runtime/automations/effect-admission-lifetime.js +31 -0
- package/dist/src/runtime/automations/failure-policy.d.ts +8 -0
- package/dist/src/runtime/automations/failure-policy.js +9 -0
- package/dist/src/runtime/automations/graph-executor.d.ts +23 -0
- package/dist/src/runtime/automations/graph-executor.js +227 -0
- package/dist/src/runtime/automations/graph-validation.d.ts +29 -0
- package/dist/src/runtime/automations/graph-validation.js +271 -0
- package/dist/src/runtime/automations/input-batch-selection.d.ts +7 -0
- package/dist/src/runtime/automations/input-batch-selection.js +42 -0
- package/dist/src/runtime/automations/input-capacity.d.ts +9 -0
- package/dist/src/runtime/automations/input-capacity.js +38 -0
- package/dist/src/runtime/automations/input-ledger.d.ts +45 -0
- package/dist/src/runtime/automations/input-ledger.js +147 -0
- package/dist/src/runtime/automations/late-settlement.d.ts +9 -0
- package/dist/src/runtime/automations/late-settlement.js +42 -0
- package/dist/src/runtime/automations/limits.d.ts +25 -0
- package/dist/src/runtime/automations/limits.js +41 -0
- package/dist/src/runtime/automations/model-capacity.d.ts +9 -0
- package/dist/src/runtime/automations/model-capacity.js +67 -0
- package/dist/src/runtime/automations/model-dependency-projection.d.ts +56 -0
- package/dist/src/runtime/automations/model-dependency-projection.js +88 -0
- package/dist/src/runtime/automations/node-transactions.d.ts +57 -0
- package/dist/src/runtime/automations/node-transactions.js +223 -0
- package/dist/src/runtime/automations/occurrence-preparation.d.ts +12 -0
- package/dist/src/runtime/automations/occurrence-preparation.js +257 -0
- package/dist/src/runtime/automations/permission-grants.d.ts +27 -0
- package/dist/src/runtime/automations/permission-grants.js +72 -0
- package/dist/src/runtime/automations/persistence.d.ts +9 -0
- package/dist/src/runtime/automations/persistence.js +13 -0
- package/dist/src/runtime/automations/publication-validation.d.ts +16 -0
- package/dist/src/runtime/automations/publication-validation.js +162 -0
- package/dist/src/runtime/automations/publication.d.ts +33 -0
- package/dist/src/runtime/automations/publication.js +97 -0
- package/dist/src/runtime/automations/replay-preparation.d.ts +7 -0
- package/dist/src/runtime/automations/replay-preparation.js +59 -0
- package/dist/src/runtime/automations/result-capacity.d.ts +5 -0
- package/dist/src/runtime/automations/result-capacity.js +9 -0
- package/dist/src/runtime/automations/result-publication.d.ts +10 -0
- package/dist/src/runtime/automations/result-publication.js +21 -0
- package/dist/src/runtime/automations/result-store.d.ts +17 -0
- package/dist/src/runtime/automations/result-store.js +109 -0
- package/dist/src/runtime/automations/retention.d.ts +12 -0
- package/dist/src/runtime/automations/retention.js +134 -0
- package/dist/src/runtime/automations/run-file-binding.d.ts +3 -0
- package/dist/src/runtime/automations/run-file-binding.js +19 -0
- package/dist/src/runtime/automations/run-output-summary.d.ts +25 -0
- package/dist/src/runtime/automations/run-output-summary.js +54 -0
- package/dist/src/runtime/automations/run-report.d.ts +83 -0
- package/dist/src/runtime/automations/run-report.js +121 -0
- package/dist/src/runtime/automations/runtime-executor.d.ts +16 -0
- package/dist/src/runtime/automations/runtime-executor.js +260 -0
- package/dist/src/runtime/automations/saved-agent-management.d.ts +16 -0
- package/dist/src/runtime/automations/saved-agent-management.js +94 -0
- package/dist/src/runtime/automations/service.d.ts +286 -0
- package/dist/src/runtime/automations/service.js +330 -0
- package/dist/src/runtime/automations/snapshot-staging.d.ts +13 -0
- package/dist/src/runtime/automations/snapshot-staging.js +126 -0
- package/dist/src/runtime/automations/source-attachment-access.d.ts +23 -0
- package/dist/src/runtime/automations/source-attachment-access.js +70 -0
- package/dist/src/runtime/automations/source-discovery.d.ts +25 -0
- package/dist/src/runtime/automations/source-discovery.js +179 -0
- package/dist/src/runtime/automations/starter-template-builder.d.ts +5 -0
- package/dist/src/runtime/automations/starter-template-builder.js +78 -0
- package/dist/src/runtime/automations/starter-template-contracts.d.ts +42 -0
- package/dist/src/runtime/automations/starter-template-contracts.js +1 -0
- package/dist/src/runtime/automations/starter-template-definitions.d.ts +3 -0
- package/dist/src/runtime/automations/starter-template-definitions.js +100 -0
- package/dist/src/runtime/automations/starter-template-showcases.d.ts +3 -0
- package/dist/src/runtime/automations/starter-template-showcases.js +154 -0
- package/dist/src/runtime/automations/starter-template-structure.d.ts +4 -0
- package/dist/src/runtime/automations/starter-template-structure.js +11 -0
- package/dist/src/runtime/automations/starter-templates.d.ts +20 -0
- package/dist/src/runtime/automations/starter-templates.js +75 -0
- package/dist/src/runtime/automations/step-evidence-effects.d.ts +46 -0
- package/dist/src/runtime/automations/step-evidence-effects.js +173 -0
- package/dist/src/runtime/automations/step-evidence-inputs.d.ts +22 -0
- package/dist/src/runtime/automations/step-evidence-inputs.js +105 -0
- package/dist/src/runtime/automations/step-evidence-output.d.ts +17 -0
- package/dist/src/runtime/automations/step-evidence-output.js +43 -0
- package/dist/src/runtime/automations/step-evidence.d.ts +24 -0
- package/dist/src/runtime/automations/step-evidence.js +53 -0
- package/dist/src/runtime/automations/step-interruption.d.ts +3 -0
- package/dist/src/runtime/automations/step-interruption.js +26 -0
- package/dist/src/runtime/automations/step-runner.d.ts +57 -0
- package/dist/src/runtime/automations/step-runner.js +278 -0
- package/dist/src/runtime/automations/storage-records.d.ts +133 -0
- package/dist/src/runtime/automations/storage-records.js +286 -0
- package/dist/src/runtime/automations/terminal-admission-receipt.d.ts +12 -0
- package/dist/src/runtime/automations/terminal-admission-receipt.js +39 -0
- package/dist/src/runtime/automations/tool-lifetimes.d.ts +13 -0
- package/dist/src/runtime/automations/tool-lifetimes.js +56 -0
- package/dist/src/runtime/automations/tool-step-executor.d.ts +32 -0
- package/dist/src/runtime/automations/tool-step-executor.js +136 -0
- package/dist/src/runtime/automations/tool-step-outcome.d.ts +24 -0
- package/dist/src/runtime/automations/tool-step-outcome.js +32 -0
- package/dist/src/runtime/automations/trigger-schedule.d.ts +7 -0
- package/dist/src/runtime/automations/trigger-schedule.js +19 -0
- package/dist/src/runtime/automations/working-directory.d.ts +3 -0
- package/dist/src/runtime/automations/working-directory.js +13 -0
- package/dist/src/runtime/capabilities/automation-builder/authoring-reference.d.ts +422 -0
- package/dist/src/runtime/capabilities/automation-builder/authoring-reference.js +130 -0
- package/dist/src/runtime/capabilities/automation-builder/creation-recipe.d.ts +9 -0
- package/dist/src/runtime/capabilities/automation-builder/creation-recipe.js +155 -0
- package/dist/src/runtime/capabilities/automation-builder/payload-instructions.d.ts +6 -0
- package/dist/src/runtime/capabilities/automation-builder/payload-instructions.js +6 -0
- package/dist/src/runtime/capabilities/automation-builder/payload-schema.d.ts +3 -0
- package/dist/src/runtime/capabilities/automation-builder/payload-schema.js +105 -0
- package/dist/src/runtime/capabilities/automation-builder/tool-contract.d.ts +65 -0
- package/dist/src/runtime/capabilities/automation-builder/tool-contract.js +27 -0
- package/dist/src/runtime/capabilities/automation-builder/tool-module.d.ts +4 -0
- package/dist/src/runtime/capabilities/automation-builder/tool-module.js +108 -0
- package/dist/src/runtime/capabilities/automations/authoring-catalog-contract.d.ts +78 -0
- package/dist/src/runtime/capabilities/automations/authoring-catalog-contract.js +28 -0
- package/dist/src/runtime/capabilities/automations/authoring-catalog.d.ts +320 -0
- package/dist/src/runtime/capabilities/automations/authoring-catalog.js +158 -0
- package/dist/src/runtime/capabilities/automations/authoring-input-contracts.d.ts +140 -0
- package/dist/src/runtime/capabilities/automations/authoring-input-contracts.js +36 -0
- package/dist/src/runtime/capabilities/automations/authoring-inputs.d.ts +9 -0
- package/dist/src/runtime/capabilities/automations/authoring-inputs.js +86 -0
- package/dist/src/runtime/capabilities/automations/authoring-preparation-limits.d.ts +5 -0
- package/dist/src/runtime/capabilities/automations/authoring-preparation-limits.js +5 -0
- package/dist/src/runtime/capabilities/automations/authoring-preparation.d.ts +483 -0
- package/dist/src/runtime/capabilities/automations/authoring-preparation.js +51 -0
- package/dist/src/runtime/capabilities/automations/draft-index.d.ts +14 -0
- package/dist/src/runtime/capabilities/automations/draft-index.js +26 -0
- package/dist/src/runtime/capabilities/automations/draft-operation-refs.d.ts +11 -0
- package/dist/src/runtime/capabilities/automations/draft-operation-refs.js +37 -0
- package/dist/src/runtime/capabilities/automations/draft-receipt-admission.d.ts +24 -0
- package/dist/src/runtime/capabilities/automations/draft-receipt-admission.js +36 -0
- package/dist/src/runtime/capabilities/automations/event-presentation.d.ts +3 -0
- package/dist/src/runtime/capabilities/automations/event-presentation.js +18 -0
- package/dist/src/runtime/capabilities/automations/model-tool-contract.d.ts +3 -0
- package/dist/src/runtime/capabilities/automations/model-tool-contract.js +34 -0
- package/dist/src/runtime/capabilities/automations/tool-contract.d.ts +3 -0
- package/dist/src/runtime/capabilities/automations/tool-contract.js +65 -0
- package/dist/src/runtime/capabilities/automations/tool-module.d.ts +4 -0
- package/dist/src/runtime/capabilities/automations/tool-module.js +286 -0
- package/dist/src/runtime/capabilities/runtime-path-namespace.d.ts +6 -0
- package/dist/src/runtime/capabilities/runtime-path-namespace.js +48 -0
- package/dist/src/runtime/capabilities/runtime-target-path.d.ts +1 -0
- package/dist/src/runtime/capabilities/runtime-target-path.js +16 -8
- package/dist/src/runtime/capabilities/scheduling/create-operations.d.ts +6 -0
- package/dist/src/runtime/capabilities/scheduling/job-list-page.d.ts +4 -1
- package/dist/src/runtime/composition.d.ts +5 -2
- package/dist/src/runtime/context/canonical-capability-result.d.ts +4 -0
- package/dist/src/runtime/context/canonical-capability-result.js +80 -0
- package/dist/src/runtime/context/capability-brief-readmission.js +2 -5
- package/dist/src/runtime/context/capability-result-compaction-source.d.ts +12 -0
- package/dist/src/runtime/context/capability-result-compaction-source.js +61 -0
- package/dist/src/runtime/context/compacted-capability-result-receipt.d.ts +7 -0
- package/dist/src/runtime/context/compacted-capability-result-receipt.js +29 -0
- package/dist/src/runtime/context/compaction-source-invariant.d.ts +6 -0
- package/dist/src/runtime/context/compaction-source-invariant.js +12 -0
- package/dist/src/runtime/context/execution-compacted-evidence.d.ts +29 -0
- package/dist/src/runtime/context/execution-compacted-evidence.js +87 -0
- package/dist/src/runtime/context/execution-compaction-objective.d.ts +11 -0
- package/dist/src/runtime/context/execution-compaction-objective.js +12 -0
- package/dist/src/runtime/context/model-step-compaction.d.ts +9 -0
- package/dist/src/runtime/context/model-step-compaction.js +115 -128
- package/dist/src/runtime/context/operation-supervision-compacted-evidence.d.ts +37 -0
- package/dist/src/runtime/context/operation-supervision-compacted-evidence.js +69 -0
- package/dist/src/runtime/context/operation-supervision-evidence-binding.d.ts +29 -0
- package/dist/src/runtime/context/operation-supervision-evidence-binding.js +66 -0
- package/dist/src/runtime/context/operation-supervision-evidence-projection.d.ts +5 -0
- package/dist/src/runtime/context/operation-supervision-evidence-projection.js +133 -0
- package/dist/src/runtime/context/operation-supervision-evidence.d.ts +2 -1
- package/dist/src/runtime/context/operation-supervision-evidence.js +38 -37
- package/dist/src/runtime/context/request-tool-results-checkpoint.d.ts +3 -0
- package/dist/src/runtime/context/request-tool-results-checkpoint.js +126 -0
- package/dist/src/runtime/context/request-tool-results-message-binding.d.ts +1 -0
- package/dist/src/runtime/context/request-tool-results-message-binding.js +10 -0
- package/dist/src/runtime/context/request-tool-results-supersession.d.ts +9 -0
- package/dist/src/runtime/context/request-tool-results-supersession.js +78 -0
- package/dist/src/runtime/context/request-tool-results.d.ts +3 -9
- package/dist/src/runtime/context/request-tool-results.js +15 -181
- package/dist/src/runtime/context/runtime-filesystem-scope.d.ts +21 -0
- package/dist/src/runtime/context/runtime-filesystem-scope.js +51 -0
- package/dist/src/runtime/context/semantic-compaction/checkpoint-message.d.ts +3 -0
- package/dist/src/runtime/context/semantic-compaction/checkpoint-message.js +22 -0
- package/dist/src/runtime/context/semantic-compaction/contracts.d.ts +0 -3
- package/dist/src/runtime/context/semantic-compaction/contracts.js +9 -20
- package/dist/src/runtime/context/semantic-compaction/dependency-results.js +15 -1
- package/dist/src/runtime/context/semantic-compaction/evidence-scope.d.ts +7 -0
- package/dist/src/runtime/context/semantic-compaction/evidence-scope.js +7 -0
- package/dist/src/runtime/context/semantic-compaction/format.d.ts +2 -1
- package/dist/src/runtime/context/semantic-compaction/format.js +27 -19
- package/dist/src/runtime/context/semantic-compaction/generation-contracts.d.ts +18 -0
- package/dist/src/runtime/context/semantic-compaction/generation-contracts.js +1 -0
- package/dist/src/runtime/context/semantic-compaction/generation-input.d.ts +11 -0
- package/dist/src/runtime/context/semantic-compaction/generation-input.js +74 -0
- package/dist/src/runtime/context/semantic-compaction/generation-source-registration.d.ts +3 -0
- package/dist/src/runtime/context/semantic-compaction/generation-source-registration.js +12 -0
- package/dist/src/runtime/context/semantic-compaction/output-validation.d.ts +10 -0
- package/dist/src/runtime/context/semantic-compaction/output-validation.js +75 -0
- package/dist/src/runtime/context/semantic-compaction/parser.d.ts +2 -2
- package/dist/src/runtime/context/semantic-compaction/parser.js +13 -26
- package/dist/src/runtime/context/semantic-compaction/prompt.js +18 -5
- package/dist/src/runtime/context/semantic-compaction/repair-headroom.d.ts +4 -3
- package/dist/src/runtime/context/semantic-compaction/repair-headroom.js +10 -4
- package/dist/src/runtime/context/semantic-compaction/replacement-budget.d.ts +25 -0
- package/dist/src/runtime/context/semantic-compaction/replacement-budget.js +55 -0
- package/dist/src/runtime/context/semantic-compaction/run.d.ts +3 -14
- package/dist/src/runtime/context/semantic-compaction/run.js +27 -186
- package/dist/src/runtime/context/semantic-compaction/scope-quarantine.d.ts +17 -0
- package/dist/src/runtime/context/semantic-compaction/scope-quarantine.js +37 -0
- package/dist/src/runtime/context/semantic-compaction/snapshot.d.ts +5 -1
- package/dist/src/runtime/context/semantic-compaction/snapshot.js +10 -2
- package/dist/src/runtime/context/semantic-compaction/source-registration.d.ts +3 -0
- package/dist/src/runtime/context/semantic-compaction/source-registration.js +34 -0
- package/dist/src/runtime/context/semantic-compaction/source-slots.d.ts +5 -0
- package/dist/src/runtime/context/semantic-compaction/source-slots.js +4 -0
- package/dist/src/runtime/context/semantic-compaction/store.d.ts +6 -1
- package/dist/src/runtime/context/semantic-compaction/store.js +54 -9
- package/dist/src/runtime/context/semantic-compaction/super-child-result-source.d.ts +8 -0
- package/dist/src/runtime/context/semantic-compaction/super-child-result-source.js +50 -0
- package/dist/src/runtime/context/semantic-compaction/super-operation-source.d.ts +8 -0
- package/dist/src/runtime/context/semantic-compaction/super-operation-source.js +99 -0
- package/dist/src/runtime/context/semantic-compaction/super-reviewer-source.d.ts +16 -0
- package/dist/src/runtime/context/semantic-compaction/super-reviewer-source.js +37 -0
- package/dist/src/runtime/context/semantic-compaction/super-source-integrity.d.ts +21 -0
- package/dist/src/runtime/context/semantic-compaction/super-source-integrity.js +169 -0
- package/dist/src/runtime/context/semantic-compaction/super-source-message.d.ts +4 -0
- package/dist/src/runtime/context/semantic-compaction/super-source-message.js +23 -0
- package/dist/src/runtime/context/session-memory/model-step-controller.js +34 -20
- package/dist/src/runtime/context/session-memory/selection.js +0 -2
- package/dist/src/runtime/context/spark-conversation-policy.d.ts +4 -0
- package/dist/src/runtime/context/spark-conversation-policy.js +16 -0
- package/dist/src/runtime/context/super-compaction-failure-owner.d.ts +10 -0
- package/dist/src/runtime/context/super-compaction-failure-owner.js +64 -0
- package/dist/src/runtime/context/super-context-failure.d.ts +28 -0
- package/dist/src/runtime/context/super-context-failure.js +37 -0
- package/dist/src/runtime/context/super-context-policy.d.ts +3 -0
- package/dist/src/runtime/context/super-context-policy.js +35 -0
- package/dist/src/runtime/context/super-request-tool-results-checkpoint.d.ts +6 -0
- package/dist/src/runtime/context/super-request-tool-results-checkpoint.js +29 -0
- package/dist/src/runtime/context/super-worker-compaction-failure.d.ts +5 -0
- package/dist/src/runtime/context/super-worker-compaction-failure.js +19 -0
- package/dist/src/runtime/context/super-worker-compaction-projection.d.ts +8 -0
- package/dist/src/runtime/context/super-worker-compaction-projection.js +41 -0
- package/dist/src/runtime/context/super-worker-compaction-sidecar.d.ts +21 -0
- package/dist/src/runtime/context/super-worker-compaction-sidecar.js +67 -0
- package/dist/src/runtime/context/verified-compaction-projection.d.ts +7 -0
- package/dist/src/runtime/context/verified-compaction-projection.js +16 -0
- package/dist/src/runtime/default-environment-adapters.d.ts +4 -0
- package/dist/src/runtime/default-environment-adapters.js +7 -1
- package/dist/src/runtime/local-application.d.ts +277 -0
- package/dist/src/runtime/local-application.js +7 -0
- package/dist/src/runtime/local-host/app-learning-dispatch.js +0 -8
- package/dist/src/runtime/local-host/app-native-permissions.d.ts +20 -0
- package/dist/src/runtime/local-host/app-native-permissions.js +76 -0
- package/dist/src/runtime/local-host/app-owner.js +12 -1
- package/dist/src/runtime/local-host/app-request-control.d.ts +1 -0
- package/dist/src/runtime/local-host/app-request-control.js +5 -0
- package/dist/src/runtime/local-host/app-service-dispatch.d.ts +2 -1
- package/dist/src/runtime/local-host/app-service-dispatch.js +31 -0
- package/dist/src/runtime/local-host/client-learning.d.ts +1 -1
- package/dist/src/runtime/local-host/client-learning.js +0 -1
- package/dist/src/runtime/local-host/client-native-permissions.d.ts +4 -0
- package/dist/src/runtime/local-host/client-native-permissions.js +37 -0
- package/dist/src/runtime/local-host/client-services.d.ts +273 -0
- package/dist/src/runtime/local-host/client-services.js +3 -2
- package/dist/src/runtime/local-host/learning-preferences-input.js +1 -0
- package/dist/src/runtime/model/context-compaction-admission.d.ts +21 -0
- package/dist/src/runtime/model/context-compaction-admission.js +214 -0
- package/dist/src/runtime/model/context-compaction-contracts.d.ts +32 -0
- package/dist/src/runtime/model/context-compaction-contracts.js +1 -0
- package/dist/src/runtime/model/context-compaction-diagnostics.d.ts +33 -0
- package/dist/src/runtime/model/context-compaction-diagnostics.js +97 -0
- package/dist/src/runtime/model/context-compaction-stage-plan.d.ts +3 -0
- package/dist/src/runtime/model/context-compaction-stage-plan.js +28 -0
- package/dist/src/runtime/model/input-token-count.d.ts +1 -0
- package/dist/src/runtime/model/input-token-count.js +4 -1
- package/dist/src/runtime/model/invoke-step.js +80 -126
- package/dist/src/runtime/model/invoke-structured-step.d.ts +1 -1
- package/dist/src/runtime/model/invoke-structured-step.js +3 -2
- package/dist/src/runtime/model/model-context-assessment.d.ts +17 -0
- package/dist/src/runtime/model/model-context-assessment.js +51 -0
- package/dist/src/runtime/model/model-context-budget.js +1 -0
- package/dist/src/runtime/model/model-step-acceptance.d.ts +4 -0
- package/dist/src/runtime/model/model-step-acceptance.js +28 -0
- package/dist/src/runtime/model/model-step-port.d.ts +4 -15
- package/dist/src/runtime/model/model-step-steering.d.ts +14 -1
- package/dist/src/runtime/model/model-step-steering.js +23 -0
- package/dist/src/runtime/orchestration/capability-adapters/result.d.ts +4 -1
- package/dist/src/runtime/orchestration/capability-adapters/result.js +11 -7
- package/dist/src/runtime/orchestration/role-calls/child-return.d.ts +5 -1
- package/dist/src/runtime/orchestration/role-calls/child-return.js +2 -2
- package/dist/src/runtime/orchestration/worker-capabilities/binding/invocation-preparation.js +1 -8
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +3 -4
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +1 -1
- package/dist/src/runtime/orchestration/worker-capabilities/execution/context-projection.js +2 -1
- package/dist/src/runtime/orchestration/worker-capabilities/payload-assignment-validation.js +9 -9
- package/dist/src/runtime/orchestration/worker-capabilities/payload-author.js +9 -33
- package/dist/src/runtime/orchestration/worker-capabilities/payload-body-normalization.d.ts +12 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-body-normalization.js +80 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.d.ts +3 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.js +14 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-context-snapshot.d.ts +2 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-context-snapshot.js +12 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-contracts.d.ts +5 -1
- package/dist/src/runtime/orchestration/worker-capabilities/payload-instructions.js +1 -1
- package/dist/src/runtime/passive-learning/background-dependencies.d.ts +0 -1
- package/dist/src/runtime/passive-learning/contracts.d.ts +2 -3
- package/dist/src/runtime/passive-learning/proactive/agent.d.ts +3 -0
- package/dist/src/runtime/passive-learning/proactive/agent.js +36 -14
- package/dist/src/runtime/passive-learning/proactive/contracts.d.ts +7 -1
- package/dist/src/runtime/passive-learning/proactive/contracts.js +8 -1
- package/dist/src/runtime/passive-learning/proactive/conversation-style-prompt.d.ts +1 -0
- package/dist/src/runtime/passive-learning/proactive/conversation-style-prompt.js +6 -0
- package/dist/src/runtime/passive-learning/proactive/conversation-style-reference.d.ts +30 -0
- package/dist/src/runtime/passive-learning/proactive/conversation-style-reference.js +61 -0
- package/dist/src/runtime/passive-learning/proactive/handoff-brief.d.ts +1 -0
- package/dist/src/runtime/passive-learning/proactive/handoff-brief.js +4 -0
- package/dist/src/runtime/passive-learning/proactive/model-output.d.ts +1 -1
- package/dist/src/runtime/passive-learning/proactive/model-output.js +5 -4
- package/dist/src/runtime/passive-learning/proactive/model.d.ts +7 -1
- package/dist/src/runtime/passive-learning/proactive/model.js +58 -32
- package/dist/src/runtime/passive-learning/proactive/prompt.d.ts +1 -1
- package/dist/src/runtime/passive-learning/proactive/prompt.js +4 -2
- package/dist/src/runtime/passive-learning/proactive/staged-authoring.d.ts +14 -0
- package/dist/src/runtime/passive-learning/proactive/staged-authoring.js +27 -0
- package/dist/src/runtime/passive-learning/proactive/staged-context.d.ts +13 -0
- package/dist/src/runtime/passive-learning/proactive/staged-context.js +39 -4
- package/dist/src/runtime/passive-learning/proactive/staged-contract.d.ts +3 -0
- package/dist/src/runtime/passive-learning/proactive/staged-contract.js +4 -0
- package/dist/src/runtime/passive-learning/proactive/staged-format.d.ts +5 -1
- package/dist/src/runtime/passive-learning/proactive/staged-format.js +2 -4
- package/dist/src/runtime/passive-learning/proactive/staged-output.d.ts +3 -4
- package/dist/src/runtime/passive-learning/proactive/staged-output.js +13 -5
- package/dist/src/runtime/passive-learning/proactive/staged-progress-store.d.ts +0 -1
- package/dist/src/runtime/passive-learning/proactive/staged-progress-store.js +2 -18
- package/dist/src/runtime/passive-learning/proactive/staged-prompt.d.ts +3 -1
- package/dist/src/runtime/passive-learning/proactive/staged-prompt.js +13 -4
- package/dist/src/runtime/passive-learning/proactive/staged-review.d.ts +1 -1
- package/dist/src/runtime/passive-learning/proactive/staged-review.js +10 -11
- package/dist/src/runtime/passive-learning/proactive/store.d.ts +1 -1
- package/dist/src/runtime/passive-learning/proactive/store.js +11 -5
- package/dist/src/runtime/passive-learning/review-progress.d.ts +1 -1
- package/dist/src/runtime/passive-learning/review-progress.js +2 -2
- package/dist/src/runtime/passive-learning/service-status.js +2 -2
- package/dist/src/runtime/passive-learning/service.js +0 -6
- package/dist/src/runtime/passive-learning/spark-chat-preferences.d.ts +3 -0
- package/dist/src/runtime/passive-learning/spark-chat-preferences.js +8 -0
- package/dist/src/runtime/passive-learning/staged-review-call.d.ts +3 -0
- package/dist/src/runtime/passive-learning/staged-review-call.js +19 -13
- package/dist/src/runtime/passive-learning/store.js +4 -0
- package/dist/src/runtime/plugins/manifest-projection.js +4 -0
- package/dist/src/runtime/plugins/manifest-validator.js +7 -0
- package/dist/src/runtime/ports.d.ts +14 -1
- package/dist/src/runtime/request/approval-wait/activation-events.d.ts +5 -0
- package/dist/src/runtime/request/approval-wait/activation-events.js +4 -3
- package/dist/src/runtime/request/approval-wait/snapshot.d.ts +1 -1
- package/dist/src/runtime/request/approval-wait/snapshot.js +1 -0
- package/dist/src/runtime/request/approval-wait/super-compaction-restore.d.ts +20 -0
- package/dist/src/runtime/request/approval-wait/super-compaction-restore.js +61 -0
- package/dist/src/runtime/request/automation-output-contract.d.ts +6 -0
- package/dist/src/runtime/request/automation-output-contract.js +33 -0
- package/dist/src/runtime/request/contracts.d.ts +16 -0
- package/dist/src/runtime/request/execution-agent-root-execution.js +2 -0
- package/dist/src/runtime/request/execution-facets.js +7 -0
- package/dist/src/runtime/request/execution-payload-compacted-evidence.d.ts +64 -0
- package/dist/src/runtime/request/execution-payload-compacted-evidence.js +46 -0
- package/dist/src/runtime/request/execution-scope-surfaces.d.ts +2 -0
- package/dist/src/runtime/request/execution-scope-surfaces.js +28 -0
- package/dist/src/runtime/request/execution-scope.d.ts +8 -2
- package/dist/src/runtime/request/execution-scope.js +14 -2
- package/dist/src/runtime/request/handler.d.ts +7 -0
- package/dist/src/runtime/request/handler.js +196 -35
- package/dist/src/runtime/request/locked-request-steering.d.ts +3 -0
- package/dist/src/runtime/request/locked-request-steering.js +12 -0
- package/dist/src/runtime/request/policy-degraded-finalization.d.ts +10 -0
- package/dist/src/runtime/request/policy-degraded-finalization.js +27 -0
- package/dist/src/runtime/request/prepared-execution.d.ts +10 -1
- package/dist/src/runtime/request/prepared-execution.js +43 -8
- package/dist/src/runtime/request/request-steering.d.ts +1 -1
- package/dist/src/runtime/request/result.d.ts +3 -0
- package/dist/src/runtime/request/role-executor-composition.js +4 -3
- package/dist/src/runtime/request/root-contract.d.ts +2 -0
- package/dist/src/runtime/request/root-execution-kernel.js +10 -9
- package/dist/src/runtime/request/root-invalid-output.js +16 -1
- package/dist/src/runtime/request/session-admission.d.ts +6 -0
- package/dist/src/runtime/request/session-admission.js +47 -14
- package/dist/src/runtime/request/super-checkpoint-quarantine.d.ts +8 -0
- package/dist/src/runtime/request/super-checkpoint-quarantine.js +76 -0
- package/dist/src/runtime/request/super-context-failure-executor.d.ts +4 -0
- package/dist/src/runtime/request/super-context-failure-executor.js +68 -0
- package/dist/src/runtime/request/super-context-failure-integrity.d.ts +16 -0
- package/dist/src/runtime/request/super-context-failure-integrity.js +130 -0
- package/dist/src/runtime/request/super-context-scope.d.ts +9 -0
- package/dist/src/runtime/request/super-context-scope.js +65 -0
- package/dist/src/runtime/request/super-failure-explanation.d.ts +22 -0
- package/dist/src/runtime/request/super-failure-explanation.js +77 -0
- package/dist/src/runtime/request/super-failure-message.d.ts +10 -0
- package/dist/src/runtime/request/super-failure-message.js +40 -0
- package/dist/src/runtime/request/super-payload-context-failure.d.ts +11 -0
- package/dist/src/runtime/request/super-payload-context-failure.js +55 -0
- package/dist/src/runtime/request/super-root-failure-finalization.d.ts +23 -0
- package/dist/src/runtime/request/super-root-failure-finalization.js +112 -0
- package/dist/src/runtime/request/worker-capability-composition.d.ts +2 -0
- package/dist/src/runtime/request/worker-capability-composition.js +4 -1
- package/dist/src/runtime/request/worker-capability-payload.d.ts +2 -1
- package/dist/src/runtime/request/worker-capability-payload.js +74 -48
- package/dist/src/runtime/runtime-environment.d.ts +3 -1
- package/dist/src/runtime/runtime-environment.js +167 -1
- package/dist/src/runtime/scheduler/automation-job-management.d.ts +12 -0
- package/dist/src/runtime/scheduler/automation-job-management.js +288 -0
- package/dist/src/runtime/scheduler/automation-rerun.d.ts +6 -0
- package/dist/src/runtime/scheduler/automation-rerun.js +95 -0
- package/dist/src/runtime/scheduler/automation-run-budget.d.ts +4 -0
- package/dist/src/runtime/scheduler/automation-run-budget.js +16 -0
- package/dist/src/runtime/scheduler/automation-run-change-events.d.ts +11 -0
- package/dist/src/runtime/scheduler/automation-run-change-events.js +77 -0
- package/dist/src/runtime/scheduler/automation-run-completion.d.ts +11 -0
- package/dist/src/runtime/scheduler/automation-run-completion.js +93 -0
- package/dist/src/runtime/scheduler/automation-run-control.d.ts +3 -0
- package/dist/src/runtime/scheduler/automation-run-control.js +48 -0
- package/dist/src/runtime/scheduler/automation-run-records.d.ts +5 -0
- package/dist/src/runtime/scheduler/automation-run-records.js +37 -0
- package/dist/src/runtime/scheduler/automation-schedule.d.ts +10 -0
- package/dist/src/runtime/scheduler/automation-schedule.js +48 -0
- package/dist/src/runtime/scheduler/automation-scheduler-engine.d.ts +4 -0
- package/dist/src/runtime/scheduler/automation-scheduler-engine.js +188 -0
- package/dist/src/runtime/scheduler/automation-snapshot-validation.d.ts +3 -0
- package/dist/src/runtime/scheduler/automation-snapshot-validation.js +106 -0
- package/dist/src/runtime/scheduler/contracts.d.ts +143 -3
- package/dist/src/runtime/scheduler/file-store.js +15 -1
- package/dist/src/runtime/scheduler/job-management.js +3 -2
- package/dist/src/runtime/scheduler/journal-automation-index.d.ts +23 -0
- package/dist/src/runtime/scheduler/journal-automation-index.js +205 -0
- package/dist/src/runtime/scheduler/journal-automation-transaction.d.ts +11 -0
- package/dist/src/runtime/scheduler/journal-automation-transaction.js +90 -0
- package/dist/src/runtime/scheduler/journal-checkpoint.js +5 -2
- package/dist/src/runtime/scheduler/journal-head.d.ts +1 -1
- package/dist/src/runtime/scheduler/journal-head.js +2 -2
- package/dist/src/runtime/scheduler/journal-index-state.d.ts +21 -10
- package/dist/src/runtime/scheduler/journal-index-state.js +76 -17
- package/dist/src/runtime/scheduler/journal-index.d.ts +9 -3
- package/dist/src/runtime/scheduler/journal-index.js +84 -9
- package/dist/src/runtime/scheduler/journal-store.d.ts +9 -1
- package/dist/src/runtime/scheduler/journal-store.js +110 -7
- package/dist/src/runtime/scheduler/journal-transaction.d.ts +7 -4
- package/dist/src/runtime/scheduler/journal-transaction.js +13 -2
- package/dist/src/runtime/scheduler/next-occurrence.js +2 -0
- package/dist/src/runtime/scheduler/run-completion.js +2 -1
- package/dist/src/runtime/scheduler/run-records.js +8 -3
- package/dist/src/runtime/scheduler/schedule-update.d.ts +2 -2
- package/dist/src/runtime/scheduler/schedule-validation.d.ts +2 -2
- package/dist/src/runtime/scheduler/schedule-validation.js +2 -0
- package/dist/src/runtime/scheduler/scheduler-engine.js +24 -8
- package/dist/src/runtime/scheduler/scheduler-service.d.ts +4 -1
- package/dist/src/runtime/scheduler/scheduler-service.js +83 -10
- package/dist/src/runtime/scheduler/scheduler-target.d.ts +9 -0
- package/dist/src/runtime/scheduler/scheduler-target.js +41 -0
- package/dist/src/runtime/scheduler/service-context.d.ts +6 -2
- package/dist/src/runtime/scheduler/service-context.js +6 -3
- package/dist/src/runtime/scheduler/snapshot-validation.d.ts +3 -3
- package/dist/src/runtime/scheduler/snapshot-validation.js +21 -1
- package/dist/src/runtime/scheduler/startup-recovery.d.ts +1 -1
- package/dist/src/runtime/scheduler/startup-recovery.js +15 -2
- package/dist/src/runtime/scheduler/working-store.js +8 -0
- package/dist/src/runtime/session/request-session.d.ts +1 -0
- package/dist/src/runtime/session/request-session.js +1 -0
- package/dist/src/runtime/session/session-deletion-boundary.d.ts +1 -1
- package/dist/src/runtime/session/session-deletion-boundary.js +6 -2
- package/dist/src/runtime/session/session-lifecycle-store.d.ts +4 -1
- package/dist/src/runtime/session/session-lifecycle-store.js +32 -4
- package/dist/src/runtime/session/spark-session-attachments.d.ts +4 -0
- package/dist/src/runtime/session/spark-session-attachments.js +28 -0
- package/dist/src/runtime/session/spark-session-cleanup-receipt.d.ts +7 -0
- package/dist/src/runtime/session/spark-session-cleanup-receipt.js +61 -0
- package/dist/src/runtime/session/spark-session-clear.d.ts +6 -0
- package/dist/src/runtime/session/spark-session-clear.js +36 -0
- package/dist/src/runtime/session/terminal-response.d.ts +21 -0
- package/dist/src/runtime/session/terminal-response.js +38 -0
- package/dist/src/runtime/steps/auditor-decision/advisory-receipt.d.ts +1 -0
- package/dist/src/runtime/steps/auditor-decision/advisory-receipt.js +12 -0
- package/dist/src/runtime/steps/auditor-decision/contracts.d.ts +4 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-coverage.js +5 -5
- package/dist/src/runtime/steps/auditor-decision/evidence-inventory.d.ts +2 -1
- package/dist/src/runtime/steps/auditor-decision/evidence-inventory.js +12 -1
- package/dist/src/runtime/steps/auditor-decision/evidence-representation.d.ts +8 -2
- package/dist/src/runtime/steps/auditor-decision/evidence-representation.js +14 -1
- package/dist/src/runtime/steps/auditor-decision/input.d.ts +2 -0
- package/dist/src/runtime/steps/auditor-decision/input.js +12 -3
- package/dist/src/runtime/steps/auditor-decision/projection.js +20 -1
- package/dist/src/runtime/steps/auditor-decision/prompt.js +6 -6
- package/dist/src/runtime/steps/auditor-decision/run.js +2 -3
- package/dist/src/runtime/steps/capability-execution-instructions.d.ts +5 -0
- package/dist/src/runtime/steps/capability-execution-instructions.js +5 -0
- package/dist/src/runtime/steps/degraded-finalization/contract.d.ts +3 -0
- package/dist/src/runtime/steps/degraded-finalization/fallback.js +14 -4
- package/dist/src/runtime/steps/degraded-finalization/input.js +11 -1
- package/dist/src/runtime/steps/degraded-finalization/output-limit-cause.d.ts +4 -0
- package/dist/src/runtime/steps/degraded-finalization/output-limit-cause.js +17 -0
- package/dist/src/runtime/steps/degraded-finalization/prompt.js +4 -1
- package/dist/src/runtime/steps/degraded-finalization/super.d.ts +20 -0
- package/dist/src/runtime/steps/degraded-finalization/super.js +128 -0
- package/dist/src/runtime/steps/execution-agent/capability-decision-parsing.d.ts +1 -0
- package/dist/src/runtime/steps/execution-agent/capability-decision-parsing.js +21 -3
- package/dist/src/runtime/steps/execution-agent/capability-invocation-contract.d.ts +1 -1
- package/dist/src/runtime/steps/execution-agent/capability-invocation-contract.js +4 -2
- package/dist/src/runtime/steps/execution-agent/capability-selection-schema.d.ts +3 -0
- package/dist/src/runtime/steps/execution-agent/capability-selection-schema.js +72 -0
- package/dist/src/runtime/steps/execution-agent/compaction.d.ts +5 -2
- package/dist/src/runtime/steps/execution-agent/compaction.js +10 -4
- package/dist/src/runtime/steps/execution-agent/contracts.d.ts +14 -2
- package/dist/src/runtime/steps/execution-agent/controls-compacted-evidence.d.ts +16 -0
- package/dist/src/runtime/steps/execution-agent/controls-compacted-evidence.js +67 -0
- package/dist/src/runtime/steps/execution-agent/controls-evidence-contract.d.ts +21 -0
- package/dist/src/runtime/steps/execution-agent/controls-evidence-contract.js +64 -0
- package/dist/src/runtime/steps/execution-agent/controls-evidence.d.ts +32 -0
- package/dist/src/runtime/steps/execution-agent/controls-evidence.js +119 -0
- package/dist/src/runtime/steps/execution-agent/decision-parsing.js +1 -0
- package/dist/src/runtime/steps/execution-agent/format.d.ts +2 -0
- package/dist/src/runtime/steps/execution-agent/format.js +9 -68
- package/dist/src/runtime/steps/execution-agent/input.js +19 -2
- package/dist/src/runtime/steps/execution-agent/prompt.d.ts +1 -0
- package/dist/src/runtime/steps/execution-agent/prompt.js +15 -2
- package/dist/src/runtime/steps/execution-agent/refinement-input.d.ts +32 -0
- package/dist/src/runtime/steps/execution-agent/refinement-input.js +146 -0
- package/dist/src/runtime/steps/execution-agent/refinement-prompt.d.ts +1 -0
- package/dist/src/runtime/steps/execution-agent/refinement-prompt.js +11 -0
- package/dist/src/runtime/steps/execution-agent/refinement.d.ts +4 -4
- package/dist/src/runtime/steps/execution-agent/refinement.js +18 -108
- package/dist/src/runtime/steps/execution-agent/response-input.js +13 -6
- package/dist/src/runtime/steps/execution-agent/response-prompt.js +1 -1
- package/dist/src/runtime/steps/execution-agent/response-run.js +19 -5
- package/dist/src/runtime/steps/execution-agent/run.js +9 -3
- package/dist/src/runtime/steps/execution-agent/state-context.d.ts +1 -1
- package/dist/src/runtime/steps/execution-agent/state-context.js +20 -5
- package/dist/src/runtime/steps/planner-decision/input.js +7 -0
- package/dist/src/runtime/steps/planner-decision/resume.d.ts +2 -1
- package/dist/src/runtime/steps/planner-decision/resume.js +3 -3
- package/dist/src/runtime/steps/planner-decision/run.js +13 -0
- package/dist/src/runtime/steps/planner-graph/prompt.js +2 -0
- package/dist/src/runtime/steps/planner-graph/run.js +1 -0
- package/dist/src/runtime/steps/reviewer-decision/projection.js +5 -0
- package/dist/src/runtime/steps/reviewer-decision/run.js +13 -0
- package/dist/src/runtime/steps/supervisor-decision/input.d.ts +1 -1
- package/dist/src/runtime/steps/supervisor-decision/input.js +2 -0
- package/dist/src/runtime/steps/supervisor-decision/run.js +14 -0
- package/dist/src/runtime/steps/supervisor-decision/working-directory.d.ts +2 -0
- package/dist/src/runtime/steps/supervisor-decision/working-directory.js +6 -0
- package/dist/src/runtime/steps/supervisor-response/input.d.ts +1 -1
- package/dist/src/runtime/steps/supervisor-response/input.js +14 -7
- package/dist/src/runtime/steps/supervisor-response/run.js +39 -9
- package/dist/src/runtime/steps/worker-decision/compaction-integrity.d.ts +11 -0
- package/dist/src/runtime/steps/worker-decision/compaction-integrity.js +40 -0
- package/dist/src/runtime/steps/worker-decision/input/reference-context.js +7 -0
- package/dist/src/runtime/steps/worker-decision/input/types.d.ts +4 -1
- package/dist/src/runtime/steps/worker-decision/prompt.js +9 -2
- package/dist/src/runtime/steps/worker-decision/result-author.js +4 -0
- package/dist/src/runtime/steps/worker-decision/run.js +12 -49
- package/dist/src/runtime/steps/worker-decision/worker-handoff-compaction.d.ts +4 -0
- package/dist/src/runtime/steps/worker-decision/worker-handoff-compaction.js +69 -0
- package/dist/src/sessions/assistant-initiative-append.d.ts +14 -0
- package/dist/src/sessions/assistant-initiative-append.js +64 -0
- package/dist/src/sessions/assistant-initiative.d.ts +4 -0
- package/dist/src/sessions/assistant-initiative.js +7 -1
- package/dist/src/sessions/automation-session-origin.d.ts +34 -0
- package/dist/src/sessions/automation-session-origin.js +78 -0
- package/dist/src/sessions/automation-session-store.d.ts +12 -0
- package/dist/src/sessions/automation-session-store.js +129 -0
- package/dist/src/sessions/index.d.ts +1 -0
- package/dist/src/sessions/index.js +3 -0
- package/dist/src/sessions/memory/source.d.ts +1 -1
- package/dist/src/sessions/memory/source.js +4 -11
- package/dist/src/sessions/project-binding.d.ts +1 -0
- package/dist/src/sessions/record/projection.d.ts +1 -0
- package/dist/src/sessions/record/projection.js +4 -0
- package/dist/src/sessions/session-service.d.ts +9 -0
- package/dist/src/sessions/session-service.js +53 -4
- package/dist/src/sessions/spark-handoff-brief.d.ts +3 -0
- package/dist/src/sessions/spark-handoff-brief.js +9 -0
- package/dist/src/sessions/spark-session.d.ts +13 -0
- package/dist/src/sessions/spark-session.js +25 -0
- package/dist/src/sessions/types.d.ts +5 -0
- package/dist/src/web-ui/app/ARCHITECTURE.md +89 -0
- package/dist/src/web-ui/app/app-bootstrap.js +24 -2
- package/dist/src/web-ui/app/app-dom.js +5 -0
- package/dist/src/web-ui/app/app-realtime-transport.js +27 -2
- package/dist/src/web-ui/app/app.js +5 -10
- package/dist/src/web-ui/app/automations-feature.js +103 -0
- package/dist/src/web-ui/app/components/automations/archive-actions.js +20 -0
- package/dist/src/web-ui/app/components/automations/authoring-entry.js +25 -0
- package/dist/src/web-ui/app/components/automations/binding-editor.js +101 -0
- package/dist/src/web-ui/app/components/automations/binding-fields.js +166 -0
- package/dist/src/web-ui/app/components/automations/chat-run-projection.js +280 -0
- package/dist/src/web-ui/app/components/automations/draft-recovery-actions.js +28 -0
- package/dist/src/web-ui/app/components/automations/editor-action-icons.js +18 -0
- package/dist/src/web-ui/app/components/automations/editor-actions.js +57 -0
- package/dist/src/web-ui/app/components/automations/editor.js +218 -0
- package/dist/src/web-ui/app/components/automations/failure-presentation.js +299 -0
- package/dist/src/web-ui/app/components/automations/library-tabs.js +45 -0
- package/dist/src/web-ui/app/components/automations/list.js +58 -0
- package/dist/src/web-ui/app/components/automations/live-view.js +39 -0
- package/dist/src/web-ui/app/components/automations/node-inspector.js +251 -0
- package/dist/src/web-ui/app/components/automations/permission-selection.js +37 -0
- package/dist/src/web-ui/app/components/automations/rerun-confirmation.js +16 -0
- package/dist/src/web-ui/app/components/automations/run-output-view.js +100 -0
- package/dist/src/web-ui/app/components/automations/run-report-view.js +224 -0
- package/dist/src/web-ui/app/components/automations/run-step-selection.js +7 -0
- package/dist/src/web-ui/app/components/automations/run-steps-view.js +33 -0
- package/dist/src/web-ui/app/components/automations/run.js +38 -0
- package/dist/src/web-ui/app/components/automations/schema-literal-inputs.js +212 -0
- package/dist/src/web-ui/app/components/automations/step-editor-dialog.js +243 -0
- package/dist/src/web-ui/app/components/automations/step-preview.js +48 -0
- package/dist/src/web-ui/app/components/automations/template-gallery.js +74 -0
- package/dist/src/web-ui/app/components/automations/timeline-camera.js +219 -0
- package/dist/src/web-ui/app/components/automations/timeline.js +141 -0
- package/dist/src/web-ui/app/components/automations/tool-identity.js +25 -0
- package/dist/src/web-ui/app/components/automations/workspace.js +462 -0
- package/dist/src/web-ui/app/components/composer-context-window.js +24 -13
- package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +2 -2
- package/dist/src/web-ui/app/components/conversation-activity.d.ts +2 -28
- package/dist/src/web-ui/app/components/conversation-activity.js +23 -60
- package/dist/src/web-ui/app/components/conversation-status.js +3 -2
- package/dist/src/web-ui/app/components/conversation-view.js +36 -14
- package/dist/src/web-ui/app/components/dashboard/automations.js +28 -0
- package/dist/src/web-ui/app/components/dashboard/workspace.js +9 -0
- package/dist/src/web-ui/app/components/notifications/dom.js +1 -1
- package/dist/src/web-ui/app/components/notifications/feedback.js +34 -0
- package/dist/src/web-ui/app/components/notifications/pagination.js +13 -0
- package/dist/src/web-ui/app/components/notifications/presentation.js +25 -4
- package/dist/src/web-ui/app/components/notifications/tabs.js +49 -0
- package/dist/src/web-ui/app/components/notifications/workspace.js +19 -26
- package/dist/src/web-ui/app/components/onboarding-workspace-access.js +1 -1
- package/dist/src/web-ui/app/components/passive-learning/agent-state.js +0 -5
- package/dist/src/web-ui/app/components/passive-learning/agent-view.js +1 -1
- package/dist/src/web-ui/app/components/passive-learning/home.js +0 -4
- package/dist/src/web-ui/app/components/passive-learning/memory.js +0 -3
- package/dist/src/web-ui/app/components/passive-learning/settings-view.js +2 -2
- package/dist/src/web-ui/app/components/passive-learning/workspace-view.js +3 -3
- package/dist/src/web-ui/app/components/runtime-setup/optional-steps.js +7 -1
- package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +5 -1
- package/dist/src/web-ui/app/components/runtime-setup-guide.js +6 -3
- package/dist/src/web-ui/app/components/schedules/details.js +3 -2
- package/dist/src/web-ui/app/components/schedules/form.js +4 -4
- package/dist/src/web-ui/app/components/spark-chat/empty-state.js +45 -0
- package/dist/src/web-ui/app/components/spark-chat/handoff-actions.js +59 -0
- package/dist/src/web-ui/app/components/spark-chat/mascot-activity.js +27 -0
- package/dist/src/web-ui/app/components/spark-chat/motion.js +52 -0
- package/dist/src/web-ui/app/components/spark-chat/panel.js +109 -0
- package/dist/src/web-ui/app/components/spark-chat/placement.js +198 -0
- package/dist/src/web-ui/app/components/spark-chat/results.js +44 -0
- package/dist/src/web-ui/app/components/spark-chat/settings.js +84 -0
- package/dist/src/web-ui/app/components/system-host/macos-permission-preparation.js +83 -0
- package/dist/src/web-ui/app/components/system-host/macos-permission-rendering.js +85 -0
- package/dist/src/web-ui/app/components/system-host/macos-permission-scopes.js +51 -0
- package/dist/src/web-ui/app/components/system-host/manager.js +34 -0
- package/dist/src/web-ui/app/components/system-host/rendering.js +12 -4
- package/dist/src/web-ui/app/components/workspace-shell.js +39 -6
- package/dist/src/web-ui/app/computer-access-feature.js +5 -0
- package/dist/src/web-ui/app/configuration-feature.js +1 -0
- package/dist/src/web-ui/app/controllers/app-event-bindings.js +24 -2
- package/dist/src/web-ui/app/controllers/automation-draft-actions.js +153 -0
- package/dist/src/web-ui/app/controllers/automation-management-actions.js +75 -0
- package/dist/src/web-ui/app/controllers/automation-mutation-lifecycle.js +32 -0
- package/dist/src/web-ui/app/controllers/automation-read-projection.js +63 -0
- package/dist/src/web-ui/app/controllers/automation-run-actions.js +54 -0
- package/dist/src/web-ui/app/controllers/automation-view-scope.js +19 -0
- package/dist/src/web-ui/app/controllers/automations-controller.js +395 -0
- package/dist/src/web-ui/app/controllers/composer-queue-controller.d.ts +1 -0
- package/dist/src/web-ui/app/controllers/composer-queue-controller.js +18 -12
- package/dist/src/web-ui/app/controllers/conversation-session-controller.js +38 -15
- package/dist/src/web-ui/app/controllers/conversation-view-feature.js +1 -14
- package/dist/src/web-ui/app/controllers/dashboard-controller.js +42 -1
- package/dist/src/web-ui/app/controllers/notifications-controller.js +1 -1
- package/dist/src/web-ui/app/controllers/passive-learning-controller.js +33 -85
- package/dist/src/web-ui/app/controllers/projects-controller.d.ts +2 -0
- package/dist/src/web-ui/app/controllers/projects-controller.js +53 -18
- package/dist/src/web-ui/app/controllers/realtime-event-controller.js +42 -160
- package/dist/src/web-ui/app/controllers/request-lifecycle-controller.js +2 -0
- package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.d.ts +4 -1
- package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.js +14 -3
- package/dist/src/web-ui/app/controllers/schedules-controller.js +11 -19
- package/dist/src/web-ui/app/controllers/spark-chat-notices.js +34 -0
- package/dist/src/web-ui/app/controllers/spark-chat-reading.js +145 -0
- package/dist/src/web-ui/app/controllers/spark-chat-sync.js +151 -0
- package/dist/src/web-ui/app/controllers/spark-handoff-navigation.js +32 -0
- package/dist/src/web-ui/app/controllers/workspace-route-controller.js +21 -1
- package/dist/src/web-ui/app/dashboard-feature.js +0 -1
- package/dist/src/web-ui/app/index.html +12 -10
- package/dist/src/web-ui/app/lib/automation-binding-producers.js +47 -0
- package/dist/src/web-ui/app/lib/automation-graph-position.js +19 -0
- package/dist/src/web-ui/app/lib/automation-parallel-depth.js +19 -0
- package/dist/src/web-ui/app/lib/configuration-pages.js +3 -5
- package/dist/src/web-ui/app/lib/context-compaction-state.d.ts +41 -0
- package/dist/src/web-ui/app/lib/context-compaction-state.js +172 -0
- package/dist/src/web-ui/app/lib/context-window-measurement.d.ts +33 -0
- package/dist/src/web-ui/app/lib/context-window-measurement.js +99 -0
- package/dist/src/web-ui/app/lib/context-window-replay.d.ts +32 -0
- package/dist/src/web-ui/app/lib/context-window-replay.js +38 -0
- package/dist/src/web-ui/app/lib/context-window-snapshot-order.d.ts +16 -8
- package/dist/src/web-ui/app/lib/context-window-snapshot-order.js +29 -9
- package/dist/src/web-ui/app/lib/context-window-state.d.ts +80 -0
- package/dist/src/web-ui/app/lib/context-window-state.js +341 -0
- package/dist/src/web-ui/app/lib/conversation-status-model.js +15 -3
- package/dist/src/web-ui/app/lib/realtime-message.js +9 -0
- package/dist/src/web-ui/app/lib/schedule-conversation-presentation.js +19 -0
- package/dist/src/web-ui/app/lib/schedule-presentation.js +2 -2
- package/dist/src/web-ui/app/lib/spark-chat-address.js +22 -0
- package/dist/src/web-ui/app/lib/spark-chat-presentation.js +16 -0
- package/dist/src/web-ui/app/lib/spark-chat-read-state.js +13 -0
- package/dist/src/web-ui/app/lib/spark-proposal-message.js +7 -0
- package/dist/src/web-ui/app/lib/tool-activity-event.d.ts +1 -0
- package/dist/src/web-ui/app/lib/tool-activity-event.js +6 -2
- package/dist/src/web-ui/app/lib/tool-activity-model.js +1 -0
- package/dist/src/web-ui/app/lib/tool-approval-acknowledgement.js +7 -0
- package/dist/src/web-ui/app/lib/tool-automation-activity-fields.js +59 -0
- package/dist/src/web-ui/app/lib/tool-process-activity-fields.js +1 -1
- package/dist/src/web-ui/app/lib/workspace-change.js +2 -2
- package/dist/src/web-ui/app/lib/workspace-route.d.ts +3 -0
- package/dist/src/web-ui/app/lib/workspace-route.js +13 -2
- package/dist/src/web-ui/app/notifications-feature.js +13 -0
- package/dist/src/web-ui/app/passive-learning-feature.js +5 -30
- package/dist/src/web-ui/app/projects-feature.js +16 -5
- package/dist/src/web-ui/app/runtime-onboarding-feature.js +1 -0
- package/dist/src/web-ui/app/services/client-preferences.d.ts +0 -2
- package/dist/src/web-ui/app/services/client-preferences.js +0 -2
- package/dist/src/web-ui/app/services/runtime-web-client/automations.d.ts +36 -0
- package/dist/src/web-ui/app/services/runtime-web-client/automations.js +63 -0
- package/dist/src/web-ui/app/services/runtime-web-client/learning.js +0 -9
- package/dist/src/web-ui/app/services/runtime-web-client/spark-chat.d.ts +22 -0
- package/dist/src/web-ui/app/services/runtime-web-client/spark-chat.js +29 -0
- package/dist/src/web-ui/app/services/runtime-web-client/system-host.js +4 -2
- package/dist/src/web-ui/app/services/runtime-web-client.d.ts +24 -4
- package/dist/src/web-ui/app/services/runtime-web-client.js +5 -1
- package/dist/src/web-ui/app/spark-chat-conversation.js +217 -0
- package/dist/src/web-ui/app/spark-chat-feature.js +187 -0
- package/dist/src/web-ui/app/spark-mascot.svg +12 -0
- package/dist/src/web-ui/app/styles/11-workspace-header-width.css +48 -14
- package/dist/src/web-ui/app/styles/11-workspace-rail.css +6 -0
- package/dist/src/web-ui/app/styles/19-dashboard-automations.css +32 -0
- package/dist/src/web-ui/app/styles/41-co-worker-agent.css +6 -25
- package/dist/src/web-ui/app/styles/46-system-host.css +17 -0
- package/dist/src/web-ui/app/styles/48-notifications.css +14 -8
- package/dist/src/web-ui/app/styles/50-automations.css +353 -0
- package/dist/src/web-ui/app/styles/51-automation-editor-actions.css +35 -0
- package/dist/src/web-ui/app/styles/51-automation-templates.css +39 -0
- package/dist/src/web-ui/app/styles/52-automation-reports.css +84 -0
- package/dist/src/web-ui/app/styles/52-automation-step-editor.css +73 -0
- package/dist/src/web-ui/app/styles/53-automation-schema-inputs.css +21 -0
- package/dist/src/web-ui/app/styles/54-spark-chat.css +111 -0
- package/dist/src/web-ui/app/styles/94-automations-responsive.css +35 -0
- package/dist/src/web-ui/app/styles.css +9 -1
- package/dist/src/web-ui/app/ui-behavior.js +1 -0
- package/dist/src/web-ui/local-runtime/api-router.d.ts +2 -0
- package/dist/src/web-ui/local-runtime/api-router.js +18 -0
- package/dist/src/web-ui/local-runtime/automation-routes.d.ts +27 -0
- package/dist/src/web-ui/local-runtime/automation-routes.js +227 -0
- package/dist/src/web-ui/local-runtime/environment-registry.d.ts +4 -0
- package/dist/src/web-ui/local-runtime/environment-registry.js +5 -0
- package/dist/src/web-ui/local-runtime/learning-notifications.js +1 -1
- package/dist/src/web-ui/local-runtime/learning-routes.js +0 -22
- package/dist/src/web-ui/local-runtime/request-execution.js +35 -0
- package/dist/src/web-ui/local-runtime/session-routes.js +32 -2
- package/dist/src/web-ui/local-runtime/setup-embedding-config-repository.d.ts +6 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-config-repository.js +25 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-service.js +2 -0
- package/dist/src/web-ui/local-runtime/spark-chat-admission.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/spark-chat-admission.js +37 -0
- package/dist/src/web-ui/local-runtime/spark-chat-configuration.d.ts +8 -0
- package/dist/src/web-ui/local-runtime/spark-chat-configuration.js +16 -0
- package/dist/src/web-ui/local-runtime/spark-chat-handoff.d.ts +4 -0
- package/dist/src/web-ui/local-runtime/spark-chat-handoff.js +84 -0
- package/dist/src/web-ui/local-runtime/spark-chat-routes.d.ts +19 -0
- package/dist/src/web-ui/local-runtime/spark-chat-routes.js +62 -0
- package/dist/src/web-ui/local-runtime-backend.d.ts +4 -0
- package/dist/src/web-ui/local-runtime-backend.js +3 -0
- package/dist/src/web-ui/notifications/automation-event-projection.d.ts +3 -0
- package/dist/src/web-ui/notifications/automation-event-projection.js +57 -0
- package/dist/src/web-ui/notifications/contracts.d.ts +20 -5
- package/dist/src/web-ui/notifications/contracts.js +7 -1
- package/dist/src/web-ui/notifications/conversation-source.d.ts +6 -0
- package/dist/src/web-ui/notifications/conversation-source.js +26 -0
- package/dist/src/web-ui/notifications/event-fields.d.ts +3 -0
- package/dist/src/web-ui/notifications/event-fields.js +12 -0
- package/dist/src/web-ui/notifications/event-projection.d.ts +2 -1
- package/dist/src/web-ui/notifications/event-projection.js +22 -20
- package/dist/src/web-ui/notifications/service.js +33 -2
- package/dist/src/web-ui/notifications/storage-schema.js +118 -21
- package/dist/src/web-ui/server.js +1 -1
- package/dist/src/web-ui/session-read-state/service.d.ts +39 -0
- package/dist/src/web-ui/session-read-state/service.js +20 -2
- package/dist/src/web-ui/session-read-state/store.d.ts +2 -0
- package/dist/src/web-ui/session-read-state/store.js +7 -0
- package/dist/src/web-ui/session-read-state/visible-messages.d.ts +30 -0
- package/dist/src/web-ui/session-read-state/visible-messages.js +119 -0
- package/dist/src/web-ui/system-host-service.d.ts +4 -1
- package/dist/src/web-ui/system-host-service.js +14 -3
- package/dist/src/web-ui/system-host-setup/local-request-authority.d.ts +3 -0
- package/dist/src/web-ui/system-host-setup/local-request-authority.js +15 -0
- package/dist/src/web-ui/system-host-setup/local-setup-availability.js +2 -12
- package/dist/src/web-ui/system-host-setup/native-permission-route.d.ts +26 -0
- package/dist/src/web-ui/system-host-setup/native-permission-route.js +96 -0
- package/dist/src/web-ui/system-host-setup/permission-route.d.ts +13 -0
- package/dist/src/web-ui/system-host-setup/permission-route.js +102 -0
- package/docs/installation.md +41 -9
- package/docs/plugins.md +53 -11
- package/docs/runtime-public-contracts.md +7 -2
- package/docs/tool-execution-result-evidence-contract.md +11 -4
- package/package.json +1 -1
- package/plugins/capability-brief/src/index.cjs +85 -37
- package/plugins/code-outline/source/index.ts +7 -2
- package/plugins/code-outline/src/index.cjs +91 -39
- package/plugins/document-reader/plugin.json +18 -3
- package/plugins/document-reader/skills/document_reader_skill/SKILL.md +6 -6
- package/plugins/document-reader/source/source-resolution.ts +1 -1
- package/plugins/document-reader/src/index.cjs +86 -38
- package/plugins/exec/plugin.json +3 -3
- package/plugins/exec/source/handlers.ts +78 -20
- package/plugins/exec/source/output-contracts.ts +45 -0
- package/plugins/exec/source/output-files.ts +161 -0
- package/plugins/exec/source/output-maintenance.ts +60 -0
- package/plugins/exec/source/output-range-reader.ts +97 -0
- package/plugins/exec/source/output-retention.ts +34 -0
- package/plugins/exec/source/output-snapshot.ts +54 -0
- package/plugins/exec/source/output-store.ts +182 -0
- package/plugins/exec/source/output-utf8-boundary.ts +14 -0
- package/plugins/exec/source/output-writer.ts +131 -0
- package/plugins/exec/source/process-manager.ts +142 -70
- package/plugins/exec/source/process-output-buffer.ts +13 -18
- package/plugins/exec/source/process-output.ts +158 -0
- package/plugins/exec/source/request-resources.ts +28 -12
- package/plugins/exec/source/result-presentation.ts +39 -39
- package/plugins/exec/source/retained-output-failure.ts +51 -0
- package/plugins/exec/source/settings.ts +9 -10
- package/plugins/exec/source/terminal-delivery.ts +49 -0
- package/plugins/exec/source/types.ts +12 -1
- package/plugins/exec/src/index.cjs +1112 -188
- package/plugins/filesystem/plugin.json +5 -5
- package/plugins/filesystem/skills/read_file_skill/SKILL.md +1 -1
- package/plugins/filesystem/src/index.cjs +85 -37
- package/plugins/json-inspector/source/index.ts +7 -2
- package/plugins/json-inspector/src/index.cjs +91 -39
- package/plugins/local-search/source/index.ts +9 -4
- package/plugins/local-search/src/index.cjs +93 -41
- package/plugins/memory/src/index.cjs +85 -37
- package/plugins/project-orientation/source/index.ts +9 -4
- package/plugins/project-orientation/src/index.cjs +93 -41
- package/plugins/system/plugin.json +2 -2
- package/plugins/system/source/computer/observation-output.ts +1 -1
- package/plugins/system/src/index.cjs +88 -43
- package/plugins/system-probe/source/index.ts +7 -2
- package/plugins/system-probe/src/index.cjs +91 -39
- package/plugins/web/README.md +9 -0
- package/plugins/web/source/plugin.ts +5 -3
- package/plugins/web/source/research.ts +7 -7
- package/plugins/web/src/index.cjs +96 -43
- package/src/runtime/README.md +100 -11
- package/src/runtime/scheduler/README.md +63 -0
- package/dist/src/web-ui/app/components/passive-learning/proposal-notifications.js +0 -106
- package/dist/src/web-ui/app/components/passive-learning/proposal-read-state.js +0 -23
- package/dist/src/web-ui/app/components/passive-learning/proposal-view.js +0 -23
- package/dist/src/web-ui/app/components/spark-conversation-actions.js +0 -62
- package/dist/src/web-ui/app/services/spark-conversation-preferences.js +0 -27
- package/dist/src/web-ui/app/styles/29-spark-conversation.css +0 -19
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { escapeHtml } from "../../lib/text-format.js";
|
|
2
|
+
import { renderAutomationDraftRecovery } from "./draft-recovery-actions.js";
|
|
3
|
+
import { renderAutomationEditorIcon } from "./editor-action-icons.js";
|
|
4
|
+
|
|
5
|
+
function editorAction(action, label, icon, { className = "", disabled = false, busy = false, title = "" } = {}) {
|
|
6
|
+
return `<button type="button" class="automation-editor-action ${className}" data-action="${action}"${disabled ? " disabled" : ""}${busy ? ' aria-busy="true"' : ""}${title ? ` title="${escapeHtml(title)}"` : ""}>${renderAutomationEditorIcon(icon)}<span>${label}</span></button>`;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function renderDraftActions() {
|
|
10
|
+
return `<div class="automation-editor-action-group" role="group" aria-label="Draft actions">
|
|
11
|
+
<span class="automation-editor-action-label">Draft</span><div class="automation-actions">
|
|
12
|
+
${editorAction("save-draft", "Save draft", "save", { title: "Save automation settings to the draft" })}
|
|
13
|
+
${editorAction("describe", "Build with ABot", "build")}
|
|
14
|
+
${editorAction("validate", "Check", "check", { title: "Check the draft before publishing" })}
|
|
15
|
+
${editorAction("publish", "Publish", "publish", { className: "automation-primary", title: "Publish this draft for future runs" })}
|
|
16
|
+
</div></div>`;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function renderExecutionActions(snapshot, current, runUnavailable, activateUnavailable) {
|
|
20
|
+
const active = current.status === "active";
|
|
21
|
+
const runPending = Boolean(snapshot.runStartPending);
|
|
22
|
+
const runActionDisabled = runUnavailable || runPending || snapshot.loading || Boolean(snapshot.mutation);
|
|
23
|
+
return `<div class="automation-editor-action-group automation-editor-execution" role="group" aria-label="Execution actions">
|
|
24
|
+
<span class="automation-editor-action-label">Execution <span class="automation-editor-state" data-state="${active ? "active" : "paused"}">${active ? "Active" : "Paused"}</span></span>
|
|
25
|
+
<div class="automation-actions">
|
|
26
|
+
${editorAction("run", runPending ? "Starting…" : "Run now", "run", { disabled: runActionDisabled, busy: runPending,
|
|
27
|
+
title: runUnavailable ? current.runUnavailableReason || "Run unavailable" : "Run the published version once" })}
|
|
28
|
+
${editorAction("toggle-active", active ? "Pause" : "Activate", active ? "pause" : "activate", {
|
|
29
|
+
className: active ? "automation-editor-pause" : "automation-editor-activate", disabled: activateUnavailable,
|
|
30
|
+
title: activateUnavailable ? current.activateUnavailableReason || "Activation unavailable"
|
|
31
|
+
: active ? "Pause automatic triggers" : "Enable automatic triggers for the published version" })}
|
|
32
|
+
</div></div>`;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function renderManagementActions(snapshot, published, canDeleteDraft) {
|
|
36
|
+
const archive = published ? editorAction("archive", "Archive automation", "archive", { className: "automation-editor-archive" })
|
|
37
|
+
: canDeleteDraft ? editorAction("delete-draft", "Delete draft", "delete", { className: "automation-stop" }) : "";
|
|
38
|
+
return `<details class="automation-editor-management"><summary>${renderAutomationEditorIcon("manage")}<span>Manage automation</span></summary>
|
|
39
|
+
<div class="automation-editor-management-body">
|
|
40
|
+
<div class="automation-editor-action-group" role="group" aria-label="Draft recovery">
|
|
41
|
+
<span class="automation-editor-action-label">Draft recovery</span><div class="automation-actions">${renderAutomationDraftRecovery(snapshot)}</div>
|
|
42
|
+
</div>
|
|
43
|
+
${archive ? `<div class="automation-editor-archive-group"><span class="automation-editor-action-label">${published ? "Archive" : "Delete draft"}</span><div class="automation-actions">${archive}</div>
|
|
44
|
+
<p>${published ? "Pause its schedule and move it to the archive. Runs and reports stay available." : "Permanently remove this unpublished draft."}</p></div>` : ""}
|
|
45
|
+
</div></details>`;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function renderAutomationEditorActions(snapshot, { current, canDeleteDraft, runUnavailable, activateUnavailable }) {
|
|
49
|
+
if (current?.status === "archived") {
|
|
50
|
+
return `<div class="automation-editor-actionbar automation-actions">${editorAction("restore", "Restore automation", "restore", { className: "automation-primary" })}</div>`;
|
|
51
|
+
}
|
|
52
|
+
const published = Boolean(current?.publishedRevision);
|
|
53
|
+
return `<div class="automation-editor-actionbar" aria-label="Automation actions">
|
|
54
|
+
<div class="automation-editor-action-groups">${renderDraftActions()}${published ? renderExecutionActions(snapshot, current, runUnavailable, activateUnavailable) : ""}</div>
|
|
55
|
+
${renderManagementActions(snapshot, published, canDeleteDraft)}
|
|
56
|
+
</div>`;
|
|
57
|
+
}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { escapeHtml } from "../../lib/text-format.js";
|
|
2
|
+
import { findAutomationNode, renderAutomationTimeline } from "./timeline.js";
|
|
3
|
+
import { operationIdentity } from "./node-inspector.js";
|
|
4
|
+
import { renderAutomationStepPreview } from "./step-preview.js";
|
|
5
|
+
import { renderAutomationEditorActions } from "./editor-actions.js";
|
|
6
|
+
import { toolDisplayName } from "./tool-identity.js";
|
|
7
|
+
export { toolDisplayName } from "./tool-identity.js";
|
|
8
|
+
import { listAvailableAutomationProducers } from "../../lib/automation-binding-producers.js";
|
|
9
|
+
import { requiresFullPlus, selectedAutomationOperations } from "./permission-selection.js";
|
|
10
|
+
|
|
11
|
+
function triggerChoice(trigger) {
|
|
12
|
+
return trigger?.kind === "schedule" ? trigger.schedule?.kind || "daily" : trigger?.kind || "manual";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function renderTriggerFields(definition) {
|
|
16
|
+
const selected = triggerChoice(definition.trigger);
|
|
17
|
+
const schedule = definition.trigger?.schedule || {};
|
|
18
|
+
return `<div class="automation-trigger-fields"><label>Start<select name="triggerKind">
|
|
19
|
+
${[["manual","Manual"],["folder","New files"],["timer","After delay"],["once","Once"],["interval","Interval"],["daily","Daily"],["weekly","Weekly"],["monthly","Monthly"]].map(([kind,label]) => `<option value="${kind}"${selected === kind ? " selected" : ""}>${label}</option>`).join("")}</select></label>
|
|
20
|
+
<label>Time or minutes<input name="triggerValue" value="${escapeHtml(selected === "interval" ? Math.round((schedule.everyMs || 3_600_000) / 60_000) : selected === "timer" ? Math.round((schedule.delayMs || 60_000) / 60_000) : selected === "once" ? schedule.at || "" : schedule.at || "09:00")}" placeholder="09:00 or minutes"></label>
|
|
21
|
+
<label>Weekdays (0–6)<input name="weekdays" value="${escapeHtml((schedule.weekdays || []).join(","))}" placeholder="1,2,3,4,5"></label>
|
|
22
|
+
<label>Day of month<input name="dayOfMonth" type="number" min="1" max="31" value="${escapeHtml(schedule.dayOfMonth || 1)}"></label>
|
|
23
|
+
<label>Minimum new files<input name="minimumEligibleFiles" type="number" min="1" value="${escapeHtml(definition.trigger?.minimumEligibleFiles || 1)}"></label>
|
|
24
|
+
<label>Check every (minutes)<input name="checkEveryMinutes" type="number" min="1" value="${escapeHtml(Math.round((definition.trigger?.checkEveryMs || 300_000) / 60_000))}"></label>
|
|
25
|
+
</div>`;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function renderSourceFields(source) {
|
|
29
|
+
return `<details class="automation-source"${source ? " open" : ""}><summary>Folder source · optional</summary>
|
|
30
|
+
<div class="automation-source-options">
|
|
31
|
+
<label><input type="checkbox" name="sourceEnabled"${source ? " checked" : ""}>Use a folder</label>
|
|
32
|
+
<label><input type="checkbox" name="sourceRecursive"${source?.recursive ? " checked" : ""}>Include subfolders</label>
|
|
33
|
+
<label><input type="checkbox" name="includeExisting"${source?.includeExisting ? " checked" : ""}>Include files already there on first activation</label>
|
|
34
|
+
</div><div class="automation-source-fields"><label>Runtime-visible folder<input name="sourcePath" value="${escapeHtml(source?.location?.path || "")}" placeholder="/workspace/inbox"></label>
|
|
35
|
+
<label>Process<select name="sourceMode"><option value="per_file"${source?.mode !== "batch" ? " selected" : ""}>Each file</option><option value="batch"${source?.mode === "batch" ? " selected" : ""}>Batch</option></select></label>
|
|
36
|
+
<label>Max files per batch<input type="number" name="maxBatchFiles" min="1" max="100" value="${escapeHtml(source?.maxBatchFiles || 100)}"></label>
|
|
37
|
+
<label>Include patterns<input name="includePatterns" value="${escapeHtml((source?.includePatterns || []).join(", "))}" placeholder="*.pdf, *.txt"></label>
|
|
38
|
+
<label>Exclude outputs and archive paths<input name="excludePatterns" value="${escapeHtml((source?.excludePatterns || []).join(", "))}" placeholder="archive/**, output/**"></label>
|
|
39
|
+
</div><p class="automation-muted">The Runtime must be able to read this folder. If a step writes or archives files, exclude those destinations so they cannot become new inputs. Publishing never starts processing existing files by itself.</p>
|
|
40
|
+
</details>`;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function renderLimits(limits) {
|
|
44
|
+
if (!limits) return "";
|
|
45
|
+
return `<details class="automation-limits"><summary>Resource limits</summary><div class="automation-limit-fields">
|
|
46
|
+
${[["maxModelCallsPerRun","Model calls / run"],["maxToolCallsPerRun","Tool calls / run"],["maxConcurrentNodes","Parallel steps"],["maxRunsPerDay","Runs / day"],["maxRunDurationMs","Run duration (ms)"],["maxStoredArtifactBytes","Stored artifacts (bytes)"],["stopReportDeadlineMs","Stop report deadline (ms)"]].map(([key,label]) => `<label>${label}<input type="number" min="1" name="limit-${key}" value="${escapeHtml(limits[key])}"${key === "maxModelCallsPerRun" ? ` aria-describedby="automation-model-limit-help"` : ""}></label>`).join("")}
|
|
47
|
+
</div><p class="automation-muted" id="automation-model-limit-help">Model calls include decisions, tool discovery, input preparation and final responses across the whole run. This limit is a ceiling, not the desired number of calls. Usage varies by model and workflow; use completed-run usage in Execution details to choose headroom. Tool calls count admitted attempts, including failed attempts.</p>
|
|
48
|
+
<p class="automation-muted">Save the draft and publish to apply changed limits to future runs. An existing run keeps its published limits.</p></details>`;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function toolCatalogItems(catalog) {
|
|
52
|
+
const operations = Array.isArray(catalog?.grantableOperations)
|
|
53
|
+
? catalog.grantableOperations : catalog?.operations || [];
|
|
54
|
+
const tools = new Map();
|
|
55
|
+
for (const operation of operations) {
|
|
56
|
+
const existing = tools.get(operation.toolName) || {
|
|
57
|
+
name: operation.toolName,
|
|
58
|
+
label: toolDisplayName(operation.toolName),
|
|
59
|
+
group: operation.pluginName || "Built-in",
|
|
60
|
+
description: operation.toolDescription || "",
|
|
61
|
+
operations: [],
|
|
62
|
+
};
|
|
63
|
+
existing.operations.push(operation);
|
|
64
|
+
tools.set(operation.toolName, existing);
|
|
65
|
+
}
|
|
66
|
+
return [...tools.values()].sort((left, right) =>
|
|
67
|
+
left.group.localeCompare(right.group) || left.label.localeCompare(right.label));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export function renderAutomationToolResults(catalog, { query = "", selectedToolName = "" } = {}) {
|
|
71
|
+
const normalized = query.trim().toLocaleLowerCase();
|
|
72
|
+
const tools = toolCatalogItems(catalog).filter((tool) => !normalized ||
|
|
73
|
+
[tool.label, tool.name, tool.group, tool.description,
|
|
74
|
+
...tool.operations.map((operation) => `${operation.operationId} ${operation.label || ""}`)]
|
|
75
|
+
.some((value) => value.toLocaleLowerCase().includes(normalized)));
|
|
76
|
+
if (!tools.length) return `<p class="automation-muted">${normalized ? "No matching tools." : "No tools are configured yet. You can still build with agents."}</p>`;
|
|
77
|
+
const granted = new Set((catalog?.operations || []).map((item) =>
|
|
78
|
+
operationIdentity(item)));
|
|
79
|
+
const groups = new Map();
|
|
80
|
+
for (const tool of tools) {
|
|
81
|
+
if (!groups.has(tool.group)) groups.set(tool.group, []);
|
|
82
|
+
groups.get(tool.group).push(tool);
|
|
83
|
+
}
|
|
84
|
+
return [...groups.entries()].map(([group, entries]) => {
|
|
85
|
+
const expanded = Boolean(normalized || entries.some((tool) => tool.name === selectedToolName));
|
|
86
|
+
const operationCount = entries.reduce((count, tool) => count + tool.operations.length, 0);
|
|
87
|
+
return `<details class="automation-tool-group"${expanded ? " open" : ""}><summary><strong>${escapeHtml(toolDisplayName(group))}</strong><small>${entries.length} ${entries.length === 1 ? "tool" : "tools"} · ${operationCount} ${operationCount === 1 ? "operation" : "operations"}</small></summary><div class="automation-plugin-tools">${entries.map((tool) => {
|
|
88
|
+
const selected = tool.name === selectedToolName;
|
|
89
|
+
return `<div class="automation-tool-choice"><button type="button" draggable="true" class="automation-palette-item" data-palette-select-tool="${escapeHtml(tool.name)}" data-palette-tool="${escapeHtml(tool.name)}" aria-expanded="${selected}">${escapeHtml(tool.label)}<small>${escapeHtml(tool.operations.length)} ${tool.operations.length === 1 ? "operation" : "operations"}</small></button>
|
|
90
|
+
${selected ? `<div class="automation-tool-operations"><p>Choose the operation and inputs after adding this tool.</p>${tool.operations.map((operation) => {
|
|
91
|
+
const identity = operationIdentity(operation);
|
|
92
|
+
const allowed = granted.has(identity);
|
|
93
|
+
return `<div class="automation-tool-operation"><strong>${escapeHtml(toolDisplayName(operation.operationId))}</strong><span>${requiresFullPlus(operation) ? "FULL+" : "Full"}${allowed ? "" : " · permission needed"}</span><small>${escapeHtml(operation.label || "")}</small></div>`;
|
|
94
|
+
}).join("")}<button type="button" class="automation-tool-add" data-palette-add-tool="${escapeHtml(tool.name)}">Add to timeline</button></div>` : ""}</div>`;
|
|
95
|
+
}).join("")}</div></details>`;
|
|
96
|
+
}).join("");
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function paletteAgent(item) {
|
|
100
|
+
return `<button type="button" draggable="true" class="automation-palette-item automation-agent-choice" data-palette-agent="${escapeHtml(item.agentId || item.id)}"><strong dir="auto">${escapeHtml(item.agent?.title || item.title || "Saved agent")}</strong><small>Saved agent · revision ${escapeHtml(item.revision || 1)}</small></button>`;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function renderValidation(validation) {
|
|
104
|
+
const issues = Array.isArray(validation?.issues) ? validation.issues : [];
|
|
105
|
+
if (!issues.length) return "";
|
|
106
|
+
return `<div class="automation-validation" role="alert"><strong>Needs attention before publishing</strong>${issues.map((issue) => `<button type="button" data-select-node="${escapeHtml(issue.nodeId || "")}"><code>${escapeHtml(issue.code || "automation_graph_invalid")}</code>${issue.path ? ` · <code>${escapeHtml(issue.path)}</code>` : ""} · ${escapeHtml(issue.message || "Check this step")}</button>`).join("")}</div>`;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function renderToolPermissionRequirements(selection) {
|
|
110
|
+
let requirement = "";
|
|
111
|
+
if (selection.operations.length) {
|
|
112
|
+
const operations = selection.details.map((operation) => `<li><span>${escapeHtml(toolDisplayName(operation.toolName))} · ${escapeHtml(toolDisplayName(operation.operationId))}</span><strong>${requiresFullPlus(operation) ? "FULL+" : "Full"}</strong></li>`).join("");
|
|
113
|
+
requirement = `<ul class="automation-permission-list">${operations}</ul>`;
|
|
114
|
+
} else if (!selection.missing.length) {
|
|
115
|
+
requirement = `<p>No tool operations selected.</p>`;
|
|
116
|
+
}
|
|
117
|
+
const count = selection.operations.length;
|
|
118
|
+
const state = `${selectedToolPermissionLabel(selection)}${count ? ` · ${count} selected operation${count === 1 ? "" : "s"}` : ""}${selection.missing.length ? ` · ${selection.missing.length} unavailable` : ""}`;
|
|
119
|
+
return `<details class="automation-permission"><summary>Tool permission <span class="automation-permission-state">${escapeHtml(state)}</span></summary>
|
|
120
|
+
${requirement}
|
|
121
|
+
${selection.missing.length ? `<p>${selection.missing.length} selected operation${selection.missing.length === 1 ? " is" : "s are"} unavailable in the current tool catalog.</p>` : ""}
|
|
122
|
+
</details>`;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function selectedToolPermissionLabel(selection) {
|
|
126
|
+
if (!selection.operations.length && selection.missing.length) return "Selected tool unavailable";
|
|
127
|
+
if (!selection.operations.length) return "No tools selected";
|
|
128
|
+
return selection.mode === "full_plus" ? "FULL+ required" : "Full required";
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export function renderAutomationEditor(snapshot, paletteState = {}) {
|
|
132
|
+
const definition = snapshot.draft?.definition;
|
|
133
|
+
if (!definition) return `<p class="automation-feedback" role="status">${escapeHtml(snapshot.error || "Loading draft…")}</p>`;
|
|
134
|
+
const selected = findAutomationNode(definition.body, snapshot.selectedNodeId);
|
|
135
|
+
const producers = listAvailableAutomationProducers(definition.body, snapshot.selectedNodeId);
|
|
136
|
+
const catalog = snapshot.catalog || { operations: [], models: [], savedAgents: [] };
|
|
137
|
+
const current = snapshot.automations.find((item) => item.id === snapshot.selectedAutomationId);
|
|
138
|
+
const published = Boolean(current?.publishedRevision);
|
|
139
|
+
const archived = current?.status === "archived" || Boolean(snapshot.draft?.archivedAt);
|
|
140
|
+
const runUnavailable = published && current?.canRun === false;
|
|
141
|
+
const activateUnavailable = published && current?.status !== "active" && current?.canActivate === false;
|
|
142
|
+
const selectedOperations = selectedAutomationOperations(definition, catalog);
|
|
143
|
+
const permission = selectedToolPermissionLabel(selectedOperations);
|
|
144
|
+
const inspectorMarkup = !archived ? renderAutomationStepPreview(selected, catalog, producers) : "";
|
|
145
|
+
return `<div class="automation-workspace" data-automation-view="editor">
|
|
146
|
+
<section class="automation-definition-panel" aria-label="Automation details">
|
|
147
|
+
<div class="automation-heading"><div><button type="button" class="automation-text-button" data-action="back">← All automations</button><h3 dir="auto">${escapeHtml(definition.title || "ABot Automation")}</h3><p>Draft revision ${escapeHtml(snapshot.draft.revision)}${published ? ` · Published revision ${escapeHtml(current.publishedRevision)}` : " · Not published"}${archived ? " · Archived" : ""}</p></div>
|
|
148
|
+
<div class="automation-heading-actions"><button type="button" class="automation-details-toggle" data-action="toggle-details" aria-controls="automation-editor-details" aria-expanded="true"><span data-details-label>Collapse details</span></button></div></div>
|
|
149
|
+
${renderAutomationEditorActions(snapshot, { current: archived ? { ...current, status: "archived" } : current, canDeleteDraft: current && !snapshot.publishedDefinition, runUnavailable, activateUnavailable })}
|
|
150
|
+
${!archived && (runUnavailable || activateUnavailable) ? `<p class="automation-action-note" role="status">${escapeHtml(current.runUnavailableReason || current.activateUnavailableReason || "This automation cannot start yet.")}</p>` : ""}
|
|
151
|
+
<p class="automation-feedback" role="status" aria-live="polite" data-tone="${snapshot.error ? "error" : ""}">${escapeHtml(snapshot.error || snapshot.feedback || (archived ? "Archived. Restore to edit or run it. Reports remain available." : "Step and order changes are saved to the draft immediately. Automation settings use Save draft. Publishing is separate."))}</p>
|
|
152
|
+
<div class="automation-editor-details" id="automation-editor-details">
|
|
153
|
+
<div class="automation-tabs" role="tablist"><button type="button" role="tab" aria-selected="true">Editor</button><button type="button" role="tab" aria-selected="false" data-action="show-runs">Runs (${escapeHtml(snapshot.runs.length)})</button></div>
|
|
154
|
+
<div class="automation-summary"><span><strong>Start</strong> · ${escapeHtml(triggerChoice(definition.trigger))}</span><span><strong>Permission</strong> · ${permission}</span><span><strong>Model</strong> · Per agent</span></div>
|
|
155
|
+
${renderValidation(!archived && snapshot.validationVisible ? snapshot.validation : null)}
|
|
156
|
+
<form class="automation-definition-form" data-automation-definition-form${archived ? " inert" : ""}><div class="automation-top-fields"><label>Name<input name="title" value="${escapeHtml(definition.title || "")}" required dir="auto"></label><label>Goal<textarea name="objective" dir="auto">${escapeHtml(definition.objective || "")}</textarea></label></div>
|
|
157
|
+
<label>Working directory<input name="workingDirectory" value="${escapeHtml(definition.workingDirectory || "")}" placeholder="Optional absolute path on the Runtime host"></label>
|
|
158
|
+
<details class="automation-run-inputs"><summary>Run inputs · JSON object</summary><label>Values supplied when a run starts<textarea name="inputsJson" spellcheck="false">${escapeHtml(JSON.stringify(definition.inputs || {}, null, 2))}</textarea></label></details>
|
|
159
|
+
${renderTriggerFields(definition)}${renderSourceFields(definition.source)}${renderLimits(definition.limits)}
|
|
160
|
+
${renderToolPermissionRequirements(selectedOperations)}
|
|
161
|
+
</form>
|
|
162
|
+
</div>
|
|
163
|
+
</section>
|
|
164
|
+
${archived ? `<section class="automation-canvas automation-archived-canvas" aria-label="Workflow">${renderAutomationTimeline(definition, { editable: false, catalog })}</section>` : `<div class="automation-editor-layout"><div class="automation-editor-sidebar"><section class="automation-palette" aria-label="Agents"><h4>Agents</h4><p>Add a new agent or reuse one you saved.</p>
|
|
165
|
+
<button type="button" draggable="true" class="automation-palette-item automation-agent-choice" data-palette-agent="new"><strong>New agent</strong><small>Set model, role, and prompt</small></button>
|
|
166
|
+
${(catalog.savedAgents || []).map(paletteAgent).join("")}
|
|
167
|
+
</section><section class="automation-palette" aria-label="Tools"><h4>Tools</h4><p>Open a plugin to choose a tool.</p>
|
|
168
|
+
<label class="automation-tool-search">Search plugins, tools, or operations<input type="search" data-tool-search value="${escapeHtml(paletteState.query || "")}" placeholder="Search plugins or tools" autocomplete="off"></label>
|
|
169
|
+
<div data-automation-tool-results>${renderAutomationToolResults(catalog, paletteState)}</div>
|
|
170
|
+
<button type="button" data-action="move-to-slot" hidden>Move selected step here</button></section>
|
|
171
|
+
</div><section class="automation-canvas" aria-label="Workflow">${renderAutomationTimeline(definition, { editable: true, selectedNodeId: snapshot.selectedNodeId, inspectorMarkup, catalog })}</section></div>`}
|
|
172
|
+
</div>`;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
function commaValues(value) {
|
|
176
|
+
return value.split(",").map((item) => item.trim()).filter(Boolean);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
function readTrigger(fields) {
|
|
180
|
+
const kind = String(fields.get("triggerKind") || "manual");
|
|
181
|
+
if (kind === "manual") return { kind };
|
|
182
|
+
if (kind === "folder") return {
|
|
183
|
+
kind, checkEveryMs: Number(fields.get("checkEveryMinutes")) * 60_000,
|
|
184
|
+
minimumEligibleFiles: Number(fields.get("minimumEligibleFiles")),
|
|
185
|
+
};
|
|
186
|
+
const value = String(fields.get("triggerValue") || "").trim();
|
|
187
|
+
if (kind === "timer") return { kind: "schedule", schedule: { kind, delayMs: Number(value) * 60_000 } };
|
|
188
|
+
if (kind === "interval") return { kind: "schedule", schedule: { kind, everyMs: Number(value) * 60_000 } };
|
|
189
|
+
if (kind === "weekly") return { kind: "schedule", schedule: { kind, at: value, weekdays: commaValues(String(fields.get("weekdays") || "")).map(Number) } };
|
|
190
|
+
if (kind === "monthly") return { kind: "schedule", schedule: { kind, at: value, dayOfMonth: Number(fields.get("dayOfMonth")) } };
|
|
191
|
+
return { kind: "schedule", schedule: { kind, at: value } };
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export function readAutomationDefinitionPatch(form, definition) {
|
|
195
|
+
const fields = new FormData(form);
|
|
196
|
+
let inputs;
|
|
197
|
+
try { inputs = JSON.parse(String(fields.get("inputsJson") || "{}")); }
|
|
198
|
+
catch { throw new Error("Run inputs must be valid JSON."); }
|
|
199
|
+
if (!inputs || typeof inputs !== "object" || Array.isArray(inputs))
|
|
200
|
+
throw new Error("Run inputs must be a JSON object.");
|
|
201
|
+
const sourceEnabled = fields.has("sourceEnabled");
|
|
202
|
+
const source = sourceEnabled ? {
|
|
203
|
+
sourceId: definition.source?.sourceId || "",
|
|
204
|
+
location: { kind: "runtime_path", path: String(fields.get("sourcePath") || "").trim() },
|
|
205
|
+
includePatterns: commaValues(String(fields.get("includePatterns") || "")),
|
|
206
|
+
excludePatterns: commaValues(String(fields.get("excludePatterns") || "")),
|
|
207
|
+
recursive: fields.has("sourceRecursive"), includeExisting: fields.has("includeExisting"),
|
|
208
|
+
mode: fields.get("sourceMode") === "batch" ? "batch" : "per_file",
|
|
209
|
+
maxBatchFiles: Number(fields.get("maxBatchFiles")),
|
|
210
|
+
} : null;
|
|
211
|
+
const limits = { ...definition.limits };
|
|
212
|
+
for (const key of Object.keys(limits)) limits[key] = Number(fields.get(`limit-${key}`));
|
|
213
|
+
return {
|
|
214
|
+
title: String(fields.get("title") || "").trim(), objective: String(fields.get("objective") || "").trim(),
|
|
215
|
+
workingDirectory: String(fields.get("workingDirectory") || "").trim() || null,
|
|
216
|
+
trigger: readTrigger(fields), source, inputs, limits,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
import { escapeHtml } from "../../lib/text-format.js";
|
|
2
|
+
|
|
3
|
+
const FAILURE_DESCRIPTIONS = {
|
|
4
|
+
automation_model_call_limit_reached: {
|
|
5
|
+
title: "Model call limit reached",
|
|
6
|
+
reason: "The run used all permitted model calls before its next model invocation.",
|
|
7
|
+
action: "Review model usage below. Increase Model calls / run in Resource limits, save the draft and publish before trying again. The eventual call count depends on the model and workflow.",
|
|
8
|
+
},
|
|
9
|
+
automation_tool_call_limit_reached: {
|
|
10
|
+
title: "Tool call limit reached",
|
|
11
|
+
reason: "The run reached its tool-attempt limit before another tool could be admitted.",
|
|
12
|
+
action: "Review admitted tool attempts below. Adjust Tool calls / run in Resource limits, save the draft and publish before trying again.",
|
|
13
|
+
},
|
|
14
|
+
automation_run_duration_exceeded: {
|
|
15
|
+
scope: "run",
|
|
16
|
+
title: "Run duration limit reached",
|
|
17
|
+
reason: "The run exceeded its configured duration.",
|
|
18
|
+
action: "Review the steps and any recorded effects. If more time is appropriate, increase Run duration in Resource limits, save the draft and publish.",
|
|
19
|
+
},
|
|
20
|
+
automation_budget_exhausted: {
|
|
21
|
+
scope: "run",
|
|
22
|
+
title: "Resource limit reached",
|
|
23
|
+
reason: "A resource limit stopped this run. The recorded error does not identify which limit was reached.",
|
|
24
|
+
action: "Review Execution details and Resource limits. A new run can record a more specific limit reason.",
|
|
25
|
+
},
|
|
26
|
+
automation_agent_context_too_large: {
|
|
27
|
+
title: "Agent input exceeds the model context",
|
|
28
|
+
reason: "The agent request could not fit within the model's available context.",
|
|
29
|
+
action: "Reduce the step's inputs or use a model with more context capacity. Increasing Model calls / run does not increase context capacity.",
|
|
30
|
+
},
|
|
31
|
+
automation_agent_provider_failed: {
|
|
32
|
+
title: "Model provider request failed",
|
|
33
|
+
reason: "The model provider could not complete the agent request.",
|
|
34
|
+
action: "Check that the configured model provider is available, and review any recorded effects before retrying.",
|
|
35
|
+
},
|
|
36
|
+
request_inactivity_timeout: {
|
|
37
|
+
title: "Agent request stopped making progress",
|
|
38
|
+
reason: "No request activity was recorded within the configured inactivity interval.",
|
|
39
|
+
action: "Inspect retained results and tool effects, and check the model provider before retrying. This inactivity limit is separate from the whole-run duration limit.",
|
|
40
|
+
},
|
|
41
|
+
llm_stream_inactivity_timeout: {
|
|
42
|
+
title: "Model stream stopped sending data",
|
|
43
|
+
reason: "The model stream produced no new data within its configured inactivity interval.",
|
|
44
|
+
action: "Check the model provider and inspect recorded effects before retrying. This inactivity limit is separate from the whole-run duration limit.",
|
|
45
|
+
},
|
|
46
|
+
automation_agent_failed: {
|
|
47
|
+
title: "Agent request failed",
|
|
48
|
+
reason: "The saved error does not include a more specific cause for the agent request failure.",
|
|
49
|
+
action: "Inspect the step result and Diagnostics. The recorded information cannot confirm whether a limit, timeout or provider issue caused this failure.",
|
|
50
|
+
},
|
|
51
|
+
automation_run_deadline_elapsed: {
|
|
52
|
+
scope: "run",
|
|
53
|
+
title: "Run deadline elapsed",
|
|
54
|
+
reason: "The run could not complete within its configured deadline.",
|
|
55
|
+
action: "Review completed steps and recorded effects. Check Run duration and Stop report deadline in Resource limits before trying again.",
|
|
56
|
+
},
|
|
57
|
+
automation_stop_deadline_elapsed: {
|
|
58
|
+
scope: "run",
|
|
59
|
+
title: "Stop report deadline reached",
|
|
60
|
+
reason: "The Runtime stopped waiting for this run to finish after the stop report deadline elapsed.",
|
|
61
|
+
action: "Review retained results, uncertain tool effects and any later evidence before starting another run. The cancelled status does not confirm that an external action has stopped.",
|
|
62
|
+
},
|
|
63
|
+
automation_agent_blocked: {
|
|
64
|
+
title: "Agent could not complete the step",
|
|
65
|
+
reason: "The agent reported that it was blocked from completing the requested work.",
|
|
66
|
+
action: "Review its inputs, instructions and allowed tools. Check any saved result for the agent's explanation.",
|
|
67
|
+
},
|
|
68
|
+
automation_agent_acceptance_failed: {
|
|
69
|
+
title: "Agent result did not meet the step conditions",
|
|
70
|
+
reason: "The agent result did not meet this step's acceptance conditions.",
|
|
71
|
+
action: "Review its inputs and any saved output, then check the configured acceptance conditions.",
|
|
72
|
+
},
|
|
73
|
+
automation_dependency_missing: {
|
|
74
|
+
title: "An earlier step result is missing",
|
|
75
|
+
reason: "This step could not receive a required result from an earlier step.",
|
|
76
|
+
action: "Inspect the earlier step and the input connection. Confirm that the source step completes and saves the expected output.",
|
|
77
|
+
},
|
|
78
|
+
automation_output_pointer_invalid: {
|
|
79
|
+
title: "An input connection could not find its value",
|
|
80
|
+
reason: "The configured JSON pointer did not resolve within an earlier step's output.",
|
|
81
|
+
action: "Inspect the source output and correct the input connection's JSON pointer.",
|
|
82
|
+
},
|
|
83
|
+
automation_source_unavailable: {
|
|
84
|
+
title: "A selected source file is unavailable",
|
|
85
|
+
reason: "The run could not access one of its selected input files.",
|
|
86
|
+
action: "Check the folder source and file availability from the Runtime environment.",
|
|
87
|
+
},
|
|
88
|
+
automation_source_changed: {
|
|
89
|
+
title: "A selected source file changed",
|
|
90
|
+
reason: "The input file changed after this run selected its version.",
|
|
91
|
+
action: "Check the source file and start a new run with its current version.",
|
|
92
|
+
},
|
|
93
|
+
automation_source_reader_unavailable: {
|
|
94
|
+
title: "Source reader is unavailable",
|
|
95
|
+
reason: "The Runtime has no available reader for the selected source.",
|
|
96
|
+
action: "Check the configured source reader and its permissions before trying again.",
|
|
97
|
+
},
|
|
98
|
+
automation_source_type_unsupported: {
|
|
99
|
+
title: "Source file type is unsupported",
|
|
100
|
+
reason: "The source reader does not support the selected file type.",
|
|
101
|
+
action: "Use a supported file type or change the source reader.",
|
|
102
|
+
},
|
|
103
|
+
automation_source_capacity_exceeded: {
|
|
104
|
+
title: "Folder source capacity reached",
|
|
105
|
+
reason: "The retained source files or their metadata exceeded a source capacity limit.",
|
|
106
|
+
action: "Review source selection and retained inputs. Narrow the source or reduce the batch size before trying again.",
|
|
107
|
+
},
|
|
108
|
+
automation_operation_unavailable: {
|
|
109
|
+
title: "A required tool operation is unavailable",
|
|
110
|
+
reason: "A selected operation is unavailable or its automation permission is no longer valid.",
|
|
111
|
+
action: "Check installed tools and the automation's Tool permission, then validate and publish the updated draft.",
|
|
112
|
+
},
|
|
113
|
+
automation_approval_required: {
|
|
114
|
+
title: "Tool approval is required",
|
|
115
|
+
reason: "The requested operation needs approval that this unattended run could not obtain.",
|
|
116
|
+
action: "Review the operation and the automation's published tool permissions before running again.",
|
|
117
|
+
},
|
|
118
|
+
automation_model_unavailable: {
|
|
119
|
+
title: "The selected model is unavailable",
|
|
120
|
+
reason: "The agent's configured model profile is not available.",
|
|
121
|
+
action: "Select an available model for the step, save the draft and publish.",
|
|
122
|
+
},
|
|
123
|
+
automation_artifact_budget_exhausted: {
|
|
124
|
+
title: "Saved output capacity reached",
|
|
125
|
+
reason: "The Runtime could not retain another output within the available artifact capacity.",
|
|
126
|
+
action: "Review output size, retained artifacts and Stored artifacts in Resource limits. Capacity may also be constrained by total Runtime storage.",
|
|
127
|
+
},
|
|
128
|
+
automation_effect_uncertain: {
|
|
129
|
+
title: "A tool's outcome is uncertain",
|
|
130
|
+
reason: "The Runtime could not confirm whether a tool finished its action.",
|
|
131
|
+
action: "Inspect the recorded tool effects and actual target before retrying, to avoid repeating an action that may already have happened.",
|
|
132
|
+
},
|
|
133
|
+
automation_run_stopped: {
|
|
134
|
+
scope: "run",
|
|
135
|
+
title: "Run stopped",
|
|
136
|
+
reason: "A stop request interrupted this run.",
|
|
137
|
+
action: "Review any completed steps and recorded effects before starting another run.",
|
|
138
|
+
},
|
|
139
|
+
automation_tool_failed: {
|
|
140
|
+
title: "A tool reported failure",
|
|
141
|
+
reason: "A tool could not complete its requested operation.",
|
|
142
|
+
action: "Inspect the saved tool result and effects for its specific error before retrying.",
|
|
143
|
+
},
|
|
144
|
+
automation_required_operation_missing: {
|
|
145
|
+
title: "A required operation was not completed",
|
|
146
|
+
reason: "The agent finished without a successful receipt for a required tool operation.",
|
|
147
|
+
action: "Review the agent's saved result, instructions and required tools before running again.",
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
const REQUEST_TIMEOUT_PHASES = {
|
|
152
|
+
request_timeout: "Agent request",
|
|
153
|
+
execution_agent_decision_timeout: "Agent decision",
|
|
154
|
+
execution_capability_refinement_timeout: "Tool input selection",
|
|
155
|
+
execution_agent_response_timeout: "Agent response",
|
|
156
|
+
supervisor_decision_timeout: "Supervisor decision",
|
|
157
|
+
supervisor_response_timeout: "Supervisor response",
|
|
158
|
+
supervisor_memory_authoring_timeout: "Session memory authoring",
|
|
159
|
+
planner_decision_timeout: "Planning decision",
|
|
160
|
+
planner_graph_timeout: "Plan authoring",
|
|
161
|
+
worker_decision_timeout: "Worker decision",
|
|
162
|
+
worker_result_timeout: "Worker result",
|
|
163
|
+
worker_capability_payload_timeout: "Tool input preparation",
|
|
164
|
+
reviewer_decision_timeout: "Result review",
|
|
165
|
+
auditor_decision_timeout: "Result audit",
|
|
166
|
+
degraded_finalization_timeout: "Final response",
|
|
167
|
+
context_compaction_timeout: "Context compaction",
|
|
168
|
+
session_memory_compaction_timeout: "Session memory compaction",
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
const REQUEST_OUTPUT_FAILURES = new Set([
|
|
172
|
+
"invalid_supervisor_decision", "invalid_execution_agent_decision", "invalid_planner_decision",
|
|
173
|
+
"invalid_worker_decision", "invalid_reviewer_decision", "invalid_execution_agent_authored_response",
|
|
174
|
+
"invalid_worker_result", "invalid_supervisor_response", "invalid_execution_agent_response",
|
|
175
|
+
"invalid_supervisor_memory_candidates", "invalid_context_compaction_output",
|
|
176
|
+
"invalid_session_memory_compaction_output", "worker_capability_payload_model_output_invalid",
|
|
177
|
+
"invalid_degraded_finalization_output",
|
|
178
|
+
]);
|
|
179
|
+
|
|
180
|
+
function requestFailureDescription(code) {
|
|
181
|
+
const timeoutPhase = Object.hasOwn(REQUEST_TIMEOUT_PHASES, code) ? REQUEST_TIMEOUT_PHASES[code] : "";
|
|
182
|
+
if (timeoutPhase) return {
|
|
183
|
+
title: `${timeoutPhase} timed out`,
|
|
184
|
+
reason: `${timeoutPhase} did not finish before its configured request deadline.`,
|
|
185
|
+
action: "Inspect retained results and tool effects before retrying. This request deadline is separate from the whole-run duration limit.",
|
|
186
|
+
};
|
|
187
|
+
if (REQUEST_OUTPUT_FAILURES.has(code)) return {
|
|
188
|
+
title: "The model response did not match the required format",
|
|
189
|
+
reason: "A model response could not be accepted under the request's required structure.",
|
|
190
|
+
action: "Inspect the step result and technical error. Review the model and its requested output format before trying again.",
|
|
191
|
+
};
|
|
192
|
+
if (code === "context_compaction_projection_not_reduced") return {
|
|
193
|
+
title: "Context could not be reduced",
|
|
194
|
+
reason: "Compaction did not reduce the model context enough to continue safely.",
|
|
195
|
+
action: "Reduce the step's inputs or use a model with more context capacity before trying again.",
|
|
196
|
+
};
|
|
197
|
+
return {
|
|
198
|
+
title: "The step could not finish",
|
|
199
|
+
reason: "This view cannot explain the recorded error.",
|
|
200
|
+
action: "Inspect the step result and the technical error in Diagnostics before retrying.",
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
function normalizeFailureCode(error) {
|
|
205
|
+
if (typeof error !== "string") return "";
|
|
206
|
+
return error.replace(/^Error: /, "");
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
function recordedCallUsage(used, limit, label) {
|
|
210
|
+
const count = Number.isSafeInteger(used) && used >= 0 ? String(used) : "Not recorded";
|
|
211
|
+
if (!Number.isSafeInteger(limit) || limit <= 0) return `${label}: ${count}`;
|
|
212
|
+
return `${label}: ${count} · Published limit: ${limit}`;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
function failureUsage(code, run) {
|
|
216
|
+
const limits = run?.definition?.limits;
|
|
217
|
+
if (code === "automation_model_call_limit_reached")
|
|
218
|
+
return recordedCallUsage(run?.report?.modelCalls, limits?.maxModelCallsPerRun, "Model calls admitted");
|
|
219
|
+
if (code === "automation_tool_call_limit_reached")
|
|
220
|
+
return recordedCallUsage(run?.report?.toolAttempts, limits?.maxToolCallsPerRun, "Tool attempts admitted");
|
|
221
|
+
if (code !== "automation_run_duration_exceeded") return "";
|
|
222
|
+
const limit = limits?.maxRunDurationMs;
|
|
223
|
+
if (!Number.isSafeInteger(limit) || limit <= 0) return "";
|
|
224
|
+
return `Published run duration limit: ${limit / 1000} seconds`;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export function automationFailurePresentation(error, run = null) {
|
|
228
|
+
const code = normalizeFailureCode(error);
|
|
229
|
+
const description = Object.hasOwn(FAILURE_DESCRIPTIONS, code)
|
|
230
|
+
? FAILURE_DESCRIPTIONS[code] : requestFailureDescription(code);
|
|
231
|
+
return { ...description, usage: failureUsage(code, run) };
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
export function renderAutomationFailure(error, run = null, stepTitle = "") {
|
|
235
|
+
if (!error) return "";
|
|
236
|
+
const failure = automationFailurePresentation(error, run);
|
|
237
|
+
return `<section class="automation-failure-notice" aria-label="Failure reason"><h4>${escapeHtml(failure.title)}</h4>
|
|
238
|
+
${stepTitle ? `<p class="automation-failure-step" dir="auto">${escapeHtml(stepTitle)}</p>` : ""}
|
|
239
|
+
<p>${escapeHtml(failure.reason)}</p>${failure.usage ? `<p class="automation-failure-usage">${escapeHtml(failure.usage)}</p>` : ""}
|
|
240
|
+
<p class="automation-failure-action">${escapeHtml(failure.action)}</p></section>`;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
function isRunWideAutomationFailure(code) {
|
|
244
|
+
if (!Object.hasOwn(FAILURE_DESCRIPTIONS, code)) return false;
|
|
245
|
+
return FAILURE_DESCRIPTIONS[code].scope === "run";
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
function hasMatchingFailedStepCause(record, code) {
|
|
249
|
+
if (record.status !== "failed") return false;
|
|
250
|
+
return normalizeFailureCode(record.errorCode) === code;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
const OUTCOME_FAILURE_STATUSES = {
|
|
254
|
+
failed: ["failed", "interrupted"],
|
|
255
|
+
interrupted: ["interrupted", "failed"],
|
|
256
|
+
cancelled: ["interrupted", "cancelled"],
|
|
257
|
+
completed_with_skips: ["skipped"],
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
function isCompatibleUncertainStep(record, statuses) {
|
|
261
|
+
if (normalizeFailureCode(record.errorCode) !== "automation_effect_uncertain") return false;
|
|
262
|
+
return statuses.includes(record.status);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
function hasStepFailureAtStatus(record, status) {
|
|
266
|
+
if (record.status !== status) return false;
|
|
267
|
+
return Boolean(normalizeFailureCode(record.errorCode));
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
function findRunFailureStep(records, error, outcome) {
|
|
271
|
+
const code = normalizeFailureCode(error);
|
|
272
|
+
if (isRunWideAutomationFailure(code)) return null;
|
|
273
|
+
if (code) return records.find((record) => hasMatchingFailedStepCause(record, code));
|
|
274
|
+
const statuses = Object.hasOwn(OUTCOME_FAILURE_STATUSES, outcome) ? OUTCOME_FAILURE_STATUSES[outcome] : [];
|
|
275
|
+
const uncertain = records.find((record) => isCompatibleUncertainStep(record, statuses));
|
|
276
|
+
if (uncertain) return uncertain;
|
|
277
|
+
for (const status of statuses) {
|
|
278
|
+
const step = records.find((record) => hasStepFailureAtStatus(record, status));
|
|
279
|
+
if (step) return step;
|
|
280
|
+
}
|
|
281
|
+
return null;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export function automationRunFailureCause(run) {
|
|
285
|
+
if (!run) return null;
|
|
286
|
+
const outcome = run.report?.outcome || run.status;
|
|
287
|
+
if (["pending", "running", "stopping", "succeeded"].includes(outcome)) return null;
|
|
288
|
+
const records = Array.isArray(run.report?.nodeResults) ? run.report.nodeResults : run.nodes || [];
|
|
289
|
+
const step = findRunFailureStep(records, run.error, outcome);
|
|
290
|
+
const error = run.error || step?.errorCode || "";
|
|
291
|
+
const stepTitle = isRunWideAutomationFailure(normalizeFailureCode(error)) ? "" : step?.title || "";
|
|
292
|
+
return { error, stepTitle };
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
export function renderAutomationRunFailure(run) {
|
|
296
|
+
const cause = automationRunFailureCause(run);
|
|
297
|
+
if (!cause) return "";
|
|
298
|
+
return renderAutomationFailure(cause.error || "automation_failure_cause_not_recorded", run, cause.stepTitle);
|
|
299
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { escapeHtml } from "../../lib/text-format.js";
|
|
2
|
+
import { renderAutomationTemplateGallery } from "./template-gallery.js";
|
|
3
|
+
|
|
4
|
+
const tabs = ["studio", "templates"];
|
|
5
|
+
|
|
6
|
+
export function automationLibraryTabForKey(key, index) {
|
|
7
|
+
if (key === "Home") return tabs[0];
|
|
8
|
+
if (key === "End") return tabs.at(-1);
|
|
9
|
+
if (key === "ArrowRight") return tabs[(index + 1) % tabs.length];
|
|
10
|
+
if (key === "ArrowLeft") return tabs[(index + tabs.length - 1) % tabs.length];
|
|
11
|
+
return "";
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function renderAutomationLibraryTabs(snapshot, studioMarkup, activeTab = "studio") {
|
|
15
|
+
const selected = tabs.includes(activeTab) ? activeTab : "studio";
|
|
16
|
+
const tabButton = (name, label) => `<button id="automation-${name}-tab" class="config-category-tab${selected === name ? " active" : ""}" type="button" role="tab" data-automation-library-tab="${name}" aria-controls="automation-${name}-panel" aria-selected="${selected === name}" tabindex="${selected === name ? 0 : -1}">${label}</button>`;
|
|
17
|
+
return `<div class="config-dashboard automation-workspace-content">
|
|
18
|
+
<nav class="config-category-nav automation-workspace-nav" role="tablist" aria-label="ABot Studio views">
|
|
19
|
+
${tabButton("studio", "Studio")}${tabButton("templates", "Templates")}
|
|
20
|
+
</nav>
|
|
21
|
+
<div class="config-category-panels">
|
|
22
|
+
<div id="automation-studio-panel" class="config-category-panel" role="tabpanel" aria-labelledby="automation-studio-tab" tabindex="0" data-automation-library-panel="studio"${selected === "studio" ? "" : " hidden"}>${studioMarkup}</div>
|
|
23
|
+
<div id="automation-templates-panel" class="config-category-panel" role="tabpanel" aria-labelledby="automation-templates-tab" tabindex="0" data-automation-library-panel="templates"${selected === "templates" ? "" : " hidden"}>
|
|
24
|
+
${snapshot.error ? `<p class="automation-feedback" data-tone="error" role="status">${escapeHtml(snapshot.error)}</p>` : ""}
|
|
25
|
+
${renderAutomationTemplateGallery(snapshot)}
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
</div>`;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function activateAutomationLibraryTab(root, name, { focus = false } = {}) {
|
|
32
|
+
if (!tabs.includes(name)) return false;
|
|
33
|
+
for (const tabName of tabs) {
|
|
34
|
+
const button = root.querySelector(`[data-automation-library-tab="${tabName}"]`);
|
|
35
|
+
const panel = root.querySelector(`[data-automation-library-panel="${tabName}"]`);
|
|
36
|
+
if (!button || !panel) return false;
|
|
37
|
+
const active = tabName === name;
|
|
38
|
+
button.setAttribute("aria-selected", String(active));
|
|
39
|
+
button.setAttribute("tabindex", active ? "0" : "-1");
|
|
40
|
+
button.className = `config-category-tab${active ? " active" : ""}`;
|
|
41
|
+
panel.hidden = !active;
|
|
42
|
+
if (focus && active) button.focus();
|
|
43
|
+
}
|
|
44
|
+
return true;
|
|
45
|
+
}
|